@coveo/atomic 3.33.0 → 3.33.1-pre.3b2f3850a0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/atomic/_atomic.esm.js +1 -1
- package/dist/atomic/atomic.esm.js.map +1 -1
- package/dist/atomic/components/analytics-config.js +1 -1
- package/dist/atomic/components/analytics-config.js.map +1 -1
- package/dist/atomic/components/atomic-citation.js +1 -547
- package/dist/atomic/components/atomic-citation.js.map +1 -1
- package/dist/{esm/atomic-citation.entry.js → atomic/components/atomic-citation2.js} +35 -13
- package/dist/atomic/components/atomic-citation2.js.map +1 -0
- package/dist/atomic/components/atomic-generated-answer-feedback-modal.js +1 -440
- package/dist/atomic/components/atomic-generated-answer-feedback-modal.js.map +1 -1
- package/dist/{esm/atomic-generated-answer-feedback-modal.entry.js → atomic/components/atomic-generated-answer-feedback-modal2.js} +55 -25
- package/dist/atomic/components/atomic-generated-answer-feedback-modal2.js.map +1 -0
- package/dist/atomic/components/atomic-generated-answer.js +88 -28
- package/dist/atomic/components/atomic-generated-answer.js.map +1 -1
- package/dist/atomic/components/atomic-insight-generated-answer.js +95 -34
- package/dist/atomic/components/atomic-insight-generated-answer.js.map +1 -1
- package/dist/atomic/components/atomic-ipx-result-link.js +1 -1
- package/dist/atomic/components/atomic-popover.js +1 -1
- package/dist/atomic/components/atomic-result-link.js +1 -1
- package/dist/atomic/components/attributes-slot.js +1 -1
- package/dist/atomic/components/createPopper.js +1 -1
- package/dist/atomic/components/generated-answer-common.js +146 -238
- package/dist/atomic/components/generated-answer-common.js.map +1 -1
- package/dist/atomic/components/global/environment.js +1 -1
- package/dist/atomic/components/popper-lite.js +1 -1
- package/dist/atomic/components/slot-utils.js +1 -1
- package/dist/atomic/components/tab-popover.js +1 -1
- package/dist/atomic/p-01531448.entry.js +2 -0
- package/dist/atomic/p-01531448.entry.js.map +1 -0
- package/dist/atomic/p-027b85e5.js +2 -0
- package/dist/atomic/{p-bed5a86b.js.map → p-027b85e5.js.map} +1 -1
- package/dist/atomic/{p-7b9026d7.js → p-07f25674.js} +2 -2
- package/dist/atomic/{p-75b863ea.entry.js → p-0ff341d5.entry.js} +2 -2
- package/dist/atomic/{p-eb026d69.entry.js → p-129799b2.entry.js} +2 -2
- package/dist/atomic/p-284f3c50.js +2 -0
- package/dist/atomic/p-284f3c50.js.map +1 -0
- package/dist/atomic/p-33201620.entry.js +2 -0
- package/dist/atomic/p-33201620.entry.js.map +1 -0
- package/dist/atomic/{p-8b6aaeed.entry.js → p-333be187.entry.js} +2 -2
- package/dist/atomic/{p-ba67a16b.js → p-3b58a34d.js} +2 -2
- package/dist/atomic/{p-ba67a16b.js.map → p-3b58a34d.js.map} +1 -1
- package/dist/atomic/{p-946fe85f.js → p-4aaffb59.js} +2 -2
- package/dist/atomic/{p-48c8a766.entry.js → p-5730dec7.entry.js} +2 -2
- package/dist/atomic/p-5d785d02.entry.js +2 -0
- package/dist/atomic/p-5d785d02.entry.js.map +1 -0
- package/dist/atomic/{p-9da1c516.entry.js → p-6481379f.entry.js} +2 -2
- package/dist/atomic/{p-bfdecd0f.entry.js → p-6f5d26cb.entry.js} +2 -2
- package/dist/atomic/{p-ca0a32dc.entry.js → p-dd93ae9a.entry.js} +2 -2
- package/dist/cjs/_loader.cjs.js +1 -1
- package/dist/cjs/{analytics-config-f34a68ee.js → analytics-config-de09a791.js} +2 -2
- package/dist/cjs/analytics-config-de09a791.js.map +1 -0
- package/dist/cjs/{atomic-generated-answer-feedback-modal.cjs.entry.js → atomic-citation_2.cjs.entry.js} +526 -1
- package/dist/cjs/atomic-citation_2.cjs.entry.js.map +1 -0
- package/dist/cjs/atomic-generated-answer.cjs.entry.js +62 -27
- package/dist/cjs/atomic-generated-answer.cjs.entry.js.map +1 -1
- package/dist/cjs/atomic-insight-generated-answer.cjs.entry.js +68 -32
- package/dist/cjs/atomic-insight-generated-answer.cjs.entry.js.map +1 -1
- package/dist/cjs/atomic-insight-interface.cjs.entry.js +1 -1
- package/dist/cjs/atomic-recs-interface.cjs.entry.js +1 -1
- package/dist/cjs/atomic-search-interface.cjs.entry.js +1 -1
- package/dist/cjs/atomic.cjs.js +1 -1
- package/dist/cjs/{generated-answer-common-4cd4b7c6.js → generated-answer-common-469ad0e8.js} +152 -237
- package/dist/cjs/generated-answer-common-469ad0e8.js.map +1 -0
- package/dist/cjs/index-757bc886.js +4 -8
- package/dist/cjs/version.cjs.js +2 -2
- package/dist/esm/_loader.js +1 -1
- package/dist/esm/{analytics-config-672b6eba.js → analytics-config-19fa5599.js} +2 -2
- package/dist/esm/analytics-config-19fa5599.js.map +1 -0
- package/dist/esm/atomic-citation_2.entry.js +938 -0
- package/dist/esm/atomic-citation_2.entry.js.map +1 -0
- package/dist/esm/atomic-generated-answer.entry.js +64 -29
- package/dist/esm/atomic-generated-answer.entry.js.map +1 -1
- package/dist/esm/atomic-insight-generated-answer.entry.js +71 -35
- package/dist/esm/atomic-insight-generated-answer.entry.js.map +1 -1
- package/dist/esm/atomic-insight-interface.entry.js +1 -1
- package/dist/esm/atomic-popover.entry.js +2 -2
- package/dist/esm/atomic-recs-interface.entry.js +1 -1
- package/dist/esm/atomic-search-box-query-suggestions_2.entry.js +1 -1
- package/dist/esm/atomic-search-box.entry.js +1 -1
- package/dist/esm/atomic-search-interface.entry.js +2 -2
- package/dist/esm/atomic-tab-bar_2.entry.js +2 -2
- package/dist/esm/atomic.js +1 -1
- package/dist/esm/{createPopper-a633eb88.js → createPopper-ed15cfea.js} +2 -2
- package/dist/esm/{createPopper-a633eb88.js.map → createPopper-ed15cfea.js.map} +1 -1
- package/dist/esm/{generated-answer-common-06146290.js → generated-answer-common-184a3c08.js} +147 -239
- package/dist/esm/generated-answer-common-184a3c08.js.map +1 -0
- package/dist/esm/index-3f35faca.js +4 -8
- package/dist/esm/{local-storage-utils-410269e6.js → local-storage-utils-a4bf8fba.js} +2 -2
- package/dist/esm/{local-storage-utils-410269e6.js.map → local-storage-utils-a4bf8fba.js.map} +1 -1
- package/dist/esm/{popper-lite-2035100c.js → popper-lite-4b6382b2.js} +2 -2
- package/dist/esm/{popper-lite-2035100c.js.map → popper-lite-4b6382b2.js.map} +1 -1
- package/dist/esm/version.js +2 -2
- package/dist/types/components/common/generated-answer/generated-answer-common.d.ts +30 -50
- package/dist/types/components/insight/atomic-insight-generated-answer/atomic-insight-generated-answer.d.ts +11 -3
- package/dist/types/components/search/atomic-generated-answer/atomic-generated-answer.d.ts +9 -1
- package/docs/atomic-docs.json +17 -3
- package/package.json +3 -3
- package/dist/atomic/p-0c076058.entry.js +0 -2
- package/dist/atomic/p-0c076058.entry.js.map +0 -1
- package/dist/atomic/p-421850f9.entry.js +0 -2
- package/dist/atomic/p-421850f9.entry.js.map +0 -1
- package/dist/atomic/p-579c5b46.entry.js +0 -2
- package/dist/atomic/p-579c5b46.entry.js.map +0 -1
- package/dist/atomic/p-5fca1435.js +0 -2
- package/dist/atomic/p-5fca1435.js.map +0 -1
- package/dist/atomic/p-bed5a86b.js +0 -2
- package/dist/atomic/p-e27e1e46.entry.js +0 -2
- package/dist/atomic/p-e27e1e46.entry.js.map +0 -1
- package/dist/cjs/analytics-config-f34a68ee.js.map +0 -1
- package/dist/cjs/atomic-citation.cjs.entry.js +0 -533
- package/dist/cjs/atomic-citation.cjs.entry.js.map +0 -1
- package/dist/cjs/atomic-generated-answer-feedback-modal.cjs.entry.js.map +0 -1
- package/dist/cjs/generated-answer-common-4cd4b7c6.js.map +0 -1
- package/dist/esm/analytics-config-672b6eba.js.map +0 -1
- package/dist/esm/atomic-citation.entry.js.map +0 -1
- package/dist/esm/atomic-generated-answer-feedback-modal.entry.js.map +0 -1
- package/dist/esm/generated-answer-common-06146290.js.map +0 -1
- /package/dist/atomic/{p-7b9026d7.js.map → p-07f25674.js.map} +0 -0
- /package/dist/atomic/{p-75b863ea.entry.js.map → p-0ff341d5.entry.js.map} +0 -0
- /package/dist/atomic/{p-eb026d69.entry.js.map → p-129799b2.entry.js.map} +0 -0
- /package/dist/atomic/{p-8b6aaeed.entry.js.map → p-333be187.entry.js.map} +0 -0
- /package/dist/atomic/{p-946fe85f.js.map → p-4aaffb59.js.map} +0 -0
- /package/dist/atomic/{p-48c8a766.entry.js.map → p-5730dec7.entry.js.map} +0 -0
- /package/dist/atomic/{p-9da1c516.entry.js.map → p-6481379f.entry.js.map} +0 -0
- /package/dist/atomic/{p-bfdecd0f.entry.js.map → p-6f5d26cb.entry.js.map} +0 -0
- /package/dist/atomic/{p-ca0a32dc.entry.js.map → p-dd93ae9a.entry.js.map} +0 -0
package/dist/cjs/{generated-answer-common-4cd4b7c6.js → generated-answer-common-469ad0e8.js}
RENAMED
|
@@ -2,7 +2,6 @@
|
|
|
2
2
|
|
|
3
3
|
const index = require('./index-757bc886.js');
|
|
4
4
|
const localStorageUtils = require('./local-storage-utils-380ce22b.js');
|
|
5
|
-
const slotUtils = require('./slot-utils-a30cb814.js');
|
|
6
5
|
const stencilHeading = require('./stencil-heading-2faee1f7.js');
|
|
7
6
|
const stencilButton = require('./stencil-button-f6c2410c.js');
|
|
8
7
|
const purify = require('./purify-85b542e2.js');
|
|
@@ -2672,258 +2671,174 @@ const SourceCitations = (props, children) => props.isVisible ? (index.h("div", {
|
|
|
2672
2671
|
index.h("p", { part: "citations-label", class: "text-neutral-dark mb-2 shrink-0" }, props.label),
|
|
2673
2672
|
index.h("ol", { class: "citations-container flex list-none flex-wrap items-center gap-2" }, children))) : null;
|
|
2674
2673
|
|
|
2675
|
-
|
|
2676
|
-
|
|
2677
|
-
|
|
2678
|
-
|
|
2679
|
-
|
|
2680
|
-
|
|
2681
|
-
|
|
2682
|
-
|
|
2683
|
-
|
|
2684
|
-
|
|
2685
|
-
|
|
2686
|
-
|
|
2687
|
-
|
|
2688
|
-
|
|
2689
|
-
// This check ensures that the answer is visible when the toggle is hidden and visible is set to false in the local storage.
|
|
2690
|
-
return { isVisible: (withToggle && storedData.isVisible) || !withToggle };
|
|
2691
|
-
}
|
|
2692
|
-
writeStoredData(data) {
|
|
2693
|
-
this.storage.setJSON(localStorageUtils.StorageItems.GENERATED_ANSWER_DATA, data);
|
|
2694
|
-
}
|
|
2695
|
-
get data() {
|
|
2696
|
-
return this._data;
|
|
2697
|
-
}
|
|
2698
|
-
set data(newData) {
|
|
2699
|
-
this._data = newData;
|
|
2674
|
+
const readGeneratedAnswerStoredData = (withToggle) => {
|
|
2675
|
+
const storage = new localStorageUtils.SafeStorage();
|
|
2676
|
+
const storedData = storage.getParsedJSON(localStorageUtils.StorageItems.GENERATED_ANSWER_DATA, { isVisible: true });
|
|
2677
|
+
// This check ensures that the answer is visible when the toggle is hidden and visible is set to false in the local storage.
|
|
2678
|
+
return { isVisible: (withToggle && storedData.isVisible) || !withToggle };
|
|
2679
|
+
};
|
|
2680
|
+
const writeGeneratedAnswerStoredData = (data) => {
|
|
2681
|
+
const storage = new localStorageUtils.SafeStorage();
|
|
2682
|
+
storage.setJSON(localStorageUtils.StorageItems.GENERATED_ANSWER_DATA, data);
|
|
2683
|
+
};
|
|
2684
|
+
const insertGeneratedAnswerFeedbackModal = (host, generatedAnswer) => {
|
|
2685
|
+
const modalRef = document.createElement('atomic-generated-answer-feedback-modal');
|
|
2686
|
+
if (generatedAnswer) {
|
|
2687
|
+
modalRef.generatedAnswer = generatedAnswer();
|
|
2700
2688
|
}
|
|
2701
|
-
|
|
2702
|
-
|
|
2703
|
-
|
|
2704
|
-
|
|
2705
|
-
|
|
2706
|
-
if (isHidden) {
|
|
2707
|
-
return this.props.getBindings().i18n.t('generated-answer-hidden');
|
|
2708
|
-
}
|
|
2709
|
-
if (isGenerating) {
|
|
2710
|
-
return this.props.getBindings().i18n.t('generating-answer');
|
|
2711
|
-
}
|
|
2712
|
-
if (hasError) {
|
|
2713
|
-
return this.props.getBindings().i18n.t('answer-could-not-be-generated');
|
|
2714
|
-
}
|
|
2715
|
-
if (hasAnswer) {
|
|
2716
|
-
return this.props.getBindings().i18n.t('answer-generated', {
|
|
2717
|
-
answer: this.props.getGeneratedAnswerState()?.answer,
|
|
2718
|
-
});
|
|
2719
|
-
}
|
|
2689
|
+
host.insertAdjacentElement('beforebegin', modalRef);
|
|
2690
|
+
return modalRef;
|
|
2691
|
+
};
|
|
2692
|
+
const getGeneratedAnswerStatus = (generatedAnswerState, i18n) => {
|
|
2693
|
+
if (!generatedAnswerState || !i18n) {
|
|
2720
2694
|
return '';
|
|
2721
2695
|
}
|
|
2722
|
-
|
|
2723
|
-
|
|
2724
|
-
|
|
2696
|
+
const isHidden = !generatedAnswerState.isVisible;
|
|
2697
|
+
const isGenerating = !!generatedAnswerState.isStreaming;
|
|
2698
|
+
const hasAnswer = !!generatedAnswerState.answer;
|
|
2699
|
+
const hasError = !!generatedAnswerState.error;
|
|
2700
|
+
if (isHidden) {
|
|
2701
|
+
return i18n.t('generated-answer-hidden');
|
|
2725
2702
|
}
|
|
2726
|
-
|
|
2727
|
-
|
|
2728
|
-
return (answer === undefined && !citations?.length && !this.hasRetryableError);
|
|
2703
|
+
if (isGenerating) {
|
|
2704
|
+
return i18n.t('generating-answer');
|
|
2729
2705
|
}
|
|
2730
|
-
|
|
2731
|
-
return
|
|
2706
|
+
if (hasError) {
|
|
2707
|
+
return i18n.t('answer-could-not-be-generated');
|
|
2732
2708
|
}
|
|
2733
|
-
|
|
2734
|
-
|
|
2735
|
-
|
|
2736
|
-
|
|
2737
|
-
return this.props.getBindings().i18n.t(key);
|
|
2738
|
-
}
|
|
2739
|
-
get hasClipboard() {
|
|
2740
|
-
return !!navigator?.clipboard?.writeText;
|
|
2709
|
+
if (hasAnswer) {
|
|
2710
|
+
return i18n.t('answer-generated', {
|
|
2711
|
+
answer: generatedAnswerState.answer,
|
|
2712
|
+
});
|
|
2741
2713
|
}
|
|
2742
|
-
|
|
2743
|
-
|
|
2744
|
-
|
|
2745
|
-
|
|
2746
|
-
|
|
2747
|
-
|
|
2748
|
-
|
|
2714
|
+
return '';
|
|
2715
|
+
};
|
|
2716
|
+
const copyToClipboard = async (answer, setCopied, setCopyError, onLogCopyToClipboard, logger) => {
|
|
2717
|
+
try {
|
|
2718
|
+
await navigator.clipboard.writeText(answer);
|
|
2719
|
+
setCopied(true);
|
|
2720
|
+
onLogCopyToClipboard?.();
|
|
2749
2721
|
}
|
|
2750
|
-
|
|
2751
|
-
|
|
2752
|
-
|
|
2722
|
+
catch (error) {
|
|
2723
|
+
setCopyError(true);
|
|
2724
|
+
logger?.error(`Failed to copy to clipboard: ${error}`);
|
|
2753
2725
|
}
|
|
2754
|
-
|
|
2755
|
-
|
|
2756
|
-
|
|
2757
|
-
|
|
2758
|
-
|
|
2759
|
-
|
|
2760
|
-
|
|
2761
|
-
|
|
2762
|
-
|
|
2763
|
-
|
|
2764
|
-
|
|
2765
|
-
|
|
2766
|
-
|
|
2767
|
-
|
|
2768
|
-
|
|
2769
|
-
|
|
2726
|
+
setTimeout(() => {
|
|
2727
|
+
setCopied(false);
|
|
2728
|
+
setCopyError(false);
|
|
2729
|
+
}, 2000);
|
|
2730
|
+
};
|
|
2731
|
+
const GeneratedAnswerWrapper = ({ contentClasses }, children) => {
|
|
2732
|
+
const classes = contentClasses ||
|
|
2733
|
+
'mx-auto mt-0 mb-4 border border-neutral shadow-lg p-6 bg-background rounded-lg p-6 text-on-background';
|
|
2734
|
+
return (index.h("div", null,
|
|
2735
|
+
index.h("aside", { class: classes, part: "container" },
|
|
2736
|
+
index.h("article", null, children))));
|
|
2737
|
+
};
|
|
2738
|
+
const GeneratedAnswerHeader = ({ i18n, isAnswerVisible, withToggle, onToggle }) => {
|
|
2739
|
+
const toggleTooltip = isAnswerVisible
|
|
2740
|
+
? i18n.t('generated-answer-toggle-on')
|
|
2741
|
+
: i18n.t('generated-answer-toggle-off');
|
|
2742
|
+
return (index.h("div", { class: "flex items-center" },
|
|
2743
|
+
index.h(stencilHeading.Heading, { level: 0, part: "header-label", class: "text-primary bg-primary-background inline-block rounded-md px-2.5 py-2 font-medium" }, i18n.t('generated-answer-title')),
|
|
2744
|
+
index.h("div", { class: "ml-auto flex h-9 items-center" },
|
|
2745
|
+
index.h(Switch, { part: "toggle", checked: isAnswerVisible, onToggle: onToggle, ariaLabel: i18n.t('generated-answer-title'), title: toggleTooltip, withToggle: withToggle }))));
|
|
2746
|
+
};
|
|
2747
|
+
const GeneratedAnswerFeedbackAndCopyButtons = ({ copied, copyError, disliked, hasClipboard, i18n, isStreaming, liked, withToggle, onClickDislike, onClickLike, onCopyToClipboard, }) => {
|
|
2748
|
+
const containerClasses = [
|
|
2749
|
+
'feedback-buttons',
|
|
2750
|
+
'flex',
|
|
2751
|
+
'h-9',
|
|
2752
|
+
'absolute',
|
|
2753
|
+
'top-6',
|
|
2754
|
+
'shrink-0',
|
|
2755
|
+
'gap-2',
|
|
2756
|
+
withToggle ? 'right-20' : 'right-6',
|
|
2757
|
+
].join(' ');
|
|
2758
|
+
if (isStreaming) {
|
|
2759
|
+
return null;
|
|
2770
2760
|
}
|
|
2771
|
-
|
|
2772
|
-
|
|
2773
|
-
|
|
2774
|
-
|
|
2775
|
-
|
|
2776
|
-
|
|
2777
|
-
}
|
|
2761
|
+
const copyToClipboardTooltip = copyError
|
|
2762
|
+
? i18n.t('failed-to-copy-generated-answer')
|
|
2763
|
+
: !copied
|
|
2764
|
+
? i18n.t('copy-generated-answer')
|
|
2765
|
+
: i18n.t('generated-answer-copied');
|
|
2766
|
+
return (index.h("div", { class: containerClasses },
|
|
2767
|
+
index.h(FeedbackButton, { title: i18n.t('this-answer-was-helpful'), variant: "like", active: !!liked, onClick: onClickLike }),
|
|
2768
|
+
index.h(FeedbackButton, { title: i18n.t('this-answer-was-not-helpful'), variant: "dislike", active: !!disliked, onClick: onClickDislike }),
|
|
2769
|
+
hasClipboard ? (index.h(CopyButton, { title: copyToClipboardTooltip, isCopied: copied, error: copyError, onClick: onCopyToClipboard })) : null));
|
|
2770
|
+
};
|
|
2771
|
+
const GeneratedAnswerCitations = ({ citations, disableCitationAnchoring, buildInteractiveCitation, onLogCitationHover, i18n, }) => {
|
|
2772
|
+
if (!citations?.length) {
|
|
2773
|
+
return [];
|
|
2778
2774
|
}
|
|
2779
|
-
getCitation(citation) {
|
|
2775
|
+
const getCitation = (citation) => {
|
|
2780
2776
|
const { title } = citation;
|
|
2781
|
-
const { i18n } = this.props.getBindings();
|
|
2782
2777
|
return title.trim() !== ''
|
|
2783
2778
|
? citation
|
|
2784
|
-
: { ...citation, title: i18n.t('no-title') };
|
|
2785
|
-
}
|
|
2786
|
-
|
|
2787
|
-
const
|
|
2788
|
-
|
|
2789
|
-
|
|
2790
|
-
|
|
2791
|
-
|
|
2792
|
-
|
|
2793
|
-
|
|
2794
|
-
|
|
2795
|
-
|
|
2796
|
-
|
|
2797
|
-
index.h("atomic-citation", { citation: this.getCitation(citation), index: index$1, sendHoverEndEvent: (citationHoverTimeMs) => {
|
|
2798
|
-
logCitationHover?.(citation.id, citationHoverTimeMs);
|
|
2799
|
-
}, interactiveCitation: interactiveCitation, disableCitationAnchoring: disableCitationAnchoring, exportparts: "citation,citation-popover" })));
|
|
2800
|
-
});
|
|
2801
|
-
}
|
|
2802
|
-
renderFeedbackAndCopyButtons() {
|
|
2803
|
-
const { getGeneratedAnswerState, getBindings, getCopied, getCopyError } = this.props;
|
|
2804
|
-
const { i18n } = getBindings();
|
|
2805
|
-
const { liked, disliked, answer, isStreaming } = getGeneratedAnswerState() ?? {};
|
|
2806
|
-
const containerClasses = [
|
|
2807
|
-
'feedback-buttons',
|
|
2808
|
-
'flex',
|
|
2809
|
-
'h-9',
|
|
2810
|
-
'absolute',
|
|
2811
|
-
'top-6',
|
|
2812
|
-
'shrink-0',
|
|
2813
|
-
'gap-2',
|
|
2814
|
-
this.props.withToggle ? 'right-20' : 'right-6',
|
|
2815
|
-
].join(' ');
|
|
2816
|
-
if (isStreaming) {
|
|
2817
|
-
return null;
|
|
2818
|
-
}
|
|
2819
|
-
return (index.h("div", { class: containerClasses },
|
|
2820
|
-
index.h(FeedbackButton, { title: i18n.t('this-answer-was-helpful'), variant: "like", active: !!liked, onClick: () => this.clickLike() }),
|
|
2821
|
-
index.h(FeedbackButton, { title: i18n.t('this-answer-was-not-helpful'), variant: "dislike", active: !!disliked, onClick: () => this.clickDislike() }),
|
|
2822
|
-
this.hasClipboard ? (index.h(CopyButton, { title: this.copyToClipboardTooltip, isCopied: getCopied(), error: getCopyError(), onClick: async () => {
|
|
2823
|
-
if (answer) {
|
|
2824
|
-
await this.copyToClipboard(answer);
|
|
2825
|
-
}
|
|
2826
|
-
} })) : null));
|
|
2827
|
-
}
|
|
2828
|
-
setIsAnswerHelpful(isAnswerHelpful) {
|
|
2829
|
-
if (this.modalRef) {
|
|
2830
|
-
this.modalRef.helpful = isAnswerHelpful;
|
|
2831
|
-
}
|
|
2832
|
-
}
|
|
2833
|
-
openFeedbackModal() {
|
|
2834
|
-
if (this.modalRef &&
|
|
2835
|
-
!this.props.getGeneratedAnswerState()?.feedbackSubmitted) {
|
|
2836
|
-
this.modalRef.isOpen = true;
|
|
2837
|
-
}
|
|
2838
|
-
}
|
|
2839
|
-
clickDislike() {
|
|
2840
|
-
this.setIsAnswerHelpful(false);
|
|
2841
|
-
this.props.getGeneratedAnswer()?.dislike();
|
|
2842
|
-
this.openFeedbackModal();
|
|
2843
|
-
}
|
|
2844
|
-
clickLike() {
|
|
2845
|
-
this.setIsAnswerHelpful(true);
|
|
2846
|
-
this.props.getGeneratedAnswer()?.like();
|
|
2847
|
-
this.openFeedbackModal();
|
|
2848
|
-
}
|
|
2849
|
-
renderDisclaimer() {
|
|
2850
|
-
const { getGeneratedAnswerState, getBindings } = this.props;
|
|
2851
|
-
const { i18n } = getBindings();
|
|
2852
|
-
const { isStreaming } = getGeneratedAnswerState() ?? {};
|
|
2853
|
-
if (isStreaming) {
|
|
2854
|
-
return null;
|
|
2855
|
-
}
|
|
2856
|
-
return (index.h("div", { class: "text-neutral-dark text-xs/[1rem]" },
|
|
2857
|
-
index.h("slot", { name: "disclaimer", slot: "disclaimer" }, i18n.t('generated-answer-disclaimer'))));
|
|
2858
|
-
}
|
|
2859
|
-
renderShowButton() {
|
|
2860
|
-
const { getGeneratedAnswerState, getBindings, collapsible } = this.props;
|
|
2861
|
-
const { i18n } = getBindings();
|
|
2862
|
-
const { expanded, isStreaming } = getGeneratedAnswerState() ?? {};
|
|
2863
|
-
const canRender = collapsible && !isStreaming;
|
|
2864
|
-
if (!canRender) {
|
|
2865
|
-
return null;
|
|
2866
|
-
}
|
|
2867
|
-
return (index.h(ShowButton, { i18n: i18n, onClick: () => this.clickOnShowButton(), isCollapsed: !expanded }));
|
|
2779
|
+
: { ...citation, title: i18n?.t ? i18n.t('no-title') : 'No title' };
|
|
2780
|
+
};
|
|
2781
|
+
return citations.map((citation, index$1) => {
|
|
2782
|
+
const interactiveCitation = buildInteractiveCitation?.(citation);
|
|
2783
|
+
return (index.h("li", { key: citation.id, class: "max-w-full" },
|
|
2784
|
+
index.h("atomic-citation", { citation: getCitation(citation), index: index$1, sendHoverEndEvent: (citationHoverTimeMs) => {
|
|
2785
|
+
onLogCitationHover?.(citation.id, citationHoverTimeMs);
|
|
2786
|
+
}, interactiveCitation: interactiveCitation, disableCitationAnchoring: disableCitationAnchoring, exportparts: "citation,citation-popover" })));
|
|
2787
|
+
});
|
|
2788
|
+
};
|
|
2789
|
+
const GeneratedAnswerDisclaimer = ({ isStreaming, i18n }, children) => {
|
|
2790
|
+
if (isStreaming) {
|
|
2791
|
+
return null;
|
|
2868
2792
|
}
|
|
2869
|
-
|
|
2870
|
-
|
|
2871
|
-
|
|
2872
|
-
|
|
2873
|
-
|
|
2874
|
-
|
|
2875
|
-
|
|
2876
|
-
}
|
|
2877
|
-
return (index.h("div", { part: "is-generating", class: "text-primary hidden text-base font-light" },
|
|
2793
|
+
return (index.h("div", { class: "text-neutral-dark text-xs/[1rem]" }, children || i18n.t('generated-answer-disclaimer')));
|
|
2794
|
+
};
|
|
2795
|
+
const GeneratedAnswerFooter = ({ collapsible, expanded, i18n, isStreaming, onShowButtonClick }, children) => {
|
|
2796
|
+
const showGeneratingLabel = collapsible && isStreaming;
|
|
2797
|
+
const showButton = collapsible && !isStreaming;
|
|
2798
|
+
return (index.h("div", { part: "generated-answer-footer", class: "mt-6 flex justify-end" },
|
|
2799
|
+
showGeneratingLabel && (index.h("div", { part: "is-generating", class: "text-primary hidden text-base font-light" },
|
|
2878
2800
|
i18n.t('generating-answer'),
|
|
2879
|
-
"..."))
|
|
2880
|
-
|
|
2881
|
-
|
|
2882
|
-
|
|
2883
|
-
|
|
2884
|
-
|
|
2885
|
-
|
|
2886
|
-
|
|
2887
|
-
|
|
2888
|
-
|
|
2889
|
-
|
|
2890
|
-
|
|
2891
|
-
|
|
2892
|
-
|
|
2893
|
-
|
|
2894
|
-
|
|
2895
|
-
|
|
2896
|
-
|
|
2897
|
-
|
|
2898
|
-
|
|
2899
|
-
|
|
2900
|
-
|
|
2901
|
-
|
|
2902
|
-
|
|
2903
|
-
|
|
2904
|
-
|
|
2905
|
-
|
|
2906
|
-
|
|
2907
|
-
|
|
2908
|
-
|
|
2909
|
-
index.h(
|
|
2910
|
-
|
|
2911
|
-
|
|
2912
|
-
render() {
|
|
2913
|
-
const { getGeneratedAnswerState } = this.props;
|
|
2914
|
-
const { cannotAnswer } = getGeneratedAnswerState() ?? {};
|
|
2915
|
-
const contentClasses = 'mx-auto mt-0 mb-4 border border-neutral shadow-lg p-6 bg-background rounded-lg p-6 text-on-background';
|
|
2916
|
-
if (this.hasNoAnswerGenerated) {
|
|
2917
|
-
return cannotAnswer && this.hasCustomNoAnswerMessage ? (index.h("div", null,
|
|
2918
|
-
index.h("aside", { class: contentClasses, part: "container" },
|
|
2919
|
-
index.h("article", null, this.renderCustomNoAnswerMessage())))) : null;
|
|
2920
|
-
}
|
|
2921
|
-
return (index.h("div", null,
|
|
2922
|
-
index.h("aside", { class: contentClasses, part: "container" },
|
|
2923
|
-
index.h("article", null, this.renderContent()))));
|
|
2924
|
-
}
|
|
2925
|
-
}
|
|
2801
|
+
"...")),
|
|
2802
|
+
showButton && onShowButtonClick && (index.h(ShowButton, { i18n: i18n, onClick: onShowButtonClick, isCollapsed: !expanded })),
|
|
2803
|
+
children));
|
|
2804
|
+
};
|
|
2805
|
+
const GeneratedAnswerRetryPrompt = ({ i18n, onRetry }) => {
|
|
2806
|
+
return (index.h(RetryPrompt, { onClick: onRetry, buttonLabel: i18n.t('retry'), message: i18n.t('retry-stream-message') }));
|
|
2807
|
+
};
|
|
2808
|
+
const GeneratedAnswerContent = ({ answer, answerContentFormat, citations, i18n, isStreaming, copied, copyError, generatedAnswerState, withToggle, onClickDislike, onClickLike, onCopyToClipboard, hasClipboard, disableCitationAnchoring, buildInteractiveCitationForCitation, generatedAnswer }) => {
|
|
2809
|
+
return (index.h(GeneratedContentContainer, { answer: answer, answerContentFormat: answerContentFormat, isStreaming: !!isStreaming },
|
|
2810
|
+
index.h(GeneratedAnswerFeedbackAndCopyButtons, { copied: copied, copyError: copyError, disliked: generatedAnswerState?.disliked, hasClipboard: hasClipboard, i18n: i18n, isStreaming: generatedAnswerState?.isStreaming, liked: generatedAnswerState?.liked, withToggle: withToggle, onClickDislike: onClickDislike, onClickLike: onClickLike, onCopyToClipboard: onCopyToClipboard }),
|
|
2811
|
+
index.h(SourceCitations, { label: i18n.t('citations'), isVisible: !!citations?.length },
|
|
2812
|
+
index.h(GeneratedAnswerCitations, { citations: generatedAnswerState.citations, disableCitationAnchoring: disableCitationAnchoring, buildInteractiveCitation: buildInteractiveCitationForCitation, onLogCitationHover: (citationId, citationHoverTimeMs) => {
|
|
2813
|
+
generatedAnswer?.logCitationHover?.(citationId, citationHoverTimeMs);
|
|
2814
|
+
}, i18n: i18n }))));
|
|
2815
|
+
};
|
|
2816
|
+
const GeneratedAnswerCommon = ({ onShowButtonClick, onClickDislike, onClickLike, onCopyToClipboard, collapsible, disableCitationAnchoring, copied, i18n, copyError, generatedAnswer, generatedAnswerState, withToggle, isAnswerVisible, hasRetryableError, hasClipboard, buildInteractiveCitationForCitation }) => {
|
|
2817
|
+
return index.h(GeneratedAnswerWrapper, null,
|
|
2818
|
+
index.h("div", { part: "generated-content" },
|
|
2819
|
+
index.h(GeneratedAnswerHeader, { i18n: i18n, isAnswerVisible: !!isAnswerVisible, withToggle: withToggle, onToggle: (checked) => {
|
|
2820
|
+
checked ? generatedAnswer?.show() : generatedAnswer?.hide();
|
|
2821
|
+
} }),
|
|
2822
|
+
hasRetryableError && isAnswerVisible ? (index.h(GeneratedAnswerRetryPrompt, { i18n: i18n, onRetry: () => generatedAnswer?.retry() })) : null,
|
|
2823
|
+
!hasRetryableError && isAnswerVisible ? (index.h(GeneratedAnswerContent, { answer: generatedAnswerState?.answer, answerContentFormat: generatedAnswerState?.answerContentFormat, citations: generatedAnswerState?.citations, i18n: i18n, isStreaming: generatedAnswerState?.isStreaming, copied: copied, copyError: copyError, generatedAnswerState: generatedAnswerState, withToggle: withToggle, onClickDislike: onClickDislike, onClickLike: onClickLike, onCopyToClipboard: onCopyToClipboard, hasClipboard: hasClipboard, disableCitationAnchoring: disableCitationAnchoring, buildInteractiveCitationForCitation: buildInteractiveCitationForCitation, generatedAnswer: generatedAnswer })) : null,
|
|
2824
|
+
!hasRetryableError && isAnswerVisible && (index.h(GeneratedAnswerFooter, { collapsible: collapsible, expanded: generatedAnswerState?.expanded, i18n: i18n, isStreaming: generatedAnswerState?.isStreaming, onShowButtonClick: onShowButtonClick },
|
|
2825
|
+
index.h(GeneratedAnswerDisclaimer, { isStreaming: generatedAnswerState?.isStreaming, i18n: i18n },
|
|
2826
|
+
index.h("slot", { name: "disclaimer", slot: "disclaimer" }, i18n.t('generated-answer-disclaimer')))))));
|
|
2827
|
+
};
|
|
2828
|
+
const GeneratedAnswerNoAnswerMessage = ({ i18n }, children) => {
|
|
2829
|
+
return (index.h("div", { part: "generated-content" },
|
|
2830
|
+
index.h("div", { class: "flex items-center" },
|
|
2831
|
+
index.h(stencilHeading.Heading, { level: 0, part: "header-label", class: "text-primary bg-primary-background inline-block rounded-md px-2.5 py-2 font-medium" }, i18n.t('generated-answer-title'))),
|
|
2832
|
+
index.h("div", { part: "generated-container", class: "mt-6 break-words" }, children)));
|
|
2833
|
+
};
|
|
2926
2834
|
|
|
2927
2835
|
exports.GeneratedAnswerCommon = GeneratedAnswerCommon;
|
|
2836
|
+
exports.GeneratedAnswerNoAnswerMessage = GeneratedAnswerNoAnswerMessage;
|
|
2837
|
+
exports.GeneratedAnswerWrapper = GeneratedAnswerWrapper;
|
|
2838
|
+
exports.copyToClipboard = copyToClipboard;
|
|
2839
|
+
exports.getGeneratedAnswerStatus = getGeneratedAnswerStatus;
|
|
2840
|
+
exports.insertGeneratedAnswerFeedbackModal = insertGeneratedAnswerFeedbackModal;
|
|
2841
|
+
exports.readGeneratedAnswerStoredData = readGeneratedAnswerStoredData;
|
|
2842
|
+
exports.writeGeneratedAnswerStoredData = writeGeneratedAnswerStoredData;
|
|
2928
2843
|
|
|
2929
|
-
//# sourceMappingURL=generated-answer-common-
|
|
2844
|
+
//# sourceMappingURL=generated-answer-common-469ad0e8.js.map
|