@athoscommerce/snap-preact 1.2.3-beta.4 → 1.2.3-beta.5

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 (214) hide show
  1. package/README.md +16 -0
  2. package/dist/cjs/components/src/components/Atoms/TemplateSelect/TemplateSelect.d.ts +3 -3
  3. package/dist/cjs/components/src/components/Atoms/TemplateSelect/TemplateSelect.d.ts.map +1 -1
  4. package/dist/cjs/components/src/components/Atoms/TemplateSelect/TemplateSelect.js +7 -8
  5. package/dist/cjs/components/src/components/Molecules/ChatInspirationResultMessage/ChatInspirationResultMessage.d.ts +1 -1
  6. package/dist/cjs/components/src/components/Molecules/ChatInspirationResultMessage/ChatInspirationResultMessage.d.ts.map +1 -1
  7. package/dist/cjs/components/src/components/Molecules/ChatInspirationResultMessage/ChatInspirationResultMessage.js +3 -3
  8. package/dist/cjs/components/src/components/Molecules/ChatProductQueryMessage/ChatProductQueryMessage.d.ts +2 -0
  9. package/dist/cjs/components/src/components/Molecules/ChatProductQueryMessage/ChatProductQueryMessage.d.ts.map +1 -1
  10. package/dist/cjs/components/src/components/Molecules/ChatProductQueryMessage/ChatProductQueryMessage.js +24 -25
  11. package/dist/cjs/components/src/components/Molecules/Filter/Filter.d.ts +1 -1
  12. package/dist/cjs/components/src/components/Molecules/Filter/Filter.d.ts.map +1 -1
  13. package/dist/cjs/components/src/components/Molecules/Result/Result.d.ts.map +1 -1
  14. package/dist/cjs/components/src/components/Molecules/Result/Result.js +11 -6
  15. package/dist/cjs/components/src/components/Molecules/SearchInput/SearchInput.d.ts +4 -1
  16. package/dist/cjs/components/src/components/Molecules/SearchInput/SearchInput.d.ts.map +1 -1
  17. package/dist/cjs/components/src/components/Molecules/SearchInput/SearchInput.js +3 -3
  18. package/dist/cjs/components/src/components/Molecules/TemplatesEditor/Components/AbstractedControls.js +5 -5
  19. package/dist/cjs/components/src/components/Molecules/TemplatesEditor/Components/Control.d.ts.map +1 -1
  20. package/dist/cjs/components/src/components/Molecules/TemplatesEditor/Components/Control.js +31 -31
  21. package/dist/cjs/components/src/components/Molecules/TemplatesEditor/TemplatesEditor.d.ts.map +1 -1
  22. package/dist/cjs/components/src/components/Molecules/TemplatesEditor/TemplatesEditor.js +22 -36
  23. package/dist/cjs/components/src/components/Organisms/Chat/Chat.d.ts +7 -0
  24. package/dist/cjs/components/src/components/Organisms/Chat/Chat.d.ts.map +1 -1
  25. package/dist/cjs/components/src/components/Organisms/Chat/Chat.js +638 -431
  26. package/dist/cjs/components/src/components/Organisms/Chat/ChatResult.d.ts.map +1 -1
  27. package/dist/cjs/components/src/components/Organisms/Chat/ChatResult.js +4 -3
  28. package/dist/cjs/components/src/components/Organisms/Chat/MessageText.d.ts +3 -1
  29. package/dist/cjs/components/src/components/Organisms/Chat/MessageText.d.ts.map +1 -1
  30. package/dist/cjs/components/src/components/Organisms/Chat/MessageText.js +22 -19
  31. package/dist/cjs/components/src/components/Organisms/Chat/MessageUser.d.ts +3 -1
  32. package/dist/cjs/components/src/components/Organisms/Chat/MessageUser.d.ts.map +1 -1
  33. package/dist/cjs/components/src/components/Organisms/Chat/MessageUser.js +39 -21
  34. package/dist/cjs/components/src/components/Organisms/Chat/ResultsDisplay.d.ts +1 -1
  35. package/dist/cjs/components/src/components/Organisms/Chat/ResultsDisplay.d.ts.map +1 -1
  36. package/dist/cjs/components/src/components/Organisms/Chat/ResultsDisplay.js +7 -11
  37. package/dist/cjs/components/src/components/Organisms/FilterSummary/FilterSummary.d.ts +2 -2
  38. package/dist/cjs/components/src/components/Organisms/FilterSummary/FilterSummary.d.ts.map +1 -1
  39. package/dist/cjs/components/src/components/Organisms/ProductQuickView/ProductQuickView.d.ts +11 -0
  40. package/dist/cjs/components/src/components/Organisms/ProductQuickView/ProductQuickView.d.ts.map +1 -0
  41. package/dist/cjs/components/src/components/Organisms/ProductQuickView/ProductQuickView.js +461 -0
  42. package/dist/cjs/components/src/components/Organisms/ProductQuickView/index.d.ts +2 -0
  43. package/dist/cjs/components/src/components/Organisms/ProductQuickView/index.d.ts.map +1 -0
  44. package/dist/cjs/components/src/components/Organisms/ProductQuickView/index.js +17 -0
  45. package/dist/cjs/components/src/components/Templates/AutocompleteModal/AutocompleteModal.d.ts.map +1 -1
  46. package/dist/cjs/components/src/components/Templates/AutocompleteModal/AutocompleteModal.js +0 -2
  47. package/dist/cjs/components/src/hooks/useAcRenderedInput.d.ts.map +1 -1
  48. package/dist/cjs/components/src/hooks/useAcRenderedInput.js +65 -15
  49. package/dist/cjs/components/src/hooks/useMediaQuery.d.ts.map +1 -1
  50. package/dist/cjs/components/src/hooks/useMediaQuery.js +3 -1
  51. package/dist/cjs/components/src/index.d.ts +1 -0
  52. package/dist/cjs/components/src/index.d.ts.map +1 -1
  53. package/dist/cjs/components/src/index.js +1 -0
  54. package/dist/cjs/components/src/providers/theme.d.ts +1 -1
  55. package/dist/cjs/components/src/providers/theme.d.ts.map +1 -1
  56. package/dist/cjs/components/src/themes/base/base.js +3 -3
  57. package/dist/cjs/components/src/utilities/Colour/Colour.d.ts +11 -0
  58. package/dist/cjs/components/src/utilities/Colour/Colour.d.ts.map +1 -1
  59. package/dist/cjs/components/src/utilities/Colour/Colour.js +32 -0
  60. package/dist/cjs/src/Instantiators/RecommendationInstantiator.d.ts +1 -0
  61. package/dist/cjs/src/Instantiators/RecommendationInstantiator.d.ts.map +1 -1
  62. package/dist/cjs/src/Instantiators/RecommendationInstantiator.js +161 -123
  63. package/dist/cjs/src/Snap.d.ts +1 -1
  64. package/dist/cjs/src/Snap.d.ts.map +1 -1
  65. package/dist/cjs/src/Snap.js +18 -6
  66. package/dist/cjs/src/SnapHybrid.d.ts.map +1 -1
  67. package/dist/cjs/src/Templates/SnapTemplates.d.ts +13 -72
  68. package/dist/cjs/src/Templates/SnapTemplates.d.ts.map +1 -1
  69. package/dist/cjs/src/Templates/SnapTemplates.js +123 -72
  70. package/dist/cjs/src/Templates/Stores/TargetStore.d.ts +7 -6
  71. package/dist/cjs/src/Templates/Stores/TargetStore.d.ts.map +1 -1
  72. package/dist/cjs/src/Templates/Stores/TargetStore.js +14 -8
  73. package/dist/cjs/src/Templates/Stores/TemplateEditor/TemplateEditorStore.d.ts +58 -8
  74. package/dist/cjs/src/Templates/Stores/TemplateEditor/TemplateEditorStore.d.ts.map +1 -1
  75. package/dist/cjs/src/Templates/Stores/TemplateEditor/TemplateEditorStore.js +467 -96
  76. package/dist/cjs/src/Templates/Stores/TemplateEditor/uiAbstractions/autocompleteControllerUI.d.ts +1 -0
  77. package/dist/cjs/src/Templates/Stores/TemplateEditor/uiAbstractions/autocompleteControllerUI.d.ts.map +1 -1
  78. package/dist/cjs/src/Templates/Stores/TemplateEditor/uiAbstractions/autocompleteControllerUI.js +123 -70
  79. package/dist/cjs/src/Templates/Stores/TemplateEditor/uiAbstractions/configUI.d.ts.map +1 -1
  80. package/dist/cjs/src/Templates/Stores/TemplateEditor/uiAbstractions/configUI.js +9 -3
  81. package/dist/cjs/src/Templates/Stores/TemplateEditor/uiAbstractions/searchControllerUI.d.ts +1 -0
  82. package/dist/cjs/src/Templates/Stores/TemplateEditor/uiAbstractions/searchControllerUI.d.ts.map +1 -1
  83. package/dist/cjs/src/Templates/Stores/TemplateEditor/uiAbstractions/searchControllerUI.js +86 -1
  84. package/dist/cjs/src/Templates/Stores/TemplateEditor/uiAbstractions/themeUI.d.ts.map +1 -1
  85. package/dist/cjs/src/Templates/Stores/TemplateEditor/uiAbstractions/themeUI.js +33 -14
  86. package/dist/cjs/src/Templates/Stores/TemplateStore.d.ts +93 -30
  87. package/dist/cjs/src/Templates/Stores/TemplateStore.d.ts.map +1 -1
  88. package/dist/cjs/src/Templates/Stores/TemplateStore.js +33 -41
  89. package/dist/cjs/src/Templates/Stores/ThemeStore.d.ts +2 -8
  90. package/dist/cjs/src/Templates/Stores/ThemeStore.d.ts.map +1 -1
  91. package/dist/cjs/src/Templates/Stores/ThemeStore.js +3 -28
  92. package/dist/cjs/src/Templates/index.d.ts +1 -1
  93. package/dist/cjs/src/Templates/index.d.ts.map +1 -1
  94. package/dist/cjs/src/create/createChatController.js +1 -1
  95. package/dist/cjs/src/index.d.ts +1 -0
  96. package/dist/cjs/src/index.d.ts.map +1 -1
  97. package/dist/cjs/src/setupEvents.d.ts +13 -0
  98. package/dist/cjs/src/setupEvents.d.ts.map +1 -1
  99. package/dist/cjs/src/setupEvents.js +56 -8
  100. package/dist/cjs/src/types.d.ts +3 -1
  101. package/dist/cjs/src/types.d.ts.map +1 -1
  102. package/dist/cjs/src/utils/combineMerge.d.ts +2 -0
  103. package/dist/cjs/src/utils/combineMerge.d.ts.map +1 -0
  104. package/dist/cjs/src/utils/combineMerge.js +22 -0
  105. package/dist/cjs/src/utils/index.d.ts +1 -0
  106. package/dist/cjs/src/utils/index.d.ts.map +1 -1
  107. package/dist/cjs/src/utils/index.js +3 -1
  108. package/dist/esm/components/src/components/Atoms/TemplateSelect/TemplateSelect.d.ts +3 -3
  109. package/dist/esm/components/src/components/Atoms/TemplateSelect/TemplateSelect.d.ts.map +1 -1
  110. package/dist/esm/components/src/components/Atoms/TemplateSelect/TemplateSelect.js +7 -8
  111. package/dist/esm/components/src/components/Molecules/ChatInspirationResultMessage/ChatInspirationResultMessage.d.ts +1 -1
  112. package/dist/esm/components/src/components/Molecules/ChatInspirationResultMessage/ChatInspirationResultMessage.d.ts.map +1 -1
  113. package/dist/esm/components/src/components/Molecules/ChatInspirationResultMessage/ChatInspirationResultMessage.js +3 -3
  114. package/dist/esm/components/src/components/Molecules/ChatProductQueryMessage/ChatProductQueryMessage.d.ts +2 -0
  115. package/dist/esm/components/src/components/Molecules/ChatProductQueryMessage/ChatProductQueryMessage.d.ts.map +1 -1
  116. package/dist/esm/components/src/components/Molecules/ChatProductQueryMessage/ChatProductQueryMessage.js +24 -26
  117. package/dist/esm/components/src/components/Molecules/Filter/Filter.d.ts +1 -1
  118. package/dist/esm/components/src/components/Molecules/Filter/Filter.d.ts.map +1 -1
  119. package/dist/esm/components/src/components/Molecules/Result/Result.d.ts.map +1 -1
  120. package/dist/esm/components/src/components/Molecules/Result/Result.js +9 -4
  121. package/dist/esm/components/src/components/Molecules/SearchInput/SearchInput.d.ts +4 -1
  122. package/dist/esm/components/src/components/Molecules/SearchInput/SearchInput.d.ts.map +1 -1
  123. package/dist/esm/components/src/components/Molecules/SearchInput/SearchInput.js +3 -3
  124. package/dist/esm/components/src/components/Molecules/TemplatesEditor/Components/AbstractedControls.js +5 -5
  125. package/dist/esm/components/src/components/Molecules/TemplatesEditor/Components/Control.d.ts.map +1 -1
  126. package/dist/esm/components/src/components/Molecules/TemplatesEditor/Components/Control.js +29 -29
  127. package/dist/esm/components/src/components/Molecules/TemplatesEditor/TemplatesEditor.d.ts.map +1 -1
  128. package/dist/esm/components/src/components/Molecules/TemplatesEditor/TemplatesEditor.js +22 -35
  129. package/dist/esm/components/src/components/Organisms/Chat/Chat.d.ts +7 -0
  130. package/dist/esm/components/src/components/Organisms/Chat/Chat.d.ts.map +1 -1
  131. package/dist/esm/components/src/components/Organisms/Chat/Chat.js +557 -359
  132. package/dist/esm/components/src/components/Organisms/Chat/ChatResult.d.ts.map +1 -1
  133. package/dist/esm/components/src/components/Organisms/Chat/ChatResult.js +4 -3
  134. package/dist/esm/components/src/components/Organisms/Chat/MessageText.d.ts +3 -1
  135. package/dist/esm/components/src/components/Organisms/Chat/MessageText.d.ts.map +1 -1
  136. package/dist/esm/components/src/components/Organisms/Chat/MessageText.js +21 -19
  137. package/dist/esm/components/src/components/Organisms/Chat/MessageUser.d.ts +3 -1
  138. package/dist/esm/components/src/components/Organisms/Chat/MessageUser.d.ts.map +1 -1
  139. package/dist/esm/components/src/components/Organisms/Chat/MessageUser.js +36 -21
  140. package/dist/esm/components/src/components/Organisms/Chat/ResultsDisplay.d.ts +1 -1
  141. package/dist/esm/components/src/components/Organisms/Chat/ResultsDisplay.d.ts.map +1 -1
  142. package/dist/esm/components/src/components/Organisms/Chat/ResultsDisplay.js +7 -11
  143. package/dist/esm/components/src/components/Organisms/FilterSummary/FilterSummary.d.ts +2 -2
  144. package/dist/esm/components/src/components/Organisms/FilterSummary/FilterSummary.d.ts.map +1 -1
  145. package/dist/esm/components/src/components/Organisms/ProductQuickView/ProductQuickView.d.ts +11 -0
  146. package/dist/esm/components/src/components/Organisms/ProductQuickView/ProductQuickView.d.ts.map +1 -0
  147. package/dist/esm/components/src/components/Organisms/ProductQuickView/ProductQuickView.js +436 -0
  148. package/dist/esm/components/src/components/Organisms/ProductQuickView/index.d.ts +2 -0
  149. package/dist/esm/components/src/components/Organisms/ProductQuickView/index.d.ts.map +1 -0
  150. package/dist/esm/components/src/components/Organisms/ProductQuickView/index.js +1 -0
  151. package/dist/esm/components/src/components/Templates/AutocompleteModal/AutocompleteModal.d.ts.map +1 -1
  152. package/dist/esm/components/src/components/Templates/AutocompleteModal/AutocompleteModal.js +0 -2
  153. package/dist/esm/components/src/hooks/useAcRenderedInput.d.ts.map +1 -1
  154. package/dist/esm/components/src/hooks/useAcRenderedInput.js +61 -11
  155. package/dist/esm/components/src/hooks/useMediaQuery.d.ts.map +1 -1
  156. package/dist/esm/components/src/hooks/useMediaQuery.js +3 -1
  157. package/dist/esm/components/src/index.d.ts +1 -0
  158. package/dist/esm/components/src/index.d.ts.map +1 -1
  159. package/dist/esm/components/src/index.js +1 -0
  160. package/dist/esm/components/src/providers/theme.d.ts +1 -1
  161. package/dist/esm/components/src/providers/theme.d.ts.map +1 -1
  162. package/dist/esm/components/src/themes/base/base.js +3 -3
  163. package/dist/esm/components/src/utilities/Colour/Colour.d.ts +11 -0
  164. package/dist/esm/components/src/utilities/Colour/Colour.d.ts.map +1 -1
  165. package/dist/esm/components/src/utilities/Colour/Colour.js +30 -0
  166. package/dist/esm/src/Instantiators/RecommendationInstantiator.d.ts +1 -0
  167. package/dist/esm/src/Instantiators/RecommendationInstantiator.d.ts.map +1 -1
  168. package/dist/esm/src/Instantiators/RecommendationInstantiator.js +130 -84
  169. package/dist/esm/src/Snap.d.ts +1 -1
  170. package/dist/esm/src/Snap.d.ts.map +1 -1
  171. package/dist/esm/src/Snap.js +21 -6
  172. package/dist/esm/src/SnapHybrid.d.ts.map +1 -1
  173. package/dist/esm/src/Templates/SnapTemplates.d.ts +13 -72
  174. package/dist/esm/src/Templates/SnapTemplates.d.ts.map +1 -1
  175. package/dist/esm/src/Templates/SnapTemplates.js +137 -78
  176. package/dist/esm/src/Templates/Stores/TargetStore.d.ts +7 -6
  177. package/dist/esm/src/Templates/Stores/TargetStore.d.ts.map +1 -1
  178. package/dist/esm/src/Templates/Stores/TargetStore.js +14 -8
  179. package/dist/esm/src/Templates/Stores/TemplateEditor/TemplateEditorStore.d.ts +58 -8
  180. package/dist/esm/src/Templates/Stores/TemplateEditor/TemplateEditorStore.d.ts.map +1 -1
  181. package/dist/esm/src/Templates/Stores/TemplateEditor/TemplateEditorStore.js +447 -89
  182. package/dist/esm/src/Templates/Stores/TemplateEditor/uiAbstractions/autocompleteControllerUI.d.ts +1 -0
  183. package/dist/esm/src/Templates/Stores/TemplateEditor/uiAbstractions/autocompleteControllerUI.d.ts.map +1 -1
  184. package/dist/esm/src/Templates/Stores/TemplateEditor/uiAbstractions/autocompleteControllerUI.js +118 -66
  185. package/dist/esm/src/Templates/Stores/TemplateEditor/uiAbstractions/configUI.d.ts.map +1 -1
  186. package/dist/esm/src/Templates/Stores/TemplateEditor/uiAbstractions/configUI.js +9 -3
  187. package/dist/esm/src/Templates/Stores/TemplateEditor/uiAbstractions/searchControllerUI.d.ts +1 -0
  188. package/dist/esm/src/Templates/Stores/TemplateEditor/uiAbstractions/searchControllerUI.d.ts.map +1 -1
  189. package/dist/esm/src/Templates/Stores/TemplateEditor/uiAbstractions/searchControllerUI.js +82 -1
  190. package/dist/esm/src/Templates/Stores/TemplateEditor/uiAbstractions/themeUI.d.ts.map +1 -1
  191. package/dist/esm/src/Templates/Stores/TemplateEditor/uiAbstractions/themeUI.js +27 -8
  192. package/dist/esm/src/Templates/Stores/TemplateStore.d.ts +93 -30
  193. package/dist/esm/src/Templates/Stores/TemplateStore.d.ts.map +1 -1
  194. package/dist/esm/src/Templates/Stores/TemplateStore.js +29 -38
  195. package/dist/esm/src/Templates/Stores/ThemeStore.d.ts +2 -8
  196. package/dist/esm/src/Templates/Stores/ThemeStore.d.ts.map +1 -1
  197. package/dist/esm/src/Templates/Stores/ThemeStore.js +3 -26
  198. package/dist/esm/src/Templates/index.d.ts +1 -1
  199. package/dist/esm/src/Templates/index.d.ts.map +1 -1
  200. package/dist/esm/src/create/createChatController.js +1 -1
  201. package/dist/esm/src/index.d.ts +1 -0
  202. package/dist/esm/src/index.d.ts.map +1 -1
  203. package/dist/esm/src/setupEvents.d.ts +13 -0
  204. package/dist/esm/src/setupEvents.d.ts.map +1 -1
  205. package/dist/esm/src/setupEvents.js +25 -8
  206. package/dist/esm/src/types.d.ts +3 -1
  207. package/dist/esm/src/types.d.ts.map +1 -1
  208. package/dist/esm/src/utils/combineMerge.d.ts +2 -0
  209. package/dist/esm/src/utils/combineMerge.d.ts.map +1 -0
  210. package/dist/esm/src/utils/combineMerge.js +16 -0
  211. package/dist/esm/src/utils/index.d.ts +1 -0
  212. package/dist/esm/src/utils/index.d.ts.map +1 -1
  213. package/dist/esm/src/utils/index.js +1 -0
  214. package/package.json +20 -14
@@ -55,6 +55,7 @@ export * from './components/Organisms/FacetsHorizontal';
55
55
  export * from './components/Organisms/FilterSummary';
56
56
  export * from './components/Organisms/MobileSidebar';
57
57
  export * from './components/Organisms/NoResults';
58
+ export * from './components/Organisms/ProductQuickView';
58
59
  export * from './components/Organisms/Results';
59
60
  export * from './components/Organisms/Sidebar';
60
61
  export * from './components/Organisms/Toolbar';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../components/src/index.ts"],"names":[],"mappings":"AACA,cAAc,+BAA+B,CAAC;AAC9C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,mCAAmC,CAAC;AAClD,cAAc,8BAA8B,CAAC;AAC7C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,oCAAoC,CAAC;AACnD,cAAc,yBAAyB,CAAC;AACxC,cAAc,0BAA0B,CAAC;AACzC,cAAc,iCAAiC,CAAC;AAChD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,mCAAmC,CAAC;AAClD,cAAc,0BAA0B,CAAC;AACzC,cAAc,iCAAiC,CAAC;AAChD,cAAc,6BAA6B,CAAC;AAG5C,cAAc,qCAAqC,CAAC;AACpD,cAAc,iCAAiC,CAAC;AAChD,cAAc,iCAAiC,CAAC;AAChD,cAAc,qCAAqC,CAAC;AACpD,cAAc,yCAAyC,CAAC;AACxD,cAAc,8CAA8C,CAAC;AAC7D,cAAc,yCAAyC,CAAC;AACxD,cAAc,4CAA4C,CAAC;AAC3D,cAAc,oCAAoC,CAAC;AAEnD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,uCAAuC,CAAC;AACtD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,iCAAiC,CAAC;AAChD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,qCAAqC,CAAC;AACpD,cAAc,mCAAmC,CAAC;AAClD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,kCAAkC,CAAC;AACjD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,oCAAoC,CAAC;AACnD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,iCAAiC,CAAC;AAChD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,wCAAwC,CAAC;AACvD,cAAc,iCAAiC,CAAC;AAChD,cAAc,kCAAkC,CAAC;AACjD,cAAc,yCAAyC,CAAC;AACxD,cAAc,8BAA8B,CAAC;AAG7C,cAAc,uCAAuC,CAAC;AACtD,cAAc,8BAA8B,CAAC;AAC7C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,yCAAyC,CAAC;AACxD,cAAc,sCAAsC,CAAC;AACrD,cAAc,sCAAsC,CAAC;AACrD,cAAc,kCAAkC,CAAC;AACjD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,qCAAqC,CAAC;AACpD,cAAc,kCAAkC,CAAC;AACjD,cAAc,6BAA6B,CAAC;AAG5C,cAAc,uCAAuC,CAAC;AACtD,cAAc,6CAA6C,CAAC;AAC5D,cAAc,oDAAoD,CAAC;AACnE,cAAc,iDAAiD,CAAC;AAChE,cAAc,qDAAqD,CAAC;AACpE,cAAc,2CAA2C,CAAC;AAC1D,cAAc,4CAA4C,CAAC;AAC3D,cAAc,+BAA+B,CAAC;AAC9C,cAAc,yCAAyC,CAAC;AACxD,cAAc,0CAA0C,CAAC;AAGzD,cAAc,SAAS,CAAC;AAGxB,cAAc,qDAAqD,CAAC;AACpE,cAAc,qCAAqC,CAAC;AACpD,OAAO,EACN,aAAa,IAAI,2BAA2B,EAC5C,kBAAkB,IAAI,gCAAgC,GACtD,MAAM,qCAAqC,CAAC;AAG7C,cAAc,SAAS,CAAC;AAGxB,cAAc,aAAa,CAAC;AAG5B,cAAc,WAAW,CAAC;AAG1B,cAAc,UAAU,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../components/src/index.ts"],"names":[],"mappings":"AACA,cAAc,+BAA+B,CAAC;AAC9C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,mCAAmC,CAAC;AAClD,cAAc,8BAA8B,CAAC;AAC7C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,oCAAoC,CAAC;AACnD,cAAc,yBAAyB,CAAC;AACxC,cAAc,0BAA0B,CAAC;AACzC,cAAc,iCAAiC,CAAC;AAChD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,mCAAmC,CAAC;AAClD,cAAc,0BAA0B,CAAC;AACzC,cAAc,iCAAiC,CAAC;AAChD,cAAc,6BAA6B,CAAC;AAG5C,cAAc,qCAAqC,CAAC;AACpD,cAAc,iCAAiC,CAAC;AAChD,cAAc,iCAAiC,CAAC;AAChD,cAAc,qCAAqC,CAAC;AACpD,cAAc,yCAAyC,CAAC;AACxD,cAAc,8CAA8C,CAAC;AAC7D,cAAc,yCAAyC,CAAC;AACxD,cAAc,4CAA4C,CAAC;AAC3D,cAAc,oCAAoC,CAAC;AAEnD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,uCAAuC,CAAC;AACtD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,iCAAiC,CAAC;AAChD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,qCAAqC,CAAC;AACpD,cAAc,mCAAmC,CAAC;AAClD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,kCAAkC,CAAC;AACjD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,oCAAoC,CAAC;AACnD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,iCAAiC,CAAC;AAChD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,wCAAwC,CAAC;AACvD,cAAc,iCAAiC,CAAC;AAChD,cAAc,kCAAkC,CAAC;AACjD,cAAc,yCAAyC,CAAC;AACxD,cAAc,8BAA8B,CAAC;AAG7C,cAAc,uCAAuC,CAAC;AACtD,cAAc,8BAA8B,CAAC;AAC7C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,yCAAyC,CAAC;AACxD,cAAc,sCAAsC,CAAC;AACrD,cAAc,sCAAsC,CAAC;AACrD,cAAc,kCAAkC,CAAC;AACjD,cAAc,yCAAyC,CAAC;AACxD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,qCAAqC,CAAC;AACpD,cAAc,kCAAkC,CAAC;AACjD,cAAc,6BAA6B,CAAC;AAG5C,cAAc,uCAAuC,CAAC;AACtD,cAAc,6CAA6C,CAAC;AAC5D,cAAc,oDAAoD,CAAC;AACnE,cAAc,iDAAiD,CAAC;AAChE,cAAc,qDAAqD,CAAC;AACpE,cAAc,2CAA2C,CAAC;AAC1D,cAAc,4CAA4C,CAAC;AAC3D,cAAc,+BAA+B,CAAC;AAC9C,cAAc,yCAAyC,CAAC;AACxD,cAAc,0CAA0C,CAAC;AAGzD,cAAc,SAAS,CAAC;AAGxB,cAAc,qDAAqD,CAAC;AACpE,cAAc,qCAAqC,CAAC;AACpD,OAAO,EACN,aAAa,IAAI,2BAA2B,EAC5C,kBAAkB,IAAI,gCAAgC,GACtD,MAAM,qCAAqC,CAAC;AAG7C,cAAc,SAAS,CAAC;AAGxB,cAAc,aAAa,CAAC;AAG5B,cAAc,WAAW,CAAC;AAG1B,cAAc,UAAU,CAAC"}
@@ -76,6 +76,7 @@ __exportStar(require("./components/Organisms/FacetsHorizontal"), exports);
76
76
  __exportStar(require("./components/Organisms/FilterSummary"), exports);
77
77
  __exportStar(require("./components/Organisms/MobileSidebar"), exports);
78
78
  __exportStar(require("./components/Organisms/NoResults"), exports);
79
+ __exportStar(require("./components/Organisms/ProductQuickView"), exports);
79
80
  __exportStar(require("./components/Organisms/Results"), exports);
80
81
  __exportStar(require("./components/Organisms/Sidebar"), exports);
81
82
  __exportStar(require("./components/Organisms/Toolbar"), exports);
@@ -53,7 +53,7 @@ export type ThemeResponsiveComplete = ThemeResponsive & {
53
53
  default?: ThemeComponentsRestricted;
54
54
  };
55
55
  type WithCustomComponent<T> = {
56
- [K in keyof T]: T[K] & {
56
+ [K in keyof T]: [unknown] extends [T[K]] ? T[K] : T[K] & {
57
57
  customComponent?: string;
58
58
  };
59
59
  };
@@ -1 +1 @@
1
- {"version":3,"file":"theme.d.ts","sourceRoot":"","sources":["../../../../../components/src/providers/theme.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"theme.d.ts","sourceRoot":"","sources":["../../../../../components/src/providers/theme.ts"],"names":[],"mappings":"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"}
@@ -11,9 +11,9 @@ var baseVariables = {
11
11
  },
12
12
  colors: {
13
13
  text: '#333333',
14
- primary: '#3A23AD',
15
- secondary: '#4c3ce2',
16
- accent: '#00cee1',
14
+ primary: '#333333',
15
+ secondary: '#000000',
16
+ accent: '#cccccc',
17
17
  },
18
18
  };
19
19
  exports.base = {
@@ -12,11 +12,22 @@ export declare class Colour {
12
12
  opacity(offset: number): Colour;
13
13
  transparency(offset: number): Colour;
14
14
  opaque(offset: number): Colour;
15
+ /** Returns a hex string mixed linearly toward black. `amount` (0-1) is the proportion
16
+ * of black in the result — 0.9 yields a near-black with a slight tint of the original.
17
+ * Uses linear RGB mixing so light inputs reliably produce darker outputs. */
18
+ darkenHex(amount?: number): string;
19
+ /** Returns a hex string mixed linearly toward white. `amount` (0-1) is the proportion
20
+ * of white in the result — 0.9 yields a near-white with a slight tint of the original.
21
+ * Uses linear RGB mixing so dark inputs reliably produce paler outputs. */
22
+ lightenHex(amount?: number): string;
15
23
  static isRgb(color: string): boolean;
16
24
  static isHex(color: string): boolean;
17
25
  static hexToRgb(hex: string): string;
18
26
  static rgbToHex(rgb: string): string;
19
27
  static opacity(color: string | undefined, offset: number): string | undefined;
28
+ /** Linear RGB mix between two hex colors. `amount` (0-1) is the proportion of `towardHex`
29
+ * in the result. Returns the source `hex` unchanged when either input is invalid. */
30
+ static mixToward(hex: string | undefined, towardHex: string, amount: number): string;
20
31
  static brightness(color: string | undefined, offset: number): string | undefined;
21
32
  }
22
33
  //# sourceMappingURL=Colour.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Colour.d.ts","sourceRoot":"","sources":["../../../../../../components/src/utilities/Colour/Colour.ts"],"names":[],"mappings":"AAqBA,qBAAa,MAAM;IAClB,OAAO,CAAC,KAAK,CAAqB;IAClC,OAAO,CAAC,QAAQ,CAAqB;IACrC,OAAO,CAAC,QAAQ,CAAqB;IAErC,IAAW,GAAG,IAAI,MAAM,GAAG,SAAS,CAOnC;IAED,IAAW,GAAG,IAAI,MAAM,GAAG,SAAS,CAOnC;IAED,IAAW,QAAQ,IAAI,MAAM,GAAG,SAAS,CAoBxC;gBAEW,KAAK,EAAE,MAAM,GAAG,SAAS;IAuBrC,KAAK,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM;IAI7B,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM;IAK/B,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM;IAK9B,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM;IAI/B,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM;IAKpC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM;IAK9B,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO;IAOpC,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO;IAIpC,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM;IAgBpC,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM;IAoBpC,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IA+B7E,MAAM,CAAC,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;CAoChF"}
1
+ {"version":3,"file":"Colour.d.ts","sourceRoot":"","sources":["../../../../../../components/src/utilities/Colour/Colour.ts"],"names":[],"mappings":"AAqBA,qBAAa,MAAM;IAClB,OAAO,CAAC,KAAK,CAAqB;IAClC,OAAO,CAAC,QAAQ,CAAqB;IACrC,OAAO,CAAC,QAAQ,CAAqB;IAErC,IAAW,GAAG,IAAI,MAAM,GAAG,SAAS,CAOnC;IAED,IAAW,GAAG,IAAI,MAAM,GAAG,SAAS,CAOnC;IAED,IAAW,QAAQ,IAAI,MAAM,GAAG,SAAS,CAoBxC;gBAEW,KAAK,EAAE,MAAM,GAAG,SAAS;IAuBrC,KAAK,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM;IAI7B,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM;IAK/B,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM;IAK9B,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM;IAI/B,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM;IAKpC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM;IAK9B;;iFAE6E;IAC7E,SAAS,CAAC,MAAM,GAAE,MAAY,GAAG,MAAM;IAIvC;;+EAE2E;IAC3E,UAAU,CAAC,MAAM,GAAE,MAAY,GAAG,MAAM;IAIxC,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO;IAOpC,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO;IAIpC,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM;IAgBpC,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM;IAoBpC,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IA+B7E;yFACqF;IACrF,MAAM,CAAC,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM;IAqBpF,MAAM,CAAC,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;CAoChF"}
@@ -114,6 +114,20 @@ var Colour = /** @class */ (function () {
114
114
  return this;
115
115
  return new Colour(Colour.opacity(this.hex, -offset));
116
116
  };
117
+ /** Returns a hex string mixed linearly toward black. `amount` (0-1) is the proportion
118
+ * of black in the result — 0.9 yields a near-black with a slight tint of the original.
119
+ * Uses linear RGB mixing so light inputs reliably produce darker outputs. */
120
+ Colour.prototype.darkenHex = function (amount) {
121
+ if (amount === void 0) { amount = 0.3; }
122
+ return Colour.mixToward(this.hex, '#000000', amount);
123
+ };
124
+ /** Returns a hex string mixed linearly toward white. `amount` (0-1) is the proportion
125
+ * of white in the result — 0.9 yields a near-white with a slight tint of the original.
126
+ * Uses linear RGB mixing so dark inputs reliably produce paler outputs. */
127
+ Colour.prototype.lightenHex = function (amount) {
128
+ if (amount === void 0) { amount = 0.3; }
129
+ return Colour.mixToward(this.hex, '#ffffff', amount);
130
+ };
117
131
  Colour.isRgb = function (color) {
118
132
  return Boolean(color.match(/^rgba?\([0-9]{1,3}[\s,\,]+[0-9]{1,3}[\s,\,]+[0-9]{1,3}[\s,\,]*\)$/i) ||
119
133
  color.match(/^rgba?\([0-9]{1,3}[\s,\,]+[0-9]{1,3}[\s,\,]+[0-9]{1,3}[\s,\,]+0?\.?[0-9]+%?[\s,\,]*\)$/i));
@@ -182,6 +196,24 @@ var Colour = /** @class */ (function () {
182
196
  }
183
197
  return hexValue;
184
198
  };
199
+ /** Linear RGB mix between two hex colors. `amount` (0-1) is the proportion of `towardHex`
200
+ * in the result. Returns the source `hex` unchanged when either input is invalid. */
201
+ Colour.mixToward = function (hex, towardHex, amount) {
202
+ if (!hex || !Colour.isHex(hex) || !Colour.isHex(towardHex))
203
+ return hex || '';
204
+ var clamped = Math.max(0, Math.min(1, amount));
205
+ var sourceR = parseInt(hex.slice(1, 3), 16);
206
+ var sourceG = parseInt(hex.slice(3, 5), 16);
207
+ var sourceB = parseInt(hex.slice(5, 7), 16);
208
+ var targetR = parseInt(towardHex.slice(1, 3), 16);
209
+ var targetG = parseInt(towardHex.slice(3, 5), 16);
210
+ var targetB = parseInt(towardHex.slice(5, 7), 16);
211
+ var mix = function (s, t) { return Math.round(s * (1 - clamped) + t * clamped); };
212
+ var r = mix(sourceR, targetR).toString(16).padStart(2, '0');
213
+ var g = mix(sourceG, targetG).toString(16).padStart(2, '0');
214
+ var b = mix(sourceB, targetB).toString(16).padStart(2, '0');
215
+ return "#".concat(r).concat(g).concat(b);
216
+ };
185
217
  Colour.brightness = function (color, offset) {
186
218
  var isRgb = false;
187
219
  if (color && Colour.isRgb(color)) {
@@ -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":"AAGA,OAAO,EAAE,OAAO,EAAE,WAAW,EAAc,MAAM,6BAA6B,CAAC;AAC/E,OAAO,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AACpD,OAAO,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AACpD,OAAO,EAAE,OAAO,EAAE,MAAM,6BAA6B,CAAC;AAEtD,OAAO,KAAK,EAAE,YAAY,EAAE,aAAa,EAA2D,MAAM,4BAA4B,CAAC;AACvI,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AAC3E,OAAO,KAAK,EACX,kBAAkB,EAClB,wBAAwB,EACxB,WAAW,EACX,gBAAgB,EAEhB,MAAM,gCAAgC,CAAC;AACxC,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AACpF,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mCAAmC,CAAC;AACpE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,6BAA6B,CAAC;AAE1D,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAEpC,KAAK,2BAA2B,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC;AAE5D,MAAM,MAAM,6BAA6B,GAAG;IAC3C,SAAS,EAAE,2BAA2B,CAAC;IACvC,KAAK,CAAC,EAAE;QACP,CAAC,IAAI,EAAE,MAAM,GAAG,GAAG,CAAC;KACpB,CAAC;IACF,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,GAAG,SAAS,EAAE,YAAY,EAAE,OAAO,GAAG,SAAS,EAAE,UAAU,EAAE,wBAAwB,KAAK,IAAI,CAAC;CACvI,CAAC;AAEF,MAAM,MAAM,wCAAwC,GAAG;IACtD,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,aAAa,CAAC;IACzB,MAAM,CAAC,EAAE,cAAc,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,gCAAgC,GAAG;IAC9C,IAAI,CAAC,EAAE,MAAM,OAAO,OAAO,GAAG,OAAO,CAAC;IACtC,MAAM,CAAC,EAAE;QACR,OAAO,EAAE,aAAa,CAAC;QACvB,MAAM,CAAC,EAAE,YAAY,CAAC;KACtB,CAAC;IACF,UAAU,EAAE;QACX,CAAC,IAAI,EAAE,MAAM,GAAG,2BAA2B,GAAG,6BAA6B,CAAC;KAC5E,CAAC;IACF,MAAM,EAAE,wCAAwC,GAAG,WAAW,CAAC;IAC/D,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,GAAG,CAAC,EAAE,mBAAmB,CAAC;IAC1B,OAAO,CAAC,EAAE,gBAAgB,CAAC;CAC3B,CAAC;AAEF,MAAM,MAAM,kCAAkC,GAAG;IAChD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,IAAI,CAAC,EAAE,IAAI,CAAC;CACZ,CAAC;AA8BF,qBAAa,0BAA0B;IACtC,OAAO,CAAC,IAAI,CAAsB;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE;QAClB,CAAC,GAAG,EAAE,MAAM,GAAG,wBAAwB,CAAC;KACxC,CAAM;IACA,MAAM,EAAE,gCAAgC,CAAC;IACzC,OAAO,EAAE,gBAAgB,CAAC;IAC1B,QAAQ,EAAE,WAAW,CAAC;IAEtB,IAAI,EAAE,WAAW,EAAE,CAAM;IACzB,OAAO,EAAE;QAAE,IAAI,EAAE,CAAC,MAAM,EAAE,kBAAkB,EAAE,GAAG,IAAI,EAAE,GAAG,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;QAAC,IAAI,EAAE,OAAO,EAAE,CAAA;KAAE,EAAE,CAAM;IAC9G,UAAU,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,UAAU,CAAC,GAAG,CAAC,EAAE,CAAA;KAAE,EAAE,CAAM;gBAEzD,MAAM,EAAE,gCAAgC,EAAE,QAAQ,CAAC,EAAE,kCAAkC,EAAE,OAAO,CAAC,EAAE,gBAAgB;IAkOxH,MAAM,CAAC,IAAI,EAAE,CAAC,MAAM,EAAE,kBAAkB,EAAE,GAAG,IAAI,EAAE,GAAG,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI;IAI1G,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI;IAIpD,GAAG,CAAC,WAAW,EAAE,WAAW,GAAG,IAAI;IAKnC,uBAAuB,IAAI,IAAI;CAqBtC;AA4LD,KAAK,YAAY,GAAG;IACnB,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACnB,CAAC;AAEF,wBAAgB,OAAO,CAAC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,YAAY,CAUrE"}
@@ -10,29 +10,6 @@ var __assign = (this && this.__assign) || function () {
10
10
  };
11
11
  return __assign.apply(this, arguments);
12
12
  };
13
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
14
- if (k2 === undefined) k2 = k;
15
- var desc = Object.getOwnPropertyDescriptor(m, k);
16
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
17
- desc = { enumerable: true, get: function() { return m[k]; } };
18
- }
19
- Object.defineProperty(o, k2, desc);
20
- }) : (function(o, m, k, k2) {
21
- if (k2 === undefined) k2 = k;
22
- o[k2] = m[k];
23
- }));
24
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
25
- Object.defineProperty(o, "default", { enumerable: true, value: v });
26
- }) : function(o, v) {
27
- o["default"] = v;
28
- });
29
- var __importStar = (this && this.__importStar) || function (mod) {
30
- if (mod && mod.__esModule) return mod;
31
- var result = {};
32
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
33
- __setModuleDefault(result, mod);
34
- return result;
35
- };
36
13
  var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
37
14
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
38
15
  return new (P || (P = Promise))(function (resolve, reject) {
@@ -91,6 +68,7 @@ var snap_toolbox_1 = require("@athoscommerce/snap-toolbox");
91
68
  var snap_client_1 = require("@athoscommerce/snap-client");
92
69
  var snap_logger_1 = require("@athoscommerce/snap-logger");
93
70
  var snap_tracker_1 = require("@athoscommerce/snap-tracker");
71
+ var create_1 = require("../create");
94
72
  var DEFAULT_BRANCH = 'production';
95
73
  var RecommendationInstantiator = /** @class */ (function () {
96
74
  function RecommendationInstantiator(config, services, context) {
@@ -128,33 +106,30 @@ var RecommendationInstantiator = /** @class */ (function () {
128
106
  this.tracker = (services === null || services === void 0 ? void 0 : services.tracker) || new snap_tracker_1.Tracker(this.config.client.globals);
129
107
  this.logger = (services === null || services === void 0 ? void 0 : services.logger) || new snap_logger_1.Logger({ prefix: 'RecommendationInstantiator ', mode: this.mode });
130
108
  var profileCount = {};
109
+ // script block targeter for "grouped" and "legacy" blocks
131
110
  this.targeter = new snap_toolbox_1.DomTargeter([
132
111
  {
133
112
  selector: "".concat(this.config.selector ||
134
113
  '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\"]"),
135
114
  autoRetarget: true,
136
115
  clickRetarget: true,
137
- inject: {
138
- action: 'before',
139
- element: function (target, origElement) {
140
- var profile = origElement.getAttribute('profile') || '';
141
- var recsContainer = document.createElement('div');
142
- recsContainer.setAttribute('searchspring-recommend', profile);
143
- return recsContainer;
144
- },
145
- },
116
+ navigationRetarget: true,
117
+ emptyTarget: false,
146
118
  },
147
119
  {
148
120
  selector: 'script[type="searchspring/recommendations"], script[type="athos/recommendations"]',
149
121
  autoRetarget: true,
150
122
  clickRetarget: true,
123
+ navigationRetarget: true,
151
124
  emptyTarget: false,
152
125
  },
153
- ], function (target, elem, originalElem) { return __awaiter(_this, void 0, void 0, function () {
154
- var elemContext, scriptContextProfiles, scriptContextGlobals_1, requestGlobals_1, targetsArr_1, profile, products, product, seed, filters, blockedItems, options, shopper, shopperId, combinedProducts, shopperIdentifier, profileRequestGlobals;
126
+ ], function (target, elem) { return __awaiter(_this, void 0, void 0, function () {
127
+ var scriptElement, elemContext, scriptContextProfiles, scriptContextGlobals_1, requestGlobals_1, profile, products, product, seed, filters, blockedItems, options, shopper, shopperId, combinedProducts, shopperIdentifier, profileRequestGlobals_1, profileAttr, recsContainer, legacyContext_1;
155
128
  var _this = this;
156
129
  var _a;
157
130
  return __generator(this, function (_b) {
131
+ this.cleanupStaleControllers();
132
+ scriptElement = elem;
158
133
  elemContext = (0, snap_toolbox_1.getContext)([
159
134
  'shopperId',
160
135
  'shopper',
@@ -169,7 +144,7 @@ var RecommendationInstantiator = /** @class */ (function () {
169
144
  'custom',
170
145
  'profiles',
171
146
  'globals',
172
- ], (originalElem || elem));
147
+ ], scriptElement);
173
148
  if (elemContext.profiles && elemContext.profiles.length) {
174
149
  scriptContextProfiles = elemContext.profiles;
175
150
  scriptContextGlobals_1 = elemContext.globals;
@@ -179,42 +154,62 @@ var RecommendationInstantiator = /** @class */ (function () {
179
154
  cart: (scriptContextGlobals_1 === null || scriptContextGlobals_1 === void 0 ? void 0 : scriptContextGlobals_1.cart) && getArrayFunc(scriptContextGlobals_1.cart),
180
155
  products: scriptContextGlobals_1 === null || scriptContextGlobals_1 === void 0 ? void 0 : scriptContextGlobals_1.products,
181
156
  shopper: (_a = scriptContextGlobals_1 === null || scriptContextGlobals_1 === void 0 ? void 0 : scriptContextGlobals_1.shopper) === null || _a === void 0 ? void 0 : _a.id,
182
- batchId: Math.random(),
157
+ batchId: Math.floor(Math.random() * Number.MAX_SAFE_INTEGER),
183
158
  }));
184
- targetsArr_1 = [];
185
- // build out the targets array for each profile
186
- scriptContextProfiles.forEach(function (profile) {
159
+ // create a per-profile DomTargeter for each profile so each controller
160
+ // gets its own targeter tracking its specific element
161
+ scriptContextProfiles.forEach(function (profile, index) {
187
162
  if (profile.selector) {
188
- var targetObj = {
163
+ var profileTarget = {
189
164
  selector: profile.selector,
190
165
  autoRetarget: true,
191
- clickRetarget: true,
192
166
  profile: profile,
167
+ order: index,
193
168
  };
194
- targetsArr_1.push(targetObj);
169
+ // track the controller for this profile so multiple matched elements share it
170
+ var profileControllerPromise_1;
171
+ new snap_toolbox_1.DomTargeter([profileTarget], function (target, targetElem, _originalElem, targeter) { return __awaiter(_this, void 0, void 0, function () {
172
+ var profileRequestGlobals, profileContext, controller;
173
+ var _a, _b, _c;
174
+ return __generator(this, function (_d) {
175
+ switch (_d.label) {
176
+ case 0:
177
+ // skip retarget if the source script element was removed and release the current target
178
+ if (scriptElement.isConnected === false) {
179
+ if (targetElem) {
180
+ targeter === null || targeter === void 0 ? void 0 : targeter.releaseTargets([targetElem]);
181
+ }
182
+ return [2 /*return*/];
183
+ }
184
+ if (!(((_a = target.profile) === null || _a === void 0 ? void 0 : _a.profile) || ((_b = target.profile) === null || _b === void 0 ? void 0 : _b.tag))) return [3 /*break*/, 3];
185
+ profileRequestGlobals = __assign(__assign({}, requestGlobals_1), { profile: __assign(__assign({}, (_c = target.profile) === null || _c === void 0 ? void 0 : _c.options), { order: target.order }), tag: target.profile.tag || target.profile.profile });
186
+ profileContext = (0, deepmerge_1.default)(this.context, defined({ globals: scriptContextGlobals_1, profile: target.profile }));
187
+ if (elemContext.custom) {
188
+ profileContext.custom = (0, deepmerge_1.default)(profileContext.custom, elemContext.custom);
189
+ }
190
+ if (!!profileControllerPromise_1) return [3 /*break*/, 1];
191
+ // first element match — create the controller
192
+ profileControllerPromise_1 = readyTheController(this, services || {}, targetElem, profileContext, profileCount, scriptElement, profileRequestGlobals, target, targeter);
193
+ return [3 /*break*/, 3];
194
+ case 1: return [4 /*yield*/, profileControllerPromise_1];
195
+ case 2:
196
+ controller = _d.sent();
197
+ if (controller && targetElem) {
198
+ renderController(this, services || {}, controller, targetElem, scriptElement, target);
199
+ }
200
+ _d.label = 3;
201
+ case 3: return [2 /*return*/];
202
+ }
203
+ });
204
+ }); });
195
205
  }
196
206
  });
197
- new snap_toolbox_1.DomTargeter(targetsArr_1, function (target, elem, originalElem) { return __awaiter(_this, void 0, void 0, function () {
198
- var profileRequestGlobals, profileContext;
199
- var _a, _b, _c;
200
- return __generator(this, function (_d) {
201
- if (((_a = target.profile) === null || _a === void 0 ? void 0 : _a.profile) || ((_b = target.profile) === null || _b === void 0 ? void 0 : _b.tag)) {
202
- profileRequestGlobals = __assign(__assign({}, requestGlobals_1), { profile: (_c = target.profile) === null || _c === void 0 ? void 0 : _c.options, tag: target.profile.tag || target.profile.profile });
203
- profileContext = (0, deepmerge_1.default)(this.context, defined({ globals: scriptContextGlobals_1, profile: target.profile }));
204
- if (elemContext.custom) {
205
- profileContext.custom = (0, deepmerge_1.default)(profileContext.custom, elemContext.custom);
206
- }
207
- readyTheController(this, services || {}, elem, profileContext, profileCount, originalElem, profileRequestGlobals, target);
208
- }
209
- return [2 /*return*/];
210
- });
211
- }); });
212
207
  }
213
208
  else {
214
209
  profile = elemContext.profile, products = elemContext.products, product = elemContext.product, seed = elemContext.seed, filters = elemContext.filters, blockedItems = elemContext.blockedItems, options = elemContext.options, shopper = elemContext.shopper, shopperId = elemContext.shopperId;
215
210
  combinedProducts = [].concat(products || product || seed || []);
216
211
  shopperIdentifier = [shopper, shopper === null || shopper === void 0 ? void 0 : shopper.id, shopperId, shopperId === null || shopperId === void 0 ? void 0 : shopperId.id].filter(function (val) { return val && typeof val === 'string'; }).pop();
217
- profileRequestGlobals = __assign({ tag: profile }, defined({
212
+ profileRequestGlobals_1 = __assign({ tag: profile }, defined({
218
213
  products: combinedProducts.length ? combinedProducts : undefined,
219
214
  cart: elemContext.cart && getArrayFunc(elemContext.cart),
220
215
  shopper: shopperIdentifier,
@@ -222,7 +217,25 @@ var RecommendationInstantiator = /** @class */ (function () {
222
217
  blockedItems: blockedItems,
223
218
  profile: options,
224
219
  }));
225
- readyTheController(this, services || {}, elem, (0, deepmerge_1.default)(this.context, elemContext), profileCount, originalElem, profileRequestGlobals, target);
220
+ profileAttr = scriptElement.getAttribute('profile') || '';
221
+ recsContainer = scriptElement.ownerDocument.createElement('div');
222
+ recsContainer.setAttribute('searchspring-recommend', profileAttr);
223
+ scriptElement.before(recsContainer);
224
+ legacyContext_1 = (0, deepmerge_1.default)(this.context, elemContext);
225
+ // create a per-element DomTargeter for the injected div (mirrors grouped block pattern)
226
+ new snap_toolbox_1.DomTargeter([{ selector: "[searchspring-recommend=\"".concat(profileAttr, "\"]"), name: "legacy_".concat(profile, "_").concat(profileCount[profile || ''] || 0) }], function (_target, targetElem, _originalElem, targeter) { return __awaiter(_this, void 0, void 0, function () {
227
+ return __generator(this, function (_a) {
228
+ // skip retarget if the source script element was removed and release the current target
229
+ if (scriptElement.isConnected === false) {
230
+ if (targetElem) {
231
+ targeter === null || targeter === void 0 ? void 0 : targeter.releaseTargets([targetElem]);
232
+ }
233
+ return [2 /*return*/];
234
+ }
235
+ readyTheController(this, services || {}, targetElem, legacyContext_1, profileCount, scriptElement, profileRequestGlobals_1, target, targeter);
236
+ return [2 /*return*/];
237
+ });
238
+ }); });
226
239
  }
227
240
  return [2 /*return*/];
228
241
  });
@@ -245,34 +258,55 @@ var RecommendationInstantiator = /** @class */ (function () {
245
258
  RecommendationInstantiator.prototype.use = function (attachments) {
246
259
  this.uses.push(attachments);
247
260
  };
261
+ // cleanup to ensure we release controllers no longer rendering in the DOM (memory leak prevention for SPA's)
262
+ RecommendationInstantiator.prototype.cleanupStaleControllers = function () {
263
+ var _this = this;
264
+ Object.keys(this.controller).forEach(function (id) {
265
+ var _a;
266
+ var controller = _this.controller[id];
267
+ var targeters = Object.values(controller.targeters);
268
+ var hasConnectedTarget = targeters.some(function (targeter) {
269
+ return targeter.getTargetedElems().some(function (elem) {
270
+ var attr = elem.isConnected !== false && elem.getAttribute('ss-controller-id');
271
+ return attr === id;
272
+ });
273
+ });
274
+ if (!hasConnectedTarget) {
275
+ Object.keys(controller.targeters).forEach(function (targeterId) { return controller.targeters[targeterId].destroy(); });
276
+ controller.targeters = {};
277
+ delete _this.controller[id];
278
+ if ((_a = window.athos) === null || _a === void 0 ? void 0 : _a.controller) {
279
+ delete window.athos.controller[id];
280
+ }
281
+ }
282
+ });
283
+ };
248
284
  return RecommendationInstantiator;
249
285
  }());
250
286
  exports.RecommendationInstantiator = RecommendationInstantiator;
251
- function readyTheController(instance, services, injectedElem, context, profileCount, elem, controllerGlobals, target) {
287
+ function readyTheController(instance, services, targetElem, context, profileCount, scriptElem, controllerGlobals, target, targeter) {
252
288
  return __awaiter(this, void 0, void 0, function () {
253
- var profile, batchId, cart, tag, batched, globals, controllerConfig, controller, createRecommendationController, profileVars, component, props, RecommendationsComponent, importPromises, importResolutions;
254
- var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v;
255
- return __generator(this, function (_w) {
256
- switch (_w.label) {
289
+ var profile, batchId, cart, tag, batched, globals, controllerConfigBase, controllerConfig, controller, profileVars;
290
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s;
291
+ return __generator(this, function (_t) {
292
+ switch (_t.label) {
257
293
  case 0:
258
294
  profile = controllerGlobals.profile, batchId = controllerGlobals.batchId, cart = controllerGlobals.cart, tag = controllerGlobals.tag;
259
295
  batched = (_b = (_a = profile === null || profile === void 0 ? void 0 : profile.batched) !== null && _a !== void 0 ? _a : controllerGlobals.batched) !== null && _b !== void 0 ? _b : true;
260
296
  if (!tag) {
261
297
  // FEEDBACK: change message depending on script integration type (profile vs. legacy)
262
- instance.logger.warn("'tag' is missing from <script> tag, skipping this profile", elem);
298
+ instance.logger.warn("'tag' is missing from <script> tag, skipping this profile", scriptElem);
263
299
  return [2 /*return*/];
264
300
  }
265
301
  if (Array.isArray(cart)) {
266
302
  instance.tracker.cookies.cart.set(cart);
267
303
  }
268
- profileCount[tag] = profileCount[tag] + 1 || 1;
269
304
  globals = deepmerge_1.default.all([
270
305
  ((_c = instance.config.client) === null || _c === void 0 ? void 0 : _c.globals) || {},
271
306
  ((_d = instance.config.config) === null || _d === void 0 ? void 0 : _d.globals) || {},
272
307
  controllerGlobals,
273
308
  ]);
274
- controllerConfig = {
275
- id: "recommend_".concat(tag, "_").concat(profileCount[tag] - 1),
309
+ controllerConfigBase = {
276
310
  tag: tag,
277
311
  batched: (_f = batched !== null && batched !== void 0 ? batched : (_e = instance.config.config) === null || _e === void 0 ? void 0 : _e.batched) !== null && _f !== void 0 ? _f : true,
278
312
  realtime: Boolean((_l = (_h = (_g = context.options) === null || _g === void 0 ? void 0 : _g.realtime) !== null && _h !== void 0 ? _h : (_k = (_j = context.profile) === null || _j === void 0 ? void 0 : _j.options) === null || _k === void 0 ? void 0 : _k.realtime) !== null && _l !== void 0 ? _l : (_m = instance.config.config) === null || _m === void 0 ? void 0 : _m.realtime),
@@ -281,106 +315,110 @@ function readyTheController(instance, services, injectedElem, context, profileCo
281
315
  plugins: instance.config.config.plugins,
282
316
  branch: ((_o = instance.config.config) === null || _o === void 0 ? void 0 : _o.branch) || 'production',
283
317
  limit: (_p = instance.config.config) === null || _p === void 0 ? void 0 : _p.limit,
318
+ beacon: ((_q = instance.config.config) === null || _q === void 0 ? void 0 : _q.beacon) || { enabled: true },
284
319
  settings: {
285
- variants: (_q = instance.config.config) === null || _q === void 0 ? void 0 : _q.variants,
320
+ variants: (_r = instance.config.config) === null || _r === void 0 ? void 0 : _r.variants,
286
321
  },
287
322
  globals: globals,
288
323
  };
289
324
  if (profile === null || profile === void 0 ? void 0 : profile.branch) {
290
- controllerConfig.branch = profile === null || profile === void 0 ? void 0 : profile.branch;
325
+ controllerConfigBase.branch = profile === null || profile === void 0 ? void 0 : profile.branch;
291
326
  }
292
- controller = Object.keys(instance.controller)
293
- .map(function (id) { return instance.controller[id]; })
294
- .filter(function (controller) {
295
- return (JSON.stringify({
296
- batched: controller.config.batched,
297
- branch: controller.config.branch,
298
- globals: controller.config.globals,
299
- tag: controller.config.tag,
300
- realtime: controller.config.realtime,
301
- }) ==
302
- JSON.stringify({
303
- batched: controllerConfig.batched,
304
- branch: controllerConfig.branch,
305
- globals: controllerConfig.globals,
306
- tag: controllerConfig.tag,
307
- realtime: controllerConfig.realtime,
308
- }));
309
- })[0];
310
- if (!!controller) return [3 /*break*/, 2];
311
- return [4 /*yield*/, Promise.resolve().then(function () { return __importStar(require('../create/createRecommendationController')); })];
312
- case 1:
313
- createRecommendationController = (_w.sent()).default;
314
- controller = createRecommendationController({
327
+ profileCount[tag] = profileCount[tag] + 1 || 1;
328
+ controllerConfig = __assign({ id: "recommend_".concat(tag, "_").concat(profileCount[tag] - 1) }, controllerConfigBase);
329
+ controller = (0, create_1.createRecommendationController)({
315
330
  url: instance.config.url,
316
331
  controller: controllerConfig,
317
332
  context: context,
318
333
  mode: instance.config.mode,
319
334
  }, { client: instance.client, tracker: instance.tracker });
335
+ // mark element with controller id so cleanupStaleControllers knows it's active
336
+ if (targetElem) {
337
+ targetElem.setAttribute('ss-controller-id', controller.id);
338
+ }
320
339
  instance.uses.forEach(function (attachements) { return controller.use(attachements); });
321
340
  instance.plugins.forEach(function (plugin) { return controller.plugin.apply(controller, __spreadArray([plugin.func], plugin.args, false)); });
322
341
  instance.middleware.forEach(function (middleware) { return controller.on.apply(controller, __spreadArray([middleware.event], middleware.func, false)); });
323
- _w.label = 2;
324
- case 2:
325
- if (!!controller.store.loading) return [3 /*break*/, 4];
326
- return [4 /*yield*/, controller.search()];
327
- case 3:
328
- _w.sent();
329
- _w.label = 4;
330
- case 4:
331
- controller.addTargeter(instance.targeter);
342
+ // add controller to instantiator and global namespace
332
343
  instance.controller[controller.config.id] = controller;
333
344
  window.athos.controller = window.athos.controller || {};
334
345
  window.athos.controller[controller.config.id] = controller;
335
- profileVars = (_r = controller.store.profile.display) === null || _r === void 0 ? void 0 : _r.templateParameters;
336
- component = (_t = (_s = controller.store.profile.display) === null || _s === void 0 ? void 0 : _s.template) === null || _t === void 0 ? void 0 : _t.component;
346
+ // register targeter on the controller for element tracking
347
+ controller.addTargeter(targeter);
348
+ if (!!controller.store.loading) return [3 /*break*/, 2];
349
+ return [4 /*yield*/, controller.search()];
350
+ case 1:
351
+ _t.sent();
352
+ _t.label = 2;
353
+ case 2:
354
+ profileVars = (_s = controller.store.profile.display) === null || _s === void 0 ? void 0 : _s.templateParameters;
337
355
  if (controller.store.error) {
338
356
  //something went wrong
339
357
  //err was already logged - nothing to do.
340
358
  return [2 /*return*/];
341
359
  }
342
360
  if (!controller.store.profile.display.template) {
343
- instance.logger.error("profile '".concat(tag, "' found on the following element is missing a template!\n").concat(elem === null || elem === void 0 ? void 0 : elem.outerHTML));
361
+ instance.logger.error("profile '".concat(tag, "' found on the following element is missing a template!\n").concat(scriptElem === null || scriptElem === void 0 ? void 0 : scriptElem.outerHTML));
344
362
  return [2 /*return*/];
345
363
  }
346
364
  if (!profileVars) {
347
- instance.logger.error("profile '".concat(tag, "' found on the following element is missing templateParameters!\n").concat(elem === null || elem === void 0 ? void 0 : elem.outerHTML));
365
+ instance.logger.error("profile '".concat(tag, "' found on the following element is missing templateParameters!\n").concat(scriptElem === null || scriptElem === void 0 ? void 0 : scriptElem.outerHTML));
348
366
  return [2 /*return*/];
349
367
  }
368
+ if (!targetElem) return [3 /*break*/, 4];
369
+ return [4 /*yield*/, renderController(instance, services, controller, targetElem, scriptElem, target)];
370
+ case 3:
371
+ _t.sent();
372
+ _t.label = 4;
373
+ case 4: return [2 /*return*/, controller];
374
+ }
375
+ });
376
+ });
377
+ }
378
+ function renderController(instance, services, controller, targetElem, scriptElem, target) {
379
+ return __awaiter(this, void 0, void 0, function () {
380
+ var tag, component, props, RecommendationsComponent, importPromises, importResolutions;
381
+ var _a, _b, _c, _d;
382
+ return __generator(this, function (_e) {
383
+ switch (_e.label) {
384
+ case 0:
385
+ // update the element with the controller id
386
+ if (targetElem) {
387
+ targetElem.setAttribute('ss-controller-id', controller.id);
388
+ }
389
+ tag = controller.config.tag;
390
+ component = (_b = (_a = controller.store.profile.display) === null || _a === void 0 ? void 0 : _a.template) === null || _b === void 0 ? void 0 : _b.component;
350
391
  if (!component) {
351
- instance.logger.error("profile '".concat(tag, "' found on the following element is missing a component!\n").concat(elem === null || elem === void 0 ? void 0 : elem.outerHTML));
392
+ instance.logger.error("profile '".concat(tag, "' found on the following element is missing a component!\n").concat(scriptElem === null || scriptElem === void 0 ? void 0 : scriptElem.outerHTML));
352
393
  return [2 /*return*/];
353
394
  }
354
395
  props = {};
355
396
  RecommendationsComponent = undefined;
356
397
  props.className = "ss__recommendation-".concat(component.toLowerCase());
357
- injectedElem === null || injectedElem === void 0 ? void 0 : injectedElem.setAttribute('id', "".concat(controllerConfig.id));
358
- (_v = (_u = instance.config.components[component]) === null || _u === void 0 ? void 0 : _u.onTarget) === null || _v === void 0 ? void 0 : _v.call(_u, target, elem, injectedElem, controller);
359
- if (!(instance.config.components[component] && typeof instance.config.components[component] == 'function')) return [3 /*break*/, 6];
398
+ (_d = (_c = instance.config.components[component]) === null || _c === void 0 ? void 0 : _c.onTarget) === null || _d === void 0 ? void 0 : _d.call(_c, target, scriptElem, targetElem, controller);
399
+ if (!(instance.config.components[component] && typeof instance.config.components[component] == 'function')) return [3 /*break*/, 2];
360
400
  return [4 /*yield*/, instance.config.components[component]()];
361
- case 5:
362
- RecommendationsComponent = _w.sent();
363
- return [3 /*break*/, 8];
364
- case 6:
365
- if (!(instance.config.components[component] && typeof instance.config.components[component] == 'object')) return [3 /*break*/, 8];
401
+ case 1:
402
+ RecommendationsComponent = _e.sent();
403
+ return [3 /*break*/, 4];
404
+ case 2:
405
+ if (!(instance.config.components[component] && typeof instance.config.components[component] == 'object')) return [3 /*break*/, 4];
366
406
  props = instance.config.components[component].props || {};
367
407
  importPromises = [];
368
408
  // dynamically import the component
369
409
  importPromises.push(instance.config.components[component].component());
370
410
  return [4 /*yield*/, Promise.all(importPromises)];
371
- case 7:
372
- importResolutions = _w.sent();
411
+ case 3:
412
+ importResolutions = _e.sent();
373
413
  RecommendationsComponent = importResolutions[0];
374
- _w.label = 8;
375
- case 8:
414
+ _e.label = 4;
415
+ case 4:
376
416
  if (!RecommendationsComponent) {
377
- instance.logger.error("profile '".concat(tag, "' found on the following element is expecting component mapping for '").concat(component, "' - verify instantiator config.\n").concat(elem === null || elem === void 0 ? void 0 : elem.outerHTML));
417
+ instance.logger.error("profile '".concat(tag, "' found on the following element is expecting component mapping for '").concat(component, "' - verify instantiator config.\n").concat(scriptElem === null || scriptElem === void 0 ? void 0 : scriptElem.outerHTML));
378
418
  return [2 /*return*/];
379
419
  }
380
420
  setTimeout(function () {
381
- if (injectedElem && RecommendationsComponent) {
382
- (0, preact_1.render)((0, jsx_runtime_1.jsx)(RecommendationsComponent, __assign({ controller: controller, snap: services === null || services === void 0 ? void 0 : services.snap }, props)), injectedElem);
383
- }
421
+ (0, preact_1.render)((0, jsx_runtime_1.jsx)(RecommendationsComponent, __assign({ controller: controller, snap: services === null || services === void 0 ? void 0 : services.snap }, props)), targetElem);
384
422
  });
385
423
  return [2 /*return*/];
386
424
  }