@athoscommerce/snap-preact 1.2.2 → 1.2.3-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (233) hide show
  1. package/dist/cjs/components/src/components/Atoms/Button/Button.d.ts +1 -1
  2. package/dist/cjs/components/src/components/Atoms/Button/Button.d.ts.map +1 -1
  3. package/dist/cjs/components/src/components/Atoms/ChatLoadingIndicator/ChatLoadingIndicator.d.ts +7 -0
  4. package/dist/cjs/components/src/components/Atoms/ChatLoadingIndicator/ChatLoadingIndicator.d.ts.map +1 -0
  5. package/dist/cjs/components/src/components/Atoms/ChatLoadingIndicator/ChatLoadingIndicator.js +85 -0
  6. package/dist/cjs/components/src/components/Atoms/ChatLoadingIndicator/index.d.ts +2 -0
  7. package/dist/cjs/components/src/components/Atoms/ChatLoadingIndicator/index.d.ts.map +1 -0
  8. package/dist/cjs/components/src/components/Atoms/ChatLoadingIndicator/index.js +17 -0
  9. package/dist/cjs/components/src/components/Atoms/Dropdown/Dropdown.d.ts +1 -0
  10. package/dist/cjs/components/src/components/Atoms/Dropdown/Dropdown.d.ts.map +1 -1
  11. package/dist/cjs/components/src/components/Atoms/Dropdown/Dropdown.js +30 -13
  12. package/dist/cjs/components/src/components/Atoms/Icon/paths.d.ts +21 -0
  13. package/dist/cjs/components/src/components/Atoms/Icon/paths.d.ts.map +1 -1
  14. package/dist/cjs/components/src/components/Atoms/Icon/paths.js +21 -0
  15. package/dist/cjs/components/src/components/Molecules/CalloutBadge/CalloutBadge.js +2 -2
  16. package/dist/cjs/components/src/components/Molecules/ChatInspirationResultMessage/ChatInspirationResultMessage.d.ts +18 -0
  17. package/dist/cjs/components/src/components/Molecules/ChatInspirationResultMessage/ChatInspirationResultMessage.d.ts.map +1 -0
  18. package/dist/cjs/components/src/components/Molecules/ChatInspirationResultMessage/ChatInspirationResultMessage.js +115 -0
  19. package/dist/cjs/components/src/components/Molecules/ChatInspirationResultMessage/index.d.ts +2 -0
  20. package/dist/cjs/components/src/components/Molecules/ChatInspirationResultMessage/index.d.ts.map +1 -0
  21. package/dist/cjs/components/src/components/Molecules/ChatInspirationResultMessage/index.js +17 -0
  22. package/dist/cjs/components/src/components/Molecules/ChatProductComparisonMessage/ChatProductComparisonMessage.d.ts +17 -0
  23. package/dist/cjs/components/src/components/Molecules/ChatProductComparisonMessage/ChatProductComparisonMessage.d.ts.map +1 -0
  24. package/dist/cjs/components/src/components/Molecules/ChatProductComparisonMessage/ChatProductComparisonMessage.js +106 -0
  25. package/dist/cjs/components/src/components/Molecules/ChatProductComparisonMessage/index.d.ts +2 -0
  26. package/dist/cjs/components/src/components/Molecules/ChatProductComparisonMessage/index.d.ts.map +1 -0
  27. package/dist/cjs/components/src/components/Molecules/ChatProductComparisonMessage/index.js +17 -0
  28. package/dist/cjs/components/src/components/Molecules/ChatProductQueryMessage/ChatProductQueryMessage.d.ts +23 -0
  29. package/dist/cjs/components/src/components/Molecules/ChatProductQueryMessage/ChatProductQueryMessage.d.ts.map +1 -0
  30. package/dist/cjs/components/src/components/Molecules/ChatProductQueryMessage/ChatProductQueryMessage.js +445 -0
  31. package/dist/cjs/components/src/components/Molecules/ChatProductQueryMessage/index.d.ts +2 -0
  32. package/dist/cjs/components/src/components/Molecules/ChatProductQueryMessage/index.d.ts.map +1 -0
  33. package/dist/cjs/components/src/components/Molecules/ChatProductQueryMessage/index.js +17 -0
  34. package/dist/cjs/components/src/components/Molecules/OverlayBadge/OverlayBadge.js +2 -2
  35. package/dist/cjs/components/src/components/Molecules/Result/Result.d.ts +3 -3
  36. package/dist/cjs/components/src/components/Molecules/Result/Result.d.ts.map +1 -1
  37. package/dist/cjs/components/src/components/Molecules/Result/Result.js +4 -4
  38. package/dist/cjs/components/src/components/Molecules/SearchInput/SearchInput.d.ts +2 -0
  39. package/dist/cjs/components/src/components/Molecules/SearchInput/SearchInput.d.ts.map +1 -1
  40. package/dist/cjs/components/src/components/Molecules/SearchInput/SearchInput.js +19 -2
  41. package/dist/cjs/components/src/components/Molecules/Slideout/Slideout.d.ts.map +1 -1
  42. package/dist/cjs/components/src/components/Molecules/Slideout/Slideout.js +30 -12
  43. package/dist/cjs/components/src/components/Organisms/Chat/Chat.d.ts +14 -0
  44. package/dist/cjs/components/src/components/Organisms/Chat/Chat.d.ts.map +1 -0
  45. package/dist/cjs/components/src/components/Organisms/Chat/Chat.js +1619 -0
  46. package/dist/cjs/components/src/components/Organisms/Chat/ChatAttachmentContext.d.ts +19 -0
  47. package/dist/cjs/components/src/components/Organisms/Chat/ChatAttachmentContext.d.ts.map +1 -0
  48. package/dist/cjs/components/src/components/Organisms/Chat/ChatAttachmentContext.js +22 -0
  49. package/dist/cjs/components/src/components/Organisms/Chat/ChatResult.d.ts +12 -0
  50. package/dist/cjs/components/src/components/Organisms/Chat/ChatResult.d.ts.map +1 -0
  51. package/dist/cjs/components/src/components/Organisms/Chat/ChatResult.js +158 -0
  52. package/dist/cjs/components/src/components/Organisms/Chat/MessageText.d.ts +13 -0
  53. package/dist/cjs/components/src/components/Organisms/Chat/MessageText.d.ts.map +1 -0
  54. package/dist/cjs/components/src/components/Organisms/Chat/MessageText.js +170 -0
  55. package/dist/cjs/components/src/components/Organisms/Chat/MessageUser.d.ts +11 -0
  56. package/dist/cjs/components/src/components/Organisms/Chat/MessageUser.d.ts.map +1 -0
  57. package/dist/cjs/components/src/components/Organisms/Chat/MessageUser.js +192 -0
  58. package/dist/cjs/components/src/components/Organisms/Chat/ResultsDisplay.d.ts +11 -0
  59. package/dist/cjs/components/src/components/Organisms/Chat/ResultsDisplay.d.ts.map +1 -0
  60. package/dist/cjs/components/src/components/Organisms/Chat/ResultsDisplay.js +86 -0
  61. package/dist/cjs/components/src/components/Organisms/Chat/SuggestedQuestions.d.ts +12 -0
  62. package/dist/cjs/components/src/components/Organisms/Chat/SuggestedQuestions.d.ts.map +1 -0
  63. package/dist/cjs/components/src/components/Organisms/Chat/SuggestedQuestions.js +73 -0
  64. package/dist/cjs/components/src/components/Organisms/Chat/index.d.ts +2 -0
  65. package/dist/cjs/components/src/components/Organisms/Chat/index.d.ts.map +1 -0
  66. package/dist/cjs/components/src/components/Organisms/Chat/index.js +17 -0
  67. package/dist/cjs/components/src/components/Organisms/FacetsHorizontal/FacetsHorizontal.js +2 -2
  68. package/dist/cjs/components/src/components/Organisms/MobileSidebar/MobileSidebar.d.ts +1 -0
  69. package/dist/cjs/components/src/components/Organisms/MobileSidebar/MobileSidebar.d.ts.map +1 -1
  70. package/dist/cjs/components/src/components/Organisms/MobileSidebar/MobileSidebar.js +2 -2
  71. package/dist/cjs/components/src/components/Organisms/Results/Results.js +1 -1
  72. package/dist/cjs/components/src/components/Templates/AutocompleteFixed/AutocompleteFixed.d.ts.map +1 -1
  73. package/dist/cjs/components/src/components/Templates/AutocompleteFixed/AutocompleteFixed.js +2 -0
  74. package/dist/cjs/components/src/components/Templates/AutocompleteModal/AutocompleteModal.d.ts.map +1 -1
  75. package/dist/cjs/components/src/components/Templates/AutocompleteModal/AutocompleteModal.js +2 -0
  76. package/dist/cjs/components/src/components/Templates/AutocompleteSlideout/AutocompleteSlideout.d.ts.map +1 -1
  77. package/dist/cjs/components/src/components/Templates/AutocompleteSlideout/AutocompleteSlideout.js +2 -0
  78. package/dist/cjs/components/src/components/Templates/Search/Search.d.ts +2 -2
  79. package/dist/cjs/components/src/components/Templates/Search/Search.d.ts.map +1 -1
  80. package/dist/cjs/components/src/hooks/useLayoutOptions.d.ts.map +1 -1
  81. package/dist/cjs/components/src/hooks/useLayoutOptions.js +21 -11
  82. package/dist/cjs/components/src/index.d.ts +1 -0
  83. package/dist/cjs/components/src/index.d.ts.map +1 -1
  84. package/dist/cjs/components/src/index.js +1 -0
  85. package/dist/cjs/components/src/providers/themeComponents.d.ts +50 -16
  86. package/dist/cjs/components/src/providers/themeComponents.d.ts.map +1 -1
  87. package/dist/cjs/components/src/providers/withTracking.d.ts +2 -2
  88. package/dist/cjs/components/src/providers/withTracking.d.ts.map +1 -1
  89. package/dist/cjs/components/src/types.d.ts +2 -0
  90. package/dist/cjs/components/src/types.d.ts.map +1 -1
  91. package/dist/cjs/src/Snap.d.ts +2 -1
  92. package/dist/cjs/src/Snap.d.ts.map +1 -1
  93. package/dist/cjs/src/Snap.js +124 -24
  94. package/dist/cjs/src/Templates/SnapTemplates.d.ts +12 -2
  95. package/dist/cjs/src/Templates/SnapTemplates.d.ts.map +1 -1
  96. package/dist/cjs/src/Templates/SnapTemplates.js +54 -1
  97. package/dist/cjs/src/Templates/Stores/LibraryStore.d.ts +4 -0
  98. package/dist/cjs/src/Templates/Stores/LibraryStore.d.ts.map +1 -1
  99. package/dist/cjs/src/Templates/Stores/LibraryStore.js +19 -0
  100. package/dist/cjs/src/Templates/Stores/TemplateStore.d.ts +5 -2
  101. package/dist/cjs/src/Templates/Stores/TemplateStore.d.ts.map +1 -1
  102. package/dist/cjs/src/Templates/Stores/TemplateStore.js +1 -0
  103. package/dist/cjs/src/Templates/Stores/library/components/Chat.d.ts +2 -0
  104. package/dist/cjs/src/Templates/Stores/library/components/Chat.d.ts.map +1 -0
  105. package/dist/cjs/src/Templates/Stores/library/components/Chat.js +5 -0
  106. package/dist/cjs/src/Templates/Stores/library/languages/es.d.ts.map +1 -1
  107. package/dist/cjs/src/Templates/Stores/library/languages/es.js +5 -0
  108. package/dist/cjs/src/Templates/Stores/library/languages/fr.d.ts.map +1 -1
  109. package/dist/cjs/src/Templates/Stores/library/languages/fr.js +5 -0
  110. package/dist/cjs/src/create/createChatController.d.ts +5 -0
  111. package/dist/cjs/src/create/createChatController.d.ts.map +1 -0
  112. package/dist/cjs/src/create/createChatController.js +43 -0
  113. package/dist/cjs/src/setupEvents.d.ts.map +1 -1
  114. package/dist/cjs/src/setupEvents.js +39 -0
  115. package/dist/cjs/src/types.d.ts +15 -3
  116. package/dist/cjs/src/types.d.ts.map +1 -1
  117. package/dist/esm/components/src/components/Atoms/Button/Button.d.ts +1 -1
  118. package/dist/esm/components/src/components/Atoms/Button/Button.d.ts.map +1 -1
  119. package/dist/esm/components/src/components/Atoms/ChatLoadingIndicator/ChatLoadingIndicator.d.ts +7 -0
  120. package/dist/esm/components/src/components/Atoms/ChatLoadingIndicator/ChatLoadingIndicator.d.ts.map +1 -0
  121. package/dist/esm/components/src/components/Atoms/ChatLoadingIndicator/ChatLoadingIndicator.js +67 -0
  122. package/dist/esm/components/src/components/Atoms/ChatLoadingIndicator/index.d.ts +2 -0
  123. package/dist/esm/components/src/components/Atoms/ChatLoadingIndicator/index.d.ts.map +1 -0
  124. package/dist/esm/components/src/components/Atoms/ChatLoadingIndicator/index.js +1 -0
  125. package/dist/esm/components/src/components/Atoms/Dropdown/Dropdown.d.ts +1 -0
  126. package/dist/esm/components/src/components/Atoms/Dropdown/Dropdown.d.ts.map +1 -1
  127. package/dist/esm/components/src/components/Atoms/Dropdown/Dropdown.js +33 -9
  128. package/dist/esm/components/src/components/Atoms/Icon/paths.d.ts +21 -0
  129. package/dist/esm/components/src/components/Atoms/Icon/paths.d.ts.map +1 -1
  130. package/dist/esm/components/src/components/Atoms/Icon/paths.js +21 -0
  131. package/dist/esm/components/src/components/Molecules/CalloutBadge/CalloutBadge.js +1 -1
  132. package/dist/esm/components/src/components/Molecules/ChatInspirationResultMessage/ChatInspirationResultMessage.d.ts +18 -0
  133. package/dist/esm/components/src/components/Molecules/ChatInspirationResultMessage/ChatInspirationResultMessage.d.ts.map +1 -0
  134. package/dist/esm/components/src/components/Molecules/ChatInspirationResultMessage/ChatInspirationResultMessage.js +109 -0
  135. package/dist/esm/components/src/components/Molecules/ChatInspirationResultMessage/index.d.ts +2 -0
  136. package/dist/esm/components/src/components/Molecules/ChatInspirationResultMessage/index.d.ts.map +1 -0
  137. package/dist/esm/components/src/components/Molecules/ChatInspirationResultMessage/index.js +1 -0
  138. package/dist/esm/components/src/components/Molecules/ChatProductComparisonMessage/ChatProductComparisonMessage.d.ts +17 -0
  139. package/dist/esm/components/src/components/Molecules/ChatProductComparisonMessage/ChatProductComparisonMessage.d.ts.map +1 -0
  140. package/dist/esm/components/src/components/Molecules/ChatProductComparisonMessage/ChatProductComparisonMessage.js +85 -0
  141. package/dist/esm/components/src/components/Molecules/ChatProductComparisonMessage/index.d.ts +2 -0
  142. package/dist/esm/components/src/components/Molecules/ChatProductComparisonMessage/index.d.ts.map +1 -0
  143. package/dist/esm/components/src/components/Molecules/ChatProductComparisonMessage/index.js +1 -0
  144. package/dist/esm/components/src/components/Molecules/ChatProductQueryMessage/ChatProductQueryMessage.d.ts +23 -0
  145. package/dist/esm/components/src/components/Molecules/ChatProductQueryMessage/ChatProductQueryMessage.d.ts.map +1 -0
  146. package/dist/esm/components/src/components/Molecules/ChatProductQueryMessage/ChatProductQueryMessage.js +421 -0
  147. package/dist/esm/components/src/components/Molecules/ChatProductQueryMessage/index.d.ts +2 -0
  148. package/dist/esm/components/src/components/Molecules/ChatProductQueryMessage/index.d.ts.map +1 -0
  149. package/dist/esm/components/src/components/Molecules/ChatProductQueryMessage/index.js +1 -0
  150. package/dist/esm/components/src/components/Molecules/OverlayBadge/OverlayBadge.js +1 -1
  151. package/dist/esm/components/src/components/Molecules/Result/Result.d.ts +3 -3
  152. package/dist/esm/components/src/components/Molecules/Result/Result.d.ts.map +1 -1
  153. package/dist/esm/components/src/components/Molecules/Result/Result.js +2 -2
  154. package/dist/esm/components/src/components/Molecules/SearchInput/SearchInput.d.ts +2 -0
  155. package/dist/esm/components/src/components/Molecules/SearchInput/SearchInput.d.ts.map +1 -1
  156. package/dist/esm/components/src/components/Molecules/SearchInput/SearchInput.js +35 -2
  157. package/dist/esm/components/src/components/Molecules/Slideout/Slideout.d.ts.map +1 -1
  158. package/dist/esm/components/src/components/Molecules/Slideout/Slideout.js +30 -12
  159. package/dist/esm/components/src/components/Organisms/Chat/Chat.d.ts +14 -0
  160. package/dist/esm/components/src/components/Organisms/Chat/Chat.d.ts.map +1 -0
  161. package/dist/esm/components/src/components/Organisms/Chat/Chat.js +1560 -0
  162. package/dist/esm/components/src/components/Organisms/Chat/ChatAttachmentContext.d.ts +19 -0
  163. package/dist/esm/components/src/components/Organisms/Chat/ChatAttachmentContext.d.ts.map +1 -0
  164. package/dist/esm/components/src/components/Organisms/Chat/ChatAttachmentContext.js +16 -0
  165. package/dist/esm/components/src/components/Organisms/Chat/ChatResult.d.ts +12 -0
  166. package/dist/esm/components/src/components/Organisms/Chat/ChatResult.d.ts.map +1 -0
  167. package/dist/esm/components/src/components/Organisms/Chat/ChatResult.js +143 -0
  168. package/dist/esm/components/src/components/Organisms/Chat/MessageText.d.ts +13 -0
  169. package/dist/esm/components/src/components/Organisms/Chat/MessageText.d.ts.map +1 -0
  170. package/dist/esm/components/src/components/Organisms/Chat/MessageText.js +152 -0
  171. package/dist/esm/components/src/components/Organisms/Chat/MessageUser.d.ts +11 -0
  172. package/dist/esm/components/src/components/Organisms/Chat/MessageUser.d.ts.map +1 -0
  173. package/dist/esm/components/src/components/Organisms/Chat/MessageUser.js +164 -0
  174. package/dist/esm/components/src/components/Organisms/Chat/ResultsDisplay.d.ts +11 -0
  175. package/dist/esm/components/src/components/Organisms/Chat/ResultsDisplay.d.ts.map +1 -0
  176. package/dist/esm/components/src/components/Organisms/Chat/ResultsDisplay.js +70 -0
  177. package/dist/esm/components/src/components/Organisms/Chat/SuggestedQuestions.d.ts +12 -0
  178. package/dist/esm/components/src/components/Organisms/Chat/SuggestedQuestions.d.ts.map +1 -0
  179. package/dist/esm/components/src/components/Organisms/Chat/SuggestedQuestions.js +58 -0
  180. package/dist/esm/components/src/components/Organisms/Chat/index.d.ts +2 -0
  181. package/dist/esm/components/src/components/Organisms/Chat/index.d.ts.map +1 -0
  182. package/dist/esm/components/src/components/Organisms/Chat/index.js +1 -0
  183. package/dist/esm/components/src/components/Organisms/FacetsHorizontal/FacetsHorizontal.js +2 -2
  184. package/dist/esm/components/src/components/Organisms/MobileSidebar/MobileSidebar.d.ts +1 -0
  185. package/dist/esm/components/src/components/Organisms/MobileSidebar/MobileSidebar.d.ts.map +1 -1
  186. package/dist/esm/components/src/components/Organisms/MobileSidebar/MobileSidebar.js +2 -2
  187. package/dist/esm/components/src/components/Organisms/Results/Results.js +1 -1
  188. package/dist/esm/components/src/components/Templates/AutocompleteFixed/AutocompleteFixed.d.ts.map +1 -1
  189. package/dist/esm/components/src/components/Templates/AutocompleteFixed/AutocompleteFixed.js +3 -0
  190. package/dist/esm/components/src/components/Templates/AutocompleteModal/AutocompleteModal.d.ts.map +1 -1
  191. package/dist/esm/components/src/components/Templates/AutocompleteModal/AutocompleteModal.js +3 -0
  192. package/dist/esm/components/src/components/Templates/AutocompleteSlideout/AutocompleteSlideout.d.ts.map +1 -1
  193. package/dist/esm/components/src/components/Templates/AutocompleteSlideout/AutocompleteSlideout.js +3 -0
  194. package/dist/esm/components/src/components/Templates/Search/Search.d.ts +2 -2
  195. package/dist/esm/components/src/components/Templates/Search/Search.d.ts.map +1 -1
  196. package/dist/esm/components/src/hooks/useLayoutOptions.d.ts.map +1 -1
  197. package/dist/esm/components/src/hooks/useLayoutOptions.js +21 -11
  198. package/dist/esm/components/src/index.d.ts +1 -0
  199. package/dist/esm/components/src/index.d.ts.map +1 -1
  200. package/dist/esm/components/src/index.js +1 -0
  201. package/dist/esm/components/src/providers/themeComponents.d.ts +50 -16
  202. package/dist/esm/components/src/providers/themeComponents.d.ts.map +1 -1
  203. package/dist/esm/components/src/providers/withTracking.d.ts +2 -2
  204. package/dist/esm/components/src/providers/withTracking.d.ts.map +1 -1
  205. package/dist/esm/components/src/types.d.ts +2 -0
  206. package/dist/esm/components/src/types.d.ts.map +1 -1
  207. package/dist/esm/src/Snap.d.ts +2 -1
  208. package/dist/esm/src/Snap.d.ts.map +1 -1
  209. package/dist/esm/src/Snap.js +59 -0
  210. package/dist/esm/src/Templates/SnapTemplates.d.ts +12 -2
  211. package/dist/esm/src/Templates/SnapTemplates.d.ts.map +1 -1
  212. package/dist/esm/src/Templates/SnapTemplates.js +43 -0
  213. package/dist/esm/src/Templates/Stores/LibraryStore.d.ts +4 -0
  214. package/dist/esm/src/Templates/Stores/LibraryStore.d.ts.map +1 -1
  215. package/dist/esm/src/Templates/Stores/LibraryStore.js +6 -0
  216. package/dist/esm/src/Templates/Stores/TemplateStore.d.ts +5 -2
  217. package/dist/esm/src/Templates/Stores/TemplateStore.d.ts.map +1 -1
  218. package/dist/esm/src/Templates/Stores/TemplateStore.js +1 -0
  219. package/dist/esm/src/Templates/Stores/library/components/Chat.d.ts +2 -0
  220. package/dist/esm/src/Templates/Stores/library/components/Chat.d.ts.map +1 -0
  221. package/dist/esm/src/Templates/Stores/library/components/Chat.js +1 -0
  222. package/dist/esm/src/Templates/Stores/library/languages/es.d.ts.map +1 -1
  223. package/dist/esm/src/Templates/Stores/library/languages/es.js +5 -0
  224. package/dist/esm/src/Templates/Stores/library/languages/fr.d.ts.map +1 -1
  225. package/dist/esm/src/Templates/Stores/library/languages/fr.js +5 -0
  226. package/dist/esm/src/create/createChatController.d.ts +5 -0
  227. package/dist/esm/src/create/createChatController.d.ts.map +1 -0
  228. package/dist/esm/src/create/createChatController.js +29 -0
  229. package/dist/esm/src/setupEvents.d.ts.map +1 -1
  230. package/dist/esm/src/setupEvents.js +23 -0
  231. package/dist/esm/src/types.d.ts +15 -3
  232. package/dist/esm/src/types.d.ts.map +1 -1
  233. package/package.json +13 -12
@@ -0,0 +1,19 @@
1
+ export type ChatAttachmentContextItem = {
2
+ id: string;
3
+ name: string;
4
+ imageUrl?: string;
5
+ isLoading?: boolean;
6
+ hasError?: boolean;
7
+ errorMessage?: string;
8
+ onClick?: () => void;
9
+ onRemove?: () => void;
10
+ };
11
+ export type ChatAttachmentContextProps = {
12
+ title: string;
13
+ items: ChatAttachmentContextItem[];
14
+ onClose?: () => void;
15
+ };
16
+ export declare const ChatAttachmentContext: ((props: ChatAttachmentContextProps) => JSX.Element) & {
17
+ displayName: string;
18
+ };
19
+ //# sourceMappingURL=ChatAttachmentContext.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ChatAttachmentContext.d.ts","sourceRoot":"","sources":["../../../../../../../components/src/components/Organisms/Chat/ChatAttachmentContext.tsx"],"names":[],"mappings":"AAQA,MAAM,MAAM,yBAAyB,GAAG;IACvC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,0BAA0B,GAAG;IACxC,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,yBAAyB,EAAE,CAAC;IACnC,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;CACrB,CAAC;AAEF,eAAO,MAAM,qBAAqB,WAAoB,0BAA0B,KAAG,GAAG,CAAC,OAAO;;CA8D5F,CAAC"}
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.ChatAttachmentContext = void 0;
7
+ var jsx_runtime_1 = require("@emotion/react/jsx-runtime");
8
+ var mobx_react_lite_1 = require("mobx-react-lite");
9
+ var classnames_1 = __importDefault(require("classnames"));
10
+ var Image_1 = require("../../Atoms/Image");
11
+ var Button_1 = require("../../Atoms/Button");
12
+ var Icon_1 = require("../../Atoms/Icon");
13
+ exports.ChatAttachmentContext = (0, mobx_react_lite_1.observer)(function (props) {
14
+ var title = props.title, items = props.items, onClose = props.onClose;
15
+ if (!items || items.length === 0) {
16
+ return (0, jsx_runtime_1.jsx)(jsx_runtime_1.Fragment, {});
17
+ }
18
+ return ((0, jsx_runtime_1.jsxs)("div", { className: 'ss__chat__attachment-context', children: [(0, jsx_runtime_1.jsxs)("div", { className: 'ss__chat__attachment-context__label', children: [(0, jsx_runtime_1.jsx)("span", { children: title }), onClose && ((0, jsx_runtime_1.jsx)("div", { className: 'ss__chat__attachment-context__label__close', onClick: onClose, children: (0, jsx_runtime_1.jsx)(Icon_1.Icon, { icon: 'close-thin', size: '12px' }) }))] }), (0, jsx_runtime_1.jsx)("div", { className: 'ss__chat__attachment-context__items', children: items.map(function (item) { return ((0, jsx_runtime_1.jsxs)("div", { className: (0, classnames_1.default)('ss__chat__attachment-context__item', { error: item.hasError, clickable: !!item.onClick }), onClick: item.onClick, style: item.onClick ? { cursor: 'pointer' } : undefined, children: [item.hasError ? ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)("div", { className: 'ss__chat__attachment-context__item__error-icon', children: "\u26A0" }), (0, jsx_runtime_1.jsx)("div", { className: 'ss__chat__attachment-context__item__error-message', children: item.errorMessage || "Upload Failed - ".concat(item.name) })] })) : ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsxs)("div", { className: 'ss__chat__attachment-context__item__content', children: [item.imageUrl && (0, jsx_runtime_1.jsx)(Image_1.Image, { className: item.isLoading ? 'loading' : '', src: item.imageUrl, alt: item.name }), item.isLoading && ((0, jsx_runtime_1.jsxs)("div", { className: 'ss__chat__attachment-context__item__loading', children: [(0, jsx_runtime_1.jsx)("div", { className: 'ss__chat__loading__dot' }), (0, jsx_runtime_1.jsx)("div", { className: 'ss__chat__loading__dot' }), (0, jsx_runtime_1.jsx)("div", { className: 'ss__chat__loading__dot' })] }))] }), (0, jsx_runtime_1.jsx)("div", { className: 'ss__chat__attachment-context__item__name', title: item.name, children: item.name })] })), item.onRemove && (items.length > 1 || !onClose) && ((0, jsx_runtime_1.jsx)(Button_1.Button, { className: 'ss__chat__attachment-context__item__remove', onClick: function () { var _a; return !item.isLoading && ((_a = item.onRemove) === null || _a === void 0 ? void 0 : _a.call(item)); }, icon: {
19
+ icon: 'close-thin',
20
+ size: '0.6em',
21
+ } }))] }, item.id)); }) })] }));
22
+ });
@@ -0,0 +1,12 @@
1
+ import { ChatController } from '@athoscommerce/snap-controller';
2
+ import { Product } from '@athoscommerce/snap-store-mobx';
3
+ import { ComponentProps } from '../../../types';
4
+ export declare const ChatResult: ((properties: ChatResultProps) => JSX.Element) & {
5
+ displayName: string;
6
+ };
7
+ export interface ChatResultProps extends ComponentProps {
8
+ result: Product;
9
+ controller: ChatController;
10
+ scrollToBottom: () => void;
11
+ }
12
+ //# sourceMappingURL=ChatResult.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ChatResult.d.ts","sourceRoot":"","sources":["../../../../../../../components/src/components/Organisms/Chat/ChatResult.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAChE,OAAO,EAAE,OAAO,EAAE,MAAM,gCAAgC,CAAC;AAMzD,OAAO,EAAE,cAAc,EAAe,MAAM,gBAAgB,CAAC;AAyG7D,eAAO,MAAM,UAAU,gBAAyB,eAAe,KAAG,GAAG,CAAC,OAAO;;CAiG3E,CAAC;AAMH,MAAM,WAAW,eAAgB,SAAQ,cAAc;IACtD,MAAM,EAAE,OAAO,CAAC;IAChB,UAAU,EAAE,cAAc,CAAC;IAC3B,cAAc,EAAE,MAAM,IAAI,CAAC;CAC3B"}
@@ -0,0 +1,158 @@
1
+ "use strict";
2
+ var __assign = (this && this.__assign) || function () {
3
+ __assign = Object.assign || function(t) {
4
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
5
+ s = arguments[i];
6
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
+ t[p] = s[p];
8
+ }
9
+ return t;
10
+ };
11
+ return __assign.apply(this, arguments);
12
+ };
13
+ Object.defineProperty(exports, "__esModule", { value: true });
14
+ exports.ChatResult = void 0;
15
+ var jsx_runtime_1 = require("@emotion/react/jsx-runtime");
16
+ var mobx_react_lite_1 = require("mobx-react-lite");
17
+ var Image_1 = require("../../Atoms/Image");
18
+ var Button_1 = require("../../Atoms/Button");
19
+ var utilities_1 = require("../../../utilities");
20
+ var providers_1 = require("../../../providers");
21
+ var __1 = require("../../..");
22
+ var hooks_1 = require("../../../hooks");
23
+ var defaultStyles = function () {
24
+ return (0, providers_1.css)({
25
+ display: 'flex',
26
+ flexDirection: 'column',
27
+ height: '100%',
28
+ width: '100%',
29
+ boxSizing: 'border-box',
30
+ border: '1px solid #e5e7eb',
31
+ borderRadius: '1em',
32
+ overflow: 'hidden',
33
+ '.ss__chat__result__image': {
34
+ width: '100%',
35
+ position: 'relative',
36
+ overflow: 'hidden',
37
+ '.ss__chat__result__image__buttons': {
38
+ position: 'absolute',
39
+ bottom: 0,
40
+ width: '100%',
41
+ display: 'flex',
42
+ justifyContent: 'center',
43
+ gap: '0.5em',
44
+ padding: '0.5em',
45
+ '.ss__button': {
46
+ padding: '0.25em 0.5em',
47
+ background: 'rgba(255, 255, 255, 0.9)',
48
+ textAlign: 'center',
49
+ justifyContent: 'center',
50
+ borderRadius: '2em',
51
+ boxShadow: 'inset 0 0 1px 0px rgba(0, 0, 0, 0.5)',
52
+ flex: '1 1 0',
53
+ minWidth: 0,
54
+ fontWeight: 'bold',
55
+ whiteSpace: 'nowrap',
56
+ overflow: 'hidden',
57
+ textOverflow: 'ellipsis',
58
+ },
59
+ },
60
+ '.ss__chat__result__image__icons': {
61
+ position: 'absolute',
62
+ top: 0,
63
+ left: 0,
64
+ right: 0,
65
+ display: 'flex',
66
+ flexDirection: 'row',
67
+ justifyContent: 'space-between',
68
+ gap: '0.5em',
69
+ padding: '0.5em',
70
+ flex: '0 0 auto',
71
+ alignItems: 'flex-start',
72
+ '.ss__button': {
73
+ height: '2.5em',
74
+ width: '2.5em',
75
+ backgroundColor: '#000',
76
+ borderRadius: '50%',
77
+ justifyContent: 'center',
78
+ '&.ss__chat__result__image__icons__icon--cart': {
79
+ backgroundColor: '#feeeae',
80
+ svg: {
81
+ fill: '#000',
82
+ stroke: '#000',
83
+ },
84
+ },
85
+ svg: {
86
+ fill: '#fff',
87
+ stroke: '#fff',
88
+ },
89
+ },
90
+ },
91
+ },
92
+ '.ss__chat__result__content': {
93
+ background: '#f9fafb',
94
+ display: 'flex',
95
+ flexDirection: 'column',
96
+ gap: '0.5em',
97
+ flex: '1 1 auto',
98
+ padding: '0.5em 0',
99
+ '.ss__chat__result__content__title--primary': {
100
+ padding: '0 0.5em',
101
+ },
102
+ '.ss__chat__result__content__title--secondary': {
103
+ padding: '0 0.5em',
104
+ color: '#6A7282',
105
+ fontSize: '90%',
106
+ },
107
+ '.ss__chat__result__content__price': {
108
+ padding: '0 0.5em',
109
+ color: '#000',
110
+ fontWeight: 'bold',
111
+ fontSize: '1.2em',
112
+ marginTop: 'auto',
113
+ },
114
+ },
115
+ });
116
+ };
117
+ exports.ChatResult = (0, mobx_react_lite_1.observer)(function (properties) {
118
+ var _a, _b, _c, _d, _e, _f, _g, _h;
119
+ var globalTheme = (0, providers_1.useTheme)();
120
+ var globalTreePath = (0, providers_1.useTreePath)();
121
+ var snap = (0, providers_1.useSnap)();
122
+ var defaultProps = {
123
+ treePath: globalTreePath,
124
+ };
125
+ var props = (0, utilities_1.mergeProps)('chatResult', globalTheme, defaultProps, properties);
126
+ var controller = props.controller, result = props.result, scrollToBottom = props.scrollToBottom, customComponent = props.customComponent;
127
+ if (customComponent) {
128
+ var ComponentOverride = (0, hooks_1.useComponent)(((_a = snap === null || snap === void 0 ? void 0 : snap.templates) === null || _a === void 0 ? void 0 : _a.library.import.component.result) || {}, customComponent);
129
+ if (ComponentOverride) {
130
+ return (0, jsx_runtime_1.jsx)(ComponentOverride, __assign({}, props));
131
+ }
132
+ }
133
+ var isInComparison = (_b = controller.store.currentChat) === null || _b === void 0 ? void 0 : _b.comparisons.items.some(function (item) { var _a; return ((_a = item.result) === null || _a === void 0 ? void 0 : _a.id) === result.id; });
134
+ var subProps = {
135
+ button: {
136
+ // component theme overrides
137
+ theme: props.theme,
138
+ // treePath,
139
+ },
140
+ image: {
141
+ lazy: false,
142
+ onLoad: scrollToBottom,
143
+ // component theme overrides
144
+ theme: props.theme,
145
+ // treePath,
146
+ },
147
+ };
148
+ var styling = (0, utilities_1.mergeStyles)(properties, defaultStyles);
149
+ return ((0, jsx_runtime_1.jsxs)("div", __assign({ className: "ss__chat__result" }, styling, { children: [(0, jsx_runtime_1.jsxs)("div", { className: "ss__chat__result__image", children: [(0, jsx_runtime_1.jsx)(__1.OverlayBadge, { controller: controller, result: result, renderEmpty: true, children: (0, jsx_runtime_1.jsx)(Image_1.Image, __assign({ className: 'ss__chat__result__detail-slot__image', alt: ((_c = result.display.mappings.core) === null || _c === void 0 ? void 0 : _c.name) || '', src: ((_d = result.display.mappings.core) === null || _d === void 0 ? void 0 : _d.imageUrl) || '' }, subProps.image)) }), (0, jsx_runtime_1.jsxs)("div", { className: "ss__chat__result__image__buttons", children: [controller.store.features.similarProducts.enabled && ((0, jsx_runtime_1.jsx)(Button_1.Button, { className: 'ss__chat__result__image__buttons__similar', content: 'Similar', onClick: function () {
150
+ controller.discussProduct(result, { requestType: 'productSimilar' });
151
+ } })), (0, jsx_runtime_1.jsx)(Button_1.Button, { className: 'ss__chat__result__image__buttons__compare', content: isInComparison ? undefined : 'Compare', icon: isInComparison ? { icon: 'check-thin', title: 'Added to comparison' } : undefined, onClick: function () {
152
+ controller.compareProduct(result);
153
+ } })] }), (0, jsx_runtime_1.jsxs)("div", { className: "ss__chat__result__image__icons", children: [(0, jsx_runtime_1.jsx)(Button_1.Button, { className: 'ss__chat__result__image__icons__icon--inquire', icon: { icon: 'chat', title: 'Discuss Product' }, onClick: function () {
154
+ controller.discussProduct(result, { requestType: 'productQuery' });
155
+ } }), (0, jsx_runtime_1.jsx)(Button_1.Button, { className: 'ss__chat__result__image__icons__icon--cart', icon: { icon: 'cart', title: 'Add to Cart' }, onClick: function () {
156
+ controller.addToCart(result);
157
+ } })] })] }), (0, jsx_runtime_1.jsxs)("div", { className: "ss__chat__result__content", children: [((_e = result.display.mappings.core) === null || _e === void 0 ? void 0 : _e.name) && (0, jsx_runtime_1.jsx)("div", { className: "ss__chat__result__content__title--primary", children: (_f = result.display.mappings.core) === null || _f === void 0 ? void 0 : _f.name }), ((_g = result.display.mappings.core) === null || _g === void 0 ? void 0 : _g.price) && ((0, jsx_runtime_1.jsx)("div", { className: "ss__chat__result__content__price", children: (0, jsx_runtime_1.jsx)(__1.Price, { value: (_h = result.display.mappings.core) === null || _h === void 0 ? void 0 : _h.price }) })), (0, jsx_runtime_1.jsx)(__1.CalloutBadge, { controller: controller, result: result })] })] })));
158
+ });
@@ -0,0 +1,13 @@
1
+ import { ChatController } from '@athoscommerce/snap-controller';
2
+ export declare const MessageText: ((props: MessageTextProps) => import("@emotion/react/jsx-runtime").JSX.Element) & {
3
+ displayName: string;
4
+ };
5
+ export interface MessageTextProps {
6
+ chatItem: any;
7
+ controller: ChatController;
8
+ scrollToBottom: () => void;
9
+ onViewProduct?: () => void;
10
+ showDetailsButton?: boolean;
11
+ sideChatOpen?: boolean;
12
+ }
13
+ //# sourceMappingURL=MessageText.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MessageText.d.ts","sourceRoot":"","sources":["../../../../../../../components/src/components/Organisms/Chat/MessageText.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AA0HhE,eAAO,MAAM,WAAW,WAAoB,gBAAgB;;CA2D1D,CAAC;AAqCH,MAAM,WAAW,gBAAgB;IAChC,QAAQ,EAAE,GAAG,CAAC;IACd,UAAU,EAAE,cAAc,CAAC;IAC3B,cAAc,EAAE,MAAM,IAAI,CAAC;IAC3B,aAAa,CAAC,EAAE,MAAM,IAAI,CAAC;IAC3B,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,YAAY,CAAC,EAAE,OAAO,CAAC;CACvB"}
@@ -0,0 +1,170 @@
1
+ "use strict";
2
+ var __assign = (this && this.__assign) || function () {
3
+ __assign = Object.assign || function(t) {
4
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
5
+ s = arguments[i];
6
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
+ t[p] = s[p];
8
+ }
9
+ return t;
10
+ };
11
+ return __assign.apply(this, arguments);
12
+ };
13
+ var __importDefault = (this && this.__importDefault) || function (mod) {
14
+ return (mod && mod.__esModule) ? mod : { "default": mod };
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ exports.MessageText = void 0;
18
+ var jsx_runtime_1 = require("@emotion/react/jsx-runtime");
19
+ var mobx_react_lite_1 = require("mobx-react-lite");
20
+ var classnames_1 = __importDefault(require("classnames"));
21
+ var ResultsDisplay_1 = require("./ResultsDisplay");
22
+ var marked_1 = require("marked");
23
+ var __1 = require("../../..");
24
+ var utilities_1 = require("../../../utilities");
25
+ var Button_1 = require("../../Atoms/Button");
26
+ var defaultStyles = function () {
27
+ return (0, __1.css)({
28
+ display: 'flex',
29
+ flexDirection: 'column',
30
+ justifyContent: 'flex-start',
31
+ gap: '5px',
32
+ background: '#fff',
33
+ padding: '1em',
34
+ borderRadius: '1em',
35
+ borderBottomLeftRadius: '3px',
36
+ '.ss__chat__message-text__text-wrapper': {
37
+ display: 'flex',
38
+ flexDirection: 'row',
39
+ justifyContent: 'flex-start',
40
+ alignItems: 'center',
41
+ gap: '8px',
42
+ '.ss__chat__message-text__text-wrapper__text': {
43
+ alignSelf: 'flex-end',
44
+ },
45
+ '.ss__chat__message-text__view-side-chat': {
46
+ marginLeft: 'auto',
47
+ flex: '0 0 auto',
48
+ width: '2em',
49
+ height: '2em',
50
+ padding: 0,
51
+ borderRadius: '50%',
52
+ border: '1px solid #253B80',
53
+ background: '#fff',
54
+ display: 'flex',
55
+ alignItems: 'center',
56
+ justifyContent: 'center',
57
+ cursor: 'pointer',
58
+ svg: {
59
+ fill: '#253B80',
60
+ stroke: '#253B80',
61
+ },
62
+ '&.ss__chat__message-text__view-side-chat--active': {
63
+ background: '#253B80',
64
+ svg: {
65
+ fill: '#fff',
66
+ stroke: '#fff',
67
+ },
68
+ },
69
+ },
70
+ },
71
+ '.ss__chat__message-text__show-details': {
72
+ alignSelf: 'flex-start',
73
+ border: '1px solid #253B80',
74
+ background: '#fff',
75
+ color: '#253B80',
76
+ borderRadius: '999px',
77
+ padding: '6px 16px',
78
+ fontSize: '14px',
79
+ fontWeight: 500,
80
+ cursor: 'pointer',
81
+ display: 'flex',
82
+ alignItems: 'center',
83
+ gap: '6px',
84
+ marginTop: '4px',
85
+ '&:not(.ss__button--disabled):hover': {
86
+ background: '#253B80',
87
+ color: '#fff',
88
+ svg: {
89
+ fill: '#fff',
90
+ stroke: '#fff',
91
+ },
92
+ },
93
+ svg: {
94
+ fill: '#253B80',
95
+ stroke: '#253B80',
96
+ },
97
+ },
98
+ '.ss__chat__message-text__results': {
99
+ marginTop: '12px',
100
+ '.swiper-container': {
101
+ alignItems: 'center',
102
+ gap: '5px',
103
+ '.swiper-wrapper': {},
104
+ '.swiper-scrollbar': {
105
+ position: 'static',
106
+ width: '95%',
107
+ height: '6px',
108
+ borderRadius: '6px',
109
+ '.swiper-scrollbar-drag': {
110
+ borderRadius: '6px',
111
+ },
112
+ },
113
+ '.swiper-pagination-lock': {
114
+ display: 'none !important',
115
+ },
116
+ },
117
+ '.ss__carousel__next-wrapper, .ss__carousel__prev-wrapper': {
118
+ svg: {
119
+ fill: '#0066cc',
120
+ stroke: '#0066cc',
121
+ },
122
+ },
123
+ },
124
+ '.ss__chat__message-text__facets': {
125
+ display: 'flex',
126
+ flexWrap: 'wrap',
127
+ gap: '10px',
128
+ margin: '10px 0 0 0',
129
+ '.ss__chat__message-text__facets__facet': {
130
+ display: 'flex',
131
+ gap: '5px',
132
+ alignItems: 'baseline',
133
+ label: {
134
+ fontWeight: 'bold',
135
+ },
136
+ },
137
+ },
138
+ });
139
+ };
140
+ exports.MessageText = (0, mobx_react_lite_1.observer)(function (props) {
141
+ var _a, _b;
142
+ var controller = props.controller, chatItem = props.chatItem, scrollToBottom = props.scrollToBottom, onViewProduct = props.onViewProduct, showDetailsButton = props.showDetailsButton;
143
+ var styling = (0, utilities_1.mergeStyles)(props, defaultStyles);
144
+ var text = chatItem.overallSummary || chatItem.text || ((_a = chatItem.comparisonData) === null || _a === void 0 ? void 0 : _a.summary) || chatItem.errorMessage || chatItem.messageForDrift || '';
145
+ var currentChat = controller.store.currentChat;
146
+ var sideChatLabels = {
147
+ inspirationResult: { open: 'View inspiration', close: 'Close inspiration' },
148
+ productComparison: { open: 'View comparison', close: 'Close comparison' },
149
+ };
150
+ var sideChatLabel = sideChatLabels[chatItem === null || chatItem === void 0 ? void 0 : chatItem.messageType];
151
+ var hasSideChatView = !!sideChatLabel && !!(chatItem === null || chatItem === void 0 ? void 0 : chatItem.id);
152
+ var isSideChatActive = hasSideChatView && !!props.sideChatOpen && ((_b = currentChat === null || currentChat === void 0 ? void 0 : currentChat.activeMessage) === null || _b === void 0 ? void 0 : _b.id) === chatItem.id;
153
+ // Show the prominent "Show Details" button when requested (e.g. mobile subsequent comparisons)
154
+ var shouldShowDetailsButton = showDetailsButton && (chatItem === null || chatItem === void 0 ? void 0 : chatItem.messageType) === 'productComparison' && !isSideChatActive;
155
+ return ((0, jsx_runtime_1.jsxs)("div", __assign({ className: "ss__chat__message-text" }, styling, { children: [text && ((0, jsx_runtime_1.jsxs)("div", { className: "ss__chat__message-text__text-wrapper", children: [(0, jsx_runtime_1.jsx)("div", { className: "ss__chat__message-text__text-wrapper__text", dangerouslySetInnerHTML: { __html: marked_1.marked.parse(text) } }), hasSideChatView ? ((0, jsx_runtime_1.jsx)(Button_1.Button, { className: (0, classnames_1.default)('ss__chat__message-text__view-side-chat', {
156
+ 'ss__chat__message-text__view-side-chat--active': isSideChatActive,
157
+ }), icon: {
158
+ icon: isSideChatActive ? 'close-thin' : 'angle-right',
159
+ title: isSideChatActive ? sideChatLabel.close : sideChatLabel.open,
160
+ }, onClick: function () {
161
+ if (isSideChatActive) {
162
+ currentChat === null || currentChat === void 0 ? void 0 : currentChat.dismissSideChat();
163
+ }
164
+ else {
165
+ currentChat === null || currentChat === void 0 ? void 0 : currentChat.setActiveMessage(chatItem.id);
166
+ }
167
+ } })) : null] })), shouldShowDetailsButton && ((0, jsx_runtime_1.jsx)(Button_1.Button, { className: "ss__chat__message-text__show-details", icon: { icon: 'angle-right', title: 'Show Details' }, onClick: function () {
168
+ currentChat === null || currentChat === void 0 ? void 0 : currentChat.setActiveMessage(chatItem.id);
169
+ }, children: "Show Details" })), chatItem && (0, jsx_runtime_1.jsx)(ResultsDisplay_1.ResultsDisplay, { controller: controller, chatItem: chatItem, scrollToBottom: scrollToBottom, onViewProduct: onViewProduct })] })));
170
+ });
@@ -0,0 +1,11 @@
1
+ import { ChatController } from '@athoscommerce/snap-controller';
2
+ export declare const MessageUser: ((props: MessageUserProps) => import("@emotion/react/jsx-runtime").JSX.Element) & {
3
+ displayName: string;
4
+ };
5
+ interface MessageUserProps {
6
+ chatItem: any;
7
+ controller: ChatController;
8
+ onViewProduct?: (product: any) => void;
9
+ }
10
+ export {};
11
+ //# sourceMappingURL=MessageUser.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MessageUser.d.ts","sourceRoot":"","sources":["../../../../../../../components/src/components/Organisms/Chat/MessageUser.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAyHhE,eAAO,MAAM,WAAW,WAAoB,gBAAgB;;CAsE1D,CAAC;AAEH,UAAU,gBAAgB;IACzB,QAAQ,EAAE,GAAG,CAAC;IACd,UAAU,EAAE,cAAc,CAAC;IAC3B,aAAa,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,KAAK,IAAI,CAAC;CACvC"}
@@ -0,0 +1,192 @@
1
+ "use strict";
2
+ var __assign = (this && this.__assign) || function () {
3
+ __assign = Object.assign || function(t) {
4
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
5
+ s = arguments[i];
6
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
+ t[p] = s[p];
8
+ }
9
+ return t;
10
+ };
11
+ return __assign.apply(this, arguments);
12
+ };
13
+ var __importDefault = (this && this.__importDefault) || function (mod) {
14
+ return (mod && mod.__esModule) ? mod : { "default": mod };
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ exports.MessageUser = void 0;
18
+ var jsx_runtime_1 = require("@emotion/react/jsx-runtime");
19
+ var mobx_react_lite_1 = require("mobx-react-lite");
20
+ var classnames_1 = __importDefault(require("classnames"));
21
+ var Image_1 = require("../../Atoms/Image");
22
+ var marked_1 = require("marked");
23
+ var Icon_1 = require("../../Atoms/Icon");
24
+ var __1 = require("../../..");
25
+ var utilities_1 = require("../../../utilities");
26
+ var defaultStyles = function () {
27
+ var colorPrimary = '#253B80';
28
+ return (0, __1.css)({
29
+ display: 'flex',
30
+ flexDirection: 'column',
31
+ alignItems: 'flex-end',
32
+ marginLeft: '40px',
33
+ '.ss__chat__message-user__request-type': {
34
+ fontStyle: 'italic',
35
+ color: '#999',
36
+ fontSize: '0.8em',
37
+ marginBottom: '4px',
38
+ textAlign: 'right',
39
+ },
40
+ '.ss__chat__message-user__row': {
41
+ display: 'flex',
42
+ flexDirection: 'row',
43
+ justifyContent: 'flex-end',
44
+ alignItems: 'center',
45
+ gap: '10px',
46
+ },
47
+ '.ss__chat__message-user__text': {
48
+ padding: '0.5em 1em',
49
+ borderRadius: '12px',
50
+ borderBottomRightRadius: '3px',
51
+ backgroundColor: colorPrimary,
52
+ color: '#fff',
53
+ },
54
+ '.ss__chat__message-user__attachments': {
55
+ listStyleType: 'none',
56
+ padding: 0,
57
+ margin: 0,
58
+ display: 'flex',
59
+ gap: '8px',
60
+ flexWrap: 'nowrap',
61
+ justifyContent: 'flex-end',
62
+ '.ss__chat__message-user__attachment__product, .ss__chat__message-user__attachment__image, .ss__chat__message-user__attachment__facet': {
63
+ width: '40px',
64
+ height: '40px',
65
+ borderRadius: '50%',
66
+ border: '2px solid #eee',
67
+ overflow: 'hidden',
68
+ display: 'flex',
69
+ justifyContent: 'center',
70
+ alignItems: 'center',
71
+ '.ss__image': {
72
+ aspectRatio: '1 / 1',
73
+ width: '100%',
74
+ height: '100%',
75
+ },
76
+ '.ss__icon': {
77
+ display: 'flex',
78
+ },
79
+ },
80
+ '.ss__chat__message-user__attachment__product--clickable': {
81
+ cursor: 'pointer',
82
+ transition: 'border-color 0.15s ease',
83
+ '&:hover': {
84
+ borderColor: colorPrimary,
85
+ },
86
+ },
87
+ },
88
+ });
89
+ };
90
+ function getRequestTypeLabel(chatItem) {
91
+ var requestType = chatItem.requestType;
92
+ if (!requestType || requestType === 'general')
93
+ return undefined;
94
+ switch (requestType) {
95
+ case 'productQuery':
96
+ return 'Asking about product';
97
+ case 'productComparison':
98
+ return 'Comparing products';
99
+ case 'productSearch':
100
+ return 'Filtering products';
101
+ case 'imageSearch':
102
+ return 'Searching by image';
103
+ case 'productSimilar':
104
+ return 'Finding similar products';
105
+ default:
106
+ return undefined;
107
+ }
108
+ }
109
+ function findProductInChat(chat, productId) {
110
+ var _a;
111
+ if (!chat || !productId)
112
+ return null;
113
+ var _loop_1 = function (msg) {
114
+ if ((msg.messageType === 'productQuery' || msg.messageType === 'productAnswer') && ((_a = msg.sourceProduct) === null || _a === void 0 ? void 0 : _a.id) === productId) {
115
+ return { value: msg.sourceProduct };
116
+ }
117
+ var candidateLists = [];
118
+ if (Array.isArray(msg.results))
119
+ candidateLists.push(msg.results);
120
+ if (Array.isArray(msg.searchResults))
121
+ candidateLists.push(msg.searchResults);
122
+ if (Array.isArray(msg.inspirationSections)) {
123
+ msg.inspirationSections.forEach(function (section) {
124
+ if (Array.isArray(section.products))
125
+ candidateLists.push(section.products);
126
+ });
127
+ }
128
+ if (Array.isArray(msg.recommendationResult)) {
129
+ msg.recommendationResult.forEach(function (rec) {
130
+ if (Array.isArray(rec.results))
131
+ candidateLists.push(rec.results);
132
+ });
133
+ }
134
+ for (var _b = 0, candidateLists_1 = candidateLists; _b < candidateLists_1.length; _b++) {
135
+ var list = candidateLists_1[_b];
136
+ var match = list.find(function (r) { return (r === null || r === void 0 ? void 0 : r.id) === productId; });
137
+ if (match)
138
+ return { value: match };
139
+ }
140
+ };
141
+ for (var _i = 0, chat_1 = chat; _i < chat_1.length; _i++) {
142
+ var msg = chat_1[_i];
143
+ var state_1 = _loop_1(msg);
144
+ if (typeof state_1 === "object")
145
+ return state_1.value;
146
+ }
147
+ return null;
148
+ }
149
+ exports.MessageUser = (0, mobx_react_lite_1.observer)(function (props) {
150
+ var _a, _b;
151
+ var controller = props.controller, chatItem = props.chatItem, onViewProduct = props.onViewProduct;
152
+ var store = controller.store;
153
+ var styling = (0, utilities_1.mergeStyles)(props, defaultStyles);
154
+ var requestTypeLabel = getRequestTypeLabel(chatItem);
155
+ var handleProductAttachmentClick = function (attachment) {
156
+ var _a, _b;
157
+ if (!(attachment === null || attachment === void 0 ? void 0 : attachment.productId))
158
+ return;
159
+ var chat = (_a = store.currentChat) === null || _a === void 0 ? void 0 : _a.chat;
160
+ var existingQuery = chat === null || chat === void 0 ? void 0 : chat.find(function (m) { var _a; return m.messageType === 'productQuery' && ((_a = m.sourceProduct) === null || _a === void 0 ? void 0 : _a.id) === attachment.productId; });
161
+ if (existingQuery) {
162
+ (_b = store.currentChat) === null || _b === void 0 ? void 0 : _b.setActiveMessage(existingQuery.id);
163
+ onViewProduct === null || onViewProduct === void 0 ? void 0 : onViewProduct(existingQuery.sourceProduct);
164
+ return;
165
+ }
166
+ var product = findProductInChat(chat, attachment.productId);
167
+ if (product) {
168
+ controller.viewProduct(product);
169
+ onViewProduct === null || onViewProduct === void 0 ? void 0 : onViewProduct(product);
170
+ }
171
+ };
172
+ return ((0, jsx_runtime_1.jsxs)("div", __assign({ className: "ss__chat__message-user" }, styling, { children: [requestTypeLabel ? (0, jsx_runtime_1.jsx)("div", { className: "ss__chat__message-user__request-type", children: requestTypeLabel }) : null, (0, jsx_runtime_1.jsxs)("div", { className: "ss__chat__message-user__row", children: [(0, jsx_runtime_1.jsx)("ul", { className: "ss__chat__message-user__attachments", children: ((_a = chatItem.attachments) === null || _a === void 0 ? void 0 : _a.length)
173
+ ? (_b = chatItem.attachments) === null || _b === void 0 ? void 0 : _b.map(function (attachmentId) {
174
+ var _a, _b;
175
+ var attachment = (_a = store.currentChat) === null || _a === void 0 ? void 0 : _a.attachments.get(attachmentId);
176
+ switch (attachment === null || attachment === void 0 ? void 0 : attachment.type) {
177
+ case 'image':
178
+ return ((0, jsx_runtime_1.jsx)("li", { className: "ss__chat__message-user__attachment__image", children: (0, jsx_runtime_1.jsx)(Image_1.Image, { style: { height: '200px', width: '200px' }, src: attachment.thumbnailUrl || attachment.base64 || '', alt: '' }) }, attachment.id));
179
+ case 'product': {
180
+ var canOpen = !!findProductInChat((_b = store.currentChat) === null || _b === void 0 ? void 0 : _b.chat, attachment.productId);
181
+ return ((0, jsx_runtime_1.jsx)("li", { className: (0, classnames_1.default)('ss__chat__message-user__attachment__product', {
182
+ 'ss__chat__message-user__attachment__product--clickable': canOpen,
183
+ }), onClick: canOpen ? function () { return handleProductAttachmentClick(attachment); } : undefined, title: canOpen ? "View details for ".concat(attachment.name) : undefined, children: (0, jsx_runtime_1.jsx)(Image_1.Image, { style: { height: '200px', width: '200px' }, src: attachment.thumbnailUrl || '', alt: attachment.name }) }, attachment.id));
184
+ }
185
+ case 'facet':
186
+ return ((0, jsx_runtime_1.jsx)("li", { className: "ss__chat__message-user__attachment__facet", children: (0, jsx_runtime_1.jsx)(Icon_1.Icon, { title: "Filter: ".concat(attachment.facetLabel, " = ").concat(attachment.label), icon: "filter-funnel", size: 27 }) }, attachment.id));
187
+ default:
188
+ return null;
189
+ }
190
+ })
191
+ : null }), chatItem.text ? ((0, jsx_runtime_1.jsx)("div", { className: "ss__chat__message-user__text", dangerouslySetInnerHTML: { __html: marked_1.marked.parse(chatItem.text) } })) : null] })] })));
192
+ });
@@ -0,0 +1,11 @@
1
+ import { ChatController } from '@athoscommerce/snap-controller';
2
+ export declare const ResultsDisplay: ((props: ResultsDisplayProps) => import("@emotion/react/jsx-runtime").JSX.Element | null) & {
3
+ displayName: string;
4
+ };
5
+ export interface ResultsDisplayProps {
6
+ chatItem: any;
7
+ controller: ChatController;
8
+ scrollToBottom: () => void;
9
+ onViewProduct?: () => void;
10
+ }
11
+ //# sourceMappingURL=ResultsDisplay.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ResultsDisplay.d.ts","sourceRoot":"","sources":["../../../../../../../components/src/components/Organisms/Chat/ResultsDisplay.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAgChE,eAAO,MAAM,cAAc,WAAoB,mBAAmB;;CA2EhE,CAAC;AAEH,MAAM,WAAW,mBAAmB;IACnC,QAAQ,EAAE,GAAG,CAAC;IACd,UAAU,EAAE,cAAc,CAAC;IAC3B,cAAc,EAAE,MAAM,IAAI,CAAC;IAC3B,aAAa,CAAC,EAAE,MAAM,IAAI,CAAC;CAC3B"}