@athoscommerce/snap-preact 1.10.1-beta.150 → 1.11.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (420) hide show
  1. package/dist/cjs/components/src/components/Atoms/Dropdown/Dropdown.js +11 -56
  2. package/dist/cjs/components/src/components/Atoms/Icon/paths.js +0 -13
  3. package/dist/cjs/components/src/components/Atoms/TemplateSelect/TemplateSelect.js +5 -1
  4. package/dist/cjs/components/src/components/Molecules/Grid/Grid.js +9 -13
  5. package/dist/cjs/components/src/components/Molecules/List/List.js +9 -13
  6. package/dist/cjs/components/src/components/Molecules/RadioList/RadioList.js +9 -13
  7. package/dist/cjs/components/src/components/Molecules/Result/Result.js +6 -53
  8. package/dist/cjs/components/src/components/Molecules/SearchInput/SearchInput.js +2 -28
  9. package/dist/cjs/components/src/components/Molecules/Select/Select.js +9 -13
  10. package/dist/cjs/components/src/components/Molecules/Slideout/Slideout.js +28 -24
  11. package/dist/cjs/components/src/components/Molecules/Slideshow/Slideshow.js +1 -5
  12. package/dist/cjs/components/src/components/Molecules/TabSelection/TabSelection.js +108 -0
  13. package/dist/cjs/components/src/components/{Templates/ChatButton → Molecules/TabSelection}/index.js +1 -1
  14. package/dist/cjs/components/src/components/Molecules/TemplatesEditor/TemplatesEditor.js +1 -1
  15. package/dist/cjs/components/src/components/Organisms/AutocompleteLayout/AutocompleteLayout.js +17 -2
  16. package/dist/cjs/components/src/components/Organisms/Facet/Facet.js +5 -1
  17. package/dist/cjs/components/src/components/Organisms/Layout/Layout.js +15 -1
  18. package/dist/cjs/components/src/components/Organisms/Results/Results.js +4 -4
  19. package/dist/cjs/components/src/components/Organisms/Toolbar/Toolbar.js +2 -1
  20. package/dist/cjs/components/src/components/Templates/AutocompleteFixed/AutocompleteFixed.js +10 -8
  21. package/dist/cjs/components/src/components/Templates/AutocompleteModal/AutocompleteModal.js +10 -8
  22. package/dist/cjs/components/src/components/Templates/AutocompleteSlideout/AutocompleteSlideout.js +10 -8
  23. package/dist/cjs/components/src/components/Templates/Search/Search.js +10 -3
  24. package/dist/cjs/components/src/hooks/useAcRenderedInput.js +14 -3
  25. package/dist/cjs/components/src/hooks/useCreateController.js +24 -3
  26. package/dist/cjs/components/src/index.js +2 -17
  27. package/dist/cjs/components/src/providers/themeComponents.js +1 -20
  28. package/dist/cjs/components/src/setupTests.js +0 -14
  29. package/dist/cjs/components/src/themes/base/components/templates/index.js +0 -10
  30. package/dist/cjs/components/src/themes/bocachica/components/templates/index.js +0 -10
  31. package/dist/cjs/components/src/themes/pike/components/templates/index.js +0 -10
  32. package/dist/cjs/components/src/themes/snapnco/components/templates/index.js +0 -10
  33. package/dist/cjs/components/src/themes/snappy/components/templates/index.js +0 -10
  34. package/dist/cjs/components/src/utilities/Colour/Colour.js +0 -41
  35. package/dist/cjs/components/src/utilities/index.js +1 -0
  36. package/dist/cjs/components/src/utilities/selectionKey.js +12 -0
  37. package/dist/cjs/components/src/utilities/snapify.js +0 -27
  38. package/dist/cjs/src/Snap.js +0 -70
  39. package/dist/cjs/src/Templates/SnapTemplates.js +147 -86
  40. package/dist/cjs/src/Templates/Stores/LibraryStore.js +3 -51
  41. package/dist/cjs/src/Templates/Stores/TabManagerStore.js +151 -0
  42. package/dist/cjs/src/Templates/Stores/TemplateStore.js +23 -2
  43. package/dist/cjs/src/Templates/Stores/library/languages/es.js +20 -487
  44. package/dist/cjs/src/Templates/Stores/library/languages/fr.js +20 -487
  45. package/dist/cjs/src/create/createAutocompleteController.js +6 -1
  46. package/dist/cjs/src/create/index.js +1 -3
  47. package/dist/cjs/src/setupEvents.js +0 -44
  48. package/dist/cjs/src/utils/index.js +1 -3
  49. package/dist/esm/components/src/components/Atoms/Button/Button.d.ts +1 -3
  50. package/dist/esm/components/src/components/Atoms/Button/Button.d.ts.map +1 -1
  51. package/dist/esm/components/src/components/Atoms/Dropdown/Dropdown.d.ts +1 -6
  52. package/dist/esm/components/src/components/Atoms/Dropdown/Dropdown.d.ts.map +1 -1
  53. package/dist/esm/components/src/components/Atoms/Dropdown/Dropdown.js +12 -57
  54. package/dist/esm/components/src/components/Atoms/Icon/paths.d.ts +0 -13
  55. package/dist/esm/components/src/components/Atoms/Icon/paths.d.ts.map +1 -1
  56. package/dist/esm/components/src/components/Atoms/Icon/paths.js +0 -13
  57. package/dist/esm/components/src/components/Atoms/TemplateSelect/TemplateSelect.d.ts.map +1 -1
  58. package/dist/esm/components/src/components/Atoms/TemplateSelect/TemplateSelect.js +5 -1
  59. package/dist/esm/components/src/components/Molecules/Grid/Grid.d.ts.map +1 -1
  60. package/dist/esm/components/src/components/Molecules/Grid/Grid.js +10 -14
  61. package/dist/esm/components/src/components/Molecules/List/List.d.ts.map +1 -1
  62. package/dist/esm/components/src/components/Molecules/List/List.js +10 -14
  63. package/dist/esm/components/src/components/Molecules/OverlayBadge/OverlayBadge.d.ts +2 -2
  64. package/dist/esm/components/src/components/Molecules/OverlayBadge/OverlayBadge.d.ts.map +1 -1
  65. package/dist/esm/components/src/components/Molecules/RadioList/RadioList.d.ts.map +1 -1
  66. package/dist/esm/components/src/components/Molecules/RadioList/RadioList.js +10 -14
  67. package/dist/esm/components/src/components/Molecules/Result/Result.d.ts +3 -7
  68. package/dist/esm/components/src/components/Molecules/Result/Result.d.ts.map +1 -1
  69. package/dist/esm/components/src/components/Molecules/Result/Result.js +6 -53
  70. package/dist/esm/components/src/components/Molecules/SearchInput/SearchInput.d.ts +0 -3
  71. package/dist/esm/components/src/components/Molecules/SearchInput/SearchInput.d.ts.map +1 -1
  72. package/dist/esm/components/src/components/Molecules/SearchInput/SearchInput.js +2 -28
  73. package/dist/esm/components/src/components/Molecules/Select/Select.d.ts.map +1 -1
  74. package/dist/esm/components/src/components/Molecules/Select/Select.js +10 -14
  75. package/dist/esm/components/src/components/Molecules/Slideout/Slideout.d.ts.map +1 -1
  76. package/dist/esm/components/src/components/Molecules/Slideout/Slideout.js +29 -25
  77. package/dist/esm/components/src/components/Molecules/Slideshow/Slideshow.d.ts.map +1 -1
  78. package/dist/esm/components/src/components/Molecules/Slideshow/Slideshow.js +1 -5
  79. package/dist/esm/components/src/components/Molecules/TabSelection/TabSelection.d.ts +32 -0
  80. package/dist/esm/components/src/components/Molecules/TabSelection/TabSelection.d.ts.map +1 -0
  81. package/dist/esm/components/src/components/Molecules/TabSelection/TabSelection.js +102 -0
  82. package/dist/esm/components/src/components/Molecules/TabSelection/index.d.ts +2 -0
  83. package/dist/esm/components/src/components/Molecules/TabSelection/index.d.ts.map +1 -0
  84. package/dist/esm/components/src/components/Molecules/TabSelection/index.js +1 -0
  85. package/dist/esm/components/src/components/Molecules/TemplatesEditor/TemplatesEditor.d.ts.map +1 -1
  86. package/dist/esm/components/src/components/Molecules/TemplatesEditor/TemplatesEditor.js +1 -1
  87. package/dist/esm/components/src/components/Organisms/AutocompleteLayout/AutocompleteLayout.d.ts +3 -1
  88. package/dist/esm/components/src/components/Organisms/AutocompleteLayout/AutocompleteLayout.d.ts.map +1 -1
  89. package/dist/esm/components/src/components/Organisms/AutocompleteLayout/AutocompleteLayout.js +17 -2
  90. package/dist/esm/components/src/components/Organisms/Facet/Facet.d.ts.map +1 -1
  91. package/dist/esm/components/src/components/Organisms/Facet/Facet.js +5 -1
  92. package/dist/esm/components/src/components/Organisms/Layout/Layout.d.ts +3 -1
  93. package/dist/esm/components/src/components/Organisms/Layout/Layout.d.ts.map +1 -1
  94. package/dist/esm/components/src/components/Organisms/Layout/Layout.js +15 -1
  95. package/dist/esm/components/src/components/Organisms/Results/Results.d.ts.map +1 -1
  96. package/dist/esm/components/src/components/Organisms/Results/Results.js +4 -4
  97. package/dist/esm/components/src/components/Organisms/Toolbar/Toolbar.d.ts +3 -1
  98. package/dist/esm/components/src/components/Organisms/Toolbar/Toolbar.d.ts.map +1 -1
  99. package/dist/esm/components/src/components/Organisms/Toolbar/Toolbar.js +2 -1
  100. package/dist/esm/components/src/components/Templates/AutocompleteFixed/AutocompleteFixed.d.ts +2 -0
  101. package/dist/esm/components/src/components/Templates/AutocompleteFixed/AutocompleteFixed.d.ts.map +1 -1
  102. package/dist/esm/components/src/components/Templates/AutocompleteFixed/AutocompleteFixed.js +10 -8
  103. package/dist/esm/components/src/components/Templates/AutocompleteModal/AutocompleteModal.d.ts +2 -0
  104. package/dist/esm/components/src/components/Templates/AutocompleteModal/AutocompleteModal.d.ts.map +1 -1
  105. package/dist/esm/components/src/components/Templates/AutocompleteModal/AutocompleteModal.js +10 -8
  106. package/dist/esm/components/src/components/Templates/AutocompleteSlideout/AutocompleteSlideout.d.ts +2 -0
  107. package/dist/esm/components/src/components/Templates/AutocompleteSlideout/AutocompleteSlideout.d.ts.map +1 -1
  108. package/dist/esm/components/src/components/Templates/AutocompleteSlideout/AutocompleteSlideout.js +10 -8
  109. package/dist/esm/components/src/components/Templates/Search/Search.d.ts +2 -0
  110. package/dist/esm/components/src/components/Templates/Search/Search.d.ts.map +1 -1
  111. package/dist/esm/components/src/components/Templates/Search/Search.js +10 -3
  112. package/dist/esm/components/src/hooks/useAcRenderedInput.d.ts +2 -2
  113. package/dist/esm/components/src/hooks/useAcRenderedInput.d.ts.map +1 -1
  114. package/dist/esm/components/src/hooks/useAcRenderedInput.js +15 -4
  115. package/dist/esm/components/src/hooks/useCreateController.d.ts.map +1 -1
  116. package/dist/esm/components/src/hooks/useCreateController.js +24 -3
  117. package/dist/esm/components/src/index.d.ts +1 -14
  118. package/dist/esm/components/src/index.d.ts.map +1 -1
  119. package/dist/esm/components/src/index.js +1 -14
  120. package/dist/esm/components/src/providers/langComponents.d.ts +2 -20
  121. package/dist/esm/components/src/providers/langComponents.d.ts.map +1 -1
  122. package/dist/esm/components/src/providers/themeComponents.d.ts +41 -209
  123. package/dist/esm/components/src/providers/themeComponents.d.ts.map +1 -1
  124. package/dist/esm/components/src/providers/themeComponents.js +1 -20
  125. package/dist/esm/components/src/providers/withTracking.d.ts +2 -2
  126. package/dist/esm/components/src/providers/withTracking.d.ts.map +1 -1
  127. package/dist/esm/components/src/setupTests.js +0 -14
  128. package/dist/esm/components/src/themes/base/components/templates/index.d.ts.map +1 -1
  129. package/dist/esm/components/src/themes/base/components/templates/index.js +0 -10
  130. package/dist/esm/components/src/themes/bocachica/components/templates/index.d.ts.map +1 -1
  131. package/dist/esm/components/src/themes/bocachica/components/templates/index.js +0 -10
  132. package/dist/esm/components/src/themes/pike/components/templates/index.d.ts.map +1 -1
  133. package/dist/esm/components/src/themes/pike/components/templates/index.js +0 -10
  134. package/dist/esm/components/src/themes/snapnco/components/templates/index.d.ts.map +1 -1
  135. package/dist/esm/components/src/themes/snapnco/components/templates/index.js +0 -10
  136. package/dist/esm/components/src/themes/snappy/components/templates/index.d.ts.map +1 -1
  137. package/dist/esm/components/src/themes/snappy/components/templates/index.js +0 -10
  138. package/dist/esm/components/src/utilities/Colour/Colour.d.ts +0 -15
  139. package/dist/esm/components/src/utilities/Colour/Colour.d.ts.map +1 -1
  140. package/dist/esm/components/src/utilities/Colour/Colour.js +0 -41
  141. package/dist/esm/components/src/utilities/index.d.ts +1 -0
  142. package/dist/esm/components/src/utilities/index.d.ts.map +1 -1
  143. package/dist/esm/components/src/utilities/index.js +1 -0
  144. package/dist/esm/components/src/utilities/selectionKey.d.ts +3 -0
  145. package/dist/esm/components/src/utilities/selectionKey.d.ts.map +1 -0
  146. package/dist/esm/components/src/utilities/selectionKey.js +9 -0
  147. package/dist/esm/components/src/utilities/snapify.d.ts +2 -3
  148. package/dist/esm/components/src/utilities/snapify.d.ts.map +1 -1
  149. package/dist/esm/components/src/utilities/snapify.js +2 -29
  150. package/dist/esm/src/Snap.d.ts +1 -2
  151. package/dist/esm/src/Snap.d.ts.map +1 -1
  152. package/dist/esm/src/Snap.js +1 -71
  153. package/dist/esm/src/Templates/SnapTemplates.d.ts +7 -5
  154. package/dist/esm/src/Templates/SnapTemplates.d.ts.map +1 -1
  155. package/dist/esm/src/Templates/SnapTemplates.js +146 -85
  156. package/dist/esm/src/Templates/Stores/LibraryStore.d.ts +2 -43
  157. package/dist/esm/src/Templates/Stores/LibraryStore.d.ts.map +1 -1
  158. package/dist/esm/src/Templates/Stores/LibraryStore.js +3 -51
  159. package/dist/esm/src/Templates/Stores/TabManagerStore.d.ts +29 -0
  160. package/dist/esm/src/Templates/Stores/TabManagerStore.d.ts.map +1 -0
  161. package/dist/esm/src/Templates/Stores/TabManagerStore.js +146 -0
  162. package/dist/esm/src/Templates/Stores/TemplateStore.d.ts +28 -22
  163. package/dist/esm/src/Templates/Stores/TemplateStore.d.ts.map +1 -1
  164. package/dist/esm/src/Templates/Stores/TemplateStore.js +23 -2
  165. package/dist/esm/src/Templates/Stores/library/languages/es.d.ts.map +1 -1
  166. package/dist/esm/src/Templates/Stores/library/languages/es.js +20 -487
  167. package/dist/esm/src/Templates/Stores/library/languages/fr.d.ts.map +1 -1
  168. package/dist/esm/src/Templates/Stores/library/languages/fr.js +20 -487
  169. package/dist/esm/src/create/createAutocompleteController.js +6 -1
  170. package/dist/esm/src/create/index.d.ts +0 -1
  171. package/dist/esm/src/create/index.d.ts.map +1 -1
  172. package/dist/esm/src/create/index.js +0 -1
  173. package/dist/esm/src/setupEvents.d.ts +0 -13
  174. package/dist/esm/src/setupEvents.d.ts.map +1 -1
  175. package/dist/esm/src/setupEvents.js +0 -44
  176. package/dist/esm/src/types.d.ts +9 -14
  177. package/dist/esm/src/types.d.ts.map +1 -1
  178. package/dist/esm/src/utils/index.d.ts +0 -1
  179. package/dist/esm/src/utils/index.d.ts.map +1 -1
  180. package/dist/esm/src/utils/index.js +0 -1
  181. package/package.json +12 -14
  182. package/dist/cjs/components/src/components/Atoms/ChatLoadingIndicator/ChatLoadingIndicator.js +0 -99
  183. package/dist/cjs/components/src/components/Atoms/ChatLoadingIndicator/index.js +0 -17
  184. package/dist/cjs/components/src/components/Molecules/ChatAttachmentContext/ChatAttachmentContext.js +0 -221
  185. package/dist/cjs/components/src/components/Molecules/ChatAttachmentContext/index.js +0 -17
  186. package/dist/cjs/components/src/components/Molecules/ChatInspirationResultMessage/ChatInspirationResultMessage.js +0 -209
  187. package/dist/cjs/components/src/components/Molecules/ChatInspirationResultMessage/index.js +0 -17
  188. package/dist/cjs/components/src/components/Molecules/ChatMessageText/ChatMessageText.js +0 -258
  189. package/dist/cjs/components/src/components/Molecules/ChatMessageText/index.js +0 -17
  190. package/dist/cjs/components/src/components/Molecules/ChatMessageUser/ChatMessageUser.js +0 -282
  191. package/dist/cjs/components/src/components/Molecules/ChatMessageUser/index.js +0 -17
  192. package/dist/cjs/components/src/components/Molecules/ChatProductComparisonMessage/ChatProductComparisonMessage.js +0 -173
  193. package/dist/cjs/components/src/components/Molecules/ChatProductComparisonMessage/index.js +0 -17
  194. package/dist/cjs/components/src/components/Molecules/ChatProductQueryMessage/ChatProductQueryMessage.js +0 -577
  195. package/dist/cjs/components/src/components/Molecules/ChatProductQueryMessage/index.js +0 -17
  196. package/dist/cjs/components/src/components/Molecules/ChatResult/ChatResult.js +0 -252
  197. package/dist/cjs/components/src/components/Molecules/ChatResult/index.js +0 -17
  198. package/dist/cjs/components/src/components/Molecules/ChatResultsDisplay/ChatResultsDisplay.js +0 -113
  199. package/dist/cjs/components/src/components/Molecules/ChatResultsDisplay/index.js +0 -17
  200. package/dist/cjs/components/src/components/Molecules/ChatSuggestedQuestions/ChatSuggestedQuestions.js +0 -107
  201. package/dist/cjs/components/src/components/Molecules/ChatSuggestedQuestions/index.js +0 -17
  202. package/dist/cjs/components/src/components/Organisms/Chat/Chat.js +0 -621
  203. package/dist/cjs/components/src/components/Organisms/Chat/Chat.lang.js +0 -105
  204. package/dist/cjs/components/src/components/Organisms/Chat/components/ChatAttachments.js +0 -104
  205. package/dist/cjs/components/src/components/Organisms/Chat/components/ChatComparisonsTray.js +0 -161
  206. package/dist/cjs/components/src/components/Organisms/Chat/components/ChatComposer.js +0 -166
  207. package/dist/cjs/components/src/components/Organisms/Chat/components/ChatFacetsBar.js +0 -369
  208. package/dist/cjs/components/src/components/Organisms/Chat/components/ChatHistory.js +0 -130
  209. package/dist/cjs/components/src/components/Organisms/Chat/components/ChatMessages.js +0 -218
  210. package/dist/cjs/components/src/components/Organisms/Chat/components/ChatSessionFeedback.js +0 -123
  211. package/dist/cjs/components/src/components/Organisms/Chat/components/ChatSideChat.js +0 -173
  212. package/dist/cjs/components/src/components/Organisms/Chat/components/ChatTopicDrift.js +0 -149
  213. package/dist/cjs/components/src/components/Organisms/Chat/components/chatAccentTheme.js +0 -60
  214. package/dist/cjs/components/src/components/Organisms/Chat/hooks/useChatFileUpload.js +0 -66
  215. package/dist/cjs/components/src/components/Organisms/Chat/hooks/useChatGestures.js +0 -96
  216. package/dist/cjs/components/src/components/Organisms/Chat/hooks/useChatOverflow.js +0 -113
  217. package/dist/cjs/components/src/components/Organisms/Chat/hooks/useChatScrollLock.js +0 -135
  218. package/dist/cjs/components/src/components/Organisms/Chat/index.js +0 -18
  219. package/dist/cjs/components/src/components/Organisms/ChatButton/ChatButton.js +0 -94
  220. package/dist/cjs/components/src/components/Organisms/ChatButton/ChatButton.lang.js +0 -11
  221. package/dist/cjs/components/src/components/Organisms/ChatButton/index.js +0 -18
  222. package/dist/cjs/components/src/components/Templates/Chat/Chat.js +0 -47
  223. package/dist/cjs/components/src/components/Templates/Chat/index.js +0 -17
  224. package/dist/cjs/components/src/components/Templates/ChatButton/ChatButton.js +0 -47
  225. package/dist/cjs/components/src/themes/base/components/templates/chat.js +0 -6
  226. package/dist/cjs/components/src/themes/base/components/templates/chatButton.js +0 -6
  227. package/dist/cjs/components/src/themes/bocachica/components/templates/chat.js +0 -6
  228. package/dist/cjs/components/src/themes/bocachica/components/templates/chatButton.js +0 -6
  229. package/dist/cjs/components/src/themes/pike/components/templates/chat.js +0 -6
  230. package/dist/cjs/components/src/themes/pike/components/templates/chatButton.js +0 -6
  231. package/dist/cjs/components/src/themes/snapnco/components/templates/chat.js +0 -6
  232. package/dist/cjs/components/src/themes/snapnco/components/templates/chatButton.js +0 -6
  233. package/dist/cjs/components/src/themes/snappy/components/templates/chat.js +0 -6
  234. package/dist/cjs/components/src/themes/snappy/components/templates/chatButton.js +0 -6
  235. package/dist/cjs/components/src/themes/themeComponents/chat.js +0 -14
  236. package/dist/cjs/components/src/themes/themeComponents/chatButton.js +0 -9
  237. package/dist/cjs/src/Templates/Stores/library/components/Chat.js +0 -5
  238. package/dist/cjs/src/Templates/Stores/library/components/ChatButton.js +0 -5
  239. package/dist/cjs/src/create/createChatController.js +0 -30
  240. package/dist/cjs/src/utils/applyChatTargetInject.js +0 -25
  241. package/dist/esm/components/src/components/Atoms/ChatLoadingIndicator/ChatLoadingIndicator.d.ts +0 -17
  242. package/dist/esm/components/src/components/Atoms/ChatLoadingIndicator/ChatLoadingIndicator.d.ts.map +0 -1
  243. package/dist/esm/components/src/components/Atoms/ChatLoadingIndicator/ChatLoadingIndicator.js +0 -92
  244. package/dist/esm/components/src/components/Atoms/ChatLoadingIndicator/index.d.ts +0 -2
  245. package/dist/esm/components/src/components/Atoms/ChatLoadingIndicator/index.d.ts.map +0 -1
  246. package/dist/esm/components/src/components/Atoms/ChatLoadingIndicator/index.js +0 -1
  247. package/dist/esm/components/src/components/Molecules/ChatAttachmentContext/ChatAttachmentContext.d.ts +0 -30
  248. package/dist/esm/components/src/components/Molecules/ChatAttachmentContext/ChatAttachmentContext.d.ts.map +0 -1
  249. package/dist/esm/components/src/components/Molecules/ChatAttachmentContext/ChatAttachmentContext.js +0 -215
  250. package/dist/esm/components/src/components/Molecules/ChatAttachmentContext/index.d.ts +0 -2
  251. package/dist/esm/components/src/components/Molecules/ChatAttachmentContext/index.d.ts.map +0 -1
  252. package/dist/esm/components/src/components/Molecules/ChatAttachmentContext/index.js +0 -1
  253. package/dist/esm/components/src/components/Molecules/ChatInspirationResultMessage/ChatInspirationResultMessage.d.ts +0 -19
  254. package/dist/esm/components/src/components/Molecules/ChatInspirationResultMessage/ChatInspirationResultMessage.d.ts.map +0 -1
  255. package/dist/esm/components/src/components/Molecules/ChatInspirationResultMessage/ChatInspirationResultMessage.js +0 -203
  256. package/dist/esm/components/src/components/Molecules/ChatInspirationResultMessage/index.d.ts +0 -2
  257. package/dist/esm/components/src/components/Molecules/ChatInspirationResultMessage/index.d.ts.map +0 -1
  258. package/dist/esm/components/src/components/Molecules/ChatInspirationResultMessage/index.js +0 -1
  259. package/dist/esm/components/src/components/Molecules/ChatMessageText/ChatMessageText.d.ts +0 -36
  260. package/dist/esm/components/src/components/Molecules/ChatMessageText/ChatMessageText.d.ts.map +0 -1
  261. package/dist/esm/components/src/components/Molecules/ChatMessageText/ChatMessageText.js +0 -252
  262. package/dist/esm/components/src/components/Molecules/ChatMessageText/index.d.ts +0 -2
  263. package/dist/esm/components/src/components/Molecules/ChatMessageText/index.d.ts.map +0 -1
  264. package/dist/esm/components/src/components/Molecules/ChatMessageText/index.js +0 -1
  265. package/dist/esm/components/src/components/Molecules/ChatMessageUser/ChatMessageUser.d.ts +0 -38
  266. package/dist/esm/components/src/components/Molecules/ChatMessageUser/ChatMessageUser.d.ts.map +0 -1
  267. package/dist/esm/components/src/components/Molecules/ChatMessageUser/ChatMessageUser.js +0 -276
  268. package/dist/esm/components/src/components/Molecules/ChatMessageUser/index.d.ts +0 -2
  269. package/dist/esm/components/src/components/Molecules/ChatMessageUser/index.d.ts.map +0 -1
  270. package/dist/esm/components/src/components/Molecules/ChatMessageUser/index.js +0 -1
  271. package/dist/esm/components/src/components/Molecules/ChatProductComparisonMessage/ChatProductComparisonMessage.d.ts +0 -19
  272. package/dist/esm/components/src/components/Molecules/ChatProductComparisonMessage/ChatProductComparisonMessage.d.ts.map +0 -1
  273. package/dist/esm/components/src/components/Molecules/ChatProductComparisonMessage/ChatProductComparisonMessage.js +0 -167
  274. package/dist/esm/components/src/components/Molecules/ChatProductComparisonMessage/index.d.ts +0 -2
  275. package/dist/esm/components/src/components/Molecules/ChatProductComparisonMessage/index.d.ts.map +0 -1
  276. package/dist/esm/components/src/components/Molecules/ChatProductComparisonMessage/index.js +0 -1
  277. package/dist/esm/components/src/components/Molecules/ChatProductQueryMessage/ChatProductQueryMessage.d.ts +0 -38
  278. package/dist/esm/components/src/components/Molecules/ChatProductQueryMessage/ChatProductQueryMessage.d.ts.map +0 -1
  279. package/dist/esm/components/src/components/Molecules/ChatProductQueryMessage/ChatProductQueryMessage.js +0 -571
  280. package/dist/esm/components/src/components/Molecules/ChatProductQueryMessage/index.d.ts +0 -2
  281. package/dist/esm/components/src/components/Molecules/ChatProductQueryMessage/index.d.ts.map +0 -1
  282. package/dist/esm/components/src/components/Molecules/ChatProductQueryMessage/index.js +0 -1
  283. package/dist/esm/components/src/components/Molecules/ChatResult/ChatResult.d.ts +0 -35
  284. package/dist/esm/components/src/components/Molecules/ChatResult/ChatResult.d.ts.map +0 -1
  285. package/dist/esm/components/src/components/Molecules/ChatResult/ChatResult.js +0 -246
  286. package/dist/esm/components/src/components/Molecules/ChatResult/index.d.ts +0 -2
  287. package/dist/esm/components/src/components/Molecules/ChatResult/index.d.ts.map +0 -1
  288. package/dist/esm/components/src/components/Molecules/ChatResult/index.js +0 -1
  289. package/dist/esm/components/src/components/Molecules/ChatResultsDisplay/ChatResultsDisplay.d.ts +0 -24
  290. package/dist/esm/components/src/components/Molecules/ChatResultsDisplay/ChatResultsDisplay.d.ts.map +0 -1
  291. package/dist/esm/components/src/components/Molecules/ChatResultsDisplay/ChatResultsDisplay.js +0 -107
  292. package/dist/esm/components/src/components/Molecules/ChatResultsDisplay/index.d.ts +0 -2
  293. package/dist/esm/components/src/components/Molecules/ChatResultsDisplay/index.d.ts.map +0 -1
  294. package/dist/esm/components/src/components/Molecules/ChatResultsDisplay/index.js +0 -1
  295. package/dist/esm/components/src/components/Molecules/ChatSuggestedQuestions/ChatSuggestedQuestions.d.ts +0 -16
  296. package/dist/esm/components/src/components/Molecules/ChatSuggestedQuestions/ChatSuggestedQuestions.d.ts.map +0 -1
  297. package/dist/esm/components/src/components/Molecules/ChatSuggestedQuestions/ChatSuggestedQuestions.js +0 -101
  298. package/dist/esm/components/src/components/Molecules/ChatSuggestedQuestions/index.d.ts +0 -2
  299. package/dist/esm/components/src/components/Molecules/ChatSuggestedQuestions/index.d.ts.map +0 -1
  300. package/dist/esm/components/src/components/Molecules/ChatSuggestedQuestions/index.js +0 -1
  301. package/dist/esm/components/src/components/Organisms/Chat/Chat.d.ts +0 -41
  302. package/dist/esm/components/src/components/Organisms/Chat/Chat.d.ts.map +0 -1
  303. package/dist/esm/components/src/components/Organisms/Chat/Chat.js +0 -615
  304. package/dist/esm/components/src/components/Organisms/Chat/Chat.lang.d.ts +0 -76
  305. package/dist/esm/components/src/components/Organisms/Chat/Chat.lang.d.ts.map +0 -1
  306. package/dist/esm/components/src/components/Organisms/Chat/Chat.lang.js +0 -100
  307. package/dist/esm/components/src/components/Organisms/Chat/components/ChatAttachments.d.ts +0 -26
  308. package/dist/esm/components/src/components/Organisms/Chat/components/ChatAttachments.d.ts.map +0 -1
  309. package/dist/esm/components/src/components/Organisms/Chat/components/ChatAttachments.js +0 -98
  310. package/dist/esm/components/src/components/Organisms/Chat/components/ChatComparisonsTray.d.ts +0 -13
  311. package/dist/esm/components/src/components/Organisms/Chat/components/ChatComparisonsTray.d.ts.map +0 -1
  312. package/dist/esm/components/src/components/Organisms/Chat/components/ChatComparisonsTray.js +0 -155
  313. package/dist/esm/components/src/components/Organisms/Chat/components/ChatComposer.d.ts +0 -19
  314. package/dist/esm/components/src/components/Organisms/Chat/components/ChatComposer.d.ts.map +0 -1
  315. package/dist/esm/components/src/components/Organisms/Chat/components/ChatComposer.js +0 -160
  316. package/dist/esm/components/src/components/Organisms/Chat/components/ChatFacetsBar.d.ts +0 -18
  317. package/dist/esm/components/src/components/Organisms/Chat/components/ChatFacetsBar.d.ts.map +0 -1
  318. package/dist/esm/components/src/components/Organisms/Chat/components/ChatFacetsBar.js +0 -363
  319. package/dist/esm/components/src/components/Organisms/Chat/components/ChatHistory.d.ts +0 -11
  320. package/dist/esm/components/src/components/Organisms/Chat/components/ChatHistory.d.ts.map +0 -1
  321. package/dist/esm/components/src/components/Organisms/Chat/components/ChatHistory.js +0 -124
  322. package/dist/esm/components/src/components/Organisms/Chat/components/ChatMessages.d.ts +0 -30
  323. package/dist/esm/components/src/components/Organisms/Chat/components/ChatMessages.d.ts.map +0 -1
  324. package/dist/esm/components/src/components/Organisms/Chat/components/ChatMessages.js +0 -212
  325. package/dist/esm/components/src/components/Organisms/Chat/components/ChatSessionFeedback.d.ts +0 -13
  326. package/dist/esm/components/src/components/Organisms/Chat/components/ChatSessionFeedback.d.ts.map +0 -1
  327. package/dist/esm/components/src/components/Organisms/Chat/components/ChatSessionFeedback.js +0 -117
  328. package/dist/esm/components/src/components/Organisms/Chat/components/ChatSideChat.d.ts +0 -19
  329. package/dist/esm/components/src/components/Organisms/Chat/components/ChatSideChat.d.ts.map +0 -1
  330. package/dist/esm/components/src/components/Organisms/Chat/components/ChatSideChat.js +0 -167
  331. package/dist/esm/components/src/components/Organisms/Chat/components/ChatTopicDrift.d.ts +0 -14
  332. package/dist/esm/components/src/components/Organisms/Chat/components/ChatTopicDrift.d.ts.map +0 -1
  333. package/dist/esm/components/src/components/Organisms/Chat/components/ChatTopicDrift.js +0 -143
  334. package/dist/esm/components/src/components/Organisms/Chat/components/chatAccentTheme.d.ts +0 -15
  335. package/dist/esm/components/src/components/Organisms/Chat/components/chatAccentTheme.d.ts.map +0 -1
  336. package/dist/esm/components/src/components/Organisms/Chat/components/chatAccentTheme.js +0 -56
  337. package/dist/esm/components/src/components/Organisms/Chat/hooks/useChatFileUpload.d.ts +0 -32
  338. package/dist/esm/components/src/components/Organisms/Chat/hooks/useChatFileUpload.d.ts.map +0 -1
  339. package/dist/esm/components/src/components/Organisms/Chat/hooks/useChatFileUpload.js +0 -62
  340. package/dist/esm/components/src/components/Organisms/Chat/hooks/useChatGestures.d.ts +0 -40
  341. package/dist/esm/components/src/components/Organisms/Chat/hooks/useChatGestures.d.ts.map +0 -1
  342. package/dist/esm/components/src/components/Organisms/Chat/hooks/useChatGestures.js +0 -92
  343. package/dist/esm/components/src/components/Organisms/Chat/hooks/useChatOverflow.d.ts +0 -43
  344. package/dist/esm/components/src/components/Organisms/Chat/hooks/useChatOverflow.d.ts.map +0 -1
  345. package/dist/esm/components/src/components/Organisms/Chat/hooks/useChatOverflow.js +0 -109
  346. package/dist/esm/components/src/components/Organisms/Chat/hooks/useChatScrollLock.d.ts +0 -26
  347. package/dist/esm/components/src/components/Organisms/Chat/hooks/useChatScrollLock.d.ts.map +0 -1
  348. package/dist/esm/components/src/components/Organisms/Chat/hooks/useChatScrollLock.js +0 -131
  349. package/dist/esm/components/src/components/Organisms/Chat/index.d.ts +0 -3
  350. package/dist/esm/components/src/components/Organisms/Chat/index.d.ts.map +0 -1
  351. package/dist/esm/components/src/components/Organisms/Chat/index.js +0 -2
  352. package/dist/esm/components/src/components/Organisms/ChatButton/ChatButton.d.ts +0 -18
  353. package/dist/esm/components/src/components/Organisms/ChatButton/ChatButton.d.ts.map +0 -1
  354. package/dist/esm/components/src/components/Organisms/ChatButton/ChatButton.js +0 -88
  355. package/dist/esm/components/src/components/Organisms/ChatButton/ChatButton.lang.d.ts +0 -7
  356. package/dist/esm/components/src/components/Organisms/ChatButton/ChatButton.lang.d.ts.map +0 -1
  357. package/dist/esm/components/src/components/Organisms/ChatButton/ChatButton.lang.js +0 -8
  358. package/dist/esm/components/src/components/Organisms/ChatButton/index.d.ts +0 -3
  359. package/dist/esm/components/src/components/Organisms/ChatButton/index.d.ts.map +0 -1
  360. package/dist/esm/components/src/components/Organisms/ChatButton/index.js +0 -2
  361. package/dist/esm/components/src/components/Templates/Chat/Chat.d.ts +0 -12
  362. package/dist/esm/components/src/components/Templates/Chat/Chat.d.ts.map +0 -1
  363. package/dist/esm/components/src/components/Templates/Chat/Chat.js +0 -41
  364. package/dist/esm/components/src/components/Templates/Chat/index.d.ts +0 -2
  365. package/dist/esm/components/src/components/Templates/Chat/index.d.ts.map +0 -1
  366. package/dist/esm/components/src/components/Templates/Chat/index.js +0 -1
  367. package/dist/esm/components/src/components/Templates/ChatButton/ChatButton.d.ts +0 -13
  368. package/dist/esm/components/src/components/Templates/ChatButton/ChatButton.d.ts.map +0 -1
  369. package/dist/esm/components/src/components/Templates/ChatButton/ChatButton.js +0 -41
  370. package/dist/esm/components/src/components/Templates/ChatButton/index.d.ts +0 -2
  371. package/dist/esm/components/src/components/Templates/ChatButton/index.d.ts.map +0 -1
  372. package/dist/esm/components/src/components/Templates/ChatButton/index.js +0 -1
  373. package/dist/esm/components/src/themes/base/components/templates/chat.d.ts +0 -4
  374. package/dist/esm/components/src/themes/base/components/templates/chat.d.ts.map +0 -1
  375. package/dist/esm/components/src/themes/base/components/templates/chat.js +0 -3
  376. package/dist/esm/components/src/themes/base/components/templates/chatButton.d.ts +0 -4
  377. package/dist/esm/components/src/themes/base/components/templates/chatButton.d.ts.map +0 -1
  378. package/dist/esm/components/src/themes/base/components/templates/chatButton.js +0 -3
  379. package/dist/esm/components/src/themes/bocachica/components/templates/chat.d.ts +0 -4
  380. package/dist/esm/components/src/themes/bocachica/components/templates/chat.d.ts.map +0 -1
  381. package/dist/esm/components/src/themes/bocachica/components/templates/chat.js +0 -3
  382. package/dist/esm/components/src/themes/bocachica/components/templates/chatButton.d.ts +0 -4
  383. package/dist/esm/components/src/themes/bocachica/components/templates/chatButton.d.ts.map +0 -1
  384. package/dist/esm/components/src/themes/bocachica/components/templates/chatButton.js +0 -3
  385. package/dist/esm/components/src/themes/pike/components/templates/chat.d.ts +0 -4
  386. package/dist/esm/components/src/themes/pike/components/templates/chat.d.ts.map +0 -1
  387. package/dist/esm/components/src/themes/pike/components/templates/chat.js +0 -3
  388. package/dist/esm/components/src/themes/pike/components/templates/chatButton.d.ts +0 -4
  389. package/dist/esm/components/src/themes/pike/components/templates/chatButton.d.ts.map +0 -1
  390. package/dist/esm/components/src/themes/pike/components/templates/chatButton.js +0 -3
  391. package/dist/esm/components/src/themes/snapnco/components/templates/chat.d.ts +0 -4
  392. package/dist/esm/components/src/themes/snapnco/components/templates/chat.d.ts.map +0 -1
  393. package/dist/esm/components/src/themes/snapnco/components/templates/chat.js +0 -3
  394. package/dist/esm/components/src/themes/snapnco/components/templates/chatButton.d.ts +0 -4
  395. package/dist/esm/components/src/themes/snapnco/components/templates/chatButton.d.ts.map +0 -1
  396. package/dist/esm/components/src/themes/snapnco/components/templates/chatButton.js +0 -3
  397. package/dist/esm/components/src/themes/snappy/components/templates/chat.d.ts +0 -4
  398. package/dist/esm/components/src/themes/snappy/components/templates/chat.d.ts.map +0 -1
  399. package/dist/esm/components/src/themes/snappy/components/templates/chat.js +0 -3
  400. package/dist/esm/components/src/themes/snappy/components/templates/chatButton.d.ts +0 -4
  401. package/dist/esm/components/src/themes/snappy/components/templates/chatButton.d.ts.map +0 -1
  402. package/dist/esm/components/src/themes/snappy/components/templates/chatButton.js +0 -3
  403. package/dist/esm/components/src/themes/themeComponents/chat.d.ts +0 -4
  404. package/dist/esm/components/src/themes/themeComponents/chat.d.ts.map +0 -1
  405. package/dist/esm/components/src/themes/themeComponents/chat.js +0 -11
  406. package/dist/esm/components/src/themes/themeComponents/chatButton.d.ts +0 -4
  407. package/dist/esm/components/src/themes/themeComponents/chatButton.d.ts.map +0 -1
  408. package/dist/esm/components/src/themes/themeComponents/chatButton.js +0 -6
  409. package/dist/esm/src/Templates/Stores/library/components/Chat.d.ts +0 -2
  410. package/dist/esm/src/Templates/Stores/library/components/Chat.d.ts.map +0 -1
  411. package/dist/esm/src/Templates/Stores/library/components/Chat.js +0 -1
  412. package/dist/esm/src/Templates/Stores/library/components/ChatButton.d.ts +0 -2
  413. package/dist/esm/src/Templates/Stores/library/components/ChatButton.d.ts.map +0 -1
  414. package/dist/esm/src/Templates/Stores/library/components/ChatButton.js +0 -1
  415. package/dist/esm/src/create/createChatController.d.ts +0 -5
  416. package/dist/esm/src/create/createChatController.d.ts.map +0 -1
  417. package/dist/esm/src/create/createChatController.js +0 -28
  418. package/dist/esm/src/utils/applyChatTargetInject.d.ts +0 -3
  419. package/dist/esm/src/utils/applyChatTargetInject.d.ts.map +0 -1
  420. package/dist/esm/src/utils/applyChatTargetInject.js +0 -22
@@ -0,0 +1,3 @@
1
+ import type { ListOption } from '../types';
2
+ export declare function selectionKey(selected?: ListOption | ListOption[]): string;
3
+ //# sourceMappingURL=selectionKey.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"selectionKey.d.ts","sourceRoot":"","sources":["../../../../../components/src/utilities/selectionKey.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAM3C,wBAAgB,YAAY,CAAC,QAAQ,CAAC,EAAE,UAAU,GAAG,UAAU,EAAE,GAAG,MAAM,CAKzE"}
@@ -0,0 +1,9 @@
1
+ // identifies a selection by the fields that options are matched on when rendering, so that a store
2
+ // handing back an equivalent - but not identical - option counts as the same selection. option
3
+ // objects themselves are not comparable: those built by the stores carry a UrlManager that picks up
4
+ // every url change, which would read as a new selection on each navigation
5
+ export function selectionKey(selected) {
6
+ const options = selected == undefined ? [] : Array.isArray(selected) ? selected : [selected];
7
+ // label is included so that options without a value still produce distinct keys
8
+ return options.map((option) => `${option?.value}:${option?.label}`).join('|');
9
+ }
@@ -1,9 +1,8 @@
1
- import { SearchController, AutocompleteController, RecommendationController, ChatController } from '@athoscommerce/snap-controller';
2
- import type { SearchControllerConfig, AutocompleteControllerConfig, RecommendationControllerConfig, ChatControllerConfig } from '@athoscommerce/snap-controller';
1
+ import { SearchController, AutocompleteController, RecommendationController } from '@athoscommerce/snap-controller';
2
+ import type { SearchControllerConfig, AutocompleteControllerConfig, RecommendationControllerConfig } from '@athoscommerce/snap-controller';
3
3
  export declare class Snapify {
4
4
  static recommendation(config: RecommendationControllerConfig): RecommendationController;
5
5
  static autocomplete(config: AutocompleteControllerConfig): AutocompleteController;
6
- static chat(config: ChatControllerConfig): ChatController;
7
6
  static search(config: SearchControllerConfig): SearchController;
8
7
  }
9
8
  //# sourceMappingURL=snapify.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"snapify.d.ts","sourceRoot":"","sources":["../../../../../components/src/utilities/snapify.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,wBAAwB,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAUpI,OAAO,KAAK,EACX,sBAAsB,EACtB,4BAA4B,EAC5B,8BAA8B,EAC9B,oBAAoB,EACpB,MAAM,gCAAgC,CAAC;AAqBxC,qBAAa,OAAO;IACnB,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,8BAA8B,GAAG,wBAAwB,CAiBtF;IACD,MAAM,CAAC,YAAY,CAAC,MAAM,EAAE,4BAA4B,GAAG,sBAAsB,CAiBhF;IAED,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,oBAAoB,GAAG,cAAc,CAiBxD;IAED,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,sBAAsB,GAAG,gBAAgB,CAiB9D;CACD"}
1
+ {"version":3,"file":"snapify.d.ts","sourceRoot":"","sources":["../../../../../components/src/utilities/snapify.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,wBAAwB,EAAE,MAAM,gCAAgC,CAAC;AAUpH,OAAO,KAAK,EAAE,sBAAsB,EAAE,4BAA4B,EAAE,8BAA8B,EAAE,MAAM,gCAAgC,CAAC;AAqB3I,qBAAa,OAAO;IACnB,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,8BAA8B,GAAG,wBAAwB,CAiBtF;IACD,MAAM,CAAC,YAAY,CAAC,MAAM,EAAE,4BAA4B,GAAG,sBAAsB,CAiBhF;IAED,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,sBAAsB,GAAG,gBAAgB,CAiB9D;CACD"}
@@ -1,7 +1,7 @@
1
1
  import { configure as configureMobx } from 'mobx';
2
- import { SearchController, AutocompleteController, RecommendationController, ChatController } from '@athoscommerce/snap-controller';
2
+ import { SearchController, AutocompleteController, RecommendationController } from '@athoscommerce/snap-controller';
3
3
  import { Client } from '@athoscommerce/snap-client';
4
- import { SearchStore, AutocompleteStore, RecommendationStore, ChatStore } from '@athoscommerce/snap-store-mobx';
4
+ import { SearchStore, AutocompleteStore, RecommendationStore } 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,20 +42,6 @@ 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
- }
59
45
  static search(config) {
60
46
  const id = config.id;
61
47
  if (controllers[id]) {
@@ -97,19 +83,6 @@ function createRecommendationController(config) {
97
83
  });
98
84
  return cntrlr;
99
85
  }
100
- function createChatController(config) {
101
- const urlManager = new UrlManager(new UrlTranslator(), reactLinker).detach(true);
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
- }
113
86
  function createAutocompleteController(config) {
114
87
  const urlManager = new UrlManager(new UrlTranslator(), reactLinker).detach();
115
88
  const cntrlr = new AutocompleteController(config.controller, {
@@ -5,7 +5,7 @@ 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, ChatControllerConfig, AutocompleteControllerConfig, FinderControllerConfig, RecommendationControllerConfig, ControllerConfigs, ContextVariables } from '@athoscommerce/snap-controller';
8
+ import type { Controllers, AbstractController, SearchControllerConfig, 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';
@@ -55,7 +55,6 @@ export type SnapConfig = {
55
55
  };
56
56
  controllers?: {
57
57
  search?: SnapConfigControllerDefinition<SearchControllerConfig>[];
58
- chat?: SnapConfigControllerDefinition<ChatControllerConfig>[];
59
58
  autocomplete?: SnapConfigControllerDefinition<AutocompleteControllerConfig>[];
60
59
  finder?: SnapConfigControllerDefinition<FinderControllerConfig>[];
61
60
  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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"}
@@ -10,7 +10,7 @@ import { AppMode, version, getContext, DomTargeter, url, cookies, featureFlags }
10
10
  import { ControllerTypes } from '@athoscommerce/snap-controller';
11
11
  import { getInitialUrlState } from './getInitialUrlState/getInitialUrlState';
12
12
  import { default as createSearchController } from './create/createSearchController';
13
- import { applyChatTargetInject, configureSnapFeatures } from './utils';
13
+ import { configureSnapFeatures } from './utils';
14
14
  import { setupEvents } from './setupEvents';
15
15
  // configure MobX
16
16
  configureMobx({ useProxies: 'never', isolateGlobalState: true, enforceActions: 'never' });
@@ -95,9 +95,6 @@ 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;
101
98
  case ControllerTypes.search:
102
99
  default:
103
100
  importPromise = import('./create/createSearchController');
@@ -541,73 +538,6 @@ export class Snap {
541
538
  });
542
539
  break;
543
540
  }
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
- // `_initialized` is only set after the awaited init fires, so two chat
553
- // targeters would otherwise both re-run the init middleware
554
- let initialized = false;
555
- const targetFunction = async (target, elem, originalElem) => {
556
- const onTarget = target.onTarget;
557
- onTarget && (await onTarget(target, elem, originalElem));
558
- try {
559
- const importPromises = [];
560
- // dynamically import the component
561
- importPromises.push(target.component());
562
- const importResolutions = await Promise.all(importPromises);
563
- const Component = importResolutions[0];
564
- setTimeout(() => {
565
- render(_jsx(Component, { controller: this.controllers[controller.config.id], snap: this, ...target.props }), elem);
566
- });
567
- }
568
- catch (err) {
569
- this.logger.error(err);
570
- this.logger.error(COMPONENT_ERROR, target);
571
- }
572
- };
573
- if (!controller?.targeters || controller?.targeters.length === 0) {
574
- const cntrlr = await this._createController(ControllerTypes.chat, controller.config, controller.services, controller.url, controller.context, (cntrlr) => {
575
- if (cntrlr)
576
- resolve(cntrlr);
577
- });
578
- if (!cntrlr.initialized)
579
- cntrlr.init();
580
- }
581
- controller?.targeters?.forEach((target, target_index) => {
582
- if (!target.selector) {
583
- throw new Error(`Targets at index ${target_index} missing selector value (string).`);
584
- }
585
- if (!target.component) {
586
- throw new Error(`Targets at index ${target_index} missing component value (Component).`);
587
- }
588
- target = applyChatTargetInject(target);
589
- const targeter = new DomTargeter([{ ...target }], async (target, elem, originalElem) => {
590
- const cntrlr = await this._createController(ControllerTypes.chat, controller.config, controller.services, controller.url, controller.context, (cntrlr) => {
591
- if (cntrlr)
592
- resolve(cntrlr);
593
- });
594
- if (!initialized) {
595
- initialized = true;
596
- if (!cntrlr.initialized)
597
- cntrlr.init();
598
- }
599
- targetFunction({ controller: cntrlr, ...target }, elem, originalElem);
600
- cntrlr.addTargeter(targeter);
601
- });
602
- });
603
- }
604
- catch (err) {
605
- this.logger.error(`Failed to instantiate ${type} controller at index ${index}.`, err);
606
- }
607
- });
608
- });
609
- break;
610
- }
611
541
  case 'autocomplete': {
612
542
  this.config.controllers[type].forEach((controller, index) => {
613
543
  if (typeof this._controllerPromises[controller.config.id] != 'undefined') {
@@ -1,12 +1,12 @@
1
1
  import { Snap } from '../Snap';
2
2
  import { TemplatesStore } from './Stores/TemplateStore';
3
3
  import { type AutocompleteStoreConfigSettings } from '@athoscommerce/snap-store-mobx';
4
- import type { UrlTranslatorConfig } from '@athoscommerce/snap-url-manager';
5
- import type { PluginGrouping } from '@athoscommerce/snap-controller';
4
+ import type { CoreMap, UrlTranslatorConfig } from '@athoscommerce/snap-url-manager';
5
+ import type { Controllers, PluginGrouping } from '@athoscommerce/snap-controller';
6
6
  import type { RecommendationComponentObject } from '../Instantiators/RecommendationInstantiator';
7
7
  import type { SnapFeatures } from '../types';
8
8
  import type { SnapConfig, ExtendedTarget } from '../Snap';
9
- import type { TemplatesStoreConfigLocked, TemplatesStoreConfigUnlocked } from './Stores/TemplateStore';
9
+ import type { PluginsConfigsUnlocked, TemplatesStoreConfigLocked, TemplatesStoreConfigUnlocked } from './Stores/TemplateStore';
10
10
  export declare const TEMPLATE_EDITOR_COOKIE = "athosEditor";
11
11
  export declare const TEMPLATE_EDITOR_UI_PARAM = "athos-editor";
12
12
  export type SnapTemplatesConfig = SnapTemplatesConfigLocked;
@@ -21,20 +21,22 @@ export type SnapTemplatesConfigLocked = TemplatesStoreConfigLocked & {
21
21
  };
22
22
  export declare const DEFAULT_FEATURES: SnapFeatures;
23
23
  export declare const DEFAULT_AUTOCOMPLETE_CONTROLLER_SETTINGS: AutocompleteStoreConfigSettings;
24
+ export declare const TAB_PREFIXED_PARAMS: (keyof CoreMap)[];
24
25
  export declare const applyAutomaticThemeOverrides: (templateConfig: SnapTemplatesConfig | SnapTemplatesConfigUnlocked) => SnapTemplatesConfig | SnapTemplatesConfigUnlocked;
25
26
  export declare class SnapTemplates extends Snap {
26
27
  templates: TemplatesStore;
27
28
  constructor(config: SnapTemplatesConfig | SnapTemplatesConfigUnlocked);
29
+ getTemplateController(type: 'search' | 'autocomplete'): Controllers | undefined;
28
30
  }
29
31
  export declare function mapBreakpoints<ControllerConfigSettings>(breakpointsKeys: number[], breakpointSettings: ControllerConfigSettings[]): {
30
32
  [key: string]: ControllerConfigSettings | Record<string, never>;
31
33
  };
32
34
  export declare const createSearchTargeters: (templateConfig: SnapTemplatesConfig, templatesStore: TemplatesStore) => ExtendedTarget[];
33
- export declare const createChatTargeters: (templateConfig: SnapTemplatesConfig, templatesStore: TemplatesStore) => ExtendedTarget[];
34
35
  export declare function createAutocompleteTargeters(templateConfig: SnapTemplatesConfig, templatesStore: TemplatesStore): ExtendedTarget[];
35
36
  export declare function createRecommendationComponentMapping(templateConfig: SnapTemplatesConfig | SnapTemplatesConfigUnlocked, templatesStore: TemplatesStore): {
36
37
  [name: string]: RecommendationComponentObject;
37
38
  };
38
39
  export declare function createSnapConfig(templateConfig: SnapTemplatesConfig | SnapTemplatesConfigUnlocked, templatesStore: TemplatesStore): SnapConfig;
39
- export declare function createPlugins(templateConfig: SnapTemplatesConfig | SnapTemplatesConfigUnlocked, templatesStore: TemplatesStore, controllerType?: 'autocomplete' | 'search' | 'recommendation' | 'chat'): PluginGrouping[];
40
+ export declare function createPlugins(templateConfig: SnapTemplatesConfig | SnapTemplatesConfigUnlocked, templatesStore: TemplatesStore, controllerType?: 'autocomplete' | 'search' | 'recommendation'): PluginGrouping[];
41
+ export declare function createTabPlugins(tabPlugins: PluginsConfigsUnlocked, templatesStore: TemplatesStore): PluginGrouping[];
40
42
  //# 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,EAOX,0BAA0B,EAC1B,4BAA4B,EAE5B,MAAM,wBAAwB,CAAC;AA0ChC,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;AA0BF,eAAO,MAAM,gBAAgB,EAAE,YAAiB,CAAC;AAEjD,eAAO,MAAM,wCAAwC,EAAE,+BAItD,CAAC;AAeF,eAAO,MAAM,4BAA4B,mBACxB,mBAAmB,GAAG,2BAA2B,KAC/D,mBAAmB,GAAG,2BAmCxB,CAAC;AAEF,qBAAa,aAAc,SAAQ,IAAI;IACtC,SAAS,EAAE,cAAc,CAAC;IAC1B,YAAY,MAAM,EAAE,mBAAmB,GAAG,2BAA2B,EA4GpE;CACD;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,EAqCzH,CAAC;AAEF,eAAO,MAAM,mBAAmB,mBAAoB,mBAAmB,kBAAkB,cAAc,KAAG,cAAc,EAgCvH,CAAC;AAEF,wBAAgB,2BAA2B,CAAC,cAAc,EAAE,mBAAmB,EAAE,cAAc,EAAE,cAAc,GAAG,cAAc,EAAE,CAsCjI;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,CAmK9I;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,CAgGlB"}
1
+ {"version":3,"file":"SnapTemplates.d.ts","sourceRoot":"","sources":["../../../../src/Templates/SnapTemplates.tsx"],"names":[],"mappings":"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"}
@@ -5,8 +5,11 @@ import { Snap } from '../Snap';
5
5
  import { TemplateSelect } from '../../components/src/components/Atoms/TemplateSelect';
6
6
  import { DomTargeter, url, cookies, version, getContext } from '@athoscommerce/snap-toolbox';
7
7
  import { TemplatesStore } from './Stores/TemplateStore';
8
+ import { TAB_ID_DEFAULT_PARAM, getActiveTabConfig } from './Stores/TabManagerStore';
9
+ import { Client } from '@athoscommerce/snap-client';
10
+ import { Tracker } from '@athoscommerce/snap-tracker';
8
11
  import { shopifyMarketsPriceFormat, } from '@athoscommerce/snap-platforms/shopify';
9
- import { applyChatTargetInject, combineMerge } from '../utils';
12
+ import { combineMerge } from '../utils';
10
13
  export const TEMPLATE_EDITOR_COOKIE = 'athosEditor';
11
14
  export const TEMPLATE_EDITOR_UI_PARAM = 'athos-editor';
12
15
  export const DEFAULT_FEATURES = {};
@@ -15,6 +18,8 @@ export const DEFAULT_AUTOCOMPLETE_CONTROLLER_SETTINGS = {
15
18
  limit: 5,
16
19
  },
17
20
  };
21
+ // tabs namespace their catalog specific url state - the query is shared so a single search spans every tab
22
+ export const TAB_PREFIXED_PARAMS = ['filter', 'sort', 'pageSize', 'rq', 'page'];
18
23
  const hasShopifyMarketsPluginConfig = (templateConfig) => {
19
24
  const pluginConfigs = [
20
25
  templateConfig.plugins?.shopify?.markets,
@@ -93,8 +98,8 @@ export class SnapTemplates extends Snap {
93
98
  // attach to the window object
94
99
  window.athos = window.athos || {};
95
100
  window.athos.editor = templateEditorStore;
96
- const searchController = this.controllers['search'];
97
- const autocompleteController = this.controllers['autocomplete'];
101
+ const searchController = this.getTemplateController('search');
102
+ const autocompleteController = this.getTemplateController('autocomplete');
98
103
  if (searchController) {
99
104
  templateEditorStore.registerController(searchController);
100
105
  }
@@ -140,6 +145,16 @@ export class SnapTemplates extends Snap {
140
145
  }
141
146
  });
142
147
  }
148
+ // when tabs are configured there is no controller using the `search` / `autocomplete` id -
149
+ // the default tab controller is used instead
150
+ getTemplateController(type) {
151
+ const tabs = this.templates.config[type]?.tabs;
152
+ if (tabs?.length) {
153
+ const defaultTab = tabs.filter((tab) => tab.default)[0] || tabs[0];
154
+ return this.controllers[defaultTab.id];
155
+ }
156
+ return this.controllers[type];
157
+ }
143
158
  }
144
159
  export function mapBreakpoints(breakpointsKeys, breakpointSettings) {
145
160
  return breakpointsKeys.reduce((mapping, width, index) => {
@@ -180,35 +195,6 @@ export const createSearchTargeters = (templateConfig, templatesStore) => {
180
195
  return targeter;
181
196
  });
182
197
  };
183
- export const createChatTargeters = (templateConfig, templatesStore) => {
184
- // initial target configs
185
- const targetConfigs = templateConfig.chat?.targets || [];
186
- let mergedConfigs;
187
- if (templatesStore.settings.editMode) {
188
- const overrideConfigs = (templatesStore.storage.get('overrides.targets.chat') || []);
189
- mergedConfigs = deepmerge(targetConfigs, overrideConfigs, { arrayMerge: combineMerge });
190
- }
191
- else {
192
- mergedConfigs = targetConfigs;
193
- }
194
- return mergedConfigs.map((targetConfig) => {
195
- const target = templatesStore.addTarget({ ...targetConfig, type: 'chat' });
196
- const targeter = {
197
- selector: targetConfig.selector,
198
- // inline selectors (e.g. a nav slot) may render after DOMContentLoaded;
199
- // re-injection at already-targeted elements is prevented by DomTargeter
200
- autoRetarget: true,
201
- component: async () => {
202
- const componentImportPromises = [];
203
- componentImportPromises.push(templatesStore.library.import.component.chat[targetConfig.component]());
204
- await Promise.all(componentImportPromises);
205
- return TemplateSelect;
206
- },
207
- props: { target, templatesStore },
208
- };
209
- return applyChatTargetInject(targeter);
210
- });
211
- };
212
198
  export function createAutocompleteTargeters(templateConfig, templatesStore) {
213
199
  // initial target configs
214
200
  const targetConfigs = templateConfig.autocomplete?.targets || [];
@@ -292,10 +278,19 @@ export function createRecommendationComponentMapping(templateConfig, templatesSt
292
278
  return mapping;
293
279
  }, {});
294
280
  }
281
+ function createTabServices(snapConfig, siteId) {
282
+ const tabGlobals = {
283
+ ...snapConfig.client?.globals,
284
+ siteId,
285
+ };
286
+ return {
287
+ client: new Client(tabGlobals, snapConfig.client?.config),
288
+ tracker: new Tracker(tabGlobals, snapConfig.tracker?.config),
289
+ };
290
+ }
295
291
  export function createSnapConfig(templateConfig, templatesStore) {
296
292
  const initiatorPrefix = window?.athos?.managed ? `managed/` : '';
297
293
  const snapConfig = {
298
- mode: templateConfig.config?.mode,
299
294
  features: templateConfig.features || DEFAULT_FEATURES,
300
295
  client: {
301
296
  globals: {},
@@ -323,37 +318,63 @@ export function createSnapConfig(templateConfig, templatesStore) {
323
318
  }
324
319
  /* SEARCH CONTROLLER */
325
320
  if (templateConfig.search && snapConfig.controllers) {
326
- const searchControllerConfig = {
327
- config: {
328
- id: 'search',
329
- plugins: createPlugins(templateConfig, templatesStore, 'search'),
330
- globals: templateConfig.search.globals || {},
331
- settings: templateConfig.search.settings || {},
332
- },
333
- targeters: createSearchTargeters(templateConfig, templatesStore),
334
- };
335
- // merge the responsive settings if there are any
336
- // if (templateConfig.config.theme.variables?.breakpoints && templateConfig.search.breakpointSettings) {
337
- // const mappedBreakpoints = mapBreakpoints(templateConfig.config.theme.variables.breakpoints, templateConfig.search.breakpointSettings || []);
338
- // const breakpointSettings = getDisplaySettings(mappedBreakpoints) as SearchStoreConfigSettings;
339
- // searchControllerConfig.config.settings = deepmerge(searchControllerConfig.config.settings, breakpointSettings);
340
- // }
341
- snapConfig.controllers.search = [searchControllerConfig];
321
+ const searchTabs = templateConfig.search.tabs || [];
322
+ const searchTargeters = createSearchTargeters(templateConfig, templatesStore);
323
+ const searchSettings = templateConfig.search.settings || {};
324
+ const searchGlobals = templateConfig.search.globals || {};
325
+ snapConfig.controllers.search = [];
326
+ if (!searchTabs.length) {
327
+ snapConfig.controllers.search.push({
328
+ config: {
329
+ id: 'search',
330
+ plugins: createPlugins(templateConfig, templatesStore, 'search'),
331
+ globals: searchGlobals,
332
+ settings: searchSettings,
333
+ },
334
+ targeters: searchTargeters,
335
+ });
336
+ }
337
+ else {
338
+ // when tabs are configured, the tab controllers do all of the searching - an additional
339
+ // non-tab controller would only produce a redundant API request, so the targeters are
340
+ // attached to the active tab controller instead. targeting kicks off a search before the
341
+ // TabManagerStore exists to gate redirects, so this must be the tab the shopper is viewing
342
+ const targetedTab = getActiveTabConfig(searchTabs) || searchTabs[0];
343
+ searchTabs.forEach((tab) => {
344
+ const tabParam = tab.param;
345
+ snapConfig.controllers.search.push({
346
+ url: {
347
+ settings: {
348
+ // the query is shared across tabs - only per-catalog state is namespaced
349
+ ...(tabParam ? { corePrefix: tabParam, corePrefixParams: TAB_PREFIXED_PARAMS } : {}),
350
+ },
351
+ parameters: {
352
+ custom: {
353
+ [TAB_ID_DEFAULT_PARAM]: { type: 'query' },
354
+ },
355
+ },
356
+ },
357
+ config: {
358
+ id: tab.id,
359
+ plugins: tab.plugins ? createTabPlugins(tab.plugins, templatesStore) : createPlugins(templateConfig, templatesStore, 'search'),
360
+ settings: {
361
+ ...deepmerge(searchSettings, tab.settings || {}),
362
+ },
363
+ globals: deepmerge(searchGlobals, tab.globals || {}),
364
+ },
365
+ services: createTabServices(snapConfig, tab.siteId),
366
+ ...(tab === targetedTab ? { targeters: searchTargeters } : {}),
367
+ });
368
+ });
369
+ }
342
370
  }
343
371
  /* AUTOCOMPLETE CONTROLLER */
344
372
  if (templateConfig.autocomplete && snapConfig.controllers) {
345
373
  const autocompleteControllerSettings = deepmerge(DEFAULT_AUTOCOMPLETE_CONTROLLER_SETTINGS, templateConfig.autocomplete.settings || {});
346
- const autocompleteControllerConfig = {
347
- config: {
348
- id: 'autocomplete',
349
- plugins: createPlugins(templateConfig, templatesStore, 'autocomplete'),
350
- selector: templateConfig.autocomplete.targets.map((target) => target.inputSelector).join(', '),
351
- action: templateConfig.autocomplete.action || '',
352
- globals: templateConfig.autocomplete.globals || {},
353
- settings: autocompleteControllerSettings,
354
- },
355
- targeters: createAutocompleteTargeters(templateConfig, templatesStore),
356
- };
374
+ const autocompleteSelector = templateConfig.autocomplete.targets.map((target) => target.inputSelector).join(', ');
375
+ const autocompleteTabs = templateConfig.autocomplete.tabs || [];
376
+ const autocompleteGlobals = templateConfig.autocomplete.globals || {};
377
+ const autocompleteTargeters = createAutocompleteTargeters(templateConfig, templatesStore);
357
378
  // merge the responsive settings if there are any
358
379
  // if (templateConfig.config.theme.variables?.breakpoints && templateConfig.autocomplete.breakpointSettings) {
359
380
  // const mappedBreakpoints = mapBreakpoints(
@@ -361,9 +382,61 @@ export function createSnapConfig(templateConfig, templatesStore) {
361
382
  // templateConfig.autocomplete.breakpointSettings || []
362
383
  // );
363
384
  // const breakpointSettings = getDisplaySettings(mappedBreakpoints) as AutocompleteStoreConfigSettings;
364
- // autocompleteControllerConfig.config.settings = deepmerge(autocompleteControllerConfig.config.settings, breakpointSettings);
385
+ // autocompleteControllerSettings = deepmerge(autocompleteControllerSettings, breakpointSettings);
365
386
  // }
366
- snapConfig.controllers.autocomplete = [autocompleteControllerConfig];
387
+ snapConfig.controllers.autocomplete = [];
388
+ if (!autocompleteTabs.length) {
389
+ snapConfig.controllers.autocomplete.push({
390
+ config: {
391
+ id: 'autocomplete',
392
+ plugins: createPlugins(templateConfig, templatesStore, 'autocomplete'),
393
+ selector: autocompleteSelector,
394
+ action: templateConfig.autocomplete.action || '',
395
+ globals: autocompleteGlobals,
396
+ settings: autocompleteControllerSettings,
397
+ },
398
+ targeters: autocompleteTargeters,
399
+ });
400
+ }
401
+ else {
402
+ // when tabs are configured, every tab controller binds to the same input - an additional
403
+ // non-tab controller would only produce redundant API requests, so the targeters are
404
+ // attached to the default tab controller instead
405
+ const defaultTab = autocompleteTabs.filter((tab) => tab.default)[0] || autocompleteTabs[0];
406
+ autocompleteTabs.forEach((tab) => {
407
+ const tabParam = tab.param;
408
+ snapConfig.controllers.autocomplete.push({
409
+ url: {
410
+ settings: {
411
+ // the query is shared across tabs - only per-catalog state is namespaced
412
+ ...(tabParam ? { corePrefix: tabParam, corePrefixParams: TAB_PREFIXED_PARAMS } : {}),
413
+ },
414
+ parameters: {
415
+ custom: {
416
+ [TAB_ID_DEFAULT_PARAM]: { type: 'query' },
417
+ },
418
+ },
419
+ // every url the autocomplete builds must carry the tab it belongs to
420
+ globals: [
421
+ {
422
+ param: TAB_ID_DEFAULT_PARAM,
423
+ value: tab.param,
424
+ },
425
+ ],
426
+ },
427
+ config: {
428
+ id: tab.id,
429
+ plugins: tab.plugins ? createTabPlugins(tab.plugins, templatesStore) : createPlugins(templateConfig, templatesStore, 'autocomplete'),
430
+ selector: autocompleteSelector,
431
+ action: templateConfig.autocomplete.action || '',
432
+ settings: deepmerge(autocompleteControllerSettings, tab.settings || {}),
433
+ globals: deepmerge(autocompleteGlobals, tab.globals || {}),
434
+ },
435
+ services: createTabServices(snapConfig, tab.siteId),
436
+ ...(tab === defaultTab ? { targeters: autocompleteTargeters } : {}),
437
+ });
438
+ });
439
+ }
367
440
  }
368
441
  /* RECOMMENDATION INSTANTIATOR */
369
442
  const originalRecsConfig = templateConfig.recommendation || {};
@@ -418,21 +491,6 @@ export function createSnapConfig(templateConfig, templatesStore) {
418
491
  // }
419
492
  snapConfig.instantiators.recommendation = recommendationInstantiatorConfig;
420
493
  }
421
- /* CHAT CONTROLLER */
422
- if (templateConfig.chat && snapConfig.controllers) {
423
- const chatControllerConfig = {
424
- config: {
425
- id: 'chat',
426
- plugins: createPlugins(templateConfig, templatesStore, 'chat'),
427
- settings: {
428
- languageCode: templatesStore.language,
429
- ...(templateConfig.chat.settings || {}),
430
- },
431
- },
432
- targeters: createChatTargeters(templateConfig, templatesStore),
433
- };
434
- snapConfig.controllers.chat = [chatControllerConfig];
435
- }
436
494
  return snapConfig;
437
495
  }
438
496
  export function createPlugins(templateConfig, templatesStore, controllerType) {
@@ -441,14 +499,10 @@ export function createPlugins(templateConfig, templatesStore, controllerType) {
441
499
  if (controllerType) {
442
500
  controllerConfig = templateConfig[controllerType] || {};
443
501
  }
444
- // backgroundFilters writes `config.globals.filters`, which the chat endpoint has no
445
- // field for — chat carries background filters via `settings.bgFilters` instead
446
- if (controllerType !== 'chat') {
447
- plugins.push([
448
- templatesStore.library.import.plugins.common.backgroundFilters,
449
- deepmerge(templateConfig.plugins?.common?.backgroundFilters || {}, controllerConfig?.plugins?.common?.backgroundFilters || {}),
450
- ]);
451
- }
502
+ plugins.push([
503
+ templatesStore.library.import.plugins.common.backgroundFilters,
504
+ deepmerge(templateConfig.plugins?.common?.backgroundFilters || {}, controllerConfig?.plugins?.common?.backgroundFilters || {}),
505
+ ]);
452
506
  plugins.push([
453
507
  templatesStore.library.import.plugins.common.scrollToTop,
454
508
  deepmerge(templateConfig.plugins?.common?.scrollToTop || {}, controllerConfig?.plugins?.common?.scrollToTop || {}),
@@ -523,3 +577,10 @@ export function createPlugins(templateConfig, templatesStore, controllerType) {
523
577
  });
524
578
  return plugins;
525
579
  }
580
+ // tab level plugins do not inherit global or controller level plugins - only the plugins configured on the tab are used
581
+ export function createTabPlugins(tabPlugins, templatesStore) {
582
+ const plugins = createPlugins({ plugins: tabPlugins }, templatesStore);
583
+ const customPluginFunctions = Object.values(tabPlugins.custom || {}).map((customPlugin) => customPlugin.function);
584
+ // built-in plugins are always created - keep only the ones that were given configuration on the tab
585
+ return plugins.filter((plugin) => customPluginFunctions.includes(plugin[0]) || Object.keys(plugin[1] || {}).length > 0);
586
+ }