@coveo/atomic 3.50.0 → 3.52.0
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/custom-elements.json +15081 -13083
- package/dist/atomic/_atomic.esm.js +1 -1
- package/dist/atomic/atomic.esm.js.map +1 -1
- package/dist/atomic/components/_index.d.ts +0 -18
- package/dist/atomic/components/_index.js +97 -31
- package/dist/atomic/components/components/commerce/atomic-commerce-search-box/atomic-commerce-search-box.js +2 -2
- package/dist/atomic/components/components/common/atomic-facet-date-input/atomic-facet-date-input.js +1 -0
- package/dist/atomic/components/components/common/facets/timeframe-facet-common.js +1 -0
- package/dist/atomic/components/components/common/generated-answer/atomic-answer-content/atomic-answer-content.js +166 -0
- package/dist/atomic/components/components/common/generated-answer/atomic-generated-answer-thread-item/atomic-generated-answer-thread-item.js +155 -0
- package/dist/atomic/components/components/common/generated-answer/atomic-generated-answers-thread/atomic-generated-answers-thread.js +165 -0
- package/dist/atomic/components/components/common/generated-answer/render-feedback-and-copy-buttons.js +4 -3
- package/dist/atomic/components/components/common/generated-answer/render-follow-up-input.js +66 -0
- package/dist/atomic/components/components/common/generated-answer/styles/generated-answer.tw.css.js +1 -1
- package/dist/atomic/components/components/insight/atomic-insight-generated-answer/atomic-insight-generated-answer.js +444 -0
- package/dist/atomic/components/components/insight/atomic-insight-generated-answer/atomic-insight-generated-answer.tw.css.js +2 -0
- package/dist/atomic/components/components/insight/atomic-insight-result-action/atomic-insight-result-action.js +169 -0
- package/dist/atomic/components/components/insight/atomic-insight-result-attach-to-case-action/atomic-insight-result-attach-to-case-action.js +122 -0
- package/dist/atomic/components/components/insight/atomic-insight-result-children/atomic-insight-result-children.js +3 -2
- package/dist/atomic/components/components/insight/atomic-insight-result-children-template/atomic-insight-result-children-template.js +79 -0
- package/dist/atomic/components/components/insight/atomic-insight-timeframe-facet/atomic-insight-timeframe-facet.js +267 -0
- package/dist/atomic/components/components/insight/atomic-insight-user-actions-session/atomic-insight-user-actions-session.js +1 -1
- package/dist/atomic/components/components/insight/atomic-insight-user-actions-timeline/atomic-insight-user-actions-timeline.js +1 -1
- package/dist/atomic/components/components/insight/index.js +5 -0
- package/dist/atomic/components/components/insight/lazy-index.js +5 -0
- package/dist/atomic/components/components/ipx/atomic-ipx-button/atomic-ipx-button.js +1 -1
- package/dist/atomic/components/components/ipx/atomic-ipx-recs-list/atomic-ipx-recs-list.js +483 -0
- package/dist/atomic/components/components/ipx/atomic-ipx-refine-modal/atomic-ipx-refine-modal.js +202 -0
- package/dist/atomic/components/components/ipx/atomic-ipx-refine-toggle/atomic-ipx-refine-toggle.js +123 -0
- package/dist/atomic/components/components/ipx/index.js +3 -0
- package/dist/atomic/components/components/ipx/lazy-index.js +3 -0
- package/dist/atomic/components/components/recommendations/atomic-recs-result/atomic-recs-result.js +1 -0
- package/dist/atomic/components/components/search/atomic-external/atomic-external.js +1 -1
- package/dist/atomic/components/components/search/atomic-generated-answer/atomic-generated-answer.js +103 -10
- package/dist/atomic/components/components/search/atomic-refine-modal/atomic-refine-modal.js +2 -1
- package/dist/atomic/components/components/search/atomic-search-box/atomic-search-box.js +2 -2
- package/dist/atomic/components/decorators/bindings.js +1 -1
- package/dist/atomic/components/global/environment.js +1 -1
- package/dist/atomic/components/index.js.map +1 -1
- package/dist/atomic/components/mixins/bindings-mixin.js +1 -1
- package/dist/atomic/components/utils/custom-element-tags.js +11 -1
- package/dist/atomic/components/utils/tailwind.global.tw.css.js +2 -2
- package/dist/atomic/index.esm.js +1 -1
- package/dist/atomic/index.esm.js.map +1 -1
- 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-998f7983.js +3 -0
- package/dist/atomic/p-998f7983.js.map +1 -0
- package/dist/cjs/_index.cjs.js +110 -28
- package/dist/cjs/_loader.cjs.js +3 -4
- package/dist/cjs/app-globals-18f43c37.js +506 -0
- package/dist/cjs/app-globals-18f43c37.js.map +1 -0
- package/dist/cjs/atomic.cjs.js +4 -5
- package/dist/cjs/atomic.cjs.js.map +1 -1
- package/dist/cjs/index.cjs.js.map +1 -1
- package/dist/cjs/loader.cjs.js.map +1 -1
- package/dist/cjs/version.cjs.js +2 -2
- package/dist/esm/_index.js +97 -23
- package/dist/esm/_loader.js +3 -4
- package/dist/esm/app-globals-c5b073da.js +481 -0
- package/dist/esm/app-globals-c5b073da.js.map +1 -0
- package/dist/esm/atomic.js +3 -4
- package/dist/esm/atomic.js.map +1 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/loader.js.map +1 -1
- package/dist/esm/version.js +2 -2
- package/dist/types/components/common/context/bindings-context.d.ts +1 -1
- package/dist/types/components/common/facets/timeframe-facet-common.d.ts +1 -0
- package/dist/types/components/common/generated-answer/atomic-answer-content/atomic-answer-content.d.ts +50 -0
- package/dist/types/components/common/generated-answer/{generated-answer-thread-item/generated-answer-thread-item.d.ts → atomic-generated-answer-thread-item/atomic-generated-answer-thread-item.d.ts} +3 -3
- package/dist/types/components/common/generated-answer/atomic-generated-answers-thread/atomic-generated-answers-thread.d.ts +42 -0
- package/dist/types/components/common/generated-answer/render-feedback-and-copy-buttons.d.ts +8 -2
- package/dist/types/components/common/item-list/table-layout.d.ts +1 -1
- package/dist/types/components/insight/atomic-insight-generated-answer/atomic-insight-generated-answer.d.ts +54 -35
- package/dist/types/components/insight/atomic-insight-generated-answer/atomic-insight-generated-answer.tw.css.d.ts +2 -0
- package/dist/types/components/insight/atomic-insight-result-action/atomic-insight-result-action.d.ts +33 -18
- package/dist/types/components/insight/atomic-insight-result-attach-to-case-action/atomic-insight-result-attach-to-case-action.d.ts +25 -20
- package/dist/types/components/insight/atomic-insight-result-children/atomic-insight-result-children.d.ts +1 -0
- package/dist/types/components/insight/atomic-insight-result-children-template/atomic-insight-result-children-template.d.ts +62 -0
- package/dist/types/components/insight/atomic-insight-timeframe-facet/atomic-insight-timeframe-facet.d.ts +47 -28
- package/dist/types/components/insight/index.d.ts +5 -0
- package/dist/types/components/ipx/atomic-ipx-button/atomic-ipx-button.d.ts +1 -1
- package/dist/types/components/ipx/atomic-ipx-recs-list/{atomic-recs-list/atomic-ipx-recs-list.d.ts → atomic-ipx-recs-list.d.ts} +43 -21
- package/dist/types/components/ipx/atomic-ipx-refine-modal/atomic-ipx-refine-modal.d.ts +62 -15
- package/dist/types/components/ipx/atomic-ipx-refine-toggle/atomic-ipx-refine-toggle.d.ts +26 -11
- package/dist/types/components/ipx/index.d.ts +3 -0
- package/dist/types/components/recommendations/atomic-recs-result/atomic-recs-result.d.ts +1 -0
- package/dist/types/components/search/atomic-external/atomic-external.d.ts +1 -1
- package/dist/types/components/search/atomic-generated-answer/atomic-generated-answer.d.ts +11 -2
- package/dist/types/components/search/atomic-refine-modal/atomic-refine-modal.d.ts +4 -3
- package/dist/types/components.d.ts +0 -547
- package/dist/types/decorators/bindings.d.ts +1 -1
- package/dist/types/index.d.ts +2 -3
- package/dist/types/utils/accessibility-utils.d.ts +2 -2
- package/dist/types/utils/init-queue.d.ts +1 -1
- package/docs/atomic-docs.json +2 -68
- package/package.json +4 -8
- package/dist/atomic/components/_commonjsHelpers.js +0 -5
- package/dist/atomic/components/_commonjsHelpers.js.map +0 -1
- package/dist/atomic/components/arrow-top-rounded.js +0 -7
- package/dist/atomic/components/arrow-top-rounded.js.map +0 -1
- package/dist/atomic/components/atomic-insight-generated-answer.d.ts +0 -11
- package/dist/atomic/components/atomic-insight-generated-answer.js +0 -3264
- package/dist/atomic/components/atomic-insight-generated-answer.js.map +0 -1
- package/dist/atomic/components/atomic-insight-result-action.d.ts +0 -11
- package/dist/atomic/components/atomic-insight-result-action.js +0 -155
- package/dist/atomic/components/atomic-insight-result-action.js.map +0 -1
- package/dist/atomic/components/atomic-insight-result-attach-to-case-action.d.ts +0 -11
- package/dist/atomic/components/atomic-insight-result-attach-to-case-action.js +0 -102
- package/dist/atomic/components/atomic-insight-result-attach-to-case-action.js.map +0 -1
- package/dist/atomic/components/atomic-insight-result-children-template.d.ts +0 -11
- package/dist/atomic/components/atomic-insight-result-children-template.js +0 -243
- package/dist/atomic/components/atomic-insight-result-children-template.js.map +0 -1
- package/dist/atomic/components/atomic-insight-timeframe-facet.d.ts +0 -11
- package/dist/atomic/components/atomic-insight-timeframe-facet.js +0 -726
- package/dist/atomic/components/atomic-insight-timeframe-facet.js.map +0 -1
- package/dist/atomic/components/atomic-ipx-recs-list.d.ts +0 -11
- package/dist/atomic/components/atomic-ipx-recs-list.js +0 -631
- package/dist/atomic/components/atomic-ipx-recs-list.js.map +0 -1
- package/dist/atomic/components/atomic-ipx-refine-modal.d.ts +0 -11
- package/dist/atomic/components/atomic-ipx-refine-modal.js +0 -8
- package/dist/atomic/components/atomic-ipx-refine-modal.js.map +0 -1
- package/dist/atomic/components/atomic-ipx-refine-modal2.js +0 -162
- package/dist/atomic/components/atomic-ipx-refine-modal2.js.map +0 -1
- package/dist/atomic/components/atomic-ipx-refine-toggle.d.ts +0 -11
- package/dist/atomic/components/atomic-ipx-refine-toggle.js +0 -121
- package/dist/atomic/components/atomic-ipx-refine-toggle.js.map +0 -1
- package/dist/atomic/components/atomic-stencil-facet-date-input.d.ts +0 -11
- package/dist/atomic/components/atomic-stencil-facet-date-input.js +0 -107
- package/dist/atomic/components/atomic-stencil-facet-date-input.js.map +0 -1
- package/dist/atomic/components/attach.js +0 -115
- package/dist/atomic/components/attach.js.map +0 -1
- package/dist/atomic/components/components/common/layout/display-options.js +0 -28
- package/dist/atomic/components/date-utils.js +0 -26
- package/dist/atomic/components/date-utils.js.map +0 -1
- package/dist/atomic/components/initialization-utils.js +0 -226
- package/dist/atomic/components/initialization-utils.js.map +0 -1
- package/dist/atomic/components/popover-type.js +0 -12
- package/dist/atomic/components/popover-type.js.map +0 -1
- package/dist/atomic/components/props-utils.js +0 -57
- package/dist/atomic/components/props-utils.js.map +0 -1
- package/dist/atomic/components/stencil-button.js +0 -148
- package/dist/atomic/components/stencil-button.js.map +0 -1
- package/dist/atomic/components/stencil-heading.js +0 -169
- package/dist/atomic/components/stencil-heading.js.map +0 -1
- package/dist/atomic/components/stencil-iconButton.js +0 -16
- package/dist/atomic/components/stencil-iconButton.js.map +0 -1
- package/dist/atomic/components/store.js +0 -13
- package/dist/atomic/components/store.js.map +0 -1
- package/dist/atomic/components/utils.js +0 -1421
- package/dist/atomic/components/utils.js.map +0 -1
- package/dist/atomic/p-0698ccf1.entry.js +0 -2
- package/dist/atomic/p-0698ccf1.entry.js.map +0 -1
- package/dist/atomic/p-0f896350.entry.js +0 -2
- package/dist/atomic/p-0f896350.entry.js.map +0 -1
- package/dist/atomic/p-1580513b.js +0 -2
- package/dist/atomic/p-1580513b.js.map +0 -1
- package/dist/atomic/p-4117289b.entry.js +0 -2
- package/dist/atomic/p-4117289b.entry.js.map +0 -1
- package/dist/atomic/p-4573c419.js +0 -2
- package/dist/atomic/p-4573c419.js.map +0 -1
- package/dist/atomic/p-4a32511f.js +0 -2
- package/dist/atomic/p-4a32511f.js.map +0 -1
- package/dist/atomic/p-578d761c.js +0 -2
- package/dist/atomic/p-578d761c.js.map +0 -1
- package/dist/atomic/p-677f9c40.js +0 -2
- package/dist/atomic/p-677f9c40.js.map +0 -1
- package/dist/atomic/p-70cc18a1.js +0 -2
- package/dist/atomic/p-70cc18a1.js.map +0 -1
- package/dist/atomic/p-74210c4b.entry.js +0 -9
- package/dist/atomic/p-74210c4b.entry.js.map +0 -1
- package/dist/atomic/p-81d6e743.js +0 -2
- package/dist/atomic/p-81d6e743.js.map +0 -1
- package/dist/atomic/p-8b039c2e.entry.js +0 -2
- package/dist/atomic/p-8b039c2e.entry.js.map +0 -1
- package/dist/atomic/p-991e840f.entry.js +0 -2
- package/dist/atomic/p-991e840f.entry.js.map +0 -1
- package/dist/atomic/p-9c5ec170.js +0 -2
- package/dist/atomic/p-9c5ec170.js.map +0 -1
- package/dist/atomic/p-9dfe5ab1.js +0 -2
- package/dist/atomic/p-9dfe5ab1.js.map +0 -1
- package/dist/atomic/p-9f774145.entry.js +0 -2
- package/dist/atomic/p-9f774145.entry.js.map +0 -1
- package/dist/atomic/p-a33748a9.js +0 -2
- package/dist/atomic/p-a33748a9.js.map +0 -1
- package/dist/atomic/p-b09433bb.js +0 -3
- package/dist/atomic/p-b09433bb.js.map +0 -1
- package/dist/atomic/p-b4cfedf1.js +0 -2
- package/dist/atomic/p-b4cfedf1.js.map +0 -1
- package/dist/atomic/p-c81f1edb.entry.js +0 -2
- package/dist/atomic/p-c81f1edb.entry.js.map +0 -1
- package/dist/atomic/p-d75a4630.js +0 -2
- package/dist/atomic/p-d75a4630.js.map +0 -1
- package/dist/atomic/p-dac60354.js +0 -2
- package/dist/atomic/p-dac60354.js.map +0 -1
- package/dist/atomic/p-e1255160.js +0 -2
- package/dist/atomic/p-e1255160.js.map +0 -1
- package/dist/atomic/p-ec1c5f46.js +0 -3
- package/dist/atomic/p-ec1c5f46.js.map +0 -1
- package/dist/atomic/p-eea2c139.entry.js +0 -2
- package/dist/atomic/p-eea2c139.entry.js.map +0 -1
- package/dist/atomic/p-f321aab0.js +0 -2
- package/dist/atomic/p-f321aab0.js.map +0 -1
- package/dist/cjs/_commonjsHelpers-68cdf74f.js +0 -7
- package/dist/cjs/_commonjsHelpers-68cdf74f.js.map +0 -1
- package/dist/cjs/app-globals-3a1e7e63.js +0 -7
- package/dist/cjs/app-globals-3a1e7e63.js.map +0 -1
- package/dist/cjs/arrow-top-rounded-885250ea.js +0 -10
- package/dist/cjs/arrow-top-rounded-885250ea.js.map +0 -1
- package/dist/cjs/atomic-insight-generated-answer.cjs.entry.js +0 -3238
- package/dist/cjs/atomic-insight-generated-answer.cjs.entry.js.map +0 -1
- package/dist/cjs/atomic-insight-result-action.cjs.entry.js +0 -140
- package/dist/cjs/atomic-insight-result-action.cjs.entry.js.map +0 -1
- package/dist/cjs/atomic-insight-result-attach-to-case-action.cjs.entry.js +0 -90
- package/dist/cjs/atomic-insight-result-attach-to-case-action.cjs.entry.js.map +0 -1
- package/dist/cjs/atomic-insight-result-children-template.cjs.entry.js +0 -223
- package/dist/cjs/atomic-insight-result-children-template.cjs.entry.js.map +0 -1
- package/dist/cjs/atomic-insight-timeframe-facet.cjs.entry.js +0 -700
- package/dist/cjs/atomic-insight-timeframe-facet.cjs.entry.js.map +0 -1
- package/dist/cjs/atomic-ipx-recs-list.cjs.entry.js +0 -600
- package/dist/cjs/atomic-ipx-recs-list.cjs.entry.js.map +0 -1
- package/dist/cjs/atomic-ipx-refine-modal.cjs.entry.js +0 -143
- package/dist/cjs/atomic-ipx-refine-modal.cjs.entry.js.map +0 -1
- package/dist/cjs/atomic-ipx-refine-toggle.cjs.entry.js +0 -99
- package/dist/cjs/atomic-ipx-refine-toggle.cjs.entry.js.map +0 -1
- package/dist/cjs/atomic-stencil-facet-date-input.cjs.entry.js +0 -86
- package/dist/cjs/atomic-stencil-facet-date-input.cjs.entry.js.map +0 -1
- package/dist/cjs/attach-19283bec.js +0 -10
- package/dist/cjs/attach-19283bec.js.map +0 -1
- package/dist/cjs/date-utils-aae1d713.js +0 -28
- package/dist/cjs/date-utils-aae1d713.js.map +0 -1
- package/dist/cjs/event-utils-9bfcf3c5.js +0 -27
- package/dist/cjs/event-utils-9bfcf3c5.js.map +0 -1
- package/dist/cjs/index-3532822e.js +0 -1448
- package/dist/cjs/index-3532822e.js.map +0 -1
- package/dist/cjs/initialization-lit-stencil-common-utils-f19f74c0.js +0 -95
- package/dist/cjs/initialization-lit-stencil-common-utils-f19f74c0.js.map +0 -1
- package/dist/cjs/initialization-utils-51a423fe.js +0 -148
- package/dist/cjs/initialization-utils-51a423fe.js.map +0 -1
- package/dist/cjs/popover-type-22f285e1.js +0 -16
- package/dist/cjs/popover-type-22f285e1.js.map +0 -1
- package/dist/cjs/props-utils-bc5feb04.js +0 -59
- package/dist/cjs/props-utils-bc5feb04.js.map +0 -1
- package/dist/cjs/stencil-button-f39da03e.js +0 -130
- package/dist/cjs/stencil-button-f39da03e.js.map +0 -1
- package/dist/cjs/stencil-heading-ecec9ab3.js +0 -174
- package/dist/cjs/stencil-heading-ecec9ab3.js.map +0 -1
- package/dist/cjs/stencil-iconButton-f8b9fda0.js +0 -18
- package/dist/cjs/stencil-iconButton-f8b9fda0.js.map +0 -1
- package/dist/cjs/stencil-result-template-decorators-1f099c15.js +0 -114
- package/dist/cjs/stencil-result-template-decorators-1f099c15.js.map +0 -1
- package/dist/cjs/store-70fff5e6.js +0 -16
- package/dist/cjs/store-70fff5e6.js.map +0 -1
- package/dist/cjs/utils-e845f262.js +0 -1431
- package/dist/cjs/utils-e845f262.js.map +0 -1
- package/dist/esm/_commonjsHelpers-1c8beb5f.js +0 -5
- package/dist/esm/_commonjsHelpers-1c8beb5f.js.map +0 -1
- package/dist/esm/app-globals-0f993ce5.js +0 -5
- package/dist/esm/app-globals-0f993ce5.js.map +0 -1
- package/dist/esm/arrow-top-rounded-745b84a6.js +0 -7
- package/dist/esm/arrow-top-rounded-745b84a6.js.map +0 -1
- package/dist/esm/atomic-insight-generated-answer.entry.js +0 -3234
- package/dist/esm/atomic-insight-generated-answer.entry.js.map +0 -1
- package/dist/esm/atomic-insight-result-action.entry.js +0 -136
- package/dist/esm/atomic-insight-result-action.entry.js.map +0 -1
- package/dist/esm/atomic-insight-result-attach-to-case-action.entry.js +0 -86
- package/dist/esm/atomic-insight-result-attach-to-case-action.entry.js.map +0 -1
- package/dist/esm/atomic-insight-result-children-template.entry.js +0 -219
- package/dist/esm/atomic-insight-result-children-template.entry.js.map +0 -1
- package/dist/esm/atomic-insight-timeframe-facet.entry.js +0 -696
- package/dist/esm/atomic-insight-timeframe-facet.entry.js.map +0 -1
- package/dist/esm/atomic-ipx-recs-list.entry.js +0 -596
- package/dist/esm/atomic-ipx-recs-list.entry.js.map +0 -1
- package/dist/esm/atomic-ipx-refine-modal.entry.js +0 -139
- package/dist/esm/atomic-ipx-refine-modal.entry.js.map +0 -1
- package/dist/esm/atomic-ipx-refine-toggle.entry.js +0 -95
- package/dist/esm/atomic-ipx-refine-toggle.entry.js.map +0 -1
- package/dist/esm/atomic-stencil-facet-date-input.entry.js +0 -82
- package/dist/esm/atomic-stencil-facet-date-input.entry.js.map +0 -1
- package/dist/esm/attach-81bb8872.js +0 -8
- package/dist/esm/attach-81bb8872.js.map +0 -1
- package/dist/esm/date-utils-3b955e79.js +0 -26
- package/dist/esm/date-utils-3b955e79.js.map +0 -1
- package/dist/esm/event-utils-8de63ec3.js +0 -24
- package/dist/esm/event-utils-8de63ec3.js.map +0 -1
- package/dist/esm/index-3eb0b28e.js +0 -1417
- package/dist/esm/index-3eb0b28e.js.map +0 -1
- package/dist/esm/initialization-lit-stencil-common-utils-e7755434.js +0 -88
- package/dist/esm/initialization-lit-stencil-common-utils-e7755434.js.map +0 -1
- package/dist/esm/initialization-utils-82d28c63.js +0 -144
- package/dist/esm/initialization-utils-82d28c63.js.map +0 -1
- package/dist/esm/popover-type-c85677ef.js +0 -12
- package/dist/esm/popover-type-c85677ef.js.map +0 -1
- package/dist/esm/props-utils-d343133b.js +0 -57
- package/dist/esm/props-utils-d343133b.js.map +0 -1
- package/dist/esm/stencil-button-c25899df.js +0 -128
- package/dist/esm/stencil-button-c25899df.js.map +0 -1
- package/dist/esm/stencil-heading-98a5f23f.js +0 -169
- package/dist/esm/stencil-heading-98a5f23f.js.map +0 -1
- package/dist/esm/stencil-iconButton-ed5804d3.js +0 -16
- package/dist/esm/stencil-iconButton-ed5804d3.js.map +0 -1
- package/dist/esm/stencil-result-template-decorators-9cbe1e1c.js +0 -110
- package/dist/esm/stencil-result-template-decorators-9cbe1e1c.js.map +0 -1
- package/dist/esm/store-50d170c8.js +0 -13
- package/dist/esm/store-50d170c8.js.map +0 -1
- package/dist/esm/utils-b5bab369.js +0 -1421
- package/dist/esm/utils-b5bab369.js.map +0 -1
- package/dist/types/components/commerce/product-template-component-utils/context/stencil-product-template-decorators.d.ts +0 -14
- package/dist/types/components/common/atomic-rating/stencil-rating.d.ts +0 -18
- package/dist/types/components/common/atomic-result-placeholder/stencil-placeholders.d.ts +0 -20
- package/dist/types/components/common/breadbox/stencil-breadcrumb-button.d.ts +0 -15
- package/dist/types/components/common/breadbox/stencil-breadcrumb-clear-all.d.ts +0 -13
- package/dist/types/components/common/breadbox/stencil-breadcrumb-container.d.ts +0 -11
- package/dist/types/components/common/breadbox/stencil-breadcrumb-content.d.ts +0 -14
- package/dist/types/components/common/breadbox/stencil-breadcrumb-show-less.d.ts +0 -13
- package/dist/types/components/common/breadbox/stencil-breadcrumb-show-more.d.ts +0 -14
- package/dist/types/components/common/facets/category-facet/stencil-all-categories-button.d.ts +0 -13
- package/dist/types/components/common/facets/category-facet/stencil-child-value-link.d.ts +0 -9
- package/dist/types/components/common/facets/category-facet/stencil-children-as-tree-container.d.ts +0 -9
- package/dist/types/components/common/facets/category-facet/stencil-parent-as-tree-container.d.ts +0 -10
- package/dist/types/components/common/facets/category-facet/stencil-parent-button.d.ts +0 -16
- package/dist/types/components/common/facets/category-facet/stencil-parent-value-link.d.ts +0 -9
- package/dist/types/components/common/facets/category-facet/stencil-search-results-container.d.ts +0 -5
- package/dist/types/components/common/facets/category-facet/stencil-search-value.d.ts +0 -19
- package/dist/types/components/common/facets/category-facet/stencil-value-as-tree-container.d.ts +0 -5
- package/dist/types/components/common/facets/category-facet/stencil-value-link.d.ts +0 -20
- package/dist/types/components/common/facets/facet-container/stencil-facet-container.d.ts +0 -5
- package/dist/types/components/common/facets/facet-header/stencil-facet-header.d.ts +0 -17
- package/dist/types/components/common/facets/facet-placeholder/stencil-facet-placeholder.d.ts +0 -10
- package/dist/types/components/common/facets/facet-search/stencil-facet-search-input-guard.d.ts +0 -11
- package/dist/types/components/common/facets/facet-search/stencil-facet-search-input.d.ts +0 -14
- package/dist/types/components/common/facets/facet-search/stencil-facet-search-matches.d.ts +0 -14
- package/dist/types/components/common/facets/facet-search/stencil-facet-search-value.d.ts +0 -6
- package/dist/types/components/common/facets/facet-show-more-less/stencil-facet-show-more-less.d.ts +0 -17
- package/dist/types/components/common/facets/facet-value/stencil-facet-value.d.ts +0 -22
- package/dist/types/components/common/facets/facet-value-box/stencil-facet-value-box.d.ts +0 -6
- package/dist/types/components/common/facets/facet-value-checkbox/stencil-facet-value-checkbox.d.ts +0 -11
- package/dist/types/components/common/facets/facet-value-exclude/stencil-facet-value-exclude.d.ts +0 -10
- package/dist/types/components/common/facets/facet-value-label-highlight/stencil-facet-value-label-highlight.d.ts +0 -12
- package/dist/types/components/common/facets/facet-value-link/stencil-facet-value-link.d.ts +0 -10
- package/dist/types/components/common/facets/facet-values-group/stencil-facet-values-group.d.ts +0 -12
- package/dist/types/components/common/facets/numeric-facet/stencil-value-link.d.ts +0 -12
- package/dist/types/components/common/facets/numeric-facet/stencil-values-container.d.ts +0 -11
- package/dist/types/components/common/facets/stencil-facet-common.d.ts +0 -43
- package/dist/types/components/common/facets/stencil-facet-date-input/stencil-facet-date-input.d.ts +0 -33
- package/dist/types/components/common/facets/stencil-facet-guard.d.ts +0 -12
- package/dist/types/components/common/facets/stencil-timeframe-facet-common.d.ts +0 -72
- package/dist/types/components/common/generated-answer/generated-answer-common.d.ts +0 -58
- package/dist/types/components/common/generated-answer/generated-content/stencil-generated-markdown-content.d.ts +0 -10
- package/dist/types/components/common/generated-answer/generated-content/stencil-generated-text-content.d.ts +0 -10
- package/dist/types/components/common/generated-answer/stencil-copy-button.d.ts +0 -12
- package/dist/types/components/common/generated-answer/stencil-feedback-button.d.ts +0 -13
- package/dist/types/components/common/generated-answer/stencil-generated-content-container.d.ts +0 -11
- package/dist/types/components/common/generated-answer/stencil-retry-prompt.d.ts +0 -11
- package/dist/types/components/common/generated-answer/stencil-show-button.d.ts +0 -12
- package/dist/types/components/common/generated-answer/stencil-source-citations.d.ts +0 -10
- package/dist/types/components/common/interface/interface-common-stencil.d.ts +0 -34
- package/dist/types/components/common/interface/stencil-i18n.d.ts +0 -11
- package/dist/types/components/common/item-link/stencil-item-link.d.ts +0 -30
- package/dist/types/components/common/item-list/item-list-decorators.d.ts +0 -17
- package/dist/types/components/common/item-list/stencil-display-grid.d.ts +0 -17
- package/dist/types/components/common/item-list/stencil-display-wrapper.d.ts +0 -11
- package/dist/types/components/common/item-list/stencil-item-decorators.d.ts +0 -41
- package/dist/types/components/common/item-list/stencil-item-display-guard.d.ts +0 -10
- package/dist/types/components/common/item-list/stencil-item-list-common.d.ts +0 -31
- package/dist/types/components/common/item-list/stencil-item-list-guard.d.ts +0 -13
- package/dist/types/components/common/item-text/stencil-item-text-fallback.d.ts +0 -14
- package/dist/types/components/common/item-text/stencil-item-text-highlighted.d.ts +0 -13
- package/dist/types/components/common/load-more/guard.d.ts +0 -10
- package/dist/types/components/common/load-more/stencil-button.d.ts +0 -13
- package/dist/types/components/common/load-more/stencil-container.d.ts +0 -5
- package/dist/types/components/common/load-more/stencil-progress-bar.d.ts +0 -10
- package/dist/types/components/common/load-more/stencil-summary.d.ts +0 -13
- package/dist/types/components/common/no-items/stencil-container.d.ts +0 -5
- package/dist/types/components/common/no-items/stencil-guard.d.ts +0 -11
- package/dist/types/components/common/no-items/stencil-magnifying-glass.d.ts +0 -5
- package/dist/types/components/common/no-items/stencil-no-items.d.ts +0 -12
- package/dist/types/components/common/no-items/stencil-tips.d.ts +0 -10
- package/dist/types/components/common/pager/stencil-pager-buttons.d.ts +0 -33
- package/dist/types/components/common/pager/stencil-pager-navigation.d.ts +0 -10
- package/dist/types/components/common/product-template/stencil-product-template-common.d.ts +0 -26
- package/dist/types/components/common/query-correction/stencil-auto-correction.d.ts +0 -12
- package/dist/types/components/common/query-correction/stencil-correction.d.ts +0 -12
- package/dist/types/components/common/query-correction/stencil-guard.d.ts +0 -9
- package/dist/types/components/common/query-correction/stencil-trigger-correction.d.ts +0 -13
- package/dist/types/components/common/query-error/stencil-container.d.ts +0 -5
- package/dist/types/components/common/query-error/stencil-description.d.ts +0 -13
- package/dist/types/components/common/query-error/stencil-details.d.ts +0 -10
- package/dist/types/components/common/query-error/stencil-guard.d.ts +0 -9
- package/dist/types/components/common/query-error/stencil-icon.d.ts +0 -9
- package/dist/types/components/common/query-error/stencil-link.d.ts +0 -11
- package/dist/types/components/common/query-error/stencil-show-more.d.ts +0 -13
- package/dist/types/components/common/query-error/stencil-title.d.ts +0 -12
- package/dist/types/components/common/query-summary/stencil-container.d.ts +0 -9
- package/dist/types/components/common/query-summary/stencil-guard.d.ts +0 -11
- package/dist/types/components/common/query-summary/stencil-utils.d.ts +0 -23
- package/dist/types/components/common/refine-modal/stencil-body.d.ts +0 -7
- package/dist/types/components/common/refine-modal/stencil-button.d.ts +0 -12
- package/dist/types/components/common/refine-modal/stencil-filters.d.ts +0 -20
- package/dist/types/components/common/refine-modal/stencil-guard.d.ts +0 -11
- package/dist/types/components/common/refine-modal/stencil-modal.d.ts +0 -18
- package/dist/types/components/common/refine-modal/stencil-sort.d.ts +0 -11
- package/dist/types/components/common/result-children/stencil-children-wrapper.d.ts +0 -9
- package/dist/types/components/common/result-children/stencil-collection-guard.d.ts +0 -16
- package/dist/types/components/common/result-children/stencil-guard.d.ts +0 -11
- package/dist/types/components/common/result-children/stencil-show-hide-button.d.ts +0 -14
- package/dist/types/components/common/result-templates/stencil-result-template-common.d.ts +0 -24
- package/dist/types/components/common/search-box/stencil-search-box-wrapper.d.ts +0 -10
- package/dist/types/components/common/search-box/stencil-search-text-area.d.ts +0 -22
- package/dist/types/components/common/search-box/stencil-submit-button.d.ts +0 -12
- package/dist/types/components/common/search-box/stencil-text-area-clear-button.d.ts +0 -12
- package/dist/types/components/common/smart-snippets/atomic-smart-snippet/stencil-smart-snippet-common.d.ts +0 -31
- package/dist/types/components/common/smart-snippets/atomic-smart-snippet-feedback-modal/stencil-smart-snippet-feedback-modal-common.d.ts +0 -57
- package/dist/types/components/common/smart-snippets/atomic-smart-snippet-suggestions/stencil-smart-snippet-suggestions-common.d.ts +0 -43
- package/dist/types/components/common/smart-snippets/stencil-smart-snippet-feedback-banner.d.ts +0 -18
- package/dist/types/components/common/stencil-button-style.d.ts +0 -11
- package/dist/types/components/common/stencil-button.d.ts +0 -30
- package/dist/types/components/common/stencil-carousel.d.ts +0 -15
- package/dist/types/components/common/stencil-checkbox.d.ts +0 -22
- package/dist/types/components/common/stencil-fieldset-group.d.ts +0 -9
- package/dist/types/components/common/stencil-heading.d.ts +0 -7
- package/dist/types/components/common/stencil-hidden.d.ts +0 -5
- package/dist/types/components/common/stencil-iconButton.d.ts +0 -13
- package/dist/types/components/common/stencil-radio-button.d.ts +0 -12
- package/dist/types/components/common/stencil-switch.d.ts +0 -15
- package/dist/types/components/common/stencil-triStateCheckbox.d.ts +0 -11
- package/dist/types/components/common/suggestions/stencil-instant-item.d.ts +0 -19
- package/dist/types/components/common/suggestions/stencil-query-suggestions.d.ts +0 -32
- package/dist/types/components/common/suggestions/stencil-suggestion-manager.d.ts +0 -96
- package/dist/types/components/insight/result-templates/atomic-insight-result-children-template/atomic-insight-result-children-template.d.ts +0 -50
- package/dist/types/components/search/facets/facet-segmented-value/stencil-facet-segmented-value.d.ts +0 -6
- package/dist/types/components/search/result-template-component-utils/context/stencil-result-template-decorators.d.ts +0 -32
- package/dist/types/components/search/result-template-components/quickview-iframe/stencil-quickview-iframe.d.ts +0 -14
- package/dist/types/utils/__mocks__/stencil-resource-url.d.ts +0 -1
- package/dist/types/utils/initialization-utils.d.ts +0 -70
- package/dist/types/utils/jsx-utils.d.ts +0 -6
- package/dist/types/utils/stencil-accessibility-utils.d.ts +0 -43
- package/dist/types/utils/stencil-asset-path-utils.d.ts +0 -1
- package/dist/types/utils/stencil-resource-url.d.ts +0 -1
- /package/dist/atomic/components/utils/{initialization-lit-stencil-common-utils.js → initialization-common-utils.js} +0 -0
- /package/dist/types/utils/{initialization-lit-stencil-common-utils.d.ts → initialization-common-utils.d.ts} +0 -0
|
@@ -0,0 +1,444 @@
|
|
|
1
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
+
};
|
|
7
|
+
var AtomicInsightGeneratedAnswer_1;
|
|
8
|
+
import { NumberValue, Schema } from '@coveo/bueno';
|
|
9
|
+
import { buildGeneratedAnswer as buildInsightGeneratedAnswer, buildInteractiveCitation as buildInsightInteractiveCitation, buildSearchStatus as buildInsightSearchStatus, } from '@coveo/headless/insight';
|
|
10
|
+
import { html, LitElement, nothing } from 'lit';
|
|
11
|
+
import { customElement, property, state } from 'lit/decorators.js';
|
|
12
|
+
import { when } from 'lit/directives/when.js';
|
|
13
|
+
import { GeneratedAnswerController } from "../../common/generated-answer/generated-answer-controller";
|
|
14
|
+
import { renderAnswerContent } from "../../common/generated-answer/render-answer-content";
|
|
15
|
+
import { renderCardHeader } from "../../common/generated-answer/render-card-header";
|
|
16
|
+
import { renderCitations } from "../../common/generated-answer/render-citations";
|
|
17
|
+
import { renderCustomNoAnswerMessage } from "../../common/generated-answer/render-custom-no-answer-message";
|
|
18
|
+
import { renderDisclaimer } from "../../common/generated-answer/render-disclaimer";
|
|
19
|
+
import { renderFeedbackAndCopyButtons } from "../../common/generated-answer/render-feedback-and-copy-buttons";
|
|
20
|
+
import { ValidatePropsController } from "../../common/validate-props-controller/validate-props-controller";
|
|
21
|
+
import { booleanConverter } from "../../../converters/boolean-converter";
|
|
22
|
+
import { createLegacyArrayStringConverter } from "../../../converters/legacy-array-string-converter";
|
|
23
|
+
import { bindStateToController } from "../../../decorators/bind-state";
|
|
24
|
+
import { bindingGuard } from "../../../decorators/binding-guard";
|
|
25
|
+
import { bindings } from "../../../decorators/bindings";
|
|
26
|
+
import { errorGuard } from "../../../decorators/error-guard";
|
|
27
|
+
import { withTailwindStyles } from "../../../decorators/with-tailwind-styles";
|
|
28
|
+
import { AriaLiveRegionController } from "../../../utils/accessibility-utils";
|
|
29
|
+
import { debounce } from "../../../utils/debounce-utils";
|
|
30
|
+
import { getNamedSlotContent } from "../../../utils/slot-utils";
|
|
31
|
+
import atomicInsightGeneratedAnswerStyles from './atomic-insight-generated-answer.tw.css.js';
|
|
32
|
+
/**
|
|
33
|
+
* The `atomic-insight-generated-answer` component uses Coveo Machine Learning (Coveo ML) models to automatically generate an answer to a query executed by the user.
|
|
34
|
+
* For more information, see [About Relevance Generative Answering (RGA)](https://docs.coveo.com/en/n9de0370/)
|
|
35
|
+
*
|
|
36
|
+
* @slot no-answer-message - Lets you pass a custom sorry message when no answer is generated.
|
|
37
|
+
*
|
|
38
|
+
* @part container - The container displaying the generated answer.
|
|
39
|
+
* @part header-label - The header of the generated answer container.
|
|
40
|
+
* @part feedback-button - The "like" and "dislike" buttons.
|
|
41
|
+
* @part toggle - The switch to toggle the visibility of the generated answer.
|
|
42
|
+
* @part copy-button - The "Copy answer" button.
|
|
43
|
+
* @part retry-container - The container for the "retry" section.
|
|
44
|
+
* @part generated-text - The text of the generated answer.
|
|
45
|
+
* @part citations-label - The header of the citations list.
|
|
46
|
+
*
|
|
47
|
+
* @part answer-code-block - The generated answer multi-line code blocks.
|
|
48
|
+
* @part answer-emphasis - The generated answer emphasized text elements.
|
|
49
|
+
* @part answer-inline-code - The generated answer inline code elements.
|
|
50
|
+
* @part answer-heading-1 - The generated answer level 1 heading elements.
|
|
51
|
+
* @part answer-heading-2 - The generated answer level 2 heading elements.
|
|
52
|
+
* @part answer-heading-3 - The generated answer level 3 heading elements.
|
|
53
|
+
* @part answer-heading-4 - The generated answer level 4 heading elements.
|
|
54
|
+
* @part answer-heading-5 - The generated answer level 5 heading elements.
|
|
55
|
+
* @part answer-heading-6 - The generated answer level 6 heading elements.
|
|
56
|
+
* @part answer-list-item - The generated answer list item elements for both ordered and unordered lists.
|
|
57
|
+
* @part answer-ordered-list - The generated answer ordered list elements.
|
|
58
|
+
* @part answer-paragraph - The generated answer paragraph elements.
|
|
59
|
+
* @part answer-quote-block - The generated answer quote block elements.
|
|
60
|
+
* @part answer-unordered-list - The generated answer unordered list elements.
|
|
61
|
+
* @part answer-strong - The generated answer strong text elements.
|
|
62
|
+
* @part answer-table - The generated answer table elements.
|
|
63
|
+
* @part answer-table-container - The generated answer table container elements.
|
|
64
|
+
* @part answer-table-content - The generated answer table content cell elements.
|
|
65
|
+
* @part answer-table-header - The generated answer table header cell elements.
|
|
66
|
+
*
|
|
67
|
+
* @part citation - The link that allows the user to navigate to the item.
|
|
68
|
+
* @part citation-popover - The pop-up that shows an item preview when the user hovers over the citation.
|
|
69
|
+
*/
|
|
70
|
+
let AtomicInsightGeneratedAnswer = AtomicInsightGeneratedAnswer_1 = class AtomicInsightGeneratedAnswer extends LitElement {
|
|
71
|
+
constructor() {
|
|
72
|
+
super();
|
|
73
|
+
this.DEFAULT_COLLAPSED_HEIGHT = 16;
|
|
74
|
+
this.MAX_COLLAPSED_HEIGHT = 32;
|
|
75
|
+
this.MIN_COLLAPSED_HEIGHT = 9;
|
|
76
|
+
this.REQUIRED_FIELDS_TO_INCLUDE_IN_CITATIONS = ['filetype'];
|
|
77
|
+
/**
|
|
78
|
+
* Whether to render a toggle button that lets the user hide or show the answer.
|
|
79
|
+
*/
|
|
80
|
+
this.withToggle = false;
|
|
81
|
+
/**
|
|
82
|
+
* Whether to allow the answer to be collapsed when the text is taller than the specified `--atomic-crga-collapsed-height` value (16rem by default).
|
|
83
|
+
*/
|
|
84
|
+
this.collapsible = false;
|
|
85
|
+
/**
|
|
86
|
+
* The maximum height (in rem units) of the answer when collapsed.
|
|
87
|
+
*/
|
|
88
|
+
this.maxCollapsedHeight = this.DEFAULT_COLLAPSED_HEIGHT;
|
|
89
|
+
/**
|
|
90
|
+
* Whether to disable citation anchoring.
|
|
91
|
+
*/
|
|
92
|
+
this.disableCitationAnchoring = false;
|
|
93
|
+
this.copied = false;
|
|
94
|
+
this.copyError = false;
|
|
95
|
+
this.ariaMessage = new AriaLiveRegionController(this, 'generated-answer');
|
|
96
|
+
// Used by bindStateToController decorator via onUpdateCallbackMethod option
|
|
97
|
+
this.onGeneratedAnswerStateUpdate = () => {
|
|
98
|
+
if (this.generatedAnswerState.isVisible !== this.controller.data.isVisible) {
|
|
99
|
+
this.controller.data = {
|
|
100
|
+
...this.controller.data,
|
|
101
|
+
isVisible: this.generatedAnswerState.isVisible,
|
|
102
|
+
};
|
|
103
|
+
this.controller.writeStoredData(this.controller.data);
|
|
104
|
+
}
|
|
105
|
+
this.ariaMessage.message = this.controller.getGeneratedAnswerStatus();
|
|
106
|
+
};
|
|
107
|
+
new ValidatePropsController(this, () => ({ maxCollapsedHeight: this.maxCollapsedHeight }), AtomicInsightGeneratedAnswer_1.propsSchema,
|
|
108
|
+
// TODO: V4: KIT-5197 - Remove skipValidation flag
|
|
109
|
+
false);
|
|
110
|
+
}
|
|
111
|
+
initialize() {
|
|
112
|
+
this.controller = new GeneratedAnswerController(this, {
|
|
113
|
+
withToggle: this.withToggle,
|
|
114
|
+
getGeneratedAnswer: () => this.generatedAnswer,
|
|
115
|
+
getGeneratedAnswerState: () => this.generatedAnswerState,
|
|
116
|
+
getSearchStatusState: () => this.searchStatusState,
|
|
117
|
+
getBindings: () => this.bindings,
|
|
118
|
+
});
|
|
119
|
+
this.generatedAnswer = buildInsightGeneratedAnswer(this.bindings.engine, {
|
|
120
|
+
initialState: {
|
|
121
|
+
isVisible: this.controller.data.isVisible,
|
|
122
|
+
responseFormat: {
|
|
123
|
+
contentFormat: ['text/markdown', 'text/plain'],
|
|
124
|
+
},
|
|
125
|
+
},
|
|
126
|
+
...(this.answerConfigurationId && {
|
|
127
|
+
answerConfigurationId: this.answerConfigurationId,
|
|
128
|
+
}),
|
|
129
|
+
fieldsToIncludeInCitations: this.getCitationFields(),
|
|
130
|
+
});
|
|
131
|
+
this.searchStatus = buildInsightSearchStatus(this.bindings.engine);
|
|
132
|
+
this.controller.insertFeedbackModal();
|
|
133
|
+
if (window.ResizeObserver && this.collapsible) {
|
|
134
|
+
const debouncedAdaptAnswerHeight = debounce(() => this.adaptAnswerHeight(), 100);
|
|
135
|
+
this.resizeObserver = new ResizeObserver(debouncedAdaptAnswerHeight);
|
|
136
|
+
this.resizeObserver.observe(this);
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
disconnectedCallback() {
|
|
140
|
+
super.disconnectedCallback();
|
|
141
|
+
this.resizeObserver?.disconnect();
|
|
142
|
+
}
|
|
143
|
+
willUpdate(changedProperties) {
|
|
144
|
+
if (changedProperties.has('generatedAnswerState')) {
|
|
145
|
+
const oldState = changedProperties.get('generatedAnswerState');
|
|
146
|
+
if (oldState &&
|
|
147
|
+
this.generatedAnswerState?.expanded !== oldState?.expanded) {
|
|
148
|
+
const container = this.getAnswerContainer();
|
|
149
|
+
if (container) {
|
|
150
|
+
this.toggleClass(container, 'answer-collapsed', !this.generatedAnswerState.expanded);
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
render() {
|
|
156
|
+
const contentClasses = 'mx-auto mt-0 mb-4 border border-neutral shadow-lg bg-background rounded-lg text-on-background';
|
|
157
|
+
if (this.hasNoAnswerGenerated) {
|
|
158
|
+
if (this.generatedAnswerState?.cannotAnswer &&
|
|
159
|
+
this.hasCustomNoAnswerMessage) {
|
|
160
|
+
return html `
|
|
161
|
+
<div>
|
|
162
|
+
<aside
|
|
163
|
+
class=${contentClasses}
|
|
164
|
+
part="container"
|
|
165
|
+
aria-label=${this.bindings.i18n.t('generated-answer-title')}
|
|
166
|
+
>
|
|
167
|
+
<div part="generated-content">
|
|
168
|
+
${this.renderCardHeaderWrapper()}
|
|
169
|
+
${when(this.isAnswerVisible, () => html `<article>${renderCustomNoAnswerMessage()}</article>`)}
|
|
170
|
+
</div>
|
|
171
|
+
</aside>
|
|
172
|
+
</div>
|
|
173
|
+
`;
|
|
174
|
+
}
|
|
175
|
+
return nothing;
|
|
176
|
+
}
|
|
177
|
+
return html `
|
|
178
|
+
<div>
|
|
179
|
+
<aside
|
|
180
|
+
class=${contentClasses}
|
|
181
|
+
part="container"
|
|
182
|
+
aria-label=${this.bindings.i18n.t('generated-answer-title')}
|
|
183
|
+
>
|
|
184
|
+
<div part="generated-content">
|
|
185
|
+
${this.renderCardHeaderWrapper()}
|
|
186
|
+
${when(this.isAnswerVisible, () => html ` <div part="generated-content-container" class="px-6 pb-6">
|
|
187
|
+
<article>${this.renderContent()}</article>
|
|
188
|
+
${renderDisclaimer({
|
|
189
|
+
props: {
|
|
190
|
+
i18n: this.bindings.i18n,
|
|
191
|
+
isStreaming: !!this.generatedAnswerState.isStreaming,
|
|
192
|
+
},
|
|
193
|
+
})}
|
|
194
|
+
</div>`)}
|
|
195
|
+
</div>
|
|
196
|
+
</aside>
|
|
197
|
+
</div>
|
|
198
|
+
`;
|
|
199
|
+
}
|
|
200
|
+
get hasNoAnswerGenerated() {
|
|
201
|
+
return this.controller.hasNoAnswerGenerated;
|
|
202
|
+
}
|
|
203
|
+
get isAnswerVisible() {
|
|
204
|
+
return this.controller.isAnswerVisible;
|
|
205
|
+
}
|
|
206
|
+
get toggleTooltip() {
|
|
207
|
+
return this.controller.getToggleTooltip();
|
|
208
|
+
}
|
|
209
|
+
get copyToClipboardTooltip() {
|
|
210
|
+
return this.controller.getCopyToClipboardTooltip(this.copied, this.copyError);
|
|
211
|
+
}
|
|
212
|
+
get hasCustomNoAnswerMessage() {
|
|
213
|
+
return getNamedSlotContent(this, 'no-answer-message').length > 0;
|
|
214
|
+
}
|
|
215
|
+
async copyToClipboard(answer) {
|
|
216
|
+
await this.controller.copyToClipboard(answer, () => {
|
|
217
|
+
this.copied = true;
|
|
218
|
+
setTimeout(() => {
|
|
219
|
+
this.copied = false;
|
|
220
|
+
}, 2000);
|
|
221
|
+
}, () => {
|
|
222
|
+
this.copyError = true;
|
|
223
|
+
setTimeout(() => {
|
|
224
|
+
this.copyError = false;
|
|
225
|
+
}, 2000);
|
|
226
|
+
});
|
|
227
|
+
}
|
|
228
|
+
clickOnShowButton() {
|
|
229
|
+
this.controller.clickOnShowButton();
|
|
230
|
+
}
|
|
231
|
+
getCitationFields() {
|
|
232
|
+
// Defensive: handle both string and array for backward compatibility
|
|
233
|
+
// TODO V4 (KIT-5306): remove string handling
|
|
234
|
+
let fields = [];
|
|
235
|
+
if (Array.isArray(this.fieldsToIncludeInCitations)) {
|
|
236
|
+
fields = this.fieldsToIncludeInCitations;
|
|
237
|
+
}
|
|
238
|
+
else if (typeof this.fieldsToIncludeInCitations === 'string') {
|
|
239
|
+
fields = this.fieldsToIncludeInCitations
|
|
240
|
+
.split(',')
|
|
241
|
+
.map((f) => f.trim())
|
|
242
|
+
.filter((f) => f.length > 0);
|
|
243
|
+
}
|
|
244
|
+
return fields.concat(this.REQUIRED_FIELDS_TO_INCLUDE_IN_CITATIONS);
|
|
245
|
+
}
|
|
246
|
+
validateMaxCollapsedHeight() {
|
|
247
|
+
const isValid = this.maxCollapsedHeight >= this.MIN_COLLAPSED_HEIGHT &&
|
|
248
|
+
this.maxCollapsedHeight <= this.MAX_COLLAPSED_HEIGHT;
|
|
249
|
+
if (!isValid) {
|
|
250
|
+
console.warn(`max-collapsed-height (${this.maxCollapsedHeight}rem) is out of the valid range (${this.MIN_COLLAPSED_HEIGHT}rem - ${this.MAX_COLLAPSED_HEIGHT}rem). Falling back to default value (${this.DEFAULT_COLLAPSED_HEIGHT}rem).`);
|
|
251
|
+
}
|
|
252
|
+
return isValid ? this.maxCollapsedHeight : this.DEFAULT_COLLAPSED_HEIGHT;
|
|
253
|
+
}
|
|
254
|
+
toggleClass(element, className, condition) {
|
|
255
|
+
element.classList.toggle(className, condition);
|
|
256
|
+
}
|
|
257
|
+
adaptAnswerHeight() {
|
|
258
|
+
const answerHeight = this.shadowRoot
|
|
259
|
+
?.querySelector('[part="generated-text"]')
|
|
260
|
+
?.getBoundingClientRect().height;
|
|
261
|
+
if (answerHeight) {
|
|
262
|
+
const rootFontSize = parseFloat(getComputedStyle(document.documentElement).fontSize);
|
|
263
|
+
this.fullAnswerHeight = answerHeight / rootFontSize;
|
|
264
|
+
this.updateAnswerHeight();
|
|
265
|
+
}
|
|
266
|
+
}
|
|
267
|
+
getAnswerContainer() {
|
|
268
|
+
return this.shadowRoot?.querySelector('[part="generated-container"]');
|
|
269
|
+
}
|
|
270
|
+
getAnswerFooter() {
|
|
271
|
+
return this.shadowRoot?.querySelector('[part="generated-answer-footer"]');
|
|
272
|
+
}
|
|
273
|
+
setCSSVariable(variableName, value) {
|
|
274
|
+
const container = this.getAnswerContainer();
|
|
275
|
+
if (container) {
|
|
276
|
+
container.style.setProperty(variableName, value);
|
|
277
|
+
}
|
|
278
|
+
}
|
|
279
|
+
updateAnswerHeight() {
|
|
280
|
+
const container = this.getAnswerContainer();
|
|
281
|
+
const footer = this.getAnswerFooter();
|
|
282
|
+
const maxHeight = this.validateMaxCollapsedHeight();
|
|
283
|
+
if (!container || !footer) {
|
|
284
|
+
return;
|
|
285
|
+
}
|
|
286
|
+
if (this.fullAnswerHeight > maxHeight) {
|
|
287
|
+
this.setCSSVariable('--atomic-crga-collapsed-height', `${maxHeight}rem`);
|
|
288
|
+
this.toggleClass(container, 'answer-collapsed', !this.generatedAnswerState.expanded);
|
|
289
|
+
this.toggleClass(footer, 'is-collapsible', true);
|
|
290
|
+
this.toggleClass(footer, 'generating-label-visible', this.generatedAnswerState.isStreaming);
|
|
291
|
+
}
|
|
292
|
+
else {
|
|
293
|
+
this.toggleClass(container, 'answer-collapsed', false);
|
|
294
|
+
this.toggleClass(footer, 'is-collapsible', false);
|
|
295
|
+
this.toggleClass(footer, 'generating-label-visible', false);
|
|
296
|
+
}
|
|
297
|
+
}
|
|
298
|
+
clickDislike() {
|
|
299
|
+
this.controller.clickDislike();
|
|
300
|
+
}
|
|
301
|
+
clickLike() {
|
|
302
|
+
this.controller.clickLike();
|
|
303
|
+
}
|
|
304
|
+
renderCitationsList() {
|
|
305
|
+
const { citations } = this.generatedAnswerState ?? {};
|
|
306
|
+
return renderCitations({
|
|
307
|
+
props: {
|
|
308
|
+
citations,
|
|
309
|
+
i18n: this.bindings.i18n,
|
|
310
|
+
buildInteractiveCitation: (citation) => buildInsightInteractiveCitation(this.bindings.engine, {
|
|
311
|
+
options: { citation },
|
|
312
|
+
}),
|
|
313
|
+
logCitationHover: (citationId, citationHoverTimeMs) => {
|
|
314
|
+
this.generatedAnswer?.logCitationHover(citationId, citationHoverTimeMs);
|
|
315
|
+
},
|
|
316
|
+
disableCitationAnchoring: this.disableCitationAnchoring,
|
|
317
|
+
},
|
|
318
|
+
});
|
|
319
|
+
}
|
|
320
|
+
renderFeedbackAndCopyButtonsWrapper() {
|
|
321
|
+
return renderFeedbackAndCopyButtons({
|
|
322
|
+
props: {
|
|
323
|
+
i18n: this.bindings.i18n,
|
|
324
|
+
generatedAnswerActionsState: {
|
|
325
|
+
liked: this.generatedAnswerState.liked,
|
|
326
|
+
disliked: this.generatedAnswerState.disliked,
|
|
327
|
+
isStreaming: this.generatedAnswerState.isStreaming,
|
|
328
|
+
isLoading: this.generatedAnswerState.isLoading,
|
|
329
|
+
answer: this.generatedAnswerState.answer,
|
|
330
|
+
},
|
|
331
|
+
copied: this.copied,
|
|
332
|
+
copyError: this.copyError,
|
|
333
|
+
getCopyToClipboardTooltip: () => this.copyToClipboardTooltip,
|
|
334
|
+
onClickLike: () => this.clickLike(),
|
|
335
|
+
onClickDislike: () => this.clickDislike(),
|
|
336
|
+
onCopyToClipboard: (answer) => this.copyToClipboard(answer),
|
|
337
|
+
},
|
|
338
|
+
});
|
|
339
|
+
}
|
|
340
|
+
renderContent() {
|
|
341
|
+
const generatedAnswer = {
|
|
342
|
+
...this.generatedAnswerState,
|
|
343
|
+
question: this.bindings.engine.state.query?.q ?? '',
|
|
344
|
+
};
|
|
345
|
+
return renderAnswerContent({
|
|
346
|
+
props: {
|
|
347
|
+
i18n: this.bindings.i18n,
|
|
348
|
+
generatedAnswer: generatedAnswer,
|
|
349
|
+
collapsible: this.collapsible,
|
|
350
|
+
renderFeedbackAndCopyButtonsSlot: () => this.renderFeedbackAndCopyButtonsWrapper(),
|
|
351
|
+
renderCitationsSlot: () => html `${this.renderCitationsList()}`,
|
|
352
|
+
onRetry: () => this.generatedAnswer?.retry(),
|
|
353
|
+
onClickShowButton: () => this.clickOnShowButton(),
|
|
354
|
+
},
|
|
355
|
+
});
|
|
356
|
+
}
|
|
357
|
+
renderCardHeaderWrapper() {
|
|
358
|
+
return renderCardHeader({
|
|
359
|
+
props: {
|
|
360
|
+
i18n: this.bindings.i18n,
|
|
361
|
+
isAnswerVisible: this.isAnswerVisible,
|
|
362
|
+
toggleTooltip: this.toggleTooltip,
|
|
363
|
+
withToggle: this.withToggle,
|
|
364
|
+
onToggle: (checked) => {
|
|
365
|
+
checked ? this.generatedAnswer?.show() : this.generatedAnswer?.hide();
|
|
366
|
+
},
|
|
367
|
+
},
|
|
368
|
+
});
|
|
369
|
+
}
|
|
370
|
+
};
|
|
371
|
+
AtomicInsightGeneratedAnswer.styles = [atomicInsightGeneratedAnswerStyles];
|
|
372
|
+
AtomicInsightGeneratedAnswer.propsSchema = new Schema({
|
|
373
|
+
maxCollapsedHeight: new NumberValue({
|
|
374
|
+
min: 9,
|
|
375
|
+
max: 32,
|
|
376
|
+
required: false,
|
|
377
|
+
}),
|
|
378
|
+
});
|
|
379
|
+
// TODO V4 (KIT-5306): Remove converter and use arrayConverter directly.
|
|
380
|
+
AtomicInsightGeneratedAnswer.fieldsToIncludeInCitationsConverter = createLegacyArrayStringConverter((value) => {
|
|
381
|
+
console.warn(`Starting from Atomic v4, the "fields-to-include-in-citations" property will only accept an array of strings. Using a comma-separated string value ("${value}") is now deprecated. Please update the value to be a JSON array. For example: fields-to-include-in-citations='["fieldA","fieldB"]'`);
|
|
382
|
+
});
|
|
383
|
+
__decorate([
|
|
384
|
+
property({
|
|
385
|
+
type: Boolean,
|
|
386
|
+
attribute: 'with-toggle',
|
|
387
|
+
converter: booleanConverter,
|
|
388
|
+
})
|
|
389
|
+
], AtomicInsightGeneratedAnswer.prototype, "withToggle", void 0);
|
|
390
|
+
__decorate([
|
|
391
|
+
property({ type: Boolean, converter: booleanConverter })
|
|
392
|
+
], AtomicInsightGeneratedAnswer.prototype, "collapsible", void 0);
|
|
393
|
+
__decorate([
|
|
394
|
+
property({ type: Number, attribute: 'max-collapsed-height' })
|
|
395
|
+
], AtomicInsightGeneratedAnswer.prototype, "maxCollapsedHeight", void 0);
|
|
396
|
+
__decorate([
|
|
397
|
+
property({ type: String, attribute: 'answer-configuration-id' })
|
|
398
|
+
], AtomicInsightGeneratedAnswer.prototype, "answerConfigurationId", void 0);
|
|
399
|
+
__decorate([
|
|
400
|
+
property({
|
|
401
|
+
type: String,
|
|
402
|
+
attribute: 'fields-to-include-in-citations',
|
|
403
|
+
converter: AtomicInsightGeneratedAnswer.fieldsToIncludeInCitationsConverter,
|
|
404
|
+
})
|
|
405
|
+
], AtomicInsightGeneratedAnswer.prototype, "fieldsToIncludeInCitations", void 0);
|
|
406
|
+
__decorate([
|
|
407
|
+
property({
|
|
408
|
+
type: Boolean,
|
|
409
|
+
attribute: 'disable-citation-anchoring',
|
|
410
|
+
converter: booleanConverter,
|
|
411
|
+
})
|
|
412
|
+
], AtomicInsightGeneratedAnswer.prototype, "disableCitationAnchoring", void 0);
|
|
413
|
+
__decorate([
|
|
414
|
+
state()
|
|
415
|
+
], AtomicInsightGeneratedAnswer.prototype, "bindings", void 0);
|
|
416
|
+
__decorate([
|
|
417
|
+
state()
|
|
418
|
+
], AtomicInsightGeneratedAnswer.prototype, "error", void 0);
|
|
419
|
+
__decorate([
|
|
420
|
+
bindStateToController('generatedAnswer', {
|
|
421
|
+
onUpdateCallbackMethod: 'onGeneratedAnswerStateUpdate',
|
|
422
|
+
}),
|
|
423
|
+
state()
|
|
424
|
+
], AtomicInsightGeneratedAnswer.prototype, "generatedAnswerState", void 0);
|
|
425
|
+
__decorate([
|
|
426
|
+
bindStateToController('searchStatus'),
|
|
427
|
+
state()
|
|
428
|
+
], AtomicInsightGeneratedAnswer.prototype, "searchStatusState", void 0);
|
|
429
|
+
__decorate([
|
|
430
|
+
state()
|
|
431
|
+
], AtomicInsightGeneratedAnswer.prototype, "copied", void 0);
|
|
432
|
+
__decorate([
|
|
433
|
+
state()
|
|
434
|
+
], AtomicInsightGeneratedAnswer.prototype, "copyError", void 0);
|
|
435
|
+
__decorate([
|
|
436
|
+
bindingGuard(),
|
|
437
|
+
errorGuard()
|
|
438
|
+
], AtomicInsightGeneratedAnswer.prototype, "render", null);
|
|
439
|
+
AtomicInsightGeneratedAnswer = AtomicInsightGeneratedAnswer_1 = __decorate([
|
|
440
|
+
customElement('atomic-insight-generated-answer'),
|
|
441
|
+
bindings(),
|
|
442
|
+
withTailwindStyles
|
|
443
|
+
], AtomicInsightGeneratedAnswer);
|
|
444
|
+
export { AtomicInsightGeneratedAnswer };
|
|
@@ -0,0 +1,169 @@
|
|
|
1
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
+
};
|
|
7
|
+
import { loadInsightAnalyticsActions, } from '@coveo/headless/insight';
|
|
8
|
+
import { css, LitElement } from 'lit';
|
|
9
|
+
import { customElement, property, state } from 'lit/decorators.js';
|
|
10
|
+
import { renderIconButton } from "../../common/icon-button";
|
|
11
|
+
import { ItemContextController } from "../../common/item-list/context/item-context-controller";
|
|
12
|
+
import { bindingGuard } from "../../../decorators/binding-guard";
|
|
13
|
+
import { bindings } from "../../../decorators/bindings";
|
|
14
|
+
import { errorGuard } from "../../../decorators/error-guard";
|
|
15
|
+
import { LightDomMixin } from "../../../mixins/light-dom";
|
|
16
|
+
const AttachIcon = "<svg width=\"26\" height=\"26\" viewBox=\"0 0 26 26\" xmlns=\"http://www.w3.org/2000/svg\">\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M8.8125 18.3125C9.1125 18.6125 9.5625 18.5625 9.8625 18.3125L14.8625 13.3125C15.2125 12.9625 15.8125 12.9125 16.2625 13.3125C16.7125 13.7125 16.6625 14.4125 16.2625 14.8125L10.1125 20.8625C8.7625 22.2125 6.5125 22.2125 5.1625 20.8625L5.1125 20.8125C3.7625 19.4625 3.7625 17.2125 5.1125 15.8625L15.9625 5.0125C17.3125 3.6625 19.5625 3.6625 20.9125 5.0125L20.9625 5.0625C22.3125 6.4125 22.3125 8.6625 20.9625 10.0125L20.9125 10.0625C20.6625 10.3125 20.6125 10.6625 20.8125 10.9625C21.1125 11.5125 21.3625 12.1125 21.5125 12.7125C21.6125 13.1125 22.0625 13.2125 22.3625 12.9625C22.7625 12.5625 23.1125 12.1625 23.1125 12.1625C25.6625 9.6125 25.6625 5.4625 23.1125 2.9125H23.0125C20.4625 0.3625 16.3125 0.3625 13.7625 2.9125L2.9125 13.7125C0.3625 16.2625 0.3625 20.4125 2.9125 22.9625L3.0125 23.0625C5.5625 25.6125 9.6625 25.6125 12.2125 23.0625L18.4125 16.9125C20.0125 15.3125 19.9625 12.7125 18.3125 11.1125C16.7125 9.5625 14.1125 9.6625 12.5625 11.2625L7.6625 16.1625C7.3625 16.4625 7.3625 16.9625 7.6625 17.2625L8.8125 18.3125Z\"/>\n</svg>\n";
|
|
17
|
+
const CopyIcon = "<svg width=\"26\" height=\"26\" viewBox=\"0 0 26 26\" xmlns=\"http://www.w3.org/2000/svg\">\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M22 1H9C7.9 1 7 1.9 7 3V4H19C20.1 4 21 4.9 21 6V20H22C23.1 20 24 19.1 24 18V3C24 1.9 23.1 1 22 1ZM19 8C19 6.9 18.1 6 17 6H4C2.9 6 2 6.9 2 8V23C2 24.1 2.9 25 4 25H17C18.1 25 19 24.1 19 23V8ZM10 11.5C10 11.8 9.8 12 9.5 12H5.5C5.2 12 5 11.8 5 11.5V10.5C5 10.2 5.2 10 5.5 10H9.5C9.8 10 10 10.2 10 10.5V11.5ZM14 19.5C14 19.8 13.8 20 13.5 20H5.5C5.2 20 5 19.8 5 19.5V18.5C5 18.2 5.2 18 5.5 18H13.5C13.8 18 14 18.2 14 18.5V19.5ZM16 15.5C16 15.8 15.8 16 15.5 16H5.5C5.2 16 5 15.8 5 15.5V14.5C5 14.2 5.2 14 5.5 14H15.5C15.8 14 16 14.2 16 14.5V15.5Z\"/>\n</svg>\n";
|
|
18
|
+
const EmailIcon = "<svg width=\"26\" height=\"26\" viewBox=\"0 0 26 26\" xmlns=\"http://www.w3.org/2000/svg\">\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M12.4735 15.55C12.7735 15.85 13.2235 15.85 13.5235 15.55L24.8235 5.05C25.0235 4.65 24.9735 4 24.1735 4L1.82347 4.05C1.22347 4.05 0.723467 4.6 1.17347 5.1L12.4735 15.55ZM25.0235 9.15C25.0235 8.65 24.4235 8.35 24.0235 8.7L15.1735 16.85C14.5735 17.4 13.8235 17.7 13.0235 17.7C12.2235 17.7 11.4735 17.4 10.8735 16.9L2.07347 8.7C1.67347 8.35 1.07347 8.6 1.07347 9.15C1.02347 9 1.02347 20.5 1.02347 20.5C1.02347 21.6 1.92347 22.5 3.02347 22.5H23.0235C24.1235 22.5 25.0235 21.6 25.0235 20.5V9.15Z\"/>\n</svg>\n";
|
|
19
|
+
const QuickviewIcon = "<svg width=\"27\" height=\"26\" viewBox=\"0 0 27 26\" xmlns=\"http://www.w3.org/2000/svg\">\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M25.9125 13.05C23.5625 8.3 18.6625 5 13.0125 5C7.3625 5 2.4625 8.3 0.1125 13.05C-0.0375 13.35 -0.0375 13.7 0.1125 13.95C2.4625 18.7 7.3625 22 13.0125 22C18.6625 22 23.5625 18.7 25.9125 13.95C26.0625 13.65 26.0625 13.35 25.9125 13.05ZM13.0125 19C9.9625 19 7.5125 16.55 7.5125 13.5C7.5125 10.45 9.9625 8 13.0125 8C16.0625 8 18.5125 10.45 18.5125 13.5C18.5125 16.55 16.0625 19 13.0125 19ZM13.0125 10C11.0625 10 9.5125 11.55 9.5125 13.5C9.5125 15.45 11.0625 17 13.0125 17C14.9625 17 16.5125 15.45 16.5125 13.5C16.5125 11.55 14.9625 10 13.0125 10Z\"/>\n</svg>\n";
|
|
20
|
+
const FeedIcon = "<svg width=\"26\" height=\"26\" viewBox=\"0 0 26 26\" xmlns=\"http://www.w3.org/2000/svg\">\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M13 2C6.35 2 1 6.9 1 13C1 14.95 1.55 16.75 2.5 18.4C2.6 18.6 2.65 18.85 2.6 19.05L1.5 22.5C1.3 23.15 1.9 23.7 2.55 23.5L6.05 22.3C6.3 22.2 6.55 22.25 6.75 22.4C8.6 23.45 10.75 24.05 13.05 24.05C19.7 24.05 25.05 19.15 25.05 13.05C24.9 6.9 19.55 2 13 2V2Z\"/>\n</svg>\n";
|
|
21
|
+
export var Actions;
|
|
22
|
+
(function (Actions) {
|
|
23
|
+
Actions["CopyToClipboard"] = "copyToClipboard";
|
|
24
|
+
Actions["AttachToCase"] = "attachToCase";
|
|
25
|
+
Actions["Quickview"] = "quickview";
|
|
26
|
+
Actions["PostToFeed"] = "postToFeed";
|
|
27
|
+
Actions["SendAsEmail"] = "sendAsEmail";
|
|
28
|
+
})(Actions || (Actions = {}));
|
|
29
|
+
/**
|
|
30
|
+
* The `atomic-insight-result-action` component renders an interactive action button for insight results.
|
|
31
|
+
*
|
|
32
|
+
* @part result-action-container - The result action container
|
|
33
|
+
* @part result-action-button - The result action button
|
|
34
|
+
* @part result-action-icon - The result action icon
|
|
35
|
+
* @event atomicInsightResultActionClicked - Fired when the action button is clicked. The event detail contains the action type and the result object.
|
|
36
|
+
*/
|
|
37
|
+
let AtomicInsightResultAction = class AtomicInsightResultAction extends LightDomMixin(LitElement) {
|
|
38
|
+
constructor() {
|
|
39
|
+
super();
|
|
40
|
+
/**
|
|
41
|
+
* The result action icon to display.
|
|
42
|
+
*/
|
|
43
|
+
this.icon = '';
|
|
44
|
+
/**
|
|
45
|
+
* The text tooltip to show on the result action icon.
|
|
46
|
+
*/
|
|
47
|
+
this.tooltip = '';
|
|
48
|
+
/**
|
|
49
|
+
* The text tooltip to show on the result action icon for some time after clicking the button.
|
|
50
|
+
*/
|
|
51
|
+
this.tooltipOnClick = '';
|
|
52
|
+
/**
|
|
53
|
+
* The type of action to perform when the result action is clicked.
|
|
54
|
+
* This will be sent along the event fired when the button is clicked.
|
|
55
|
+
*/
|
|
56
|
+
this.action = '';
|
|
57
|
+
this.currentTooltip = '';
|
|
58
|
+
this.itemContextController = new ItemContextController(this, {
|
|
59
|
+
parentName: 'atomic-insight-result',
|
|
60
|
+
folded: false,
|
|
61
|
+
});
|
|
62
|
+
}
|
|
63
|
+
disconnectedCallback() {
|
|
64
|
+
super.disconnectedCallback();
|
|
65
|
+
clearTimeout(this.tooltipResetTimeout);
|
|
66
|
+
}
|
|
67
|
+
get result() {
|
|
68
|
+
return this.itemContextController.item;
|
|
69
|
+
}
|
|
70
|
+
initialize() {
|
|
71
|
+
this.actions = loadInsightAnalyticsActions(this.bindings.engine);
|
|
72
|
+
this.currentTooltip = this.tooltip;
|
|
73
|
+
}
|
|
74
|
+
onClick() {
|
|
75
|
+
if (!this.result) {
|
|
76
|
+
return;
|
|
77
|
+
}
|
|
78
|
+
if (this.tooltipOnClick) {
|
|
79
|
+
const originalTooltip = this.tooltip;
|
|
80
|
+
this.currentTooltip = this.tooltipOnClick;
|
|
81
|
+
clearTimeout(this.tooltipResetTimeout);
|
|
82
|
+
this.tooltipResetTimeout = setTimeout(() => {
|
|
83
|
+
this.currentTooltip = originalTooltip;
|
|
84
|
+
}, 1000);
|
|
85
|
+
}
|
|
86
|
+
switch (this.action) {
|
|
87
|
+
case Actions.CopyToClipboard:
|
|
88
|
+
this.bindings.engine.dispatch(this.actions.logCopyToClipboard(this.result));
|
|
89
|
+
navigator.clipboard.writeText(this.result.clickUri);
|
|
90
|
+
break;
|
|
91
|
+
case Actions.PostToFeed:
|
|
92
|
+
this.bindings.engine.dispatch(this.actions.logFeedItemTextPost(this.result));
|
|
93
|
+
break;
|
|
94
|
+
case Actions.SendAsEmail:
|
|
95
|
+
this.bindings.engine.dispatch(this.actions.logCaseSendEmail(this.result));
|
|
96
|
+
break;
|
|
97
|
+
}
|
|
98
|
+
this.dispatchEvent(new CustomEvent('atomicInsightResultActionClicked', {
|
|
99
|
+
bubbles: true,
|
|
100
|
+
composed: true,
|
|
101
|
+
cancelable: true,
|
|
102
|
+
detail: { action: this.action, result: this.result },
|
|
103
|
+
}));
|
|
104
|
+
}
|
|
105
|
+
getIcon() {
|
|
106
|
+
if (this.icon) {
|
|
107
|
+
return this.icon;
|
|
108
|
+
}
|
|
109
|
+
switch (this.action) {
|
|
110
|
+
case Actions.CopyToClipboard:
|
|
111
|
+
return CopyIcon;
|
|
112
|
+
case Actions.AttachToCase:
|
|
113
|
+
return AttachIcon;
|
|
114
|
+
case Actions.Quickview:
|
|
115
|
+
return QuickviewIcon;
|
|
116
|
+
case Actions.PostToFeed:
|
|
117
|
+
return FeedIcon;
|
|
118
|
+
case Actions.SendAsEmail:
|
|
119
|
+
return EmailIcon;
|
|
120
|
+
default:
|
|
121
|
+
return QuickviewIcon;
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
render() {
|
|
125
|
+
if (!this.result) {
|
|
126
|
+
return null;
|
|
127
|
+
}
|
|
128
|
+
return renderIconButton({
|
|
129
|
+
props: {
|
|
130
|
+
partPrefix: 'result-action',
|
|
131
|
+
style: 'outline-neutral',
|
|
132
|
+
icon: this.getIcon(),
|
|
133
|
+
title: this.currentTooltip,
|
|
134
|
+
onClick: () => this.onClick(),
|
|
135
|
+
},
|
|
136
|
+
});
|
|
137
|
+
}
|
|
138
|
+
};
|
|
139
|
+
AtomicInsightResultAction.styles = css`/*! tailwindcss v4.1.13 | MIT License | https://tailwindcss.com */[part=result-action-button]{align-items:center;display:flex;height:calc(var(--spacing, .25rem)*8);justify-content:center;width:calc(var(--spacing, .25rem)*8)}`;
|
|
140
|
+
__decorate([
|
|
141
|
+
property({ type: String })
|
|
142
|
+
], AtomicInsightResultAction.prototype, "icon", void 0);
|
|
143
|
+
__decorate([
|
|
144
|
+
property({ type: String })
|
|
145
|
+
], AtomicInsightResultAction.prototype, "tooltip", void 0);
|
|
146
|
+
__decorate([
|
|
147
|
+
property({ type: String, attribute: 'tooltip-on-click' })
|
|
148
|
+
], AtomicInsightResultAction.prototype, "tooltipOnClick", void 0);
|
|
149
|
+
__decorate([
|
|
150
|
+
property({ type: String })
|
|
151
|
+
], AtomicInsightResultAction.prototype, "action", void 0);
|
|
152
|
+
__decorate([
|
|
153
|
+
state()
|
|
154
|
+
], AtomicInsightResultAction.prototype, "bindings", void 0);
|
|
155
|
+
__decorate([
|
|
156
|
+
state()
|
|
157
|
+
], AtomicInsightResultAction.prototype, "error", void 0);
|
|
158
|
+
__decorate([
|
|
159
|
+
state()
|
|
160
|
+
], AtomicInsightResultAction.prototype, "currentTooltip", void 0);
|
|
161
|
+
__decorate([
|
|
162
|
+
errorGuard(),
|
|
163
|
+
bindingGuard()
|
|
164
|
+
], AtomicInsightResultAction.prototype, "render", null);
|
|
165
|
+
AtomicInsightResultAction = __decorate([
|
|
166
|
+
customElement('atomic-insight-result-action'),
|
|
167
|
+
bindings()
|
|
168
|
+
], AtomicInsightResultAction);
|
|
169
|
+
export { AtomicInsightResultAction };
|