@coveo/atomic 3.33.1-pre.deccecae3e → 3.33.1-pre.e2196e1c80
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/autoloader/index.cjs.js +2 -2
- package/dist/atomic/autoloader/index.esm.js +2 -2
- package/dist/atomic/components/analytics-config.js +1 -1
- package/dist/atomic/components/atomic-citation.js.map +1 -1
- package/dist/atomic/components/atomic-ipx-result-link.js.map +1 -1
- package/dist/atomic/components/atomic-quickview-modal2.js +4 -4
- package/dist/atomic/components/atomic-quickview-modal2.js.map +1 -1
- package/dist/atomic/components/atomic-result-link.js.map +1 -1
- package/dist/atomic/components/atomic-segmented-facet-scrollable.js.map +1 -1
- package/dist/atomic/components/atomic-smart-snippet-collapse-wrapper2.js.map +1 -1
- package/dist/atomic/components/atomic-smart-snippet-expandable-answer2.js.map +1 -1
- package/dist/atomic/components/atomic-sort-expression.js +1 -1
- package/dist/atomic/components/atomic-sort-expression.js.map +1 -1
- package/dist/atomic/components/components/commerce/atomic-commerce-category-facet/atomic-commerce-category-facet.js +3 -9
- package/dist/atomic/components/components/commerce/atomic-commerce-category-facet/atomic-commerce-category-facet.tw.css.js +4 -0
- package/dist/atomic/components/components/commerce/atomic-commerce-facet/atomic-commerce-facet.js +3 -13
- package/dist/atomic/components/components/commerce/atomic-commerce-facet-number-input/atomic-commerce-facet-number-input.js +3 -2
- package/dist/atomic/components/components/commerce/atomic-commerce-facet-number-input/atomic-commerce-facet-number-input.tw.css.js +3 -0
- package/dist/atomic/components/components/commerce/atomic-commerce-interface/atomic-commerce-interface.js +0 -15
- package/dist/atomic/components/components/commerce/atomic-commerce-layout/atomic-commerce-layout.js +8 -16
- package/dist/atomic/components/components/commerce/atomic-commerce-layout/commerce-layout.js +2 -2
- package/dist/atomic/components/components/commerce/atomic-commerce-numeric-facet/atomic-commerce-numeric-facet.js +4 -4
- package/dist/atomic/components/components/commerce/atomic-commerce-recommendation-list/atomic-commerce-recommendation-list.js +6 -2
- package/dist/atomic/components/components/commerce/atomic-commerce-timeframe-facet/atomic-commerce-timeframe-facet.js +3 -3
- package/dist/atomic/components/components/commerce/atomic-product-description/atomic-product-description.js +0 -1
- package/dist/atomic/components/components/commerce/atomic-product-template/atomic-product-template.js +1 -1
- package/dist/atomic/components/components/commerce/atomic-product-text/atomic-product-text.js +2 -17
- package/dist/atomic/components/components/common/atomic-layout-section/{layout.js → search-layout.js} +2 -2
- package/dist/atomic/components/components/common/facets/facet-common.tw.css.js +2 -3
- package/dist/atomic/components/components/common/facets/facet-search/facet-search.tw.css.js +2 -3
- package/dist/atomic/components/components/common/facets/facet-value-box/facet-value-box.tw.css.js +2 -3
- package/dist/atomic/components/components/common/facets/facet-value-checkbox/facet-value-checkbox.tw.css.js +2 -3
- package/dist/atomic/components/components/common/facets/facet-value-exclude/facet-value-exclude.tw.css.js +2 -3
- package/dist/atomic/components/components/common/facets/numeric-facet-common.tw.css.js +3 -9
- package/dist/atomic/components/components/search/atomic-layout/search-layout.js +2 -2
- package/dist/atomic/components/decorators/inject-styles-for-no-shadow-dom.js +1 -10
- package/dist/atomic/components/decorators/with-tailwind-styles.js +2 -0
- package/dist/atomic/components/global/environment.js +1 -1
- package/dist/atomic/components/global/tailwind.default.css.js +2 -0
- package/dist/atomic/components/global/tailwind.properties.css.js +2 -0
- package/dist/atomic/components/mixins/commerce-layout-mixin.js +48 -0
- package/dist/atomic/components/mixins/item-section-mixin.js +6 -15
- package/dist/atomic/components/search-layout.js +2 -2
- package/dist/atomic/components/search-layout.js.map +1 -1
- package/dist/atomic/components/themes/accessible.css.js +2 -0
- package/dist/atomic/components/themes/coveo.css.js +2 -0
- package/dist/atomic/components/utils/tailwind-utilities/aspect-square.tw.css.js +2 -0
- package/dist/atomic/components/utils/tailwind-utilities/components.tw.css.js +3 -0
- package/dist/atomic/components/utils/tailwind-utilities/hide-scrollbar.tw.css.js +2 -0
- package/dist/atomic/components/utils/tailwind-utilities/link-style.tw.css.js +3 -0
- package/dist/atomic/components/utils/tailwind-utilities/min-lines.tw.css.js +2 -0
- package/dist/atomic/components/utils/tailwind-utilities/set-font-size.tw.css.js +2 -0
- package/dist/atomic/components/utils/tailwind-utilities/utilities.tw.css.js +3 -0
- package/dist/atomic/lang/cs.json +1 -1
- package/dist/atomic/lang/da.json +1 -1
- package/dist/atomic/lang/de.json +1 -1
- package/dist/atomic/lang/dev.json +1 -1
- package/dist/atomic/lang/el.json +1 -1
- package/dist/atomic/lang/en.json +1 -1
- package/dist/atomic/lang/es.json +1 -1
- package/dist/atomic/lang/fi.json +1 -1
- package/dist/atomic/lang/fr.json +1 -1
- package/dist/atomic/lang/hu.json +1 -1
- package/dist/atomic/lang/id.json +1 -1
- package/dist/atomic/lang/it.json +1 -1
- package/dist/atomic/lang/ja.json +1 -1
- package/dist/atomic/lang/ko.json +1 -1
- package/dist/atomic/lang/nl.json +1 -1
- package/dist/atomic/lang/no.json +1 -1
- package/dist/atomic/lang/pl.json +1 -1
- package/dist/atomic/lang/pt-BR.json +1 -1
- package/dist/atomic/lang/pt.json +1 -1
- package/dist/atomic/lang/ru.json +1 -1
- package/dist/atomic/lang/sv.json +1 -1
- package/dist/atomic/lang/th.json +1 -1
- package/dist/atomic/lang/tr.json +1 -1
- package/dist/atomic/lang/zh-CN.json +1 -1
- package/dist/atomic/lang/zh-TW.json +1 -1
- package/dist/atomic/lang/zh.json +1 -1
- package/dist/atomic/p-1442d3c3.entry.js.map +1 -1
- package/dist/atomic/{p-0515e7bf.entry.js → p-284290de.entry.js} +2 -2
- package/dist/atomic/{p-4a2f3af1.entry.js → p-29b99cfb.entry.js} +2 -2
- package/dist/atomic/{p-09924944.entry.js → p-308c3a88.entry.js} +2 -2
- package/dist/atomic/p-308c3a88.entry.js.map +1 -0
- package/dist/atomic/{p-5249b07f.entry.js → p-3fd75911.entry.js} +2 -2
- package/dist/atomic/p-8bba9f56.entry.js +2 -0
- package/dist/atomic/p-8bba9f56.entry.js.map +1 -0
- package/dist/atomic/p-8c80991f.entry.js.map +1 -1
- package/dist/atomic/{p-cbdb8d78.entry.js → p-b5fe644f.entry.js} +2 -2
- package/dist/atomic/{p-3e89ff22.js → p-c80a37e9.js} +2 -2
- package/dist/atomic/p-d3e1a9aa.entry.js.map +1 -1
- package/dist/atomic/{p-85ef2ce8.js → p-d4fbce1c.js} +1 -1
- package/dist/atomic/p-d4fbce1c.js.map +1 -0
- package/dist/atomic/p-dc89e560.entry.js.map +1 -1
- package/dist/atomic/p-e27e1e46.entry.js.map +1 -1
- package/dist/cjs/{analytics-config-7019e410.js → analytics-config-db198b13.js} +2 -2
- package/dist/cjs/{analytics-config-7019e410.js.map → analytics-config-db198b13.js.map} +1 -1
- package/dist/cjs/atomic-citation.cjs.entry.js.map +1 -1
- package/dist/cjs/atomic-insight-interface.cjs.entry.js +1 -1
- package/dist/cjs/atomic-ipx-result-link.cjs.entry.js.map +1 -1
- package/dist/cjs/atomic-quickview-modal.cjs.entry.js +4 -4
- package/dist/cjs/atomic-quickview-modal.cjs.entry.js.map +1 -1
- package/dist/cjs/atomic-recs-interface.cjs.entry.js +1 -1
- package/dist/cjs/atomic-result-link.cjs.entry.js.map +1 -1
- package/dist/cjs/atomic-search-interface.cjs.entry.js +2 -2
- package/dist/cjs/atomic-search-layout.cjs.entry.js +1 -1
- package/dist/cjs/atomic-segmented-facet-scrollable.cjs.entry.js.map +1 -1
- package/dist/cjs/atomic-smart-snippet-collapse-wrapper_2.cjs.entry.js.map +1 -1
- package/dist/cjs/atomic-sort-expression.cjs.entry.js +1 -1
- package/dist/cjs/atomic-sort-expression.cjs.entry.js.map +1 -1
- package/dist/cjs/{search-layout-b597f6fc.js → search-layout-419e7eb4.js} +3 -3
- package/dist/cjs/search-layout-419e7eb4.js.map +1 -0
- package/dist/cjs/version.cjs.js +2 -2
- package/dist/esm/{analytics-config-869385b2.js → analytics-config-90ddb3ab.js} +2 -2
- package/dist/esm/{analytics-config-869385b2.js.map → analytics-config-90ddb3ab.js.map} +1 -1
- package/dist/esm/atomic-citation.entry.js.map +1 -1
- package/dist/esm/atomic-insight-interface.entry.js +1 -1
- package/dist/esm/atomic-ipx-result-link.entry.js.map +1 -1
- package/dist/esm/atomic-quickview-modal.entry.js +4 -4
- package/dist/esm/atomic-quickview-modal.entry.js.map +1 -1
- package/dist/esm/atomic-recs-interface.entry.js +1 -1
- package/dist/esm/atomic-result-link.entry.js.map +1 -1
- package/dist/esm/atomic-search-interface.entry.js +2 -2
- package/dist/esm/atomic-search-layout.entry.js +1 -1
- package/dist/esm/atomic-segmented-facet-scrollable.entry.js.map +1 -1
- package/dist/esm/atomic-smart-snippet-collapse-wrapper_2.entry.js.map +1 -1
- package/dist/esm/atomic-sort-expression.entry.js +1 -1
- package/dist/esm/atomic-sort-expression.entry.js.map +1 -1
- package/dist/esm/{search-layout-fdd7a917.js → search-layout-1e3bd9fd.js} +3 -3
- package/dist/esm/search-layout-1e3bd9fd.js.map +1 -0
- package/dist/esm/version.js +2 -2
- package/dist/types/components/commerce/atomic-commerce-breadbox/atomic-commerce-breadbox.d.ts +2 -2
- package/dist/types/components/commerce/atomic-commerce-interface/atomic-commerce-interface.d.ts +3 -8
- package/dist/types/components/commerce/atomic-commerce-layout/atomic-commerce-layout.d.ts +4 -4
- package/dist/types/components/commerce/atomic-commerce-recommendation-interface/atomic-commerce-recommendation-interface.d.ts +1 -1
- package/dist/types/components/commerce/atomic-commerce-recommendation-list/atomic-commerce-recommendation-list.d.ts +1 -1
- package/dist/types/components/commerce/atomic-product-description/atomic-product-description.d.ts +0 -1
- package/dist/types/components/commerce/atomic-product-text/atomic-product-text.d.ts +1 -6
- package/dist/types/components/common/atomic-layout-section/search-layout.d.ts +2 -0
- package/dist/types/components/search/atomic-sort-expression/atomic-sort-expression.d.ts +2 -13
- package/dist/types/components/search/result-template-components/quickview-iframe/quickview-iframe.d.ts +0 -1
- package/dist/types/components.d.ts +2 -2
- package/dist/types/decorators/inject-styles-for-no-shadow-dom.d.ts +3 -3
- package/dist/types/mixins/commerce-layout-mixin.d.ts +18 -0
- package/dist/types/mixins/item-section-mixin.d.ts +2 -3
- package/docs/atomic-docs.json +2 -2
- package/package.json +3 -3
- package/dist/atomic/p-09924944.entry.js.map +0 -1
- package/dist/atomic/p-6083c9be.entry.js +0 -2
- package/dist/atomic/p-6083c9be.entry.js.map +0 -1
- package/dist/atomic/p-85ef2ce8.js.map +0 -1
- package/dist/cjs/search-layout-b597f6fc.js.map +0 -1
- package/dist/esm/search-layout-fdd7a917.js.map +0 -1
- package/dist/types/components/common/atomic-layout-section/layout.d.ts +0 -2
- package/dist/types/components/common/facets/facet-value-box/facet-value-box.tw.css.d.ts +0 -2
- package/dist/types/components/common/facets/facet-value-checkbox/facet-value-checkbox.tw.css.d.ts +0 -2
- package/dist/types/components/common/facets/facet-value-exclude/facet-value-exclude.tw.css.d.ts +0 -2
- package/dist/types/components/common/facets/numeric-facet-common.tw.css.d.ts +0 -2
- /package/dist/atomic/{p-0515e7bf.entry.js.map → p-284290de.entry.js.map} +0 -0
- /package/dist/atomic/{p-4a2f3af1.entry.js.map → p-29b99cfb.entry.js.map} +0 -0
- /package/dist/atomic/{p-5249b07f.entry.js.map → p-3fd75911.entry.js.map} +0 -0
- /package/dist/atomic/{p-cbdb8d78.entry.js.map → p-b5fe644f.entry.js.map} +0 -0
- /package/dist/atomic/{p-3e89ff22.js.map → p-c80a37e9.js.map} +0 -0
- /package/dist/types/components/{common/facets/facet-common.tw.css.d.ts → commerce/atomic-commerce-category-facet/atomic-commerce-category-facet.tw.css.d.ts} +0 -0
- /package/dist/types/components/{common/facets/facet-search/facet-search.tw.css.d.ts → commerce/atomic-commerce-facet-number-input/atomic-commerce-facet-number-input.tw.css.d.ts} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"file":"atomic-quickview-modal2.js","mappings":"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","names":["ArrowDown"],"sources":["src/components/search/result-template-components/atomic-quickview-sidebar/atomic-quickview-sidebar.tsx","src/components/search/result-template-components/quickview-iframe/quickview-iframe.tsx","src/components/search/result-template-components/quickview-preview-bar/quickview-preview-bar.ts","src/utils/color-utils.ts","src/components/search/result-template-components/quickview-word-highlight/quickview-word-highlight.tsx","src/components/search/result-template-components/atomic-quickview-modal/atomic-quickview-modal.pcss?tag=atomic-quickview-modal&encapsulation=shadow","src/components/search/result-template-components/atomic-quickview-modal/atomic-quickview-modal.tsx"],"sourcesContent":["import {Fragment, FunctionalComponent, h} from '@stencil/core';\nimport {i18n} from 'i18next';\nimport Add from '../../../../images/add.svg';\nimport ArrowDown from '../../../../images/arrow-bottom-rounded.svg';\nimport ArrowUp from '../../../../images/arrow-top-rounded.svg';\nimport MinimizeIcon from '../../../../images/menu.svg';\nimport Remove from '../../../../images/remove.svg';\nimport {IconButton} from '../../../common/iconButton';\nimport {StencilCheckbox} from '../../../common/stencil-checkbox';\nimport {FieldsetGroup} from '../../../common/stencil-fieldset-group';\nimport type {HighlightKeywords} from '../atomic-quickview-modal/atomic-quickview-modal';\nimport {QuickviewWordHighlight} from '../quickview-word-highlight/quickview-word-highlight';\n\nconst identifierKeywordsSection = 'coveo-quickview-sidebar-keywords';\n\nexport interface QuickviewSidebarProps {\n words: Record<string, QuickviewWordHighlight>;\n i18n: i18n;\n highlightKeywords: HighlightKeywords;\n onHighlightKeywords: (highlight: HighlightKeywords) => void;\n minimized: boolean;\n onMinimize: (minimize: boolean) => void;\n}\n\nexport const QuickviewSidebar: FunctionalComponent<QuickviewSidebarProps> = (\n props\n) => {\n const {words, minimized} = props;\n const numberOfWords = Object.values(words).length;\n\n if (numberOfWords === 0) {\n return;\n }\n\n const minimizeButton = (\n <MinimizeButton {...props} wordsLength={numberOfWords} />\n );\n\n return (\n <div class=\"border-neutral h-full border-r p-4\">\n {minimized && minimizeButton}\n <div class=\"flex items-center justify-between\">\n <div class=\"flex items-center\">\n <HighlightKeywordsCheckbox {...props} />\n </div>\n {!minimized && <div>{minimizeButton}</div>}\n </div>\n\n {!minimized && <Keywords {...props} words={words} />}\n </div>\n );\n};\n\nconst MinimizeButton: FunctionalComponent<\n Pick<\n QuickviewSidebarProps,\n 'i18n' | 'minimized' | 'onMinimize' | 'highlightKeywords'\n > & {wordsLength: number}\n> = ({i18n, minimized, onMinimize, highlightKeywords, wordsLength}) => (\n <IconButton\n partPrefix=\"sidebar-minimize\"\n icon={MinimizeIcon}\n style=\"text-transparent\"\n title={i18n.t('quickview-toggle-navigation')}\n ariaLabel={i18n.t('quickview-toggle-navigation')}\n onClick={() => onMinimize(!minimized)}\n badge={\n highlightKeywords && minimized ? <slot>{wordsLength}</slot> : undefined\n }\n class={`w-fit ${minimized ? '' : 'ml-auto'}`}\n ariaExpanded={(!minimized).toString()}\n ariaControls={identifierKeywordsSection}\n />\n);\n\nconst HighlightKeywordsCheckbox: FunctionalComponent<\n Pick<\n QuickviewSidebarProps,\n 'i18n' | 'highlightKeywords' | 'onHighlightKeywords' | 'minimized'\n >\n> = ({i18n, highlightKeywords, onHighlightKeywords, minimized}) => (\n <Fragment>\n <StencilCheckbox\n text={i18n.t('keywords-highlight')}\n class=\"mr-2\"\n id=\"atomic-quickview-sidebar-highlight-keywords\"\n checked={!highlightKeywords.highlightNone}\n onToggle={(checked) =>\n onHighlightKeywords({\n ...highlightKeywords,\n highlightNone: !checked,\n })\n }\n ></StencilCheckbox>\n {!minimized && (\n <label\n class=\"cursor-pointer font-bold whitespace-nowrap\"\n htmlFor=\"atomic-quickview-sidebar-highlight-keywords\"\n >\n {i18n.t('keywords-highlight')}\n </label>\n )}\n </Fragment>\n);\n\nconst Keywords: FunctionalComponent<\n Pick<\n QuickviewSidebarProps,\n 'i18n' | 'onHighlightKeywords' | 'highlightKeywords'\n > & {\n words: Record<string, QuickviewWordHighlight>;\n }\n> = ({words, i18n, highlightKeywords, onHighlightKeywords}) => {\n return (\n <div id={identifierKeywordsSection}>\n {Object.values(words).map((keyword) => {\n const wordIsEnabled =\n !highlightKeywords.highlightNone &&\n (highlightKeywords.keywords[keyword.text] === undefined ||\n highlightKeywords.keywords[keyword.text].enabled === true);\n\n return (\n <div\n key={keyword.text}\n class=\"my-4 flex w-100 items-center justify-between gap-x-2\"\n >\n <div\n class={`bg-background border-neutral flex grow items-center overflow-x-auto rounded-lg border ${\n !wordIsEnabled ? 'pointer-events-none opacity-50' : ''\n }`}\n >\n <div\n class=\"flex grow items-center border-r p-4\"\n aria-hidden=\"true\"\n >\n <div\n class=\"mr-2 h-5 w-5 flex-none\"\n style={{backgroundColor: keyword.color}}\n ></div>\n <div class=\"mr-2 grow whitespace-nowrap\">{keyword.text}</div>\n <div class=\"flex-none\">\n (\n {new Intl.NumberFormat(i18n.language, {\n notation: 'compact',\n }).format(keyword.occurrences)}\n )\n </div>\n </div>\n <FieldsetGroup\n label={i18n.t('quickview-navigate-keywords', {\n occurrences: keyword.occurrences,\n keyword: keyword.text,\n })}\n >\n <div class=\"flex px-2\">\n <IconButton\n partPrefix=\"sidebar-next\"\n icon={ArrowDown}\n disabled={!wordIsEnabled}\n style=\"text-transparent\"\n class=\"border-0\"\n ariaLabel={i18n.t('next')}\n title={i18n.t('next')}\n onClick={() => keyword.navigateForward()}\n />\n <IconButton\n partPrefix=\"sidebar-previous\"\n icon={ArrowUp}\n disabled={!wordIsEnabled}\n style=\"text-transparent\"\n class=\"border-0\"\n ariaLabel={i18n.t('previous')}\n title={i18n.t('previous')}\n onClick={() => keyword.navigateBackward()}\n />\n </div>\n </FieldsetGroup>\n </div>\n <IconButton\n partPrefix=\"sidebar-remove-word\"\n class={`${\n highlightKeywords.highlightNone\n ? 'pointer-events-none opacity-50'\n : ''\n }`}\n tabIndex={highlightKeywords.highlightNone ? '-1' : '0'}\n ariaPressed={(!wordIsEnabled).toString()}\n style=\"text-transparent\"\n icon={wordIsEnabled ? Remove : Add}\n ariaLabel={i18n.t('quickview-remove-word')}\n onClick={() => {\n onHighlightKeywords({\n ...highlightKeywords,\n keywords: {\n ...highlightKeywords.keywords,\n [keyword.text]: {\n enabled: !wordIsEnabled,\n indexIdentifier: keyword.indexIdentifier,\n },\n },\n });\n }}\n />\n </div>\n );\n })}\n </div>\n );\n};\n","import {SearchEngine} from '@coveo/headless';\nimport {FunctionalComponent, h} from '@stencil/core';\n\nconst documentIdentifierInIframe = 'CoveoDocIdentifier';\n\nconst writeDocument = (documentWriter: Document, content: string) => {\n documentWriter.open();\n documentWriter.write(content);\n documentWriter.close();\n if (documentWriter.scrollingElement) {\n documentWriter.scrollingElement.scrollTop = 0;\n }\n};\n\nconst currentResultAlreadyWrittenToDocument = (\n documentWriter: Document,\n uniqueIdentifier: string\n) => {\n const currentDocIdentifier = documentWriter.getElementById(\n documentIdentifierInIframe\n );\n\n return (\n currentDocIdentifier &&\n currentDocIdentifier.textContent === uniqueIdentifier\n );\n};\n\nconst ensureSameResultIsNotOverwritten = (\n documentWriter: Document,\n uniqueIdentifier: string\n) => {\n const docIdentifier = documentWriter.createElement('div');\n docIdentifier.style.display = 'none';\n docIdentifier.setAttribute('aria-hidden', 'true');\n docIdentifier.id = documentIdentifierInIframe;\n docIdentifier.textContent = uniqueIdentifier;\n documentWriter.body.appendChild(docIdentifier);\n};\n\nconst warnAboutLimitedUsageQuickview = (logger?: SearchEngine['logger']) => {\n logger?.warn(\n 'Quickview initialized in restricted mode due to incompatible sandboxing environment. Keywords hit navigation will be disabled.'\n );\n};\n\nexport const QuickviewIframe: FunctionalComponent<{\n title: string;\n content?: string;\n onSetIframeRef: (ref: HTMLIFrameElement) => void;\n uniqueIdentifier?: string;\n sandbox?: string;\n src?: string;\n logger?: SearchEngine['logger'];\n}> = ({title, onSetIframeRef, uniqueIdentifier, content, sandbox, src, logger}) => {\n // When a document is written with document.open/document.write/document.close\n // it is not synchronous and the content of the iframe is only available to be queried at the end of the current call stack.\n // This add a \"wait\" (setTimeout 0) before calling the `onSetIframeRef` from the parent modal quickview\n const waitForIframeContentToBeWritten = () => {\n return new Promise((resolve) => setTimeout(resolve));\n };\n\n return (\n <iframe\n title={title}\n src=\"about:blank\"\n class=\"h-full w-full\"\n sandbox={sandbox}\n ref={async (el) => {\n const iframeRef = el as HTMLIFrameElement;\n\n if (!uniqueIdentifier || !content) {\n return;\n }\n\n const documentWriter = iframeRef.contentDocument;\n if (!documentWriter) {\n if (src) {\n warnAboutLimitedUsageQuickview(logger);\n iframeRef.src = src;\n }\n\n return;\n }\n if (\n currentResultAlreadyWrittenToDocument(\n documentWriter,\n uniqueIdentifier\n )\n ) {\n return;\n }\n\n writeDocument(documentWriter, content);\n ensureSameResultIsNotOverwritten(documentWriter, uniqueIdentifier);\n\n await waitForIframeContentToBeWritten();\n onSetIframeRef(iframeRef);\n }}\n ></iframe>\n );\n};\n","import type {HighlightKeywords} from '../atomic-quickview-modal/atomic-quickview-modal';\nimport type {QuickviewWordHighlight} from '../quickview-word-highlight/quickview-word-highlight';\n\nconst buildPreviewBar = (documentWriter: Document) => {\n const previewBarId = 'CoveoPreviewBar';\n const bar =\n documentWriter.getElementById(previewBarId) ||\n documentWriter.createElement('div');\n\n bar.id = previewBarId;\n bar.innerHTML = '';\n bar.style.position = 'fixed';\n bar.style.top = '0';\n bar.style.right = '0';\n bar.style.width = '15px';\n bar.style.height = '100%';\n bar.setAttribute('aria-hidden', 'true');\n return bar;\n};\n\nconst buildPreviewUnit = (\n documentWriter: Document,\n word: QuickviewWordHighlight,\n wordElement: HTMLElement,\n docHeight: number,\n highlightKeywords: HighlightKeywords\n) => {\n const previewUnit = documentWriter.createElement('div');\n if (highlightKeywords.keywords[word.text]?.enabled === false) {\n previewUnit.style.display = 'none';\n return previewUnit;\n }\n\n const elementPosition = wordElement.getBoundingClientRect().top;\n\n previewUnit.style.position = 'absolute';\n previewUnit.style.top = `${(elementPosition / docHeight) * 100}%`;\n previewUnit.style.width = '100%';\n previewUnit.style.height = '1px';\n previewUnit.style.border = `1px solid ${word.previewBorderColor}`;\n previewUnit.style.backgroundColor = word.color;\n return previewUnit;\n};\n\nexport const buildQuickviewPreviewBar = (\n words: Record<string, QuickviewWordHighlight>,\n highlightKeywords: HighlightKeywords,\n iframe?: HTMLIFrameElement\n) => {\n if (!iframe) {\n return;\n }\n const documentWriter = iframe.contentDocument;\n if (!documentWriter) {\n return;\n }\n const bar = buildPreviewBar(documentWriter);\n if (highlightKeywords.highlightNone) {\n bar.remove();\n return;\n }\n const docHeight = documentWriter.body.scrollHeight;\n\n Object.values(words).forEach((word) => {\n word.elements.forEach((wordElement) => {\n const previewUnit = buildPreviewUnit(\n documentWriter,\n word,\n wordElement,\n docHeight,\n highlightKeywords\n );\n\n bar.appendChild(previewUnit);\n });\n });\n documentWriter.body.appendChild(bar);\n};\n","export const rgbToHsv = (r: number, g: number, b: number) => {\n const max = Math.max(r, g, b);\n const min = Math.min(r, g, b);\n\n let h: number;\n const v = max;\n\n const d = max - min;\n const s = max === 0 ? 0 : d / max;\n\n if (max === min) {\n h = 0;\n } else {\n switch (max) {\n case r:\n h = (g - b) / d + (g < b ? 6 : 0);\n break;\n case g:\n h = (b - r) / d + 2;\n break;\n default:\n h = (r - g) / d + 4;\n break;\n }\n h /= 6;\n }\n\n return {h, s, v};\n};\n\nexport const hsvToRgb = (h: number, s: number, v: number) => {\n let r: number, g: number, b: number;\n\n const i = Math.floor(h * 6);\n const f = h * 6 - i;\n const p = v * (1 - s);\n const q = v * (1 - f * s);\n const t = v * (1 - (1 - f) * s);\n\n switch (i % 6) {\n case 0:\n r = v;\n g = t;\n b = p;\n break;\n case 1:\n r = q;\n g = v;\n b = p;\n break;\n case 2:\n r = p;\n g = v;\n b = t;\n break;\n case 3:\n r = p;\n g = q;\n b = v;\n break;\n case 4:\n r = t;\n g = p;\n b = v;\n break;\n default:\n r = v;\n g = p;\n b = q;\n break;\n }\n\n return {\n r: Math.round(r),\n g: Math.round(g),\n b: Math.round(b),\n };\n};\n","import {TermsToHighlight} from '@coveo/headless';\nimport {hsvToRgb, rgbToHsv} from '../../../../utils/color-utils';\n\nexport const HIGHLIGHT_PREFIX = 'CoveoHighlight';\nexport class QuickviewWordHighlight {\n public text: string;\n public indexIdentifier: string;\n public occurrences = 0;\n public color: string;\n public focusedColor: string;\n public previewBorderColor: string;\n public elements: HTMLElement[] = [];\n\n private currentNavigationPosition = -1;\n\n constructor(\n private stemmingInfoFromIndex: TermsToHighlight,\n keywordElementInIframe: HTMLElement\n ) {\n const parsed = this.parseKeywordIdentifier(keywordElementInIframe);\n if (!parsed) {\n throw 'Invalid keyword identifier for quickview';\n }\n\n this.text = this.getText(keywordElementInIframe);\n this.indexIdentifier = `${parsed.keywordIdentifier}`;\n this.color = keywordElementInIframe.style.backgroundColor;\n this.focusedColor = this.computeInvertedColor();\n this.previewBorderColor = this.computeSaturatedColor();\n\n this.addElement(keywordElementInIframe);\n }\n\n public addElement(keywordElementInIframe: HTMLElement) {\n this.occurrences++;\n this.elements.push(keywordElementInIframe);\n }\n\n public navigateForward() {\n this.currentNavigationPosition++;\n if (this.currentNavigationPosition >= this.elements.length) {\n this.currentNavigationPosition = 0;\n }\n this.highlightNavigation();\n this.putElementIntoView();\n return this.elements[this.currentNavigationPosition];\n }\n\n public navigateBackward() {\n this.currentNavigationPosition--;\n if (this.currentNavigationPosition < 0) {\n this.currentNavigationPosition = this.elements.length - 1;\n }\n this.highlightNavigation();\n this.putElementIntoView();\n return this.elements[this.currentNavigationPosition];\n }\n\n private isTaggedWord(element: HTMLElement) {\n return element.nodeName.toLowerCase() === 'coveotaggedword';\n }\n\n private highlightNavigation() {\n const currentElement = this.elements[this.currentNavigationPosition];\n const otherElements = this.elements.filter((el) => el !== currentElement);\n currentElement.style.color = this.color;\n currentElement.style.backgroundColor = this.focusedColor;\n otherElements.forEach((element) => {\n element.style.color = '';\n element.style.backgroundColor = this.color;\n });\n }\n\n private putElementIntoView() {\n const element = this.elements[this.currentNavigationPosition];\n element.scrollIntoView();\n }\n\n private getText(element: HTMLElement) {\n const innerTextOfHTMLElement = this.getHighlightedInnerText(element);\n return this.resolveOriginalTerm(innerTextOfHTMLElement).trim();\n }\n\n private resolveOriginalTerm(highlight: string): string {\n // First try to find either an exact match between the highlight and the original non-stemmed keyword.\n // Otherwise try to find a match between the highlight and the stemming keyword expansions\n // If nothing is found (which should not normally happen...), simply return the highlight keyword as is.\n\n const found = Object.keys(this.stemmingInfoFromIndex).find(\n (originalTerm) => {\n const originalTermMatch =\n originalTerm.toLowerCase() === highlight.toLowerCase();\n if (originalTermMatch) {\n return true;\n }\n const stemmingExpansions = this.stemmingInfoFromIndex[originalTerm];\n if (!stemmingExpansions) {\n return false;\n }\n\n const stemmingExpansionMatch = stemmingExpansions.find(\n (stemmingExpansion) =>\n stemmingExpansion.toLowerCase() === highlight.toLowerCase()\n );\n return stemmingExpansionMatch;\n }\n );\n return found || highlight;\n }\n\n private getHighlightedInnerText(element: HTMLElement): string {\n if (!this.isTaggedWord(element)) {\n return this.getTextOfHTMLElement(element);\n }\n\n const children = Array.from(element.children) as HTMLElement[];\n if (children.length >= 1) {\n return this.getTextOfHTMLElement(children[0]);\n }\n\n return '';\n }\n\n private parseKeywordIdentifier(element: HTMLElement) {\n const parts = element.id\n .substring(HIGHLIGHT_PREFIX.length + 1)\n .match(/^([0-9]+)\\.([0-9]+)\\.([0-9]+)$/);\n\n if (!parts || parts.length <= 3) {\n return null;\n }\n\n return {\n keywordIdentifier: parts[1],\n keywordTermPart: parseInt(parts[3], 10),\n };\n }\n\n private getTextOfHTMLElement(el: HTMLElement) {\n return el.innerText || el.textContent || '';\n }\n\n private computeInvertedColor() {\n const {r, g, b} = this.extractRgb();\n return `rgb(${255 - r}, ${255 - g}, ${255 - b})`;\n }\n\n private computeSaturatedColor() {\n const {r, g, b} = this.extractRgb();\n const {h, s, v} = rgbToHsv(r, g, b);\n let newSaturation = s * 2;\n if (newSaturation > 1) {\n newSaturation = 1;\n }\n const {\n r: rSaturated,\n g: gSaturated,\n b: bSaturated,\n } = hsvToRgb(h, newSaturation, v);\n return `rgb(${rSaturated}, ${gSaturated}, ${bSaturated})`;\n }\n\n private extractRgb() {\n const rgbExtracted = this.color.match(/\\d+/g);\n if (!rgbExtracted) {\n return {r: 255, g: 255, b: 255};\n }\n\n return {\n r: parseInt(rgbExtracted[0], 10),\n g: parseInt(rgbExtracted[1], 10),\n b: parseInt(rgbExtracted[2], 10),\n };\n }\n}\n\nexport const getWordsHighlights = (\n stemmingInfoFromIndex: TermsToHighlight,\n iframe?: HTMLIFrameElement\n) => {\n const wordsHighlights: Record<string, QuickviewWordHighlight> = {};\n if (!iframe) {\n return wordsHighlights;\n }\n\n iframe.contentDocument?.body\n .querySelectorAll(`[id^=\"${HIGHLIGHT_PREFIX}\"]`)\n .forEach((el) => {\n const wordHTMLElementToHighlight = el as HTMLElement;\n\n const wordHighlight = new QuickviewWordHighlight(\n stemmingInfoFromIndex,\n wordHTMLElementToHighlight\n );\n\n if (!wordHighlight.text) {\n return;\n }\n\n const alreadyScannedKeyword =\n wordsHighlights[wordHighlight.indexIdentifier];\n\n if (alreadyScannedKeyword) {\n alreadyScannedKeyword.addElement(wordHTMLElementToHighlight);\n } else {\n wordsHighlights[wordHighlight.indexIdentifier] = wordHighlight;\n }\n });\n\n return wordsHighlights;\n};\n","@import '../../../../global/global.pcss';\n@reference '../../../../utils/tailwind-utilities/link-style.css';\n\n.atomic-quickview-modal {\n &::part(backdrop) {\n grid-template-columns: 1fr max(80vw, 30rem) 1fr;\n }\n &::part(body),\n &::part(header),\n &::part(footer) {\n @apply max-w-full;\n }\n\n &::part(footer) {\n @apply flex justify-center;\n }\n\n &::part(body-wrapper) {\n @apply h-full overflow-hidden p-0;\n }\n\n &::part(body) {\n @apply h-full;\n }\n\n &::part(backdrop) {\n grid-template-rows: 1fr 100% 3fr;\n }\n\n &::part(header-wrapper) {\n @apply bg-neutral-light;\n }\n\n a {\n @apply link-style;\n }\n}\n","import {\n buildInteractiveResult,\n Result,\n InteractiveResult,\n TermsToHighlight,\n} from '@coveo/headless';\nimport {\n Component,\n Event,\n EventEmitter,\n h,\n Prop,\n State,\n Watch,\n Method,\n VNode,\n Fragment,\n} from '@stencil/core';\nimport CloseIcon from '../../../../images/close.svg';\nimport {\n InitializableComponent,\n InitializeBindings,\n} from '../../../../utils/initialization-utils';\nimport {ATOMIC_MODAL_EXPORT_PARTS} from '../../../common/atomic-modal/export-parts';\nimport {IconButton} from '../../../common/iconButton';\nimport {LinkWithItemAnalytics} from '../../../common/item-link/stencil-item-link';\nimport {Button} from '../../../common/stencil-button';\nimport {Bindings} from '../../atomic-search-interface/atomic-search-interface';\nimport {QuickviewSidebar} from '../atomic-quickview-sidebar/atomic-quickview-sidebar';\nimport {QuickviewIframe} from '../quickview-iframe/quickview-iframe';\nimport {buildQuickviewPreviewBar} from '../quickview-preview-bar/quickview-preview-bar';\nimport {\n getWordsHighlights,\n HIGHLIGHT_PREFIX,\n QuickviewWordHighlight,\n} from '../quickview-word-highlight/quickview-word-highlight';\n\nexport interface HighlightKeywords {\n highlightNone: boolean;\n keywords: {\n [text: string]: {\n indexIdentifier: string;\n enabled: boolean;\n };\n };\n}\n\n/**\n * The modal opened when clicking on a quickview button.\n * Do not use this component directly; use `atomic-quickview` instead.\n *\n * @part backdrop - The transparent backdrop hiding the content behind the modal.\n * @part container - The modal's outermost container with the outline and background.\n * @part header-wrapper - The wrapper around the header.\n * @part header - The header at the top of the modal.\n * @part header-ruler - The horizontal ruler underneath the header.\n * @part body-wrapper - The wrapper around the body.\n * @part body - The body of the modal, between the header and the footer.\n * @part footer-wrapper - The wrapper with a shadow or background color around the footer.\n * @part footer - The footer at the bottom of the modal.\n * @part quickview-modal-header-icon - The close icon of the modal.\n * @part quickview-modal-header-title - The title of the modal.\n */\n@Component({\n tag: 'atomic-quickview-modal',\n styleUrl: 'atomic-quickview-modal.pcss',\n shadow: true,\n})\nexport class AtomicQuickviewModal implements InitializableComponent {\n @InitializeBindings() public bindings!: Bindings;\n @State() public error!: Error;\n\n @State() private highlightKeywords: HighlightKeywords = {\n highlightNone: false,\n keywords: {},\n };\n @Watch('highlightKeywords')\n watchHighlightKeywords() {\n this.handleHighlightsScripts();\n }\n\n @Event({eventName: 'atomic/quickview/next'}) nextQuickview?: EventEmitter;\n @Event({eventName: 'atomic/quickview/previous'})\n previousQuickview?: EventEmitter;\n\n @State() private minimizeSidebar = false;\n @State() private words: Record<string, QuickviewWordHighlight> = {};\n private iframeRef?: HTMLIFrameElement;\n\n @Prop({mutable: true, reflect: false}) content?: string;\n @Prop({mutable: true, reflect: false}) result?: Result;\n @Prop() current?: number;\n @Prop() total?: number;\n @Prop() sandbox?: string;\n @Prop() modalCloseCallback?: () => void;\n\n private interactiveResult?: InteractiveResult;\n\n public componentWillLoad(): void {\n this.minimizeSidebar = this.bindings.store.isMobile();\n }\n\n @Method()\n public async reset() {\n this.highlightKeywords = {\n highlightNone: false,\n keywords: {},\n };\n this.minimizeSidebar = false;\n this.iframeRef = undefined;\n this.content = undefined;\n this.result = undefined;\n this.interactiveResult = undefined;\n }\n\n private renderHeader() {\n let headerContent: VNode | null = null;\n if (this.result) {\n this.interactiveResult = buildInteractiveResult(this.bindings.engine, {\n options: {result: this.result},\n });\n headerContent = (\n <Fragment>\n <LinkWithItemAnalytics\n href={this.result?.clickUri}\n onSelect={() => this.interactiveResult?.select()}\n onBeginDelayedSelect={() =>\n this.interactiveResult?.beginDelayedSelect()\n }\n onCancelPendingSelect={() =>\n this.interactiveResult?.cancelPendingSelect()\n }\n className=\"truncate\"\n part=\"quickview-modal-header-title\"\n >\n {this.result.title}\n </LinkWithItemAnalytics>\n <IconButton\n partPrefix=\"quickview-modal-header\"\n icon={CloseIcon}\n onClick={() => this.onClose()}\n ariaLabel={this.bindings.i18n.t('close')}\n style=\"text-transparent\"\n title={this.bindings.i18n.t('close')}\n />\n </Fragment>\n );\n }\n return (\n <div slot=\"header\" class=\"flex w-full items-center justify-between\">\n {headerContent}\n </div>\n );\n }\n\n private renderBody() {\n return (\n <div slot=\"body\" class=\"grid h-full grid-cols-[min-content_auto]\">\n <div\n class=\"h-full overflow-y-auto\"\n style={{backgroundColor: 'var(--atomic-neutral-light)'}}\n >\n <QuickviewSidebar\n words={this.words}\n i18n={this.bindings.i18n}\n highlightKeywords={this.highlightKeywords}\n onHighlightKeywords={(highlight) =>\n (this.highlightKeywords = highlight)\n }\n minimized={this.minimizeSidebar}\n onMinimize={(minimize) => (this.minimizeSidebar = minimize)}\n />\n </div>\n <div class=\"relative overflow-auto\">\n <QuickviewIframe\n title={this.result?.title ?? this.bindings.i18n.t('preview-modal-title')} \n logger={this.logger}\n src={this.quickviewSrc}\n sandbox={this.sandbox}\n uniqueIdentifier={this.quickviewUniqueIdentifier}\n content={this.content}\n onSetIframeRef={async (ref) => {\n this.iframeRef = ref;\n this.words = getWordsHighlights(\n this.termsToHighlight,\n this.iframeRef\n );\n this.handleHighlightsScripts();\n }}\n />\n {buildQuickviewPreviewBar(\n this.words,\n this.highlightKeywords,\n this.iframeRef\n )}\n </div>\n </div>\n );\n }\n\n private renderFooter() {\n return (\n <div slot=\"footer\" class=\"flex items-center gap-2\">\n <Button\n class=\"p-2\"\n style=\"square-neutral\"\n onClick={() => this.previousQuickview?.emit()}\n disabled={this.current === 1}\n text={this.bindings.i18n.t('quickview-previous')}\n ></Button>\n <p class=\"text-center\">\n {this.bindings.i18n.t('showing-results-of', {\n first: this.current,\n total: this.total,\n })}\n </p>\n <Button\n class=\"p-2\"\n style=\"square-neutral\"\n onClick={() => this.nextQuickview?.emit()}\n disabled={this.current === this.total}\n text={this.bindings.i18n.t('quickview-next')}\n ></Button>\n </div>\n );\n }\n\n private onClose() {\n this.content = undefined;\n this.result = undefined;\n this.modalCloseCallback && this.modalCloseCallback();\n }\n\n private get isOpen() {\n return !!this.content && !!this.result;\n }\n\n private get highlightScriptId() {\n return 'CoveoDisableHighlightStyle';\n }\n\n private get logger() {\n return this.bindings.engine.logger;\n }\n\n private get quickviewSrc() {\n return this.bindings.engine.state.resultPreview?.contentURL;\n }\n\n private enableHighlights() {\n this.removeDisableHighlightScript();\n }\n\n private enableHighlightsSpecificKeyword(identifier: string) {\n this.removeDisableHighlightScript(identifier);\n }\n\n private disableHighlights() {\n this.createDisableHighlightScript();\n }\n\n private disableHighlightsSpecificKeyword(identifier: string) {\n this.createDisableHighlightScript(identifier);\n }\n\n private removeDisableHighlightScript(identifier?: string) {\n const doc = this.iframeRef?.contentWindow?.document;\n if (!doc) {\n return;\n }\n doc\n .getElementById(\n `${this.highlightScriptId}${identifier ? `:${identifier}` : ''}`\n )\n ?.remove();\n }\n\n private createDisableHighlightScript(identifier?: string) {\n const doc = this.iframeRef?.contentWindow?.document;\n if (!doc) {\n return;\n }\n\n const head = doc.head;\n const scriptId = `${this.highlightScriptId}${\n identifier ? `:${identifier}` : ''\n }`;\n const style =\n doc.getElementById(scriptId) || this.bindings.createStyleElement();\n style.setAttribute('id', scriptId);\n head.appendChild(style);\n style.appendChild(\n doc.createTextNode(`[id^=\"${HIGHLIGHT_PREFIX}${\n identifier ? `:${identifier}` : ''\n }\"] {\n background-color: inherit !important;\n color: inherit !important;\n }`)\n );\n }\n\n private get termsToHighlight() {\n const flatPhrasesToHighlight: TermsToHighlight = {};\n\n const phrasesToHighlight =\n this.bindings.engine.state.search.response.phrasesToHighlight;\n\n Object.entries(phrasesToHighlight).forEach(([phrase, keywords]) => {\n flatPhrasesToHighlight[phrase] = Object.entries(keywords).flatMap(\n ([keywordEntry, keywordStemming]) => {\n return [keywordEntry, ...keywordStemming];\n }\n );\n });\n\n return {\n ...this.bindings.engine.state.search.response.termsToHighlight,\n ...flatPhrasesToHighlight,\n };\n }\n\n private get requestId() {\n return this.bindings.engine.state.search.requestId;\n }\n\n private get quickviewUniqueIdentifier() {\n return this.result?.uniqueId + this.requestId;\n }\n\n private handleHighlightsScripts() {\n if (!this.highlightKeywords.highlightNone) {\n this.enableHighlights();\n } else {\n this.disableHighlights();\n }\n Object.values(this.highlightKeywords.keywords).forEach((word) => {\n if (word.enabled) {\n this.enableHighlightsSpecificKeyword(word.indexIdentifier);\n } else {\n this.disableHighlightsSpecificKeyword(word.indexIdentifier);\n }\n });\n }\n\n public render() {\n return (\n <atomic-modal\n fullscreen={this.bindings.store.isMobile()}\n class={'atomic-quickview-modal'}\n isOpen={this.isOpen}\n close={() => this.onClose()}\n exportparts={ATOMIC_MODAL_EXPORT_PARTS}\n >\n {this.renderHeader()}\n {this.renderBody()}\n {this.renderFooter()}\n </atomic-modal>\n );\n }\n}\n"],"version":3}
|
|
1
|
+
{"file":"atomic-quickview-modal2.js","mappings":"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","names":["ArrowDown"],"sources":["src/components/search/result-template-components/atomic-quickview-sidebar/atomic-quickview-sidebar.tsx","src/components/search/result-template-components/quickview-iframe/quickview-iframe.tsx","src/components/search/result-template-components/quickview-preview-bar/quickview-preview-bar.ts","src/utils/color-utils.ts","src/components/search/result-template-components/quickview-word-highlight/quickview-word-highlight.tsx","src/components/search/result-template-components/atomic-quickview-modal/atomic-quickview-modal.pcss?tag=atomic-quickview-modal&encapsulation=shadow","src/components/search/result-template-components/atomic-quickview-modal/atomic-quickview-modal.tsx"],"sourcesContent":["import {Fragment, FunctionalComponent, h} from '@stencil/core';\nimport {i18n} from 'i18next';\nimport Add from '../../../../images/add.svg';\nimport ArrowDown from '../../../../images/arrow-bottom-rounded.svg';\nimport ArrowUp from '../../../../images/arrow-top-rounded.svg';\nimport MinimizeIcon from '../../../../images/menu.svg';\nimport Remove from '../../../../images/remove.svg';\nimport {IconButton} from '../../../common/iconButton';\nimport {StencilCheckbox} from '../../../common/stencil-checkbox';\nimport {FieldsetGroup} from '../../../common/stencil-fieldset-group';\nimport type {HighlightKeywords} from '../atomic-quickview-modal/atomic-quickview-modal';\nimport {QuickviewWordHighlight} from '../quickview-word-highlight/quickview-word-highlight';\n\nconst identifierKeywordsSection = 'coveo-quickview-sidebar-keywords';\n\nexport interface QuickviewSidebarProps {\n words: Record<string, QuickviewWordHighlight>;\n i18n: i18n;\n highlightKeywords: HighlightKeywords;\n onHighlightKeywords: (highlight: HighlightKeywords) => void;\n minimized: boolean;\n onMinimize: (minimize: boolean) => void;\n}\n\nexport const QuickviewSidebar: FunctionalComponent<QuickviewSidebarProps> = (\n props\n) => {\n const {words, minimized} = props;\n const numberOfWords = Object.values(words).length;\n\n if (numberOfWords === 0) {\n return;\n }\n\n const minimizeButton = (\n <MinimizeButton {...props} wordsLength={numberOfWords} />\n );\n\n return (\n <div class=\"border-neutral h-full border-r p-4\">\n {minimized && minimizeButton}\n <div class=\"flex items-center justify-between\">\n <div class=\"flex items-center\">\n <HighlightKeywordsCheckbox {...props} />\n </div>\n {!minimized && <div>{minimizeButton}</div>}\n </div>\n\n {!minimized && <Keywords {...props} words={words} />}\n </div>\n );\n};\n\nconst MinimizeButton: FunctionalComponent<\n Pick<\n QuickviewSidebarProps,\n 'i18n' | 'minimized' | 'onMinimize' | 'highlightKeywords'\n > & {wordsLength: number}\n> = ({i18n, minimized, onMinimize, highlightKeywords, wordsLength}) => (\n <IconButton\n partPrefix=\"sidebar-minimize\"\n icon={MinimizeIcon}\n style=\"text-transparent\"\n title={i18n.t('quickview-toggle-navigation')}\n ariaLabel={i18n.t('quickview-toggle-navigation')}\n onClick={() => onMinimize(!minimized)}\n badge={\n highlightKeywords && minimized ? <slot>{wordsLength}</slot> : undefined\n }\n class={`w-fit ${minimized ? '' : 'ml-auto'}`}\n ariaExpanded={(!minimized).toString()}\n ariaControls={identifierKeywordsSection}\n />\n);\n\nconst HighlightKeywordsCheckbox: FunctionalComponent<\n Pick<\n QuickviewSidebarProps,\n 'i18n' | 'highlightKeywords' | 'onHighlightKeywords' | 'minimized'\n >\n> = ({i18n, highlightKeywords, onHighlightKeywords, minimized}) => (\n <Fragment>\n <StencilCheckbox\n text={i18n.t('keywords-highlight')}\n class=\"mr-2\"\n id=\"atomic-quickview-sidebar-highlight-keywords\"\n checked={!highlightKeywords.highlightNone}\n onToggle={(checked) =>\n onHighlightKeywords({\n ...highlightKeywords,\n highlightNone: !checked,\n })\n }\n ></StencilCheckbox>\n {!minimized && (\n <label\n class=\"cursor-pointer font-bold whitespace-nowrap\"\n htmlFor=\"atomic-quickview-sidebar-highlight-keywords\"\n >\n {i18n.t('keywords-highlight')}\n </label>\n )}\n </Fragment>\n);\n\nconst Keywords: FunctionalComponent<\n Pick<\n QuickviewSidebarProps,\n 'i18n' | 'onHighlightKeywords' | 'highlightKeywords'\n > & {\n words: Record<string, QuickviewWordHighlight>;\n }\n> = ({words, i18n, highlightKeywords, onHighlightKeywords}) => {\n return (\n <div id={identifierKeywordsSection}>\n {Object.values(words).map((keyword) => {\n const wordIsEnabled =\n !highlightKeywords.highlightNone &&\n (highlightKeywords.keywords[keyword.text] === undefined ||\n highlightKeywords.keywords[keyword.text].enabled === true);\n\n return (\n <div\n key={keyword.text}\n class=\"my-4 flex w-100 items-center justify-between gap-x-2\"\n >\n <div\n class={`bg-background border-neutral flex grow items-center overflow-x-auto rounded-lg border ${\n !wordIsEnabled ? 'pointer-events-none opacity-50' : ''\n }`}\n >\n <div\n class=\"flex grow items-center border-r p-4\"\n aria-hidden=\"true\"\n >\n <div\n class=\"mr-2 h-5 w-5 flex-none\"\n style={{backgroundColor: keyword.color}}\n ></div>\n <div class=\"mr-2 grow whitespace-nowrap\">{keyword.text}</div>\n <div class=\"flex-none\">\n (\n {new Intl.NumberFormat(i18n.language, {\n notation: 'compact',\n }).format(keyword.occurrences)}\n )\n </div>\n </div>\n <FieldsetGroup\n label={i18n.t('quickview-navigate-keywords', {\n occurrences: keyword.occurrences,\n keyword: keyword.text,\n })}\n >\n <div class=\"flex px-2\">\n <IconButton\n partPrefix=\"sidebar-next\"\n icon={ArrowDown}\n disabled={!wordIsEnabled}\n style=\"text-transparent\"\n class=\"border-0\"\n ariaLabel={i18n.t('next')}\n title={i18n.t('next')}\n onClick={() => keyword.navigateForward()}\n />\n <IconButton\n partPrefix=\"sidebar-previous\"\n icon={ArrowUp}\n disabled={!wordIsEnabled}\n style=\"text-transparent\"\n class=\"border-0\"\n ariaLabel={i18n.t('previous')}\n title={i18n.t('previous')}\n onClick={() => keyword.navigateBackward()}\n />\n </div>\n </FieldsetGroup>\n </div>\n <IconButton\n partPrefix=\"sidebar-remove-word\"\n class={`${\n highlightKeywords.highlightNone\n ? 'pointer-events-none opacity-50'\n : ''\n }`}\n tabIndex={highlightKeywords.highlightNone ? '-1' : '0'}\n ariaPressed={(!wordIsEnabled).toString()}\n style=\"text-transparent\"\n icon={wordIsEnabled ? Remove : Add}\n ariaLabel={i18n.t('quickview-remove-word')}\n onClick={() => {\n onHighlightKeywords({\n ...highlightKeywords,\n keywords: {\n ...highlightKeywords.keywords,\n [keyword.text]: {\n enabled: !wordIsEnabled,\n indexIdentifier: keyword.indexIdentifier,\n },\n },\n });\n }}\n />\n </div>\n );\n })}\n </div>\n );\n};\n","import {SearchEngine} from '@coveo/headless';\nimport {FunctionalComponent, h} from '@stencil/core';\n\nconst documentIdentifierInIframe = 'CoveoDocIdentifier';\n\nconst writeDocument = (documentWriter: Document, content: string) => {\n documentWriter.open();\n documentWriter.write(content);\n documentWriter.close();\n if (documentWriter.scrollingElement) {\n documentWriter.scrollingElement.scrollTop = 0;\n }\n};\n\nconst currentResultAlreadyWrittenToDocument = (\n documentWriter: Document,\n uniqueIdentifier: string\n) => {\n const currentDocIdentifier = documentWriter.getElementById(\n documentIdentifierInIframe\n );\n\n return (\n currentDocIdentifier &&\n currentDocIdentifier.textContent === uniqueIdentifier\n );\n};\n\nconst ensureSameResultIsNotOverwritten = (\n documentWriter: Document,\n uniqueIdentifier: string\n) => {\n const docIdentifier = documentWriter.createElement('div');\n docIdentifier.style.display = 'none';\n docIdentifier.setAttribute('aria-hidden', 'true');\n docIdentifier.id = documentIdentifierInIframe;\n docIdentifier.textContent = uniqueIdentifier;\n documentWriter.body.appendChild(docIdentifier);\n};\n\nconst warnAboutLimitedUsageQuickview = (logger?: SearchEngine['logger']) => {\n logger?.warn(\n 'Quickview initialized in restricted mode due to incompatible sandboxing environment. Keywords hit navigation will be disabled.'\n );\n};\n\nexport const QuickviewIframe: FunctionalComponent<{\n content?: string;\n onSetIframeRef: (ref: HTMLIFrameElement) => void;\n uniqueIdentifier?: string;\n sandbox?: string;\n src?: string;\n logger?: SearchEngine['logger'];\n}> = ({onSetIframeRef, uniqueIdentifier, content, sandbox, src, logger}) => {\n // When a document is written with document.open/document.write/document.close\n // it is not synchronous and the content of the iframe is only available to be queried at the end of the current call stack.\n // This add a \"wait\" (setTimeout 0) before calling the `onSetIframeRef` from the parent modal quickview\n const waitForIframeContentToBeWritten = () => {\n return new Promise((resolve) => setTimeout(resolve));\n };\n\n return (\n <iframe\n src=\"about:blank\"\n class=\"h-full w-full\"\n sandbox={sandbox}\n ref={async (el) => {\n const iframeRef = el as HTMLIFrameElement;\n\n if (!uniqueIdentifier || !content) {\n return;\n }\n\n const documentWriter = iframeRef.contentDocument;\n if (!documentWriter) {\n if (src) {\n warnAboutLimitedUsageQuickview(logger);\n iframeRef.src = src;\n }\n\n return;\n }\n if (\n currentResultAlreadyWrittenToDocument(\n documentWriter,\n uniqueIdentifier\n )\n ) {\n return;\n }\n\n writeDocument(documentWriter, content);\n ensureSameResultIsNotOverwritten(documentWriter, uniqueIdentifier);\n\n await waitForIframeContentToBeWritten();\n onSetIframeRef(iframeRef);\n }}\n ></iframe>\n );\n};\n","import type {HighlightKeywords} from '../atomic-quickview-modal/atomic-quickview-modal';\nimport type {QuickviewWordHighlight} from '../quickview-word-highlight/quickview-word-highlight';\n\nconst buildPreviewBar = (documentWriter: Document) => {\n const previewBarId = 'CoveoPreviewBar';\n const bar =\n documentWriter.getElementById(previewBarId) ||\n documentWriter.createElement('div');\n\n bar.id = previewBarId;\n bar.innerHTML = '';\n bar.style.position = 'fixed';\n bar.style.top = '0';\n bar.style.right = '0';\n bar.style.width = '15px';\n bar.style.height = '100%';\n bar.setAttribute('aria-hidden', 'true');\n return bar;\n};\n\nconst buildPreviewUnit = (\n documentWriter: Document,\n word: QuickviewWordHighlight,\n wordElement: HTMLElement,\n docHeight: number,\n highlightKeywords: HighlightKeywords\n) => {\n const previewUnit = documentWriter.createElement('div');\n if (highlightKeywords.keywords[word.text]?.enabled === false) {\n previewUnit.style.display = 'none';\n return previewUnit;\n }\n\n const elementPosition = wordElement.getBoundingClientRect().top;\n\n previewUnit.style.position = 'absolute';\n previewUnit.style.top = `${(elementPosition / docHeight) * 100}%`;\n previewUnit.style.width = '100%';\n previewUnit.style.height = '1px';\n previewUnit.style.border = `1px solid ${word.previewBorderColor}`;\n previewUnit.style.backgroundColor = word.color;\n return previewUnit;\n};\n\nexport const buildQuickviewPreviewBar = (\n words: Record<string, QuickviewWordHighlight>,\n highlightKeywords: HighlightKeywords,\n iframe?: HTMLIFrameElement\n) => {\n if (!iframe) {\n return;\n }\n const documentWriter = iframe.contentDocument;\n if (!documentWriter) {\n return;\n }\n const bar = buildPreviewBar(documentWriter);\n if (highlightKeywords.highlightNone) {\n bar.remove();\n return;\n }\n const docHeight = documentWriter.body.scrollHeight;\n\n Object.values(words).forEach((word) => {\n word.elements.forEach((wordElement) => {\n const previewUnit = buildPreviewUnit(\n documentWriter,\n word,\n wordElement,\n docHeight,\n highlightKeywords\n );\n\n bar.appendChild(previewUnit);\n });\n });\n documentWriter.body.appendChild(bar);\n};\n","export const rgbToHsv = (r: number, g: number, b: number) => {\n const max = Math.max(r, g, b);\n const min = Math.min(r, g, b);\n\n let h: number;\n const v = max;\n\n const d = max - min;\n const s = max === 0 ? 0 : d / max;\n\n if (max === min) {\n h = 0;\n } else {\n switch (max) {\n case r:\n h = (g - b) / d + (g < b ? 6 : 0);\n break;\n case g:\n h = (b - r) / d + 2;\n break;\n default:\n h = (r - g) / d + 4;\n break;\n }\n h /= 6;\n }\n\n return {h, s, v};\n};\n\nexport const hsvToRgb = (h: number, s: number, v: number) => {\n let r: number, g: number, b: number;\n\n const i = Math.floor(h * 6);\n const f = h * 6 - i;\n const p = v * (1 - s);\n const q = v * (1 - f * s);\n const t = v * (1 - (1 - f) * s);\n\n switch (i % 6) {\n case 0:\n r = v;\n g = t;\n b = p;\n break;\n case 1:\n r = q;\n g = v;\n b = p;\n break;\n case 2:\n r = p;\n g = v;\n b = t;\n break;\n case 3:\n r = p;\n g = q;\n b = v;\n break;\n case 4:\n r = t;\n g = p;\n b = v;\n break;\n default:\n r = v;\n g = p;\n b = q;\n break;\n }\n\n return {\n r: Math.round(r),\n g: Math.round(g),\n b: Math.round(b),\n };\n};\n","import {TermsToHighlight} from '@coveo/headless';\nimport {hsvToRgb, rgbToHsv} from '../../../../utils/color-utils';\n\nexport const HIGHLIGHT_PREFIX = 'CoveoHighlight';\nexport class QuickviewWordHighlight {\n public text: string;\n public indexIdentifier: string;\n public occurrences = 0;\n public color: string;\n public focusedColor: string;\n public previewBorderColor: string;\n public elements: HTMLElement[] = [];\n\n private currentNavigationPosition = -1;\n\n constructor(\n private stemmingInfoFromIndex: TermsToHighlight,\n keywordElementInIframe: HTMLElement\n ) {\n const parsed = this.parseKeywordIdentifier(keywordElementInIframe);\n if (!parsed) {\n throw 'Invalid keyword identifier for quickview';\n }\n\n this.text = this.getText(keywordElementInIframe);\n this.indexIdentifier = `${parsed.keywordIdentifier}`;\n this.color = keywordElementInIframe.style.backgroundColor;\n this.focusedColor = this.computeInvertedColor();\n this.previewBorderColor = this.computeSaturatedColor();\n\n this.addElement(keywordElementInIframe);\n }\n\n public addElement(keywordElementInIframe: HTMLElement) {\n this.occurrences++;\n this.elements.push(keywordElementInIframe);\n }\n\n public navigateForward() {\n this.currentNavigationPosition++;\n if (this.currentNavigationPosition >= this.elements.length) {\n this.currentNavigationPosition = 0;\n }\n this.highlightNavigation();\n this.putElementIntoView();\n return this.elements[this.currentNavigationPosition];\n }\n\n public navigateBackward() {\n this.currentNavigationPosition--;\n if (this.currentNavigationPosition < 0) {\n this.currentNavigationPosition = this.elements.length - 1;\n }\n this.highlightNavigation();\n this.putElementIntoView();\n return this.elements[this.currentNavigationPosition];\n }\n\n private isTaggedWord(element: HTMLElement) {\n return element.nodeName.toLowerCase() === 'coveotaggedword';\n }\n\n private highlightNavigation() {\n const currentElement = this.elements[this.currentNavigationPosition];\n const otherElements = this.elements.filter((el) => el !== currentElement);\n currentElement.style.color = this.color;\n currentElement.style.backgroundColor = this.focusedColor;\n otherElements.forEach((element) => {\n element.style.color = '';\n element.style.backgroundColor = this.color;\n });\n }\n\n private putElementIntoView() {\n const element = this.elements[this.currentNavigationPosition];\n element.scrollIntoView();\n }\n\n private getText(element: HTMLElement) {\n const innerTextOfHTMLElement = this.getHighlightedInnerText(element);\n return this.resolveOriginalTerm(innerTextOfHTMLElement).trim();\n }\n\n private resolveOriginalTerm(highlight: string): string {\n // First try to find either an exact match between the highlight and the original non-stemmed keyword.\n // Otherwise try to find a match between the highlight and the stemming keyword expansions\n // If nothing is found (which should not normally happen...), simply return the highlight keyword as is.\n\n const found = Object.keys(this.stemmingInfoFromIndex).find(\n (originalTerm) => {\n const originalTermMatch =\n originalTerm.toLowerCase() === highlight.toLowerCase();\n if (originalTermMatch) {\n return true;\n }\n const stemmingExpansions = this.stemmingInfoFromIndex[originalTerm];\n if (!stemmingExpansions) {\n return false;\n }\n\n const stemmingExpansionMatch = stemmingExpansions.find(\n (stemmingExpansion) =>\n stemmingExpansion.toLowerCase() === highlight.toLowerCase()\n );\n return stemmingExpansionMatch;\n }\n );\n return found || highlight;\n }\n\n private getHighlightedInnerText(element: HTMLElement): string {\n if (!this.isTaggedWord(element)) {\n return this.getTextOfHTMLElement(element);\n }\n\n const children = Array.from(element.children) as HTMLElement[];\n if (children.length >= 1) {\n return this.getTextOfHTMLElement(children[0]);\n }\n\n return '';\n }\n\n private parseKeywordIdentifier(element: HTMLElement) {\n const parts = element.id\n .substring(HIGHLIGHT_PREFIX.length + 1)\n .match(/^([0-9]+)\\.([0-9]+)\\.([0-9]+)$/);\n\n if (!parts || parts.length <= 3) {\n return null;\n }\n\n return {\n keywordIdentifier: parts[1],\n keywordTermPart: parseInt(parts[3], 10),\n };\n }\n\n private getTextOfHTMLElement(el: HTMLElement) {\n return el.innerText || el.textContent || '';\n }\n\n private computeInvertedColor() {\n const {r, g, b} = this.extractRgb();\n return `rgb(${255 - r}, ${255 - g}, ${255 - b})`;\n }\n\n private computeSaturatedColor() {\n const {r, g, b} = this.extractRgb();\n const {h, s, v} = rgbToHsv(r, g, b);\n let newSaturation = s * 2;\n if (newSaturation > 1) {\n newSaturation = 1;\n }\n const {\n r: rSaturated,\n g: gSaturated,\n b: bSaturated,\n } = hsvToRgb(h, newSaturation, v);\n return `rgb(${rSaturated}, ${gSaturated}, ${bSaturated})`;\n }\n\n private extractRgb() {\n const rgbExtracted = this.color.match(/\\d+/g);\n if (!rgbExtracted) {\n return {r: 255, g: 255, b: 255};\n }\n\n return {\n r: parseInt(rgbExtracted[0], 10),\n g: parseInt(rgbExtracted[1], 10),\n b: parseInt(rgbExtracted[2], 10),\n };\n }\n}\n\nexport const getWordsHighlights = (\n stemmingInfoFromIndex: TermsToHighlight,\n iframe?: HTMLIFrameElement\n) => {\n const wordsHighlights: Record<string, QuickviewWordHighlight> = {};\n if (!iframe) {\n return wordsHighlights;\n }\n\n iframe.contentDocument?.body\n .querySelectorAll(`[id^=\"${HIGHLIGHT_PREFIX}\"]`)\n .forEach((el) => {\n const wordHTMLElementToHighlight = el as HTMLElement;\n\n const wordHighlight = new QuickviewWordHighlight(\n stemmingInfoFromIndex,\n wordHTMLElementToHighlight\n );\n\n if (!wordHighlight.text) {\n return;\n }\n\n const alreadyScannedKeyword =\n wordsHighlights[wordHighlight.indexIdentifier];\n\n if (alreadyScannedKeyword) {\n alreadyScannedKeyword.addElement(wordHTMLElementToHighlight);\n } else {\n wordsHighlights[wordHighlight.indexIdentifier] = wordHighlight;\n }\n });\n\n return wordsHighlights;\n};\n","@import '../../../../global/global.pcss';\n@import '../../../../utils/tailwind-utilities/link-style.tw.css';\n\n.atomic-quickview-modal {\n &::part(backdrop) {\n grid-template-columns: 1fr max(80vw, 30rem) 1fr;\n }\n &::part(body),\n &::part(header),\n &::part(footer) {\n @apply max-w-full;\n }\n\n &::part(footer) {\n @apply flex justify-center;\n }\n\n &::part(body-wrapper) {\n @apply h-full overflow-hidden p-0;\n }\n\n &::part(body) {\n @apply h-full;\n }\n\n &::part(backdrop) {\n grid-template-rows: 1fr 100% 3fr;\n }\n\n &::part(header-wrapper) {\n @apply bg-neutral-light;\n }\n\n a {\n @apply link-style;\n }\n}\n","import {\n buildInteractiveResult,\n Result,\n InteractiveResult,\n TermsToHighlight,\n} from '@coveo/headless';\nimport {\n Component,\n Event,\n EventEmitter,\n h,\n Prop,\n State,\n Watch,\n Method,\n VNode,\n Fragment,\n} from '@stencil/core';\nimport CloseIcon from '../../../../images/close.svg';\nimport {\n InitializableComponent,\n InitializeBindings,\n} from '../../../../utils/initialization-utils';\nimport {ATOMIC_MODAL_EXPORT_PARTS} from '../../../common/atomic-modal/export-parts';\nimport {IconButton} from '../../../common/iconButton';\nimport {LinkWithItemAnalytics} from '../../../common/item-link/stencil-item-link';\nimport {Button} from '../../../common/stencil-button';\nimport {Bindings} from '../../atomic-search-interface/atomic-search-interface';\nimport {QuickviewSidebar} from '../atomic-quickview-sidebar/atomic-quickview-sidebar';\nimport {QuickviewIframe} from '../quickview-iframe/quickview-iframe';\nimport {buildQuickviewPreviewBar} from '../quickview-preview-bar/quickview-preview-bar';\nimport {\n getWordsHighlights,\n HIGHLIGHT_PREFIX,\n QuickviewWordHighlight,\n} from '../quickview-word-highlight/quickview-word-highlight';\n\nexport interface HighlightKeywords {\n highlightNone: boolean;\n keywords: {\n [text: string]: {\n indexIdentifier: string;\n enabled: boolean;\n };\n };\n}\n\n/**\n * The modal opened when clicking on a quickview button.\n * Do not use this component directly; use `atomic-quickview` instead.\n *\n * @part backdrop - The transparent backdrop hiding the content behind the modal.\n * @part container - The modal's outermost container with the outline and background.\n * @part header-wrapper - The wrapper around the header.\n * @part header - The header at the top of the modal.\n * @part header-ruler - The horizontal ruler underneath the header.\n * @part body-wrapper - The wrapper around the body.\n * @part body - The body of the modal, between the header and the footer.\n * @part footer-wrapper - The wrapper with a shadow or background color around the footer.\n * @part footer - The footer at the bottom of the modal.\n * @part quickview-modal-header-icon - The close icon of the modal.\n * @part quickview-modal-header-title - The title of the modal.\n */\n@Component({\n tag: 'atomic-quickview-modal',\n styleUrl: 'atomic-quickview-modal.pcss',\n shadow: true,\n})\nexport class AtomicQuickviewModal implements InitializableComponent {\n @InitializeBindings() public bindings!: Bindings;\n @State() public error!: Error;\n\n @State() private highlightKeywords: HighlightKeywords = {\n highlightNone: false,\n keywords: {},\n };\n @Watch('highlightKeywords')\n watchHighlightKeywords() {\n this.handleHighlightsScripts();\n }\n\n @Event({eventName: 'atomic/quickview/next'}) nextQuickview?: EventEmitter;\n @Event({eventName: 'atomic/quickview/previous'})\n previousQuickview?: EventEmitter;\n\n @State() private minimizeSidebar = false;\n @State() private words: Record<string, QuickviewWordHighlight> = {};\n private iframeRef?: HTMLIFrameElement;\n\n @Prop({mutable: true, reflect: false}) content?: string;\n @Prop({mutable: true, reflect: false}) result?: Result;\n @Prop() current?: number;\n @Prop() total?: number;\n @Prop() sandbox?: string;\n @Prop() modalCloseCallback?: () => void;\n\n private interactiveResult?: InteractiveResult;\n\n public componentWillLoad(): void {\n this.minimizeSidebar = this.bindings.store.isMobile();\n }\n\n @Method()\n public async reset() {\n this.highlightKeywords = {\n highlightNone: false,\n keywords: {},\n };\n this.minimizeSidebar = false;\n this.iframeRef = undefined;\n this.content = undefined;\n this.result = undefined;\n this.interactiveResult = undefined;\n }\n\n private renderHeader() {\n let headerContent: VNode | null = null;\n if (this.result) {\n this.interactiveResult = buildInteractiveResult(this.bindings.engine, {\n options: {result: this.result},\n });\n headerContent = (\n <Fragment>\n <LinkWithItemAnalytics\n href={this.result?.clickUri}\n onSelect={() => this.interactiveResult?.select()}\n onBeginDelayedSelect={() =>\n this.interactiveResult?.beginDelayedSelect()\n }\n onCancelPendingSelect={() =>\n this.interactiveResult?.cancelPendingSelect()\n }\n className=\"truncate\"\n part=\"quickview-modal-header-title\"\n >\n {this.result.title}\n </LinkWithItemAnalytics>\n <IconButton\n partPrefix=\"quickview-modal-header\"\n icon={CloseIcon}\n onClick={() => this.onClose()}\n ariaLabel={this.bindings.i18n.t('close')}\n style=\"text-transparent\"\n title={this.bindings.i18n.t('close')}\n />\n </Fragment>\n );\n }\n return (\n <div slot=\"header\" class=\"flex w-full items-center justify-between\">\n {headerContent}\n </div>\n );\n }\n\n private renderBody() {\n return (\n <div slot=\"body\" class=\"grid h-full grid-cols-[min-content_auto]\">\n <div\n class=\"h-full overflow-y-auto\"\n style={{backgroundColor: 'var(--atomic-neutral-light)'}}\n >\n <QuickviewSidebar\n words={this.words}\n i18n={this.bindings.i18n}\n highlightKeywords={this.highlightKeywords}\n onHighlightKeywords={(highlight) =>\n (this.highlightKeywords = highlight)\n }\n minimized={this.minimizeSidebar}\n onMinimize={(minimize) => (this.minimizeSidebar = minimize)}\n />\n </div>\n <div class=\"relative overflow-auto\">\n <QuickviewIframe\n logger={this.logger}\n src={this.quickviewSrc}\n sandbox={this.sandbox}\n uniqueIdentifier={this.quickviewUniqueIdentifier}\n content={this.content}\n onSetIframeRef={async (ref) => {\n this.iframeRef = ref;\n this.words = getWordsHighlights(\n this.termsToHighlight,\n this.iframeRef\n );\n this.handleHighlightsScripts();\n }}\n />\n {buildQuickviewPreviewBar(\n this.words,\n this.highlightKeywords,\n this.iframeRef\n )}\n </div>\n </div>\n );\n }\n\n private renderFooter() {\n return (\n <div slot=\"footer\" class=\"flex items-center gap-2\">\n <Button\n class=\"p-2\"\n style=\"square-neutral\"\n onClick={() => this.previousQuickview?.emit()}\n disabled={this.current === 1}\n text={this.bindings.i18n.t('quickview-previous')}\n ></Button>\n <p class=\"text-center\">\n {this.bindings.i18n.t('showing-results-of', {\n first: this.current,\n total: this.total,\n })}\n </p>\n <Button\n class=\"p-2\"\n style=\"square-neutral\"\n onClick={() => this.nextQuickview?.emit()}\n disabled={this.current === this.total}\n text={this.bindings.i18n.t('quickview-next')}\n ></Button>\n </div>\n );\n }\n\n private onClose() {\n this.content = undefined;\n this.result = undefined;\n this.modalCloseCallback && this.modalCloseCallback();\n }\n\n private get isOpen() {\n return !!this.content && !!this.result;\n }\n\n private get highlightScriptId() {\n return 'CoveoDisableHighlightStyle';\n }\n\n private get logger() {\n return this.bindings.engine.logger;\n }\n\n private get quickviewSrc() {\n return this.bindings.engine.state.resultPreview?.contentURL;\n }\n\n private enableHighlights() {\n this.removeDisableHighlightScript();\n }\n\n private enableHighlightsSpecificKeyword(identifier: string) {\n this.removeDisableHighlightScript(identifier);\n }\n\n private disableHighlights() {\n this.createDisableHighlightScript();\n }\n\n private disableHighlightsSpecificKeyword(identifier: string) {\n this.createDisableHighlightScript(identifier);\n }\n\n private removeDisableHighlightScript(identifier?: string) {\n const doc = this.iframeRef?.contentWindow?.document;\n if (!doc) {\n return;\n }\n doc\n .getElementById(\n `${this.highlightScriptId}${identifier ? `:${identifier}` : ''}`\n )\n ?.remove();\n }\n\n private createDisableHighlightScript(identifier?: string) {\n const doc = this.iframeRef?.contentWindow?.document;\n if (!doc) {\n return;\n }\n\n const head = doc.head;\n const scriptId = `${this.highlightScriptId}${\n identifier ? `:${identifier}` : ''\n }`;\n const style =\n doc.getElementById(scriptId) || this.bindings.createStyleElement();\n style.setAttribute('id', scriptId);\n head.appendChild(style);\n style.appendChild(\n doc.createTextNode(`[id^=\"${HIGHLIGHT_PREFIX}${\n identifier ? `:${identifier}` : ''\n }\"] {\n background-color: inherit !important;\n color: inherit !important;\n }`)\n );\n }\n\n private get termsToHighlight() {\n const flatPhrasesToHighlight: TermsToHighlight = {};\n\n const phrasesToHighlight =\n this.bindings.engine.state.search.response.phrasesToHighlight;\n\n Object.entries(phrasesToHighlight).forEach(([phrase, keywords]) => {\n flatPhrasesToHighlight[phrase] = Object.entries(keywords).flatMap(\n ([keywordEntry, keywordStemming]) => {\n return [keywordEntry, ...keywordStemming];\n }\n );\n });\n\n return {\n ...this.bindings.engine.state.search.response.termsToHighlight,\n ...flatPhrasesToHighlight,\n };\n }\n\n private get requestId() {\n return this.bindings.engine.state.search.requestId;\n }\n\n private get quickviewUniqueIdentifier() {\n return this.result?.uniqueId + this.requestId;\n }\n\n private handleHighlightsScripts() {\n if (!this.highlightKeywords.highlightNone) {\n this.enableHighlights();\n } else {\n this.disableHighlights();\n }\n Object.values(this.highlightKeywords.keywords).forEach((word) => {\n if (word.enabled) {\n this.enableHighlightsSpecificKeyword(word.indexIdentifier);\n } else {\n this.disableHighlightsSpecificKeyword(word.indexIdentifier);\n }\n });\n }\n\n public render() {\n return (\n <atomic-modal\n fullscreen={this.bindings.store.isMobile()}\n class={'atomic-quickview-modal'}\n isOpen={this.isOpen}\n close={() => this.onClose()}\n exportparts={ATOMIC_MODAL_EXPORT_PARTS}\n >\n {this.renderHeader()}\n {this.renderBody()}\n {this.renderFooter()}\n </atomic-modal>\n );\n }\n}\n"],"version":3}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"file":"atomic-result-link.js","mappings":";;;;;;;;;;;;AAAA,MAAM,mBAAmB,GAAG,8uiEAA8uiE,CAAC;AAC3wiE,+BAAe,mBAAmB;;;;;;;;;;;;MC4BrBA,kBAAgB;;;;;;IA0BpB,UAAU;QACf,IAAI,CAAC,IAAI,CAAC,aAAa,CACrB,gBAAgB,CACd,+BAA+B,EAC/B,CAAC,eAAwB;YACvB,IAAI,CAAC,eAAe,GAAG,eAAe,CAAC;SACxC,CACF,CACF,CAAC;KACH;IAEM,iBAAiB;QACtB,MAAM,QAAQ,GAAG,YAAY,CAAC;QAC9B,IAAI,CAAC,cAAc,GAAG,CAAC,CAAC,sBAAsB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC1D,IAAI,CAAC,cAAc,GAAG,yBAAyB,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;KACtE;IAEM,MAAM;QACX,MAAM,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC,YAAY,CAAC;cACvC,IAAI,CAAC,MAAM,CAAC,QAAQ;cACpB,6BAA6B,CAC3B,IAAI,CAAC,YAAY,EACjB,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,QAAQ,CACd,CAAC;QAEN,QACE,EAAC,qBAAqB,qDACpB,IAAI,EAAE,IAAI,EACV,QAAQ,EAAE,MAAM,IAAI,CAAC,iBAAiB,CAAC,MAAM,EAAE,EAC/C,oBAAoB,EAAE,MAAM,IAAI,CAAC,iBAAiB,CAAC,kBAAkB,EAAE,EACvE,qBAAqB,EAAE,MACrB,IAAI,CAAC,iBAAiB,CAAC,mBAAmB,EAAE,EAE9C,UAAU,EAAE,IAAI,CAAC,cAAc,EAC/B,eAAe,EAAE,IAAI,CAAC,eAAe,IAEpC,IAAI,CAAC,cAAc,IAClB,eAAQ,KAER,0BACE,KAAK,EAAC,OAAO,EACb,OAAO,EAAC,UAAU,GACE,CACvB,CACqB,EACxB;KACH;;;;;;AAxE4B;IAA5B,kBAAkB,EAAE;oDAA4B;AAGxB;IAAxB,aAAa,EAAE;kDAAkC;AACd;IAAnC,wBAAwB,EAAE;6DAA+C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","names":["AtomicResultLink"],"sources":["src/components/search/result-template-components/atomic-result-link/atomic-result-link.pcss?tag=atomic-result-link","src/components/search/result-template-components/atomic-result-link/atomic-result-link.tsx"],"sourcesContent":["@import '../../../../global/global.pcss';\n@
|
|
1
|
+
{"file":"atomic-result-link.js","mappings":";;;;;;;;;;;;AAAA,MAAM,mBAAmB,GAAG,8uiEAA8uiE,CAAC;AAC3wiE,+BAAe,mBAAmB;;;;;;;;;;;;MC4BrBA,kBAAgB;;;;;;IA0BpB,UAAU;QACf,IAAI,CAAC,IAAI,CAAC,aAAa,CACrB,gBAAgB,CACd,+BAA+B,EAC/B,CAAC,eAAwB;YACvB,IAAI,CAAC,eAAe,GAAG,eAAe,CAAC;SACxC,CACF,CACF,CAAC;KACH;IAEM,iBAAiB;QACtB,MAAM,QAAQ,GAAG,YAAY,CAAC;QAC9B,IAAI,CAAC,cAAc,GAAG,CAAC,CAAC,sBAAsB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC1D,IAAI,CAAC,cAAc,GAAG,yBAAyB,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;KACtE;IAEM,MAAM;QACX,MAAM,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC,YAAY,CAAC;cACvC,IAAI,CAAC,MAAM,CAAC,QAAQ;cACpB,6BAA6B,CAC3B,IAAI,CAAC,YAAY,EACjB,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,QAAQ,CACd,CAAC;QAEN,QACE,EAAC,qBAAqB,qDACpB,IAAI,EAAE,IAAI,EACV,QAAQ,EAAE,MAAM,IAAI,CAAC,iBAAiB,CAAC,MAAM,EAAE,EAC/C,oBAAoB,EAAE,MAAM,IAAI,CAAC,iBAAiB,CAAC,kBAAkB,EAAE,EACvE,qBAAqB,EAAE,MACrB,IAAI,CAAC,iBAAiB,CAAC,mBAAmB,EAAE,EAE9C,UAAU,EAAE,IAAI,CAAC,cAAc,EAC/B,eAAe,EAAE,IAAI,CAAC,eAAe,IAEpC,IAAI,CAAC,cAAc,IAClB,eAAQ,KAER,0BACE,KAAK,EAAC,OAAO,EACb,OAAO,EAAC,UAAU,GACE,CACvB,CACqB,EACxB;KACH;;;;;;AAxE4B;IAA5B,kBAAkB,EAAE;oDAA4B;AAGxB;IAAxB,aAAa,EAAE;kDAAkC;AACd;IAAnC,wBAAwB,EAAE;6DAA+C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","names":["AtomicResultLink"],"sources":["src/components/search/result-template-components/atomic-result-link/atomic-result-link.pcss?tag=atomic-result-link","src/components/search/result-template-components/atomic-result-link/atomic-result-link.tsx"],"sourcesContent":["@import '../../../../global/global.pcss';\n@import '../../../../utils/tailwind-utilities/link-style.tw.css';\natomic-result-link {\n a {\n @apply link-style;\n }\n}\n","import {isUndefined} from '@coveo/bueno';\nimport {InteractiveResult} from '@coveo/headless';\nimport {Component, h, Prop, Element} from '@stencil/core';\nimport {buildCustomEvent} from '../../../../utils/event-utils';\nimport {\n InitializableComponent,\n InitializeBindings,\n} from '../../../../utils/initialization-utils';\nimport {buildStringTemplateFromResult} from '../../../../utils/result-utils';\nimport {getDefaultSlotFromHost} from '../../../../utils/slot-utils';\nimport {AnyUnfoldedItem} from '../../../common/item-list/unfolded-item';\nimport {getAttributesFromLinkSlot} from '../../../common/item-link/attributes-slot';\nimport {LinkWithItemAnalytics} from '../../../common/item-link/stencil-item-link';\nimport {Bindings} from '../../atomic-search-interface/atomic-search-interface';\nimport {\n InteractiveResultContext,\n ResultContext,\n} from '../result-template-decorators';\n\n/**\n * The `atomic-result-link` component automatically transforms a search result title into a clickable link that points to the original item.\n * @slot default - Lets you display alternative content inside the link\n * @slot attributes - Lets you pass [attributes](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/a#attributes) down to the link element, overriding other attributes, to be used exclusively with an \"a\" tag such as `<a slot=\"attributes\" target=\"_blank\" download></a>`.\n */\n@Component({\n tag: 'atomic-result-link',\n styleUrl: 'atomic-result-link.pcss',\n shadow: false,\n})\nexport class AtomicResultLink implements InitializableComponent {\n @InitializeBindings() public bindings!: Bindings;\n public error!: Error;\n\n @ResultContext() private result!: AnyUnfoldedItem;\n @InteractiveResultContext() private interactiveResult!: InteractiveResult;\n\n @Element() private host!: HTMLElement;\n\n /**\n * Specifies a template literal from which to generate the `href` attribute value (see\n * [Template literals](https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Template_literals)).\n *\n * The template literal can reference any number of result properties from the parent result. It can also reference the window object.\n *\n * For example, the following markup generates an `href` value such as `http://uri.com?id=itemTitle`, using the result's `clickUri` and `itemtitle` fields.\n * ```html\n * <atomic-result-link href-template='${clickUri}?id=${raw.itemtitle}'></atomic-result-link>\n * ```\n */\n @Prop({reflect: true}) hrefTemplate?: string;\n\n private hasDefaultSlot!: boolean;\n private linkAttributes?: Attr[];\n private stopPropagation?: boolean;\n\n public initialize() {\n this.host.dispatchEvent(\n buildCustomEvent(\n 'atomic/resolveStopPropagation',\n (stopPropagation: boolean) => {\n this.stopPropagation = stopPropagation;\n }\n )\n );\n }\n\n public connectedCallback() {\n const slotName = 'attributes';\n this.hasDefaultSlot = !!getDefaultSlotFromHost(this.host);\n this.linkAttributes = getAttributesFromLinkSlot(this.host, slotName);\n }\n\n public render() {\n const href = isUndefined(this.hrefTemplate)\n ? this.result.clickUri\n : buildStringTemplateFromResult(\n this.hrefTemplate,\n this.result,\n this.bindings\n );\n\n return (\n <LinkWithItemAnalytics\n href={href}\n onSelect={() => this.interactiveResult.select()}\n onBeginDelayedSelect={() => this.interactiveResult.beginDelayedSelect()}\n onCancelPendingSelect={() =>\n this.interactiveResult.cancelPendingSelect()\n }\n attributes={this.linkAttributes}\n stopPropagation={this.stopPropagation}\n >\n {this.hasDefaultSlot ? (\n <slot />\n ) : (\n <atomic-result-text\n field=\"title\"\n default=\"no-title\"\n ></atomic-result-text>\n )}\n </LinkWithItemAnalytics>\n );\n }\n}\n"],"version":3}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"file":"atomic-segmented-facet-scrollable.js","mappings":"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","names":["AtomicSegmentedFacetScrollable"],"sources":["src/components/search/facets/atomic-segmented-facet-scrollable/atomic-segmented-facet-scrollable.pcss?tag=atomic-segmented-facet-scrollable&encapsulation=shadow","src/components/search/facets/atomic-segmented-facet-scrollable/atomic-segmented-facet-scrollable.tsx"],"sourcesContent":["@import '../../../../global/global.pcss';\n@
|
|
1
|
+
{"file":"atomic-segmented-facet-scrollable.js","mappings":";;;;;;;AAAA,MAAM,iCAAiC,GAAG,8thEAA8thE,CAAC;AACzwhE,6CAAe,iCAAiC;;;;;;;;;;;;MCuCnCA,gCAA8B;;;;;QAcxB,kBAAa,GAAG,IAAI,CAAC;QACrB,mBAAc,GAAG,IAAI,CAAC;;;6BADN,IAAI;8BACH,IAAI;;IAE/B,UAAU;QACf,IAAI,CAAC,YAAY,GAAG,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;KAC7D;IAEM,gBAAgB;QACrB,IAAI,CAAC,QAAQ,GAAG,IAAI,cAAc,CAAC;YACjC,IAAI,CAAC,YAAY,EAAE,CAAC;SACrB,CAAC,CAAC;QAEH,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC;QAC1E,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,mBAAoB,CAAC,CAAC;KAClD;IAED,oBAAoB;QAClB,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAC;KAC5B;IAKM,YAAY;QACjB,IAAI,CAAC,IAAI,CAAC,mBAAmB,EAAE;YAC7B,OAAO;SACR;QACD,MAAM,SAAS,GAAG,IAAI,CAAC,mBAAmB,CAAC;QAC3C,MAAM,YAAY,GAAG,SAAS,CAAC,WAAW,GAAG,SAAS,CAAC,WAAW,CAAC;QAEnE,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QACzD,MAAM,WAAW,GACf,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC;YAC/B,SAAS,CAAC,WAAW,GAAG,SAAS,CAAC,WAAW,CAAC;QAEhD,IAAI,CAAC,aAAa,GAAG,CAAC,YAAY,IAAI,UAAU,CAAC;QACjD,IAAI,CAAC,cAAc,GAAG,CAAC,YAAY,IAAI,WAAW,CAAC;KACpD;IAEO,iBAAiB,CAAC,SAAyB;QACjD,MAAM,SAAS,GAAG,IAAI,CAAC,mBAAoB,CAAC;QAC5C,MAAM,WAAW,GAAG,IAAI,CAAC,QAAS,CAAC,WAAW,GAAG,CAAC,CAAC;QAEnD,MAAM,cAAc,GAAG,CAAC,SAAS,CAAC,WAAW,GAAG,WAAW,IAAI,GAAG,CAAC;QAEnE,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,UAAU,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC;QAC1E,MAAM,WAAW,GACf,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,GAAG,cAAc,CAAC;YAChD,SAAS,CAAC,WAAW,GAAG,SAAS,CAAC,WAAW,CAAC;QAEhD,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;QAC3B,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;QAE5B,IAAI,SAAS,KAAK,MAAM,EAAE;YACxB,SAAS,CAAC,UAAU,IAAI,cAAc,CAAC;YACvC,IAAI,CAAC,aAAa,GAAG,UAAU,CAAC;YAChC,OAAO;SACR;QAED,SAAS,CAAC,UAAU,IAAI,cAAc,CAAC;QACvC,IAAI,CAAC,cAAc,GAAG,WAAW,CAAC;KACnC;IAEO,WAAW,CAAC,SAAyB;QAC3C,MAAM,IAAI,GACR,CAAC,SAAS,KAAK,MAAM,IAAI,IAAI,CAAC,aAAa;aAC1C,SAAS,KAAK,OAAO,IAAI,IAAI,CAAC,cAAc,CAAC,CAAC;QACjD,MAAM,WAAW,GAAG,IAAI,GAAG,qBAAqB,GAAG,EAAE,CAAC;QACtD,MAAM,eAAe,GACnB,qEAAqE,CAAC;QAExE,QACE,WACE,IAAI,EAAE,GAAG,SAAS,gBAAgB,EAClC,KAAK,EAAE,GAAG,WAAW,IAAI,eAAe,EAAE,IAE1C,EAAC,MAAM,IACL,IAAI,EAAE,GAAG,SAAS,eAAe,EACjC,KAAK,EAAC,gBAAgB,EACtB,KAAK,EAAE,mGACL,SAAS,KAAK,MAAM,GAAG,QAAQ,GAAG,SACpC,EAAE,EACF,UAAU,EAAC,MAAM,EACjB,QAAQ,EAAC,IAAI,EACb,OAAO,EAAE,MAAM,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,EAChD,GAAG,EAAE,CAAC,EAAE,MAAM,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC,IAEjC,mBACE,IAAI,EAAE,GAAG,SAAS,aAAa,EAC/B,KAAK,EAAC,OAAO,EACb,IAAI,EAAE,SAAS,KAAK,MAAM,GAAG,aAAa,GAAG,cAAc,GAC9C,CACR,EACT,WACE,IAAI,EAAE,GAAG,SAAS,OAAO,EACzB,KAAK,EAAE,uEACL,SAAS,KAAK,MAAM;kBAChB,uBAAuB;kBACvB,wBACN,EAAE,GACG,CACH,EACN;KACH;IAEM,MAAM;QACX,IAAI,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,QAAQ,EAAE;YACpC,OAAO,EAAC,MAAM,OAAU,CAAC;SAC1B;QAED,QACE,WAAK,IAAI,EAAC,sBAAsB,EAAC,KAAK,EAAC,eAAe,IACnD,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,EACzB,WACE,IAAI,EAAC,mBAAmB,EACxB,KAAK,EAAC,iEAAiE,EACvE,GAAG,EAAE,CAAC,EAAE,MAAM,IAAI,CAAC,mBAAmB,GAAG,EAAE,CAAC,IAE5C,eAAa,CACT,EACL,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CACtB,EACN;KACH;;;;;;;;;AAlIM;IADN,kBAAkB,EAAE;kEACM;AAIpB;IAFN,qBAAqB,CAAC,cAAc,CAAC;2EAEO;;;;;;;;;;;;;;;;;;;;","names":["AtomicSegmentedFacetScrollable"],"sources":["src/components/search/facets/atomic-segmented-facet-scrollable/atomic-segmented-facet-scrollable.pcss?tag=atomic-segmented-facet-scrollable&encapsulation=shadow","src/components/search/facets/atomic-segmented-facet-scrollable/atomic-segmented-facet-scrollable.tsx"],"sourcesContent":["@import '../../../../global/global.pcss';\n@import '../../../../utils/tailwind-utilities/hide-scrollbar.tw.css';\n\n.wrapper-segmented {\n @apply hide-scrollbar;\n}\n","import {\n buildSearchStatus,\n SearchStatus,\n SearchStatusState,\n} from '@coveo/headless';\nimport {Component, Element, h, Listen, State} from '@stencil/core';\nimport {Bindings} from '../../../..';\nimport ArrowLeftIcon from '../../../../images/arrow-left-rounded.svg';\nimport ArrowRightIcon from '../../../../images/arrow-right-rounded.svg';\nimport {\n BindStateToController,\n InitializableComponent,\n InitializeBindings,\n} from '../../../../utils/initialization-utils';\nimport {Button} from '../../../common/stencil-button';\nimport {Hidden} from '../../../common/stencil-hidden';\n\ntype ArrowDirection = 'right' | 'left';\n\n/**\n * The 'atomic-segmented-facet-scrollable' component wraps around one or several 'atomic-segmented-facet' to provide horizontal scrolling capabilities.\n *\n * @slot default - One or multiple atomic-segmented-facet components\n *\n * @part scrollable-container - The wrapper for the entire component including the horizontal-scroll container and the arrow buttons.\n * @part horizontal-scroll - The scrollable container for the segmented facets.\n * @part left-arrow-wrapper - The wrapper for the arrow button & fade on the left.\n * @part right-arrow-wrapper - The wrapper for the arrow button & fade on the right.\n * @part left-arrow-button - The arrow button used to scroll on the left.\n * @part right-arrow-button - The arrow button used to scroll on the right.\n * @part left-arrow-icon - The arrow icon on the left.\n * @part right-arrow-icon - The arrow icon on the right.\n * @part left-fade - The white to transparent gradient on the left.\n * @part right-fade - The white to transparent gradient on the right.\n */\n@Component({\n tag: 'atomic-segmented-facet-scrollable',\n styleUrl: 'atomic-segmented-facet-scrollable.pcss',\n shadow: true,\n})\nexport class AtomicSegmentedFacetScrollable implements InitializableComponent {\n @Element() private host!: HTMLElement;\n private horizontalScrollRef?: HTMLElement;\n private arrowRef?: HTMLElement;\n private observer!: ResizeObserver;\n\n @InitializeBindings()\n public bindings!: Bindings;\n public searchStatus!: SearchStatus;\n @BindStateToController('searchStatus')\n @State()\n public searchStatusState!: SearchStatusState;\n @State()\n public error!: Error;\n @State() private hideLeftArrow = true;\n @State() private hideRightArrow = true;\n\n public initialize() {\n this.searchStatus = buildSearchStatus(this.bindings.engine);\n }\n\n public componentDidLoad() {\n this.observer = new ResizeObserver(() => {\n this.handleScroll();\n });\n\n Array.from(this.host.children).forEach((el) => this.observer.observe(el));\n this.observer.observe(this.horizontalScrollRef!);\n }\n\n disconnectedCallback() {\n this.observer.disconnect();\n }\n\n @Listen('wheel')\n @Listen('touchmove')\n @Listen('keydown')\n public handleScroll() {\n if (!this.horizontalScrollRef) {\n return;\n }\n const container = this.horizontalScrollRef;\n const isScrollable = container.clientWidth < container.scrollWidth;\n\n const isLeftEdge = Math.floor(container.scrollLeft) <= 0;\n const isRightEdge =\n Math.ceil(container.scrollLeft) >=\n container.scrollWidth - container.clientWidth;\n\n this.hideLeftArrow = !isScrollable || isLeftEdge;\n this.hideRightArrow = !isScrollable || isRightEdge;\n }\n\n private slideHorizontally(direction: ArrowDirection) {\n const container = this.horizontalScrollRef!;\n const arrowsWidth = this.arrowRef!.clientWidth * 2;\n\n const pixelsToScroll = (container.clientWidth - arrowsWidth) * 0.7;\n\n const isLeftEdge = Math.floor(container.scrollLeft - pixelsToScroll) <= 0;\n const isRightEdge =\n Math.ceil(container.scrollLeft + pixelsToScroll) >=\n container.scrollWidth - container.clientWidth;\n\n this.hideLeftArrow = false;\n this.hideRightArrow = false;\n\n if (direction === 'left') {\n container.scrollLeft -= pixelsToScroll;\n this.hideLeftArrow = isLeftEdge;\n return;\n }\n\n container.scrollLeft += pixelsToScroll;\n this.hideRightArrow = isRightEdge;\n }\n\n private renderArrow(direction: ArrowDirection) {\n const hide =\n (direction === 'left' && this.hideLeftArrow) ||\n (direction === 'right' && this.hideRightArrow);\n const hiddenClass = hide ? 'invisible opacity-0' : '';\n const transitionClass =\n 'transition-opacity transition-[visibility] ease-in-out duration-300';\n\n return (\n <div\n part={`${direction}-arrow-wrapper`}\n class={`${hiddenClass} ${transitionClass}`}\n >\n <Button\n part={`${direction}-arrow-button`}\n style=\"square-neutral\"\n class={`absolute top-0 bottom-0 z-1 flex h-10 w-10 shrink-0 basis-8 items-center justify-center rounded ${\n direction === 'left' ? 'left-0' : 'right-0'\n }`}\n ariaHidden=\"true\"\n tabIndex=\"-1\"\n onClick={() => this.slideHorizontally(direction)}\n ref={(el) => (this.arrowRef = el)}\n >\n <atomic-icon\n part={`${direction}-arrow-icon`}\n class=\"w-3.5\"\n icon={direction === 'left' ? ArrowLeftIcon : ArrowRightIcon}\n ></atomic-icon>\n </Button>\n <div\n part={`${direction}-fade`}\n class={`from-background/60 pointer-events-none absolute top-0 z-0 h-10 w-20 ${\n direction === 'left'\n ? 'left-0 bg-linear-to-r'\n : 'right-0 bg-linear-to-l'\n }`}\n ></div>\n </div>\n );\n }\n\n public render() {\n if (this.searchStatus.state.hasError) {\n return <Hidden></Hidden>;\n }\n\n return (\n <div part=\"scrollable-container\" class=\"relative flex\">\n {this.renderArrow('left')}\n <div\n part=\"horizontal-scroll\"\n class=\"wrapper-segmented flex flex-row overflow-x-scroll scroll-smooth\"\n ref={(el) => (this.horizontalScrollRef = el)}\n >\n <slot></slot>\n </div>\n {this.renderArrow('right')}\n </div>\n );\n }\n}\n"],"version":3}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"file":"atomic-smart-snippet-collapse-wrapper2.js","mappings":";;;;AAAA,MAAM,oCAAoC,GAAG,66jEAA66jE,CAAC;AAC39jE,gDAAe,oCAAoC;;;;;;;;;;;;MCYtC,iCAAiC;;;;;QAS5B,eAAU,GAAG,IAAI,CAAC;QAElB,eAAU,GAAG,IAAI,CAAC;QAI1B,uBAAkB,GAAG,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC;;;0BANrB,IAAI;0BAEJ,IAAI;;;IAMzB,aAAa;QACnB,IACE,IAAI,CAAC,aAAa;aACjB,CAAC,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,eAAe,CAAC,EACpE;YACA,MAAM,IAAI,KAAK,CACb,2EAA2E,CAC5E,CAAC;SACH;KACF;IAEM,UAAU;QACf,IAAI,CAAC,aAAa,EAAE,CAAC;KACtB;IAEM,kBAAkB;QACvB,IAAI,IAAI,CAAC,UAAU,KAAK,SAAS,IAAI,IAAI,CAAC,kBAAkB,EAAE;YAC5D,IAAI,CAAC,oBAAoB,EAAE,CAAC;SAC7B;KACF;IAEO,oBAAoB;QAC1B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,qBAAqB,EAAE,CAAC,MAAM,CAAC;QAC3D,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAW,GAAG,IAAI,CAAC,aAAc,CAAC;QACzD,IAAI,CAAC,UAAU,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC;QACnC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,CACzB,kBAAkB,EAClB,IAAI,CAAC,eAAe,GAAG,IAAI,CAC5B,CAAC;KACH;IAEO,YAAY;QAClB,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;YACpB,OAAO;SACR;QACD,QACE,cACE,OAAO,EAAE,OAAO,IAAI,CAAC,UAAU,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,EACnD,KAAK,EAAC,mCAAmC,EACzC,IAAI,EAAE,IAAI,CAAC,UAAU,GAAG,kBAAkB,GAAG,kBAAkB,IAE9D,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,GAAG,WAAW,GAAG,WAAW,CAAC,EAClE,mBACE,IAAI,EAAE,SAAS,EACf,KAAK,EAAC,yBAAyB,GAClB,CACR,EACT;KACH;IAED,MAAM;QACJ,QACE,EAAC,IAAI,qDACH,KAAK,EACH,IAAI,CAAC,UAAU,IAAI,CAAC,IAAI,CAAC,kBAAkB;kBACvC,IAAI,CAAC,UAAU;sBACb,UAAU;sBACV,EAAE;kBACJ,WAAW,IAGjB,4DACE,IAAI,EAAC,gCAAgC,EACrC,KAAK,EAAC,uBAAuB,IAE7B,8DAAa,CACT,EACL,IAAI,CAAC,kBAAkB,IAAI,IAAI,CAAC,YAAY,EAAE,CAC1C,EACP;KACH;;;;;;;;;;AAtF4B;IAA5B,kBAAkB,EAAE;mEAA+B;;;;;;;;;;;;;;;;;","names":[],"sources":["src/components/common/smart-snippets/atomic-smart-snippet-collapse-wrapper/atomic-smart-snippet-collapse-wrapper.pcss?tag=atomic-smart-snippet-collapse-wrapper&encapsulation=shadow","src/components/common/smart-snippets/atomic-smart-snippet-collapse-wrapper/atomic-smart-snippet-collapse-wrapper.tsx"],"sourcesContent":["@import '../../../../global/global.pcss';\n@
|
|
1
|
+
{"file":"atomic-smart-snippet-collapse-wrapper2.js","mappings":";;;;AAAA,MAAM,oCAAoC,GAAG,66jEAA66jE,CAAC;AAC39jE,gDAAe,oCAAoC;;;;;;;;;;;;MCYtC,iCAAiC;;;;;QAS5B,eAAU,GAAG,IAAI,CAAC;QAElB,eAAU,GAAG,IAAI,CAAC;QAI1B,uBAAkB,GAAG,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC;;;0BANrB,IAAI;0BAEJ,IAAI;;;IAMzB,aAAa;QACnB,IACE,IAAI,CAAC,aAAa;aACjB,CAAC,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,eAAe,CAAC,EACpE;YACA,MAAM,IAAI,KAAK,CACb,2EAA2E,CAC5E,CAAC;SACH;KACF;IAEM,UAAU;QACf,IAAI,CAAC,aAAa,EAAE,CAAC;KACtB;IAEM,kBAAkB;QACvB,IAAI,IAAI,CAAC,UAAU,KAAK,SAAS,IAAI,IAAI,CAAC,kBAAkB,EAAE;YAC5D,IAAI,CAAC,oBAAoB,EAAE,CAAC;SAC7B;KACF;IAEO,oBAAoB;QAC1B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,qBAAqB,EAAE,CAAC,MAAM,CAAC;QAC3D,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAW,GAAG,IAAI,CAAC,aAAc,CAAC;QACzD,IAAI,CAAC,UAAU,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC;QACnC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,CACzB,kBAAkB,EAClB,IAAI,CAAC,eAAe,GAAG,IAAI,CAC5B,CAAC;KACH;IAEO,YAAY;QAClB,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;YACpB,OAAO;SACR;QACD,QACE,cACE,OAAO,EAAE,OAAO,IAAI,CAAC,UAAU,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,EACnD,KAAK,EAAC,mCAAmC,EACzC,IAAI,EAAE,IAAI,CAAC,UAAU,GAAG,kBAAkB,GAAG,kBAAkB,IAE9D,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,GAAG,WAAW,GAAG,WAAW,CAAC,EAClE,mBACE,IAAI,EAAE,SAAS,EACf,KAAK,EAAC,yBAAyB,GAClB,CACR,EACT;KACH;IAED,MAAM;QACJ,QACE,EAAC,IAAI,qDACH,KAAK,EACH,IAAI,CAAC,UAAU,IAAI,CAAC,IAAI,CAAC,kBAAkB;kBACvC,IAAI,CAAC,UAAU;sBACb,UAAU;sBACV,EAAE;kBACJ,WAAW,IAGjB,4DACE,IAAI,EAAC,gCAAgC,EACrC,KAAK,EAAC,uBAAuB,IAE7B,8DAAa,CACT,EACL,IAAI,CAAC,kBAAkB,IAAI,IAAI,CAAC,YAAY,EAAE,CAC1C,EACP;KACH;;;;;;;;;;AAtF4B;IAA5B,kBAAkB,EAAE;mEAA+B;;;;;;;;;;;;;;;;;","names":[],"sources":["src/components/common/smart-snippets/atomic-smart-snippet-collapse-wrapper/atomic-smart-snippet-collapse-wrapper.pcss?tag=atomic-smart-snippet-collapse-wrapper&encapsulation=shadow","src/components/common/smart-snippets/atomic-smart-snippet-collapse-wrapper/atomic-smart-snippet-collapse-wrapper.tsx"],"sourcesContent":["@import '../../../../global/global.pcss';\n@import '../../../../utils/tailwind-utilities/set-font-size.tw.css';\n\n/**\n * @prop --atomic-smart-snippet-gradient-start: At which height to start fading out a truncated answer.\n */\n:host {\n &::part(smart-snippet-collapse-wrapper) {\n @apply set-font-size-lg;\n\n height: auto;\n max-height: var(--collapsed-size);\n\n --gradient-start: var(\n --atomic-smart-snippet-gradient-start,\n calc(max(var(--collapsed-size) - (var(--line-height) * 1.5), var(--collapsed-size) * 0.5))\n );\n @apply text-on-background;\n mask-image: linear-gradient(black, black var(--gradient-start), transparent 100%);\n\n transition: max-height 2s cubic-bezier(0, 1, 0.16, 1) -1.82s;\n }\n\n button atomic-icon {\n @apply relative top-0.5;\n }\n}\n\n:host(.expanded) {\n &::part(smart-snippet-collapse-wrapper) {\n height: auto;\n max-height: 9999999px;\n transition: max-height 2s cubic-bezier(1, 0, 1, 0) 0s;\n mask-image: none;\n }\n\n button atomic-icon {\n @apply top-0 -scale-y-100;\n }\n}\n","import {Component, h, Element, State, Prop, Host} from '@stencil/core';\nimport ArrowDown from '../../../../images/arrow-down.svg';\nimport {InitializeBindings} from '../../../../utils/initialization-utils';\nimport {AnyBindings} from '../../interface/bindings';\n\n/**\n * @internal\n */\n@Component({\n tag: 'atomic-smart-snippet-collapse-wrapper',\n styleUrl: 'atomic-smart-snippet-collapse-wrapper.pcss',\n shadow: true,\n})\nexport class AtomicSmartSnippetCollapseWrapper {\n @InitializeBindings() public bindings!: AnyBindings;\n public error!: Error;\n @Element() public host!: HTMLElement;\n\n @Prop({reflect: true}) public maximumHeight?: number;\n\n @Prop({reflect: true}) public collapsedHeight?: number;\n\n @State() public isExpanded = true;\n\n @State() public showButton = true;\n\n @State() private fullHeight?: number;\n\n private shouldRenderButton = !!this.maximumHeight;\n\n private validateProps() {\n if (\n this.maximumHeight &&\n (!this.collapsedHeight || this.maximumHeight < this.collapsedHeight)\n ) {\n throw new Error(\n 'snippetMaximumHeight must be equal or greater than snippetCollapsedHeight'\n );\n }\n }\n\n public initialize() {\n this.validateProps();\n }\n\n public componentDidRender() {\n if (this.fullHeight === undefined && this.shouldRenderButton) {\n this.initializeFullHeight();\n }\n }\n\n private initializeFullHeight() {\n this.fullHeight = this.host.getBoundingClientRect().height;\n this.showButton = this.fullHeight! > this.maximumHeight!;\n this.isExpanded = !this.showButton;\n this.host.style.setProperty(\n '--collapsed-size',\n this.collapsedHeight + 'px'\n );\n }\n\n private renderButton() {\n if (!this.showButton) {\n return;\n }\n return (\n <button\n onClick={() => (this.isExpanded = !this.isExpanded)}\n class=\"text-primary mb-4 hover:underline\"\n part={this.isExpanded ? 'show-less-button' : 'show-more-button'}\n >\n {this.bindings.i18n.t(this.isExpanded ? 'show-less' : 'show-more')}\n <atomic-icon\n icon={ArrowDown}\n class=\"ml-2 w-3 align-baseline\"\n ></atomic-icon>\n </button>\n );\n }\n\n render() {\n return (\n <Host\n class={\n this.fullHeight || !this.shouldRenderButton\n ? this.isExpanded\n ? 'expanded'\n : ''\n : 'invisible'\n }\n >\n <div\n part=\"smart-snippet-collapse-wrapper\"\n class=\"block overflow-hidden\"\n >\n <slot></slot>\n </div>\n {this.shouldRenderButton && this.renderButton()}\n </Host>\n );\n }\n}\n"],"version":3}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"file":"atomic-smart-snippet-expandable-answer2.js","mappings":"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","names":[],"sources":["src/components/common/smart-snippets/atomic-smart-snippet-expandable-answer/atomic-smart-snippet-expandable-answer.pcss?tag=atomic-smart-snippet-expandable-answer&encapsulation=shadow","src/components/common/smart-snippets/atomic-smart-snippet-expandable-answer/atomic-smart-snippet-expandable-answer.tsx"],"sourcesContent":["@import '../../../../global/global.pcss';\n@
|
|
1
|
+
{"file":"atomic-smart-snippet-expandable-answer2.js","mappings":"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","names":[],"sources":["src/components/common/smart-snippets/atomic-smart-snippet-expandable-answer/atomic-smart-snippet-expandable-answer.pcss?tag=atomic-smart-snippet-expandable-answer&encapsulation=shadow","src/components/common/smart-snippets/atomic-smart-snippet-expandable-answer/atomic-smart-snippet-expandable-answer.tsx"],"sourcesContent":["@import '../../../../global/global.pcss';\n@import '../../../../utils/tailwind-utilities/set-font-size.tw.css';\n\n/**\n * @prop --atomic-smart-snippet-gradient-start: At which height to start fading out a truncated answer.\n */\n:host {\n atomic-smart-snippet-answer {\n @apply set-font-size-lg;\n\n display: block;\n overflow: hidden;\n height: var(--collapsed-size);\n\n --gradient-start: var(\n --atomic-smart-snippet-gradient-start,\n calc(max(var(--collapsed-size) - (var(--line-height) * 1.5), var(--collapsed-size) * 0.5))\n );\n @apply text-on-background;\n mask-image: linear-gradient(black, black var(--gradient-start), transparent 100%);\n\n &.loaded {\n transition: height ease-in-out 0.25s;\n }\n }\n\n button atomic-icon {\n @apply relative top-0.5;\n }\n\n .expanded {\n atomic-smart-snippet-answer {\n height: var(--full-height);\n mask-image: none;\n }\n\n button atomic-icon {\n @apply top-0 -scale-y-100;\n }\n }\n}\n","import {InlineLink} from '@coveo/headless';\nimport {\n h,\n Component,\n State,\n Prop,\n Element,\n Watch,\n Event,\n EventEmitter,\n} from '@stencil/core';\nimport ArrowDown from '../../../../images/arrow-down.svg';\nimport {listenOnce} from '../../../../utils/event-utils';\nimport {InitializeBindings} from '../../../../utils/initialization-utils';\nimport {AnyBindings} from '../../interface/bindings';\n\n/**\n * @internal\n */\n@Component({\n tag: 'atomic-smart-snippet-expandable-answer',\n styleUrl: 'atomic-smart-snippet-expandable-answer.pcss',\n shadow: true,\n})\nexport class AtomicSmartSnippetExpandableAnswer {\n @InitializeBindings() public bindings!: AnyBindings;\n public error!: Error;\n @Element() public host!: HTMLElement;\n\n @Prop({reflect: true}) expanded!: boolean;\n @Prop() htmlContent!: string;\n /**\n * The maximum height (in pixels) a snippet can have before the component truncates it and displays a \"show more\" button.\n */\n @Prop({reflect: true}) maximumHeight = 250;\n /**\n * When the answer is partly hidden, how much of its height (in pixels) should be visible.\n */\n @Prop({reflect: true}) collapsedHeight = 180;\n /**\n * Sets the style of the snippet.\n *\n * Example:\n * ```ts\n * expandableAnswer.snippetStyle = `\n * b {\n * color: blue;\n * }\n * `;\n * ```\n */\n @Prop() snippetStyle?: string;\n\n @State() fullHeight?: number;\n\n @Event() expand!: EventEmitter;\n @Event() collapse!: EventEmitter;\n @Event() selectInlineLink!: EventEmitter<InlineLink>;\n @Event() beginDelayedSelectInlineLink!: EventEmitter<InlineLink>;\n @Event() cancelPendingSelectInlineLink!: EventEmitter<InlineLink>;\n\n private validateProps() {\n if (this.maximumHeight < this.collapsedHeight) {\n throw 'maximumHeight must be equal or greater than collapsedHeight';\n }\n }\n\n public initialize() {\n this.validateProps();\n }\n\n @Watch('fullHeight')\n public fullHeightUpdated() {\n this.host.style.setProperty('--full-height', `${this.fullHeight}px`);\n this.host.style.setProperty(\n '--collapsed-size',\n `${this.showButton ? this.collapsedHeight : this.fullHeight}px`\n );\n }\n\n private establishInitialHeight() {\n const answerElement = document.createElement('atomic-smart-snippet-answer');\n answerElement.htmlContent = this.htmlContent;\n answerElement.innerStyle = this.snippetStyle;\n answerElement.style.visibility = 'hidden';\n answerElement.style.position = 'absolute';\n return new Promise<number>((resolve) => {\n listenOnce(answerElement, 'answerSizeUpdated', (event) => {\n answerElement.remove();\n resolve((event as CustomEvent<{height: number}>).detail.height);\n });\n this.host.parentElement!.appendChild(answerElement);\n });\n }\n\n private get showButton() {\n return this.fullHeight! > this.maximumHeight;\n }\n\n private get isExpanded() {\n return this.expanded || !this.showButton;\n }\n\n public async componentWillLoad() {\n this.fullHeight = await this.establishInitialHeight();\n }\n\n public renderAnswer() {\n return (\n <div part=\"truncated-answer\">\n <atomic-smart-snippet-answer\n exportparts=\"answer\"\n htmlContent={this.htmlContent}\n innerStyle={this.snippetStyle}\n onAnswerSizeUpdated={(e) => (this.fullHeight = e.detail.height)}\n onSelectInlineLink={(e) => this.selectInlineLink.emit(e.detail)}\n onBeginDelayedSelectInlineLink={(e) =>\n this.beginDelayedSelectInlineLink.emit(e.detail)\n }\n onCancelPendingSelectInlineLink={(e) =>\n this.cancelPendingSelectInlineLink.emit(e.detail)\n }\n ></atomic-smart-snippet-answer>\n </div>\n );\n }\n\n public renderButton() {\n if (!this.showButton) {\n return;\n }\n return (\n <button\n onClick={() =>\n this.isExpanded ? this.collapse.emit() : this.expand.emit()\n }\n class=\"text-primary mb-4 hover:underline\"\n part={this.isExpanded ? 'show-less-button' : 'show-more-button'}\n >\n {this.bindings.i18n.t(this.isExpanded ? 'show-less' : 'show-more')}\n <atomic-icon\n icon={ArrowDown}\n class=\"ml-2 w-3 align-baseline\"\n ></atomic-icon>\n </button>\n );\n }\n\n public render() {\n return (\n <div class={this.isExpanded ? 'expanded' : ''}>\n {this.renderAnswer()}\n {this.renderButton()}\n </div>\n );\n }\n}\n"],"version":3}
|
|
@@ -47,7 +47,7 @@ const AtomicSortExpression$1 = /*@__PURE__*/ proxyCustomElement(class AtomicSort
|
|
|
47
47
|
const dropdownComponent = 'atomic-sort-dropdown';
|
|
48
48
|
if (!this.host.closest(dropdownComponent)) {
|
|
49
49
|
const error = new Error(`The "${this.host.nodeName.toLowerCase()}" component has to be used inside an ${dropdownComponent} element.`);
|
|
50
|
-
return (h("atomic-component-error", { key: '
|
|
50
|
+
return (h("atomic-component-error", { key: '448c1638e4cd2601aaaf0c133fcf1f7810dd7b30', element: this.host, error: error }));
|
|
51
51
|
}
|
|
52
52
|
}
|
|
53
53
|
get host() { return this; }
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"file":"atomic-sort-expression.js","mappings":";;;;;;;;;;;;;MAUaA,sBAAoB;;;;;;;;;;;;;
|
|
1
|
+
{"file":"atomic-sort-expression.js","mappings":";;;;;;;;;;;;;MAUaA,sBAAoB;;;;;;;;;;;;;QAgCxB,iBAAY,GAAsB,IAAI,CAAC;;;;;;;;;;QAavC,iBAAY,GAAsB,IAAI,CAAC;;;4BAbL,IAAI;4BAaJ,IAAI;;IAEtC,MAAM;QACX,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE;YAChE,OAAO,CAAC,IAAI,CACV,qHAAqH,CACtH,CAAC;SACH;QAED,MAAM,iBAAiB,GAAG,sBAAsB,CAAC;QAEjD,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,EAAE;YACzC,MAAM,KAAK,GAAG,IAAI,KAAK,CACrB,QAAQ,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,wCAAwC,iBAAiB,WAAW,CAC7G,CAAC;YACF,QACE,+EACE,OAAO,EAAE,IAAI,CAAC,IAAI,EAClB,KAAK,EAAE,KAAK,GACY,EAC1B;SACH;KACF;;;;;;;;AAnCM;IAFN,SAAS,EAAE;4DAEkC;AAavC;IAFN,SAAS,EAAE;4DAEkC;;;;;;;;;;;;;;;;;;;;","names":["AtomicSortExpression"],"sources":["src/components/search/atomic-sort-expression/atomic-sort-expression.tsx"],"sourcesContent":["import {Component, Prop, Element, h} from '@stencil/core';\nimport {ArrayProp} from '../../../utils/props-utils';\n\n/**\n * The `atomic-sort-expression` component defines a sort expression. This component must be inside an `atomic-sort-dropdown` component.\n */\n@Component({\n tag: 'atomic-sort-expression',\n shadow: false,\n})\nexport class AtomicSortExpression {\n @Element() public host!: HTMLElement;\n\n /**\n * The non-localized label to display for this expression.\n */\n @Prop({reflect: true}) public label!: string;\n\n /**\n * One or more sort criteria that the end user can select or toggle between.\n *\n * The available sort criteria are:\n *\n * * `relevancy`\n * * `date ascending`/`date descending`\n * * `qre`\n * * `<FIELD> ascending`/`<FIELD> descending`, where you replace `<FIELD>` with the name of a sortable field in your index (e.g., `criteria=\"size ascending\"`).\n *\n * You can specify multiple sort criteria to be used in the same request by separating them with a comma (e.g., `criteria=\"size ascending, date ascending\"`).\n */\n @Prop({reflect: true}) public expression!: string;\n /**\n * The tabs on which the sort expression can be displayed. This property should not be used at the same time as `tabs-excluded`.\n *\n * Set this property as a stringified JSON array, e.g.,\n * ```html\n * <atomic-sort-expression tabs-included='[\"tabIDA\", \"tabIDB\"]'></atomic-sort-expression snippet>\n * ```\n * If you don't set this property, the sort expression can be displayed on any tab. Otherwise, the sort expression can only be displayed on the specified tabs.\n */\n @ArrayProp()\n @Prop({reflect: true, mutable: true})\n public tabsIncluded: string[] | string = '[]';\n\n /**\n * The tabs on which the sort expression must not be displayed. This property should not be used at the same time as `tabs-included`.\n *\n * Set this property as a stringified JSON array, e.g.,\n * ```html\n * <atomic-sort-expression tabs-excluded='[\"tabIDA\", \"tabIDB\"]'></atomic-sort-expression>\n * ```\n * If you don't set this property, the sort expression can be displayed on any tab. Otherwise, the sort expression won't be displayed on any of the specified tabs.\n */\n @ArrayProp()\n @Prop({reflect: true, mutable: true})\n public tabsExcluded: string[] | string = '[]';\n\n public render() {\n if (this.tabsIncluded.length > 0 && this.tabsExcluded.length > 0) {\n console.warn(\n 'Values for both \"tabs-included\" and \"tabs-excluded\" have been provided. This is could lead to unexpected behaviors.'\n );\n }\n\n const dropdownComponent = 'atomic-sort-dropdown';\n\n if (!this.host.closest(dropdownComponent)) {\n const error = new Error(\n `The \"${this.host.nodeName.toLowerCase()}\" component has to be used inside an ${dropdownComponent} element.`\n );\n return (\n <atomic-component-error\n element={this.host}\n error={error}\n ></atomic-component-error>\n );\n }\n }\n}\n"],"version":3}
|
|
@@ -4,7 +4,7 @@ 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 {
|
|
7
|
+
import { html, LitElement, nothing } from 'lit';
|
|
8
8
|
import { customElement, property, state } from 'lit/decorators.js';
|
|
9
9
|
import { map } from 'lit/directives/map.js';
|
|
10
10
|
import { when } from 'lit/directives/when.js';
|
|
@@ -33,8 +33,7 @@ import { renderCategoryFacetSearchResultsContainer } from '../../common/facets/c
|
|
|
33
33
|
import { renderCategoryFacetSearchValue } from '../../common/facets/category-facet/search-value';
|
|
34
34
|
import { renderCategoryFacetTreeValueContainer } from '../../common/facets/category-facet/value-as-tree-container';
|
|
35
35
|
import { renderCategoryFacetValueLink } from '../../common/facets/category-facet/value-link';
|
|
36
|
-
import
|
|
37
|
-
import facetSearchStyles from '../../common/facets/facet-search/facet-search.tw.css';
|
|
36
|
+
import styles from './atomic-commerce-category-facet.tw.css';
|
|
38
37
|
/**
|
|
39
38
|
* A facet is a list of values for a certain field occurring in the results, ordered using a configurable criteria (e.g., number of occurrences).
|
|
40
39
|
* An `atomic-commerce-category-facet` displays a facet of values in a browsable, hierarchical fashion.
|
|
@@ -366,12 +365,7 @@ let AtomicCommerceCategoryFacet = class AtomicCommerceCategoryFacet extends LitE
|
|
|
366
365
|
}
|
|
367
366
|
}
|
|
368
367
|
};
|
|
369
|
-
AtomicCommerceCategoryFacet.styles =
|
|
370
|
-
facetCommonStyles,
|
|
371
|
-
facetSearchStyles,
|
|
372
|
-
css`/*! tailwindcss v4.1.11 | MIT License | https://tailwindcss.com */
|
|
373
|
-
[part~=active-parent],[part~=parents] [part~=values]{padding-left:calc(var(--spacing,.25rem)*9)}[part~=all-categories-button],[part~=parent-button]{width:100%;padding-block:calc(var(--spacing,.25rem)*2.5);padding-right:calc(var(--spacing,.25rem)*2);padding-left:calc(var(--spacing,.25rem)*7);text-align:left;align-items:center;display:flex;position:relative}[part~=back-arrow]{left:calc(var(--spacing,.25rem)*1);height:calc(var(--spacing,.25rem)*5);width:calc(var(--spacing,.25rem)*5);position:absolute}`,
|
|
374
|
-
];
|
|
368
|
+
AtomicCommerceCategoryFacet.styles = styles;
|
|
375
369
|
__decorate([
|
|
376
370
|
state()
|
|
377
371
|
], AtomicCommerceCategoryFacet.prototype, "bindings", void 0);
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { css } from 'lit';
|
|
2
|
+
const styles = css`/*! tailwindcss v4.1.11 | MIT License | https://tailwindcss.com */
|
|
3
|
+
@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000}}}input[type=text]:focus-visible~.search-icon{color:var(--atomic-primary)}input[type=text]:hover~.search-icon{color:var(--atomic-primary-light)}.search-icon atomic-icon{width:var(--atomic-facet-search-icon-size,.75rem);height:var(--atomic-facet-search-icon-size,.75rem)}.search-clear-button atomic-icon{width:var(--atomic-facet-search-clear-icon-size,.625rem);height:var(--atomic-facet-search-clear-icon-size,.625rem)}.value-count{margin-left:calc(var(--spacing,.25rem)*1.5);color:var(--atomic-neutral-dark);[part=value-exclude-button]+&{margin-right:calc(var(--spacing,.25rem)*2)}}:host(.popover-nested){min-width:var(--container-2xs,18rem);&::part(label-button){display:none}&::part(facet){--tw-shadow:0px 2px 8px var(--tw-shadow-color,#e5e8e8bf);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}&::part(values){margin-top:calc(var(--spacing,.25rem)*0);max-height:calc(var(--spacing,.25rem)*96);overflow-y:auto}&::part(search-wrapper){margin-bottom:calc(var(--spacing,.25rem)*2)}}[part~=active-parent],[part~=parents] [part~=values]{padding-left:calc(var(--spacing,.25rem)*9)}[part~=all-categories-button],[part~=parent-button]{width:100%;padding-block:calc(var(--spacing,.25rem)*2.5);padding-right:calc(var(--spacing,.25rem)*2);padding-left:calc(var(--spacing,.25rem)*7);text-align:left;align-items:center;display:flex;position:relative}[part~=back-arrow]{left:calc(var(--spacing,.25rem)*1);height:calc(var(--spacing,.25rem)*5);width:calc(var(--spacing,.25rem)*5);position:absolute}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}`;
|
|
4
|
+
export default styles;
|
package/dist/atomic/components/components/commerce/atomic-commerce-facet/atomic-commerce-facet.js
CHANGED
|
@@ -4,7 +4,7 @@ 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 { html, LitElement, nothing } from 'lit';
|
|
7
|
+
import { css, html, LitElement, nothing } from 'lit';
|
|
8
8
|
import { customElement, property, state } from 'lit/decorators.js';
|
|
9
9
|
import { when } from 'lit/directives/when.js';
|
|
10
10
|
import { renderFacetContainer } from "../../common/facets/facet-container/facet-container";
|
|
@@ -22,13 +22,8 @@ import { bindings } from "../../../decorators/bindings";
|
|
|
22
22
|
import { errorGuard } from "../../../decorators/error-guard";
|
|
23
23
|
import { withTailwindStyles } from "../../../decorators/with-tailwind-styles";
|
|
24
24
|
import { AriaLiveRegionController, FocusTargetController, } from "../../../utils/accessibility-utils";
|
|
25
|
-
import facetCommonStyles from '../../common/facets/facet-common.tw.css';
|
|
26
|
-
import facetSearchStyles from '../../common/facets/facet-search/facet-search.tw.css';
|
|
27
25
|
import { announceFacetSearchResultsWithAriaLive } from '../../common/facets/facet-search/facet-search-aria-live';
|
|
28
26
|
import { shouldDisplaySearchResults, shouldUpdateFacetSearchComponent, } from '../../common/facets/facet-search/facet-search-utils';
|
|
29
|
-
import facetValueBoxStyles from '../../common/facets/facet-value-box/facet-value-box.tw.css';
|
|
30
|
-
import facetValueCheckboxStyles from '../../common/facets/facet-value-checkbox/facet-value-checkbox.tw.css';
|
|
31
|
-
import facetValueExcludeStyles from '../../common/facets/facet-value-exclude/facet-value-exclude.tw.css';
|
|
32
27
|
/**
|
|
33
28
|
* The `atomic-commerce-facet` component renders a commerce facet that the end user can interact with to filter products.
|
|
34
29
|
*
|
|
@@ -284,13 +279,8 @@ let AtomicCommerceFacet = class AtomicCommerceFacet extends LitElement {
|
|
|
284
279
|
}
|
|
285
280
|
}
|
|
286
281
|
};
|
|
287
|
-
AtomicCommerceFacet.styles =
|
|
288
|
-
|
|
289
|
-
facetSearchStyles,
|
|
290
|
-
facetCommonStyles,
|
|
291
|
-
facetValueExcludeStyles,
|
|
292
|
-
facetValueBoxStyles,
|
|
293
|
-
];
|
|
282
|
+
AtomicCommerceFacet.styles = css`/*! tailwindcss v4.1.11 | MIT License | https://tailwindcss.com */
|
|
283
|
+
@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000}}}.value-checkbox{width:var(--atomic-facet-checkbox-size,1rem);height:var(--atomic-facet-checkbox-size,1rem);left:calc(var(--spacing,.25rem)*2);z-index:1;position:absolute}.value-checkbox+label{cursor:pointer;text-overflow:ellipsis;white-space:nowrap;width:100%;padding-block:calc(var(--spacing,.25rem)*2.5);padding-right:calc(var(--spacing,.25rem)*2);padding-left:calc(var(--spacing,.25rem)*8);color:var(--atomic-on-background);flex-direction:row;display:flex;overflow:hidden;&:hover{@media (hover:hover){&{background-color:var(--atomic-neutral-light)}}}}.value-checkbox.selected:focus-visible+label .value-label,.value-checkbox.selected:hover+label .value-label{color:var(--atomic-primary)}.value-checkbox.excluded:focus-visible+label .value-label,.value-checkbox.excluded:hover+label .value-label{color:var(--atomic-error)}input[type=text]:focus-visible~.search-icon{color:var(--atomic-primary)}input[type=text]:hover~.search-icon{color:var(--atomic-primary-light)}.search-icon atomic-icon{width:var(--atomic-facet-search-icon-size,.75rem);height:var(--atomic-facet-search-icon-size,.75rem)}.search-clear-button atomic-icon{width:var(--atomic-facet-search-clear-icon-size,.625rem);height:var(--atomic-facet-search-clear-icon-size,.625rem)}.value-count{margin-left:calc(var(--spacing,.25rem)*1.5);color:var(--atomic-neutral-dark);[part=value-exclude-button]+&{margin-right:calc(var(--spacing,.25rem)*2)}}:host(.popover-nested){min-width:var(--container-2xs,18rem);&::part(label-button){display:none}&::part(facet){--tw-shadow:0px 2px 8px var(--tw-shadow-color,#e5e8e8bf);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}&::part(values){margin-top:calc(var(--spacing,.25rem)*0);max-height:calc(var(--spacing,.25rem)*96);overflow-y:auto}&::part(search-wrapper){margin-bottom:calc(var(--spacing,.25rem)*2)}}.value-exclude-button:focus-visible atomic-icon{visibility:visible}.box-container{padding-inline:calc(var(--spacing,.25rem)*2);grid-template-columns:repeat(var(--atomic-facet-boxes-per-row,4),minmax(0,1fr));gap:var(--atomic-facet-boxes-gap,.5rem);display:grid}.value-box .value-label,.value-box-count{width:100%;display:block}.value-box.selected{box-shadow:0 0 0 1px var(--atomic-primary)}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}`;
|
|
294
284
|
__decorate([
|
|
295
285
|
property({ type: Object })
|
|
296
286
|
], AtomicCommerceFacet.prototype, "summary", void 0);
|
|
@@ -5,7 +5,7 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
5
5
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
6
|
};
|
|
7
7
|
import { isUndefined } from '@coveo/bueno';
|
|
8
|
-
import {
|
|
8
|
+
import { html, LitElement } from 'lit';
|
|
9
9
|
import { customElement, property, state } from 'lit/decorators.js';
|
|
10
10
|
import { ref } from 'lit/directives/ref.js';
|
|
11
11
|
import { bindingGuard } from "../../../decorators/binding-guard";
|
|
@@ -13,6 +13,7 @@ import { bindings } from "../../../decorators/bindings";
|
|
|
13
13
|
import { errorGuard } from "../../../decorators/error-guard";
|
|
14
14
|
import { injectStylesForNoShadowDOM } from "../../../decorators/inject-styles-for-no-shadow-dom";
|
|
15
15
|
import { withTailwindStyles } from "../../../decorators/with-tailwind-styles";
|
|
16
|
+
import styles from './atomic-commerce-facet-number-input.tw.css';
|
|
16
17
|
/**
|
|
17
18
|
* Internal component made to be integrated in a NumericFacet.
|
|
18
19
|
* @internal
|
|
@@ -130,7 +131,7 @@ let AtomicCommerceFacetNumberInput = class AtomicCommerceFacetNumberInput extend
|
|
|
130
131
|
`;
|
|
131
132
|
}
|
|
132
133
|
};
|
|
133
|
-
AtomicCommerceFacetNumberInput.styles =
|
|
134
|
+
AtomicCommerceFacetNumberInput.styles = styles;
|
|
134
135
|
__decorate([
|
|
135
136
|
state()
|
|
136
137
|
], AtomicCommerceFacetNumberInput.prototype, "bindings", void 0);
|