@athoscommerce/snap-preact 1.10.0 → 1.10.1-beta.150
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/components/src/components/Atoms/ChatLoadingIndicator/ChatLoadingIndicator.js +99 -0
- package/dist/cjs/components/src/components/Atoms/ChatLoadingIndicator/index.js +17 -0
- package/dist/cjs/components/src/components/Atoms/Dropdown/Dropdown.js +56 -11
- package/dist/cjs/components/src/components/Atoms/Icon/paths.js +13 -0
- package/dist/cjs/components/src/components/Molecules/ChatAttachmentContext/ChatAttachmentContext.js +221 -0
- package/dist/cjs/components/src/components/Molecules/ChatAttachmentContext/index.js +17 -0
- package/dist/cjs/components/src/components/Molecules/ChatInspirationResultMessage/ChatInspirationResultMessage.js +209 -0
- package/dist/cjs/components/src/components/Molecules/ChatInspirationResultMessage/index.js +17 -0
- package/dist/cjs/components/src/components/Molecules/ChatMessageText/ChatMessageText.js +258 -0
- package/dist/cjs/components/src/components/Molecules/ChatMessageText/index.js +17 -0
- package/dist/cjs/components/src/components/Molecules/ChatMessageUser/ChatMessageUser.js +282 -0
- package/dist/cjs/components/src/components/Molecules/ChatMessageUser/index.js +17 -0
- package/dist/cjs/components/src/components/Molecules/ChatProductComparisonMessage/ChatProductComparisonMessage.js +173 -0
- package/dist/cjs/components/src/components/Molecules/ChatProductComparisonMessage/index.js +17 -0
- package/dist/cjs/components/src/components/Molecules/ChatProductQueryMessage/ChatProductQueryMessage.js +577 -0
- package/dist/cjs/components/src/components/Molecules/ChatProductQueryMessage/index.js +17 -0
- package/dist/cjs/components/src/components/Molecules/ChatResult/ChatResult.js +252 -0
- package/dist/cjs/components/src/components/Molecules/ChatResult/index.js +17 -0
- package/dist/cjs/components/src/components/Molecules/ChatResultsDisplay/ChatResultsDisplay.js +113 -0
- package/dist/cjs/components/src/components/Molecules/ChatResultsDisplay/index.js +17 -0
- package/dist/cjs/components/src/components/Molecules/ChatSuggestedQuestions/ChatSuggestedQuestions.js +107 -0
- package/dist/cjs/components/src/components/Molecules/ChatSuggestedQuestions/index.js +17 -0
- package/dist/cjs/components/src/components/Molecules/Result/Result.js +53 -6
- package/dist/cjs/components/src/components/Molecules/SearchInput/SearchInput.js +28 -2
- package/dist/cjs/components/src/components/Molecules/Slideout/Slideout.js +24 -28
- package/dist/cjs/components/src/components/Molecules/Slideshow/Slideshow.js +5 -1
- package/dist/cjs/components/src/components/Organisms/Chat/Chat.js +621 -0
- package/dist/cjs/components/src/components/Organisms/Chat/Chat.lang.js +105 -0
- package/dist/cjs/components/src/components/Organisms/Chat/components/ChatAttachments.js +104 -0
- package/dist/cjs/components/src/components/Organisms/Chat/components/ChatComparisonsTray.js +161 -0
- package/dist/cjs/components/src/components/Organisms/Chat/components/ChatComposer.js +166 -0
- package/dist/cjs/components/src/components/Organisms/Chat/components/ChatFacetsBar.js +369 -0
- package/dist/cjs/components/src/components/Organisms/Chat/components/ChatHistory.js +130 -0
- package/dist/cjs/components/src/components/Organisms/Chat/components/ChatMessages.js +218 -0
- package/dist/cjs/components/src/components/Organisms/Chat/components/ChatSessionFeedback.js +123 -0
- package/dist/cjs/components/src/components/Organisms/Chat/components/ChatSideChat.js +173 -0
- package/dist/cjs/components/src/components/Organisms/Chat/components/ChatTopicDrift.js +149 -0
- package/dist/cjs/components/src/components/Organisms/Chat/components/chatAccentTheme.js +60 -0
- package/dist/cjs/components/src/components/Organisms/Chat/hooks/useChatFileUpload.js +66 -0
- package/dist/cjs/components/src/components/Organisms/Chat/hooks/useChatGestures.js +96 -0
- package/dist/cjs/components/src/components/Organisms/Chat/hooks/useChatOverflow.js +113 -0
- package/dist/cjs/components/src/components/Organisms/Chat/hooks/useChatScrollLock.js +135 -0
- package/dist/cjs/components/src/components/Organisms/Chat/index.js +18 -0
- package/dist/cjs/components/src/components/Organisms/ChatButton/ChatButton.js +94 -0
- package/dist/cjs/components/src/components/Organisms/ChatButton/ChatButton.lang.js +11 -0
- package/dist/cjs/components/src/components/Organisms/ChatButton/index.js +18 -0
- package/dist/cjs/components/src/components/Organisms/Facet/Facet.js +1 -5
- package/dist/cjs/components/src/components/Organisms/Results/Results.js +1 -1
- package/dist/cjs/components/src/components/Templates/AutocompleteFixed/AutocompleteFixed.js +5 -0
- package/dist/cjs/components/src/components/Templates/AutocompleteModal/AutocompleteModal.js +5 -0
- package/dist/cjs/components/src/components/Templates/AutocompleteSlideout/AutocompleteSlideout.js +5 -0
- package/dist/cjs/components/src/components/Templates/Chat/Chat.js +47 -0
- package/dist/cjs/components/src/components/Templates/Chat/index.js +17 -0
- package/dist/cjs/components/src/components/Templates/ChatButton/ChatButton.js +47 -0
- package/dist/cjs/components/src/components/Templates/ChatButton/index.js +17 -0
- package/dist/cjs/components/src/index.js +17 -1
- package/dist/cjs/components/src/providers/themeComponents.js +20 -0
- package/dist/cjs/components/src/setupTests.js +14 -0
- package/dist/cjs/components/src/themes/base/components/templates/chat.js +6 -0
- package/dist/cjs/components/src/themes/base/components/templates/chatButton.js +6 -0
- package/dist/cjs/components/src/themes/base/components/templates/index.js +10 -0
- package/dist/cjs/components/src/themes/bocachica/components/templates/chat.js +6 -0
- package/dist/cjs/components/src/themes/bocachica/components/templates/chatButton.js +6 -0
- package/dist/cjs/components/src/themes/bocachica/components/templates/index.js +10 -0
- package/dist/cjs/components/src/themes/pike/components/templates/chat.js +6 -0
- package/dist/cjs/components/src/themes/pike/components/templates/chatButton.js +6 -0
- package/dist/cjs/components/src/themes/pike/components/templates/index.js +10 -0
- package/dist/cjs/components/src/themes/snapnco/components/templates/chat.js +6 -0
- package/dist/cjs/components/src/themes/snapnco/components/templates/chatButton.js +6 -0
- package/dist/cjs/components/src/themes/snapnco/components/templates/index.js +10 -0
- package/dist/cjs/components/src/themes/snappy/components/templates/chat.js +6 -0
- package/dist/cjs/components/src/themes/snappy/components/templates/chatButton.js +6 -0
- package/dist/cjs/components/src/themes/snappy/components/templates/index.js +10 -0
- package/dist/cjs/components/src/themes/themeComponents/chat.js +14 -0
- package/dist/cjs/components/src/themes/themeComponents/chatButton.js +9 -0
- package/dist/cjs/components/src/utilities/Colour/Colour.js +41 -0
- package/dist/cjs/components/src/utilities/snapify.js +27 -0
- package/dist/cjs/src/Snap.js +70 -0
- package/dist/cjs/src/Templates/SnapTemplates.js +55 -5
- package/dist/cjs/src/Templates/Stores/LibraryStore.js +51 -1
- package/dist/cjs/src/Templates/Stores/TemplateStore.js +2 -1
- package/dist/cjs/src/Templates/Stores/library/components/Chat.js +5 -0
- package/dist/cjs/src/Templates/Stores/library/components/ChatButton.js +5 -0
- package/dist/cjs/src/Templates/Stores/library/languages/es.js +487 -8
- package/dist/cjs/src/Templates/Stores/library/languages/fr.js +487 -8
- package/dist/cjs/src/create/createChatController.js +30 -0
- package/dist/cjs/src/create/index.js +3 -1
- package/dist/cjs/src/setupEvents.js +44 -0
- package/dist/cjs/src/utils/applyChatTargetInject.js +25 -0
- package/dist/cjs/src/utils/index.js +3 -1
- package/dist/esm/components/src/components/Atoms/Button/Button.d.ts +3 -1
- package/dist/esm/components/src/components/Atoms/Button/Button.d.ts.map +1 -1
- package/dist/esm/components/src/components/Atoms/ChatLoadingIndicator/ChatLoadingIndicator.d.ts +17 -0
- package/dist/esm/components/src/components/Atoms/ChatLoadingIndicator/ChatLoadingIndicator.d.ts.map +1 -0
- package/dist/esm/components/src/components/Atoms/ChatLoadingIndicator/ChatLoadingIndicator.js +92 -0
- package/dist/esm/components/src/components/Atoms/ChatLoadingIndicator/index.d.ts +2 -0
- package/dist/esm/components/src/components/Atoms/ChatLoadingIndicator/index.d.ts.map +1 -0
- package/dist/esm/components/src/components/Atoms/ChatLoadingIndicator/index.js +1 -0
- package/dist/esm/components/src/components/Atoms/Dropdown/Dropdown.d.ts +6 -1
- package/dist/esm/components/src/components/Atoms/Dropdown/Dropdown.d.ts.map +1 -1
- package/dist/esm/components/src/components/Atoms/Dropdown/Dropdown.js +57 -12
- package/dist/esm/components/src/components/Atoms/Icon/paths.d.ts +13 -0
- package/dist/esm/components/src/components/Atoms/Icon/paths.d.ts.map +1 -1
- package/dist/esm/components/src/components/Atoms/Icon/paths.js +13 -0
- package/dist/esm/components/src/components/Molecules/ChatAttachmentContext/ChatAttachmentContext.d.ts +30 -0
- package/dist/esm/components/src/components/Molecules/ChatAttachmentContext/ChatAttachmentContext.d.ts.map +1 -0
- package/dist/esm/components/src/components/Molecules/ChatAttachmentContext/ChatAttachmentContext.js +215 -0
- package/dist/esm/components/src/components/Molecules/ChatAttachmentContext/index.d.ts +2 -0
- package/dist/esm/components/src/components/Molecules/ChatAttachmentContext/index.d.ts.map +1 -0
- package/dist/esm/components/src/components/Molecules/ChatAttachmentContext/index.js +1 -0
- package/dist/esm/components/src/components/Molecules/ChatInspirationResultMessage/ChatInspirationResultMessage.d.ts +19 -0
- package/dist/esm/components/src/components/Molecules/ChatInspirationResultMessage/ChatInspirationResultMessage.d.ts.map +1 -0
- package/dist/esm/components/src/components/Molecules/ChatInspirationResultMessage/ChatInspirationResultMessage.js +203 -0
- package/dist/esm/components/src/components/Molecules/ChatInspirationResultMessage/index.d.ts +2 -0
- package/dist/esm/components/src/components/Molecules/ChatInspirationResultMessage/index.d.ts.map +1 -0
- package/dist/esm/components/src/components/Molecules/ChatInspirationResultMessage/index.js +1 -0
- package/dist/esm/components/src/components/Molecules/ChatMessageText/ChatMessageText.d.ts +36 -0
- package/dist/esm/components/src/components/Molecules/ChatMessageText/ChatMessageText.d.ts.map +1 -0
- package/dist/esm/components/src/components/Molecules/ChatMessageText/ChatMessageText.js +252 -0
- package/dist/esm/components/src/components/Molecules/ChatMessageText/index.d.ts +2 -0
- package/dist/esm/components/src/components/Molecules/ChatMessageText/index.d.ts.map +1 -0
- package/dist/esm/components/src/components/Molecules/ChatMessageText/index.js +1 -0
- package/dist/esm/components/src/components/Molecules/ChatMessageUser/ChatMessageUser.d.ts +38 -0
- package/dist/esm/components/src/components/Molecules/ChatMessageUser/ChatMessageUser.d.ts.map +1 -0
- package/dist/esm/components/src/components/Molecules/ChatMessageUser/ChatMessageUser.js +276 -0
- package/dist/esm/components/src/components/Molecules/ChatMessageUser/index.d.ts +2 -0
- package/dist/esm/components/src/components/Molecules/ChatMessageUser/index.d.ts.map +1 -0
- package/dist/esm/components/src/components/Molecules/ChatMessageUser/index.js +1 -0
- package/dist/esm/components/src/components/Molecules/ChatProductComparisonMessage/ChatProductComparisonMessage.d.ts +19 -0
- package/dist/esm/components/src/components/Molecules/ChatProductComparisonMessage/ChatProductComparisonMessage.d.ts.map +1 -0
- package/dist/esm/components/src/components/Molecules/ChatProductComparisonMessage/ChatProductComparisonMessage.js +167 -0
- package/dist/esm/components/src/components/Molecules/ChatProductComparisonMessage/index.d.ts +2 -0
- package/dist/esm/components/src/components/Molecules/ChatProductComparisonMessage/index.d.ts.map +1 -0
- package/dist/esm/components/src/components/Molecules/ChatProductComparisonMessage/index.js +1 -0
- package/dist/esm/components/src/components/Molecules/ChatProductQueryMessage/ChatProductQueryMessage.d.ts +38 -0
- package/dist/esm/components/src/components/Molecules/ChatProductQueryMessage/ChatProductQueryMessage.d.ts.map +1 -0
- package/dist/esm/components/src/components/Molecules/ChatProductQueryMessage/ChatProductQueryMessage.js +571 -0
- package/dist/esm/components/src/components/Molecules/ChatProductQueryMessage/index.d.ts +2 -0
- package/dist/esm/components/src/components/Molecules/ChatProductQueryMessage/index.d.ts.map +1 -0
- package/dist/esm/components/src/components/Molecules/ChatProductQueryMessage/index.js +1 -0
- package/dist/esm/components/src/components/Molecules/ChatResult/ChatResult.d.ts +35 -0
- package/dist/esm/components/src/components/Molecules/ChatResult/ChatResult.d.ts.map +1 -0
- package/dist/esm/components/src/components/Molecules/ChatResult/ChatResult.js +246 -0
- package/dist/esm/components/src/components/Molecules/ChatResult/index.d.ts +2 -0
- package/dist/esm/components/src/components/Molecules/ChatResult/index.d.ts.map +1 -0
- package/dist/esm/components/src/components/Molecules/ChatResult/index.js +1 -0
- package/dist/esm/components/src/components/Molecules/ChatResultsDisplay/ChatResultsDisplay.d.ts +24 -0
- package/dist/esm/components/src/components/Molecules/ChatResultsDisplay/ChatResultsDisplay.d.ts.map +1 -0
- package/dist/esm/components/src/components/Molecules/ChatResultsDisplay/ChatResultsDisplay.js +107 -0
- package/dist/esm/components/src/components/Molecules/ChatResultsDisplay/index.d.ts +2 -0
- package/dist/esm/components/src/components/Molecules/ChatResultsDisplay/index.d.ts.map +1 -0
- package/dist/esm/components/src/components/Molecules/ChatResultsDisplay/index.js +1 -0
- package/dist/esm/components/src/components/Molecules/ChatSuggestedQuestions/ChatSuggestedQuestions.d.ts +16 -0
- package/dist/esm/components/src/components/Molecules/ChatSuggestedQuestions/ChatSuggestedQuestions.d.ts.map +1 -0
- package/dist/esm/components/src/components/Molecules/ChatSuggestedQuestions/ChatSuggestedQuestions.js +101 -0
- package/dist/esm/components/src/components/Molecules/ChatSuggestedQuestions/index.d.ts +2 -0
- package/dist/esm/components/src/components/Molecules/ChatSuggestedQuestions/index.d.ts.map +1 -0
- package/dist/esm/components/src/components/Molecules/ChatSuggestedQuestions/index.js +1 -0
- package/dist/esm/components/src/components/Molecules/OverlayBadge/OverlayBadge.d.ts +2 -2
- package/dist/esm/components/src/components/Molecules/OverlayBadge/OverlayBadge.d.ts.map +1 -1
- package/dist/esm/components/src/components/Molecules/Result/Result.d.ts +7 -3
- package/dist/esm/components/src/components/Molecules/Result/Result.d.ts.map +1 -1
- package/dist/esm/components/src/components/Molecules/Result/Result.js +53 -6
- package/dist/esm/components/src/components/Molecules/SearchInput/SearchInput.d.ts +3 -0
- package/dist/esm/components/src/components/Molecules/SearchInput/SearchInput.d.ts.map +1 -1
- package/dist/esm/components/src/components/Molecules/SearchInput/SearchInput.js +28 -2
- package/dist/esm/components/src/components/Molecules/Slideout/Slideout.d.ts.map +1 -1
- package/dist/esm/components/src/components/Molecules/Slideout/Slideout.js +25 -29
- package/dist/esm/components/src/components/Molecules/Slideshow/Slideshow.d.ts.map +1 -1
- package/dist/esm/components/src/components/Molecules/Slideshow/Slideshow.js +5 -1
- package/dist/esm/components/src/components/Organisms/Chat/Chat.d.ts +41 -0
- package/dist/esm/components/src/components/Organisms/Chat/Chat.d.ts.map +1 -0
- package/dist/esm/components/src/components/Organisms/Chat/Chat.js +615 -0
- package/dist/esm/components/src/components/Organisms/Chat/Chat.lang.d.ts +76 -0
- package/dist/esm/components/src/components/Organisms/Chat/Chat.lang.d.ts.map +1 -0
- package/dist/esm/components/src/components/Organisms/Chat/Chat.lang.js +100 -0
- package/dist/esm/components/src/components/Organisms/Chat/components/ChatAttachments.d.ts +26 -0
- package/dist/esm/components/src/components/Organisms/Chat/components/ChatAttachments.d.ts.map +1 -0
- package/dist/esm/components/src/components/Organisms/Chat/components/ChatAttachments.js +98 -0
- package/dist/esm/components/src/components/Organisms/Chat/components/ChatComparisonsTray.d.ts +13 -0
- package/dist/esm/components/src/components/Organisms/Chat/components/ChatComparisonsTray.d.ts.map +1 -0
- package/dist/esm/components/src/components/Organisms/Chat/components/ChatComparisonsTray.js +155 -0
- package/dist/esm/components/src/components/Organisms/Chat/components/ChatComposer.d.ts +19 -0
- package/dist/esm/components/src/components/Organisms/Chat/components/ChatComposer.d.ts.map +1 -0
- package/dist/esm/components/src/components/Organisms/Chat/components/ChatComposer.js +160 -0
- package/dist/esm/components/src/components/Organisms/Chat/components/ChatFacetsBar.d.ts +18 -0
- package/dist/esm/components/src/components/Organisms/Chat/components/ChatFacetsBar.d.ts.map +1 -0
- package/dist/esm/components/src/components/Organisms/Chat/components/ChatFacetsBar.js +363 -0
- package/dist/esm/components/src/components/Organisms/Chat/components/ChatHistory.d.ts +11 -0
- package/dist/esm/components/src/components/Organisms/Chat/components/ChatHistory.d.ts.map +1 -0
- package/dist/esm/components/src/components/Organisms/Chat/components/ChatHistory.js +124 -0
- package/dist/esm/components/src/components/Organisms/Chat/components/ChatMessages.d.ts +30 -0
- package/dist/esm/components/src/components/Organisms/Chat/components/ChatMessages.d.ts.map +1 -0
- package/dist/esm/components/src/components/Organisms/Chat/components/ChatMessages.js +212 -0
- package/dist/esm/components/src/components/Organisms/Chat/components/ChatSessionFeedback.d.ts +13 -0
- package/dist/esm/components/src/components/Organisms/Chat/components/ChatSessionFeedback.d.ts.map +1 -0
- package/dist/esm/components/src/components/Organisms/Chat/components/ChatSessionFeedback.js +117 -0
- package/dist/esm/components/src/components/Organisms/Chat/components/ChatSideChat.d.ts +19 -0
- package/dist/esm/components/src/components/Organisms/Chat/components/ChatSideChat.d.ts.map +1 -0
- package/dist/esm/components/src/components/Organisms/Chat/components/ChatSideChat.js +167 -0
- package/dist/esm/components/src/components/Organisms/Chat/components/ChatTopicDrift.d.ts +14 -0
- package/dist/esm/components/src/components/Organisms/Chat/components/ChatTopicDrift.d.ts.map +1 -0
- package/dist/esm/components/src/components/Organisms/Chat/components/ChatTopicDrift.js +143 -0
- package/dist/esm/components/src/components/Organisms/Chat/components/chatAccentTheme.d.ts +15 -0
- package/dist/esm/components/src/components/Organisms/Chat/components/chatAccentTheme.d.ts.map +1 -0
- package/dist/esm/components/src/components/Organisms/Chat/components/chatAccentTheme.js +56 -0
- package/dist/esm/components/src/components/Organisms/Chat/hooks/useChatFileUpload.d.ts +32 -0
- package/dist/esm/components/src/components/Organisms/Chat/hooks/useChatFileUpload.d.ts.map +1 -0
- package/dist/esm/components/src/components/Organisms/Chat/hooks/useChatFileUpload.js +62 -0
- package/dist/esm/components/src/components/Organisms/Chat/hooks/useChatGestures.d.ts +40 -0
- package/dist/esm/components/src/components/Organisms/Chat/hooks/useChatGestures.d.ts.map +1 -0
- package/dist/esm/components/src/components/Organisms/Chat/hooks/useChatGestures.js +92 -0
- package/dist/esm/components/src/components/Organisms/Chat/hooks/useChatOverflow.d.ts +43 -0
- package/dist/esm/components/src/components/Organisms/Chat/hooks/useChatOverflow.d.ts.map +1 -0
- package/dist/esm/components/src/components/Organisms/Chat/hooks/useChatOverflow.js +109 -0
- package/dist/esm/components/src/components/Organisms/Chat/hooks/useChatScrollLock.d.ts +26 -0
- package/dist/esm/components/src/components/Organisms/Chat/hooks/useChatScrollLock.d.ts.map +1 -0
- package/dist/esm/components/src/components/Organisms/Chat/hooks/useChatScrollLock.js +131 -0
- package/dist/esm/components/src/components/Organisms/Chat/index.d.ts +3 -0
- package/dist/esm/components/src/components/Organisms/Chat/index.d.ts.map +1 -0
- package/dist/esm/components/src/components/Organisms/Chat/index.js +2 -0
- package/dist/esm/components/src/components/Organisms/ChatButton/ChatButton.d.ts +18 -0
- package/dist/esm/components/src/components/Organisms/ChatButton/ChatButton.d.ts.map +1 -0
- package/dist/esm/components/src/components/Organisms/ChatButton/ChatButton.js +88 -0
- package/dist/esm/components/src/components/Organisms/ChatButton/ChatButton.lang.d.ts +7 -0
- package/dist/esm/components/src/components/Organisms/ChatButton/ChatButton.lang.d.ts.map +1 -0
- package/dist/esm/components/src/components/Organisms/ChatButton/ChatButton.lang.js +8 -0
- package/dist/esm/components/src/components/Organisms/ChatButton/index.d.ts +3 -0
- package/dist/esm/components/src/components/Organisms/ChatButton/index.d.ts.map +1 -0
- package/dist/esm/components/src/components/Organisms/ChatButton/index.js +2 -0
- package/dist/esm/components/src/components/Organisms/Facet/Facet.d.ts.map +1 -1
- package/dist/esm/components/src/components/Organisms/Facet/Facet.js +1 -5
- package/dist/esm/components/src/components/Organisms/Results/Results.js +1 -1
- package/dist/esm/components/src/components/Templates/AutocompleteFixed/AutocompleteFixed.d.ts.map +1 -1
- package/dist/esm/components/src/components/Templates/AutocompleteFixed/AutocompleteFixed.js +5 -0
- package/dist/esm/components/src/components/Templates/AutocompleteModal/AutocompleteModal.d.ts.map +1 -1
- package/dist/esm/components/src/components/Templates/AutocompleteModal/AutocompleteModal.js +5 -0
- package/dist/esm/components/src/components/Templates/AutocompleteSlideout/AutocompleteSlideout.d.ts.map +1 -1
- package/dist/esm/components/src/components/Templates/AutocompleteSlideout/AutocompleteSlideout.js +5 -0
- package/dist/esm/components/src/components/Templates/Chat/Chat.d.ts +12 -0
- package/dist/esm/components/src/components/Templates/Chat/Chat.d.ts.map +1 -0
- package/dist/esm/components/src/components/Templates/Chat/Chat.js +41 -0
- package/dist/esm/components/src/components/Templates/Chat/index.d.ts +2 -0
- package/dist/esm/components/src/components/Templates/Chat/index.d.ts.map +1 -0
- package/dist/esm/components/src/components/Templates/Chat/index.js +1 -0
- package/dist/esm/components/src/components/Templates/ChatButton/ChatButton.d.ts +13 -0
- package/dist/esm/components/src/components/Templates/ChatButton/ChatButton.d.ts.map +1 -0
- package/dist/esm/components/src/components/Templates/ChatButton/ChatButton.js +41 -0
- package/dist/esm/components/src/components/Templates/ChatButton/index.d.ts +2 -0
- package/dist/esm/components/src/components/Templates/ChatButton/index.d.ts.map +1 -0
- package/dist/esm/components/src/components/Templates/ChatButton/index.js +1 -0
- package/dist/esm/components/src/index.d.ts +14 -0
- package/dist/esm/components/src/index.d.ts.map +1 -1
- package/dist/esm/components/src/index.js +14 -0
- package/dist/esm/components/src/providers/langComponents.d.ts +20 -0
- package/dist/esm/components/src/providers/langComponents.d.ts.map +1 -1
- package/dist/esm/components/src/providers/themeComponents.d.ts +203 -1
- package/dist/esm/components/src/providers/themeComponents.d.ts.map +1 -1
- package/dist/esm/components/src/providers/themeComponents.js +20 -0
- package/dist/esm/components/src/providers/withTracking.d.ts +2 -2
- package/dist/esm/components/src/providers/withTracking.d.ts.map +1 -1
- package/dist/esm/components/src/setupTests.js +14 -0
- package/dist/esm/components/src/themes/base/components/templates/chat.d.ts +4 -0
- package/dist/esm/components/src/themes/base/components/templates/chat.d.ts.map +1 -0
- package/dist/esm/components/src/themes/base/components/templates/chat.js +3 -0
- package/dist/esm/components/src/themes/base/components/templates/chatButton.d.ts +4 -0
- package/dist/esm/components/src/themes/base/components/templates/chatButton.d.ts.map +1 -0
- package/dist/esm/components/src/themes/base/components/templates/chatButton.js +3 -0
- package/dist/esm/components/src/themes/base/components/templates/index.d.ts.map +1 -1
- package/dist/esm/components/src/themes/base/components/templates/index.js +10 -0
- package/dist/esm/components/src/themes/bocachica/components/templates/chat.d.ts +4 -0
- package/dist/esm/components/src/themes/bocachica/components/templates/chat.d.ts.map +1 -0
- package/dist/esm/components/src/themes/bocachica/components/templates/chat.js +3 -0
- package/dist/esm/components/src/themes/bocachica/components/templates/chatButton.d.ts +4 -0
- package/dist/esm/components/src/themes/bocachica/components/templates/chatButton.d.ts.map +1 -0
- package/dist/esm/components/src/themes/bocachica/components/templates/chatButton.js +3 -0
- package/dist/esm/components/src/themes/bocachica/components/templates/index.d.ts.map +1 -1
- package/dist/esm/components/src/themes/bocachica/components/templates/index.js +10 -0
- package/dist/esm/components/src/themes/pike/components/templates/chat.d.ts +4 -0
- package/dist/esm/components/src/themes/pike/components/templates/chat.d.ts.map +1 -0
- package/dist/esm/components/src/themes/pike/components/templates/chat.js +3 -0
- package/dist/esm/components/src/themes/pike/components/templates/chatButton.d.ts +4 -0
- package/dist/esm/components/src/themes/pike/components/templates/chatButton.d.ts.map +1 -0
- package/dist/esm/components/src/themes/pike/components/templates/chatButton.js +3 -0
- package/dist/esm/components/src/themes/pike/components/templates/index.d.ts.map +1 -1
- package/dist/esm/components/src/themes/pike/components/templates/index.js +10 -0
- package/dist/esm/components/src/themes/snapnco/components/templates/chat.d.ts +4 -0
- package/dist/esm/components/src/themes/snapnco/components/templates/chat.d.ts.map +1 -0
- package/dist/esm/components/src/themes/snapnco/components/templates/chat.js +3 -0
- package/dist/esm/components/src/themes/snapnco/components/templates/chatButton.d.ts +4 -0
- package/dist/esm/components/src/themes/snapnco/components/templates/chatButton.d.ts.map +1 -0
- package/dist/esm/components/src/themes/snapnco/components/templates/chatButton.js +3 -0
- package/dist/esm/components/src/themes/snapnco/components/templates/index.d.ts.map +1 -1
- package/dist/esm/components/src/themes/snapnco/components/templates/index.js +10 -0
- package/dist/esm/components/src/themes/snappy/components/templates/chat.d.ts +4 -0
- package/dist/esm/components/src/themes/snappy/components/templates/chat.d.ts.map +1 -0
- package/dist/esm/components/src/themes/snappy/components/templates/chat.js +3 -0
- package/dist/esm/components/src/themes/snappy/components/templates/chatButton.d.ts +4 -0
- package/dist/esm/components/src/themes/snappy/components/templates/chatButton.d.ts.map +1 -0
- package/dist/esm/components/src/themes/snappy/components/templates/chatButton.js +3 -0
- package/dist/esm/components/src/themes/snappy/components/templates/index.d.ts.map +1 -1
- package/dist/esm/components/src/themes/snappy/components/templates/index.js +10 -0
- package/dist/esm/components/src/themes/themeComponents/chat.d.ts +4 -0
- package/dist/esm/components/src/themes/themeComponents/chat.d.ts.map +1 -0
- package/dist/esm/components/src/themes/themeComponents/chat.js +11 -0
- package/dist/esm/components/src/themes/themeComponents/chatButton.d.ts +4 -0
- package/dist/esm/components/src/themes/themeComponents/chatButton.d.ts.map +1 -0
- package/dist/esm/components/src/themes/themeComponents/chatButton.js +6 -0
- package/dist/esm/components/src/utilities/Colour/Colour.d.ts +15 -0
- package/dist/esm/components/src/utilities/Colour/Colour.d.ts.map +1 -1
- package/dist/esm/components/src/utilities/Colour/Colour.js +41 -0
- package/dist/esm/components/src/utilities/snapify.d.ts +3 -2
- package/dist/esm/components/src/utilities/snapify.d.ts.map +1 -1
- package/dist/esm/components/src/utilities/snapify.js +29 -2
- package/dist/esm/src/Snap.d.ts +2 -1
- package/dist/esm/src/Snap.d.ts.map +1 -1
- package/dist/esm/src/Snap.js +71 -1
- package/dist/esm/src/Templates/SnapTemplates.d.ts +2 -1
- package/dist/esm/src/Templates/SnapTemplates.d.ts.map +1 -1
- package/dist/esm/src/Templates/SnapTemplates.js +54 -5
- package/dist/esm/src/Templates/Stores/LibraryStore.d.ts +43 -0
- package/dist/esm/src/Templates/Stores/LibraryStore.d.ts.map +1 -1
- package/dist/esm/src/Templates/Stores/LibraryStore.js +51 -1
- package/dist/esm/src/Templates/Stores/TemplateStore.d.ts +19 -4
- package/dist/esm/src/Templates/Stores/TemplateStore.d.ts.map +1 -1
- package/dist/esm/src/Templates/Stores/TemplateStore.js +2 -1
- package/dist/esm/src/Templates/Stores/library/components/Chat.d.ts +2 -0
- package/dist/esm/src/Templates/Stores/library/components/Chat.d.ts.map +1 -0
- package/dist/esm/src/Templates/Stores/library/components/Chat.js +1 -0
- package/dist/esm/src/Templates/Stores/library/components/ChatButton.d.ts +2 -0
- package/dist/esm/src/Templates/Stores/library/components/ChatButton.d.ts.map +1 -0
- package/dist/esm/src/Templates/Stores/library/components/ChatButton.js +1 -0
- package/dist/esm/src/Templates/Stores/library/languages/es.d.ts.map +1 -1
- package/dist/esm/src/Templates/Stores/library/languages/es.js +487 -8
- package/dist/esm/src/Templates/Stores/library/languages/fr.d.ts.map +1 -1
- package/dist/esm/src/Templates/Stores/library/languages/fr.js +487 -8
- package/dist/esm/src/create/createChatController.d.ts +5 -0
- package/dist/esm/src/create/createChatController.d.ts.map +1 -0
- package/dist/esm/src/create/createChatController.js +28 -0
- package/dist/esm/src/create/index.d.ts +1 -0
- package/dist/esm/src/create/index.d.ts.map +1 -1
- package/dist/esm/src/create/index.js +1 -0
- package/dist/esm/src/setupEvents.d.ts +13 -0
- package/dist/esm/src/setupEvents.d.ts.map +1 -1
- package/dist/esm/src/setupEvents.js +44 -0
- package/dist/esm/src/types.d.ts +13 -3
- package/dist/esm/src/types.d.ts.map +1 -1
- package/dist/esm/src/utils/applyChatTargetInject.d.ts +3 -0
- package/dist/esm/src/utils/applyChatTargetInject.d.ts.map +1 -0
- package/dist/esm/src/utils/applyChatTargetInject.js +22 -0
- package/dist/esm/src/utils/index.d.ts +1 -0
- package/dist/esm/src/utils/index.d.ts.map +1 -1
- package/dist/esm/src/utils/index.js +1 -0
- package/package.json +14 -12
|
@@ -15,8 +15,12 @@ const searchCollapsible_1 = require("./searchCollapsible");
|
|
|
15
15
|
const autocompleteSlideout_1 = require("./autocompleteSlideout");
|
|
16
16
|
const autocompleteModal_1 = require("./autocompleteModal");
|
|
17
17
|
const autocompleteFixed_1 = require("./autocompleteFixed");
|
|
18
|
+
const chat_1 = require("./chat");
|
|
19
|
+
const chatButton_1 = require("./chatButton");
|
|
18
20
|
exports.templates = {
|
|
19
21
|
default: {
|
|
22
|
+
...chat_1.chat.default,
|
|
23
|
+
...chatButton_1.chatButton.default,
|
|
20
24
|
...autocompleteSlideout_1.autocompleteSlideout.default,
|
|
21
25
|
...autocompleteModal_1.autocompleteModal.default,
|
|
22
26
|
...autocompleteFixed_1.autocompleteFixed.default,
|
|
@@ -32,6 +36,8 @@ exports.templates = {
|
|
|
32
36
|
...searchHorizontal_1.searchHorizontal.default,
|
|
33
37
|
},
|
|
34
38
|
mobile: {
|
|
39
|
+
...chat_1.chat.mobile,
|
|
40
|
+
...chatButton_1.chatButton.mobile,
|
|
35
41
|
...autocompleteSlideout_1.autocompleteSlideout.mobile,
|
|
36
42
|
...autocompleteModal_1.autocompleteModal.mobile,
|
|
37
43
|
...autocompleteFixed_1.autocompleteFixed.mobile,
|
|
@@ -47,6 +53,8 @@ exports.templates = {
|
|
|
47
53
|
...searchHorizontal_1.searchHorizontal.mobile,
|
|
48
54
|
},
|
|
49
55
|
tablet: {
|
|
56
|
+
...chat_1.chat.tablet,
|
|
57
|
+
...chatButton_1.chatButton.tablet,
|
|
50
58
|
...autocompleteSlideout_1.autocompleteSlideout.tablet,
|
|
51
59
|
...autocompleteModal_1.autocompleteModal.tablet,
|
|
52
60
|
...autocompleteFixed_1.autocompleteFixed.tablet,
|
|
@@ -62,6 +70,8 @@ exports.templates = {
|
|
|
62
70
|
...searchHorizontal_1.searchHorizontal.tablet,
|
|
63
71
|
},
|
|
64
72
|
desktop: {
|
|
73
|
+
...chat_1.chat.desktop,
|
|
74
|
+
...chatButton_1.chatButton.desktop,
|
|
65
75
|
...autocompleteSlideout_1.autocompleteSlideout.desktop,
|
|
66
76
|
...autocompleteModal_1.autocompleteModal.desktop,
|
|
67
77
|
...autocompleteFixed_1.autocompleteFixed.desktop,
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.chatButton = void 0;
|
|
4
|
+
const chatButton_1 = require("../../../themeComponents/chatButton");
|
|
5
|
+
// ChatButton component props come from Template export
|
|
6
|
+
exports.chatButton = chatButton_1.chatButtonThemeComponentProps;
|
|
@@ -15,8 +15,12 @@ const searchCollapsible_1 = require("./searchCollapsible");
|
|
|
15
15
|
const autocompleteSlideout_1 = require("./autocompleteSlideout");
|
|
16
16
|
const autocompleteModal_1 = require("./autocompleteModal");
|
|
17
17
|
const autocompleteFixed_1 = require("./autocompleteFixed");
|
|
18
|
+
const chat_1 = require("./chat");
|
|
19
|
+
const chatButton_1 = require("./chatButton");
|
|
18
20
|
exports.templates = {
|
|
19
21
|
default: {
|
|
22
|
+
...chat_1.chat.default,
|
|
23
|
+
...chatButton_1.chatButton.default,
|
|
20
24
|
...autocompleteSlideout_1.autocompleteSlideout.default,
|
|
21
25
|
...autocompleteModal_1.autocompleteModal.default,
|
|
22
26
|
...autocompleteFixed_1.autocompleteFixed.default,
|
|
@@ -32,6 +36,8 @@ exports.templates = {
|
|
|
32
36
|
...searchHorizontal_1.searchHorizontal.default,
|
|
33
37
|
},
|
|
34
38
|
mobile: {
|
|
39
|
+
...chat_1.chat.mobile,
|
|
40
|
+
...chatButton_1.chatButton.mobile,
|
|
35
41
|
...autocompleteSlideout_1.autocompleteSlideout.mobile,
|
|
36
42
|
...autocompleteModal_1.autocompleteModal.mobile,
|
|
37
43
|
...autocompleteFixed_1.autocompleteFixed.mobile,
|
|
@@ -47,6 +53,8 @@ exports.templates = {
|
|
|
47
53
|
...searchHorizontal_1.searchHorizontal.mobile,
|
|
48
54
|
},
|
|
49
55
|
tablet: {
|
|
56
|
+
...chat_1.chat.tablet,
|
|
57
|
+
...chatButton_1.chatButton.tablet,
|
|
50
58
|
...autocompleteSlideout_1.autocompleteSlideout.tablet,
|
|
51
59
|
...autocompleteModal_1.autocompleteModal.tablet,
|
|
52
60
|
...autocompleteFixed_1.autocompleteFixed.tablet,
|
|
@@ -62,6 +70,8 @@ exports.templates = {
|
|
|
62
70
|
...searchHorizontal_1.searchHorizontal.tablet,
|
|
63
71
|
},
|
|
64
72
|
desktop: {
|
|
73
|
+
...chat_1.chat.desktop,
|
|
74
|
+
...chatButton_1.chatButton.desktop,
|
|
65
75
|
...autocompleteSlideout_1.autocompleteSlideout.desktop,
|
|
66
76
|
...autocompleteModal_1.autocompleteModal.desktop,
|
|
67
77
|
...autocompleteFixed_1.autocompleteFixed.desktop,
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.chatThemeComponentProps = void 0;
|
|
4
|
+
exports.chatThemeComponentProps = {
|
|
5
|
+
default: {
|
|
6
|
+
chat: {
|
|
7
|
+
position: 'right',
|
|
8
|
+
offset: '20px',
|
|
9
|
+
},
|
|
10
|
+
},
|
|
11
|
+
mobile: {},
|
|
12
|
+
tablet: {},
|
|
13
|
+
desktop: {},
|
|
14
|
+
};
|
|
@@ -102,6 +102,27 @@ class Colour {
|
|
|
102
102
|
return this;
|
|
103
103
|
return new Colour(Colour.opacity(this.hex, -offset));
|
|
104
104
|
}
|
|
105
|
+
/** Returns a hex string mixed linearly toward black. `amount` is a 0-1 proportion of
|
|
106
|
+
* black in the result — note this differs from `darken(offset)`, which takes a 0-100
|
|
107
|
+
* offset and returns a chainable `Colour`. 0.9 yields a near-black with a slight tint. */
|
|
108
|
+
mixBlack(amount = 0.3) {
|
|
109
|
+
return Colour.mixToward(this.hex, '#000000', amount) ?? this.hex ?? '';
|
|
110
|
+
}
|
|
111
|
+
/** Returns a hex string mixed linearly toward white. `amount` is a 0-1 proportion of
|
|
112
|
+
* white in the result — note this differs from `lighten(offset)`, which takes a 0-100
|
|
113
|
+
* offset and returns a chainable `Colour`. 0.9 yields a near-white with a slight tint. */
|
|
114
|
+
mixWhite(amount = 0.3) {
|
|
115
|
+
return Colour.mixToward(this.hex, '#ffffff', amount) ?? this.hex ?? '';
|
|
116
|
+
}
|
|
117
|
+
/** Returns the color only if it is a concrete value that can be manipulated and paired with
|
|
118
|
+
* other colors. Contextual CSS keywords (currentColor and the CSS-wide keywords) resolve
|
|
119
|
+
* against surrounding styles, so they would defeat `|| fallback` chains — those return undefined. */
|
|
120
|
+
static concrete(color) {
|
|
121
|
+
if (!color || ['currentcolor', 'inherit', 'initial', 'unset', 'revert'].includes(color.toLowerCase())) {
|
|
122
|
+
return undefined;
|
|
123
|
+
}
|
|
124
|
+
return color;
|
|
125
|
+
}
|
|
105
126
|
static isRgb(color) {
|
|
106
127
|
return Boolean(color.match(/^rgba?\([0-9]{1,3}[\s,\,]+[0-9]{1,3}[\s,\,]+[0-9]{1,3}[\s,\,]*\)$/i) ||
|
|
107
128
|
color.match(/^rgba?\([0-9]{1,3}[\s,\,]+[0-9]{1,3}[\s,\,]+[0-9]{1,3}[\s,\,]+0?\.?[0-9]+%?[\s,\,]*\)$/i));
|
|
@@ -170,6 +191,26 @@ class Colour {
|
|
|
170
191
|
}
|
|
171
192
|
return hexValue;
|
|
172
193
|
}
|
|
194
|
+
/** Linear RGB mix between two hex colors. `amount` (0-1) is the proportion of `towardHex`
|
|
195
|
+
* in the result. Returns the source `hex` unchanged when either input is invalid. */
|
|
196
|
+
static mixToward(hex, towardHex, amount) {
|
|
197
|
+
if (!hex)
|
|
198
|
+
return undefined;
|
|
199
|
+
if (!Colour.isHex(hex) || !Colour.isHex(towardHex))
|
|
200
|
+
return hex;
|
|
201
|
+
const clamped = Math.max(0, Math.min(1, amount));
|
|
202
|
+
const sourceR = parseInt(hex.slice(1, 3), 16);
|
|
203
|
+
const sourceG = parseInt(hex.slice(3, 5), 16);
|
|
204
|
+
const sourceB = parseInt(hex.slice(5, 7), 16);
|
|
205
|
+
const targetR = parseInt(towardHex.slice(1, 3), 16);
|
|
206
|
+
const targetG = parseInt(towardHex.slice(3, 5), 16);
|
|
207
|
+
const targetB = parseInt(towardHex.slice(5, 7), 16);
|
|
208
|
+
const mix = (s, t) => Math.round(s * (1 - clamped) + t * clamped);
|
|
209
|
+
const r = mix(sourceR, targetR).toString(16).padStart(2, '0');
|
|
210
|
+
const g = mix(sourceG, targetG).toString(16).padStart(2, '0');
|
|
211
|
+
const b = mix(sourceB, targetB).toString(16).padStart(2, '0');
|
|
212
|
+
return `#${r}${g}${b}`;
|
|
213
|
+
}
|
|
173
214
|
static brightness(color, offset) {
|
|
174
215
|
let isRgb = false;
|
|
175
216
|
if (color && Colour.isRgb(color)) {
|
|
@@ -45,6 +45,20 @@ class Snapify {
|
|
|
45
45
|
cntrlr.init();
|
|
46
46
|
return cntrlr;
|
|
47
47
|
}
|
|
48
|
+
static chat(config) {
|
|
49
|
+
const id = config.id;
|
|
50
|
+
if (controllers[id]) {
|
|
51
|
+
return controllers[id];
|
|
52
|
+
}
|
|
53
|
+
const cntrlr = (controllers[id] = createChatController({ client, controller: config }));
|
|
54
|
+
cntrlr.on('afterStore', async ({ controller }, next) => {
|
|
55
|
+
controller.log.debug('controller', controller);
|
|
56
|
+
controller.log.debug('store', controller.store.toJSON());
|
|
57
|
+
await next();
|
|
58
|
+
});
|
|
59
|
+
cntrlr.init();
|
|
60
|
+
return cntrlr;
|
|
61
|
+
}
|
|
48
62
|
static search(config) {
|
|
49
63
|
const id = config.id;
|
|
50
64
|
if (controllers[id]) {
|
|
@@ -87,6 +101,19 @@ function createRecommendationController(config) {
|
|
|
87
101
|
});
|
|
88
102
|
return cntrlr;
|
|
89
103
|
}
|
|
104
|
+
function createChatController(config) {
|
|
105
|
+
const urlManager = new snap_url_manager_1.UrlManager(new snap_url_manager_1.UrlTranslator(), snap_url_manager_1.reactLinker).detach(true);
|
|
106
|
+
const cntrlr = new snap_controller_1.ChatController(config.controller, {
|
|
107
|
+
client: new snap_client_1.Client(config.client.globals, config.client.config),
|
|
108
|
+
store: new snap_store_mobx_1.ChatStore({ ...config.controller, siteId: config.client.globals.siteId }, { urlManager }),
|
|
109
|
+
urlManager,
|
|
110
|
+
eventManager: new snap_event_manager_1.EventManager(),
|
|
111
|
+
profiler: new snap_profiler_1.Profiler(),
|
|
112
|
+
logger: new snap_logger_1.Logger(),
|
|
113
|
+
tracker: new snap_tracker_1.Tracker(config.client.globals),
|
|
114
|
+
});
|
|
115
|
+
return cntrlr;
|
|
116
|
+
}
|
|
90
117
|
function createAutocompleteController(config) {
|
|
91
118
|
const urlManager = new snap_url_manager_1.UrlManager(new snap_url_manager_1.UrlTranslator(), snap_url_manager_1.reactLinker).detach();
|
|
92
119
|
const cntrlr = new snap_controller_1.AutocompleteController(config.controller, {
|
package/dist/cjs/src/Snap.js
CHANGED
|
@@ -101,6 +101,9 @@ class Snap {
|
|
|
101
101
|
case snap_controller_1.ControllerTypes.recommendation:
|
|
102
102
|
importPromise = import('./create/createRecommendationController');
|
|
103
103
|
break;
|
|
104
|
+
case snap_controller_1.ControllerTypes.chat:
|
|
105
|
+
importPromise = import('./create/createChatController');
|
|
106
|
+
break;
|
|
104
107
|
case snap_controller_1.ControllerTypes.search:
|
|
105
108
|
default:
|
|
106
109
|
importPromise = import('./create/createSearchController');
|
|
@@ -544,6 +547,73 @@ class Snap {
|
|
|
544
547
|
});
|
|
545
548
|
break;
|
|
546
549
|
}
|
|
550
|
+
case 'chat': {
|
|
551
|
+
this.config.controllers[type].forEach((controller, index) => {
|
|
552
|
+
if (typeof this._controllerPromises[controller.config.id] != 'undefined') {
|
|
553
|
+
this.logger.error(`Controller with id '${controller.config.id}' is already defined`);
|
|
554
|
+
return;
|
|
555
|
+
}
|
|
556
|
+
this._controllerPromises[controller.config.id] = new Promise(async (resolve) => {
|
|
557
|
+
try {
|
|
558
|
+
// `_initialized` is only set after the awaited init fires, so two chat
|
|
559
|
+
// targeters would otherwise both re-run the init middleware
|
|
560
|
+
let initialized = false;
|
|
561
|
+
const targetFunction = async (target, elem, originalElem) => {
|
|
562
|
+
const onTarget = target.onTarget;
|
|
563
|
+
onTarget && (await onTarget(target, elem, originalElem));
|
|
564
|
+
try {
|
|
565
|
+
const importPromises = [];
|
|
566
|
+
// dynamically import the component
|
|
567
|
+
importPromises.push(target.component());
|
|
568
|
+
const importResolutions = await Promise.all(importPromises);
|
|
569
|
+
const Component = importResolutions[0];
|
|
570
|
+
setTimeout(() => {
|
|
571
|
+
(0, preact_1.render)((0, jsx_runtime_1.jsx)(Component, { controller: this.controllers[controller.config.id], snap: this, ...target.props }), elem);
|
|
572
|
+
});
|
|
573
|
+
}
|
|
574
|
+
catch (err) {
|
|
575
|
+
this.logger.error(err);
|
|
576
|
+
this.logger.error(COMPONENT_ERROR, target);
|
|
577
|
+
}
|
|
578
|
+
};
|
|
579
|
+
if (!controller?.targeters || controller?.targeters.length === 0) {
|
|
580
|
+
const cntrlr = await this._createController(snap_controller_1.ControllerTypes.chat, controller.config, controller.services, controller.url, controller.context, (cntrlr) => {
|
|
581
|
+
if (cntrlr)
|
|
582
|
+
resolve(cntrlr);
|
|
583
|
+
});
|
|
584
|
+
if (!cntrlr.initialized)
|
|
585
|
+
cntrlr.init();
|
|
586
|
+
}
|
|
587
|
+
controller?.targeters?.forEach((target, target_index) => {
|
|
588
|
+
if (!target.selector) {
|
|
589
|
+
throw new Error(`Targets at index ${target_index} missing selector value (string).`);
|
|
590
|
+
}
|
|
591
|
+
if (!target.component) {
|
|
592
|
+
throw new Error(`Targets at index ${target_index} missing component value (Component).`);
|
|
593
|
+
}
|
|
594
|
+
target = (0, utils_1.applyChatTargetInject)(target);
|
|
595
|
+
const targeter = new snap_toolbox_1.DomTargeter([{ ...target }], async (target, elem, originalElem) => {
|
|
596
|
+
const cntrlr = await this._createController(snap_controller_1.ControllerTypes.chat, controller.config, controller.services, controller.url, controller.context, (cntrlr) => {
|
|
597
|
+
if (cntrlr)
|
|
598
|
+
resolve(cntrlr);
|
|
599
|
+
});
|
|
600
|
+
if (!initialized) {
|
|
601
|
+
initialized = true;
|
|
602
|
+
if (!cntrlr.initialized)
|
|
603
|
+
cntrlr.init();
|
|
604
|
+
}
|
|
605
|
+
targetFunction({ controller: cntrlr, ...target }, elem, originalElem);
|
|
606
|
+
cntrlr.addTargeter(targeter);
|
|
607
|
+
});
|
|
608
|
+
});
|
|
609
|
+
}
|
|
610
|
+
catch (err) {
|
|
611
|
+
this.logger.error(`Failed to instantiate ${type} controller at index ${index}.`, err);
|
|
612
|
+
}
|
|
613
|
+
});
|
|
614
|
+
});
|
|
615
|
+
break;
|
|
616
|
+
}
|
|
547
617
|
case 'autocomplete': {
|
|
548
618
|
this.config.controllers[type].forEach((controller, index) => {
|
|
549
619
|
if (typeof this._controllerPromises[controller.config.id] != 'undefined') {
|
|
@@ -3,7 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.createSearchTargeters = exports.SnapTemplates = exports.applyAutomaticThemeOverrides = exports.DEFAULT_AUTOCOMPLETE_CONTROLLER_SETTINGS = exports.DEFAULT_FEATURES = exports.TEMPLATE_EDITOR_UI_PARAM = exports.TEMPLATE_EDITOR_COOKIE = void 0;
|
|
6
|
+
exports.createChatTargeters = exports.createSearchTargeters = exports.SnapTemplates = exports.applyAutomaticThemeOverrides = exports.DEFAULT_AUTOCOMPLETE_CONTROLLER_SETTINGS = exports.DEFAULT_FEATURES = exports.TEMPLATE_EDITOR_UI_PARAM = exports.TEMPLATE_EDITOR_COOKIE = void 0;
|
|
7
7
|
exports.mapBreakpoints = mapBreakpoints;
|
|
8
8
|
exports.createAutocompleteTargeters = createAutocompleteTargeters;
|
|
9
9
|
exports.createRecommendationComponentMapping = createRecommendationComponentMapping;
|
|
@@ -194,6 +194,36 @@ const createSearchTargeters = (templateConfig, templatesStore) => {
|
|
|
194
194
|
});
|
|
195
195
|
};
|
|
196
196
|
exports.createSearchTargeters = createSearchTargeters;
|
|
197
|
+
const createChatTargeters = (templateConfig, templatesStore) => {
|
|
198
|
+
// initial target configs
|
|
199
|
+
const targetConfigs = templateConfig.chat?.targets || [];
|
|
200
|
+
let mergedConfigs;
|
|
201
|
+
if (templatesStore.settings.editMode) {
|
|
202
|
+
const overrideConfigs = (templatesStore.storage.get('overrides.targets.chat') || []);
|
|
203
|
+
mergedConfigs = (0, deepmerge_1.default)(targetConfigs, overrideConfigs, { arrayMerge: utils_1.combineMerge });
|
|
204
|
+
}
|
|
205
|
+
else {
|
|
206
|
+
mergedConfigs = targetConfigs;
|
|
207
|
+
}
|
|
208
|
+
return mergedConfigs.map((targetConfig) => {
|
|
209
|
+
const target = templatesStore.addTarget({ ...targetConfig, type: 'chat' });
|
|
210
|
+
const targeter = {
|
|
211
|
+
selector: targetConfig.selector,
|
|
212
|
+
// inline selectors (e.g. a nav slot) may render after DOMContentLoaded;
|
|
213
|
+
// re-injection at already-targeted elements is prevented by DomTargeter
|
|
214
|
+
autoRetarget: true,
|
|
215
|
+
component: async () => {
|
|
216
|
+
const componentImportPromises = [];
|
|
217
|
+
componentImportPromises.push(templatesStore.library.import.component.chat[targetConfig.component]());
|
|
218
|
+
await Promise.all(componentImportPromises);
|
|
219
|
+
return TemplateSelect_1.TemplateSelect;
|
|
220
|
+
},
|
|
221
|
+
props: { target, templatesStore },
|
|
222
|
+
};
|
|
223
|
+
return (0, utils_1.applyChatTargetInject)(targeter);
|
|
224
|
+
});
|
|
225
|
+
};
|
|
226
|
+
exports.createChatTargeters = createChatTargeters;
|
|
197
227
|
function createAutocompleteTargeters(templateConfig, templatesStore) {
|
|
198
228
|
// initial target configs
|
|
199
229
|
const targetConfigs = templateConfig.autocomplete?.targets || [];
|
|
@@ -280,6 +310,7 @@ function createRecommendationComponentMapping(templateConfig, templatesStore) {
|
|
|
280
310
|
function createSnapConfig(templateConfig, templatesStore) {
|
|
281
311
|
const initiatorPrefix = window?.athos?.managed ? `managed/` : '';
|
|
282
312
|
const snapConfig = {
|
|
313
|
+
mode: templateConfig.config?.mode,
|
|
283
314
|
features: templateConfig.features || exports.DEFAULT_FEATURES,
|
|
284
315
|
client: {
|
|
285
316
|
globals: {},
|
|
@@ -402,6 +433,21 @@ function createSnapConfig(templateConfig, templatesStore) {
|
|
|
402
433
|
// }
|
|
403
434
|
snapConfig.instantiators.recommendation = recommendationInstantiatorConfig;
|
|
404
435
|
}
|
|
436
|
+
/* CHAT CONTROLLER */
|
|
437
|
+
if (templateConfig.chat && snapConfig.controllers) {
|
|
438
|
+
const chatControllerConfig = {
|
|
439
|
+
config: {
|
|
440
|
+
id: 'chat',
|
|
441
|
+
plugins: createPlugins(templateConfig, templatesStore, 'chat'),
|
|
442
|
+
settings: {
|
|
443
|
+
languageCode: templatesStore.language,
|
|
444
|
+
...(templateConfig.chat.settings || {}),
|
|
445
|
+
},
|
|
446
|
+
},
|
|
447
|
+
targeters: (0, exports.createChatTargeters)(templateConfig, templatesStore),
|
|
448
|
+
};
|
|
449
|
+
snapConfig.controllers.chat = [chatControllerConfig];
|
|
450
|
+
}
|
|
405
451
|
return snapConfig;
|
|
406
452
|
}
|
|
407
453
|
function createPlugins(templateConfig, templatesStore, controllerType) {
|
|
@@ -410,10 +456,14 @@ function createPlugins(templateConfig, templatesStore, controllerType) {
|
|
|
410
456
|
if (controllerType) {
|
|
411
457
|
controllerConfig = templateConfig[controllerType] || {};
|
|
412
458
|
}
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
459
|
+
// backgroundFilters writes `config.globals.filters`, which the chat endpoint has no
|
|
460
|
+
// field for — chat carries background filters via `settings.bgFilters` instead
|
|
461
|
+
if (controllerType !== 'chat') {
|
|
462
|
+
plugins.push([
|
|
463
|
+
templatesStore.library.import.plugins.common.backgroundFilters,
|
|
464
|
+
(0, deepmerge_1.default)(templateConfig.plugins?.common?.backgroundFilters || {}, controllerConfig?.plugins?.common?.backgroundFilters || {}),
|
|
465
|
+
]);
|
|
466
|
+
}
|
|
417
467
|
plugins.push([
|
|
418
468
|
templatesStore.library.import.plugins.common.scrollToTop,
|
|
419
469
|
(0, deepmerge_1.default)(templateConfig.plugins?.common?.scrollToTop || {}, controllerConfig?.plugins?.common?.scrollToTop || {}),
|
|
@@ -29,6 +29,26 @@ class LibraryStore {
|
|
|
29
29
|
default: {},
|
|
30
30
|
email: {},
|
|
31
31
|
},
|
|
32
|
+
chat: {},
|
|
33
|
+
chatButton: {},
|
|
34
|
+
chatLoadingIndicator: {},
|
|
35
|
+
chatAttachmentContext: {},
|
|
36
|
+
chatInspirationResultMessage: {},
|
|
37
|
+
chatMessageText: {},
|
|
38
|
+
chatMessageUser: {},
|
|
39
|
+
chatProductComparisonMessage: {},
|
|
40
|
+
chatProductQueryMessage: {},
|
|
41
|
+
chatResult: {},
|
|
42
|
+
chatResultsDisplay: {},
|
|
43
|
+
chatSuggestedQuestions: {},
|
|
44
|
+
chatComparisonsTray: {},
|
|
45
|
+
chatComposer: {},
|
|
46
|
+
chatFacetsBar: {},
|
|
47
|
+
chatHistory: {},
|
|
48
|
+
chatMessages: {},
|
|
49
|
+
chatSessionFeedback: {},
|
|
50
|
+
chatSideChat: {},
|
|
51
|
+
chatTopicDrift: {},
|
|
32
52
|
badge: {},
|
|
33
53
|
result: {},
|
|
34
54
|
overlayResult: {},
|
|
@@ -207,6 +227,33 @@ class LibraryStore {
|
|
|
207
227
|
},
|
|
208
228
|
},
|
|
209
229
|
},
|
|
230
|
+
chat: {
|
|
231
|
+
Chat: async () => {
|
|
232
|
+
return this.components.chat.Chat || (this.components.chat.Chat = (await import('./library/components/Chat')).Chat);
|
|
233
|
+
},
|
|
234
|
+
ChatButton: async () => {
|
|
235
|
+
return this.components.chat.ChatButton || (this.components.chat.ChatButton = (await import('./library/components/ChatButton')).ChatButton);
|
|
236
|
+
},
|
|
237
|
+
},
|
|
238
|
+
chatButton: {},
|
|
239
|
+
chatLoadingIndicator: {},
|
|
240
|
+
chatAttachmentContext: {},
|
|
241
|
+
chatInspirationResultMessage: {},
|
|
242
|
+
chatMessageText: {},
|
|
243
|
+
chatMessageUser: {},
|
|
244
|
+
chatProductComparisonMessage: {},
|
|
245
|
+
chatProductQueryMessage: {},
|
|
246
|
+
chatResult: {},
|
|
247
|
+
chatResultsDisplay: {},
|
|
248
|
+
chatSuggestedQuestions: {},
|
|
249
|
+
chatComparisonsTray: {},
|
|
250
|
+
chatComposer: {},
|
|
251
|
+
chatFacetsBar: {},
|
|
252
|
+
chatHistory: {},
|
|
253
|
+
chatMessages: {},
|
|
254
|
+
chatSessionFeedback: {},
|
|
255
|
+
chatSideChat: {},
|
|
256
|
+
chatTopicDrift: {},
|
|
210
257
|
badge: {},
|
|
211
258
|
result: {
|
|
212
259
|
Result: async () => {
|
|
@@ -329,7 +376,10 @@ class LibraryStore {
|
|
|
329
376
|
async addComponentImport(type, name, componentFn) {
|
|
330
377
|
// only allow certain types based on unlocked status
|
|
331
378
|
if (this.allowedComponentTypes.includes(type) && this.components[type]) {
|
|
332
|
-
|
|
379
|
+
// `chat` declares its library entry with literal keys so template targets stay
|
|
380
|
+
// literal-checked; custom overrides register by arbitrary name, hence the cast
|
|
381
|
+
const componentImports = this.import.component[type];
|
|
382
|
+
componentImports[name] = async () => {
|
|
333
383
|
return (this.components[type][name] ||
|
|
334
384
|
(this.components[type][name] = await (0, CustomComponent_1.CustomComponent)({
|
|
335
385
|
type,
|
|
@@ -25,6 +25,7 @@ class TemplatesStore {
|
|
|
25
25
|
this.targets = {
|
|
26
26
|
search: [],
|
|
27
27
|
autocomplete: [],
|
|
28
|
+
chat: [],
|
|
28
29
|
recommendation: {
|
|
29
30
|
bundle: [],
|
|
30
31
|
default: [],
|
|
@@ -219,7 +220,7 @@ function getTargetArray(targets, type) {
|
|
|
219
220
|
if (category === 'recommendation' && subcategory) {
|
|
220
221
|
return targets.recommendation[subcategory];
|
|
221
222
|
}
|
|
222
|
-
if (category === 'search' || category === 'autocomplete') {
|
|
223
|
+
if (category === 'search' || category === 'autocomplete' || category === 'chat') {
|
|
223
224
|
return targets[category];
|
|
224
225
|
}
|
|
225
226
|
return undefined;
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Chat = void 0;
|
|
4
|
+
var Chat_1 = require("../../../../../components/src/components/Templates/Chat");
|
|
5
|
+
Object.defineProperty(exports, "Chat", { enumerable: true, get: function () { return Chat_1.Chat; } });
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ChatButton = void 0;
|
|
4
|
+
var ChatButton_1 = require("../../../../../components/src/components/Templates/ChatButton");
|
|
5
|
+
Object.defineProperty(exports, "ChatButton", { enumerable: true, get: function () { return ChatButton_1.ChatButton; } });
|