@athoscommerce/snap-preact 1.4.0 → 1.5.1-beta.110

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 (387) 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/ChatAttachmentContext/ChatAttachmentContext.d.ts +20 -0
  17. package/dist/cjs/components/src/components/Molecules/ChatAttachmentContext/ChatAttachmentContext.d.ts.map +1 -0
  18. package/dist/cjs/components/src/components/Molecules/ChatAttachmentContext/ChatAttachmentContext.js +186 -0
  19. package/dist/cjs/components/src/components/Molecules/ChatAttachmentContext/index.d.ts +2 -0
  20. package/dist/cjs/components/src/components/Molecules/ChatAttachmentContext/index.d.ts.map +1 -0
  21. package/dist/cjs/components/src/components/Molecules/ChatAttachmentContext/index.js +17 -0
  22. package/dist/cjs/components/src/components/Molecules/ChatInspirationResultMessage/ChatInspirationResultMessage.d.ts +18 -0
  23. package/dist/cjs/components/src/components/Molecules/ChatInspirationResultMessage/ChatInspirationResultMessage.d.ts.map +1 -0
  24. package/dist/cjs/components/src/components/Molecules/ChatInspirationResultMessage/ChatInspirationResultMessage.js +124 -0
  25. package/dist/cjs/components/src/components/Molecules/ChatInspirationResultMessage/index.d.ts +2 -0
  26. package/dist/cjs/components/src/components/Molecules/ChatInspirationResultMessage/index.d.ts.map +1 -0
  27. package/dist/cjs/components/src/components/Molecules/ChatInspirationResultMessage/index.js +17 -0
  28. package/dist/cjs/components/src/components/Molecules/ChatMessageText/ChatMessageText.d.ts +18 -0
  29. package/dist/cjs/components/src/components/Molecules/ChatMessageText/ChatMessageText.d.ts.map +1 -0
  30. package/dist/cjs/components/src/components/Molecules/ChatMessageText/ChatMessageText.js +183 -0
  31. package/dist/cjs/components/src/components/Molecules/ChatMessageText/index.d.ts +2 -0
  32. package/dist/cjs/components/src/components/Molecules/ChatMessageText/index.d.ts.map +1 -0
  33. package/dist/cjs/components/src/components/Molecules/ChatMessageText/index.js +17 -0
  34. package/dist/cjs/components/src/components/Molecules/ChatMessageUser/ChatMessageUser.d.ts +15 -0
  35. package/dist/cjs/components/src/components/Molecules/ChatMessageUser/ChatMessageUser.d.ts.map +1 -0
  36. package/dist/cjs/components/src/components/Molecules/ChatMessageUser/ChatMessageUser.js +255 -0
  37. package/dist/cjs/components/src/components/Molecules/ChatMessageUser/index.d.ts +2 -0
  38. package/dist/cjs/components/src/components/Molecules/ChatMessageUser/index.d.ts.map +1 -0
  39. package/dist/cjs/components/src/components/Molecules/ChatMessageUser/index.js +17 -0
  40. package/dist/cjs/components/src/components/Molecules/ChatProductComparisonMessage/ChatProductComparisonMessage.d.ts +17 -0
  41. package/dist/cjs/components/src/components/Molecules/ChatProductComparisonMessage/ChatProductComparisonMessage.d.ts.map +1 -0
  42. package/dist/cjs/components/src/components/Molecules/ChatProductComparisonMessage/ChatProductComparisonMessage.js +122 -0
  43. package/dist/cjs/components/src/components/Molecules/ChatProductComparisonMessage/index.d.ts +2 -0
  44. package/dist/cjs/components/src/components/Molecules/ChatProductComparisonMessage/index.d.ts.map +1 -0
  45. package/dist/cjs/components/src/components/Molecules/ChatProductComparisonMessage/index.js +17 -0
  46. package/dist/cjs/components/src/components/Molecules/ChatProductQueryMessage/ChatProductQueryMessage.d.ts +25 -0
  47. package/dist/cjs/components/src/components/Molecules/ChatProductQueryMessage/ChatProductQueryMessage.d.ts.map +1 -0
  48. package/dist/cjs/components/src/components/Molecules/ChatProductQueryMessage/ChatProductQueryMessage.js +474 -0
  49. package/dist/cjs/components/src/components/Molecules/ChatProductQueryMessage/index.d.ts +2 -0
  50. package/dist/cjs/components/src/components/Molecules/ChatProductQueryMessage/index.d.ts.map +1 -0
  51. package/dist/cjs/components/src/components/Molecules/ChatProductQueryMessage/index.js +17 -0
  52. package/dist/cjs/components/src/components/Molecules/ChatResult/ChatResult.d.ts +11 -0
  53. package/dist/cjs/components/src/components/Molecules/ChatResult/ChatResult.d.ts.map +1 -0
  54. package/dist/cjs/components/src/components/Molecules/ChatResult/ChatResult.js +189 -0
  55. package/dist/cjs/components/src/components/Molecules/ChatResult/index.d.ts +2 -0
  56. package/dist/cjs/components/src/components/Molecules/ChatResult/index.d.ts.map +1 -0
  57. package/dist/cjs/components/src/components/Molecules/ChatResult/index.js +17 -0
  58. package/dist/cjs/components/src/components/Molecules/ChatResultsDisplay/ChatResultsDisplay.d.ts +12 -0
  59. package/dist/cjs/components/src/components/Molecules/ChatResultsDisplay/ChatResultsDisplay.d.ts.map +1 -0
  60. package/dist/cjs/components/src/components/Molecules/ChatResultsDisplay/ChatResultsDisplay.js +133 -0
  61. package/dist/cjs/components/src/components/Molecules/ChatResultsDisplay/index.d.ts +2 -0
  62. package/dist/cjs/components/src/components/Molecules/ChatResultsDisplay/index.d.ts.map +1 -0
  63. package/dist/cjs/components/src/components/Molecules/ChatResultsDisplay/index.js +17 -0
  64. package/dist/cjs/components/src/components/Molecules/ChatSuggestedQuestions/ChatSuggestedQuestions.d.ts +15 -0
  65. package/dist/cjs/components/src/components/Molecules/ChatSuggestedQuestions/ChatSuggestedQuestions.d.ts.map +1 -0
  66. package/dist/cjs/components/src/components/Molecules/ChatSuggestedQuestions/ChatSuggestedQuestions.js +99 -0
  67. package/dist/cjs/components/src/components/Molecules/ChatSuggestedQuestions/index.d.ts +2 -0
  68. package/dist/cjs/components/src/components/Molecules/ChatSuggestedQuestions/index.d.ts.map +1 -0
  69. package/dist/cjs/components/src/components/Molecules/ChatSuggestedQuestions/index.js +17 -0
  70. package/dist/cjs/components/src/components/Molecules/OverlayBadge/OverlayBadge.js +2 -2
  71. package/dist/cjs/components/src/components/Molecules/Result/Result.d.ts +5 -3
  72. package/dist/cjs/components/src/components/Molecules/Result/Result.d.ts.map +1 -1
  73. package/dist/cjs/components/src/components/Molecules/Result/Result.js +14 -8
  74. package/dist/cjs/components/src/components/Molecules/SearchInput/SearchInput.d.ts +6 -1
  75. package/dist/cjs/components/src/components/Molecules/SearchInput/SearchInput.d.ts.map +1 -1
  76. package/dist/cjs/components/src/components/Molecules/SearchInput/SearchInput.js +20 -3
  77. package/dist/cjs/components/src/components/Molecules/Slideout/Slideout.d.ts.map +1 -1
  78. package/dist/cjs/components/src/components/Molecules/Slideout/Slideout.js +30 -12
  79. package/dist/cjs/components/src/components/Organisms/Chat/Chat.d.ts +27 -0
  80. package/dist/cjs/components/src/components/Organisms/Chat/Chat.d.ts.map +1 -0
  81. package/dist/cjs/components/src/components/Organisms/Chat/Chat.js +815 -0
  82. package/dist/cjs/components/src/components/Organisms/Chat/Chat.styles.d.ts +16 -0
  83. package/dist/cjs/components/src/components/Organisms/Chat/Chat.styles.d.ts.map +1 -0
  84. package/dist/cjs/components/src/components/Organisms/Chat/Chat.styles.js +1090 -0
  85. package/dist/cjs/components/src/components/Organisms/Chat/hooks/useChatFileUpload.d.ts +32 -0
  86. package/dist/cjs/components/src/components/Organisms/Chat/hooks/useChatFileUpload.d.ts.map +1 -0
  87. package/dist/cjs/components/src/components/Organisms/Chat/hooks/useChatFileUpload.js +104 -0
  88. package/dist/cjs/components/src/components/Organisms/Chat/hooks/useChatGestures.d.ts +40 -0
  89. package/dist/cjs/components/src/components/Organisms/Chat/hooks/useChatGestures.d.ts.map +1 -0
  90. package/dist/cjs/components/src/components/Organisms/Chat/hooks/useChatGestures.js +87 -0
  91. package/dist/cjs/components/src/components/Organisms/Chat/hooks/useChatOverflow.d.ts +44 -0
  92. package/dist/cjs/components/src/components/Organisms/Chat/hooks/useChatOverflow.d.ts.map +1 -0
  93. package/dist/cjs/components/src/components/Organisms/Chat/hooks/useChatOverflow.js +116 -0
  94. package/dist/cjs/components/src/components/Organisms/Chat/index.d.ts +2 -0
  95. package/dist/cjs/components/src/components/Organisms/Chat/index.d.ts.map +1 -0
  96. package/dist/cjs/components/src/components/Organisms/Chat/index.js +17 -0
  97. package/dist/cjs/components/src/components/Organisms/Facet/Facet.js +2 -1
  98. package/dist/cjs/components/src/components/Organisms/FacetsHorizontal/FacetsHorizontal.js +2 -1
  99. package/dist/cjs/components/src/components/Organisms/Results/Results.js +1 -1
  100. package/dist/cjs/components/src/components/Templates/AutocompleteFixed/AutocompleteFixed.d.ts +1 -1
  101. package/dist/cjs/components/src/components/Templates/AutocompleteFixed/AutocompleteFixed.d.ts.map +1 -1
  102. package/dist/cjs/components/src/components/Templates/AutocompleteFixed/AutocompleteFixed.js +3 -1
  103. package/dist/cjs/components/src/components/Templates/AutocompleteModal/AutocompleteModal.d.ts +1 -1
  104. package/dist/cjs/components/src/components/Templates/AutocompleteModal/AutocompleteModal.d.ts.map +1 -1
  105. package/dist/cjs/components/src/components/Templates/AutocompleteModal/AutocompleteModal.js +3 -1
  106. package/dist/cjs/components/src/components/Templates/AutocompleteSlideout/AutocompleteSlideout.d.ts +1 -1
  107. package/dist/cjs/components/src/components/Templates/AutocompleteSlideout/AutocompleteSlideout.d.ts.map +1 -1
  108. package/dist/cjs/components/src/components/Templates/AutocompleteSlideout/AutocompleteSlideout.js +3 -1
  109. package/dist/cjs/components/src/components/Templates/Chat/Chat.d.ts +12 -0
  110. package/dist/cjs/components/src/components/Templates/Chat/Chat.d.ts.map +1 -0
  111. package/dist/cjs/components/src/components/Templates/Chat/Chat.js +55 -0
  112. package/dist/cjs/components/src/components/Templates/Chat/index.d.ts +2 -0
  113. package/dist/cjs/components/src/components/Templates/Chat/index.d.ts.map +1 -0
  114. package/dist/cjs/components/src/components/Templates/Chat/index.js +17 -0
  115. package/dist/cjs/components/src/index.d.ts +11 -0
  116. package/dist/cjs/components/src/index.d.ts.map +1 -1
  117. package/dist/cjs/components/src/index.js +13 -1
  118. package/dist/cjs/components/src/providers/withTracking.d.ts +2 -2
  119. package/dist/cjs/components/src/providers/withTracking.d.ts.map +1 -1
  120. package/dist/cjs/components/src/themes/base/components/templates/chat.d.ts +4 -0
  121. package/dist/cjs/components/src/themes/base/components/templates/chat.d.ts.map +1 -0
  122. package/dist/cjs/components/src/themes/base/components/templates/chat.js +6 -0
  123. package/dist/cjs/components/src/themes/base/components/templates/index.d.ts.map +1 -1
  124. package/dist/cjs/components/src/themes/base/components/templates/index.js +5 -4
  125. package/dist/cjs/components/src/themes/bocachica/components/templates/chat.d.ts +4 -0
  126. package/dist/cjs/components/src/themes/bocachica/components/templates/chat.d.ts.map +1 -0
  127. package/dist/cjs/components/src/themes/bocachica/components/templates/chat.js +6 -0
  128. package/dist/cjs/components/src/themes/bocachica/components/templates/index.d.ts.map +1 -1
  129. package/dist/cjs/components/src/themes/bocachica/components/templates/index.js +5 -4
  130. package/dist/cjs/components/src/themes/everest/components/templates/chat.d.ts +4 -0
  131. package/dist/cjs/components/src/themes/everest/components/templates/chat.d.ts.map +1 -0
  132. package/dist/cjs/components/src/themes/everest/components/templates/chat.js +6 -0
  133. package/dist/cjs/components/src/themes/everest/components/templates/index.d.ts.map +1 -1
  134. package/dist/cjs/components/src/themes/everest/components/templates/index.js +5 -4
  135. package/dist/cjs/components/src/themes/matterhorn/components/templates/chat.d.ts +4 -0
  136. package/dist/cjs/components/src/themes/matterhorn/components/templates/chat.d.ts.map +1 -0
  137. package/dist/cjs/components/src/themes/matterhorn/components/templates/chat.js +6 -0
  138. package/dist/cjs/components/src/themes/matterhorn/components/templates/index.d.ts.map +1 -1
  139. package/dist/cjs/components/src/themes/matterhorn/components/templates/index.js +5 -4
  140. package/dist/cjs/components/src/themes/pike/components/templates/chat.d.ts +4 -0
  141. package/dist/cjs/components/src/themes/pike/components/templates/chat.d.ts.map +1 -0
  142. package/dist/cjs/components/src/themes/pike/components/templates/chat.js +6 -0
  143. package/dist/cjs/components/src/themes/pike/components/templates/index.d.ts.map +1 -1
  144. package/dist/cjs/components/src/themes/pike/components/templates/index.js +5 -4
  145. package/dist/cjs/components/src/themes/snapnco/components/templates/chat.d.ts +4 -0
  146. package/dist/cjs/components/src/themes/snapnco/components/templates/chat.d.ts.map +1 -0
  147. package/dist/cjs/components/src/themes/snapnco/components/templates/chat.js +6 -0
  148. package/dist/cjs/components/src/themes/snapnco/components/templates/index.d.ts.map +1 -1
  149. package/dist/cjs/components/src/themes/snapnco/components/templates/index.js +5 -4
  150. package/dist/cjs/components/src/themes/snappy/components/templates/chat.d.ts +4 -0
  151. package/dist/cjs/components/src/themes/snappy/components/templates/chat.d.ts.map +1 -0
  152. package/dist/cjs/components/src/themes/snappy/components/templates/chat.js +6 -0
  153. package/dist/cjs/components/src/themes/snappy/components/templates/index.d.ts.map +1 -1
  154. package/dist/cjs/components/src/themes/snappy/components/templates/index.js +5 -4
  155. package/dist/cjs/components/src/themes/themeComponents/chat.d.ts +4 -0
  156. package/dist/cjs/components/src/themes/themeComponents/chat.d.ts.map +1 -0
  157. package/dist/cjs/components/src/themes/themeComponents/chat.js +14 -0
  158. package/dist/cjs/components/src/utilities/Colour/Colour.d.ts +11 -0
  159. package/dist/cjs/components/src/utilities/Colour/Colour.d.ts.map +1 -1
  160. package/dist/cjs/components/src/utilities/Colour/Colour.js +32 -0
  161. package/dist/cjs/components/src/utilities/snapify.d.ts +3 -2
  162. package/dist/cjs/components/src/utilities/snapify.d.ts.map +1 -1
  163. package/dist/cjs/components/src/utilities/snapify.js +48 -0
  164. package/dist/cjs/src/Instantiators/RecommendationInstantiator.d.ts +1 -0
  165. package/dist/cjs/src/Instantiators/RecommendationInstantiator.d.ts.map +1 -1
  166. package/dist/cjs/src/Instantiators/RecommendationInstantiator.js +161 -123
  167. package/dist/cjs/src/Snap.d.ts +3 -2
  168. package/dist/cjs/src/Snap.d.ts.map +1 -1
  169. package/dist/cjs/src/Snap.js +142 -30
  170. package/dist/cjs/src/Templates/SnapTemplates.d.ts +2 -1
  171. package/dist/cjs/src/Templates/SnapTemplates.d.ts.map +1 -1
  172. package/dist/cjs/src/Templates/SnapTemplates.js +67 -7
  173. package/dist/cjs/src/Templates/Stores/LibraryStore.d.ts +4 -0
  174. package/dist/cjs/src/Templates/Stores/LibraryStore.d.ts.map +1 -1
  175. package/dist/cjs/src/Templates/Stores/LibraryStore.js +19 -0
  176. package/dist/cjs/src/Templates/Stores/TemplateStore.d.ts +21 -6
  177. package/dist/cjs/src/Templates/Stores/TemplateStore.d.ts.map +1 -1
  178. package/dist/cjs/src/Templates/Stores/TemplateStore.js +2 -1
  179. package/dist/cjs/src/Templates/Stores/library/components/Chat.d.ts +2 -0
  180. package/dist/cjs/src/Templates/Stores/library/components/Chat.d.ts.map +1 -0
  181. package/dist/cjs/src/Templates/Stores/library/components/Chat.js +5 -0
  182. package/dist/cjs/src/Templates/Stores/library/languages/es.d.ts.map +1 -1
  183. package/dist/cjs/src/Templates/Stores/library/languages/es.js +5 -0
  184. package/dist/cjs/src/Templates/Stores/library/languages/fr.d.ts.map +1 -1
  185. package/dist/cjs/src/Templates/Stores/library/languages/fr.js +5 -0
  186. package/dist/cjs/src/create/createChatController.d.ts +5 -0
  187. package/dist/cjs/src/create/createChatController.d.ts.map +1 -0
  188. package/dist/cjs/src/create/createChatController.js +43 -0
  189. package/dist/cjs/src/setupEvents.d.ts +13 -0
  190. package/dist/cjs/src/setupEvents.d.ts.map +1 -1
  191. package/dist/cjs/src/setupEvents.js +87 -0
  192. package/dist/cjs/src/types.d.ts +15 -3
  193. package/dist/cjs/src/types.d.ts.map +1 -1
  194. package/dist/esm/components/src/components/Atoms/Button/Button.d.ts +1 -1
  195. package/dist/esm/components/src/components/Atoms/Button/Button.d.ts.map +1 -1
  196. package/dist/esm/components/src/components/Atoms/ChatLoadingIndicator/ChatLoadingIndicator.d.ts +7 -0
  197. package/dist/esm/components/src/components/Atoms/ChatLoadingIndicator/ChatLoadingIndicator.d.ts.map +1 -0
  198. package/dist/esm/components/src/components/Atoms/ChatLoadingIndicator/ChatLoadingIndicator.js +67 -0
  199. package/dist/esm/components/src/components/Atoms/ChatLoadingIndicator/index.d.ts +2 -0
  200. package/dist/esm/components/src/components/Atoms/ChatLoadingIndicator/index.d.ts.map +1 -0
  201. package/dist/esm/components/src/components/Atoms/ChatLoadingIndicator/index.js +1 -0
  202. package/dist/esm/components/src/components/Atoms/Dropdown/Dropdown.d.ts +1 -0
  203. package/dist/esm/components/src/components/Atoms/Dropdown/Dropdown.d.ts.map +1 -1
  204. package/dist/esm/components/src/components/Atoms/Dropdown/Dropdown.js +33 -9
  205. package/dist/esm/components/src/components/Atoms/Icon/paths.d.ts +21 -0
  206. package/dist/esm/components/src/components/Atoms/Icon/paths.d.ts.map +1 -1
  207. package/dist/esm/components/src/components/Atoms/Icon/paths.js +21 -0
  208. package/dist/esm/components/src/components/Molecules/CalloutBadge/CalloutBadge.js +1 -1
  209. package/dist/esm/components/src/components/Molecules/ChatAttachmentContext/ChatAttachmentContext.d.ts +20 -0
  210. package/dist/esm/components/src/components/Molecules/ChatAttachmentContext/ChatAttachmentContext.d.ts.map +1 -0
  211. package/dist/esm/components/src/components/Molecules/ChatAttachmentContext/ChatAttachmentContext.js +168 -0
  212. package/dist/esm/components/src/components/Molecules/ChatAttachmentContext/index.d.ts +2 -0
  213. package/dist/esm/components/src/components/Molecules/ChatAttachmentContext/index.d.ts.map +1 -0
  214. package/dist/esm/components/src/components/Molecules/ChatAttachmentContext/index.js +1 -0
  215. package/dist/esm/components/src/components/Molecules/ChatInspirationResultMessage/ChatInspirationResultMessage.d.ts +18 -0
  216. package/dist/esm/components/src/components/Molecules/ChatInspirationResultMessage/ChatInspirationResultMessage.d.ts.map +1 -0
  217. package/dist/esm/components/src/components/Molecules/ChatInspirationResultMessage/ChatInspirationResultMessage.js +118 -0
  218. package/dist/esm/components/src/components/Molecules/ChatInspirationResultMessage/index.d.ts +2 -0
  219. package/dist/esm/components/src/components/Molecules/ChatInspirationResultMessage/index.d.ts.map +1 -0
  220. package/dist/esm/components/src/components/Molecules/ChatInspirationResultMessage/index.js +1 -0
  221. package/dist/esm/components/src/components/Molecules/ChatMessageText/ChatMessageText.d.ts +18 -0
  222. package/dist/esm/components/src/components/Molecules/ChatMessageText/ChatMessageText.d.ts.map +1 -0
  223. package/dist/esm/components/src/components/Molecules/ChatMessageText/ChatMessageText.js +164 -0
  224. package/dist/esm/components/src/components/Molecules/ChatMessageText/index.d.ts +2 -0
  225. package/dist/esm/components/src/components/Molecules/ChatMessageText/index.d.ts.map +1 -0
  226. package/dist/esm/components/src/components/Molecules/ChatMessageText/index.js +1 -0
  227. package/dist/esm/components/src/components/Molecules/ChatMessageUser/ChatMessageUser.d.ts +15 -0
  228. package/dist/esm/components/src/components/Molecules/ChatMessageUser/ChatMessageUser.d.ts.map +1 -0
  229. package/dist/esm/components/src/components/Molecules/ChatMessageUser/ChatMessageUser.js +223 -0
  230. package/dist/esm/components/src/components/Molecules/ChatMessageUser/index.d.ts +2 -0
  231. package/dist/esm/components/src/components/Molecules/ChatMessageUser/index.d.ts.map +1 -0
  232. package/dist/esm/components/src/components/Molecules/ChatMessageUser/index.js +1 -0
  233. package/dist/esm/components/src/components/Molecules/ChatProductComparisonMessage/ChatProductComparisonMessage.d.ts +17 -0
  234. package/dist/esm/components/src/components/Molecules/ChatProductComparisonMessage/ChatProductComparisonMessage.d.ts.map +1 -0
  235. package/dist/esm/components/src/components/Molecules/ChatProductComparisonMessage/ChatProductComparisonMessage.js +100 -0
  236. package/dist/esm/components/src/components/Molecules/ChatProductComparisonMessage/index.d.ts +2 -0
  237. package/dist/esm/components/src/components/Molecules/ChatProductComparisonMessage/index.d.ts.map +1 -0
  238. package/dist/esm/components/src/components/Molecules/ChatProductComparisonMessage/index.js +1 -0
  239. package/dist/esm/components/src/components/Molecules/ChatProductQueryMessage/ChatProductQueryMessage.d.ts +25 -0
  240. package/dist/esm/components/src/components/Molecules/ChatProductQueryMessage/ChatProductQueryMessage.d.ts.map +1 -0
  241. package/dist/esm/components/src/components/Molecules/ChatProductQueryMessage/ChatProductQueryMessage.js +449 -0
  242. package/dist/esm/components/src/components/Molecules/ChatProductQueryMessage/index.d.ts +2 -0
  243. package/dist/esm/components/src/components/Molecules/ChatProductQueryMessage/index.d.ts.map +1 -0
  244. package/dist/esm/components/src/components/Molecules/ChatProductQueryMessage/index.js +1 -0
  245. package/dist/esm/components/src/components/Molecules/ChatResult/ChatResult.d.ts +11 -0
  246. package/dist/esm/components/src/components/Molecules/ChatResult/ChatResult.d.ts.map +1 -0
  247. package/dist/esm/components/src/components/Molecules/ChatResult/ChatResult.js +171 -0
  248. package/dist/esm/components/src/components/Molecules/ChatResult/index.d.ts +2 -0
  249. package/dist/esm/components/src/components/Molecules/ChatResult/index.d.ts.map +1 -0
  250. package/dist/esm/components/src/components/Molecules/ChatResult/index.js +1 -0
  251. package/dist/esm/components/src/components/Molecules/ChatResultsDisplay/ChatResultsDisplay.d.ts +12 -0
  252. package/dist/esm/components/src/components/Molecules/ChatResultsDisplay/ChatResultsDisplay.d.ts.map +1 -0
  253. package/dist/esm/components/src/components/Molecules/ChatResultsDisplay/ChatResultsDisplay.js +112 -0
  254. package/dist/esm/components/src/components/Molecules/ChatResultsDisplay/index.d.ts +2 -0
  255. package/dist/esm/components/src/components/Molecules/ChatResultsDisplay/index.d.ts.map +1 -0
  256. package/dist/esm/components/src/components/Molecules/ChatResultsDisplay/index.js +1 -0
  257. package/dist/esm/components/src/components/Molecules/ChatSuggestedQuestions/ChatSuggestedQuestions.d.ts +15 -0
  258. package/dist/esm/components/src/components/Molecules/ChatSuggestedQuestions/ChatSuggestedQuestions.d.ts.map +1 -0
  259. package/dist/esm/components/src/components/Molecules/ChatSuggestedQuestions/ChatSuggestedQuestions.js +80 -0
  260. package/dist/esm/components/src/components/Molecules/ChatSuggestedQuestions/index.d.ts +2 -0
  261. package/dist/esm/components/src/components/Molecules/ChatSuggestedQuestions/index.d.ts.map +1 -0
  262. package/dist/esm/components/src/components/Molecules/ChatSuggestedQuestions/index.js +1 -0
  263. package/dist/esm/components/src/components/Molecules/OverlayBadge/OverlayBadge.js +1 -1
  264. package/dist/esm/components/src/components/Molecules/Result/Result.d.ts +5 -3
  265. package/dist/esm/components/src/components/Molecules/Result/Result.d.ts.map +1 -1
  266. package/dist/esm/components/src/components/Molecules/Result/Result.js +12 -7
  267. package/dist/esm/components/src/components/Molecules/SearchInput/SearchInput.d.ts +6 -1
  268. package/dist/esm/components/src/components/Molecules/SearchInput/SearchInput.d.ts.map +1 -1
  269. package/dist/esm/components/src/components/Molecules/SearchInput/SearchInput.js +36 -3
  270. package/dist/esm/components/src/components/Molecules/Slideout/Slideout.d.ts.map +1 -1
  271. package/dist/esm/components/src/components/Molecules/Slideout/Slideout.js +30 -12
  272. package/dist/esm/components/src/components/Organisms/Chat/Chat.d.ts +27 -0
  273. package/dist/esm/components/src/components/Organisms/Chat/Chat.d.ts.map +1 -0
  274. package/dist/esm/components/src/components/Organisms/Chat/Chat.js +726 -0
  275. package/dist/esm/components/src/components/Organisms/Chat/Chat.styles.d.ts +16 -0
  276. package/dist/esm/components/src/components/Organisms/Chat/Chat.styles.d.ts.map +1 -0
  277. package/dist/esm/components/src/components/Organisms/Chat/Chat.styles.js +1105 -0
  278. package/dist/esm/components/src/components/Organisms/Chat/hooks/useChatFileUpload.d.ts +32 -0
  279. package/dist/esm/components/src/components/Organisms/Chat/hooks/useChatFileUpload.d.ts.map +1 -0
  280. package/dist/esm/components/src/components/Organisms/Chat/hooks/useChatFileUpload.js +54 -0
  281. package/dist/esm/components/src/components/Organisms/Chat/hooks/useChatGestures.d.ts +40 -0
  282. package/dist/esm/components/src/components/Organisms/Chat/hooks/useChatGestures.d.ts.map +1 -0
  283. package/dist/esm/components/src/components/Organisms/Chat/hooks/useChatGestures.js +81 -0
  284. package/dist/esm/components/src/components/Organisms/Chat/hooks/useChatOverflow.d.ts +44 -0
  285. package/dist/esm/components/src/components/Organisms/Chat/hooks/useChatOverflow.d.ts.map +1 -0
  286. package/dist/esm/components/src/components/Organisms/Chat/hooks/useChatOverflow.js +110 -0
  287. package/dist/esm/components/src/components/Organisms/Chat/index.d.ts +2 -0
  288. package/dist/esm/components/src/components/Organisms/Chat/index.d.ts.map +1 -0
  289. package/dist/esm/components/src/components/Organisms/Chat/index.js +1 -0
  290. package/dist/esm/components/src/components/Organisms/Facet/Facet.js +1 -1
  291. package/dist/esm/components/src/components/Organisms/FacetsHorizontal/FacetsHorizontal.js +1 -1
  292. package/dist/esm/components/src/components/Organisms/Results/Results.js +1 -1
  293. package/dist/esm/components/src/components/Templates/AutocompleteFixed/AutocompleteFixed.d.ts +1 -1
  294. package/dist/esm/components/src/components/Templates/AutocompleteFixed/AutocompleteFixed.d.ts.map +1 -1
  295. package/dist/esm/components/src/components/Templates/AutocompleteFixed/AutocompleteFixed.js +4 -1
  296. package/dist/esm/components/src/components/Templates/AutocompleteModal/AutocompleteModal.d.ts +1 -1
  297. package/dist/esm/components/src/components/Templates/AutocompleteModal/AutocompleteModal.d.ts.map +1 -1
  298. package/dist/esm/components/src/components/Templates/AutocompleteModal/AutocompleteModal.js +4 -1
  299. package/dist/esm/components/src/components/Templates/AutocompleteSlideout/AutocompleteSlideout.d.ts +1 -1
  300. package/dist/esm/components/src/components/Templates/AutocompleteSlideout/AutocompleteSlideout.d.ts.map +1 -1
  301. package/dist/esm/components/src/components/Templates/AutocompleteSlideout/AutocompleteSlideout.js +4 -1
  302. package/dist/esm/components/src/components/Templates/Chat/Chat.d.ts +12 -0
  303. package/dist/esm/components/src/components/Templates/Chat/Chat.d.ts.map +1 -0
  304. package/dist/esm/components/src/components/Templates/Chat/Chat.js +42 -0
  305. package/dist/esm/components/src/components/Templates/Chat/index.d.ts +2 -0
  306. package/dist/esm/components/src/components/Templates/Chat/index.d.ts.map +1 -0
  307. package/dist/esm/components/src/components/Templates/Chat/index.js +1 -0
  308. package/dist/esm/components/src/index.d.ts +11 -0
  309. package/dist/esm/components/src/index.d.ts.map +1 -1
  310. package/dist/esm/components/src/index.js +11 -0
  311. package/dist/esm/components/src/providers/withTracking.d.ts +2 -2
  312. package/dist/esm/components/src/providers/withTracking.d.ts.map +1 -1
  313. package/dist/esm/components/src/themes/base/components/templates/chat.d.ts +4 -0
  314. package/dist/esm/components/src/themes/base/components/templates/chat.d.ts.map +1 -0
  315. package/dist/esm/components/src/themes/base/components/templates/chat.js +3 -0
  316. package/dist/esm/components/src/themes/base/components/templates/index.d.ts.map +1 -1
  317. package/dist/esm/components/src/themes/base/components/templates/index.js +5 -0
  318. package/dist/esm/components/src/themes/bocachica/components/templates/chat.d.ts +4 -0
  319. package/dist/esm/components/src/themes/bocachica/components/templates/chat.d.ts.map +1 -0
  320. package/dist/esm/components/src/themes/bocachica/components/templates/chat.js +3 -0
  321. package/dist/esm/components/src/themes/bocachica/components/templates/index.d.ts.map +1 -1
  322. package/dist/esm/components/src/themes/bocachica/components/templates/index.js +5 -0
  323. package/dist/esm/components/src/themes/everest/components/templates/chat.d.ts +4 -0
  324. package/dist/esm/components/src/themes/everest/components/templates/chat.d.ts.map +1 -0
  325. package/dist/esm/components/src/themes/everest/components/templates/chat.js +3 -0
  326. package/dist/esm/components/src/themes/everest/components/templates/index.d.ts.map +1 -1
  327. package/dist/esm/components/src/themes/everest/components/templates/index.js +5 -0
  328. package/dist/esm/components/src/themes/matterhorn/components/templates/chat.d.ts +4 -0
  329. package/dist/esm/components/src/themes/matterhorn/components/templates/chat.d.ts.map +1 -0
  330. package/dist/esm/components/src/themes/matterhorn/components/templates/chat.js +3 -0
  331. package/dist/esm/components/src/themes/matterhorn/components/templates/index.d.ts.map +1 -1
  332. package/dist/esm/components/src/themes/matterhorn/components/templates/index.js +5 -0
  333. package/dist/esm/components/src/themes/pike/components/templates/chat.d.ts +4 -0
  334. package/dist/esm/components/src/themes/pike/components/templates/chat.d.ts.map +1 -0
  335. package/dist/esm/components/src/themes/pike/components/templates/chat.js +3 -0
  336. package/dist/esm/components/src/themes/pike/components/templates/index.d.ts.map +1 -1
  337. package/dist/esm/components/src/themes/pike/components/templates/index.js +5 -0
  338. package/dist/esm/components/src/themes/snapnco/components/templates/chat.d.ts +4 -0
  339. package/dist/esm/components/src/themes/snapnco/components/templates/chat.d.ts.map +1 -0
  340. package/dist/esm/components/src/themes/snapnco/components/templates/chat.js +3 -0
  341. package/dist/esm/components/src/themes/snapnco/components/templates/index.d.ts.map +1 -1
  342. package/dist/esm/components/src/themes/snapnco/components/templates/index.js +5 -0
  343. package/dist/esm/components/src/themes/snappy/components/templates/chat.d.ts +4 -0
  344. package/dist/esm/components/src/themes/snappy/components/templates/chat.d.ts.map +1 -0
  345. package/dist/esm/components/src/themes/snappy/components/templates/chat.js +3 -0
  346. package/dist/esm/components/src/themes/snappy/components/templates/index.d.ts.map +1 -1
  347. package/dist/esm/components/src/themes/snappy/components/templates/index.js +5 -0
  348. package/dist/esm/components/src/themes/themeComponents/chat.d.ts +4 -0
  349. package/dist/esm/components/src/themes/themeComponents/chat.d.ts.map +1 -0
  350. package/dist/esm/components/src/themes/themeComponents/chat.js +11 -0
  351. package/dist/esm/components/src/utilities/Colour/Colour.d.ts +11 -0
  352. package/dist/esm/components/src/utilities/Colour/Colour.d.ts.map +1 -1
  353. package/dist/esm/components/src/utilities/Colour/Colour.js +30 -0
  354. package/dist/esm/components/src/utilities/snapify.d.ts +3 -2
  355. package/dist/esm/components/src/utilities/snapify.d.ts.map +1 -1
  356. package/dist/esm/components/src/utilities/snapify.js +29 -2
  357. package/dist/esm/src/Instantiators/RecommendationInstantiator.d.ts +1 -0
  358. package/dist/esm/src/Instantiators/RecommendationInstantiator.d.ts.map +1 -1
  359. package/dist/esm/src/Instantiators/RecommendationInstantiator.js +130 -84
  360. package/dist/esm/src/Snap.d.ts +3 -2
  361. package/dist/esm/src/Snap.d.ts.map +1 -1
  362. package/dist/esm/src/Snap.js +80 -6
  363. package/dist/esm/src/Templates/SnapTemplates.d.ts +2 -1
  364. package/dist/esm/src/Templates/SnapTemplates.d.ts.map +1 -1
  365. package/dist/esm/src/Templates/SnapTemplates.js +61 -6
  366. package/dist/esm/src/Templates/Stores/LibraryStore.d.ts +4 -0
  367. package/dist/esm/src/Templates/Stores/LibraryStore.d.ts.map +1 -1
  368. package/dist/esm/src/Templates/Stores/LibraryStore.js +6 -0
  369. package/dist/esm/src/Templates/Stores/TemplateStore.d.ts +21 -6
  370. package/dist/esm/src/Templates/Stores/TemplateStore.d.ts.map +1 -1
  371. package/dist/esm/src/Templates/Stores/TemplateStore.js +2 -1
  372. package/dist/esm/src/Templates/Stores/library/components/Chat.d.ts +2 -0
  373. package/dist/esm/src/Templates/Stores/library/components/Chat.d.ts.map +1 -0
  374. package/dist/esm/src/Templates/Stores/library/components/Chat.js +1 -0
  375. package/dist/esm/src/Templates/Stores/library/languages/es.d.ts.map +1 -1
  376. package/dist/esm/src/Templates/Stores/library/languages/es.js +5 -0
  377. package/dist/esm/src/Templates/Stores/library/languages/fr.d.ts.map +1 -1
  378. package/dist/esm/src/Templates/Stores/library/languages/fr.js +5 -0
  379. package/dist/esm/src/create/createChatController.d.ts +5 -0
  380. package/dist/esm/src/create/createChatController.d.ts.map +1 -0
  381. package/dist/esm/src/create/createChatController.js +29 -0
  382. package/dist/esm/src/setupEvents.d.ts +13 -0
  383. package/dist/esm/src/setupEvents.d.ts.map +1 -1
  384. package/dist/esm/src/setupEvents.js +40 -0
  385. package/dist/esm/src/types.d.ts +15 -3
  386. package/dist/esm/src/types.d.ts.map +1 -1
  387. package/package.json +13 -12
@@ -1,7 +1,7 @@
1
1
  import { configure as configureMobx } from 'mobx';
2
- import { SearchController, AutocompleteController, RecommendationController } from '@athoscommerce/snap-controller';
2
+ import { SearchController, AutocompleteController, RecommendationController, ChatController } from '@athoscommerce/snap-controller';
3
3
  import { Client } from '@athoscommerce/snap-client';
4
- import { SearchStore, AutocompleteStore, RecommendationStore } from '@athoscommerce/snap-store-mobx';
4
+ import { SearchStore, AutocompleteStore, RecommendationStore, ChatStore } from '@athoscommerce/snap-store-mobx';
5
5
  import { UrlManager, UrlTranslator, reactLinker } from '@athoscommerce/snap-url-manager';
6
6
  import { EventManager } from '@athoscommerce/snap-event-manager';
7
7
  import { Profiler } from '@athoscommerce/snap-profiler';
@@ -42,6 +42,20 @@ export class Snapify {
42
42
  cntrlr.init();
43
43
  return cntrlr;
44
44
  }
45
+ static chat(config) {
46
+ const id = config.id;
47
+ if (controllers[id]) {
48
+ return controllers[id];
49
+ }
50
+ const cntrlr = (controllers[id] = createChatController({ client, controller: config }));
51
+ cntrlr.on('afterStore', async ({ controller }, next) => {
52
+ controller.log.debug('controller', controller);
53
+ controller.log.debug('store', controller.store.toJSON());
54
+ await next();
55
+ });
56
+ cntrlr.init();
57
+ return cntrlr;
58
+ }
45
59
  static search(config) {
46
60
  const id = config.id;
47
61
  if (controllers[id]) {
@@ -83,6 +97,19 @@ function createRecommendationController(config) {
83
97
  });
84
98
  return cntrlr;
85
99
  }
100
+ function createChatController(config) {
101
+ const urlManager = new UrlManager(new UrlTranslator(), reactLinker);
102
+ const cntrlr = new ChatController(config.controller, {
103
+ client: new Client(config.client.globals, config.client.config),
104
+ store: new ChatStore({ ...config.controller, siteId: config.client.globals.siteId }, { urlManager }),
105
+ urlManager,
106
+ eventManager: new EventManager(),
107
+ profiler: new Profiler(),
108
+ logger: new Logger(),
109
+ tracker: new Tracker(config.client.globals),
110
+ });
111
+ return cntrlr;
112
+ }
86
113
  function createAutocompleteController(config) {
87
114
  const urlManager = new UrlManager(new UrlTranslator(), reactLinker).detach();
88
115
  const cntrlr = new AutocompleteController(config.controller, {
@@ -69,6 +69,7 @@ export declare class RecommendationInstantiator {
69
69
  plugin(func: (cntrlr: AbstractController, ...args: any) => void | Promise<void>, ...args: unknown[]): void;
70
70
  on<T>(event: string, ...func: Middleware<T>[]): void;
71
71
  use(attachments: Attachments): void;
72
+ cleanupStaleControllers(): void;
72
73
  }
73
74
  type DefinedProps = {
74
75
  [key: string]: any;
@@ -1 +1 @@
1
- {"version":3,"file":"RecommendationInstantiator.d.ts","sourceRoot":"","sources":["../../../../src/Instantiators/RecommendationInstantiator.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"RecommendationInstantiator.d.ts","sourceRoot":"","sources":["../../../../src/Instantiators/RecommendationInstantiator.tsx"],"names":[],"mappings":"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"}
@@ -5,6 +5,7 @@ import { AppMode, DomTargeter, getContext } from '@athoscommerce/snap-toolbox';
5
5
  import { Client } from '@athoscommerce/snap-client';
6
6
  import { Logger } from '@athoscommerce/snap-logger';
7
7
  import { Tracker } from '@athoscommerce/snap-tracker';
8
+ import { createRecommendationController } from '../create';
8
9
  const DEFAULT_BRANCH = 'production';
9
10
  export class RecommendationInstantiator {
10
11
  constructor(config, services, context) {
@@ -40,29 +41,26 @@ export class RecommendationInstantiator {
40
41
  this.tracker = services?.tracker || new Tracker(this.config.client.globals);
41
42
  this.logger = services?.logger || new Logger({ prefix: 'RecommendationInstantiator ', mode: this.mode });
42
43
  const profileCount = {};
44
+ // script block targeter for "grouped" and "legacy" blocks
43
45
  this.targeter = new DomTargeter([
44
46
  {
45
47
  selector: `${this.config.selector ||
46
48
  'script[type="searchspring/recommend"], script[type="searchspring/personalized-recommendations"], script[type="athos/recommend"], script[type="athos/personalized-recommendations"]'}, script[type="searchspring/recommend"][profile="email"], script[type="athos/recommend"][profile="email"]`,
47
49
  autoRetarget: true,
48
50
  clickRetarget: true,
49
- inject: {
50
- action: 'before',
51
- element: (target, origElement) => {
52
- const profile = origElement.getAttribute('profile') || '';
53
- const recsContainer = document.createElement('div');
54
- recsContainer.setAttribute('searchspring-recommend', profile);
55
- return recsContainer;
56
- },
57
- },
51
+ navigationRetarget: true,
52
+ emptyTarget: false,
58
53
  },
59
54
  {
60
55
  selector: 'script[type="searchspring/recommendations"], script[type="athos/recommendations"]',
61
56
  autoRetarget: true,
62
57
  clickRetarget: true,
58
+ navigationRetarget: true,
63
59
  emptyTarget: false,
64
60
  },
65
- ], async (target, elem, originalElem) => {
61
+ ], async (target, elem) => {
62
+ this.cleanupStaleControllers();
63
+ const scriptElement = elem;
66
64
  const elemContext = getContext([
67
65
  'shopperId',
68
66
  'shopper',
@@ -77,7 +75,7 @@ export class RecommendationInstantiator {
77
75
  'custom',
78
76
  'profiles',
79
77
  'globals',
80
- ], (originalElem || elem));
78
+ ], scriptElement);
81
79
  if (elemContext.profiles && elemContext.profiles.length) {
82
80
  // using the "grouped block" integration structure
83
81
  // type the new profile specific integration context variables
@@ -91,34 +89,52 @@ export class RecommendationInstantiator {
91
89
  cart: scriptContextGlobals?.cart && getArrayFunc(scriptContextGlobals.cart),
92
90
  products: scriptContextGlobals?.products,
93
91
  shopper: scriptContextGlobals?.shopper?.id,
94
- batchId: Math.random(),
92
+ batchId: Math.floor(Math.random() * Number.MAX_SAFE_INTEGER),
95
93
  }),
96
94
  };
97
- const targetsArr = [];
98
- // build out the targets array for each profile
99
- scriptContextProfiles.forEach((profile) => {
95
+ // create a per-profile DomTargeter for each profile so each controller
96
+ // gets its own targeter tracking its specific element
97
+ scriptContextProfiles.forEach((profile, index) => {
100
98
  if (profile.selector) {
101
- const targetObj = {
99
+ const profileTarget = {
102
100
  selector: profile.selector,
103
101
  autoRetarget: true,
104
- clickRetarget: true,
105
102
  profile,
103
+ order: index,
106
104
  };
107
- targetsArr.push(targetObj);
108
- }
109
- });
110
- new DomTargeter(targetsArr, async (target, elem, originalElem) => {
111
- if (target.profile?.profile || target.profile?.tag) {
112
- const profileRequestGlobals = {
113
- ...requestGlobals,
114
- profile: target.profile?.options,
115
- tag: target.profile.tag || target.profile.profile, // have to support both tag and profile due to having profile at release, but will favor tag
116
- };
117
- const profileContext = deepmerge(this.context, defined({ globals: scriptContextGlobals, profile: target.profile }));
118
- if (elemContext.custom) {
119
- profileContext.custom = deepmerge(profileContext.custom, elemContext.custom);
120
- }
121
- readyTheController(this, services || {}, elem, profileContext, profileCount, originalElem, profileRequestGlobals, target);
105
+ // track the controller for this profile so multiple matched elements share it
106
+ let profileControllerPromise;
107
+ new DomTargeter([profileTarget], async (target, targetElem, _originalElem, targeter) => {
108
+ // skip retarget if the source script element was removed and release the current target
109
+ if (scriptElement.isConnected === false) {
110
+ if (targetElem) {
111
+ targeter?.releaseTargets([targetElem]);
112
+ }
113
+ return;
114
+ }
115
+ if (target.profile?.profile || target.profile?.tag) {
116
+ const profileRequestGlobals = {
117
+ ...requestGlobals,
118
+ profile: { ...target.profile?.options, order: target.order },
119
+ tag: target.profile.tag || target.profile.profile, // have to support both tag and profile due to having profile at release, but will favor tag
120
+ };
121
+ const profileContext = deepmerge(this.context, defined({ globals: scriptContextGlobals, profile: target.profile }));
122
+ if (elemContext.custom) {
123
+ profileContext.custom = deepmerge(profileContext.custom, elemContext.custom);
124
+ }
125
+ if (!profileControllerPromise) {
126
+ // first element match — create the controller
127
+ profileControllerPromise = readyTheController(this, services || {}, targetElem, profileContext, profileCount, scriptElement, profileRequestGlobals, target, targeter);
128
+ }
129
+ else {
130
+ // subsequent element matches — reuse the existing controller and just render
131
+ const controller = await profileControllerPromise;
132
+ if (controller && targetElem) {
133
+ renderController(this, services || {}, controller, targetElem, scriptElement, target);
134
+ }
135
+ }
136
+ }
137
+ });
122
138
  }
123
139
  });
124
140
  }
@@ -138,7 +154,23 @@ export class RecommendationInstantiator {
138
154
  profile: options,
139
155
  }),
140
156
  };
141
- readyTheController(this, services || {}, elem, deepmerge(this.context, elemContext), profileCount, originalElem, profileRequestGlobals, target);
157
+ // inject a render container before the script element
158
+ const profileAttr = scriptElement.getAttribute('profile') || '';
159
+ const recsContainer = scriptElement.ownerDocument.createElement('div');
160
+ recsContainer.setAttribute('searchspring-recommend', profileAttr);
161
+ scriptElement.before(recsContainer);
162
+ const legacyContext = deepmerge(this.context, elemContext);
163
+ // create a per-element DomTargeter for the injected div (mirrors grouped block pattern)
164
+ new DomTargeter([{ selector: `[searchspring-recommend="${profileAttr}"]`, name: `legacy_${profile}_${profileCount[profile || ''] || 0}` }], async (_target, targetElem, _originalElem, targeter) => {
165
+ // skip retarget if the source script element was removed and release the current target
166
+ if (scriptElement.isConnected === false) {
167
+ if (targetElem) {
168
+ targeter?.releaseTargets([targetElem]);
169
+ }
170
+ return;
171
+ }
172
+ readyTheController(this, services || {}, targetElem, legacyContext, profileCount, scriptElement, profileRequestGlobals, target, targeter);
173
+ });
142
174
  }
143
175
  });
144
176
  }
@@ -151,26 +183,43 @@ export class RecommendationInstantiator {
151
183
  use(attachments) {
152
184
  this.uses.push(attachments);
153
185
  }
186
+ // cleanup to ensure we release controllers no longer rendering in the DOM (memory leak prevention for SPA's)
187
+ cleanupStaleControllers() {
188
+ Object.keys(this.controller).forEach((id) => {
189
+ const controller = this.controller[id];
190
+ const targeters = Object.values(controller.targeters);
191
+ const hasConnectedTarget = targeters.some((targeter) => targeter.getTargetedElems().some((elem) => {
192
+ const attr = elem.isConnected !== false && elem.getAttribute('ss-controller-id');
193
+ return attr === id;
194
+ }));
195
+ if (!hasConnectedTarget) {
196
+ Object.keys(controller.targeters).forEach((targeterId) => controller.targeters[targeterId].destroy());
197
+ controller.targeters = {};
198
+ delete this.controller[id];
199
+ if (window.athos?.controller) {
200
+ delete window.athos.controller[id];
201
+ }
202
+ }
203
+ });
204
+ }
154
205
  }
155
- async function readyTheController(instance, services, injectedElem, context, profileCount, elem, controllerGlobals, target) {
206
+ async function readyTheController(instance, services, targetElem, context, profileCount, scriptElem, controllerGlobals, target, targeter) {
156
207
  const { profile, batchId, cart, tag } = controllerGlobals;
157
208
  const batched = profile?.batched ?? controllerGlobals.batched ?? true;
158
209
  if (!tag) {
159
210
  // FEEDBACK: change message depending on script integration type (profile vs. legacy)
160
- instance.logger.warn(`'tag' is missing from <script> tag, skipping this profile`, elem);
211
+ instance.logger.warn(`'tag' is missing from <script> tag, skipping this profile`, scriptElem);
161
212
  return;
162
213
  }
163
214
  if (Array.isArray(cart)) {
164
215
  instance.tracker.cookies.cart.set(cart);
165
216
  }
166
- profileCount[tag] = profileCount[tag] + 1 || 1;
167
217
  const globals = deepmerge.all([
168
218
  instance.config.client?.globals || {},
169
219
  instance.config.config?.globals || {},
170
220
  controllerGlobals,
171
221
  ]);
172
- const controllerConfig = {
173
- id: `recommend_${tag}_${profileCount[tag] - 1}`,
222
+ const controllerConfigBase = {
174
223
  tag,
175
224
  batched: batched ?? instance.config.config?.batched ?? true,
176
225
  realtime: Boolean(context.options?.realtime ?? context.profile?.options?.realtime ?? instance.config.config?.realtime),
@@ -179,78 +228,77 @@ async function readyTheController(instance, services, injectedElem, context, pro
179
228
  plugins: instance.config.config.plugins,
180
229
  branch: instance.config.config?.branch || 'production',
181
230
  limit: instance.config.config?.limit,
231
+ beacon: instance.config.config?.beacon || { enabled: true },
182
232
  settings: {
183
233
  variants: instance.config.config?.variants,
184
234
  },
185
235
  globals,
186
236
  };
187
237
  if (profile?.branch) {
188
- controllerConfig.branch = profile?.branch;
238
+ controllerConfigBase.branch = profile?.branch;
189
239
  }
190
- // try to find an existing controller by similar configuration
191
- let controller = Object.keys(instance.controller)
192
- .map((id) => instance.controller[id])
193
- .filter((controller) => {
194
- return (JSON.stringify({
195
- batched: controller.config.batched,
196
- branch: controller.config.branch,
197
- globals: controller.config.globals,
198
- tag: controller.config.tag,
199
- realtime: controller.config.realtime,
200
- }) ==
201
- JSON.stringify({
202
- batched: controllerConfig.batched,
203
- branch: controllerConfig.branch,
204
- globals: controllerConfig.globals,
205
- tag: controllerConfig.tag,
206
- realtime: controllerConfig.realtime,
207
- }));
208
- })[0];
209
- if (!controller) {
210
- // no existing controller found of same configuration - creating a new controller
211
- const createRecommendationController = (await import('../create/createRecommendationController')).default;
212
- controller = createRecommendationController({
213
- url: instance.config.url,
214
- controller: controllerConfig,
215
- context,
216
- mode: instance.config.mode,
217
- }, { client: instance.client, tracker: instance.tracker });
218
- instance.uses.forEach((attachements) => controller.use(attachements));
219
- instance.plugins.forEach((plugin) => controller.plugin(plugin.func, ...plugin.args));
220
- instance.middleware.forEach((middleware) => controller.on(middleware.event, ...middleware.func));
240
+ profileCount[tag] = profileCount[tag] + 1 || 1;
241
+ const controllerConfig = {
242
+ id: `recommend_${tag}_${profileCount[tag] - 1}`,
243
+ ...controllerConfigBase,
244
+ };
245
+ const controller = createRecommendationController({
246
+ url: instance.config.url,
247
+ controller: controllerConfig,
248
+ context,
249
+ mode: instance.config.mode,
250
+ }, { client: instance.client, tracker: instance.tracker });
251
+ // mark element with controller id so cleanupStaleControllers knows it's active
252
+ if (targetElem) {
253
+ targetElem.setAttribute('ss-controller-id', controller.id);
221
254
  }
255
+ instance.uses.forEach((attachements) => controller.use(attachements));
256
+ instance.plugins.forEach((plugin) => controller.plugin(plugin.func, ...plugin.args));
257
+ instance.middleware.forEach((middleware) => controller.on(middleware.event, ...middleware.func));
258
+ // add controller to instantiator and global namespace
259
+ instance.controller[controller.config.id] = controller;
260
+ window.athos.controller = window.athos.controller || {};
261
+ window.athos.controller[controller.config.id] = controller;
262
+ // register targeter on the controller for element tracking
263
+ controller.addTargeter(targeter);
222
264
  // run a search on the controller if it is not currently
223
265
  if (!controller.store.loading) {
224
266
  await controller.search();
225
267
  }
226
- controller.addTargeter(instance.targeter);
227
- instance.controller[controller.config.id] = controller;
228
- window.athos.controller = window.athos.controller || {};
229
- window.athos.controller[controller.config.id] = controller;
230
268
  const profileVars = controller.store.profile.display?.templateParameters;
231
- const component = controller.store.profile.display?.template?.component;
232
269
  if (controller.store.error) {
233
270
  //something went wrong
234
271
  //err was already logged - nothing to do.
235
272
  return;
236
273
  }
237
274
  if (!controller.store.profile.display.template) {
238
- instance.logger.error(`profile '${tag}' found on the following element is missing a template!\n${elem?.outerHTML}`);
275
+ instance.logger.error(`profile '${tag}' found on the following element is missing a template!\n${scriptElem?.outerHTML}`);
239
276
  return;
240
277
  }
241
278
  if (!profileVars) {
242
- instance.logger.error(`profile '${tag}' found on the following element is missing templateParameters!\n${elem?.outerHTML}`);
279
+ instance.logger.error(`profile '${tag}' found on the following element is missing templateParameters!\n${scriptElem?.outerHTML}`);
243
280
  return;
244
281
  }
282
+ if (targetElem) {
283
+ await renderController(instance, services, controller, targetElem, scriptElem, target);
284
+ }
285
+ return controller;
286
+ }
287
+ async function renderController(instance, services, controller, targetElem, scriptElem, target) {
288
+ // update the element with the controller id
289
+ if (targetElem) {
290
+ targetElem.setAttribute('ss-controller-id', controller.id);
291
+ }
292
+ const tag = controller.config.tag;
293
+ const component = controller.store.profile.display?.template?.component;
245
294
  if (!component) {
246
- instance.logger.error(`profile '${tag}' found on the following element is missing a component!\n${elem?.outerHTML}`);
295
+ instance.logger.error(`profile '${tag}' found on the following element is missing a component!\n${scriptElem?.outerHTML}`);
247
296
  return;
248
297
  }
249
298
  let props = {};
250
299
  let RecommendationsComponent = undefined;
251
300
  props.className = `ss__recommendation-${component.toLowerCase()}`;
252
- injectedElem?.setAttribute('id', `${controllerConfig.id}`);
253
- instance.config.components[component]?.onTarget?.(target, elem, injectedElem, controller);
301
+ instance.config.components[component]?.onTarget?.(target, scriptElem, targetElem, controller);
254
302
  if (instance.config.components[component] && typeof instance.config.components[component] == 'function') {
255
303
  RecommendationsComponent = await instance.config.components[component]();
256
304
  }
@@ -263,13 +311,11 @@ async function readyTheController(instance, services, injectedElem, context, pro
263
311
  RecommendationsComponent = importResolutions[0];
264
312
  }
265
313
  if (!RecommendationsComponent) {
266
- instance.logger.error(`profile '${tag}' found on the following element is expecting component mapping for '${component}' - verify instantiator config.\n${elem?.outerHTML}`);
314
+ instance.logger.error(`profile '${tag}' found on the following element is expecting component mapping for '${component}' - verify instantiator config.\n${scriptElem?.outerHTML}`);
267
315
  return;
268
316
  }
269
317
  setTimeout(() => {
270
- if (injectedElem && RecommendationsComponent) {
271
- render(_jsx(RecommendationsComponent, { controller: controller, snap: services?.snap, ...props }), injectedElem);
272
- }
318
+ render(_jsx(RecommendationsComponent, { controller: controller, snap: services?.snap, ...props }), targetElem);
273
319
  });
274
320
  }
275
321
  function getArrayFunc(arrayOrFunc) {
@@ -5,11 +5,11 @@ import { AppMode } from '@athoscommerce/snap-toolbox';
5
5
  import { ControllerTypes } from '@athoscommerce/snap-controller';
6
6
  import { EventManager } from '@athoscommerce/snap-event-manager';
7
7
  import type { ClientConfig, ClientGlobals } from '@athoscommerce/snap-client';
8
- import type { Controllers, AbstractController, SearchControllerConfig, AutocompleteControllerConfig, FinderControllerConfig, RecommendationControllerConfig, ControllerConfigs, ContextVariables } from '@athoscommerce/snap-controller';
8
+ import type { Controllers, AbstractController, SearchControllerConfig, ChatControllerConfig, AutocompleteControllerConfig, FinderControllerConfig, RecommendationControllerConfig, ControllerConfigs, ContextVariables } from '@athoscommerce/snap-controller';
9
9
  import type { TrackerConfig, TrackerGlobals } from '@athoscommerce/snap-tracker';
10
10
  import type { Target, OnTarget } from '@athoscommerce/snap-toolbox';
11
11
  import type { UrlTranslatorConfig } from '@athoscommerce/snap-url-manager';
12
- import { RecommendationInstantiator, RecommendationInstantiatorConfig } from './Instantiators/RecommendationInstantiator';
12
+ import type { RecommendationInstantiator, RecommendationInstantiatorConfig } from './Instantiators/RecommendationInstantiator';
13
13
  import type { SnapControllerServices, InitialUrlConfig, SnapFeatures } from './types';
14
14
  import type { TemplatesStore } from './Templates/Stores/TemplateStore';
15
15
  export declare const BRANCH_COOKIE = "athosBranch";
@@ -55,6 +55,7 @@ export type SnapConfig = {
55
55
  };
56
56
  controllers?: {
57
57
  search?: SnapConfigControllerDefinition<SearchControllerConfig>[];
58
+ chat?: SnapConfigControllerDefinition<ChatControllerConfig>[];
58
59
  autocomplete?: SnapConfigControllerDefinition<AutocompleteControllerConfig>[];
59
60
  finder?: SnapConfigControllerDefinition<FinderControllerConfig>[];
60
61
  recommendation?: SnapConfigControllerDefinition<RecommendationControllerConfig>[];
@@ -1 +1 @@
1
- {"version":3,"file":"Snap.d.ts","sourceRoot":"","sources":["../../../src/Snap.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Snap.d.ts","sourceRoot":"","sources":["../../../src/Snap.tsx"],"names":[],"mappings":"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"}
@@ -95,6 +95,9 @@ export class Snap {
95
95
  case ControllerTypes.recommendation:
96
96
  importPromise = import('./create/createRecommendationController');
97
97
  break;
98
+ case ControllerTypes.chat:
99
+ importPromise = import('./create/createChatController');
100
+ break;
98
101
  case ControllerTypes.search:
99
102
  default:
100
103
  importPromise = import('./create/createSearchController');
@@ -141,12 +144,14 @@ export class Snap {
141
144
  let elem = null;
142
145
  elem = event && event.target;
143
146
  while (Object.keys(attributes).length == 0 && elem !== null && levels <= MAX_PARENT_LEVELS) {
144
- Object.values(elem.attributes).forEach((attr) => {
145
- const attrName = attr.nodeName;
146
- if (attributeList.indexOf(attrName) != -1) {
147
- attributes[attrName] = elem && elem.getAttribute(attrName);
148
- }
149
- });
147
+ if (elem.attributes) {
148
+ Object.values(elem.attributes).forEach((attr) => {
149
+ const attrName = attr.nodeName;
150
+ if (attributeList.indexOf(attrName) != -1) {
151
+ attributes[attrName] = elem && elem.getAttribute(attrName);
152
+ }
153
+ });
154
+ }
150
155
  elem = elem.parentElement;
151
156
  levels++;
152
157
  }
@@ -536,6 +541,75 @@ export class Snap {
536
541
  });
537
542
  break;
538
543
  }
544
+ case 'chat': {
545
+ this.config.controllers[type].forEach((controller, index) => {
546
+ if (typeof this._controllerPromises[controller.config.id] != 'undefined') {
547
+ this.logger.error(`Controller with id '${controller.config.id}' is already defined`);
548
+ return;
549
+ }
550
+ this._controllerPromises[controller.config.id] = new Promise(async (resolve) => {
551
+ try {
552
+ const targetFunction = async (target, elem, originalElem) => {
553
+ const onTarget = target.onTarget;
554
+ onTarget && (await onTarget(target, elem, originalElem));
555
+ try {
556
+ const importPromises = [];
557
+ // dynamically import the component
558
+ importPromises.push(target.component());
559
+ const importResolutions = await Promise.all(importPromises);
560
+ const Component = importResolutions[0];
561
+ setTimeout(() => {
562
+ render(_jsx(Component, { controller: this.controllers[controller.config.id], snap: this, ...target.props }), elem);
563
+ });
564
+ }
565
+ catch (err) {
566
+ this.logger.error(err);
567
+ this.logger.error(COMPONENT_ERROR, target);
568
+ }
569
+ };
570
+ if (!controller?.targeters || controller?.targeters.length === 0) {
571
+ await this._createController(ControllerTypes.chat, controller.config, controller.services, controller.url, controller.context, (cntrlr) => {
572
+ if (cntrlr)
573
+ resolve(cntrlr);
574
+ });
575
+ }
576
+ controller?.targeters?.forEach((target, target_index) => {
577
+ if (!target.selector) {
578
+ throw new Error(`Targets at index ${target_index} missing selector value (string).`);
579
+ }
580
+ if (!target.component) {
581
+ throw new Error(`Targets at index ${target_index} missing component value (Component).`);
582
+ }
583
+ // Chat mounts at the document level — if the consumer aimed at <body>
584
+ // directly, give DomTargeter a child to render into instead of stomping on body.
585
+ if (target.selector === 'body' && !target.inject) {
586
+ target = {
587
+ ...target,
588
+ inject: {
589
+ action: 'append',
590
+ element: () => {
591
+ return document.createElement('div');
592
+ },
593
+ },
594
+ };
595
+ }
596
+ const targeter = new DomTargeter([{ ...target }], async (target, elem, originalElem) => {
597
+ const cntrlr = await this._createController(ControllerTypes.chat, controller.config, controller.services, controller.url, controller.context, (cntrlr) => {
598
+ if (cntrlr)
599
+ resolve(cntrlr);
600
+ });
601
+ targetFunction({ controller: cntrlr, ...target }, elem, originalElem);
602
+ cntrlr.addTargeter(targeter);
603
+ });
604
+ });
605
+ }
606
+ catch (err) {
607
+ this.logger.error(`Failed to instantiate ${type} controller at index ${index}.`, err);
608
+ }
609
+ });
610
+ });
611
+ break;
612
+ }
539
613
  case 'autocomplete': {
540
614
  this.config.controllers[type].forEach((controller, index) => {
541
615
  if (typeof this._controllerPromises[controller.config.id] != 'undefined') {
@@ -29,10 +29,11 @@ export declare function mapBreakpoints<ControllerConfigSettings>(breakpointsKeys
29
29
  [key: string]: ControllerConfigSettings | Record<string, never>;
30
30
  };
31
31
  export declare const createSearchTargeters: (templateConfig: SnapTemplatesConfig, templatesStore: TemplatesStore) => ExtendedTarget[];
32
+ export declare const createChatTargeters: (templateConfig: SnapTemplatesConfig, templatesStore: TemplatesStore) => ExtendedTarget[];
32
33
  export declare function createAutocompleteTargeters(templateConfig: SnapTemplatesConfig, templatesStore: TemplatesStore): ExtendedTarget[];
33
34
  export declare function createRecommendationComponentMapping(templateConfig: SnapTemplatesConfig | SnapTemplatesConfigUnlocked, templatesStore: TemplatesStore): {
34
35
  [name: string]: RecommendationComponentObject;
35
36
  };
36
37
  export declare function createSnapConfig(templateConfig: SnapTemplatesConfig | SnapTemplatesConfigUnlocked, templatesStore: TemplatesStore): SnapConfig;
37
- export declare function createPlugins(templateConfig: SnapTemplatesConfig | SnapTemplatesConfigUnlocked, templatesStore: TemplatesStore, controllerType?: 'autocomplete' | 'search' | 'recommendation'): PluginGrouping[];
38
+ export declare function createPlugins(templateConfig: SnapTemplatesConfig | SnapTemplatesConfigUnlocked, templatesStore: TemplatesStore, controllerType?: 'autocomplete' | 'search' | 'recommendation' | 'chat'): PluginGrouping[];
38
39
  //# sourceMappingURL=SnapTemplates.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"SnapTemplates.d.ts","sourceRoot":"","sources":["../../../../src/Templates/SnapTemplates.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAI/B,OAAO,EAAkB,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAGxE,OAAO,EAAE,KAAK,+BAA+B,EAAE,MAAM,gCAAgC,CAAC;AACtF,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AAC3E,OAAO,KAAK,EAA0C,cAAc,EAAoB,MAAM,gCAAgC,CAAC;AAC/H,OAAO,KAAK,EAAE,6BAA6B,EAAoC,MAAM,6CAA6C,CAAC;AACnI,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAC7C,OAAO,KAAK,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAC1D,OAAO,KAAK,EAMX,0BAA0B,EAC1B,4BAA4B,EAE5B,MAAM,wBAAwB,CAAC;AAoChC,eAAO,MAAM,sBAAsB,gBAAgB,CAAC;AACpD,eAAO,MAAM,wBAAwB,iBAAiB,CAAC;AAEvD,MAAM,MAAM,mBAAmB,GAAG,yBAAyB,CAAC;AAC5D,MAAM,MAAM,2BAA2B,GAAG,4BAA4B,GAAG;IACxE,QAAQ,EAAE,IAAI,CAAC;IACf,GAAG,CAAC,EAAE,mBAAmB,CAAC;IAC1B,QAAQ,CAAC,EAAE,YAAY,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,yBAAyB,GAAG,0BAA0B,GAAG;IACpE,GAAG,CAAC,EAAE,mBAAmB,CAAC;IAC1B,QAAQ,CAAC,EAAE,YAAY,CAAC;CACxB,CAAC;AAwBF,eAAO,MAAM,gBAAgB,EAAE,YAAiB,CAAC;AAEjD,eAAO,MAAM,wCAAwC,EAAE,+BAItD,CAAC;AAEF,qBAAa,aAAc,SAAQ,IAAI;IACtC,SAAS,EAAE,cAAc,CAAC;gBACd,MAAM,EAAE,mBAAmB,GAAG,2BAA2B;CAoGrE;AAED,wBAAgB,cAAc,CAAC,wBAAwB,EACtD,eAAe,EAAE,MAAM,EAAE,EACzB,kBAAkB,EAAE,wBAAwB,EAAE,GAC5C;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,wBAAwB,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAA;CAAE,CAKrE;AAED,eAAO,MAAM,qBAAqB,mBAAoB,mBAAmB,kBAAkB,cAAc,KAAG,cAAc,EAoCzH,CAAC;AAEF,wBAAgB,2BAA2B,CAAC,cAAc,EAAE,mBAAmB,EAAE,cAAc,EAAE,cAAc,GAAG,cAAc,EAAE,CAkCjI;AAED,wBAAgB,oCAAoC,CACnD,cAAc,EAAE,mBAAmB,GAAG,2BAA2B,EACjE,cAAc,EAAE,cAAc,GAC5B;IAAE,CAAC,IAAI,EAAE,MAAM,GAAG,6BAA6B,CAAA;CAAE,CAiDnD;AAED,wBAAgB,gBAAgB,CAAC,cAAc,EAAE,mBAAmB,GAAG,2BAA2B,EAAE,cAAc,EAAE,cAAc,GAAG,UAAU,CA2I9I;AAED,wBAAgB,aAAa,CAC5B,cAAc,EAAE,mBAAmB,GAAG,2BAA2B,EACjE,cAAc,EAAE,cAAc,EAC9B,cAAc,CAAC,EAAE,cAAc,GAAG,QAAQ,GAAG,gBAAgB,GAC3D,cAAc,EAAE,CAmFlB"}
1
+ {"version":3,"file":"SnapTemplates.d.ts","sourceRoot":"","sources":["../../../../src/Templates/SnapTemplates.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAI/B,OAAO,EAAkB,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAGxE,OAAO,EAAE,KAAK,+BAA+B,EAAE,MAAM,gCAAgC,CAAC;AACtF,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AAC3E,OAAO,KAAK,EAA0C,cAAc,EAAoB,MAAM,gCAAgC,CAAC;AAC/H,OAAO,KAAK,EAAE,6BAA6B,EAAoC,MAAM,6CAA6C,CAAC;AACnI,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAC7C,OAAO,KAAK,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAC1D,OAAO,KAAK,EAOX,0BAA0B,EAC1B,4BAA4B,EAE5B,MAAM,wBAAwB,CAAC;AAoChC,eAAO,MAAM,sBAAsB,gBAAgB,CAAC;AACpD,eAAO,MAAM,wBAAwB,iBAAiB,CAAC;AAEvD,MAAM,MAAM,mBAAmB,GAAG,yBAAyB,CAAC;AAC5D,MAAM,MAAM,2BAA2B,GAAG,4BAA4B,GAAG;IACxE,QAAQ,EAAE,IAAI,CAAC;IACf,GAAG,CAAC,EAAE,mBAAmB,CAAC;IAC1B,QAAQ,CAAC,EAAE,YAAY,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,yBAAyB,GAAG,0BAA0B,GAAG;IACpE,GAAG,CAAC,EAAE,mBAAmB,CAAC;IAC1B,QAAQ,CAAC,EAAE,YAAY,CAAC;CACxB,CAAC;AAwBF,eAAO,MAAM,gBAAgB,EAAE,YAAiB,CAAC;AAEjD,eAAO,MAAM,wCAAwC,EAAE,+BAItD,CAAC;AAEF,qBAAa,aAAc,SAAQ,IAAI;IACtC,SAAS,EAAE,cAAc,CAAC;gBACd,MAAM,EAAE,mBAAmB,GAAG,2BAA2B;CAoGrE;AAED,wBAAgB,cAAc,CAAC,wBAAwB,EACtD,eAAe,EAAE,MAAM,EAAE,EACzB,kBAAkB,EAAE,wBAAwB,EAAE,GAC5C;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,wBAAwB,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAA;CAAE,CAKrE;AAED,eAAO,MAAM,qBAAqB,mBAAoB,mBAAmB,kBAAkB,cAAc,KAAG,cAAc,EAoCzH,CAAC;AAEF,eAAO,MAAM,mBAAmB,mBAAoB,mBAAmB,kBAAkB,cAAc,KAAG,cAAc,EA2CvH,CAAC;AAEF,wBAAgB,2BAA2B,CAAC,cAAc,EAAE,mBAAmB,EAAE,cAAc,EAAE,cAAc,GAAG,cAAc,EAAE,CAqCjI;AAED,wBAAgB,oCAAoC,CACnD,cAAc,EAAE,mBAAmB,GAAG,2BAA2B,EACjE,cAAc,EAAE,cAAc,GAC5B;IAAE,CAAC,IAAI,EAAE,MAAM,GAAG,6BAA6B,CAAA;CAAE,CAiDnD;AAED,wBAAgB,gBAAgB,CAAC,cAAc,EAAE,mBAAmB,GAAG,2BAA2B,EAAE,cAAc,EAAE,cAAc,GAAG,UAAU,CA0J9I;AAED,wBAAgB,aAAa,CAC5B,cAAc,EAAE,mBAAmB,GAAG,2BAA2B,EACjE,cAAc,EAAE,cAAc,EAC9B,cAAc,CAAC,EAAE,cAAc,GAAG,QAAQ,GAAG,gBAAgB,GAAG,MAAM,GACpE,cAAc,EAAE,CAmFlB"}