@coveo/atomic 3.33.2-pre.f51bdbb034 → 3.33.3-pre.cff620d97c
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/atomic/_atomic.esm.js +1 -1
- package/dist/atomic/atomic.esm.js.map +1 -1
- package/dist/atomic/components/_index.d.ts +0 -2
- package/dist/atomic/components/_index.js +0 -1
- package/dist/atomic/components/analytics-config.js +1 -1
- package/dist/atomic/components/atomic-citation.js +1 -1
- package/dist/atomic/components/atomic-citation.js.map +1 -1
- package/dist/atomic/components/atomic-generated-answer-feedback-modal.js +1 -1
- package/dist/atomic/components/atomic-generated-answer-feedback-modal.js.map +1 -1
- package/dist/atomic/components/atomic-insight-interface.js +1 -1
- package/dist/atomic/components/atomic-insight-interface.js.map +1 -1
- package/dist/atomic/components/atomic-insight-result2.js +1 -1
- package/dist/atomic/components/atomic-insight-result2.js.map +1 -1
- package/dist/atomic/components/atomic-insight-user-actions-timeline2.js.map +1 -1
- package/dist/atomic/components/atomic-insight-user-actions-toggle.js +1 -1
- package/dist/atomic/components/atomic-insight-user-actions-toggle.js.map +1 -1
- package/dist/atomic/components/atomic-recs-result2.js +1 -1
- package/dist/atomic/components/atomic-recs-result2.js.map +1 -1
- package/dist/atomic/components/atomic-result-placeholder2.js +1 -1
- package/dist/atomic/components/atomic-result-placeholder2.js.map +1 -1
- package/dist/atomic/components/atomic-result2.js +1 -1
- package/dist/atomic/components/atomic-result2.js.map +1 -1
- package/dist/atomic/components/atomic-search-interface.js +10 -4
- package/dist/atomic/components/atomic-search-interface.js.map +1 -1
- package/dist/atomic/components/components/commerce/atomic-commerce-facets/atomic-commerce-facets.js +28 -20
- package/dist/atomic/components/components/commerce/atomic-commerce-interface/atomic-commerce-interface.js +2 -2
- package/dist/atomic/components/components/commerce/atomic-commerce-interface/store.js +1 -1
- package/dist/atomic/components/components/commerce/atomic-commerce-layout/atomic-commerce-layout.js +3 -3
- package/dist/atomic/components/components/commerce/atomic-commerce-recommendation-interface/atomic-commerce-recommendation-interface.js +2 -2
- package/dist/atomic/components/components/commerce/atomic-commerce-recommendation-list/atomic-commerce-recommendation-list.js +5 -1
- package/dist/atomic/components/components/commerce/atomic-commerce-recommendation-list/atomic-commerce-recommendation-list.tw.css.js +1 -1
- package/dist/atomic/components/components/commerce/atomic-commerce-text/atomic-commerce-text.js +0 -1
- package/dist/atomic/components/components/commerce/atomic-product/atomic-product.tw.css.js +1 -1
- package/dist/atomic/components/components/commerce/atomic-product-section-bottom-metadata/atomic-product-section-bottom-metadata.js +3 -2
- package/dist/atomic/components/components/common/expandable-text/expandable-text.js +1 -1
- package/dist/atomic/components/components/search/atomic-search-interface/store.js +1 -1
- package/dist/atomic/components/components/search/atomic-search-layout/atomic-search-layout.js +51 -0
- package/dist/atomic/components/components/search/atomic-search-layout/atomic-search-layout.tw.css.js +3 -0
- package/dist/atomic/components/components/search/index.js +1 -0
- package/dist/atomic/components/components/search/lazy-index.js +1 -0
- package/dist/atomic/components/global/environment.js +1 -1
- package/dist/atomic/components/index.js.map +1 -1
- package/dist/atomic/{p-7afe3a70.entry.js → p-1a79c944.entry.js} +2 -2
- package/dist/atomic/p-1a79c944.entry.js.map +1 -0
- package/dist/atomic/{p-78458586.js → p-29bdbb4d.js} +2 -2
- package/dist/atomic/p-3a3f7783.entry.js +2 -0
- package/dist/atomic/{p-6261d85c.entry.js.map → p-3a3f7783.entry.js.map} +1 -1
- package/dist/atomic/{p-818e220e.entry.js → p-576fb6c6.entry.js} +2 -2
- package/dist/atomic/p-576fb6c6.entry.js.map +1 -0
- package/dist/atomic/p-6fcd89e5.entry.js +2 -0
- package/dist/atomic/{p-0205d427.entry.js.map → p-6fcd89e5.entry.js.map} +1 -1
- package/dist/atomic/{p-ea14f6a0.entry.js → p-84befe35.entry.js} +2 -2
- package/dist/atomic/{p-ea14f6a0.entry.js.map → p-84befe35.entry.js.map} +1 -1
- package/dist/atomic/p-8677b56e.entry.js +2 -0
- package/dist/atomic/{p-d98e9a7f.entry.js.map → p-8677b56e.entry.js.map} +1 -1
- package/dist/atomic/{p-b8b7f6e5.entry.js → p-9f9758c1.entry.js} +2 -2
- package/dist/atomic/p-a7dcf131.entry.js.map +1 -1
- package/dist/atomic/{p-12ec5c82.entry.js → p-b7f38541.entry.js} +2 -2
- package/dist/atomic/p-b7f38541.entry.js.map +1 -0
- package/dist/atomic/p-bed0de44.entry.js +2 -0
- package/dist/atomic/{p-2dce0152.entry.js.map → p-bed0de44.entry.js.map} +1 -1
- package/dist/atomic/p-d09f2444.entry.js +2 -0
- package/dist/atomic/p-d09f2444.entry.js.map +1 -0
- package/dist/cjs/_loader.cjs.js +1 -1
- package/dist/cjs/{analytics-config-42dcd26e.js → analytics-config-17aea442.js} +2 -2
- package/dist/cjs/{analytics-config-42dcd26e.js.map → analytics-config-17aea442.js.map} +1 -1
- package/dist/cjs/atomic-citation.cjs.entry.js +1 -1
- package/dist/cjs/atomic-citation.cjs.entry.js.map +1 -1
- package/dist/cjs/atomic-generated-answer-feedback-modal.cjs.entry.js +1 -1
- package/dist/cjs/atomic-generated-answer-feedback-modal.cjs.entry.js.map +1 -1
- package/dist/cjs/atomic-insight-interface.cjs.entry.js +2 -2
- package/dist/cjs/atomic-insight-interface.cjs.entry.js.map +1 -1
- package/dist/cjs/atomic-insight-result.cjs.entry.js +1 -1
- package/dist/cjs/atomic-insight-result.cjs.entry.js.map +1 -1
- package/dist/cjs/atomic-insight-user-actions-session_2.cjs.entry.js.map +1 -1
- package/dist/cjs/atomic-insight-user-actions-toggle.cjs.entry.js +1 -1
- package/dist/cjs/atomic-insight-user-actions-toggle.cjs.entry.js.map +1 -1
- package/dist/cjs/atomic-recs-interface.cjs.entry.js +1 -1
- package/dist/cjs/atomic-recs-result.cjs.entry.js +1 -1
- package/dist/cjs/atomic-recs-result.cjs.entry.js.map +1 -1
- package/dist/cjs/atomic-result-placeholder_8.cjs.entry.js +1 -1
- package/dist/cjs/atomic-result-placeholder_8.cjs.entry.js.map +1 -1
- package/dist/cjs/atomic-result.cjs.entry.js +1 -1
- package/dist/cjs/atomic-result.cjs.entry.js.map +1 -1
- package/dist/cjs/atomic-search-interface.cjs.entry.js +15 -10
- package/dist/cjs/atomic-search-interface.cjs.entry.js.map +1 -1
- package/dist/cjs/atomic.cjs.js +1 -1
- package/dist/cjs/index-757bc886.js +0 -4
- package/dist/cjs/version.cjs.js +2 -2
- package/dist/esm/_loader.js +1 -1
- package/dist/esm/{analytics-config-9448df80.js → analytics-config-a1017210.js} +2 -2
- package/dist/esm/{analytics-config-9448df80.js.map → analytics-config-a1017210.js.map} +1 -1
- package/dist/esm/atomic-citation.entry.js +1 -1
- package/dist/esm/atomic-citation.entry.js.map +1 -1
- package/dist/esm/atomic-generated-answer-feedback-modal.entry.js +1 -1
- package/dist/esm/atomic-generated-answer-feedback-modal.entry.js.map +1 -1
- package/dist/esm/atomic-insight-interface.entry.js +2 -2
- package/dist/esm/atomic-insight-interface.entry.js.map +1 -1
- package/dist/esm/atomic-insight-result.entry.js +1 -1
- package/dist/esm/atomic-insight-result.entry.js.map +1 -1
- package/dist/esm/atomic-insight-user-actions-session_2.entry.js.map +1 -1
- package/dist/esm/atomic-insight-user-actions-toggle.entry.js +1 -1
- package/dist/esm/atomic-insight-user-actions-toggle.entry.js.map +1 -1
- package/dist/esm/atomic-recs-interface.entry.js +1 -1
- package/dist/esm/atomic-recs-result.entry.js +1 -1
- package/dist/esm/atomic-recs-result.entry.js.map +1 -1
- package/dist/esm/atomic-result-placeholder_8.entry.js +1 -1
- package/dist/esm/atomic-result-placeholder_8.entry.js.map +1 -1
- package/dist/esm/atomic-result.entry.js +1 -1
- package/dist/esm/atomic-result.entry.js.map +1 -1
- package/dist/esm/atomic-search-interface.entry.js +11 -6
- package/dist/esm/atomic-search-interface.entry.js.map +1 -1
- package/dist/esm/atomic.js +1 -1
- package/dist/esm/index-3f35faca.js +0 -4
- package/dist/esm/version.js +2 -2
- package/dist/types/components/commerce/atomic-commerce-facets/atomic-commerce-facets.d.ts +5 -2
- package/dist/types/components/commerce/atomic-commerce-layout/atomic-commerce-layout.d.ts +3 -3
- package/dist/types/components/commerce/atomic-commerce-recommendation-list/atomic-commerce-recommendation-list.d.ts +5 -1
- package/dist/types/components/commerce/atomic-commerce-text/atomic-commerce-text.d.ts +0 -1
- package/dist/types/components/common/generated-answer/atomic-citation/atomic-citation.d.ts +1 -1
- package/dist/types/components/common/generated-answer/atomic-generated-answer-feedback/atomic-generated-answer-feedback-modal.d.ts +1 -1
- package/dist/types/components/insight/atomic-insight-interface/atomic-insight-interface.d.ts +0 -3
- package/dist/types/components/insight/user-actions/atomic-insight-user-actions-timeline/atomic-insight-user-actions-timeline.d.ts +2 -1
- package/dist/types/components/insight/user-actions/atomic-insight-user-actions-toggle/atomic-insight-user-actions-toggle.d.ts +1 -1
- package/dist/types/components/search/atomic-search-layout/atomic-search-layout.d.ts +26 -0
- package/dist/types/components/search/atomic-search-layout/atomic-search-layout.tw.css.d.ts +2 -0
- package/dist/types/components/search/index.d.ts +1 -0
- package/dist/types/components.d.ts +56 -33
- package/docs/atomic-docs.json +1055 -210
- package/package.json +10 -14
- package/dist/atomic/components/atomic-search-layout.d.ts +0 -11
- package/dist/atomic/components/atomic-search-layout.js +0 -65
- package/dist/atomic/components/atomic-search-layout.js.map +0 -1
- package/dist/atomic/components/search-layout.js +0 -100
- package/dist/atomic/components/search-layout.js.map +0 -1
- package/dist/atomic/p-0205d427.entry.js +0 -2
- package/dist/atomic/p-02916ea5.entry.js +0 -2
- package/dist/atomic/p-02916ea5.entry.js.map +0 -1
- package/dist/atomic/p-12ec5c82.entry.js.map +0 -1
- package/dist/atomic/p-2dce0152.entry.js +0 -2
- package/dist/atomic/p-6261d85c.entry.js +0 -2
- package/dist/atomic/p-6f3476f7.entry.js +0 -2
- package/dist/atomic/p-6f3476f7.entry.js.map +0 -1
- package/dist/atomic/p-7afe3a70.entry.js.map +0 -1
- package/dist/atomic/p-818e220e.entry.js.map +0 -1
- package/dist/atomic/p-85ef2ce8.js +0 -2
- package/dist/atomic/p-85ef2ce8.js.map +0 -1
- package/dist/atomic/p-d98e9a7f.entry.js +0 -2
- package/dist/cjs/atomic-search-layout.cjs.entry.js +0 -57
- package/dist/cjs/atomic-search-layout.cjs.entry.js.map +0 -1
- package/dist/cjs/search-layout-b597f6fc.js +0 -106
- package/dist/cjs/search-layout-b597f6fc.js.map +0 -1
- package/dist/esm/atomic-search-layout.entry.js +0 -53
- package/dist/esm/atomic-search-layout.entry.js.map +0 -1
- package/dist/esm/search-layout-fdd7a917.js +0 -100
- package/dist/esm/search-layout-fdd7a917.js.map +0 -1
- package/dist/types/components/search/atomic-layout/atomic-search-layout.d.ts +0 -16
- /package/dist/atomic/components/components/search/{atomic-layout → atomic-search-layout}/search-layout.js +0 -0
- /package/dist/atomic/{p-78458586.js.map → p-29bdbb4d.js.map} +0 -0
- /package/dist/atomic/{p-b8b7f6e5.entry.js.map → p-9f9758c1.entry.js.map} +0 -0
- /package/dist/types/components/search/{atomic-layout → atomic-search-layout}/search-layout.d.ts +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"file":"atomic-insight-result.entry.js","mappings":";;;;;;;;;;;;AAAA,MAAM,sBAAsB,GAAG,
|
|
1
|
+
{"file":"atomic-insight-result.entry.js","mappings":";;;;;;;;;;;;AAAA,MAAM,sBAAsB,GAAG,2i8MAA2i8M,CAAC;AAC3k8M,kCAAe,sBAAsB;;MC0BxB,mBAAmB;;;;;;QAkCtB,YAAO,GAAuB,QAAQ,CAAC;;;;;;QAOvC,cAAS,GAAyB,MAAM,CAAC;;;;QAKzC,YAAO,GAAG,EAAE,CAAC;;;;;;uBAZiB,QAAQ;yBAOJ,MAAM;uBAK9B,EAAE;;;IAQb,aAAa,CAClB,KAA4D;QAE5D,KAAK,CAAC,cAAc,EAAE,CAAC;QACvB,KAAK,CAAC,eAAe,EAAE,CAAC;QACxB,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;KAC3B;IAGM,wBAAwB,CAAC,KAAkC;QAChE,KAAK,CAAC,cAAc,EAAE,CAAC;QACvB,KAAK,CAAC,eAAe,EAAE,CAAC;QACxB,IAAI,IAAI,CAAC,iBAAiB,EAAE;YAC1B,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;SACtC;KACF;IAGM,sBAAsB,CAAC,KAAkB;QAC9C,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;KACpC;IAGM,0BAA0B,CAAC,KAAsC;QACtE,KAAK,CAAC,cAAc,EAAE,CAAC;QACvB,KAAK,CAAC,eAAe,EAAE,CAAC;QACxB,KAAK,CAAC,MAAM,CAAC;YACX,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,SAAS,EAAE,IAAI,CAAC,SAAU;SAC3B,CAAC,CAAC;KACJ;IAEM,iBAAiB;QACtB,IAAI,CAAC,MAAM,GAAG,IAAI,UAAU,CAC1B,IAAI,CAAC,OAAQ,CAAC,QAAQ,EACtB,MAAM,EACN,IAAI,CAAC,OAAO,EACZ,IAAI,CAAC,SAAS,CACf,CAAC;KACH;IAEO,cAAc;QACpB,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,OAAQ,CAAC,QAAQ,CAAC;aACtC,GAAG,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,SAAS,CAAC;aAC/B,IAAI,CAAC,EAAE,CAAC,CAAC;KACb;IAEM,MAAM;QACX,QACE,EAAC,IAAI,qDAAC,KAAK,EAAE,oBAAoB,IAE/B,4DACE,KAAK,EAAE,eAAe,IAAI,CAAC,MAAM;iBAC9B,UAAU,EAAE;iBACZ,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC;iBACpB,IAAI,CAAC,GAAG,CAAC,EAAE,EACd,SAAS,EAAE,IAAI,CAAC,cAAc,EAAE,GAC3B,CACF,EACP;KACH;IAEM,gBAAgB;QACrB,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,KAAK,EAAE;YAClC,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;SAC/C;KACF;;;;;;;","names":[],"sources":["src/components/insight/atomic-insight-result/atomic-insight-result.pcss?tag=atomic-insight-result&encapsulation=shadow","src/components/insight/atomic-insight-result/atomic-insight-result.tsx"],"sourcesContent":["@import '../../common/template-system/template-system.pcss';\n\n:host {\n @apply atomic-template-system;\n @apply relative;\n\n .with-sections:not(.child-result) {\n padding-top: var(--atomic-layout-spacing-y);\n padding-bottom: var(--atomic-layout-spacing-y);\n padding-right: var(--atomic-layout-spacing-x);\n padding-left: var(--atomic-layout-spacing-x);\n }\n}\n\n:host(:hover) {\n .with-sections {\n @apply bg-neutral-lighter;\n }\n atomic-insight-result-action-bar {\n @apply visible;\n }\n}\n\n:host(:first-of-type) {\n .with-sections:not(.child-result) {\n @apply pt-8;\n }\n atomic-insight-result-action-bar {\n @apply top-0;\n }\n}\n","import {\n Result as InsightResult,\n InteractiveResult as InsightInteractiveResult,\n FoldedResult as InsightFoldedResult,\n} from '@coveo/headless/insight';\nimport {Component, h, Prop, Element, Listen, Host} from '@stencil/core';\nimport {\n DisplayConfig,\n InteractiveItemContextEvent,\n ItemContextEvent,\n} from '../../common/item-list/stencil-item-decorators';\nimport {resultComponentClass} from '../../common/item-list/stencil-item-list-common';\nimport {\n ItemLayout,\n ItemDisplayDensity,\n ItemDisplayImageSize,\n} from '../../common/layout/display-options';\nimport {InsightStore} from '../atomic-insight-interface/store';\n\n/**\n * @internal\n */\n@Component({\n tag: 'atomic-insight-result',\n styleUrl: 'atomic-insight-result.pcss',\n shadow: true,\n})\nexport class AtomicInsightResult {\n private layout!: ItemLayout;\n @Element() host!: HTMLElement;\n\n /**\n * Whether an atomic-result-link inside atomic-insight-result should stop click event propagation.\n */\n @Prop() stopPropagation?: boolean;\n\n /**\n * The result item.\n */\n @Prop() result!: InsightResult | InsightFoldedResult;\n\n /**\n * The InteractiveResult item.\n * @internal\n */\n @Prop() interactiveResult!: InsightInteractiveResult;\n\n /**\n * Global Atomic state.\n * @internal\n */\n @Prop() store?: InsightStore;\n\n /**\n * The result content to display.\n */\n @Prop() content?: ParentNode;\n\n /**\n * How large or small results should be.\n */\n @Prop() density: ItemDisplayDensity = 'normal';\n\n /**\n * The size of the visual section in result list items.\n *\n * This is overwritten by the image size defined in the result content, if it exists.\n */\n @Prop() imageSize: ItemDisplayImageSize = 'icon';\n\n /**\n * The classes to add to the result element.\n */\n @Prop() classes = '';\n\n /**\n * @internal\n */\n @Prop() loadingFlag?: string;\n\n @Listen('atomic/resolveResult')\n public resolveResult(\n event: ItemContextEvent<InsightFoldedResult | InsightResult>\n ) {\n event.preventDefault();\n event.stopPropagation();\n event.detail(this.result);\n }\n\n @Listen('atomic/resolveInteractiveResult')\n public resolveInteractiveResult(event: InteractiveItemContextEvent) {\n event.preventDefault();\n event.stopPropagation();\n if (this.interactiveResult) {\n event.detail(this.interactiveResult);\n }\n }\n\n @Listen('atomic/resolveStopPropagation')\n public resolveStopPropagation(event: CustomEvent) {\n event.detail(this.stopPropagation);\n }\n\n @Listen('atomic/resolveResultDisplayConfig')\n public resolveResultDisplayConfig(event: ItemContextEvent<DisplayConfig>) {\n event.preventDefault();\n event.stopPropagation();\n event.detail({\n density: this.density,\n imageSize: this.imageSize!,\n });\n }\n\n public connectedCallback() {\n this.layout = new ItemLayout(\n this.content!.children,\n 'list',\n this.density,\n this.imageSize\n );\n }\n\n private getContentHTML() {\n return Array.from(this.content!.children)\n .map((child) => child.outerHTML)\n .join('');\n }\n\n public render() {\n return (\n <Host class={resultComponentClass}>\n {/* deepcode ignore ReactSetInnerHtml: This is not React code */}\n <div\n class={`result-root ${this.layout\n .getClasses()\n .concat(this.classes)\n .join(' ')}`}\n innerHTML={this.getContentHTML()}\n ></div>\n </Host>\n );\n }\n\n public componentDidLoad() {\n if (this.loadingFlag && this.store) {\n this.store.unsetLoadingFlag(this.loadingFlag);\n }\n }\n}\n"],"version":3}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"file":"atomic-insight-user-actions-session.atomic-insight-user-actions-timeline.entry.js","mappings":"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","names":["__decorate","buildInsightUserActions"],"sources":["src/components/insight/user-actions/atomic-insight-user-actions-session/user-action.tsx","src/components/insight/user-actions/atomic-insight-user-actions-session/atomic-insight-user-actions-session.pcss?tag=atomic-insight-user-actions-session&encapsulation=shadow","src/components/insight/user-actions/atomic-insight-user-actions-session/atomic-insight-user-actions-session.tsx","src/components/insight/user-actions/atomic-insight-user-actions-timeline/atomic-insight-user-actions-timeline.pcss?tag=atomic-insight-user-actions-timeline&encapsulation=shadow","src/components/insight/user-actions/atomic-insight-user-actions-timeline/atomic-insight-user-actions-timeline.tsx"],"sourcesContent":["import {UserAction as IUserAction} from '@coveo/headless/insight';\nimport {FunctionalComponent, h} from '@stencil/core';\nimport BookmarkIcon from '../../../../images/bookmark.svg';\nimport DocumentIcon from '../../../../images/document.svg';\nimport PointIcon from '../../../../images/point.svg';\nimport QuickviewIcon from '../../../../images/quickview.svg';\nimport SearchIcon from '../../../../images/search.svg';\nimport {parseTimestampToDateDetails} from '../../../../utils/date-utils';\nimport {InsightBindings} from '../../atomic-insight-interface/atomic-insight-interface';\n\nconst icons = {\n SEARCH: SearchIcon,\n CLICK: DocumentIcon,\n VIEW: QuickviewIcon,\n CUSTOM: PointIcon,\n TICKET_CREATION: BookmarkIcon,\n};\n\ninterface UserAction {\n action: IUserAction;\n bindings: InsightBindings;\n}\n\nexport const UserAction: FunctionalComponent<UserAction> = ({\n bindings,\n action,\n}) => {\n const renderActionTimestamp = () => {\n const {hours, minutes} = parseTimestampToDateDetails(action.timestamp);\n\n const formattedHours = String(hours).padStart(2, '0');\n const formattedMinutes = String(minutes).padStart(2, '0');\n\n return `${formattedHours}:${formattedMinutes}`;\n };\n\n const renderIcon = () => {\n const iconClasses = `w-3 h-3 ${['CLICK', 'VIEW'].includes(action.actionType) ? 'text-primary' : ''}`;\n\n return (\n <atomic-icon\n icon={icons[action.actionType]}\n class={iconClasses}\n ></atomic-icon>\n );\n };\n\n const renderActionTitle = () => {\n switch (action.actionType) {\n case 'TICKET_CREATION':\n return (\n <div class=\"ticket-creation-action__text text-xs font-semibold\">\n {bindings.i18n.t('ticket-created')}\n </div>\n );\n case 'CUSTOM':\n return (\n <div class=\"text-xs font-semibold\">\n {action.eventData?.value ?? action.eventData?.type}\n </div>\n );\n case 'SEARCH':\n return (\n <div class=\"text-xs font-semibold\">\n {action.query || bindings.i18n.t('empty-search')}\n </div>\n );\n case 'VIEW':\n return (\n <a\n href={action.document?.contentIdValue}\n class=\"text-primary text-xs font-semibold\"\n target=\"_blank\"\n >\n {action.document?.title}\n </a>\n );\n case 'CLICK':\n return (\n <div class=\"text-xs font-semibold\">{action.document?.title}</div>\n );\n default:\n return null;\n }\n };\n\n return (\n <div class=\"flex\">\n <div class=\"flex-none pr-2\">\n <div class=\"flex justify-center py-1\">{renderIcon()}</div>\n <div class=\"flex justify-center py-1\">\n <div class=\"user-action__separator h-7 w-0.5 rounded\"></div>\n </div>\n </div>\n <div class=\"flex-1\">\n {renderActionTitle()}\n <div class=\"text-neutral-dark text-xxs flex py-2 font-light\">\n <div>{renderActionTimestamp()}</div>\n <div class=\"px-2\">{action.searchHub}</div>\n </div>\n </div>\n </div>\n );\n};\n","@import '../../../../global/global.pcss';\n\n.session-start-icon__container {\n background-color: #fbb439;\n}\n\n.user-action__separator {\n @apply bg-neutral;\n}\n\n.ticket-creation-action__text {\n @apply text-success;\n}\n\n.text-xxs {\n font-size: 0.625rem;\n}\n","import {UserAction as IUserAction} from '@coveo/headless/insight';\nimport {Component, h, Prop, Watch, State} from '@stencil/core';\nimport Flag from '../../../../images/flag.svg';\nimport ThreeDotsIcon from '../../../../images/three-dots.svg';\nimport {parseTimestampToDateDetails} from '../../../../utils/date-utils';\nimport {InitializeBindings} from '../../../../utils/initialization-utils';\nimport {Button} from '../../../common/stencil-button';\nimport {InsightBindings} from '../../atomic-insight-interface/atomic-insight-interface';\nimport {UserAction} from './user-action';\n\nexport type UserActionType =\n | 'SEARCH'\n | 'CLICK'\n | 'TICKET_CREATION'\n | 'VIEW'\n | 'CUSTOM';\n\n/**\n * @internal\n * The `AtomicInsightUserActionSession` component displays all the user actions that took place during a specific user session.\n * @category Insight Panel\n * @example\n * <atomic-insight-user-actions-session userActions={actions} startTimestamp={1723035731}></atomic-insight-user-actions-session>\n */\n@Component({\n tag: 'atomic-insight-user-actions-session',\n styleUrl: 'atomic-insight-user-actions-session.pcss',\n shadow: true,\n})\nexport class AtomicInsightUserActionsSession {\n @InitializeBindings() public bindings!: InsightBindings;\n @State() public error!: Error;\n\n /**\n * The start time of the session as a Unix timestamp.\n */\n @Prop() public startTimestamp!: number;\n /**\n * The list of user actions performed during the session.\n */\n @Prop() public userActions!: Array<IUserAction>;\n\n private userActionsToDisplay: Array<IUserAction> = [];\n private userActionsAfterCaseCreation: Array<IUserAction> = [];\n @State() areActionsAfterCaseCreationVisible = false;\n\n connectedCallback() {\n this.prepareUserActionsToDisplay();\n }\n\n @Watch('userActions')\n prepareUserActionsToDisplay() {\n const caseCreationIndex = this.userActions.findIndex(\n ({actionType}) => actionType === 'TICKET_CREATION'\n );\n const isCaseCreationSession = caseCreationIndex !== -1;\n\n if (!isCaseCreationSession) {\n this.userActionsToDisplay = this.userActions;\n this.userActionsAfterCaseCreation = [];\n } else {\n this.userActionsToDisplay = this.userActions.slice(caseCreationIndex);\n this.userActionsAfterCaseCreation = this.userActions.slice(\n 0,\n caseCreationIndex\n );\n }\n }\n\n showActionsAfterCaseCreation() {\n this.areActionsAfterCaseCreationVisible = true;\n }\n\n renderSessionStartDate() {\n const caseCreationIndex = this.userActions.findIndex(\n ({actionType}) => actionType === 'TICKET_CREATION'\n );\n const isCaseCreationSession = caseCreationIndex !== -1;\n\n const {year, month, dayOfWeek, day} = parseTimestampToDateDetails(\n this.startTimestamp\n );\n\n const formatedStartDate = `${dayOfWeek}. ${month} ${day}, ${year}`;\n return (\n <div class=\"flex items-center px-2 pb-3\">\n {isCaseCreationSession ? (\n <div class=\"session-start-icon__container mr-2 flex h-5 w-5 items-center justify-center rounded-full\">\n <atomic-icon icon={Flag} class=\"h-3 w-3\"></atomic-icon>\n </div>\n ) : null}\n\n <div class=\"flex-1 font-semibold\">{formatedStartDate}</div>\n </div>\n );\n }\n\n renderActions(actions: Array<IUserAction>) {\n return (\n <ol class=\"px-3\">\n {actions?.map((action) => (\n <UserAction action={action} bindings={this.bindings}></UserAction>\n ))}\n </ol>\n );\n }\n\n renderShowMoreActionsButton() {\n const btnClasses = 'flex items-center p-1 max-w-full';\n const label = this.bindings.i18n.t('more-actions-in-session', {\n count: this.userActionsAfterCaseCreation.length,\n });\n return (\n <div\n data-testid=\"show-more-actions-button\"\n class=\"flex items-center px-3 pb-3\"\n >\n <div class=\"flex justify-center pr-2\">\n <atomic-icon icon={ThreeDotsIcon} class=\"h-3 w-3\"></atomic-icon>\n </div>\n <div class=\"flex-1\">\n <Button\n style=\"text-primary\"\n part=\"show-more-actions-button\"\n class={btnClasses}\n ariaLabel={label}\n onClick={this.showActionsAfterCaseCreation.bind(this)}\n >\n <span class=\"truncate text-xs font-light\">{label}</span>\n </Button>\n </div>\n </div>\n );\n }\n\n public render() {\n const isShowMoreActionsButtonVisible =\n !this.areActionsAfterCaseCreationVisible &&\n !!this.userActionsAfterCaseCreation.length;\n\n return (\n <div>\n {this.renderSessionStartDate()}\n\n {this.areActionsAfterCaseCreationVisible && (\n <div data-testid=\"more-actions-section\">\n {this.renderActions(this.userActionsAfterCaseCreation)}\n </div>\n )}\n\n {isShowMoreActionsButtonVisible && this.renderShowMoreActionsButton()}\n\n {this.renderActions(this.userActionsToDisplay)}\n </div>\n );\n }\n}\n","@import '../../../../global/global.pcss';\n\n.separator {\n height: 1px;\n background-color: #e0e1dd;\n}\n","import {\n buildUserActions as buildInsightUserActions,\n UserActions as InsightUserActions,\n UserActionsState as InsightUserActionsState,\n UserSession as InsightUserSession,\n} from '@coveo/headless/insight';\nimport {Component, h, State, Prop} from '@stencil/core';\nimport ArrowDownIcon from '../../../../images/big-arrow-down.svg';\nimport ArrowUpIcon from '../../../../images/big-arrow-up.svg';\nimport {\n InitializableComponent,\n InitializeBindings,\n BindStateToController,\n} from '../../../../utils/initialization-utils';\nimport {NoItemsContainer} from '../../../common/no-items/stencil-container';\nimport {MagnifyingGlass} from '../../../common/no-items/stencil-magnifying-glass';\nimport {Button} from '../../../common/stencil-button';\nimport {InsightBindings} from '../../atomic-insight-interface/atomic-insight-interface';\n\n/**\n * @internal\n * This component displays all the actions performed by a user around the time they created a case.\n * The actions are grouped into multiple sessions, including the session during which the case was created,\n * the sessions preceding the case creation and the sessions following the case creation.\n *\n * @component\n * @example\n * <AtomicInsightUserActionsTimeline userId={'123'} caseCreationDate={'2024-08-15T10:00:00Z'} />\n *\n */\n@Component({\n tag: 'atomic-insight-user-actions-timeline',\n styleUrl: 'atomic-insight-user-actions-timeline.pcss',\n shadow: true,\n})\nexport class AtomicInsightUserActionsTimeline\n implements InitializableComponent<InsightBindings>\n{\n @InitializeBindings() public bindings!: InsightBindings;\n public userActions!: InsightUserActions;\n\n @BindStateToController('userActions')\n @State()\n public userActionsState!: InsightUserActionsState;\n public error!: Error;\n\n /**\n * The ID of the user whose actions are being displayed. For example in email format \"someone@company.com\".\n */\n @Prop() public userId!: string;\n /**\n * The date and time when the case was created. For example \"2024-01-01T00:00:00Z\"\n */\n @Prop() public ticketCreationDateTime!: string;\n /**\n * The names of custom events to exclude.\n */\n @Prop() public excludedCustomActions: string[] = [];\n\n public initialize() {\n this.userActions = buildInsightUserActions(this.bindings.engine, {\n options: {\n ticketCreationDate: this.ticketCreationDateTime,\n excludedCustomActions: this.excludedCustomActions,\n },\n });\n\n this.userActions.fetchUserActions(this.userId);\n }\n\n @State() followingSessionsAreVisible = false;\n @State() precedingSessionsAreVisible = false;\n\n private toggleFollowingSessions() {\n this.followingSessionsAreVisible = !this.followingSessionsAreVisible;\n }\n\n private togglePrecedingSessions() {\n this.precedingSessionsAreVisible = !this.precedingSessionsAreVisible;\n }\n\n private renderSessions(\n sessions: Array<InsightUserSession> | undefined,\n renderSeparator?: Function,\n testId?: string\n ) {\n return (\n <div>\n {sessions?.map(({actions, start}) => [\n <div class=\"mt-4\">\n <atomic-insight-user-actions-session\n startTimestamp={start}\n userActions={actions}\n data-testid={testId}\n ></atomic-insight-user-actions-session>\n </div>,\n renderSeparator ? renderSeparator() : null,\n ])}\n </div>\n );\n }\n\n private renderToggleFollowingSessionsButton() {\n const btnClasses = 'flex items-center text-left p-2 text-sm max-w-full';\n const iconClasses = 'h-3 w-3 mr-1';\n const label = this.followingSessionsAreVisible\n ? this.bindings.i18n.t('hide-following-sessions')\n : this.bindings.i18n.t('show-following-sessions');\n const icon = this.followingSessionsAreVisible ? ArrowDownIcon : ArrowUpIcon;\n\n return (\n <div class=\"flex justify-center p-2\">\n <Button\n style=\"text-primary\"\n part=\"toggle-following-sessions\"\n class={btnClasses}\n ariaLabel={label}\n onClick={this.toggleFollowingSessions.bind(this)}\n >\n <atomic-icon\n part=\"toggle-following-sessions-icon\"\n class={iconClasses}\n icon={icon}\n ></atomic-icon>\n <span class=\"truncate\">{label}</span>\n </Button>\n </div>\n );\n }\n\n private renderTogglePrecedingSessionsButton() {\n const btnClasses = 'flex items-center text-left p-2 text-sm max-w-full';\n const iconClasses = 'h-3 w-3 mr-1';\n const label = this.precedingSessionsAreVisible\n ? this.bindings.i18n.t('hide-preceding-sessions')\n : this.bindings.i18n.t('show-preceding-sessions');\n const icon = this.precedingSessionsAreVisible ? ArrowUpIcon : ArrowDownIcon;\n\n return (\n <div class=\"flex justify-center p-2\">\n <Button\n style=\"text-primary\"\n part=\"toggle-preceding-sessions\"\n class={btnClasses}\n ariaLabel={label}\n onClick={this.togglePrecedingSessions.bind(this)}\n >\n <atomic-icon\n part=\"toggle-preceding-sessions-icon\"\n class={iconClasses}\n icon={icon}\n ></atomic-icon>\n <span class=\"truncate\">{label}</span>\n </Button>\n </div>\n );\n }\n\n private renderFollowingSessionsSection() {\n if (!this.userActionsState.timeline?.followingSessions?.length) {\n return null;\n }\n return [\n this.renderToggleFollowingSessionsButton(),\n <div class=\"separator mx-1 rounded\"></div>,\n this.followingSessionsAreVisible\n ? this.renderSessions(\n this.userActionsState.timeline?.followingSessions,\n () => <div class=\"separator mx-1 mt-4 rounded\"></div>,\n 'following-session'\n )\n : null,\n ];\n }\n\n private renderPrecedingSessionsSection() {\n if (!this.userActionsState.timeline?.precedingSessions?.length) {\n return null;\n }\n return [\n <div class=\"separator mx-1 mt-4 rounded\"></div>,\n this.precedingSessionsAreVisible\n ? this.renderSessions(\n this.userActionsState.timeline?.precedingSessions,\n () => <div class=\"separator mx-1 mt-4 rounded\"></div>,\n 'preceding-session'\n )\n : null,\n this.renderTogglePrecedingSessionsButton(),\n ];\n }\n\n private renderTimeline() {\n return (\n <div>\n {this.renderFollowingSessionsSection()}\n <div class=\"mt-4\">\n <atomic-insight-user-actions-session\n // eslint-disable-next-line @typescript-eslint/no-non-null-asserted-optional-chain\n startTimestamp={this.userActionsState.timeline?.session?.start!}\n // eslint-disable-next-line @typescript-eslint/no-non-null-asserted-optional-chain\n userActions={this.userActionsState?.timeline?.session?.actions!}\n data-testid=\"active-session\"\n ></atomic-insight-user-actions-session>\n </div>\n {this.renderPrecedingSessionsSection()}\n </div>\n );\n }\n\n private renderNoUserActionsScreen() {\n return (\n <div class=\"my-6 py-3\" data-testid=\"user-actions-error\">\n <NoItemsContainer>\n <MagnifyingGlass />\n <div class=\"my-2 max-w-full text-center text-2xl font-light\">\n {this.bindings.i18n.t('no-user-actions-available')}\n </div>\n <div class=\"text-neutral-dark my-2 text-center text-lg\">\n {this.bindings.i18n.t('no-user-actions-associated-with-params')}\n </div>\n </NoItemsContainer>\n </div>\n );\n }\n\n render() {\n const areUserActionsAvailable = this.userActionsState.timeline?.session;\n const hasError = this.userActionsState.error;\n\n if (areUserActionsAvailable && !hasError) {\n return this.renderTimeline();\n }\n return this.renderNoUserActionsScreen();\n }\n}\n"],"version":3}
|
|
1
|
+
{"file":"atomic-insight-user-actions-session.atomic-insight-user-actions-timeline.entry.js","mappings":"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","names":["__decorate","buildInsightUserActions"],"sources":["src/components/insight/user-actions/atomic-insight-user-actions-session/user-action.tsx","src/components/insight/user-actions/atomic-insight-user-actions-session/atomic-insight-user-actions-session.pcss?tag=atomic-insight-user-actions-session&encapsulation=shadow","src/components/insight/user-actions/atomic-insight-user-actions-session/atomic-insight-user-actions-session.tsx","src/components/insight/user-actions/atomic-insight-user-actions-timeline/atomic-insight-user-actions-timeline.pcss?tag=atomic-insight-user-actions-timeline&encapsulation=shadow","src/components/insight/user-actions/atomic-insight-user-actions-timeline/atomic-insight-user-actions-timeline.tsx"],"sourcesContent":["import {UserAction as IUserAction} from '@coveo/headless/insight';\nimport {FunctionalComponent, h} from '@stencil/core';\nimport BookmarkIcon from '../../../../images/bookmark.svg';\nimport DocumentIcon from '../../../../images/document.svg';\nimport PointIcon from '../../../../images/point.svg';\nimport QuickviewIcon from '../../../../images/quickview.svg';\nimport SearchIcon from '../../../../images/search.svg';\nimport {parseTimestampToDateDetails} from '../../../../utils/date-utils';\nimport {InsightBindings} from '../../atomic-insight-interface/atomic-insight-interface';\n\nconst icons = {\n SEARCH: SearchIcon,\n CLICK: DocumentIcon,\n VIEW: QuickviewIcon,\n CUSTOM: PointIcon,\n TICKET_CREATION: BookmarkIcon,\n};\n\ninterface UserAction {\n action: IUserAction;\n bindings: InsightBindings;\n}\n\nexport const UserAction: FunctionalComponent<UserAction> = ({\n bindings,\n action,\n}) => {\n const renderActionTimestamp = () => {\n const {hours, minutes} = parseTimestampToDateDetails(action.timestamp);\n\n const formattedHours = String(hours).padStart(2, '0');\n const formattedMinutes = String(minutes).padStart(2, '0');\n\n return `${formattedHours}:${formattedMinutes}`;\n };\n\n const renderIcon = () => {\n const iconClasses = `w-3 h-3 ${['CLICK', 'VIEW'].includes(action.actionType) ? 'text-primary' : ''}`;\n\n return (\n <atomic-icon\n icon={icons[action.actionType]}\n class={iconClasses}\n ></atomic-icon>\n );\n };\n\n const renderActionTitle = () => {\n switch (action.actionType) {\n case 'TICKET_CREATION':\n return (\n <div class=\"ticket-creation-action__text text-xs font-semibold\">\n {bindings.i18n.t('ticket-created')}\n </div>\n );\n case 'CUSTOM':\n return (\n <div class=\"text-xs font-semibold\">\n {action.eventData?.value ?? action.eventData?.type}\n </div>\n );\n case 'SEARCH':\n return (\n <div class=\"text-xs font-semibold\">\n {action.query || bindings.i18n.t('empty-search')}\n </div>\n );\n case 'VIEW':\n return (\n <a\n href={action.document?.contentIdValue}\n class=\"text-primary text-xs font-semibold\"\n target=\"_blank\"\n >\n {action.document?.title}\n </a>\n );\n case 'CLICK':\n return (\n <div class=\"text-xs font-semibold\">{action.document?.title}</div>\n );\n default:\n return null;\n }\n };\n\n return (\n <div class=\"flex\">\n <div class=\"flex-none pr-2\">\n <div class=\"flex justify-center py-1\">{renderIcon()}</div>\n <div class=\"flex justify-center py-1\">\n <div class=\"user-action__separator h-7 w-0.5 rounded\"></div>\n </div>\n </div>\n <div class=\"flex-1\">\n {renderActionTitle()}\n <div class=\"text-neutral-dark text-xxs flex py-2 font-light\">\n <div>{renderActionTimestamp()}</div>\n <div class=\"px-2\">{action.searchHub}</div>\n </div>\n </div>\n </div>\n );\n};\n","@import '../../../../global/global.pcss';\n\n.session-start-icon__container {\n background-color: #fbb439;\n}\n\n.user-action__separator {\n @apply bg-neutral;\n}\n\n.ticket-creation-action__text {\n @apply text-success;\n}\n\n.text-xxs {\n font-size: 0.625rem;\n}\n","import {UserAction as IUserAction} from '@coveo/headless/insight';\nimport {Component, h, Prop, Watch, State} from '@stencil/core';\nimport Flag from '../../../../images/flag.svg';\nimport ThreeDotsIcon from '../../../../images/three-dots.svg';\nimport {parseTimestampToDateDetails} from '../../../../utils/date-utils';\nimport {InitializeBindings} from '../../../../utils/initialization-utils';\nimport {Button} from '../../../common/stencil-button';\nimport {InsightBindings} from '../../atomic-insight-interface/atomic-insight-interface';\nimport {UserAction} from './user-action';\n\nexport type UserActionType =\n | 'SEARCH'\n | 'CLICK'\n | 'TICKET_CREATION'\n | 'VIEW'\n | 'CUSTOM';\n\n/**\n * @internal\n * The `AtomicInsightUserActionSession` component displays all the user actions that took place during a specific user session.\n * @category Insight Panel\n * @example\n * <atomic-insight-user-actions-session userActions={actions} startTimestamp={1723035731}></atomic-insight-user-actions-session>\n */\n@Component({\n tag: 'atomic-insight-user-actions-session',\n styleUrl: 'atomic-insight-user-actions-session.pcss',\n shadow: true,\n})\nexport class AtomicInsightUserActionsSession {\n @InitializeBindings() public bindings!: InsightBindings;\n @State() public error!: Error;\n\n /**\n * The start time of the session as a Unix timestamp.\n */\n @Prop() public startTimestamp!: number;\n /**\n * The list of user actions performed during the session.\n */\n @Prop() public userActions!: Array<IUserAction>;\n\n private userActionsToDisplay: Array<IUserAction> = [];\n private userActionsAfterCaseCreation: Array<IUserAction> = [];\n @State() areActionsAfterCaseCreationVisible = false;\n\n connectedCallback() {\n this.prepareUserActionsToDisplay();\n }\n\n @Watch('userActions')\n prepareUserActionsToDisplay() {\n const caseCreationIndex = this.userActions.findIndex(\n ({actionType}) => actionType === 'TICKET_CREATION'\n );\n const isCaseCreationSession = caseCreationIndex !== -1;\n\n if (!isCaseCreationSession) {\n this.userActionsToDisplay = this.userActions;\n this.userActionsAfterCaseCreation = [];\n } else {\n this.userActionsToDisplay = this.userActions.slice(caseCreationIndex);\n this.userActionsAfterCaseCreation = this.userActions.slice(\n 0,\n caseCreationIndex\n );\n }\n }\n\n showActionsAfterCaseCreation() {\n this.areActionsAfterCaseCreationVisible = true;\n }\n\n renderSessionStartDate() {\n const caseCreationIndex = this.userActions.findIndex(\n ({actionType}) => actionType === 'TICKET_CREATION'\n );\n const isCaseCreationSession = caseCreationIndex !== -1;\n\n const {year, month, dayOfWeek, day} = parseTimestampToDateDetails(\n this.startTimestamp\n );\n\n const formatedStartDate = `${dayOfWeek}. ${month} ${day}, ${year}`;\n return (\n <div class=\"flex items-center px-2 pb-3\">\n {isCaseCreationSession ? (\n <div class=\"session-start-icon__container mr-2 flex h-5 w-5 items-center justify-center rounded-full\">\n <atomic-icon icon={Flag} class=\"h-3 w-3\"></atomic-icon>\n </div>\n ) : null}\n\n <div class=\"flex-1 font-semibold\">{formatedStartDate}</div>\n </div>\n );\n }\n\n renderActions(actions: Array<IUserAction>) {\n return (\n <ol class=\"px-3\">\n {actions?.map((action) => (\n <UserAction action={action} bindings={this.bindings}></UserAction>\n ))}\n </ol>\n );\n }\n\n renderShowMoreActionsButton() {\n const btnClasses = 'flex items-center p-1 max-w-full';\n const label = this.bindings.i18n.t('more-actions-in-session', {\n count: this.userActionsAfterCaseCreation.length,\n });\n return (\n <div\n data-testid=\"show-more-actions-button\"\n class=\"flex items-center px-3 pb-3\"\n >\n <div class=\"flex justify-center pr-2\">\n <atomic-icon icon={ThreeDotsIcon} class=\"h-3 w-3\"></atomic-icon>\n </div>\n <div class=\"flex-1\">\n <Button\n style=\"text-primary\"\n part=\"show-more-actions-button\"\n class={btnClasses}\n ariaLabel={label}\n onClick={this.showActionsAfterCaseCreation.bind(this)}\n >\n <span class=\"truncate text-xs font-light\">{label}</span>\n </Button>\n </div>\n </div>\n );\n }\n\n public render() {\n const isShowMoreActionsButtonVisible =\n !this.areActionsAfterCaseCreationVisible &&\n !!this.userActionsAfterCaseCreation.length;\n\n return (\n <div>\n {this.renderSessionStartDate()}\n\n {this.areActionsAfterCaseCreationVisible && (\n <div data-testid=\"more-actions-section\">\n {this.renderActions(this.userActionsAfterCaseCreation)}\n </div>\n )}\n\n {isShowMoreActionsButtonVisible && this.renderShowMoreActionsButton()}\n\n {this.renderActions(this.userActionsToDisplay)}\n </div>\n );\n }\n}\n","@import '../../../../global/global.pcss';\n\n.separator {\n height: 1px;\n background-color: #e0e1dd;\n}\n","import {\n buildUserActions as buildInsightUserActions,\n UserActions as InsightUserActions,\n UserActionsState as InsightUserActionsState,\n UserSession as InsightUserSession,\n} from '@coveo/headless/insight';\nimport {Component, h, State, Prop} from '@stencil/core';\nimport ArrowDownIcon from '../../../../images/big-arrow-down.svg';\nimport ArrowUpIcon from '../../../../images/big-arrow-up.svg';\nimport {\n InitializableComponent,\n InitializeBindings,\n BindStateToController,\n} from '../../../../utils/initialization-utils';\nimport {NoItemsContainer} from '../../../common/no-items/stencil-container';\nimport {MagnifyingGlass} from '../../../common/no-items/stencil-magnifying-glass';\nimport {Button} from '../../../common/stencil-button';\nimport {InsightBindings} from '../../atomic-insight-interface/atomic-insight-interface';\n\n/**\n * Internal component used by the `atomic-insight-user-actions-modal`. Do not use directly.\n * \n * This component displays all the actions performed by a user around the time they created a case.\n * The actions are grouped into multiple sessions, including the session during which the case was created,\n * the sessions preceding the case creation and the sessions following the case creation.\n *\n * @component\n * @example\n * <AtomicInsightUserActionsTimeline userId={'123'} caseCreationDate={'2024-08-15T10:00:00Z'} />\n *\n */\n@Component({\n tag: 'atomic-insight-user-actions-timeline',\n styleUrl: 'atomic-insight-user-actions-timeline.pcss',\n shadow: true,\n})\nexport class AtomicInsightUserActionsTimeline\n implements InitializableComponent<InsightBindings>\n{\n @InitializeBindings() public bindings!: InsightBindings;\n public userActions!: InsightUserActions;\n\n @BindStateToController('userActions')\n @State()\n public userActionsState!: InsightUserActionsState;\n public error!: Error;\n\n /**\n * The ID of the user whose actions are being displayed. For example in email format \"someone@company.com\".\n */\n @Prop() public userId!: string;\n /**\n * The date and time when the case was created. For example \"2024-01-01T00:00:00Z\"\n */\n @Prop() public ticketCreationDateTime!: string;\n /**\n * The names of custom events to exclude.\n */\n @Prop() public excludedCustomActions: string[] = [];\n\n public initialize() {\n this.userActions = buildInsightUserActions(this.bindings.engine, {\n options: {\n ticketCreationDate: this.ticketCreationDateTime,\n excludedCustomActions: this.excludedCustomActions,\n },\n });\n\n this.userActions.fetchUserActions(this.userId);\n }\n\n @State() followingSessionsAreVisible = false;\n @State() precedingSessionsAreVisible = false;\n\n private toggleFollowingSessions() {\n this.followingSessionsAreVisible = !this.followingSessionsAreVisible;\n }\n\n private togglePrecedingSessions() {\n this.precedingSessionsAreVisible = !this.precedingSessionsAreVisible;\n }\n\n private renderSessions(\n sessions: Array<InsightUserSession> | undefined,\n renderSeparator?: Function,\n testId?: string\n ) {\n return (\n <div>\n {sessions?.map(({actions, start}) => [\n <div class=\"mt-4\">\n <atomic-insight-user-actions-session\n startTimestamp={start}\n userActions={actions}\n data-testid={testId}\n ></atomic-insight-user-actions-session>\n </div>,\n renderSeparator ? renderSeparator() : null,\n ])}\n </div>\n );\n }\n\n private renderToggleFollowingSessionsButton() {\n const btnClasses = 'flex items-center text-left p-2 text-sm max-w-full';\n const iconClasses = 'h-3 w-3 mr-1';\n const label = this.followingSessionsAreVisible\n ? this.bindings.i18n.t('hide-following-sessions')\n : this.bindings.i18n.t('show-following-sessions');\n const icon = this.followingSessionsAreVisible ? ArrowDownIcon : ArrowUpIcon;\n\n return (\n <div class=\"flex justify-center p-2\">\n <Button\n style=\"text-primary\"\n part=\"toggle-following-sessions\"\n class={btnClasses}\n ariaLabel={label}\n onClick={this.toggleFollowingSessions.bind(this)}\n >\n <atomic-icon\n part=\"toggle-following-sessions-icon\"\n class={iconClasses}\n icon={icon}\n ></atomic-icon>\n <span class=\"truncate\">{label}</span>\n </Button>\n </div>\n );\n }\n\n private renderTogglePrecedingSessionsButton() {\n const btnClasses = 'flex items-center text-left p-2 text-sm max-w-full';\n const iconClasses = 'h-3 w-3 mr-1';\n const label = this.precedingSessionsAreVisible\n ? this.bindings.i18n.t('hide-preceding-sessions')\n : this.bindings.i18n.t('show-preceding-sessions');\n const icon = this.precedingSessionsAreVisible ? ArrowUpIcon : ArrowDownIcon;\n\n return (\n <div class=\"flex justify-center p-2\">\n <Button\n style=\"text-primary\"\n part=\"toggle-preceding-sessions\"\n class={btnClasses}\n ariaLabel={label}\n onClick={this.togglePrecedingSessions.bind(this)}\n >\n <atomic-icon\n part=\"toggle-preceding-sessions-icon\"\n class={iconClasses}\n icon={icon}\n ></atomic-icon>\n <span class=\"truncate\">{label}</span>\n </Button>\n </div>\n );\n }\n\n private renderFollowingSessionsSection() {\n if (!this.userActionsState.timeline?.followingSessions?.length) {\n return null;\n }\n return [\n this.renderToggleFollowingSessionsButton(),\n <div class=\"separator mx-1 rounded\"></div>,\n this.followingSessionsAreVisible\n ? this.renderSessions(\n this.userActionsState.timeline?.followingSessions,\n () => <div class=\"separator mx-1 mt-4 rounded\"></div>,\n 'following-session'\n )\n : null,\n ];\n }\n\n private renderPrecedingSessionsSection() {\n if (!this.userActionsState.timeline?.precedingSessions?.length) {\n return null;\n }\n return [\n <div class=\"separator mx-1 mt-4 rounded\"></div>,\n this.precedingSessionsAreVisible\n ? this.renderSessions(\n this.userActionsState.timeline?.precedingSessions,\n () => <div class=\"separator mx-1 mt-4 rounded\"></div>,\n 'preceding-session'\n )\n : null,\n this.renderTogglePrecedingSessionsButton(),\n ];\n }\n\n private renderTimeline() {\n return (\n <div>\n {this.renderFollowingSessionsSection()}\n <div class=\"mt-4\">\n <atomic-insight-user-actions-session\n // eslint-disable-next-line @typescript-eslint/no-non-null-asserted-optional-chain\n startTimestamp={this.userActionsState.timeline?.session?.start!}\n // eslint-disable-next-line @typescript-eslint/no-non-null-asserted-optional-chain\n userActions={this.userActionsState?.timeline?.session?.actions!}\n data-testid=\"active-session\"\n ></atomic-insight-user-actions-session>\n </div>\n {this.renderPrecedingSessionsSection()}\n </div>\n );\n }\n\n private renderNoUserActionsScreen() {\n return (\n <div class=\"my-6 py-3\" data-testid=\"user-actions-error\">\n <NoItemsContainer>\n <MagnifyingGlass />\n <div class=\"my-2 max-w-full text-center text-2xl font-light\">\n {this.bindings.i18n.t('no-user-actions-available')}\n </div>\n <div class=\"text-neutral-dark my-2 text-center text-lg\">\n {this.bindings.i18n.t('no-user-actions-associated-with-params')}\n </div>\n </NoItemsContainer>\n </div>\n );\n }\n\n render() {\n const areUserActionsAvailable = this.userActionsState.timeline?.session;\n const hasError = this.userActionsState.error;\n\n if (areUserActionsAvailable && !hasError) {\n return this.renderTimeline();\n }\n return this.renderNoUserActionsScreen();\n }\n}\n"],"version":3}
|
|
@@ -60,7 +60,7 @@ const AtomicInsightUserActionsToggle = class {
|
|
|
60
60
|
this.modalRef.excludedCustomActions = this.excludedCustomActions;
|
|
61
61
|
}
|
|
62
62
|
render() {
|
|
63
|
-
return (h(IconButton, { key: '
|
|
63
|
+
return (h(IconButton, { key: 'c5e65b461baeac76b6749d9cb82c70edc51d9087', partPrefix: "insight-user-actions-toggle", style: "outline-neutral", icon: Clock, ariaLabel: this.bindings.i18n.t('user-actions'), onClick: () => {
|
|
64
64
|
this.enableModal();
|
|
65
65
|
}, title: this.bindings.i18n.t('user-actions'), buttonRef: (button) => {
|
|
66
66
|
if (!button) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"file":"atomic-insight-user-actions-toggle.entry.js","mappings":";;;;;;;;;;;;AAAA,MAAM,iCAAiC,GAAG,gzgEAAgzgE,CAAC;AAC31gE,6CAAe,iCAAiC;;;;;;;;;;;;MCuBnC,8BAA8B;;;;;;QAsB1B,0BAAqB,GAAa,EAAE,CAAC;;;;;qCAAH,EAAE;;IAE5C,UAAU;QACf,IAAI,CAAC,WAAW,GAAGA,gBAAuB,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE;YAC/D,OAAO,EAAE;gBACP,kBAAkB,EAAE,IAAI,CAAC,sBAAsB;gBAC/C,qBAAqB,EAAE,IAAI,CAAC,qBAAqB;aAClD;SACF,CAAC,CAAC;KACJ;IAKO,WAAW;QACjB,IAAI,CAAC,QAAQ,KAAK,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;QAC/C,IAAI,CAAC,WAAW,CAAC,kBAAkB,EAAE,CAAC;KACvC;IAEO,SAAS;QACf,IAAI,IAAI,CAAC,QAAQ,EAAE;YACjB,OAAO;SACR;QAED,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC,aAAa,CAAC,mCAAmC,CAAC,CAAC;QAE5E,IAAI,CAAC,IAAI,CAAC,qBAAqB,CAAC,aAAa,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC9D,IAAI,CAAC,QAAQ,CAAC,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC;QAC1C,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QACnC,IAAI,CAAC,QAAQ,CAAC,sBAAsB,GAAG,IAAI,CAAC,sBAAsB,CAAC;QACnE,IAAI,CAAC,QAAQ,CAAC,qBAAqB,GAAG,IAAI,CAAC,qBAAqB,CAAC;KAClE;IAEM,MAAM;QACX,QACE,EAAC,UAAU,qDACT,UAAU,EAAC,6BAA6B,EACxC,KAAK,EAAC,iBAAiB,EACvB,IAAI,EAAEC,KAAS,EACf,SAAS,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,cAAc,CAAC,EAC/C,OAAO,EAAE;gBACP,IAAI,CAAC,WAAW,EAAE,CAAC;aACpB,EACD,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,cAAc,CAAC,EAC3C,SAAS,EAAE,CAAC,MAA0B;gBACpC,IAAI,CAAC,MAAM,EAAE;oBACX,OAAO;iBACR;gBACD,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC;gBACxB,IAAI,CAAC,SAAS,EAAE,CAAC;aAClB,GACD,EACF;KACH;;;AAvE4B;IAA5B,kBAAkB,EAAE;gEAAmC;AAIjD;IAFN,qBAAqB,CAAC,aAAa,CAAC;wEAEa;;;;;","names":["buildInsightUserActions","Clockicon"],"sources":["src/components/insight/user-actions/atomic-insight-user-actions-toggle/atomic-insight-user-actions-toggle.pcss?tag=atomic-insight-user-actions-toggle&encapsulation=shadow","src/components/insight/user-actions/atomic-insight-user-actions-toggle/atomic-insight-user-actions-toggle.tsx"],"sourcesContent":["@import '../../../../global/global.pcss';\n","import {\n buildUserActions as buildInsightUserActions,\n UserActions as InsightUserActions,\n UserActionsState as InsightUserActionsState,\n} from '@coveo/headless/insight';\nimport {Component, h, Prop, Element, State} from '@stencil/core';\nimport Clockicon from '../../../../images/clock.svg';\nimport {\n BindStateToController,\n InitializableComponent,\n InitializeBindings,\n} from '../../../../utils/initialization-utils';\nimport {IconButton} from '../../../common/iconButton';\nimport {InsightBindings} from '../../atomic-insight-interface/atomic-insight-interface';\n\n/**\n *
|
|
1
|
+
{"file":"atomic-insight-user-actions-toggle.entry.js","mappings":";;;;;;;;;;;;AAAA,MAAM,iCAAiC,GAAG,gzgEAAgzgE,CAAC;AAC31gE,6CAAe,iCAAiC;;;;;;;;;;;;MCuBnC,8BAA8B;;;;;;QAsB1B,0BAAqB,GAAa,EAAE,CAAC;;;;;qCAAH,EAAE;;IAE5C,UAAU;QACf,IAAI,CAAC,WAAW,GAAGA,gBAAuB,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE;YAC/D,OAAO,EAAE;gBACP,kBAAkB,EAAE,IAAI,CAAC,sBAAsB;gBAC/C,qBAAqB,EAAE,IAAI,CAAC,qBAAqB;aAClD;SACF,CAAC,CAAC;KACJ;IAKO,WAAW;QACjB,IAAI,CAAC,QAAQ,KAAK,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;QAC/C,IAAI,CAAC,WAAW,CAAC,kBAAkB,EAAE,CAAC;KACvC;IAEO,SAAS;QACf,IAAI,IAAI,CAAC,QAAQ,EAAE;YACjB,OAAO;SACR;QAED,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC,aAAa,CAAC,mCAAmC,CAAC,CAAC;QAE5E,IAAI,CAAC,IAAI,CAAC,qBAAqB,CAAC,aAAa,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC9D,IAAI,CAAC,QAAQ,CAAC,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC;QAC1C,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QACnC,IAAI,CAAC,QAAQ,CAAC,sBAAsB,GAAG,IAAI,CAAC,sBAAsB,CAAC;QACnE,IAAI,CAAC,QAAQ,CAAC,qBAAqB,GAAG,IAAI,CAAC,qBAAqB,CAAC;KAClE;IAEM,MAAM;QACX,QACE,EAAC,UAAU,qDACT,UAAU,EAAC,6BAA6B,EACxC,KAAK,EAAC,iBAAiB,EACvB,IAAI,EAAEC,KAAS,EACf,SAAS,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,cAAc,CAAC,EAC/C,OAAO,EAAE;gBACP,IAAI,CAAC,WAAW,EAAE,CAAC;aACpB,EACD,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,cAAc,CAAC,EAC3C,SAAS,EAAE,CAAC,MAA0B;gBACpC,IAAI,CAAC,MAAM,EAAE;oBACX,OAAO;iBACR;gBACD,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC;gBACxB,IAAI,CAAC,SAAS,EAAE,CAAC;aAClB,GACD,EACF;KACH;;;AAvE4B;IAA5B,kBAAkB,EAAE;gEAAmC;AAIjD;IAFN,qBAAqB,CAAC,aAAa,CAAC;wEAEa;;;;;","names":["buildInsightUserActions","Clockicon"],"sources":["src/components/insight/user-actions/atomic-insight-user-actions-toggle/atomic-insight-user-actions-toggle.pcss?tag=atomic-insight-user-actions-toggle&encapsulation=shadow","src/components/insight/user-actions/atomic-insight-user-actions-toggle/atomic-insight-user-actions-toggle.tsx"],"sourcesContent":["@import '../../../../global/global.pcss';\n","import {\n buildUserActions as buildInsightUserActions,\n UserActions as InsightUserActions,\n UserActionsState as InsightUserActionsState,\n} from '@coveo/headless/insight';\nimport {Component, h, Prop, Element, State} from '@stencil/core';\nimport Clockicon from '../../../../images/clock.svg';\nimport {\n BindStateToController,\n InitializableComponent,\n InitializeBindings,\n} from '../../../../utils/initialization-utils';\nimport {IconButton} from '../../../common/iconButton';\nimport {InsightBindings} from '../../atomic-insight-interface/atomic-insight-interface';\n\n/**\n * Internal component of the atomic-insight-interface\n * The `atomic-insight-user-actions-toggle` component displays a button that opens a modal containing the user actions timeline component.\n */\n@Component({\n tag: 'atomic-insight-user-actions-toggle',\n styleUrl: 'atomic-insight-user-actions-toggle.pcss',\n shadow: true,\n})\nexport class AtomicInsightUserActionsToggle\n implements InitializableComponent<InsightBindings>\n{\n @Element() public host!: HTMLElement;\n @InitializeBindings() public bindings!: InsightBindings;\n public userActions!: InsightUserActions;\n @BindStateToController('userActions')\n @State()\n public userActionsState!: InsightUserActionsState;\n @State() public error!: Error;\n\n /**\n * The ID of the user whose actions are being displayed.\n */\n @Prop() public userId!: string;\n /**\n * The date and time when the case was created. For example \"2024-01-01T00:00:00Z\"\n */\n @Prop() public ticketCreationDateTime!: string;\n /**\n * The names of custom events to exclude.\n */\n @Prop() public excludedCustomActions: string[] = [];\n\n public initialize() {\n this.userActions = buildInsightUserActions(this.bindings.engine, {\n options: {\n ticketCreationDate: this.ticketCreationDateTime,\n excludedCustomActions: this.excludedCustomActions,\n },\n });\n }\n\n private buttonRef?: HTMLButtonElement;\n private modalRef?: HTMLAtomicInsightUserActionsModalElement;\n\n private enableModal() {\n this.modalRef && (this.modalRef.isOpen = true);\n this.userActions.logOpenUserActions();\n }\n\n private loadModal() {\n if (this.modalRef) {\n return;\n }\n\n this.modalRef = document.createElement('atomic-insight-user-actions-modal');\n\n this.host.insertAdjacentElement('beforebegin', this.modalRef);\n this.modalRef.openButton = this.buttonRef;\n this.modalRef.userId = this.userId;\n this.modalRef.ticketCreationDateTime = this.ticketCreationDateTime;\n this.modalRef.excludedCustomActions = this.excludedCustomActions;\n }\n\n public render() {\n return (\n <IconButton\n partPrefix=\"insight-user-actions-toggle\"\n style=\"outline-neutral\"\n icon={Clockicon}\n ariaLabel={this.bindings.i18n.t('user-actions')}\n onClick={() => {\n this.enableModal();\n }}\n title={this.bindings.i18n.t('user-actions')}\n buttonRef={(button?: HTMLButtonElement) => {\n if (!button) {\n return;\n }\n this.buttonRef = button;\n this.loadModal();\n }}\n />\n );\n }\n}\n"],"version":3}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { r as registerInstance, s as setNonce, h, g as getElement } from './index-3f35faca.js';
|
|
2
2
|
import { m as markParentAsReady } from './init-queue-fbe942c3.js';
|
|
3
3
|
import { loadRecommendationActions, loadSearchConfigurationActions, EcommerceDefaultFieldsToInclude, loadFieldActions, buildRecommendationEngine } from '@coveo/headless/recommendation';
|
|
4
|
-
import { g as getNextAnalyticsConfig, c as augmentAnalyticsConfigWithDocument, d as augmentAnalyticsConfigWithAtomicVersion, a as augmentWithExternalMiddleware, b as augmentAnalyticsWithAtomicVersion, C as CommonAtomicInterfaceHelper, i as instance, m as mismatchedInterfaceAndEnginePropError } from './analytics-config-
|
|
4
|
+
import { g as getNextAnalyticsConfig, c as augmentAnalyticsConfigWithDocument, d as augmentAnalyticsConfigWithAtomicVersion, a as augmentWithExternalMiddleware, b as augmentAnalyticsWithAtomicVersion, C as CommonAtomicInterfaceHelper, i as instance, m as mismatchedInterfaceAndEnginePropError } from './analytics-config-a1017210.js';
|
|
5
5
|
import { A as ArrayProp } from './props-utils-76e19fa7.js';
|
|
6
6
|
import { u as unsetLoadingFlag, s as setLoadingFlag, a as createBaseStore } from './store-e14e2958.js';
|
|
7
7
|
import './dayjs.min-d04628c6.js';
|