@coveo/atomic 3.39.0 → 3.39.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/atomic/_atomic.esm.js +1 -1
- package/dist/atomic/atomic.esm.js.map +1 -1
- package/dist/atomic/components/_index.d.ts +0 -4
- package/dist/atomic/components/_index.js +0 -2
- package/dist/atomic/components/atomic-insight-result-children-template.js +1 -1
- package/dist/atomic/components/atomic-insight-result-children.js +4 -4
- package/dist/atomic/components/atomic-insight-result-children.js.map +1 -1
- package/dist/atomic/components/atomic-insight-result-template.js +1 -1
- package/dist/atomic/components/atomic-quickview-modal2.js +150 -108
- package/dist/atomic/components/atomic-quickview-modal2.js.map +1 -1
- package/dist/atomic/components/atomic-recs-result-template.js +1 -1
- package/dist/atomic/components/atomic-result-children.js +4 -4
- package/dist/atomic/components/atomic-result-children.js.map +1 -1
- package/dist/atomic/components/components/commerce/atomic-commerce-interface/atomic-commerce-interface.js +2 -0
- package/dist/atomic/components/components/commerce/atomic-commerce-pager/atomic-commerce-pager.js +14 -29
- package/dist/atomic/components/components/commerce/atomic-commerce-recommendation-interface/atomic-commerce-recommendation-interface.js +3 -0
- package/dist/atomic/components/components/common/interface/interface-controller.js +1 -0
- package/dist/atomic/components/components/insight/atomic-insight-interface/atomic-insight-interface.js +2 -0
- package/dist/atomic/components/components/recommendations/atomic-recs-interface/atomic-recs-interface.js +2 -0
- package/dist/atomic/components/components/search/atomic-field-condition/atomic-field-condition.js +74 -0
- package/dist/atomic/components/components/search/atomic-pager/atomic-pager.js +31 -40
- package/dist/atomic/components/components/search/atomic-result-badge/atomic-result-badge.js +127 -0
- package/dist/atomic/components/components/search/atomic-search-interface/atomic-search-interface.js +2 -0
- package/dist/atomic/components/components/search/index.js +2 -0
- package/dist/atomic/components/components/search/lazy-index.js +2 -0
- package/dist/atomic/components/global/environment.js +1 -1
- package/dist/atomic/components/index.js.map +1 -1
- package/dist/atomic/components/stencil-result-template-common.js +1 -1
- package/dist/atomic/components/{show-hide-button.js → stencil-show-hide-button.js} +1 -2
- package/dist/atomic/components/stencil-show-hide-button.js.map +1 -0
- package/dist/atomic/components/utils/custom-element-tags.js +115 -0
- package/dist/atomic/{p-7c6cded8.entry.js → p-05a6ad42.entry.js} +2 -2
- package/dist/atomic/{p-20a02cb8.js → p-0779523d.js} +2 -2
- package/dist/atomic/{p-12e5e56c.js → p-0ad1eced.js} +2 -2
- package/dist/atomic/{p-2b2db1db.entry.js → p-0d1371a5.entry.js} +2 -2
- package/dist/atomic/p-0d1371a5.entry.js.map +1 -0
- package/dist/atomic/{p-c7072c4d.entry.js → p-1446b9f6.entry.js} +2 -2
- package/dist/atomic/{p-7da807d6.entry.js → p-1f363dd9.entry.js} +2 -2
- package/dist/atomic/{p-42a151a2.entry.js → p-1f4db3cb.entry.js} +2 -2
- package/dist/atomic/{p-ad38e363.entry.js → p-24ef7805.entry.js} +2 -2
- package/dist/atomic/{p-e2088f9e.entry.js → p-29f81148.entry.js} +2 -2
- package/dist/atomic/{p-98ee46c3.entry.js → p-2d629695.entry.js} +2 -2
- package/dist/atomic/{p-28683ceb.js → p-2e9f2732.js} +2 -2
- package/dist/atomic/{p-78ff2358.entry.js → p-382534b6.entry.js} +2 -2
- package/dist/atomic/{p-4683e572.js → p-3aa5fa4d.js} +2 -2
- package/dist/atomic/{p-fdb1a985.js → p-3ab53c37.js} +2 -2
- package/dist/atomic/p-3ab53c37.js.map +1 -0
- package/dist/atomic/{p-b97a773c.entry.js → p-3f8eaa2b.entry.js} +2 -2
- package/dist/atomic/{p-f00a245c.js → p-3fc8d8cc.js} +2 -2
- package/dist/atomic/{p-694af29d.entry.js → p-4726d370.entry.js} +2 -2
- package/dist/atomic/{p-944fe2ca.entry.js → p-4b63cb31.entry.js} +2 -2
- package/dist/atomic/{p-c953f644.entry.js → p-4ba0e104.entry.js} +2 -2
- package/dist/atomic/{p-52064d8c.entry.js → p-4e071ea2.entry.js} +2 -2
- package/dist/atomic/{p-1c70d4a8.entry.js → p-50e9988d.entry.js} +2 -2
- package/dist/atomic/{p-b7f9420d.entry.js → p-5b1de8dc.entry.js} +2 -2
- package/dist/atomic/{p-efff4455.entry.js → p-5cd460f0.entry.js} +2 -2
- package/dist/atomic/p-5f6cc788.entry.js +2 -0
- package/dist/atomic/p-5f6cc788.entry.js.map +1 -0
- package/dist/atomic/{p-31b2e659.entry.js → p-6880dfb8.entry.js} +2 -2
- package/dist/atomic/{p-97bf5db6.entry.js → p-6ee4fa3d.entry.js} +2 -2
- package/dist/atomic/{p-61c19a04.entry.js → p-748251b5.entry.js} +2 -2
- package/dist/atomic/{p-503d8e4c.entry.js → p-76a62a77.entry.js} +2 -2
- package/dist/atomic/{p-d967e926.js → p-78a2278f.js} +2 -2
- package/dist/atomic/{p-39f99214.entry.js → p-7cc4a1bc.entry.js} +2 -2
- package/dist/atomic/{p-29a42d73.entry.js → p-7d467128.entry.js} +2 -2
- package/dist/atomic/{p-21b1ef92.entry.js → p-7e041af5.entry.js} +2 -2
- package/dist/atomic/{p-41788181.entry.js → p-87725ff8.entry.js} +2 -2
- package/dist/atomic/{p-176d0477.entry.js → p-888d1b3b.entry.js} +2 -2
- package/dist/atomic/{p-c566543b.entry.js → p-8a09bf73.entry.js} +2 -2
- package/dist/atomic/{p-ab304a67.entry.js → p-8d56bd9c.entry.js} +2 -2
- package/dist/atomic/{p-2e97cbb5.entry.js → p-8e5481b2.entry.js} +2 -2
- package/dist/atomic/{p-9f17aac0.entry.js → p-91c7dc97.entry.js} +2 -2
- package/dist/atomic/{p-297a186f.js → p-9bff82d2.js} +2 -2
- package/dist/atomic/{p-5a161f56.entry.js → p-9dddb0fe.entry.js} +2 -2
- package/dist/atomic/{p-e4e22ca4.entry.js → p-a1001ed4.entry.js} +2 -2
- package/dist/atomic/p-a1001ed4.entry.js.map +1 -0
- package/dist/atomic/{p-2e21c2be.entry.js → p-a60f20f3.entry.js} +2 -2
- package/dist/atomic/{p-9e84fd28.entry.js → p-a8d95e60.entry.js} +2 -2
- package/dist/atomic/{p-d2bb57da.entry.js → p-a9c8af66.entry.js} +2 -2
- package/dist/atomic/{p-95649dfe.entry.js → p-b00aea8f.entry.js} +2 -2
- package/dist/atomic/{p-51243c0a.entry.js → p-b8384bb4.entry.js} +2 -2
- package/dist/atomic/{p-7aa80b40.entry.js → p-b88e097d.entry.js} +2 -2
- package/dist/atomic/{p-0b1d29ae.entry.js → p-c1a63a7a.entry.js} +2 -2
- package/dist/atomic/{p-e03f245b.entry.js → p-c1ef6480.entry.js} +2 -2
- package/dist/atomic/{p-e19ef4be.entry.js → p-c52d55ca.entry.js} +2 -2
- package/dist/atomic/{p-b19ad4bc.entry.js → p-c64b1ebb.entry.js} +2 -2
- package/dist/atomic/{p-ad908a26.js → p-cd4a6089.js} +2 -2
- package/dist/atomic/{p-9f127a00.entry.js → p-d1605065.entry.js} +2 -2
- package/dist/atomic/{p-42327028.entry.js → p-d30703c2.entry.js} +2 -2
- package/dist/atomic/{p-308ea344.entry.js → p-d3b39797.entry.js} +2 -2
- package/dist/atomic/{p-7b8020dd.entry.js → p-d77748ac.entry.js} +2 -2
- package/dist/atomic/{p-84aada47.entry.js → p-dfdfecb7.entry.js} +2 -2
- package/dist/atomic/{p-4f6c469f.entry.js → p-e01dc0fa.entry.js} +2 -2
- package/dist/atomic/{p-0fb30fdd.entry.js → p-e1392b34.entry.js} +2 -2
- package/dist/atomic/{p-52e16718.entry.js → p-e3cfd875.entry.js} +2 -2
- package/dist/atomic/{p-525e09b0.js → p-e4837015.js} +2 -2
- package/dist/atomic/{p-7148b295.entry.js → p-e51015e5.entry.js} +2 -2
- package/dist/atomic/{p-554e903c.entry.js → p-e69f02e3.entry.js} +2 -2
- package/dist/atomic/{p-2dbac3f0.entry.js → p-e760c6eb.entry.js} +2 -2
- package/dist/atomic/{p-81ead125.entry.js → p-e9f09975.entry.js} +2 -2
- package/dist/atomic/{p-9c875991.entry.js → p-ec1f72d3.entry.js} +2 -2
- package/dist/atomic/{p-a3ab554e.entry.js → p-f59343d1.entry.js} +2 -2
- package/dist/atomic/{p-b416f690.entry.js → p-f8335d2b.entry.js} +2 -2
- package/dist/atomic/{p-f2aebada.entry.js → p-f8ec113a.entry.js} +2 -2
- package/dist/atomic/{p-b7f5fdab.js → p-f95cd233.js} +2 -2
- package/dist/atomic/{p-f312f600.entry.js → p-f99b489c.entry.js} +2 -2
- package/dist/cjs/_loader.cjs.js +1 -1
- package/dist/cjs/atomic-insight-result-children.cjs.entry.js +8 -8
- package/dist/cjs/atomic-insight-result-children.cjs.entry.js.map +1 -1
- package/dist/cjs/atomic-quickview-modal.cjs.entry.js +150 -108
- package/dist/cjs/atomic-quickview-modal.cjs.entry.js.map +1 -1
- package/dist/cjs/atomic-result-children.cjs.entry.js +8 -8
- package/dist/cjs/atomic-result-children.cjs.entry.js.map +1 -1
- package/dist/cjs/atomic.cjs.js +1 -1
- package/dist/cjs/index-8fc6356e.js +0 -8
- package/dist/cjs/{show-hide-button-884d4c71.js → stencil-show-hide-button-ce6c2538.js} +1 -2
- package/dist/cjs/stencil-show-hide-button-ce6c2538.js.map +1 -0
- package/dist/cjs/version.cjs.js +2 -2
- package/dist/esm/_loader.js +1 -1
- package/dist/esm/atomic-automatic-facet_2.entry.js +3 -3
- package/dist/esm/atomic-breadbox.entry.js +2 -2
- package/dist/esm/atomic-category-facet.entry.js +3 -3
- package/dist/esm/atomic-color-facet.entry.js +3 -3
- package/dist/esm/atomic-folded-result-list.entry.js +6 -6
- package/dist/esm/atomic-generated-answer-feedback-modal.entry.js +1 -1
- package/dist/esm/atomic-generated-answer.entry.js +3 -3
- package/dist/esm/atomic-insight-facet.entry.js +3 -3
- package/dist/esm/atomic-insight-folded-result-list.entry.js +5 -5
- package/dist/esm/atomic-insight-generated-answer.entry.js +2 -2
- package/dist/esm/atomic-insight-layout.entry.js +1 -1
- package/dist/esm/atomic-insight-no-results.entry.js +2 -2
- package/dist/esm/atomic-insight-numeric-facet.entry.js +5 -5
- package/dist/esm/atomic-insight-pager.entry.js +1 -1
- package/dist/esm/atomic-insight-query-error.entry.js +2 -2
- package/dist/esm/atomic-insight-query-summary.entry.js +2 -2
- package/dist/esm/atomic-insight-result-action-bar.entry.js +1 -1
- package/dist/esm/atomic-insight-result-children-template.entry.js +4 -4
- package/dist/esm/atomic-insight-result-children.entry.js +5 -5
- package/dist/esm/atomic-insight-result-children.entry.js.map +1 -1
- package/dist/esm/atomic-insight-result-list.entry.js +5 -5
- package/dist/esm/atomic-insight-result-quickview-action.entry.js +2 -2
- package/dist/esm/atomic-insight-result-template.entry.js +4 -4
- package/dist/esm/atomic-insight-result.entry.js +5 -5
- package/dist/esm/atomic-insight-search-box.entry.js +2 -2
- package/dist/esm/atomic-insight-smart-snippet-feedback-modal.entry.js +1 -1
- package/dist/esm/atomic-insight-smart-snippet-suggestions.entry.js +1 -1
- package/dist/esm/atomic-insight-smart-snippet.entry.js +1 -1
- package/dist/esm/atomic-insight-tab.entry.js +1 -1
- package/dist/esm/atomic-insight-timeframe-facet.entry.js +4 -4
- package/dist/esm/atomic-ipx-body.entry.js +1 -1
- package/dist/esm/atomic-ipx-embedded.entry.js +1 -1
- package/dist/esm/atomic-ipx-modal.entry.js +1 -1
- package/dist/esm/atomic-ipx-recs-list.entry.js +5 -5
- package/dist/esm/atomic-no-results.entry.js +2 -2
- package/dist/esm/atomic-notifications.entry.js +2 -2
- package/dist/esm/atomic-numeric-facet.entry.js +5 -5
- package/dist/esm/atomic-quickview-modal.entry.js +150 -108
- package/dist/esm/atomic-quickview-modal.entry.js.map +1 -1
- package/dist/esm/atomic-quickview.entry.js +2 -2
- package/dist/esm/atomic-rating-facet.entry.js +4 -4
- package/dist/esm/atomic-rating-range-facet.entry.js +3 -3
- package/dist/esm/atomic-recs-error.entry.js +2 -2
- package/dist/esm/atomic-recs-list.entry.js +5 -5
- package/dist/esm/atomic-recs-result-template.entry.js +4 -4
- package/dist/esm/atomic-recs-result.entry.js +5 -5
- package/dist/esm/atomic-refine-modal.entry.js +1 -1
- package/dist/esm/atomic-result-children.entry.js +5 -5
- package/dist/esm/atomic-result-children.entry.js.map +1 -1
- package/dist/esm/atomic-result-icon.entry.js +1 -1
- package/dist/esm/atomic-result-localized-text.entry.js +2 -2
- package/dist/esm/atomic-result-multi-value-text.entry.js +1 -1
- package/dist/esm/atomic-result-placeholder_2.entry.js +3 -3
- package/dist/esm/atomic-result-printable-uri.entry.js +2 -2
- package/dist/esm/atomic-search-box.entry.js +2 -2
- package/dist/esm/atomic-segmented-facet.entry.js +2 -2
- package/dist/esm/atomic-smart-snippet-answer_2.entry.js +1 -1
- package/dist/esm/atomic-smart-snippet-feedback-modal.entry.js +1 -1
- package/dist/esm/atomic-smart-snippet-suggestions.entry.js +1 -1
- package/dist/esm/atomic-smart-snippet.entry.js +2 -2
- package/dist/esm/atomic-sort-dropdown.entry.js +1 -1
- package/dist/esm/atomic-sort-expression.entry.js +2 -2
- package/dist/esm/atomic-timeframe-facet.entry.js +4 -4
- package/dist/esm/atomic.js +1 -1
- package/dist/esm/{display-options-abcc4ce4.js → display-options-1642f41a.js} +2 -2
- package/dist/esm/{display-options-abcc4ce4.js.map → display-options-1642f41a.js.map} +1 -1
- package/dist/esm/index-62c2216d.js +0 -8
- package/dist/esm/{item-layout-sections-4f105293.js → item-layout-sections-7f3f07d2.js} +2 -2
- package/dist/esm/{item-layout-sections-4f105293.js.map → item-layout-sections-7f3f07d2.js.map} +1 -1
- package/dist/esm/{props-utils-e04e8ad0.js → props-utils-b663ca01.js} +2 -2
- package/dist/esm/{props-utils-e04e8ad0.js.map → props-utils-b663ca01.js.map} +1 -1
- package/dist/esm/{stencil-accessibility-utils-de708162.js → stencil-accessibility-utils-2070ba91.js} +2 -2
- package/dist/esm/{stencil-accessibility-utils-de708162.js.map → stencil-accessibility-utils-2070ba91.js.map} +1 -1
- package/dist/esm/{stencil-facet-value-checkbox-ea5ed2bd.js → stencil-facet-value-checkbox-156f1e2d.js} +2 -2
- package/dist/esm/{stencil-facet-value-checkbox-ea5ed2bd.js.map → stencil-facet-value-checkbox-156f1e2d.js.map} +1 -1
- package/dist/esm/{stencil-item-list-common-355d92bd.js → stencil-item-list-common-3b7a33f5.js} +3 -3
- package/dist/esm/{stencil-item-list-common-355d92bd.js.map → stencil-item-list-common-3b7a33f5.js.map} +1 -1
- package/dist/esm/{stencil-result-template-common-3ed9087d.js → stencil-result-template-common-32655043.js} +4 -4
- package/dist/esm/{stencil-result-template-common-3ed9087d.js.map → stencil-result-template-common-32655043.js.map} +1 -1
- package/dist/esm/{show-hide-button-0668507e.js → stencil-show-hide-button-5298dae1.js} +1 -2
- package/dist/esm/stencil-show-hide-button-5298dae1.js.map +1 -0
- package/dist/esm/{stencil-values-container-9eef93e1.js → stencil-values-container-9a289d5e.js} +2 -2
- package/dist/esm/{stencil-values-container-9eef93e1.js.map → stencil-values-container-9a289d5e.js.map} +1 -1
- package/dist/esm/{timeframe-facet-common-cefe1400.js → timeframe-facet-common-4d568ab2.js} +2 -2
- package/dist/esm/{timeframe-facet-common-cefe1400.js.map → timeframe-facet-common-4d568ab2.js.map} +1 -1
- package/dist/esm/{utils-730e6154.js → utils-b6c5d1af.js} +2 -2
- package/dist/esm/{utils-730e6154.js.map → utils-b6c5d1af.js.map} +1 -1
- package/dist/esm/version.js +2 -2
- package/dist/types/components/commerce/atomic-commerce-pager/atomic-commerce-pager.d.ts +5 -7
- package/dist/types/components/common/interface/interface-controller.d.ts +1 -0
- package/dist/types/components/common/result-children/show-hide-button.d.ts +3 -7
- package/dist/types/components/common/result-children/stencil-show-hide-button.d.ts +14 -0
- package/dist/types/components/search/atomic-field-condition/atomic-field-condition.d.ts +45 -0
- package/dist/types/components/search/atomic-pager/atomic-pager.d.ts +2 -4
- package/dist/types/components/search/{result-template-components/atomic-result-badge → atomic-result-badge}/atomic-result-badge.d.ts +19 -5
- package/dist/types/components/search/index.d.ts +2 -0
- package/dist/types/components/search/result-template-components/quickview-word-highlight/color-parser.d.ts +15 -0
- package/dist/types/components/search/result-template-components/quickview-word-highlight/iframe-parser.d.ts +16 -0
- package/dist/types/components/search/result-template-components/quickview-word-highlight/quickview-word-highlight.d.ts +10 -22
- package/dist/types/components/search/result-template-components/quickview-word-highlight/text-parser.d.ts +13 -0
- package/dist/types/components.d.ts +0 -222
- package/dist/types/utils/custom-element-tags.d.ts +14 -0
- package/docs/atomic-docs.json +1 -274
- package/package.json +13 -13
- package/dist/atomic/components/atomic-field-condition.d.ts +0 -11
- package/dist/atomic/components/atomic-field-condition.js +0 -98
- package/dist/atomic/components/atomic-field-condition.js.map +0 -1
- package/dist/atomic/components/atomic-result-badge.d.ts +0 -11
- package/dist/atomic/components/atomic-result-badge.js +0 -86
- package/dist/atomic/components/atomic-result-badge.js.map +0 -1
- package/dist/atomic/components/show-hide-button.js.map +0 -1
- package/dist/atomic/p-2b2db1db.entry.js.map +0 -1
- package/dist/atomic/p-6e8f6c4e.entry.js +0 -2
- package/dist/atomic/p-6e8f6c4e.entry.js.map +0 -1
- package/dist/atomic/p-b597d76c.entry.js +0 -2
- package/dist/atomic/p-b597d76c.entry.js.map +0 -1
- package/dist/atomic/p-e4e22ca4.entry.js.map +0 -1
- package/dist/atomic/p-e86a9dcb.entry.js +0 -2
- package/dist/atomic/p-e86a9dcb.entry.js.map +0 -1
- package/dist/atomic/p-fdb1a985.js.map +0 -1
- package/dist/cjs/atomic-field-condition.cjs.entry.js +0 -88
- package/dist/cjs/atomic-field-condition.cjs.entry.js.map +0 -1
- package/dist/cjs/atomic-result-badge.cjs.entry.js +0 -71
- package/dist/cjs/atomic-result-badge.cjs.entry.js.map +0 -1
- package/dist/cjs/show-hide-button-884d4c71.js.map +0 -1
- package/dist/esm/atomic-field-condition.entry.js +0 -84
- package/dist/esm/atomic-field-condition.entry.js.map +0 -1
- package/dist/esm/atomic-result-badge.entry.js +0 -67
- package/dist/esm/atomic-result-badge.entry.js.map +0 -1
- package/dist/esm/show-hide-button-0668507e.js.map +0 -1
- package/dist/types/components/search/result-template-components/atomic-field-condition/atomic-field-condition.d.ts +0 -36
- /package/dist/atomic/components/components/{commerce/atomic-commerce-pager/commerce-pager-utils.js → common/pager/pager-utils.js} +0 -0
- /package/dist/atomic/{p-7c6cded8.entry.js.map → p-05a6ad42.entry.js.map} +0 -0
- /package/dist/atomic/{p-20a02cb8.js.map → p-0779523d.js.map} +0 -0
- /package/dist/atomic/{p-12e5e56c.js.map → p-0ad1eced.js.map} +0 -0
- /package/dist/atomic/{p-c7072c4d.entry.js.map → p-1446b9f6.entry.js.map} +0 -0
- /package/dist/atomic/{p-7da807d6.entry.js.map → p-1f363dd9.entry.js.map} +0 -0
- /package/dist/atomic/{p-42a151a2.entry.js.map → p-1f4db3cb.entry.js.map} +0 -0
- /package/dist/atomic/{p-ad38e363.entry.js.map → p-24ef7805.entry.js.map} +0 -0
- /package/dist/atomic/{p-e2088f9e.entry.js.map → p-29f81148.entry.js.map} +0 -0
- /package/dist/atomic/{p-98ee46c3.entry.js.map → p-2d629695.entry.js.map} +0 -0
- /package/dist/atomic/{p-28683ceb.js.map → p-2e9f2732.js.map} +0 -0
- /package/dist/atomic/{p-78ff2358.entry.js.map → p-382534b6.entry.js.map} +0 -0
- /package/dist/atomic/{p-4683e572.js.map → p-3aa5fa4d.js.map} +0 -0
- /package/dist/atomic/{p-b97a773c.entry.js.map → p-3f8eaa2b.entry.js.map} +0 -0
- /package/dist/atomic/{p-f00a245c.js.map → p-3fc8d8cc.js.map} +0 -0
- /package/dist/atomic/{p-694af29d.entry.js.map → p-4726d370.entry.js.map} +0 -0
- /package/dist/atomic/{p-944fe2ca.entry.js.map → p-4b63cb31.entry.js.map} +0 -0
- /package/dist/atomic/{p-c953f644.entry.js.map → p-4ba0e104.entry.js.map} +0 -0
- /package/dist/atomic/{p-52064d8c.entry.js.map → p-4e071ea2.entry.js.map} +0 -0
- /package/dist/atomic/{p-1c70d4a8.entry.js.map → p-50e9988d.entry.js.map} +0 -0
- /package/dist/atomic/{p-b7f9420d.entry.js.map → p-5b1de8dc.entry.js.map} +0 -0
- /package/dist/atomic/{p-efff4455.entry.js.map → p-5cd460f0.entry.js.map} +0 -0
- /package/dist/atomic/{p-31b2e659.entry.js.map → p-6880dfb8.entry.js.map} +0 -0
- /package/dist/atomic/{p-97bf5db6.entry.js.map → p-6ee4fa3d.entry.js.map} +0 -0
- /package/dist/atomic/{p-61c19a04.entry.js.map → p-748251b5.entry.js.map} +0 -0
- /package/dist/atomic/{p-503d8e4c.entry.js.map → p-76a62a77.entry.js.map} +0 -0
- /package/dist/atomic/{p-d967e926.js.map → p-78a2278f.js.map} +0 -0
- /package/dist/atomic/{p-39f99214.entry.js.map → p-7cc4a1bc.entry.js.map} +0 -0
- /package/dist/atomic/{p-29a42d73.entry.js.map → p-7d467128.entry.js.map} +0 -0
- /package/dist/atomic/{p-21b1ef92.entry.js.map → p-7e041af5.entry.js.map} +0 -0
- /package/dist/atomic/{p-41788181.entry.js.map → p-87725ff8.entry.js.map} +0 -0
- /package/dist/atomic/{p-176d0477.entry.js.map → p-888d1b3b.entry.js.map} +0 -0
- /package/dist/atomic/{p-c566543b.entry.js.map → p-8a09bf73.entry.js.map} +0 -0
- /package/dist/atomic/{p-ab304a67.entry.js.map → p-8d56bd9c.entry.js.map} +0 -0
- /package/dist/atomic/{p-2e97cbb5.entry.js.map → p-8e5481b2.entry.js.map} +0 -0
- /package/dist/atomic/{p-9f17aac0.entry.js.map → p-91c7dc97.entry.js.map} +0 -0
- /package/dist/atomic/{p-297a186f.js.map → p-9bff82d2.js.map} +0 -0
- /package/dist/atomic/{p-5a161f56.entry.js.map → p-9dddb0fe.entry.js.map} +0 -0
- /package/dist/atomic/{p-2e21c2be.entry.js.map → p-a60f20f3.entry.js.map} +0 -0
- /package/dist/atomic/{p-9e84fd28.entry.js.map → p-a8d95e60.entry.js.map} +0 -0
- /package/dist/atomic/{p-d2bb57da.entry.js.map → p-a9c8af66.entry.js.map} +0 -0
- /package/dist/atomic/{p-95649dfe.entry.js.map → p-b00aea8f.entry.js.map} +0 -0
- /package/dist/atomic/{p-51243c0a.entry.js.map → p-b8384bb4.entry.js.map} +0 -0
- /package/dist/atomic/{p-7aa80b40.entry.js.map → p-b88e097d.entry.js.map} +0 -0
- /package/dist/atomic/{p-0b1d29ae.entry.js.map → p-c1a63a7a.entry.js.map} +0 -0
- /package/dist/atomic/{p-e03f245b.entry.js.map → p-c1ef6480.entry.js.map} +0 -0
- /package/dist/atomic/{p-e19ef4be.entry.js.map → p-c52d55ca.entry.js.map} +0 -0
- /package/dist/atomic/{p-b19ad4bc.entry.js.map → p-c64b1ebb.entry.js.map} +0 -0
- /package/dist/atomic/{p-ad908a26.js.map → p-cd4a6089.js.map} +0 -0
- /package/dist/atomic/{p-9f127a00.entry.js.map → p-d1605065.entry.js.map} +0 -0
- /package/dist/atomic/{p-42327028.entry.js.map → p-d30703c2.entry.js.map} +0 -0
- /package/dist/atomic/{p-308ea344.entry.js.map → p-d3b39797.entry.js.map} +0 -0
- /package/dist/atomic/{p-7b8020dd.entry.js.map → p-d77748ac.entry.js.map} +0 -0
- /package/dist/atomic/{p-84aada47.entry.js.map → p-dfdfecb7.entry.js.map} +0 -0
- /package/dist/atomic/{p-4f6c469f.entry.js.map → p-e01dc0fa.entry.js.map} +0 -0
- /package/dist/atomic/{p-0fb30fdd.entry.js.map → p-e1392b34.entry.js.map} +0 -0
- /package/dist/atomic/{p-52e16718.entry.js.map → p-e3cfd875.entry.js.map} +0 -0
- /package/dist/atomic/{p-525e09b0.js.map → p-e4837015.js.map} +0 -0
- /package/dist/atomic/{p-7148b295.entry.js.map → p-e51015e5.entry.js.map} +0 -0
- /package/dist/atomic/{p-554e903c.entry.js.map → p-e69f02e3.entry.js.map} +0 -0
- /package/dist/atomic/{p-2dbac3f0.entry.js.map → p-e760c6eb.entry.js.map} +0 -0
- /package/dist/atomic/{p-81ead125.entry.js.map → p-e9f09975.entry.js.map} +0 -0
- /package/dist/atomic/{p-9c875991.entry.js.map → p-ec1f72d3.entry.js.map} +0 -0
- /package/dist/atomic/{p-a3ab554e.entry.js.map → p-f59343d1.entry.js.map} +0 -0
- /package/dist/atomic/{p-b416f690.entry.js.map → p-f8335d2b.entry.js.map} +0 -0
- /package/dist/atomic/{p-f2aebada.entry.js.map → p-f8ec113a.entry.js.map} +0 -0
- /package/dist/atomic/{p-b7f5fdab.js.map → p-f95cd233.js.map} +0 -0
- /package/dist/atomic/{p-f312f600.entry.js.map → p-f99b489c.entry.js.map} +0 -0
- /package/dist/types/components/{commerce/atomic-commerce-pager/commerce-pager-utils.d.ts → common/pager/pager-utils.d.ts} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"file":"stencil-result-template-common-
|
|
1
|
+
{"file":"stencil-result-template-common-32655043.js","mappings":"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","names":[],"sources":["src/components/common/table-element-utils.ts","src/components/common/result-templates/stencil-result-template-common.tsx"],"sourcesContent":["export const tableElementTagName = 'atomic-table-element';\n","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}
|
|
@@ -95,7 +95,6 @@ const ShowHideButton = ({ moreResultsAvailable, loadFullCollection, showInitialC
|
|
|
95
95
|
return (h(Button, { part: "show-hide-button", class: "show-hide-button", style: "text-primary", onClick: () => {
|
|
96
96
|
if (moreResultsAvailable) {
|
|
97
97
|
loadFullCollection();
|
|
98
|
-
toggleShowInitialChildren();
|
|
99
98
|
}
|
|
100
99
|
toggleShowInitialChildren();
|
|
101
100
|
} }, showInitialChildren || moreResultsAvailable
|
|
@@ -105,4 +104,4 @@ const ShowHideButton = ({ moreResultsAvailable, loadFullCollection, showInitialC
|
|
|
105
104
|
|
|
106
105
|
export { ChildrenWrapper as C, FoldedItemListContext as F, ResultChildrenGuard as R, ShowHideButton as S, FoldedItemListStateContext as a, CollectionGuard as b };
|
|
107
106
|
|
|
108
|
-
//# sourceMappingURL=show-hide-button-
|
|
107
|
+
//# sourceMappingURL=stencil-show-hide-button-5298dae1.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"file":"stencil-show-hide-button-5298dae1.js","mappings":"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","names":[],"sources":["src/components/common/item-list/item-list-decorators.tsx","src/components/common/result-children/stencil-children-wrapper.tsx","src/components/common/result-children/stencil-collection-guard.tsx","src/components/common/result-children/stencil-guard.tsx","src/components/common/result-children/stencil-show-hide-button.tsx"],"sourcesContent":["import {ComponentInterface, getElement} from '@stencil/core';\nimport {buildCustomEvent} from '../../../utils/event-utils';\n\ntype FoldedItemListContextEventHandler = (foldedItemList: unknown) => void;\nexport type FoldedItemListContextEvent =\n CustomEvent<FoldedItemListContextEventHandler>;\nconst foldedItemListContextEventName = 'atomic/resolveFoldedResultList';\n\n/**\n * A [StencilJS property decorator](https://stenciljs.com/) to be used for elements nested within a folded item list.\n * This allows the Stencil component to modify the folded item list rendered levels.\n */\nexport function FoldedItemListContext() {\n return (component: ComponentInterface, foldedList: string) => {\n const {componentWillRender} = component;\n component.componentWillRender = function () {\n const element = getElement(this);\n const event = buildCustomEvent(\n foldedItemListContextEventName,\n (foldedItemList: unknown) => {\n this[foldedList] = foldedItemList;\n }\n );\n\n const canceled = element.dispatchEvent(event);\n if (canceled) {\n return;\n }\n return componentWillRender && componentWillRender.call(this);\n };\n };\n}\n\ntype FoldedItemListStateContextEventHandler = (foldedItemList: unknown) => void;\nexport type FoldedItemListStateContextEvent =\n CustomEvent<FoldedItemListStateContextEventHandler>;\nconst foldedItemListStateContextEventName = 'atomic/resolveFoldedResultList';\n\n/**\n * A [StencilJS property decorator](https://stenciljs.com/) to be used for elements nested within a folded item list.\n * This allows the Stencil component to modify the folded item list rendered levels.\n */\nexport function FoldedItemListStateContext() {\n return (component: ComponentInterface, foldedListState: string) => {\n const {componentWillRender} = component;\n component.componentWillRender = function () {\n const element = getElement(this);\n const event = buildCustomEvent(\n foldedItemListStateContextEventName,\n (foldedItemList: {\n subscribe: (callback: () => void) => unknown;\n state: unknown;\n }) => {\n foldedItemList?.subscribe(() => {\n this[foldedListState] = foldedItemList.state;\n });\n }\n );\n\n const canceled = element.dispatchEvent(event);\n if (canceled) {\n return;\n }\n return componentWillRender && componentWillRender.call(this);\n };\n };\n}\n","import {FunctionalComponent, h} from '@stencil/core';\n\ninterface ChildrenWrapperProps {\n hasChildren: boolean;\n}\n\n/**\n * @deprecated should only be used for Stencil components.\n */\nexport const ChildrenWrapper: FunctionalComponent<ChildrenWrapperProps> = (\n {hasChildren},\n children\n) => {\n return (\n <div part=\"children-root\">\n {hasChildren && <slot name=\"before-children\"></slot>}\n {children}\n {hasChildren && <slot name=\"after-children\"></slot>}\n </div>\n );\n};\n","import {Fragment, FunctionalComponent, h} from '@stencil/core';\nimport {ResultsPlaceholder} from '../atomic-result-placeholder/stencil-placeholders';\nimport {\n ItemDisplayDensity,\n ItemDisplayImageSize,\n} from '../layout/display-options';\nimport {ChildrenWrapper} from './stencil-children-wrapper';\n\ninterface CollectionGuardProps {\n isLoadingMoreResults: boolean;\n moreResultsAvailable: boolean;\n hasChildren: boolean;\n numberOfChildren: number;\n density: ItemDisplayDensity;\n imageSize: ItemDisplayImageSize;\n noResultText: string;\n}\n\n/**\n * @deprecated should only be used for Stencil components.\n */\nexport const CollectionGuard: FunctionalComponent<CollectionGuardProps> = (\n {\n isLoadingMoreResults,\n moreResultsAvailable,\n hasChildren,\n numberOfChildren,\n density,\n imageSize,\n noResultText,\n },\n children\n) => {\n if (isLoadingMoreResults) {\n return (\n <ChildrenWrapper hasChildren={hasChildren}>\n <ResultsPlaceholder\n numberOfPlaceholders={numberOfChildren}\n density={density}\n display={'list'}\n imageSize={imageSize}\n />\n </ChildrenWrapper>\n );\n }\n\n if (!moreResultsAvailable && !hasChildren) {\n return noResultText.trim().length ? (\n <p part=\"no-result-root\" class=\"no-result-root my-3\">\n {noResultText}\n </p>\n ) : null;\n }\n\n if (!hasChildren) {\n return;\n }\n\n return <Fragment>{children}</Fragment>;\n};\n","import {Fragment, FunctionalComponent, h} from '@stencil/core';\n\ninterface ResultChildrenGuardProps {\n inheritTemplates: boolean;\n resultTemplateRegistered: boolean;\n templateHasError: boolean;\n}\n\n/**\n * @deprecated should only be used for Stencil components.\n */\nexport const ResultChildrenGuard: FunctionalComponent<\n ResultChildrenGuardProps\n> = (\n {inheritTemplates, resultTemplateRegistered, templateHasError},\n children\n) => {\n if (!inheritTemplates && !resultTemplateRegistered) {\n return;\n }\n\n if (!inheritTemplates && templateHasError) {\n return <slot></slot>;\n }\n\n return <Fragment>{children}</Fragment>;\n};\n","import {FunctionalComponent, h} from '@stencil/core';\nimport {Button} from '../stencil-button';\n\n interface ShowHideButtonProps {\n moreResultsAvailable: boolean;\n loadFullCollection: () => void;\n showInitialChildren: boolean;\n toggleShowInitialChildren: () => void;\n loadAllResults: string;\n collapseResults: string;\n}\n\n/**\n * @deprecated should only be used for Stencil components.\n */\nexport const ShowHideButton: FunctionalComponent<ShowHideButtonProps> = ({\n moreResultsAvailable,\n loadFullCollection,\n showInitialChildren,\n toggleShowInitialChildren,\n loadAllResults,\n collapseResults,\n}) => {\n return (\n <Button\n part=\"show-hide-button\"\n class=\"show-hide-button\"\n style=\"text-primary\"\n onClick={() => {\n if (moreResultsAvailable) {\n loadFullCollection();\n }\n toggleShowInitialChildren();\n }}\n >\n {showInitialChildren || moreResultsAvailable\n ? loadAllResults\n : collapseResults}\n </Button>\n );\n};\n"],"version":3}
|
package/dist/esm/{stencil-values-container-9eef93e1.js → stencil-values-container-9a289d5e.js}
RENAMED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { h } from './index-62c2216d.js';
|
|
2
|
-
import { F as FacetValueCheckbox } from './stencil-facet-value-checkbox-
|
|
2
|
+
import { F as FacetValueCheckbox } from './stencil-facet-value-checkbox-156f1e2d.js';
|
|
3
3
|
import { F as FacetValueLabelHighlight } from './stencil-facet-value-label-highlight-20a0e20f.js';
|
|
4
4
|
import { F as FacetValueLink } from './stencil-facet-value-link-a9e7db04.js';
|
|
5
5
|
import { g as getFieldValueCaption } from './field-utils-f0146383.js';
|
|
@@ -56,4 +56,4 @@ const NumericFacetValuesContainer = ({ i18n, label }, children) => {
|
|
|
56
56
|
|
|
57
57
|
export { NumericFacetValueLink as N, NumericFacetValuesContainer as a, formatHumanReadable as f };
|
|
58
58
|
|
|
59
|
-
//# sourceMappingURL=stencil-values-container-
|
|
59
|
+
//# sourceMappingURL=stencil-values-container-9a289d5e.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"file":"stencil-values-container-
|
|
1
|
+
{"file":"stencil-values-container-9a289d5e.js","mappings":";;;;;;;MAqBa,mBAAmB,GAAG,CAAC,EAClC,YAAY,EACZ,KAAK,EACL,IAAI,EACJ,UAAU,EACV,MAAM,EACN,SAAS,GACa;IACtB,MAAM,gBAAgB,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC,KAAK,KAC/C,cAAc,CAAC,KAAK,EAAE,UAAU,CAAC,CAClC,EAAE,KAAK,CAAC;IACT,OAAO,gBAAgB;UACnB,oBAAoB,CAAC,KAAK,EAAE,gBAAgB,EAAE,IAAI,CAAC;UACnD,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE;YACX,KAAK,EAAE,qBAAqB,CAAC,UAAU,CAAC,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,CAAC;YACvE,GAAG,EAAE,qBAAqB,CAAC,UAAU,CAAC,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,CAAC;SACpE,CAAC,CAAC;AACT,EAAE;AAEK,MAAM,qBAAqB,GAAG,CACnC,KAAa,EACb,IAAmC,EACnC,MAAuC,EACvC,SAA6C;IAE7C,IAAI;QACF,OAAO,SAAS,CAAC,KAAK,EAAE,IAAI,CAAC,SAAqB,CAAC,CAAC;KACrD;IAAC,OAAO,KAAK,EAAE;QACd,MAAM,CAAC,KAAK,CACV,qCAAqC,KAAK,qCAAqC,EAC/E,KAAK,CACN,CAAC;QACF,OAAO,KAAK,CAAC;KACd;AACH,CAAC,CAAC;AAEF,MAAM,cAAc,GAAG,CACrB,UAA2B,EAC3B,WAA4B;IAE5B,QACE,UAAU,CAAC,KAAK,KAAK,WAAW,CAAC,KAAK;QACtC,UAAU,CAAC,GAAG,KAAK,WAAW,CAAC,GAAG;QAClC,UAAU,CAAC,YAAY,KAAK,WAAW,CAAC,YAAY,EACpD;AACJ,CAAC;;ACtDD;;;MAGa,qBAAqB,GAE9B,CAAC,KAAK;IACR,MAAM,EAAC,UAAU,EAAE,eAAe,EAAE,IAAI,EAAE,OAAO,EAAC,GAAG,KAAK,CAAC;IAC3D,MAAM,YAAY,GAAG,mBAAmB,CAAC,KAAK,CAAC,CAAC;IAChD,MAAM,UAAU,GAAG,UAAU,CAAC,KAAK,KAAK,UAAU,CAAC;IACnD,QAAQ,eAAe;QACrB,KAAK,UAAU;YACb,QACE,EAAC,kBAAkB,IACjB,YAAY,EAAE,YAAY,EAC1B,eAAe,EAAE,UAAU,CAAC,eAAe,EAC3C,UAAU,EAAE,UAAU,EACtB,IAAI,EAAE,IAAI,EACV,OAAO,EAAE,MAAM,OAAO,EAAE;gBAExB,EAAC,wBAAwB,IACvB,YAAY,EAAE,YAAY,EAC1B,UAAU,EAAE,UAAU,GACI,CACT,EACrB;QACJ,KAAK,MAAM;YACT,QACE,EAAC,cAAc,IACb,YAAY,EAAE,YAAY,EAC1B,eAAe,EAAE,UAAU,CAAC,eAAe,EAC3C,UAAU,EAAE,UAAU,EACtB,IAAI,EAAE,IAAI,EACV,OAAO,EAAE,OAAO;gBAEhB,EAAC,wBAAwB,IACvB,YAAY,EAAE,YAAY,EAC1B,UAAU,EAAE,UAAU,GACI,CACb,EACjB;KACL;AACH;;AC5CA;;;MAGa,2BAA2B,GAEpC,CAAC,EAAC,IAAI,EAAE,KAAK,EAAC,EAAE,QAAQ;IAC1B,QACE,EAAC,gBAAgB,IAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK;QACxC,UAAI,KAAK,EAAC,MAAM,EAAC,IAAI,EAAC,QAAQ,IAC3B,QAAQ,CACN,CACY,EACnB;AACJ;;;;","names":[],"sources":["src/components/common/facets/numeric-facet/formatter.ts","src/components/common/facets/numeric-facet/stencil-value-link.tsx","src/components/common/facets/numeric-facet/stencil-values-container.tsx"],"sourcesContent":["import type {i18n} from 'i18next';\nimport {getFieldValueCaption} from '../../../../utils/field-utils';\nimport type {NumberFormatter} from '../../formats/format-common';\n\nexport interface FacetValueRange {\n endInclusive: boolean;\n start: number;\n end: number;\n label?: string;\n state: 'selected' | 'idle' | 'excluded';\n}\n\nexport interface FormatFacetValueRange {\n field: string;\n facetValue: FacetValueRange & {numberOfResults: number};\n manualRanges: FacetValueRange[];\n i18n: i18n;\n logger: Pick<Console, 'error'>;\n formatter: NumberFormatter;\n}\n\nexport const formatHumanReadable = ({\n manualRanges,\n field,\n i18n,\n facetValue,\n logger,\n formatter,\n}: FormatFacetValueRange) => {\n const manualRangeLabel = manualRanges.find((range) =>\n areRangesEqual(range, facetValue)\n )?.label;\n return manualRangeLabel\n ? getFieldValueCaption(field, manualRangeLabel, i18n)\n : i18n.t('to', {\n start: formatNumberLocalized(facetValue.start, i18n, logger, formatter),\n end: formatNumberLocalized(facetValue.end, i18n, logger, formatter),\n });\n};\n\nexport const formatNumberLocalized = (\n value: number,\n i18n: FormatFacetValueRange['i18n'],\n logger: FormatFacetValueRange['logger'],\n formatter: FormatFacetValueRange['formatter']\n) => {\n try {\n return formatter(value, i18n.languages as string[]);\n } catch (error) {\n logger.error(\n `atomic-numeric-facet facet value \"${value}\" could not be formatted correctly.`,\n error\n );\n return value;\n }\n};\n\nconst areRangesEqual = (\n firstRange: FacetValueRange,\n secondRange: FacetValueRange\n) => {\n return (\n firstRange.start === secondRange.start &&\n firstRange.end === secondRange.end &&\n firstRange.endInclusive === secondRange.endInclusive\n );\n};\n","import {FunctionalComponent, h} from '@stencil/core';\nimport {FacetValueCheckbox} from '../facet-value-checkbox/stencil-facet-value-checkbox';\nimport {FacetValueLabelHighlight} from '../facet-value-label-highlight/stencil-facet-value-label-highlight';\nimport {FacetValueLink} from '../facet-value-link/stencil-facet-value-link';\nimport {FormatFacetValueRange, formatHumanReadable} from './formatter';\n\ninterface NumericFacetValueLinkProps extends FormatFacetValueRange {\n onClick: () => void;\n logger: Pick<Console, 'error'>;\n displayValuesAs: 'checkbox' | 'link';\n}\n\n/**\n * @deprecated should only be used for Stencil components.\n */\nexport const NumericFacetValueLink: FunctionalComponent<\n NumericFacetValueLinkProps\n> = (props) => {\n const {facetValue, displayValuesAs, i18n, onClick} = props;\n const displayValue = formatHumanReadable(props);\n const isSelected = facetValue.state === 'selected';\n switch (displayValuesAs) {\n case 'checkbox':\n return (\n <FacetValueCheckbox\n displayValue={displayValue}\n numberOfResults={facetValue.numberOfResults}\n isSelected={isSelected}\n i18n={i18n}\n onClick={() => onClick()}\n >\n <FacetValueLabelHighlight\n displayValue={displayValue}\n isSelected={isSelected}\n ></FacetValueLabelHighlight>\n </FacetValueCheckbox>\n );\n case 'link':\n return (\n <FacetValueLink\n displayValue={displayValue}\n numberOfResults={facetValue.numberOfResults}\n isSelected={isSelected}\n i18n={i18n}\n onClick={onClick}\n >\n <FacetValueLabelHighlight\n displayValue={displayValue}\n isSelected={isSelected}\n ></FacetValueLabelHighlight>\n </FacetValueLink>\n );\n }\n};\n","import {FunctionalComponent, h} from '@stencil/core';\nimport {i18n} from 'i18next';\nimport {FacetValuesGroup} from '../facet-values-group/stencil-facet-values-group';\n\ninterface NumericFacetValuesContainerProps {\n i18n: i18n;\n label: string;\n}\n\n/**\n * @deprecated should only be used for Stencil components.\n */\nexport const NumericFacetValuesContainer: FunctionalComponent<\n NumericFacetValuesContainerProps\n> = ({i18n, label}, children) => {\n return (\n <FacetValuesGroup i18n={i18n} label={label}>\n <ul class=\"mt-3\" part=\"values\">\n {children}\n </ul>\n </FacetValuesGroup>\n );\n};\n"],"version":3}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { h } from './index-62c2216d.js';
|
|
2
2
|
import { p as parseDate } from './date-utils-c96893e8.js';
|
|
3
3
|
import { g as getFieldValueCaption } from './field-utils-f0146383.js';
|
|
4
|
-
import { r as randomID } from './utils-
|
|
4
|
+
import { r as randomID } from './utils-b6c5d1af.js';
|
|
5
5
|
import { H as Hidden } from './initialization-utils-de209ce3.js';
|
|
6
6
|
import { F as FacetHeader, b as FacetPlaceholder, a as FacetContainer } from './stencil-facet-placeholder-cfcb96f1.js';
|
|
7
7
|
import { F as FacetValueLabelHighlight } from './stencil-facet-value-label-highlight-20a0e20f.js';
|
|
@@ -209,4 +209,4 @@ class TimeframeFacetCommon {
|
|
|
209
209
|
|
|
210
210
|
export { TimeframeFacetCommon as T };
|
|
211
211
|
|
|
212
|
-
//# sourceMappingURL=timeframe-facet-common-
|
|
212
|
+
//# sourceMappingURL=timeframe-facet-common-4d568ab2.js.map
|
package/dist/esm/{timeframe-facet-common-cefe1400.js.map → timeframe-facet-common-4d568ab2.js.map}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"file":"timeframe-facet-common-cefe1400.js","mappings":"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","names":[],"sources":["src/components/common/facets/timeframe-facet-common.tsx"],"sourcesContent":["import {FocusTargetController} from '@/src/utils/stencil-accessibility-utils';\nimport {\n DateFacet,\n DateFacetValue,\n DateFilter,\n DateRangeOptions,\n DateRangeRequest,\n FacetConditionsManager,\n RangeFacetSortCriterion,\n RelativeDate,\n RelativeDatePeriod,\n RelativeDateUnit,\n SearchStatusState,\n} from '@coveo/headless';\nimport {h, VNode} from '@stencil/core';\nimport {parseDate} from '../../../utils/date-utils';\nimport {getFieldValueCaption} from '../../../utils/field-utils';\nimport {randomID} from '../../../utils/utils';\nimport {InsightBindings} from '../../insight/atomic-insight-interface/atomic-insight-interface';\nimport {Bindings as SearchBindings} from '../../search/atomic-search-interface/atomic-search-interface';\nimport {Hidden} from '../stencil-hidden';\nimport {FacetInfo} from './facet-common-store';\nimport {FacetContainer} from './facet-container/stencil-facet-container';\nimport {FacetHeader} from './facet-header/stencil-facet-header';\nimport {FacetPlaceholder} from './facet-placeholder/stencil-facet-placeholder';\nimport {FacetValueLabelHighlight} from './facet-value-label-highlight/stencil-facet-value-label-highlight';\nimport {FacetValueLink} from './facet-value-link/stencil-facet-value-link';\nimport {FacetValuesGroup} from './facet-values-group/stencil-facet-values-group';\nimport {initializePopover} from './popover/popover-type';\nimport {shouldDisplayInputForFacetRange} from './stencil-facet-common';\n\nexport interface Timeframe {\n period: RelativeDatePeriod;\n unit?: RelativeDateUnit;\n amount?: number;\n label?: string;\n}\n\ninterface TimeframeFacetCommonOptions {\n facetId?: string;\n host: HTMLElement;\n bindings: SearchBindings | InsightBindings;\n label: string;\n field: string;\n headingLevel: number;\n dependsOn: Record<string, string>;\n withDatePicker: boolean;\n setFacetId(id: string): string;\n getSearchStatusState(): SearchStatusState;\n buildDependenciesManager(facetId: string): FacetConditionsManager;\n deserializeRelativeDate(date: string): RelativeDate;\n buildDateRange(config: DateRangeOptions): DateRangeRequest;\n initializeFacetForDatePicker(): DateFacet;\n initializeFacetForDateRange(values: DateRangeRequest[]): DateFacet;\n initializeFilter(): DateFilter;\n min?: string;\n max?: string;\n sortCriteria: RangeFacetSortCriterion;\n}\n\ninterface TimeframeFacetCommonRenderProps {\n hasError: boolean;\n firstSearchExecuted: boolean;\n isCollapsed: boolean;\n headerFocus: FocusTargetController;\n onToggleCollapse: () => boolean;\n}\n\nexport class TimeframeFacetCommon {\n private facetId?: string;\n private facetForDatePicker?: DateFacet;\n private facetForDateRange?: DateFacet;\n private filter?: DateFilter;\n private manualTimeframes: Timeframe[] = [];\n private facetForDateRangeDependenciesManager?: FacetConditionsManager;\n private facetForDatePickerDependenciesManager?: FacetConditionsManager;\n private filterDependenciesManager?: FacetConditionsManager;\n\n constructor(private props: TimeframeFacetCommonOptions) {\n this.facetId = this.determineFacetId;\n this.props.setFacetId(this.facetId);\n\n this.manualTimeframes = this.getManualTimeframes();\n\n // Initialize two facets: One that is actually used to display values for end users, which only exists\n // if we need to display something to the end user (ie: timeframes > 0)\n\n // A second facet is initialized only to verify the results count. It is never used to display results to end user.\n // It serves as a way to determine if the input should be rendered or not, independent of the ranges configured in the component\n if (this.manualTimeframes.length > 0) {\n this.facetForDateRange = this.props.initializeFacetForDateRange(\n this.currentValues\n );\n }\n\n if (this.props.withDatePicker) {\n this.facetForDatePicker = this.props.initializeFacetForDatePicker();\n this.facetForDatePickerDependenciesManager =\n this.props.buildDependenciesManager(\n this.facetForDatePicker.state.facetId\n );\n this.filter = this.props.initializeFilter();\n }\n\n if (this.facetForDateRange) {\n this.facetForDateRangeDependenciesManager =\n this.props.buildDependenciesManager(\n this.facetForDateRange?.state.facetId\n );\n }\n\n if (this.filter) {\n this.filterDependenciesManager = this.props.buildDependenciesManager(\n this.filter?.state.facetId\n );\n }\n\n this.registerFacetToStore();\n }\n\n private get determineFacetId() {\n if (this.props.facetId) {\n return this.props.facetId;\n }\n\n if (this.props.bindings.store.state.dateFacets[this.props.field]) {\n return randomID(`${this.props.field}_`);\n }\n\n return this.props.field;\n }\n\n private get enabled() {\n return (\n this.facetForDateRange?.state.enabled ??\n this.filter?.state.enabled ??\n true\n );\n }\n\n private get valuesToRender() {\n return (\n this.facetForDateRange?.state.values.filter(\n (value) => value.numberOfResults || value.state !== 'idle'\n ) || []\n );\n }\n\n private get shouldRenderValues() {\n return !this.hasInputRange && !!this.valuesToRender.length;\n }\n\n private get shouldRenderFacet() {\n return this.shouldRenderInput || this.shouldRenderValues;\n }\n\n private get shouldRenderInput() {\n return shouldDisplayInputForFacetRange({\n hasInput: this.props.withDatePicker,\n hasInputRange: this.hasInputRange,\n searchStatusState: this.props.getSearchStatusState(),\n facetValues: this.facetForDatePicker?.state?.values || [],\n });\n }\n\n private get hasValues() {\n if (this.facetForDatePicker?.state.values.length) {\n return true;\n }\n\n return !!this.valuesToRender.length;\n }\n\n private get numberOfSelectedValues() {\n if (this.filter?.state?.range) {\n return 1;\n }\n\n return (\n this.facetForDateRange?.state.values.filter(\n ({state}) => state === 'selected'\n ).length || 0\n );\n }\n\n private get hasInputRange() {\n return !!this.filter?.state.range;\n }\n\n public get currentValues(): DateRangeRequest[] {\n return this.manualTimeframes.map(({period, amount, unit}) =>\n period === 'past'\n ? this.props.buildDateRange({\n start: {period, unit, amount},\n end: {period: 'now'},\n })\n : this.props.buildDateRange({\n start: {period: 'now'},\n end: {period, unit, amount},\n })\n );\n }\n\n public disconnectedCallback() {\n if (this.props.host.isConnected) {\n return;\n }\n this.facetForDateRangeDependenciesManager?.stopWatching();\n this.facetForDatePickerDependenciesManager?.stopWatching();\n this.filterDependenciesManager?.stopWatching();\n }\n\n private get isHidden() {\n return !this.shouldRenderFacet || !this.enabled;\n }\n\n private registerFacetToStore() {\n const facetInfo: FacetInfo = {\n label: () => this.props.bindings.i18n.t(this.props.label),\n facetId: this.facetId!,\n element: this.props.host,\n isHidden: () => this.isHidden,\n };\n\n this.props.bindings.store.registerFacet('dateFacets', {\n ...facetInfo,\n format: (value) => this.formatFacetValue(value),\n });\n\n initializePopover(this.props.host, {\n ...facetInfo,\n hasValues: () => this.hasValues,\n numberOfActiveValues: () => this.numberOfSelectedValues,\n });\n\n if (this.filter) {\n this.props.bindings.store.state.dateFacets[this.filter.state.facetId] =\n this.props.bindings.store.state.dateFacets[this.facetId!];\n }\n }\n\n private getManualTimeframes(): Timeframe[] {\n return Array.from(this.props.host.querySelectorAll('atomic-timeframe')).map(\n ({label, amount, unit, period}) => ({\n label,\n amount,\n unit,\n period,\n })\n );\n }\n\n private formatFacetValue(facetValue: DateFacetValue) {\n try {\n const startDate = this.props.deserializeRelativeDate(facetValue.start);\n const relativeDate =\n startDate.period === 'past'\n ? startDate\n : this.props.deserializeRelativeDate(facetValue.end);\n const timeframe = this.getManualTimeframes().find(\n (timeframe) =>\n timeframe.period === relativeDate.period &&\n timeframe.unit === relativeDate.unit &&\n timeframe.amount === relativeDate.amount\n );\n\n if (timeframe?.label) {\n return getFieldValueCaption(\n this.props.field,\n timeframe.label,\n this.props.bindings.i18n\n );\n }\n return this.props.bindings.i18n.t(\n `${relativeDate.period}-${relativeDate.unit}`,\n {\n count: relativeDate.amount,\n }\n );\n } catch (error) {\n return this.props.bindings.i18n.t('to', {\n start: parseDate(facetValue.start).format('YYYY-MM-DD'),\n end: parseDate(facetValue.end).format('YYYY-MM-DD'),\n });\n }\n }\n private renderValues() {\n return this.renderValuesContainer(\n this.valuesToRender.map((value) => this.renderValue(value))\n );\n }\n private renderValue(facetValue: DateFacetValue) {\n const displayValue = this.formatFacetValue(facetValue);\n const isSelected = facetValue.state === 'selected';\n const isExcluded = facetValue.state === 'excluded';\n return (\n <FacetValueLink\n displayValue={displayValue}\n isSelected={isSelected}\n numberOfResults={facetValue.numberOfResults}\n i18n={this.props.bindings.i18n}\n onClick={() => this.facetForDateRange!.toggleSingleSelect(facetValue)}\n >\n <FacetValueLabelHighlight\n displayValue={displayValue}\n isSelected={isSelected}\n isExcluded={isExcluded}\n ></FacetValueLabelHighlight>\n </FacetValueLink>\n );\n }\n\n private renderValuesContainer(children: VNode[]) {\n return (\n <FacetValuesGroup\n i18n={this.props.bindings.i18n}\n label={this.props.label}\n >\n <ul class=\"mt-3\" part=\"values\">\n {children}\n </ul>\n </FacetValuesGroup>\n );\n }\n\n private renderHeader(\n isCollapsed: boolean,\n headerFocus: FocusTargetController,\n onToggleCollapse: () => void\n ) {\n return (\n <FacetHeader\n i18n={this.props.bindings.i18n}\n label={this.props.label}\n onClearFilters={() => {\n headerFocus.focusAfterSearch();\n if (this.filter?.state.range) {\n this.filter?.clear();\n return;\n }\n this.facetForDateRange?.deselectAll();\n }}\n numberOfActiveValues={this.numberOfSelectedValues}\n isCollapsed={isCollapsed}\n headingLevel={this.props.headingLevel}\n onToggleCollapse={onToggleCollapse}\n headerRef={(el) => headerFocus.setTarget(el)}\n ></FacetHeader>\n );\n }\n\n private renderDateInput() {\n return (\n <atomic-stencil-facet-date-input\n min={this.props.min}\n max={this.props.max}\n bindings={this.props.bindings}\n label={this.props.label}\n facetId={this.filter!.state!.facetId}\n rangeGetter={() => this.filter!.state.range}\n rangeSetter={(request: DateRangeRequest) => {\n this.filter!.setRange(request);\n }}\n ></atomic-stencil-facet-date-input>\n );\n }\n\n public render({\n hasError,\n firstSearchExecuted,\n isCollapsed,\n headerFocus,\n onToggleCollapse,\n }: TimeframeFacetCommonRenderProps) {\n if (hasError || !this.enabled) {\n return <Hidden></Hidden>;\n }\n\n if (!firstSearchExecuted) {\n return (\n <FacetPlaceholder\n numberOfValues={this.currentValues.length}\n isCollapsed={isCollapsed}\n ></FacetPlaceholder>\n );\n }\n\n if (!this.shouldRenderFacet) {\n return <Hidden></Hidden>;\n }\n\n return (\n <FacetContainer>\n {this.renderHeader(isCollapsed, headerFocus, onToggleCollapse)}\n {!isCollapsed && [\n this.shouldRenderValues && this.renderValues(),\n this.shouldRenderInput && this.renderDateInput(),\n ]}\n </FacetContainer>\n );\n }\n}\n"],"version":3}
|
|
1
|
+
{"file":"timeframe-facet-common-4d568ab2.js","mappings":"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","names":[],"sources":["src/components/common/facets/timeframe-facet-common.tsx"],"sourcesContent":["import {FocusTargetController} from '@/src/utils/stencil-accessibility-utils';\nimport {\n DateFacet,\n DateFacetValue,\n DateFilter,\n DateRangeOptions,\n DateRangeRequest,\n FacetConditionsManager,\n RangeFacetSortCriterion,\n RelativeDate,\n RelativeDatePeriod,\n RelativeDateUnit,\n SearchStatusState,\n} from '@coveo/headless';\nimport {h, VNode} from '@stencil/core';\nimport {parseDate} from '../../../utils/date-utils';\nimport {getFieldValueCaption} from '../../../utils/field-utils';\nimport {randomID} from '../../../utils/utils';\nimport {InsightBindings} from '../../insight/atomic-insight-interface/atomic-insight-interface';\nimport {Bindings as SearchBindings} from '../../search/atomic-search-interface/atomic-search-interface';\nimport {Hidden} from '../stencil-hidden';\nimport {FacetInfo} from './facet-common-store';\nimport {FacetContainer} from './facet-container/stencil-facet-container';\nimport {FacetHeader} from './facet-header/stencil-facet-header';\nimport {FacetPlaceholder} from './facet-placeholder/stencil-facet-placeholder';\nimport {FacetValueLabelHighlight} from './facet-value-label-highlight/stencil-facet-value-label-highlight';\nimport {FacetValueLink} from './facet-value-link/stencil-facet-value-link';\nimport {FacetValuesGroup} from './facet-values-group/stencil-facet-values-group';\nimport {initializePopover} from './popover/popover-type';\nimport {shouldDisplayInputForFacetRange} from './stencil-facet-common';\n\nexport interface Timeframe {\n period: RelativeDatePeriod;\n unit?: RelativeDateUnit;\n amount?: number;\n label?: string;\n}\n\ninterface TimeframeFacetCommonOptions {\n facetId?: string;\n host: HTMLElement;\n bindings: SearchBindings | InsightBindings;\n label: string;\n field: string;\n headingLevel: number;\n dependsOn: Record<string, string>;\n withDatePicker: boolean;\n setFacetId(id: string): string;\n getSearchStatusState(): SearchStatusState;\n buildDependenciesManager(facetId: string): FacetConditionsManager;\n deserializeRelativeDate(date: string): RelativeDate;\n buildDateRange(config: DateRangeOptions): DateRangeRequest;\n initializeFacetForDatePicker(): DateFacet;\n initializeFacetForDateRange(values: DateRangeRequest[]): DateFacet;\n initializeFilter(): DateFilter;\n min?: string;\n max?: string;\n sortCriteria: RangeFacetSortCriterion;\n}\n\ninterface TimeframeFacetCommonRenderProps {\n hasError: boolean;\n firstSearchExecuted: boolean;\n isCollapsed: boolean;\n headerFocus: FocusTargetController;\n onToggleCollapse: () => boolean;\n}\n\nexport class TimeframeFacetCommon {\n private facetId?: string;\n private facetForDatePicker?: DateFacet;\n private facetForDateRange?: DateFacet;\n private filter?: DateFilter;\n private manualTimeframes: Timeframe[] = [];\n private facetForDateRangeDependenciesManager?: FacetConditionsManager;\n private facetForDatePickerDependenciesManager?: FacetConditionsManager;\n private filterDependenciesManager?: FacetConditionsManager;\n\n constructor(private props: TimeframeFacetCommonOptions) {\n this.facetId = this.determineFacetId;\n this.props.setFacetId(this.facetId);\n\n this.manualTimeframes = this.getManualTimeframes();\n\n // Initialize two facets: One that is actually used to display values for end users, which only exists\n // if we need to display something to the end user (ie: timeframes > 0)\n\n // A second facet is initialized only to verify the results count. It is never used to display results to end user.\n // It serves as a way to determine if the input should be rendered or not, independent of the ranges configured in the component\n if (this.manualTimeframes.length > 0) {\n this.facetForDateRange = this.props.initializeFacetForDateRange(\n this.currentValues\n );\n }\n\n if (this.props.withDatePicker) {\n this.facetForDatePicker = this.props.initializeFacetForDatePicker();\n this.facetForDatePickerDependenciesManager =\n this.props.buildDependenciesManager(\n this.facetForDatePicker.state.facetId\n );\n this.filter = this.props.initializeFilter();\n }\n\n if (this.facetForDateRange) {\n this.facetForDateRangeDependenciesManager =\n this.props.buildDependenciesManager(\n this.facetForDateRange?.state.facetId\n );\n }\n\n if (this.filter) {\n this.filterDependenciesManager = this.props.buildDependenciesManager(\n this.filter?.state.facetId\n );\n }\n\n this.registerFacetToStore();\n }\n\n private get determineFacetId() {\n if (this.props.facetId) {\n return this.props.facetId;\n }\n\n if (this.props.bindings.store.state.dateFacets[this.props.field]) {\n return randomID(`${this.props.field}_`);\n }\n\n return this.props.field;\n }\n\n private get enabled() {\n return (\n this.facetForDateRange?.state.enabled ??\n this.filter?.state.enabled ??\n true\n );\n }\n\n private get valuesToRender() {\n return (\n this.facetForDateRange?.state.values.filter(\n (value) => value.numberOfResults || value.state !== 'idle'\n ) || []\n );\n }\n\n private get shouldRenderValues() {\n return !this.hasInputRange && !!this.valuesToRender.length;\n }\n\n private get shouldRenderFacet() {\n return this.shouldRenderInput || this.shouldRenderValues;\n }\n\n private get shouldRenderInput() {\n return shouldDisplayInputForFacetRange({\n hasInput: this.props.withDatePicker,\n hasInputRange: this.hasInputRange,\n searchStatusState: this.props.getSearchStatusState(),\n facetValues: this.facetForDatePicker?.state?.values || [],\n });\n }\n\n private get hasValues() {\n if (this.facetForDatePicker?.state.values.length) {\n return true;\n }\n\n return !!this.valuesToRender.length;\n }\n\n private get numberOfSelectedValues() {\n if (this.filter?.state?.range) {\n return 1;\n }\n\n return (\n this.facetForDateRange?.state.values.filter(\n ({state}) => state === 'selected'\n ).length || 0\n );\n }\n\n private get hasInputRange() {\n return !!this.filter?.state.range;\n }\n\n public get currentValues(): DateRangeRequest[] {\n return this.manualTimeframes.map(({period, amount, unit}) =>\n period === 'past'\n ? this.props.buildDateRange({\n start: {period, unit, amount},\n end: {period: 'now'},\n })\n : this.props.buildDateRange({\n start: {period: 'now'},\n end: {period, unit, amount},\n })\n );\n }\n\n public disconnectedCallback() {\n if (this.props.host.isConnected) {\n return;\n }\n this.facetForDateRangeDependenciesManager?.stopWatching();\n this.facetForDatePickerDependenciesManager?.stopWatching();\n this.filterDependenciesManager?.stopWatching();\n }\n\n private get isHidden() {\n return !this.shouldRenderFacet || !this.enabled;\n }\n\n private registerFacetToStore() {\n const facetInfo: FacetInfo = {\n label: () => this.props.bindings.i18n.t(this.props.label),\n facetId: this.facetId!,\n element: this.props.host,\n isHidden: () => this.isHidden,\n };\n\n this.props.bindings.store.registerFacet('dateFacets', {\n ...facetInfo,\n format: (value) => this.formatFacetValue(value),\n });\n\n initializePopover(this.props.host, {\n ...facetInfo,\n hasValues: () => this.hasValues,\n numberOfActiveValues: () => this.numberOfSelectedValues,\n });\n\n if (this.filter) {\n this.props.bindings.store.state.dateFacets[this.filter.state.facetId] =\n this.props.bindings.store.state.dateFacets[this.facetId!];\n }\n }\n\n private getManualTimeframes(): Timeframe[] {\n return Array.from(this.props.host.querySelectorAll('atomic-timeframe')).map(\n ({label, amount, unit, period}) => ({\n label,\n amount,\n unit,\n period,\n })\n );\n }\n\n private formatFacetValue(facetValue: DateFacetValue) {\n try {\n const startDate = this.props.deserializeRelativeDate(facetValue.start);\n const relativeDate =\n startDate.period === 'past'\n ? startDate\n : this.props.deserializeRelativeDate(facetValue.end);\n const timeframe = this.getManualTimeframes().find(\n (timeframe) =>\n timeframe.period === relativeDate.period &&\n timeframe.unit === relativeDate.unit &&\n timeframe.amount === relativeDate.amount\n );\n\n if (timeframe?.label) {\n return getFieldValueCaption(\n this.props.field,\n timeframe.label,\n this.props.bindings.i18n\n );\n }\n return this.props.bindings.i18n.t(\n `${relativeDate.period}-${relativeDate.unit}`,\n {\n count: relativeDate.amount,\n }\n );\n } catch (error) {\n return this.props.bindings.i18n.t('to', {\n start: parseDate(facetValue.start).format('YYYY-MM-DD'),\n end: parseDate(facetValue.end).format('YYYY-MM-DD'),\n });\n }\n }\n private renderValues() {\n return this.renderValuesContainer(\n this.valuesToRender.map((value) => this.renderValue(value))\n );\n }\n private renderValue(facetValue: DateFacetValue) {\n const displayValue = this.formatFacetValue(facetValue);\n const isSelected = facetValue.state === 'selected';\n const isExcluded = facetValue.state === 'excluded';\n return (\n <FacetValueLink\n displayValue={displayValue}\n isSelected={isSelected}\n numberOfResults={facetValue.numberOfResults}\n i18n={this.props.bindings.i18n}\n onClick={() => this.facetForDateRange!.toggleSingleSelect(facetValue)}\n >\n <FacetValueLabelHighlight\n displayValue={displayValue}\n isSelected={isSelected}\n isExcluded={isExcluded}\n ></FacetValueLabelHighlight>\n </FacetValueLink>\n );\n }\n\n private renderValuesContainer(children: VNode[]) {\n return (\n <FacetValuesGroup\n i18n={this.props.bindings.i18n}\n label={this.props.label}\n >\n <ul class=\"mt-3\" part=\"values\">\n {children}\n </ul>\n </FacetValuesGroup>\n );\n }\n\n private renderHeader(\n isCollapsed: boolean,\n headerFocus: FocusTargetController,\n onToggleCollapse: () => void\n ) {\n return (\n <FacetHeader\n i18n={this.props.bindings.i18n}\n label={this.props.label}\n onClearFilters={() => {\n headerFocus.focusAfterSearch();\n if (this.filter?.state.range) {\n this.filter?.clear();\n return;\n }\n this.facetForDateRange?.deselectAll();\n }}\n numberOfActiveValues={this.numberOfSelectedValues}\n isCollapsed={isCollapsed}\n headingLevel={this.props.headingLevel}\n onToggleCollapse={onToggleCollapse}\n headerRef={(el) => headerFocus.setTarget(el)}\n ></FacetHeader>\n );\n }\n\n private renderDateInput() {\n return (\n <atomic-stencil-facet-date-input\n min={this.props.min}\n max={this.props.max}\n bindings={this.props.bindings}\n label={this.props.label}\n facetId={this.filter!.state!.facetId}\n rangeGetter={() => this.filter!.state.range}\n rangeSetter={(request: DateRangeRequest) => {\n this.filter!.setRange(request);\n }}\n ></atomic-stencil-facet-date-input>\n );\n }\n\n public render({\n hasError,\n firstSearchExecuted,\n isCollapsed,\n headerFocus,\n onToggleCollapse,\n }: TimeframeFacetCommonRenderProps) {\n if (hasError || !this.enabled) {\n return <Hidden></Hidden>;\n }\n\n if (!firstSearchExecuted) {\n return (\n <FacetPlaceholder\n numberOfValues={this.currentValues.length}\n isCollapsed={isCollapsed}\n ></FacetPlaceholder>\n );\n }\n\n if (!this.shouldRenderFacet) {\n return <Hidden></Hidden>;\n }\n\n return (\n <FacetContainer>\n {this.renderHeader(isCollapsed, headerFocus, onToggleCollapse)}\n {!isCollapsed && [\n this.shouldRenderValues && this.renderValues(),\n this.shouldRenderInput && this.renderDateInput(),\n ]}\n </FacetContainer>\n );\n }\n}\n"],"version":3}
|
|
@@ -119,6 +119,6 @@ async function defer() {
|
|
|
119
119
|
return new Promise((resolve) => setTimeout(resolve, 10));
|
|
120
120
|
}
|
|
121
121
|
|
|
122
|
-
export {
|
|
122
|
+
export { containsVisualElement as a, aggregate as b, camelToKebab as c, defer as d, elementHasAncestorTag as e, isVisualNode as f, isFocusingOut as g, spreadProperties as h, isElementNode as i, sortByDocumentPosition as j, kebabToCamel as k, sanitizeStyle as l, once as o, parseXML as p, randomID as r, snakeToCamel as s, titleToKebab as t };
|
|
123
123
|
|
|
124
|
-
//# sourceMappingURL=utils-
|
|
124
|
+
//# sourceMappingURL=utils-b6c5d1af.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"file":"utils-
|
|
1
|
+
{"file":"utils-b6c5d1af.js","mappings":"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","names":[],"sources":["src/utils/utils.ts"],"sourcesContent":["import DOMPurify from 'dompurify';\n\n/**\n * Returns a function that can be executed only once\n */\nexport function once<T extends unknown[]>(fn: (...args: T) => unknown) {\n let result: unknown;\n return function (this: unknown, ...args: T) {\n if (fn) {\n result = fn.apply(this, args);\n fn = () => {};\n }\n return result;\n };\n}\n\nexport function camelToKebab(value: string) {\n return value.replace(/([a-z0-9]|(?=[A-Z]))([A-Z])/g, '$1-$2').toLowerCase();\n}\n\nexport function kebabToCamel(value: string) {\n return value.replace(/-./g, (x) => x[1].toUpperCase());\n}\n\nexport function snakeToCamel(value: string) {\n return value\n .toLowerCase()\n .replace(/([_][a-z])/g, (group) => group.toUpperCase().replace('_', ''));\n}\n\nexport function titleToKebab(value: string) {\n return value.replace(/\\s/g, '-').toLowerCase();\n}\n\nexport function randomID(prepend?: string, length = 5) {\n const randomStr = Math.random()\n .toString(36)\n .substring(2, 2 + length);\n if (!prepend) {\n return randomStr;\n }\n return prepend + randomStr;\n}\n\nexport function getRandomArbitrary(min: number, max: number) {\n return Math.random() * (max - min) + min;\n}\n\nexport function parseXML(string: string) {\n return new window.DOMParser().parseFromString(string, 'text/xml');\n}\n\nexport function parseHTML(string: string) {\n return new window.DOMParser().parseFromString(string, 'text/html');\n}\n\nexport function isElementNode(node: Node): node is Element {\n return node.nodeType === Node.ELEMENT_NODE;\n}\n\nexport function isTextNode(node: Node): node is Text {\n return node.nodeType === Node.TEXT_NODE;\n}\n\nexport function isVisualNode(node: Node) {\n if (isElementNode(node)) {\n return !(node instanceof HTMLStyleElement);\n }\n if (isTextNode(node)) {\n return !!node.textContent?.trim();\n }\n return false;\n}\n\nexport function containsVisualElement(node: Node) {\n for (let i = 0; i < node.childNodes.length; i++) {\n const child = node.childNodes.item(i);\n if (isVisualNode(child)) {\n return true;\n }\n }\n return false;\n}\n\nexport function elementHasAncestorTag(\n el: HTMLElement,\n tagName: string\n): boolean {\n const parentElement = el.parentElement;\n if (!parentElement) {\n return false;\n }\n if (parentElement.tagName === tagName.toUpperCase()) {\n return true;\n }\n return elementHasAncestorTag(parentElement, tagName);\n}\n\nexport function sanitizeStyle(style: string) {\n const purifiedOuterHTML = DOMPurify.sanitize(`<style>${style}</style>`, {\n ALLOWED_TAGS: ['style'],\n ALLOWED_ATTR: [],\n FORCE_BODY: true,\n });\n const wrapperEl = document.createElement('div');\n // deepcode ignore ReactSetInnerHtml: sanitized by dompurify\n wrapperEl.innerHTML = purifiedOuterHTML;\n return wrapperEl.querySelector('style')?.innerHTML;\n}\n\nexport function getFocusedElement(\n rootElement: Document | ShadowRoot = document\n): Element | null {\n const activeElement = rootElement.activeElement;\n if (activeElement?.shadowRoot) {\n return getFocusedElement(activeElement.shadowRoot) ?? activeElement;\n }\n return activeElement;\n}\n\nexport function isFocusingOut(event: FocusEvent) {\n return (\n document.hasFocus() &&\n (!(event.relatedTarget instanceof Node) ||\n (event.currentTarget instanceof Node &&\n !event.currentTarget.contains(event.relatedTarget)))\n );\n}\n\n// https://terodox.tech/how-to-tell-if-an-element-is-in-the-dom-including-the-shadow-dom/\nexport function isInDocument(element: Node) {\n let currentElement = element;\n while (currentElement?.parentNode) {\n if (currentElement.parentNode === document) {\n return true;\n } else if (currentElement.parentNode instanceof ShadowRoot) {\n currentElement = currentElement.parentNode.host;\n } else {\n currentElement = currentElement.parentNode;\n }\n }\n return false;\n}\n\nexport function isPropValuesEqual<ObjectWithProperties extends object>(\n subject: ObjectWithProperties,\n target: ObjectWithProperties,\n propNames: (keyof ObjectWithProperties)[]\n) {\n return propNames.every((propName) => subject[propName] === target[propName]);\n}\n\nexport function getParent(element: Element | ShadowRoot) {\n if (element.parentNode) {\n return element.parentNode as Element | ShadowRoot;\n }\n if (element instanceof ShadowRoot) {\n return element.host;\n }\n return null;\n}\n\nexport function isAncestorOf(\n ancestor: Element | ShadowRoot,\n element: Element | ShadowRoot\n): boolean {\n if (element === ancestor) {\n return true;\n }\n if (\n element instanceof HTMLElement &&\n element.assignedSlot &&\n isAncestorOf(ancestor, element.assignedSlot)\n ) {\n return true;\n }\n const parent = getParent(element);\n return parent === null ? false : isAncestorOf(ancestor, parent);\n}\n\nexport function aggregate<V, K extends PropertyKey>(\n values: readonly V[],\n getKey: (value: V, index: number) => K\n): Record<K, V[] | undefined> {\n return values.reduce(\n (aggregatedValues, value, i) => {\n const key = getKey(value, i);\n if (!(key in aggregatedValues)) {\n aggregatedValues[key] = [];\n }\n aggregatedValues[key]!.push(value);\n return aggregatedValues;\n },\n <Record<K, V[] | undefined>>{}\n );\n}\n\n/**\n * Similar as a classic spread, but preserve all characteristics of properties (e.g. getter/setter).\n * See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/assign#description\n * for an explanation why (spread & assign work similarly).\n * @param objects the objects to \"spread\" together\n * @returns the spread result\n */\nexport function spreadProperties<Output extends object = {}>(\n ...objects: object[]\n) {\n const returnObject = {};\n for (const obj of objects) {\n Object.defineProperties(\n returnObject,\n Object.getOwnPropertyDescriptors(obj)\n );\n }\n return returnObject as Output;\n}\n\nexport const sortByDocumentPosition = (a: Node, b: Node): 1 | -1 =>\n a.compareDocumentPosition(b) & Node.DOCUMENT_POSITION_FOLLOWING ? -1 : 1;\n\nexport async function defer() {\n return new Promise<void>((resolve) => setTimeout(resolve, 10));\n}\n"],"version":3}
|
package/dist/esm/version.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export const headlessVersion = '3.35.
|
|
2
|
-
export const atomicVersion = '3.39.
|
|
1
|
+
export const headlessVersion = '3.35.2';
|
|
2
|
+
export const atomicVersion = '3.39.1';
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { type Pagination, type PaginationState, type ProductListing, type Search } from '@coveo/headless/commerce';
|
|
2
|
-
import { LitElement
|
|
2
|
+
import { LitElement } from 'lit';
|
|
3
3
|
import type { InitializableComponent } from "../../../decorators/types";
|
|
4
4
|
import { AriaLiveRegionController } from "../../../utils/accessibility-utils";
|
|
5
5
|
import type { CommerceBindings } from '../atomic-commerce-interface/atomic-commerce-interface';
|
|
@@ -18,11 +18,11 @@ import type { CommerceBindings } from '../atomic-commerce-interface/atomic-comme
|
|
|
18
18
|
* @event atomic/scrollToTop - Emitted when the user clicks the next or previous button, or a page button.
|
|
19
19
|
*/
|
|
20
20
|
export declare class AtomicCommercePager extends LitElement implements InitializableComponent<CommerceBindings> {
|
|
21
|
-
private static propsSchema;
|
|
22
|
-
private radioGroupName;
|
|
23
21
|
bindings: CommerceBindings;
|
|
24
22
|
error: Error;
|
|
25
23
|
private isAppLoaded;
|
|
24
|
+
pager: Pagination;
|
|
25
|
+
listingOrSearch: ProductListing | Search;
|
|
26
26
|
pagerState: PaginationState;
|
|
27
27
|
/**
|
|
28
28
|
* The maximum number of page buttons to display.
|
|
@@ -45,16 +45,14 @@ export declare class AtomicCommercePager extends LitElement implements Initializ
|
|
|
45
45
|
*/
|
|
46
46
|
nextButtonIcon: string;
|
|
47
47
|
protected ariaMessage: AriaLiveRegionController;
|
|
48
|
-
|
|
49
|
-
listingOrSearch: ProductListing | Search;
|
|
48
|
+
private radioGroupName;
|
|
50
49
|
private previousButton;
|
|
51
50
|
private nextButton;
|
|
51
|
+
constructor();
|
|
52
52
|
initialize(): void;
|
|
53
|
-
willUpdate(changedProperties: PropertyValues): void;
|
|
54
53
|
render(): import("lit").TemplateResult<1>;
|
|
55
54
|
private initFocusTargets;
|
|
56
55
|
private handleFocus;
|
|
57
|
-
private validateProps;
|
|
58
56
|
private focusOnFirstResultAndScrollToTop;
|
|
59
57
|
private announcePageLoaded;
|
|
60
58
|
}
|
|
@@ -2,6 +2,7 @@ import type { LogLevel } from '@coveo/headless';
|
|
|
2
2
|
import type { i18n } from 'i18next';
|
|
3
3
|
import type { LitElement, ReactiveController } from 'lit';
|
|
4
4
|
import type { AnyBindings, AnyEngineType } from './bindings';
|
|
5
|
+
import "../atomic-aria-live/atomic-aria-live";
|
|
5
6
|
export type InitializeEventHandler = (bindings: AnyBindings) => void;
|
|
6
7
|
export type InitializeEvent = CustomEvent<InitializeEventHandler>;
|
|
7
8
|
export interface BaseAtomicInterface<EngineType extends AnyEngineType> {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { FunctionalComponent } from
|
|
2
|
-
interface ShowHideButtonProps {
|
|
1
|
+
import type { FunctionalComponent } from "../../../utils/functional-component-utils";
|
|
2
|
+
export interface ShowHideButtonProps {
|
|
3
3
|
moreResultsAvailable: boolean;
|
|
4
4
|
loadFullCollection: () => void;
|
|
5
5
|
showInitialChildren: boolean;
|
|
@@ -7,8 +7,4 @@ interface ShowHideButtonProps {
|
|
|
7
7
|
loadAllResults: string;
|
|
8
8
|
collapseResults: string;
|
|
9
9
|
}
|
|
10
|
-
|
|
11
|
-
* @deprecated should only be used for Stencil components.
|
|
12
|
-
*/
|
|
13
|
-
export declare const ShowHideButton: FunctionalComponent<ShowHideButtonProps>;
|
|
14
|
-
export {};
|
|
10
|
+
export declare const renderShowHideButton: FunctionalComponent<ShowHideButtonProps>;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { FunctionalComponent } from '../../../stencil-public-runtime';
|
|
2
|
+
interface ShowHideButtonProps {
|
|
3
|
+
moreResultsAvailable: boolean;
|
|
4
|
+
loadFullCollection: () => void;
|
|
5
|
+
showInitialChildren: boolean;
|
|
6
|
+
toggleShowInitialChildren: () => void;
|
|
7
|
+
loadAllResults: string;
|
|
8
|
+
collapseResults: string;
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* @deprecated should only be used for Stencil components.
|
|
12
|
+
*/
|
|
13
|
+
export declare const ShowHideButton: FunctionalComponent<ShowHideButtonProps>;
|
|
14
|
+
export {};
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { LitElement } from 'lit';
|
|
2
|
+
import type { Bindings } from "../atomic-search-interface/interfaces";
|
|
3
|
+
import type { InitializableComponent } from "../../../decorators/types";
|
|
4
|
+
declare const AtomicFieldCondition_base: import("../../../mixins/mixin-common").Constructor<{
|
|
5
|
+
injectStyles(dynamicStyles?: import("lit").CSSResultGroup): Promise<void>;
|
|
6
|
+
}> & typeof LitElement;
|
|
7
|
+
/**
|
|
8
|
+
* The `atomic-field-condition` component conditionally renders content based on result properties.
|
|
9
|
+
* Supports checking if fields are defined/undefined or match/don't match specific values.
|
|
10
|
+
*
|
|
11
|
+
* @slot default - The content to display if the conditions are met.
|
|
12
|
+
*/
|
|
13
|
+
export declare class AtomicFieldCondition extends AtomicFieldCondition_base implements InitializableComponent<Bindings> {
|
|
14
|
+
bindings: Bindings;
|
|
15
|
+
error: Error;
|
|
16
|
+
private resultController;
|
|
17
|
+
/**
|
|
18
|
+
* A condition that is satisfied when the specified field is defined on a result (e.g., `if-defined="author"` is satisfied when a result has the `author` field).
|
|
19
|
+
*/
|
|
20
|
+
ifDefined?: string;
|
|
21
|
+
/**
|
|
22
|
+
* A condition that is satisfied when the specified field is not defined on a result (e.g., `if-not-defined="author"` is satisfied when a result does not have the `author` field).
|
|
23
|
+
*/
|
|
24
|
+
ifNotDefined?: string;
|
|
25
|
+
/**
|
|
26
|
+
* A condition that is satisfied when the specified field matches one of the specified values on a result (e.g., `must-match-filetype="pdf,docx"` is satisfied when a result has a filetype of either pdf or docx).
|
|
27
|
+
* @type {Record<string, string[]>}
|
|
28
|
+
*/
|
|
29
|
+
mustMatch: Record<string, string[]>;
|
|
30
|
+
/**
|
|
31
|
+
* A condition that is satisfied when the specified field does not match any of the specified values on a result (e.g., `must-not-match-filetype="pdf"` is satisfied when a result does not have a filetype of pdf).
|
|
32
|
+
* @type {Record<string, string[]>}
|
|
33
|
+
*/
|
|
34
|
+
mustNotMatch: Record<string, string[]>;
|
|
35
|
+
initialize(): void;
|
|
36
|
+
private get conditions();
|
|
37
|
+
private getResult;
|
|
38
|
+
render(): import("lit").TemplateResult<1>;
|
|
39
|
+
}
|
|
40
|
+
declare global {
|
|
41
|
+
interface HTMLElementTagNameMap {
|
|
42
|
+
'atomic-field-condition': AtomicFieldCondition;
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
export {};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { type Pager, type PagerState, type SearchStatus, type SearchStatusState } from '@coveo/headless';
|
|
2
|
-
import { LitElement
|
|
2
|
+
import { LitElement } from 'lit';
|
|
3
3
|
import type { Bindings } from "../atomic-search-interface/interfaces";
|
|
4
4
|
import type { InitializableComponent } from "../../../decorators/types";
|
|
5
5
|
import { AriaLiveRegionController } from "../../../utils/accessibility-utils";
|
|
@@ -19,7 +19,6 @@ declare const AtomicPager_base: typeof LitElement;
|
|
|
19
19
|
* @event atomic/scrollToTop - Emitted when the user clicks any of the buttons rendered by the component.
|
|
20
20
|
*/
|
|
21
21
|
export declare class AtomicPager extends AtomicPager_base implements InitializableComponent<Bindings> {
|
|
22
|
-
private static propsSchema;
|
|
23
22
|
bindings: Bindings;
|
|
24
23
|
error: Error;
|
|
25
24
|
private isAppLoaded;
|
|
@@ -51,10 +50,9 @@ export declare class AtomicPager extends AtomicPager_base implements Initializab
|
|
|
51
50
|
private radioGroupName;
|
|
52
51
|
private previousButton;
|
|
53
52
|
private nextButton;
|
|
53
|
+
constructor();
|
|
54
54
|
initialize(): void;
|
|
55
|
-
willUpdate(changedProperties: PropertyValues): void;
|
|
56
55
|
render(): import("lit").TemplateResult<1>;
|
|
57
|
-
private validateProps;
|
|
58
56
|
private initFocusTargets;
|
|
59
57
|
private handleFocus;
|
|
60
58
|
private focusOnFirstResultAndScrollToTop;
|
|
@@ -1,3 +1,9 @@
|
|
|
1
|
+
import { LitElement } from 'lit';
|
|
2
|
+
import "../../common/atomic-icon/atomic-icon";
|
|
3
|
+
import "../atomic-text/atomic-text";
|
|
4
|
+
import "../atomic-result-text/atomic-result-text";
|
|
5
|
+
import type { InitializableComponent } from "../../../decorators/types";
|
|
6
|
+
import type { Bindings } from '../atomic-search-interface/atomic-search-interface';
|
|
1
7
|
/**
|
|
2
8
|
* The `atomic-result-badge` element renders a badge to highlight special features of a result.
|
|
3
9
|
*
|
|
@@ -33,9 +39,12 @@
|
|
|
33
39
|
* @part result-badge-label - The wrapper around the contents at the right-end of the badge. This may be text, a field or slotted elements depending on which was configured.
|
|
34
40
|
* @slot default - The elements to display inside the badge, instead of a field or label.
|
|
35
41
|
*/
|
|
36
|
-
export declare class AtomicResultBadge {
|
|
37
|
-
|
|
38
|
-
|
|
42
|
+
export declare class AtomicResultBadge extends LitElement implements InitializableComponent<Bindings> {
|
|
43
|
+
bindings: Bindings;
|
|
44
|
+
error: Error;
|
|
45
|
+
initialize(): void;
|
|
46
|
+
static styles: import("lit").CSSResult;
|
|
47
|
+
private resultContext;
|
|
39
48
|
/**
|
|
40
49
|
* The field to display in the badge.
|
|
41
50
|
*
|
|
@@ -61,6 +70,11 @@ export declare class AtomicResultBadge {
|
|
|
61
70
|
private getTextContent;
|
|
62
71
|
private renderText;
|
|
63
72
|
private renderBadge;
|
|
64
|
-
|
|
65
|
-
render():
|
|
73
|
+
willUpdate(): void;
|
|
74
|
+
render(): import("lit").TemplateResult<1>;
|
|
75
|
+
}
|
|
76
|
+
declare global {
|
|
77
|
+
interface HTMLElementTagNameMap {
|
|
78
|
+
'atomic-result-badge': AtomicResultBadge;
|
|
79
|
+
}
|
|
66
80
|
}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
export { AtomicExternal } from './atomic-external/atomic-external.js';
|
|
2
2
|
export { AtomicFacet } from './atomic-facet/atomic-facet.js';
|
|
3
|
+
export { AtomicFieldCondition } from './atomic-field-condition/atomic-field-condition.js';
|
|
3
4
|
export { AtomicHtml } from './atomic-html/atomic-html.js';
|
|
4
5
|
export { AtomicLoadMoreResults } from './atomic-load-more-results/atomic-load-more-results.js';
|
|
5
6
|
export { AtomicPager } from './atomic-pager/atomic-pager.js';
|
|
@@ -7,6 +8,7 @@ export { AtomicQueryError } from './atomic-query-error/atomic-query-error.js';
|
|
|
7
8
|
export { AtomicQuerySummary } from './atomic-query-summary/atomic-query-summary.js';
|
|
8
9
|
export { AtomicRelevanceInspector } from './atomic-relevance-inspector/atomic-relevance-inspector.js';
|
|
9
10
|
export { AtomicResult } from './atomic-result/atomic-result.js';
|
|
11
|
+
export { AtomicResultBadge } from './atomic-result-badge/atomic-result-badge.js';
|
|
10
12
|
export { AtomicResultChildrenTemplate } from './atomic-result-children-template/atomic-result-children-template.js';
|
|
11
13
|
export { AtomicResultHtml } from './atomic-result-html/atomic-result-html.js';
|
|
12
14
|
export { AtomicResultList } from './atomic-result-list/atomic-result-list.js';
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @internal
|
|
3
|
+
*/
|
|
4
|
+
export declare class ColorParser {
|
|
5
|
+
private color;
|
|
6
|
+
private static readonly REGEX;
|
|
7
|
+
private red;
|
|
8
|
+
private green;
|
|
9
|
+
private blue;
|
|
10
|
+
constructor(color: string);
|
|
11
|
+
rgb(): string;
|
|
12
|
+
rgbInverted(): string;
|
|
13
|
+
rgbSaturated(): string;
|
|
14
|
+
private rgbString;
|
|
15
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { TermsToHighlight } from '@coveo/headless';
|
|
2
|
+
import { QuickviewWordHighlight } from './quickview-word-highlight';
|
|
3
|
+
export declare const HIGHLIGHT_PREFIX = "CoveoHighlight";
|
|
4
|
+
/**
|
|
5
|
+
* @internal
|
|
6
|
+
*/
|
|
7
|
+
export declare class IframeParser {
|
|
8
|
+
private stemmingInfoFromIndex;
|
|
9
|
+
private iframe?;
|
|
10
|
+
private textParser;
|
|
11
|
+
private wordsHighlights;
|
|
12
|
+
constructor(stemmingInfoFromIndex: TermsToHighlight, iframe?: HTMLIFrameElement | undefined);
|
|
13
|
+
parse(): Record<string, QuickviewWordHighlight>;
|
|
14
|
+
private parseIdentifier;
|
|
15
|
+
}
|
|
16
|
+
export declare const getWordsHighlights: (stemmingInfoFromIndex: TermsToHighlight, iframe?: HTMLIFrameElement) => Record<string, QuickviewWordHighlight>;
|
|
@@ -1,29 +1,17 @@
|
|
|
1
|
-
|
|
2
|
-
export declare const HIGHLIGHT_PREFIX = "CoveoHighlight";
|
|
1
|
+
export { getWordsHighlights, HIGHLIGHT_PREFIX } from './iframe-parser';
|
|
3
2
|
export declare class QuickviewWordHighlight {
|
|
4
|
-
|
|
5
|
-
text: string;
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
previewBorderColor: string;
|
|
11
|
-
elements: HTMLElement[];
|
|
3
|
+
readonly indexIdentifier: string;
|
|
4
|
+
readonly text: string;
|
|
5
|
+
readonly color: string;
|
|
6
|
+
readonly focusedColor: string;
|
|
7
|
+
readonly previewBorderColor: string;
|
|
8
|
+
readonly elements: HTMLElement[];
|
|
12
9
|
private currentNavigationPosition;
|
|
13
|
-
constructor(
|
|
14
|
-
addElement(
|
|
10
|
+
constructor(indexIdentifier: string, text: string, color: string, element: HTMLElement);
|
|
11
|
+
addElement(element: HTMLElement): void;
|
|
12
|
+
get occurrences(): number;
|
|
15
13
|
navigateForward(): HTMLElement;
|
|
16
14
|
navigateBackward(): HTMLElement;
|
|
17
|
-
private isTaggedWord;
|
|
18
15
|
private highlightNavigation;
|
|
19
16
|
private putElementIntoView;
|
|
20
|
-
private getText;
|
|
21
|
-
private resolveOriginalTerm;
|
|
22
|
-
private getHighlightedInnerText;
|
|
23
|
-
private parseKeywordIdentifier;
|
|
24
|
-
private getTextOfHTMLElement;
|
|
25
|
-
private computeInvertedColor;
|
|
26
|
-
private computeSaturatedColor;
|
|
27
|
-
private extractRgb;
|
|
28
17
|
}
|
|
29
|
-
export declare const getWordsHighlights: (stemmingInfoFromIndex: TermsToHighlight, iframe?: HTMLIFrameElement) => Record<string, QuickviewWordHighlight>;
|