@projectcor/maia-components 2.49.0 → 2.49.1-0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/App.js +44 -19
- package/lib/components/atoms/ActionableButton.spec.js +111 -0
- package/lib/components/atoms/AgentActivityIndicator/AgentActivityIndicator.spec.js +52 -0
- package/lib/components/atoms/AgentActivityIndicator/AgentActivityIndicator.utils.spec.js +11 -0
- package/lib/components/atoms/ApprovalBox/ApprovalBox.helpers.spec.js +63 -0
- package/lib/components/atoms/ApprovalBox/ApprovalBox.spec.js +183 -0
- package/lib/components/atoms/AttachmentCard/AttachmentCard.spec.js +123 -0
- package/lib/components/atoms/AttachmentCard/AttachmentCardAudio.helpers.spec.js +139 -0
- package/lib/components/atoms/AttachmentCard/AttachmentCardAudio.spec.js +385 -0
- package/lib/components/atoms/AttachmentCard/AttachmentCardImage.spec.js +78 -0
- package/lib/components/atoms/AttachmentPreviewModal/AttachmentPreviewModal.helpers.spec.js +94 -0
- package/lib/components/atoms/AttachmentPreviewModal/AttachmentPreviewModal.spec.js +396 -0
- package/lib/components/atoms/AttachmentPreviewModal/ExcelPreview.spec.js +80 -0
- package/lib/components/atoms/AttachmentPreviewModal/PptPreview.helpers.spec.js +526 -0
- package/lib/components/atoms/AttachmentPreviewModal/PptPreview.spec.js +137 -0
- package/lib/components/atoms/AttachmentPreviewModal/WordPreview.helpers.spec.js +11 -0
- package/lib/components/atoms/AttachmentPreviewModal/WordPreview.spec.js +77 -0
- package/lib/components/atoms/Backdrop/Backdrop.spec.js +28 -0
- package/lib/components/atoms/CardMenu/CardMenu.spec.js +56 -0
- package/lib/components/atoms/ChatClientSelector/ChatClientSelector.spec.js +67 -0
- package/lib/components/atoms/Checkbox/Checkbox.spec.js +27 -0
- package/lib/components/atoms/Chip/Chip.spec.js +82 -0
- package/lib/components/atoms/ChipLlm/ChipLlm.spec.js +26 -0
- package/lib/components/atoms/ClientSelector/ClientSelector.helpers.spec.js +45 -0
- package/lib/components/atoms/ClientSelector/ClientSelector.spec.js +133 -0
- package/lib/components/atoms/ContextMentionChip/ContextMentionChip.spec.js +29 -0
- package/lib/components/atoms/ContextMentionChip/MentionOverflowLabel.spec.js +46 -0
- package/lib/components/atoms/ContextMentionChip/buildChipElement.helpers.spec.js +109 -0
- package/lib/components/atoms/ContextMentionChip/buildChipElement.spec.js +81 -0
- package/lib/components/atoms/ContextMentionEditor/ContextMentionEditor.helpers.spec.js +92 -0
- package/lib/components/atoms/ContextMentionEditor/ContextMentionEditor.spec.js +319 -0
- package/lib/components/atoms/ContextMentionItem/ContextMentionItem.spec.js +107 -0
- package/lib/components/atoms/ContextMentionPopover/ContextMentionPopover.spec.js +136 -0
- package/lib/components/atoms/CopyToClipboard.spec.js +74 -0
- package/lib/components/atoms/EditableLabel/EditableLabel.spec.js +76 -0
- package/lib/components/atoms/EntitySelector/EntitySelector.spec.js +86 -0
- package/lib/components/atoms/Expand/Expand.spec.js +57 -0
- package/lib/components/atoms/Fade/Fade.spec.js +31 -0
- package/lib/components/atoms/FeedbackButton/FeedbackButton.spec.js +75 -0
- package/lib/components/atoms/FrequentlyAskedQuestions/FrequentlyAskedQuestions.spec.js +104 -0
- package/lib/components/atoms/FrequentlyUsedActions/FrequentlyUsedActions.js +3 -1
- package/lib/components/atoms/FrequentlyUsedActions/FrequentlyUsedActions.spec.js +91 -0
- package/lib/components/atoms/FrequentlyUsedActions/FrequentlyUsedActions.styles.js +19 -7
- package/lib/components/atoms/HelpButton.spec.js +87 -0
- package/lib/components/atoms/ImagePreview/ImagePreview.spec.js +96 -0
- package/lib/components/atoms/ListMenuOption/ListMenuOption.spec.js +54 -0
- package/lib/components/atoms/LoadingFaqs/LoadingFaqs.spec.js +21 -0
- package/lib/components/atoms/LoadingSearchClients/LoadingSearchClients.spec.js +20 -0
- package/lib/components/atoms/LoadingSearchProjects/LoadingSearchProjects.spec.js +26 -0
- package/lib/components/atoms/LoadingText/LoadingText.spec.js +25 -0
- package/lib/components/atoms/MAIAButton/MAIAButton.spec.js +42 -0
- package/lib/components/atoms/MAIAError/MAIAError.spec.js +27 -0
- package/lib/components/atoms/MAIAInput/MAIAInput.attachments.helpers.spec.js +113 -0
- package/lib/components/atoms/MAIAInput/MAIAInput.helpers.spec.js +381 -0
- package/lib/components/atoms/MAIAInput/MAIAInput.js +5 -3
- package/lib/components/atoms/MAIAInput/MAIAInput.spec.js +641 -0
- package/lib/components/atoms/MAIAInput/MAIAInputEditor.helpers.spec.js +92 -0
- package/lib/components/atoms/MAIAInput/MAIAInputEditor.spec.js +193 -0
- package/lib/components/atoms/MAIAInput/maiaInputLayout.spec.js +32 -0
- package/lib/components/atoms/MaiaStreamdown/MaiaStreamdown.spec.js +64 -0
- package/lib/components/atoms/MaiaWrapper/MaiaWrapper.spec.js +43 -0
- package/lib/components/atoms/MaiaWrapper/MaiaWrapperBase.spec.js +114 -0
- package/lib/components/atoms/MaiaWrapper/ModernMaiaWrapper.spec.js +51 -0
- package/lib/components/atoms/ModalClientAccess/ModalClientAccess.spec.js +48 -0
- package/lib/components/atoms/ModalProject/ModalProject.spec.js +66 -0
- package/lib/components/atoms/NextPageLoader.spec.js +37 -0
- package/lib/components/atoms/OnboardingModalButton/OnboardingModal.spec.js +20 -0
- package/lib/components/atoms/OnboardingModalButton/OnboardingModalButton.helpers.spec.js +35 -0
- package/lib/components/atoms/OnboardingModalButton/OnboardingModalButton.spec.js +47 -0
- package/lib/components/atoms/OptionAccessibility/OptionAccessibility.spec.js +146 -0
- package/lib/components/atoms/PrimaryButton.spec.js +42 -0
- package/lib/components/atoms/ProjectSelector/ProjectSelector.spec.js +69 -0
- package/lib/components/atoms/ReasoningBlock/ReasoningBlock.js +7 -2
- package/lib/components/atoms/ReasoningBlock/ReasoningBlock.spec.js +69 -0
- package/lib/components/atoms/ReasoningBlock/ReasoningBlock.styles.js +41 -24
- package/lib/components/atoms/ReasoningBlock/ReasoningSteps.js +25 -10
- package/lib/components/atoms/ReasoningBlock/ReasoningSteps.spec.js +59 -0
- package/lib/components/atoms/ReasoningBlock/ReasoningTimeline.js +78 -43
- package/lib/components/atoms/ReasoningBlock/ReasoningTimeline.spec.js +170 -0
- package/lib/components/atoms/ReasoningBlock/groupParallelSteps.js +9 -11
- package/lib/components/atoms/ReasoningBlock/groupParallelSteps.spec.js +199 -0
- package/lib/components/atoms/ReasoningBlock/reasoningLeading.spec.js +70 -0
- package/lib/components/atoms/ReasoningBlock/reasoningLiveNarration.js +37 -15
- package/lib/components/atoms/ReasoningBlock/reasoningLiveNarration.spec.js +120 -0
- package/lib/components/atoms/ReasoningBlock/reasoningMotion.js +8 -0
- package/lib/components/atoms/ReasoningBlock/reasoningTimeline.helpers.spec.js +31 -0
- package/lib/components/atoms/ReasoningBlock/useCollapsibleHeight.js +52 -0
- package/lib/components/atoms/ReasoningBlock/useCollapsibleHeight.spec.js +90 -0
- package/lib/components/atoms/ReasoningBlock/useReasoningMarkerHandoff.js +29 -0
- package/lib/components/atoms/ReasoningBlock/useReasoningMarkerHandoff.spec.js +38 -0
- package/lib/components/atoms/SessionGeneratingDot/SessionGeneratingDot.spec.js +16 -0
- package/lib/components/atoms/SkillsDropdown/SkillsDropdown.spec.js +107 -0
- package/lib/components/atoms/SlashCommandChip/SlashCommandChip.spec.js +24 -0
- package/lib/components/atoms/SlashCommandDropdown/SlashCommandDropdown.helpers.spec.js +71 -0
- package/lib/components/atoms/SlashCommandDropdown/SlashCommandDropdown.spec.js +120 -0
- package/lib/components/atoms/Switch/Switch.spec.js +41 -0
- package/lib/components/atoms/TextArea/CustomTextArea.spec.js +52 -0
- package/lib/components/atoms/TextArea/TextArea.helpers.spec.js +25 -0
- package/lib/components/atoms/TextArea/TextArea.spec.js +126 -0
- package/lib/components/atoms/ThirdButton.spec.js +29 -0
- package/lib/components/atoms/VideoModal/VideoModal.spec.js +68 -0
- package/lib/components/atoms/WithAppCfg.spec.js +82 -0
- package/lib/components/index.js +2 -1
- package/lib/components/molecules/AbmSection/AbmAccessibilitySection/AbmAccessibilitySection.helpers.spec.js +53 -0
- package/lib/components/molecules/AbmSection/AbmAccessibilitySection/AbmAccessibilitySection.spec.js +742 -0
- package/lib/components/molecules/AbmSection/AbmGeneralSection.helpers.spec.js +107 -0
- package/lib/components/molecules/AbmSection/AbmGeneralSection.spec.js +256 -0
- package/lib/components/molecules/AbmSection/AbmKnowledgeSection.helpers.spec.js +175 -0
- package/lib/components/molecules/AbmSection/AbmKnowledgeSection.spec.js +318 -0
- package/lib/components/molecules/AbmSection/AbmLoaderFiles.helpers.spec.js +50 -0
- package/lib/components/molecules/AbmSection/AbmLoaderFiles.spec.js +94 -0
- package/lib/components/molecules/AgentInputBlock/AgentInputBlockMessage.js +83 -0
- package/lib/components/molecules/AgentInputBlock/AgentInputBlockMessage.styles.js +30 -0
- package/lib/components/molecules/AgentInputBlock/index.js +5 -0
- package/lib/components/molecules/AgentInputBlock/resolveAgentInputBlock.js +52 -0
- package/lib/components/molecules/AgentInputBlock/resolveAgentInputBlock.spec.js +76 -0
- package/lib/components/molecules/AgentInputBlock/resolveLegacyContextSession.js +20 -0
- package/lib/components/molecules/AgentInputBlock/resolveLegacyContextSession.spec.js +34 -0
- package/lib/components/molecules/AgentInputBlock/useAgentChangeModelAction.js +36 -0
- package/lib/components/molecules/ChatAIClientSelector/ChatAIClientSelector.spec.js +66 -0
- package/lib/components/molecules/ChatAIContent/ChatAIContent.js +7 -3
- package/lib/components/molecules/ChatAIContent/ChatAIContent.spec.js +145 -0
- package/lib/components/molecules/ChatAIHistory/ChatAIHistory.spec.js +204 -0
- package/lib/components/molecules/ChatAIHome/ChatAIHome.helpers.spec.js +622 -0
- package/lib/components/molecules/ChatAIHome/ChatAIHome.js +91 -72
- package/lib/components/molecules/ChatAIHome/ChatAIHome.spec.js +264 -0
- package/lib/components/molecules/ChatAIHome/ChatAIHomeMaiaker.spec.js +86 -0
- package/lib/components/molecules/ChatAIHome/styles.js +85 -78
- package/lib/components/molecules/ChatAIMessages/ChatAICreateAgentActions.spec.js +104 -0
- package/lib/components/molecules/ChatAIMessages/ChatAIMessages.helpers.spec.js +742 -0
- package/lib/components/molecules/ChatAIMessages/ChatAIMessages.js +30 -14
- package/lib/components/molecules/ChatAIMessages/ChatAIMessages.spec.js +541 -0
- package/lib/components/molecules/ChatAIMessages/ChatAISuggestions.spec.js +46 -0
- package/lib/components/molecules/ChatAIMessages/newStyles.js +32 -35
- package/lib/components/molecules/ChatAIModal/ChatAIModal.helpers.js +8 -1
- package/lib/components/molecules/ChatAIModal/ChatAIModal.helpers.spec.js +1394 -0
- package/lib/components/molecules/ChatAIModal/ChatAIModal.js +25 -8
- package/lib/components/molecules/ChatAIModal/ChatAIModal.spec.js +1401 -0
- package/lib/components/molecules/ChatAIModal/ChatAIModal.styles.js +2 -2
- package/lib/components/molecules/ChatAIModal/components/ChatAiAgentOptions/ChatAiAgentOptions.helpers.spec.js +33 -0
- package/lib/components/molecules/ChatAIModal/components/ChatAiAgentOptions/ChatAiAgentOptions.spec.js +116 -0
- package/lib/components/molecules/ChatAIModal/components/ChatAiModalFooter/ChatAiModalFooter.js +15 -153
- package/lib/components/molecules/ChatAIModal/components/ChatAiModalFooter/ChatAiModalFooter.spec.js +134 -0
- package/lib/components/molecules/ChatAIModal/components/ChatAiModalFooter/ChatAiModalFooter.styles.js +2 -26
- package/lib/components/molecules/ChatAIModal/components/ChatAiModalHeader/ChatAiModalHeader.helpers.spec.js +142 -0
- package/lib/components/molecules/ChatAIModal/components/ChatAiModalHeader/ChatAiModalHeader.js +65 -61
- package/lib/components/molecules/ChatAIModal/components/ChatAiModalHeader/ChatAiModalHeader.spec.js +241 -0
- package/lib/components/molecules/ChatAIModal/components/MaiaMinimizedPill/MaiaMinimizedPill.spec.js +37 -0
- package/lib/components/molecules/ChatAIModal/constants.spec.js +16 -0
- package/lib/components/molecules/ChatAIModal/floatingPanelMotion/FloatingPanelMotion.spec.js +22 -0
- package/lib/components/molecules/ChatAIModal/floatingPanelMotion/useFloatingPanelDragTilt.spec.js +67 -0
- package/lib/components/molecules/ChatAIModal/layout.spec.js +72 -0
- package/lib/components/molecules/ChatAIMyAgents/ChatAIMyAgents.helpers.spec.js +93 -0
- package/lib/components/molecules/ChatAIMyAgents/ChatAIMyAgents.spec.js +297 -0
- package/lib/components/molecules/ChatAIMySkills/ChatAIMySkills.helpers.spec.js +62 -0
- package/lib/components/molecules/ChatAIMySkills/ChatAIMySkills.spec.js +221 -0
- package/lib/components/molecules/ChatAIProjectSelector/ChatAIProjectSelector.spec.js +66 -0
- package/lib/components/molecules/ChatFooter/ChatFooter.js +10 -4
- package/lib/components/molecules/ChatFooter/ChatFooter.spec.js +369 -0
- package/lib/components/molecules/ChatFooter/ChatFooterCorAccess.spec.js +10 -0
- package/lib/components/molecules/ChatFooter/ChatFooterFaqs.helpers.spec.js +104 -0
- package/lib/components/molecules/ChatFooter/ChatFooterFaqs.spec.js +139 -0
- package/lib/components/molecules/ContextMentionInput/ContextMentionInput.spec.js +84 -0
- package/lib/components/molecules/MessageFeedback/MessageFeedback.spec.js +116 -0
- package/lib/components/molecules/ProjectSummaryChat/ProjectSummaryChat.spec.js +126 -0
- package/lib/components/molecules/ProjectSummaryConfig/ProjectSummaryConfig.spec.js +115 -0
- package/lib/components/molecules/ProjectSummaryContent/ProjectSummaryContent.spec.js +79 -0
- package/lib/components/molecules/ProjectSummaryModal/ProjectSummaryModal.spec.js +37 -0
- package/lib/components/molecules/Sidebar/Sidebar.helpers.spec.js +119 -0
- package/lib/components/molecules/Sidebar/Sidebar.js +41 -23
- package/lib/components/molecules/Sidebar/Sidebar.spec.js +464 -0
- package/lib/components/organisms/AbmAgentModal/AbmAgentModal.helpers.spec.js +1067 -0
- package/lib/components/organisms/AbmAgentModal/AbmAgentModal.js +2 -2
- package/lib/components/organisms/AbmAgentModal/AbmAgentModal.spec.js +1236 -0
- package/lib/components/organisms/AbmSkillGenerateModal/AbmSkillGenerateModal.spec.js +112 -0
- package/lib/components/organisms/AbmSkillModal/AbmSkillModal.helpers.spec.js +77 -0
- package/lib/components/organisms/AbmSkillModal/AbmSkillModal.spec.js +503 -0
- package/lib/components/organisms/ChatAI/ChatAI.spec.js +174 -0
- package/lib/components/organisms/ChatAIPage/ChatAIPage.js +525 -0
- package/lib/components/organisms/ChatAIPage/ChatAIPage.spec.js +246 -0
- package/lib/components/organisms/ChatAIPage/ChatAIPage.styles.js +16 -0
- package/lib/components/organisms/ChatAIPage/ChatAIPageHeader.js +253 -0
- package/lib/components/organisms/ChatAIPage/ChatAIPageHeader.spec.js +139 -0
- package/lib/components/organisms/ChatAIPage/ChatAIPageHeader.styles.js +13 -0
- package/lib/components/organisms/ChatAIPage/ChatAIPageHome.js +275 -0
- package/lib/components/organisms/ChatAIPage/ChatAIPageHome.spec.js +275 -0
- package/lib/components/organisms/ChatAIPage/ChatAIPageHome.styles.js +195 -0
- package/lib/components/organisms/ChatAIPage/ChatAIPageHomeActionCardSlot.js +94 -0
- package/lib/components/organisms/ChatAIPage/ChatAIPageHomeActionCardSlot.spec.js +69 -0
- package/lib/components/organisms/ChatAIPage/ChatAIPageHomeActionCards.skeleton.js +38 -0
- package/lib/components/organisms/ChatAIPage/getDaypart.js +9 -0
- package/lib/components/organisms/ChatAIPage/getDaypart.spec.js +19 -0
- package/lib/components/organisms/ChatAIPage/index.js +3 -0
- package/lib/components/organisms/ClientAIButton/ClientAIButton.spec.js +53 -0
- package/lib/components/organisms/DeleteAgentModal/DeleteAgentModal.spec.js +59 -0
- package/lib/components/organisms/DeleteQuestionModal/DeleteQuestionModal.spec.js +79 -0
- package/lib/components/organisms/EditQuestionModal/EditQuestionModal.spec.js +86 -0
- package/lib/components/organisms/ModalFileExceeds/ModalFileExceeds.spec.js +49 -0
- package/lib/components/organisms/ProjectAIButton/ProjectAIButton.spec.js +67 -0
- package/lib/components/organisms/ProjectSummary/ProjectSummary.spec.js +117 -0
- package/lib/components/organisms/SnackBar/Snackbar.spec.js +66 -0
- package/lib/components/organisms/SourcesInformation/SourceItem.spec.js +19 -0
- package/lib/components/organisms/SourcesInformation/SourcesInformationModal.spec.js +52 -0
- package/lib/constants/formatExtensions.spec.js +14 -0
- package/lib/constants/maiaExternalConnectorsAccess.spec.js +29 -0
- package/lib/constants/maiaFeatureAccess.spec.js +30 -0
- package/lib/constants/maiaHourAgentAccess.spec.js +30 -0
- package/lib/constants/maiaTaskPanelAccess.spec.js +41 -0
- package/lib/constants/permissions/clientRoleAccess.spec.js +65 -0
- package/lib/constants/permissions/index.js +2 -2
- package/lib/constants/permissions/utils.js +4 -1
- package/lib/constants/permissions/utils.spec.js +128 -0
- package/lib/constants/plannerSyncEvents.spec.js +31 -0
- package/lib/constants/taskUrls.spec.js +9 -0
- package/lib/dev/DevMaiaPage.js +30 -0
- package/lib/dev/DevReasoningTimeline.js +68 -37
- package/lib/dev/Providers.js +5 -3
- package/lib/hooks/frequentlyUsedActionsCache.js +17 -0
- package/lib/hooks/frequentlyUsedActionsCache.spec.js +25 -0
- package/lib/hooks/useAccessClient/useAccessClient.spec.js +149 -0
- package/lib/hooks/useAgentModel/useAgentModel.spec.js +83 -0
- package/lib/hooks/useAgentModel/useCreateAgent.helpers.spec.js +268 -0
- package/lib/hooks/useAgentModel/useCreateAgent.spec.js +314 -0
- package/lib/hooks/useAgentModel/useDeleteAgent.spec.js +183 -0
- package/lib/hooks/useAgentModel/useUpdateAgent.spec.js +374 -0
- package/lib/hooks/useAgentSuggestions.spec.js +89 -0
- package/lib/hooks/useCaretPosition.spec.js +58 -0
- package/lib/hooks/useChatManager/useChatManager.helpers.js +3 -3
- package/lib/hooks/useChatManager/useChatManager.helpers.spec.js +2027 -0
- package/lib/hooks/useChatManager/useChatManager.js +8 -7
- package/lib/hooks/useChatManager/useChatManager.spec.js +2409 -0
- package/lib/hooks/useChatMessages/useChatMessages.helpers.spec.js +491 -0
- package/lib/hooks/useChatMessages/useChatMessages.spec.js +729 -0
- package/lib/hooks/useChats/useChats.spec.js +208 -0
- package/lib/hooks/useClientSearch.helpers.spec.js +52 -0
- package/lib/hooks/useClientSearch.spec.js +86 -0
- package/lib/hooks/useContextMentions.helpers.spec.js +267 -0
- package/lib/hooks/useContextMentions.spec.js +338 -0
- package/lib/hooks/useContextPinPopover.helpers.spec.js +183 -0
- package/lib/hooks/useContextPinPopover.spec.js +159 -0
- package/lib/hooks/useContinueLegacyContextInNewChat/index.js +2 -0
- package/lib/hooks/useContinueLegacyContextInNewChat/useContinueLegacyContextInNewChat.js +93 -0
- package/lib/hooks/useDebounce.spec.js +42 -0
- package/lib/hooks/useEntitySearch.helpers.spec.js +723 -0
- package/lib/hooks/useEntitySearch.spec.js +718 -0
- package/lib/hooks/useEvent.spec.js +45 -0
- package/lib/hooks/useFrequentlyAskedQuestions.spec.js +222 -0
- package/lib/hooks/useFrequentlyUsedActions.js +60 -22
- package/lib/hooks/useFrequentlyUsedActions.spec.js +135 -0
- package/lib/hooks/useIsMaiaPageRoute.js +26 -0
- package/lib/hooks/useIsMaiaPageRoute.spec.js +26 -0
- package/lib/hooks/useKnowledge/deleteKnowledge.spec.js +122 -0
- package/lib/hooks/useKnowledge/downloadKnowledge.spec.js +148 -0
- package/lib/hooks/useKnowledge/saveKnowledge.spec.js +104 -0
- package/lib/hooks/useKnowledge/useKnowledgeOperations.spec.js +178 -0
- package/lib/hooks/useMaiaChatSessionMeta/index.js +2 -0
- package/lib/hooks/useMaiaChatSessionMeta/useMaiaChatSessionMeta.js +24 -0
- package/lib/hooks/useMentionAllowedTypes.spec.js +89 -0
- package/lib/hooks/useMentionPopover.helpers.spec.js +100 -0
- package/lib/hooks/useMentionPopover.spec.js +392 -0
- package/lib/hooks/useMinimizedPillBottomOffset.helpers.spec.js +176 -0
- package/lib/hooks/useMinimizedPillBottomOffset.spec.js +89 -0
- package/lib/hooks/useMinimizedPillNoveltyDot/useMinimizedPillNoveltyDot.spec.js +67 -0
- package/lib/hooks/useModal/useModal.spec.js +73 -0
- package/lib/hooks/useOrchestratorStream/useOrchestratorStream.helpers.spec.js +138 -0
- package/lib/hooks/useOrchestratorStream/useOrchestratorStream.spec.js +417 -0
- package/lib/hooks/useProjectSearch.helpers.spec.js +89 -0
- package/lib/hooks/useProjectSearch.spec.js +91 -0
- package/lib/hooks/useProjectSummary.spec.js +193 -0
- package/lib/hooks/useProjectSummaryConfig.helpers.spec.js +151 -0
- package/lib/hooks/useProjectSummaryConfig.spec.js +133 -0
- package/lib/hooks/useReasoningTrace/reasoningStore.spec.js +112 -0
- package/lib/hooks/useRecentClientsSearch.helpers.spec.js +33 -0
- package/lib/hooks/useRecentClientsSearch.spec.js +85 -0
- package/lib/hooks/useRecentContexts.spec.js +139 -0
- package/lib/hooks/useResize.spec.js +37 -0
- package/lib/hooks/useSkillsCatalog.spec.js +88 -0
- package/lib/hooks/useSlashCommands.spec.js +139 -0
- package/lib/hooks/useSmoothStreamText/useSmoothStreamText.spec.js +101 -0
- package/lib/hooks/useSnackBarManager/useSnackBarManager.spec.js +33 -0
- package/lib/hooks/useStreamResponse.spec.js +199 -0
- package/lib/hooks/useT.spec.js +20 -0
- package/lib/hooks/useToggle.spec.js +33 -0
- package/lib/hooks/useToggleFavorite/useToggleFavorite.spec.js +171 -0
- package/lib/index.js +5 -2
- package/lib/lang/br/index.js +26 -1
- package/lib/lang/en/index.js +26 -1
- package/lib/lang/es/index.js +26 -1
- package/lib/lang/fr/index.js +26 -1
- package/lib/services/appcues.spec.js +37 -0
- package/lib/services/maia/Access/updateAccess.spec.js +137 -0
- package/lib/services/maia/Actions/getFrequentlyUsedActions.js +1 -1
- package/lib/services/maia/Actions/getFrequentlyUsedActions.spec.js +56 -0
- package/lib/services/maia/Actions/getSlashCommands.spec.js +91 -0
- package/lib/services/maia/Agents/connectors.spec.js +496 -0
- package/lib/services/maia/Agents/createAgent.spec.js +55 -0
- package/lib/services/maia/Agents/deleteAgent.spec.js +57 -0
- package/lib/services/maia/Agents/fetchAgentDetail.spec.js +108 -0
- package/lib/services/maia/Agents/getAgentById.spec.js +190 -0
- package/lib/services/maia/Agents/getAgentModels.spec.js +190 -0
- package/lib/services/maia/Agents/getAgentSuggestions.spec.js +89 -0
- package/lib/services/maia/Agents/getAgents.helpers.spec.js +325 -0
- package/lib/services/maia/Agents/getAgents.spec.js +1135 -0
- package/lib/services/maia/Agents/setAgentToolGroups.spec.js +45 -0
- package/lib/services/maia/Agents/toggleFavorite.spec.js +59 -0
- package/lib/services/maia/Agents/updateAgent.spec.js +48 -0
- package/lib/services/maia/Chats/deleteChat.spec.js +31 -0
- package/lib/services/maia/Chats/getChatMessages.spec.js +150 -0
- package/lib/services/maia/Chats/getChatsByUserId.spec.js +149 -0
- package/lib/services/maia/Chats/markSessionAsRead.spec.js +30 -0
- package/lib/services/maia/Chats/patchChat.spec.js +41 -0
- package/lib/services/maia/Chats/wasHelpfulChat.spec.js +28 -0
- package/lib/services/maia/Faqs/getFrequentlyAskedQuestions.spec.js +58 -0
- package/lib/services/maia/Knowledge/delete.spec.js +45 -0
- package/lib/services/maia/Knowledge/download.spec.js +78 -0
- package/lib/services/maia/Knowledge/save.spec.js +58 -0
- package/lib/services/maia/Orchestrator/orchestrator.helpers.spec.js +225 -0
- package/lib/services/maia/Orchestrator/orchestrator.spec.js +181 -0
- package/lib/services/maia/RecentClients/getRecentClients.spec.js +52 -0
- package/lib/services/maia/RecentContexts/getRecentContexts.spec.js +103 -0
- package/lib/services/maia/RecentProjects/getRecentProjects.spec.js +82 -0
- package/lib/services/maia/RecentTasks/getRecentTasks.spec.js +63 -0
- package/lib/services/maia/RecentUsers/getRecentUsers.spec.js +82 -0
- package/lib/services/maia/Skills/createSkill.spec.js +68 -0
- package/lib/services/maia/Skills/deleteSkill.spec.js +42 -0
- package/lib/services/maia/Skills/generateSkill.spec.js +48 -0
- package/lib/services/maia/Skills/getSkills.spec.js +152 -0
- package/lib/services/maia/Skills/updateSkill.spec.js +62 -0
- package/lib/services/maia/client.spec.js +56 -0
- package/lib/services/utils/fetchCOR.spec.js +211 -0
- package/lib/services/utils/getCookie.spec.js +20 -0
- package/lib/services/utils/mapChatMessages.helpers.spec.js +336 -0
- package/lib/services/utils/mapChatMessages.spec.js +254 -0
- package/lib/store/chatsSidebarOptimistic.spec.js +145 -0
- package/lib/store/maiaLastChatPersistence.spec.js +22 -0
- package/lib/store/maiaPanelSessionPersistence.spec.js +62 -0
- package/lib/store/sessions/sessionNotificationSound.spec.js +145 -0
- package/lib/store/sessions/sessionNotifications.helpers.spec.js +63 -0
- package/lib/store/sessions/sessionNotifications.spec.js +106 -0
- package/lib/store/sessions/sessionStreamManager.helpers.spec.js +177 -0
- package/lib/store/sessions/sessionStreamManager.js +51 -55
- package/lib/store/sessions/sessionStreamManager.spec.js +939 -0
- package/lib/store/sessions/sessions.types.spec.js +16 -0
- package/lib/store/sessions/useSessionsStore.spec.js +135 -0
- package/lib/store/useChatsStore.spec.js +619 -0
- package/lib/store/useFaqsStore.spec.js +57 -0
- package/lib/styles/cascade.js +29 -3
- package/lib/styles/transitions.js +3 -1
- package/lib/types/global.d.js +1 -1
- package/lib/utils/actionCategoryMap.spec.js +18 -0
- package/lib/utils/agentDisplayName.spec.js +48 -0
- package/lib/utils/autoApproveStorage.spec.js +25 -0
- package/lib/utils/chatInputFiles.spec.js +39 -0
- package/lib/utils/contextMentionIcons.spec.js +41 -0
- package/lib/utils/contextMentionLabel.spec.js +13 -0
- package/lib/utils/contextMentionTriggers.spec.js +44 -0
- package/lib/utils/contextMentionTypeLabel.spec.js +14 -0
- package/lib/utils/corConnectorMentionTypes.spec.js +23 -0
- package/lib/utils/entityLinkRender.spec.js +72 -0
- package/lib/utils/fileDownloadHelper.spec.js +67 -0
- package/lib/utils/formatQuickActionMessage.spec.js +27 -0
- package/lib/utils/formatUnreadCount.spec.js +12 -0
- package/lib/utils/getUnitFileSize.spec.js +18 -0
- package/lib/utils/hitlAnalytics.spec.js +136 -0
- package/lib/utils/hoursPlannerQuickActionType.js +74 -1
- package/lib/utils/hoursPlannerQuickActionType.spec.js +64 -0
- package/lib/utils/imagePreprocessor.helpers.spec.js +28 -0
- package/lib/utils/imagePreprocessor.spec.js +112 -0
- package/lib/utils/maiaPageRoute.js +24 -0
- package/lib/utils/maiaPageRoute.spec.js +23 -0
- package/lib/utils/mapBackendLang.spec.js +19 -0
- package/lib/utils/navigateContextEntity.spec.js +50 -0
- package/lib/utils/normalizeAgentConnectors.spec.js +98 -0
- package/lib/utils/openTaskInCorPanel.spec.js +43 -0
- package/lib/utils/orchestratorSubagents.spec.js +32 -0
- package/lib/utils/reasoningMappers.spec.js +103 -0
- package/lib/utils/recentContextsHomeLimit.spec.js +32 -0
- package/lib/utils/renderContextMentions.helpers.spec.js +87 -0
- package/lib/utils/renderContextMentions.spec.js +268 -0
- package/lib/utils/retryCompletion.spec.js +181 -0
- package/lib/utils/skillContentSize.spec.js +13 -0
- package/lib/utils/slashCommandMarker.spec.js +43 -0
- package/lib/utils/sortManagerHoursHomeFuas.spec.js +51 -0
- package/lib/utils/sseStreamContent.spec.js +31 -0
- package/lib/utils/streamActivityMessages.helpers.js +3 -2
- package/lib/utils/streamActivityMessages.helpers.spec.js +84 -0
- package/lib/utils/streamActivityMessages.js +32 -20
- package/lib/utils/streamActivityMessages.spec.js +336 -0
- package/lib/utils/validateTrimmedFields.spec.js +26 -0
- package/package.json +1 -1
- package/README.md +0 -2
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { renderWithProviders, screen } from '../../../test/test-utils';
|
|
2
|
+
import { LoadingText } from './LoadingText';
|
|
3
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
4
|
+
jest.mock('../Loader', function () {
|
|
5
|
+
return {
|
|
6
|
+
Loader: function Loader(_ref) {
|
|
7
|
+
var className = _ref.className;
|
|
8
|
+
return /*#__PURE__*/_jsx("span", {
|
|
9
|
+
className: className,
|
|
10
|
+
children: "loader"
|
|
11
|
+
});
|
|
12
|
+
}
|
|
13
|
+
};
|
|
14
|
+
});
|
|
15
|
+
describe('LoadingText', function () {
|
|
16
|
+
it('renders helper text with the small loader', function () {
|
|
17
|
+
renderWithProviders(/*#__PURE__*/_jsx(LoadingText, {
|
|
18
|
+
text: "Cargando datos",
|
|
19
|
+
className: "loading-block"
|
|
20
|
+
}));
|
|
21
|
+
expect(screen.getByText('Cargando datos')).toBeInTheDocument();
|
|
22
|
+
expect(document.querySelector('.LoadingText-loader')).toBeInTheDocument();
|
|
23
|
+
});
|
|
24
|
+
});
|
|
25
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJyZW5kZXJXaXRoUHJvdmlkZXJzIiwic2NyZWVuIiwiTG9hZGluZ1RleHQiLCJqc3giLCJfanN4IiwiamVzdCIsIm1vY2siLCJMb2FkZXIiLCJfcmVmIiwiY2xhc3NOYW1lIiwiY2hpbGRyZW4iLCJkZXNjcmliZSIsIml0IiwidGV4dCIsImV4cGVjdCIsImdldEJ5VGV4dCIsInRvQmVJblRoZURvY3VtZW50IiwiZG9jdW1lbnQiLCJxdWVyeVNlbGVjdG9yIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvYXRvbXMvTG9hZGluZ1RleHQvTG9hZGluZ1RleHQuc3BlYy50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgcmVuZGVyV2l0aFByb3ZpZGVycywgc2NyZWVuIH0gZnJvbSAnLi4vLi4vLi4vdGVzdC90ZXN0LXV0aWxzJ1xuaW1wb3J0IHsgTG9hZGluZ1RleHQgfSBmcm9tICcuL0xvYWRpbmdUZXh0J1xuXG5qZXN0Lm1vY2soJy4uL0xvYWRlcicsICgpID0+ICh7XG4gIExvYWRlcjogKHsgY2xhc3NOYW1lIH06IHsgY2xhc3NOYW1lPzogc3RyaW5nIH0pID0+IDxzcGFuIGNsYXNzTmFtZT17Y2xhc3NOYW1lfT5sb2FkZXI8L3NwYW4+LFxufSkpXG5cbmRlc2NyaWJlKCdMb2FkaW5nVGV4dCcsICgpID0+IHtcbiAgaXQoJ3JlbmRlcnMgaGVscGVyIHRleHQgd2l0aCB0aGUgc21hbGwgbG9hZGVyJywgKCkgPT4ge1xuICAgIHJlbmRlcldpdGhQcm92aWRlcnMoPExvYWRpbmdUZXh0IHRleHQ9XCJDYXJnYW5kbyBkYXRvc1wiIGNsYXNzTmFtZT1cImxvYWRpbmctYmxvY2tcIiAvPilcblxuICAgIGV4cGVjdChzY3JlZW4uZ2V0QnlUZXh0KCdDYXJnYW5kbyBkYXRvcycpKS50b0JlSW5UaGVEb2N1bWVudCgpXG4gICAgZXhwZWN0KGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJy5Mb2FkaW5nVGV4dC1sb2FkZXInKSkudG9CZUluVGhlRG9jdW1lbnQoKVxuICB9KVxufSlcbiJdLCJtYXBwaW5ncyI6IkFBQUEsU0FBU0EsbUJBQW1CLEVBQUVDLE1BQU0sUUFBUSwwQkFBMEI7QUFDdEUsU0FBU0MsV0FBVyxRQUFRLGVBQWU7QUFBQSxTQUFBQyxHQUFBLElBQUFDLElBQUE7QUFFM0NDLElBQUksQ0FBQ0MsSUFBSSxDQUFDLFdBQVcsRUFBRTtFQUFBLE9BQU87SUFDNUJDLE1BQU0sRUFBRSxTQUFSQSxNQUFNQSxDQUFBQyxJQUFBO01BQUEsSUFBS0MsU0FBUyxHQUFBRCxJQUFBLENBQVRDLFNBQVM7TUFBQSxvQkFBK0JMLElBQUE7UUFBTUssU0FBUyxFQUFFQSxTQUFVO1FBQUFDLFFBQUEsRUFBQztNQUFNLENBQU0sQ0FBQztJQUFBO0VBQzlGLENBQUM7QUFBQSxDQUFDLENBQUM7QUFFSEMsUUFBUSxDQUFDLGFBQWEsRUFBRSxZQUFNO0VBQzVCQyxFQUFFLENBQUMsMkNBQTJDLEVBQUUsWUFBTTtJQUNwRFosbUJBQW1CLGNBQUNJLElBQUEsQ0FBQ0YsV0FBVztNQUFDVyxJQUFJLEVBQUMsZ0JBQWdCO01BQUNKLFNBQVMsRUFBQztJQUFlLENBQUUsQ0FBQyxDQUFDO0lBRXBGSyxNQUFNLENBQUNiLE1BQU0sQ0FBQ2MsU0FBUyxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQ0MsaUJBQWlCLENBQUMsQ0FBQztJQUM5REYsTUFBTSxDQUFDRyxRQUFRLENBQUNDLGFBQWEsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDLENBQUNGLGlCQUFpQixDQUFDLENBQUM7RUFDM0UsQ0FBQyxDQUFDO0FBQ0osQ0FBQyxDQUFDIiwiaWdub3JlTGlzdCI6W119
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { fireEvent, renderWithProviders, screen } from '../../../test/test-utils';
|
|
2
|
+
import { MAIAButton } from './MAIAButton';
|
|
3
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
4
|
+
var triggerEvent = jest.fn();
|
|
5
|
+
jest.mock('../../../hooks/useEvent', function () {
|
|
6
|
+
return {
|
|
7
|
+
useEvent: function useEvent() {
|
|
8
|
+
return triggerEvent;
|
|
9
|
+
}
|
|
10
|
+
};
|
|
11
|
+
});
|
|
12
|
+
describe('MAIAButton', function () {
|
|
13
|
+
beforeEach(function () {
|
|
14
|
+
triggerEvent.mockClear();
|
|
15
|
+
});
|
|
16
|
+
it('renders the label and calls onClick', function () {
|
|
17
|
+
var onClick = jest.fn();
|
|
18
|
+
renderWithProviders(/*#__PURE__*/_jsx(MAIAButton, {
|
|
19
|
+
onClick: onClick,
|
|
20
|
+
children: "Abrir MAIA"
|
|
21
|
+
}));
|
|
22
|
+
fireEvent.click(screen.getByRole('button', {
|
|
23
|
+
name: /Abrir MAIA/
|
|
24
|
+
}));
|
|
25
|
+
expect(onClick).toHaveBeenCalledTimes(1);
|
|
26
|
+
expect(triggerEvent).not.toHaveBeenCalled();
|
|
27
|
+
});
|
|
28
|
+
it('tracks the event key before clicking', function () {
|
|
29
|
+
var onClick = jest.fn();
|
|
30
|
+
renderWithProviders(/*#__PURE__*/_jsx(MAIAButton, {
|
|
31
|
+
eventKey: "AI_CHAT_OPEN",
|
|
32
|
+
onClick: onClick,
|
|
33
|
+
children: "Abrir"
|
|
34
|
+
}));
|
|
35
|
+
fireEvent.click(screen.getByRole('button', {
|
|
36
|
+
name: /Abrir/
|
|
37
|
+
}));
|
|
38
|
+
expect(triggerEvent).toHaveBeenCalledWith('AI_CHAT_OPEN');
|
|
39
|
+
expect(onClick).toHaveBeenCalled();
|
|
40
|
+
});
|
|
41
|
+
});
|
|
42
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJmaXJlRXZlbnQiLCJyZW5kZXJXaXRoUHJvdmlkZXJzIiwic2NyZWVuIiwiTUFJQUJ1dHRvbiIsImpzeCIsIl9qc3giLCJ0cmlnZ2VyRXZlbnQiLCJqZXN0IiwiZm4iLCJtb2NrIiwidXNlRXZlbnQiLCJkZXNjcmliZSIsImJlZm9yZUVhY2giLCJtb2NrQ2xlYXIiLCJpdCIsIm9uQ2xpY2siLCJjaGlsZHJlbiIsImNsaWNrIiwiZ2V0QnlSb2xlIiwibmFtZSIsImV4cGVjdCIsInRvSGF2ZUJlZW5DYWxsZWRUaW1lcyIsIm5vdCIsInRvSGF2ZUJlZW5DYWxsZWQiLCJldmVudEtleSIsInRvSGF2ZUJlZW5DYWxsZWRXaXRoIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvYXRvbXMvTUFJQUJ1dHRvbi9NQUlBQnV0dG9uLnNwZWMudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGZpcmVFdmVudCwgcmVuZGVyV2l0aFByb3ZpZGVycywgc2NyZWVuIH0gZnJvbSAnLi4vLi4vLi4vdGVzdC90ZXN0LXV0aWxzJ1xuaW1wb3J0IHsgTUFJQUJ1dHRvbiB9IGZyb20gJy4vTUFJQUJ1dHRvbidcblxuY29uc3QgdHJpZ2dlckV2ZW50ID0gamVzdC5mbigpXG5cbmplc3QubW9jaygnLi4vLi4vLi4vaG9va3MvdXNlRXZlbnQnLCAoKSA9PiAoe1xuICB1c2VFdmVudDogKCkgPT4gdHJpZ2dlckV2ZW50LFxufSkpXG5cbmRlc2NyaWJlKCdNQUlBQnV0dG9uJywgKCkgPT4ge1xuICBiZWZvcmVFYWNoKCgpID0+IHtcbiAgICB0cmlnZ2VyRXZlbnQubW9ja0NsZWFyKClcbiAgfSlcblxuICBpdCgncmVuZGVycyB0aGUgbGFiZWwgYW5kIGNhbGxzIG9uQ2xpY2snLCAoKSA9PiB7XG4gICAgY29uc3Qgb25DbGljayA9IGplc3QuZm4oKVxuICAgIHJlbmRlcldpdGhQcm92aWRlcnMoPE1BSUFCdXR0b24gb25DbGljaz17b25DbGlja30+QWJyaXIgTUFJQTwvTUFJQUJ1dHRvbj4pXG5cbiAgICBmaXJlRXZlbnQuY2xpY2soc2NyZWVuLmdldEJ5Um9sZSgnYnV0dG9uJywgeyBuYW1lOiAvQWJyaXIgTUFJQS8gfSkpXG5cbiAgICBleHBlY3Qob25DbGljaykudG9IYXZlQmVlbkNhbGxlZFRpbWVzKDEpXG4gICAgZXhwZWN0KHRyaWdnZXJFdmVudCkubm90LnRvSGF2ZUJlZW5DYWxsZWQoKVxuICB9KVxuXG4gIGl0KCd0cmFja3MgdGhlIGV2ZW50IGtleSBiZWZvcmUgY2xpY2tpbmcnLCAoKSA9PiB7XG4gICAgY29uc3Qgb25DbGljayA9IGplc3QuZm4oKVxuICAgIHJlbmRlcldpdGhQcm92aWRlcnMoXG4gICAgICA8TUFJQUJ1dHRvbiBldmVudEtleT1cIkFJX0NIQVRfT1BFTlwiIG9uQ2xpY2s9e29uQ2xpY2t9PlxuICAgICAgICBBYnJpclxuICAgICAgPC9NQUlBQnV0dG9uPlxuICAgIClcblxuICAgIGZpcmVFdmVudC5jbGljayhzY3JlZW4uZ2V0QnlSb2xlKCdidXR0b24nLCB7IG5hbWU6IC9BYnJpci8gfSkpXG5cbiAgICBleHBlY3QodHJpZ2dlckV2ZW50KS50b0hhdmVCZWVuQ2FsbGVkV2l0aCgnQUlfQ0hBVF9PUEVOJylcbiAgICBleHBlY3Qob25DbGljaykudG9IYXZlQmVlbkNhbGxlZCgpXG4gIH0pXG59KVxuIl0sIm1hcHBpbmdzIjoiQUFBQSxTQUFTQSxTQUFTLEVBQUVDLG1CQUFtQixFQUFFQyxNQUFNLFFBQVEsMEJBQTBCO0FBQ2pGLFNBQVNDLFVBQVUsUUFBUSxjQUFjO0FBQUEsU0FBQUMsR0FBQSxJQUFBQyxJQUFBO0FBRXpDLElBQU1DLFlBQVksR0FBR0MsSUFBSSxDQUFDQyxFQUFFLENBQUMsQ0FBQztBQUU5QkQsSUFBSSxDQUFDRSxJQUFJLENBQUMseUJBQXlCLEVBQUU7RUFBQSxPQUFPO0lBQzFDQyxRQUFRLEVBQUUsU0FBVkEsUUFBUUEsQ0FBQTtNQUFBLE9BQVFKLFlBQVk7SUFBQTtFQUM5QixDQUFDO0FBQUEsQ0FBQyxDQUFDO0FBRUhLLFFBQVEsQ0FBQyxZQUFZLEVBQUUsWUFBTTtFQUMzQkMsVUFBVSxDQUFDLFlBQU07SUFDZk4sWUFBWSxDQUFDTyxTQUFTLENBQUMsQ0FBQztFQUMxQixDQUFDLENBQUM7RUFFRkMsRUFBRSxDQUFDLHFDQUFxQyxFQUFFLFlBQU07SUFDOUMsSUFBTUMsT0FBTyxHQUFHUixJQUFJLENBQUNDLEVBQUUsQ0FBQyxDQUFDO0lBQ3pCUCxtQkFBbUIsY0FBQ0ksSUFBQSxDQUFDRixVQUFVO01BQUNZLE9BQU8sRUFBRUEsT0FBUTtNQUFBQyxRQUFBLEVBQUM7SUFBVSxDQUFZLENBQUMsQ0FBQztJQUUxRWhCLFNBQVMsQ0FBQ2lCLEtBQUssQ0FBQ2YsTUFBTSxDQUFDZ0IsU0FBUyxDQUFDLFFBQVEsRUFBRTtNQUFFQyxJQUFJLEVBQUU7SUFBYSxDQUFDLENBQUMsQ0FBQztJQUVuRUMsTUFBTSxDQUFDTCxPQUFPLENBQUMsQ0FBQ00scUJBQXFCLENBQUMsQ0FBQyxDQUFDO0lBQ3hDRCxNQUFNLENBQUNkLFlBQVksQ0FBQyxDQUFDZ0IsR0FBRyxDQUFDQyxnQkFBZ0IsQ0FBQyxDQUFDO0VBQzdDLENBQUMsQ0FBQztFQUVGVCxFQUFFLENBQUMsc0NBQXNDLEVBQUUsWUFBTTtJQUMvQyxJQUFNQyxPQUFPLEdBQUdSLElBQUksQ0FBQ0MsRUFBRSxDQUFDLENBQUM7SUFDekJQLG1CQUFtQixjQUNqQkksSUFBQSxDQUFDRixVQUFVO01BQUNxQixRQUFRLEVBQUMsY0FBYztNQUFDVCxPQUFPLEVBQUVBLE9BQVE7TUFBQUMsUUFBQSxFQUFDO0lBRXRELENBQVksQ0FDZCxDQUFDO0lBRURoQixTQUFTLENBQUNpQixLQUFLLENBQUNmLE1BQU0sQ0FBQ2dCLFNBQVMsQ0FBQyxRQUFRLEVBQUU7TUFBRUMsSUFBSSxFQUFFO0lBQVEsQ0FBQyxDQUFDLENBQUM7SUFFOURDLE1BQU0sQ0FBQ2QsWUFBWSxDQUFDLENBQUNtQixvQkFBb0IsQ0FBQyxjQUFjLENBQUM7SUFDekRMLE1BQU0sQ0FBQ0wsT0FBTyxDQUFDLENBQUNRLGdCQUFnQixDQUFDLENBQUM7RUFDcEMsQ0FBQyxDQUFDO0FBQ0osQ0FBQyxDQUFDIiwiaWdub3JlTGlzdCI6W119
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { renderWithProviders, screen } from '../../../test/test-utils';
|
|
2
|
+
import { MAIAError } from './MAIAError';
|
|
3
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
4
|
+
jest.mock('../ModalInfo', function () {
|
|
5
|
+
return {
|
|
6
|
+
ModalInfo: function ModalInfo(_ref) {
|
|
7
|
+
var title = _ref.title,
|
|
8
|
+
description = _ref.description,
|
|
9
|
+
children = _ref.children;
|
|
10
|
+
return /*#__PURE__*/_jsxs("div", {
|
|
11
|
+
children: [/*#__PURE__*/_jsx("h2", {
|
|
12
|
+
children: title
|
|
13
|
+
}), /*#__PURE__*/_jsx("p", {
|
|
14
|
+
children: description
|
|
15
|
+
}), children]
|
|
16
|
+
});
|
|
17
|
+
}
|
|
18
|
+
};
|
|
19
|
+
});
|
|
20
|
+
describe('MAIAError', function () {
|
|
21
|
+
it('shows translated error copy', function () {
|
|
22
|
+
renderWithProviders(/*#__PURE__*/_jsx(MAIAError, {}));
|
|
23
|
+
expect(screen.getByText('error.title')).toBeInTheDocument();
|
|
24
|
+
expect(screen.getByText('error.description')).toBeInTheDocument();
|
|
25
|
+
});
|
|
26
|
+
});
|
|
27
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJyZW5kZXJXaXRoUHJvdmlkZXJzIiwic2NyZWVuIiwiTUFJQUVycm9yIiwianN4IiwiX2pzeCIsImpzeHMiLCJfanN4cyIsImplc3QiLCJtb2NrIiwiTW9kYWxJbmZvIiwiX3JlZiIsInRpdGxlIiwiZGVzY3JpcHRpb24iLCJjaGlsZHJlbiIsImRlc2NyaWJlIiwiaXQiLCJleHBlY3QiLCJnZXRCeVRleHQiLCJ0b0JlSW5UaGVEb2N1bWVudCJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL2F0b21zL01BSUFFcnJvci9NQUlBRXJyb3Iuc3BlYy50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBSZWFjdE5vZGUgfSBmcm9tICdyZWFjdCdcbmltcG9ydCB7IHJlbmRlcldpdGhQcm92aWRlcnMsIHNjcmVlbiB9IGZyb20gJy4uLy4uLy4uL3Rlc3QvdGVzdC11dGlscydcbmltcG9ydCB7IE1BSUFFcnJvciB9IGZyb20gJy4vTUFJQUVycm9yJ1xuXG5qZXN0Lm1vY2soJy4uL01vZGFsSW5mbycsICgpID0+ICh7XG4gIE1vZGFsSW5mbzogKHsgdGl0bGUsIGRlc2NyaXB0aW9uLCBjaGlsZHJlbiB9OiB7IHRpdGxlOiBzdHJpbmc7IGRlc2NyaXB0aW9uOiBzdHJpbmc7IGNoaWxkcmVuOiBSZWFjdE5vZGUgfSkgPT4gKFxuICAgIDxkaXY+XG4gICAgICA8aDI+e3RpdGxlfTwvaDI+XG4gICAgICA8cD57ZGVzY3JpcHRpb259PC9wPlxuICAgICAge2NoaWxkcmVufVxuICAgIDwvZGl2PlxuICApLFxufSkpXG5cbmRlc2NyaWJlKCdNQUlBRXJyb3InLCAoKSA9PiB7XG4gIGl0KCdzaG93cyB0cmFuc2xhdGVkIGVycm9yIGNvcHknLCAoKSA9PiB7XG4gICAgcmVuZGVyV2l0aFByb3ZpZGVycyg8TUFJQUVycm9yIC8+KVxuXG4gICAgZXhwZWN0KHNjcmVlbi5nZXRCeVRleHQoJ2Vycm9yLnRpdGxlJykpLnRvQmVJblRoZURvY3VtZW50KClcbiAgICBleHBlY3Qoc2NyZWVuLmdldEJ5VGV4dCgnZXJyb3IuZGVzY3JpcHRpb24nKSkudG9CZUluVGhlRG9jdW1lbnQoKVxuICB9KVxufSlcbiJdLCJtYXBwaW5ncyI6IkFBQ0EsU0FBU0EsbUJBQW1CLEVBQUVDLE1BQU0sUUFBUSwwQkFBMEI7QUFDdEUsU0FBU0MsU0FBUyxRQUFRLGFBQWE7QUFBQSxTQUFBQyxHQUFBLElBQUFDLElBQUEsRUFBQUMsSUFBQSxJQUFBQyxLQUFBO0FBRXZDQyxJQUFJLENBQUNDLElBQUksQ0FBQyxjQUFjLEVBQUU7RUFBQSxPQUFPO0lBQy9CQyxTQUFTLEVBQUUsU0FBWEEsU0FBU0EsQ0FBQUMsSUFBQTtNQUFBLElBQUtDLEtBQUssR0FBQUQsSUFBQSxDQUFMQyxLQUFLO1FBQUVDLFdBQVcsR0FBQUYsSUFBQSxDQUFYRSxXQUFXO1FBQUVDLFFBQVEsR0FBQUgsSUFBQSxDQUFSRyxRQUFRO01BQUEsb0JBQ3hDUCxLQUFBO1FBQUFPLFFBQUEsZ0JBQ0VULElBQUE7VUFBQVMsUUFBQSxFQUFLRjtRQUFLLENBQUssQ0FBQyxlQUNoQlAsSUFBQTtVQUFBUyxRQUFBLEVBQUlEO1FBQVcsQ0FBSSxDQUFDLEVBQ25CQyxRQUFRO01BQUEsQ0FDTixDQUFDO0lBQUE7RUFFVixDQUFDO0FBQUEsQ0FBQyxDQUFDO0FBRUhDLFFBQVEsQ0FBQyxXQUFXLEVBQUUsWUFBTTtFQUMxQkMsRUFBRSxDQUFDLDZCQUE2QixFQUFFLFlBQU07SUFDdENmLG1CQUFtQixjQUFDSSxJQUFBLENBQUNGLFNBQVMsSUFBRSxDQUFDLENBQUM7SUFFbENjLE1BQU0sQ0FBQ2YsTUFBTSxDQUFDZ0IsU0FBUyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUNDLGlCQUFpQixDQUFDLENBQUM7SUFDM0RGLE1BQU0sQ0FBQ2YsTUFBTSxDQUFDZ0IsU0FBUyxDQUFDLG1CQUFtQixDQUFDLENBQUMsQ0FBQ0MsaUJBQWlCLENBQUMsQ0FBQztFQUNuRSxDQUFDLENBQUM7QUFDSixDQUFDLENBQUMiLCJpZ25vcmVMaXN0IjpbXX0=
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
|
2
|
+
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
3
|
+
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
4
|
+
import { decrementFileDragCounter, isImageAttachmentFile, parseChatInputFileExtension, processIncomingChatInputFiles, shouldClearFileDragOverlay, shouldHandleDragLeaveEvent, shouldInterceptWrapperPaste, shouldOpenAttachmentValidationModal } from './MAIAInput.attachments.helpers';
|
|
5
|
+
describe('MAIAInput.attachments.helpers', function () {
|
|
6
|
+
describe('parseChatInputFileExtension', function () {
|
|
7
|
+
it('returns lowercase extension with dot', function () {
|
|
8
|
+
expect(parseChatInputFileExtension('Brief.PDF')).toBe('.pdf');
|
|
9
|
+
});
|
|
10
|
+
it('returns empty string when there is no extension', function () {
|
|
11
|
+
expect(parseChatInputFileExtension('readme')).toBe('');
|
|
12
|
+
});
|
|
13
|
+
});
|
|
14
|
+
describe('processIncomingChatInputFiles', function () {
|
|
15
|
+
var baseOptions = {
|
|
16
|
+
allowedExtensions: ['.pdf', '.txt', '.mp3'],
|
|
17
|
+
fileTypes: {
|
|
18
|
+
'.pdf': 'application/pdf',
|
|
19
|
+
'.txt': 'text/plain',
|
|
20
|
+
'.mp3': 'audio/mpeg'
|
|
21
|
+
},
|
|
22
|
+
currentAttachmentCount: 0,
|
|
23
|
+
maxAttachments: 2,
|
|
24
|
+
getMaxSizeMb: function getMaxSizeMb() {
|
|
25
|
+
return 10;
|
|
26
|
+
}
|
|
27
|
+
};
|
|
28
|
+
it('skips unsupported extensions', function () {
|
|
29
|
+
var file = new File(['x'], 'image.png', {
|
|
30
|
+
type: 'image/png'
|
|
31
|
+
});
|
|
32
|
+
expect(processIncomingChatInputFiles([file], baseOptions).filesToAttach).toHaveLength(0);
|
|
33
|
+
});
|
|
34
|
+
it('accepts allowed files and resolves mime from fileTypes', function () {
|
|
35
|
+
var file = new File(['content'], 'notes.txt', {
|
|
36
|
+
type: ''
|
|
37
|
+
});
|
|
38
|
+
var result = processIncomingChatInputFiles([file], baseOptions);
|
|
39
|
+
expect(result.filesToAttach).toHaveLength(1);
|
|
40
|
+
expect(result.filesToAttach[0].type).toBe('text/plain');
|
|
41
|
+
expect(result.exceededFiles).toHaveLength(0);
|
|
42
|
+
expect(result.excludedFiles).toHaveLength(0);
|
|
43
|
+
});
|
|
44
|
+
it('marks oversized files as exceeded', function () {
|
|
45
|
+
var file = new File([new ArrayBuffer(11 * 1024 * 1024)], 'big.pdf', {
|
|
46
|
+
type: 'application/pdf'
|
|
47
|
+
});
|
|
48
|
+
var result = processIncomingChatInputFiles([file], _objectSpread(_objectSpread({}, baseOptions), {}, {
|
|
49
|
+
getMaxSizeMb: function getMaxSizeMb() {
|
|
50
|
+
return 10;
|
|
51
|
+
}
|
|
52
|
+
}));
|
|
53
|
+
expect(result.filesToAttach).toHaveLength(0);
|
|
54
|
+
expect(result.exceededFiles).toEqual(['big.pdf']);
|
|
55
|
+
});
|
|
56
|
+
it('marks files beyond max attachment count as excluded', function () {
|
|
57
|
+
var files = [new File(['a'], 'a.txt', {
|
|
58
|
+
type: 'text/plain'
|
|
59
|
+
}), new File(['b'], 'b.txt', {
|
|
60
|
+
type: 'text/plain'
|
|
61
|
+
}), new File(['c'], 'c.txt', {
|
|
62
|
+
type: 'text/plain'
|
|
63
|
+
})];
|
|
64
|
+
var result = processIncomingChatInputFiles(files, baseOptions);
|
|
65
|
+
expect(result.filesToAttach).toHaveLength(2);
|
|
66
|
+
expect(result.excludedFiles).toEqual(['c.txt']);
|
|
67
|
+
});
|
|
68
|
+
it('counts existing attachments toward the limit', function () {
|
|
69
|
+
var file = new File(['a'], 'a.txt', {
|
|
70
|
+
type: 'text/plain'
|
|
71
|
+
});
|
|
72
|
+
var result = processIncomingChatInputFiles([file], _objectSpread(_objectSpread({}, baseOptions), {}, {
|
|
73
|
+
currentAttachmentCount: 2
|
|
74
|
+
}));
|
|
75
|
+
expect(result.filesToAttach).toHaveLength(0);
|
|
76
|
+
expect(result.excludedFiles).toEqual(['a.txt']);
|
|
77
|
+
});
|
|
78
|
+
it('accepts audio extensions', function () {
|
|
79
|
+
var file = new File(['audio'], 'voice.mp3', {
|
|
80
|
+
type: 'audio/mpeg'
|
|
81
|
+
});
|
|
82
|
+
var result = processIncomingChatInputFiles([file], baseOptions);
|
|
83
|
+
expect(result.filesToAttach).toHaveLength(1);
|
|
84
|
+
expect(result.fileSizes['voice.mp3']).toBe(file.size);
|
|
85
|
+
});
|
|
86
|
+
});
|
|
87
|
+
describe('attachment UI helpers', function () {
|
|
88
|
+
it('opens validation modal when excluded or exceeded files exist', function () {
|
|
89
|
+
expect(shouldOpenAttachmentValidationModal([], [])).toBe(false);
|
|
90
|
+
expect(shouldOpenAttachmentValidationModal(['a.pdf'], [])).toBe(true);
|
|
91
|
+
expect(shouldOpenAttachmentValidationModal([], ['big.pdf'])).toBe(true);
|
|
92
|
+
});
|
|
93
|
+
it('detects image attachments by mime or extension', function () {
|
|
94
|
+
expect(isImageAttachmentFile('image/png', 'doc.pdf')).toBe(true);
|
|
95
|
+
expect(isImageAttachmentFile(undefined, 'photo.JPG')).toBe(true);
|
|
96
|
+
expect(isImageAttachmentFile('application/pdf', 'doc.pdf')).toBe(false);
|
|
97
|
+
});
|
|
98
|
+
it('handles drag leave counter and overlay', function () {
|
|
99
|
+
expect(shouldHandleDragLeaveEvent(false, false)).toBe(false);
|
|
100
|
+
expect(shouldHandleDragLeaveEvent(true, false)).toBe(true);
|
|
101
|
+
expect(decrementFileDragCounter(2)).toBe(1);
|
|
102
|
+
expect(decrementFileDragCounter(0)).toBe(0);
|
|
103
|
+
expect(shouldClearFileDragOverlay(0)).toBe(true);
|
|
104
|
+
expect(shouldClearFileDragOverlay(1)).toBe(false);
|
|
105
|
+
});
|
|
106
|
+
it('intercepts wrapper paste only outside the editor with files', function () {
|
|
107
|
+
expect(shouldInterceptWrapperPaste(true, 1)).toBe(false);
|
|
108
|
+
expect(shouldInterceptWrapperPaste(false, 0)).toBe(false);
|
|
109
|
+
expect(shouldInterceptWrapperPaste(false, 2)).toBe(true);
|
|
110
|
+
});
|
|
111
|
+
});
|
|
112
|
+
});
|
|
113
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJkZWNyZW1lbnRGaWxlRHJhZ0NvdW50ZXIiLCJpc0ltYWdlQXR0YWNobWVudEZpbGUiLCJwYXJzZUNoYXRJbnB1dEZpbGVFeHRlbnNpb24iLCJwcm9jZXNzSW5jb21pbmdDaGF0SW5wdXRGaWxlcyIsInNob3VsZENsZWFyRmlsZURyYWdPdmVybGF5Iiwic2hvdWxkSGFuZGxlRHJhZ0xlYXZlRXZlbnQiLCJzaG91bGRJbnRlcmNlcHRXcmFwcGVyUGFzdGUiLCJzaG91bGRPcGVuQXR0YWNobWVudFZhbGlkYXRpb25Nb2RhbCIsImRlc2NyaWJlIiwiaXQiLCJleHBlY3QiLCJ0b0JlIiwiYmFzZU9wdGlvbnMiLCJhbGxvd2VkRXh0ZW5zaW9ucyIsImZpbGVUeXBlcyIsImN1cnJlbnRBdHRhY2htZW50Q291bnQiLCJtYXhBdHRhY2htZW50cyIsImdldE1heFNpemVNYiIsImZpbGUiLCJGaWxlIiwidHlwZSIsImZpbGVzVG9BdHRhY2giLCJ0b0hhdmVMZW5ndGgiLCJyZXN1bHQiLCJleGNlZWRlZEZpbGVzIiwiZXhjbHVkZWRGaWxlcyIsIkFycmF5QnVmZmVyIiwiX29iamVjdFNwcmVhZCIsInRvRXF1YWwiLCJmaWxlcyIsImZpbGVTaXplcyIsInNpemUiLCJ1bmRlZmluZWQiXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50cy9hdG9tcy9NQUlBSW5wdXQvTUFJQUlucHV0LmF0dGFjaG1lbnRzLmhlbHBlcnMuc3BlYy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBkZWNyZW1lbnRGaWxlRHJhZ0NvdW50ZXIsXG4gIGlzSW1hZ2VBdHRhY2htZW50RmlsZSxcbiAgcGFyc2VDaGF0SW5wdXRGaWxlRXh0ZW5zaW9uLFxuICBwcm9jZXNzSW5jb21pbmdDaGF0SW5wdXRGaWxlcyxcbiAgc2hvdWxkQ2xlYXJGaWxlRHJhZ092ZXJsYXksXG4gIHNob3VsZEhhbmRsZURyYWdMZWF2ZUV2ZW50LFxuICBzaG91bGRJbnRlcmNlcHRXcmFwcGVyUGFzdGUsXG4gIHNob3VsZE9wZW5BdHRhY2htZW50VmFsaWRhdGlvbk1vZGFsLFxufSBmcm9tICcuL01BSUFJbnB1dC5hdHRhY2htZW50cy5oZWxwZXJzJ1xuXG5kZXNjcmliZSgnTUFJQUlucHV0LmF0dGFjaG1lbnRzLmhlbHBlcnMnLCAoKSA9PiB7XG4gIGRlc2NyaWJlKCdwYXJzZUNoYXRJbnB1dEZpbGVFeHRlbnNpb24nLCAoKSA9PiB7XG4gICAgaXQoJ3JldHVybnMgbG93ZXJjYXNlIGV4dGVuc2lvbiB3aXRoIGRvdCcsICgpID0+IHtcbiAgICAgIGV4cGVjdChwYXJzZUNoYXRJbnB1dEZpbGVFeHRlbnNpb24oJ0JyaWVmLlBERicpKS50b0JlKCcucGRmJylcbiAgICB9KVxuXG4gICAgaXQoJ3JldHVybnMgZW1wdHkgc3RyaW5nIHdoZW4gdGhlcmUgaXMgbm8gZXh0ZW5zaW9uJywgKCkgPT4ge1xuICAgICAgZXhwZWN0KHBhcnNlQ2hhdElucHV0RmlsZUV4dGVuc2lvbigncmVhZG1lJykpLnRvQmUoJycpXG4gICAgfSlcbiAgfSlcblxuICBkZXNjcmliZSgncHJvY2Vzc0luY29taW5nQ2hhdElucHV0RmlsZXMnLCAoKSA9PiB7XG4gICAgY29uc3QgYmFzZU9wdGlvbnMgPSB7XG4gICAgICBhbGxvd2VkRXh0ZW5zaW9uczogWycucGRmJywgJy50eHQnLCAnLm1wMyddLFxuICAgICAgZmlsZVR5cGVzOiB7ICcucGRmJzogJ2FwcGxpY2F0aW9uL3BkZicsICcudHh0JzogJ3RleHQvcGxhaW4nLCAnLm1wMyc6ICdhdWRpby9tcGVnJyB9LFxuICAgICAgY3VycmVudEF0dGFjaG1lbnRDb3VudDogMCxcbiAgICAgIG1heEF0dGFjaG1lbnRzOiAyLFxuICAgICAgZ2V0TWF4U2l6ZU1iOiAoKSA9PiAxMCxcbiAgICB9XG5cbiAgICBpdCgnc2tpcHMgdW5zdXBwb3J0ZWQgZXh0ZW5zaW9ucycsICgpID0+IHtcbiAgICAgIGNvbnN0IGZpbGUgPSBuZXcgRmlsZShbJ3gnXSwgJ2ltYWdlLnBuZycsIHsgdHlwZTogJ2ltYWdlL3BuZycgfSlcbiAgICAgIGV4cGVjdChwcm9jZXNzSW5jb21pbmdDaGF0SW5wdXRGaWxlcyhbZmlsZV0sIGJhc2VPcHRpb25zKS5maWxlc1RvQXR0YWNoKS50b0hhdmVMZW5ndGgoMClcbiAgICB9KVxuXG4gICAgaXQoJ2FjY2VwdHMgYWxsb3dlZCBmaWxlcyBhbmQgcmVzb2x2ZXMgbWltZSBmcm9tIGZpbGVUeXBlcycsICgpID0+IHtcbiAgICAgIGNvbnN0IGZpbGUgPSBuZXcgRmlsZShbJ2NvbnRlbnQnXSwgJ25vdGVzLnR4dCcsIHsgdHlwZTogJycgfSlcbiAgICAgIGNvbnN0IHJlc3VsdCA9IHByb2Nlc3NJbmNvbWluZ0NoYXRJbnB1dEZpbGVzKFtmaWxlXSwgYmFzZU9wdGlvbnMpXG5cbiAgICAgIGV4cGVjdChyZXN1bHQuZmlsZXNUb0F0dGFjaCkudG9IYXZlTGVuZ3RoKDEpXG4gICAgICBleHBlY3QocmVzdWx0LmZpbGVzVG9BdHRhY2hbMF0udHlwZSkudG9CZSgndGV4dC9wbGFpbicpXG4gICAgICBleHBlY3QocmVzdWx0LmV4Y2VlZGVkRmlsZXMpLnRvSGF2ZUxlbmd0aCgwKVxuICAgICAgZXhwZWN0KHJlc3VsdC5leGNsdWRlZEZpbGVzKS50b0hhdmVMZW5ndGgoMClcbiAgICB9KVxuXG4gICAgaXQoJ21hcmtzIG92ZXJzaXplZCBmaWxlcyBhcyBleGNlZWRlZCcsICgpID0+IHtcbiAgICAgIGNvbnN0IGZpbGUgPSBuZXcgRmlsZShbbmV3IEFycmF5QnVmZmVyKDExICogMTAyNCAqIDEwMjQpXSwgJ2JpZy5wZGYnLCB7IHR5cGU6ICdhcHBsaWNhdGlvbi9wZGYnIH0pXG4gICAgICBjb25zdCByZXN1bHQgPSBwcm9jZXNzSW5jb21pbmdDaGF0SW5wdXRGaWxlcyhbZmlsZV0sIHtcbiAgICAgICAgLi4uYmFzZU9wdGlvbnMsXG4gICAgICAgIGdldE1heFNpemVNYjogKCkgPT4gMTAsXG4gICAgICB9KVxuXG4gICAgICBleHBlY3QocmVzdWx0LmZpbGVzVG9BdHRhY2gpLnRvSGF2ZUxlbmd0aCgwKVxuICAgICAgZXhwZWN0KHJlc3VsdC5leGNlZWRlZEZpbGVzKS50b0VxdWFsKFsnYmlnLnBkZiddKVxuICAgIH0pXG5cbiAgICBpdCgnbWFya3MgZmlsZXMgYmV5b25kIG1heCBhdHRhY2htZW50IGNvdW50IGFzIGV4Y2x1ZGVkJywgKCkgPT4ge1xuICAgICAgY29uc3QgZmlsZXMgPSBbXG4gICAgICAgIG5ldyBGaWxlKFsnYSddLCAnYS50eHQnLCB7IHR5cGU6ICd0ZXh0L3BsYWluJyB9KSxcbiAgICAgICAgbmV3IEZpbGUoWydiJ10sICdiLnR4dCcsIHsgdHlwZTogJ3RleHQvcGxhaW4nIH0pLFxuICAgICAgICBuZXcgRmlsZShbJ2MnXSwgJ2MudHh0JywgeyB0eXBlOiAndGV4dC9wbGFpbicgfSksXG4gICAgICBdXG4gICAgICBjb25zdCByZXN1bHQgPSBwcm9jZXNzSW5jb21pbmdDaGF0SW5wdXRGaWxlcyhmaWxlcywgYmFzZU9wdGlvbnMpXG5cbiAgICAgIGV4cGVjdChyZXN1bHQuZmlsZXNUb0F0dGFjaCkudG9IYXZlTGVuZ3RoKDIpXG4gICAgICBleHBlY3QocmVzdWx0LmV4Y2x1ZGVkRmlsZXMpLnRvRXF1YWwoWydjLnR4dCddKVxuICAgIH0pXG5cbiAgICBpdCgnY291bnRzIGV4aXN0aW5nIGF0dGFjaG1lbnRzIHRvd2FyZCB0aGUgbGltaXQnLCAoKSA9PiB7XG4gICAgICBjb25zdCBmaWxlID0gbmV3IEZpbGUoWydhJ10sICdhLnR4dCcsIHsgdHlwZTogJ3RleHQvcGxhaW4nIH0pXG4gICAgICBjb25zdCByZXN1bHQgPSBwcm9jZXNzSW5jb21pbmdDaGF0SW5wdXRGaWxlcyhbZmlsZV0sIHtcbiAgICAgICAgLi4uYmFzZU9wdGlvbnMsXG4gICAgICAgIGN1cnJlbnRBdHRhY2htZW50Q291bnQ6IDIsXG4gICAgICB9KVxuXG4gICAgICBleHBlY3QocmVzdWx0LmZpbGVzVG9BdHRhY2gpLnRvSGF2ZUxlbmd0aCgwKVxuICAgICAgZXhwZWN0KHJlc3VsdC5leGNsdWRlZEZpbGVzKS50b0VxdWFsKFsnYS50eHQnXSlcbiAgICB9KVxuXG4gICAgaXQoJ2FjY2VwdHMgYXVkaW8gZXh0ZW5zaW9ucycsICgpID0+IHtcbiAgICAgIGNvbnN0IGZpbGUgPSBuZXcgRmlsZShbJ2F1ZGlvJ10sICd2b2ljZS5tcDMnLCB7IHR5cGU6ICdhdWRpby9tcGVnJyB9KVxuICAgICAgY29uc3QgcmVzdWx0ID0gcHJvY2Vzc0luY29taW5nQ2hhdElucHV0RmlsZXMoW2ZpbGVdLCBiYXNlT3B0aW9ucylcblxuICAgICAgZXhwZWN0KHJlc3VsdC5maWxlc1RvQXR0YWNoKS50b0hhdmVMZW5ndGgoMSlcbiAgICAgIGV4cGVjdChyZXN1bHQuZmlsZVNpemVzWyd2b2ljZS5tcDMnXSkudG9CZShmaWxlLnNpemUpXG4gICAgfSlcbiAgfSlcblxuICBkZXNjcmliZSgnYXR0YWNobWVudCBVSSBoZWxwZXJzJywgKCkgPT4ge1xuICAgIGl0KCdvcGVucyB2YWxpZGF0aW9uIG1vZGFsIHdoZW4gZXhjbHVkZWQgb3IgZXhjZWVkZWQgZmlsZXMgZXhpc3QnLCAoKSA9PiB7XG4gICAgICBleHBlY3Qoc2hvdWxkT3BlbkF0dGFjaG1lbnRWYWxpZGF0aW9uTW9kYWwoW10sIFtdKSkudG9CZShmYWxzZSlcbiAgICAgIGV4cGVjdChzaG91bGRPcGVuQXR0YWNobWVudFZhbGlkYXRpb25Nb2RhbChbJ2EucGRmJ10sIFtdKSkudG9CZSh0cnVlKVxuICAgICAgZXhwZWN0KHNob3VsZE9wZW5BdHRhY2htZW50VmFsaWRhdGlvbk1vZGFsKFtdLCBbJ2JpZy5wZGYnXSkpLnRvQmUodHJ1ZSlcbiAgICB9KVxuXG4gICAgaXQoJ2RldGVjdHMgaW1hZ2UgYXR0YWNobWVudHMgYnkgbWltZSBvciBleHRlbnNpb24nLCAoKSA9PiB7XG4gICAgICBleHBlY3QoaXNJbWFnZUF0dGFjaG1lbnRGaWxlKCdpbWFnZS9wbmcnLCAnZG9jLnBkZicpKS50b0JlKHRydWUpXG4gICAgICBleHBlY3QoaXNJbWFnZUF0dGFjaG1lbnRGaWxlKHVuZGVmaW5lZCwgJ3Bob3RvLkpQRycpKS50b0JlKHRydWUpXG4gICAgICBleHBlY3QoaXNJbWFnZUF0dGFjaG1lbnRGaWxlKCdhcHBsaWNhdGlvbi9wZGYnLCAnZG9jLnBkZicpKS50b0JlKGZhbHNlKVxuICAgIH0pXG5cbiAgICBpdCgnaGFuZGxlcyBkcmFnIGxlYXZlIGNvdW50ZXIgYW5kIG92ZXJsYXknLCAoKSA9PiB7XG4gICAgICBleHBlY3Qoc2hvdWxkSGFuZGxlRHJhZ0xlYXZlRXZlbnQoZmFsc2UsIGZhbHNlKSkudG9CZShmYWxzZSlcbiAgICAgIGV4cGVjdChzaG91bGRIYW5kbGVEcmFnTGVhdmVFdmVudCh0cnVlLCBmYWxzZSkpLnRvQmUodHJ1ZSlcbiAgICAgIGV4cGVjdChkZWNyZW1lbnRGaWxlRHJhZ0NvdW50ZXIoMikpLnRvQmUoMSlcbiAgICAgIGV4cGVjdChkZWNyZW1lbnRGaWxlRHJhZ0NvdW50ZXIoMCkpLnRvQmUoMClcbiAgICAgIGV4cGVjdChzaG91bGRDbGVhckZpbGVEcmFnT3ZlcmxheSgwKSkudG9CZSh0cnVlKVxuICAgICAgZXhwZWN0KHNob3VsZENsZWFyRmlsZURyYWdPdmVybGF5KDEpKS50b0JlKGZhbHNlKVxuICAgIH0pXG5cbiAgICBpdCgnaW50ZXJjZXB0cyB3cmFwcGVyIHBhc3RlIG9ubHkgb3V0c2lkZSB0aGUgZWRpdG9yIHdpdGggZmlsZXMnLCAoKSA9PiB7XG4gICAgICBleHBlY3Qoc2hvdWxkSW50ZXJjZXB0V3JhcHBlclBhc3RlKHRydWUsIDEpKS50b0JlKGZhbHNlKVxuICAgICAgZXhwZWN0KHNob3VsZEludGVyY2VwdFdyYXBwZXJQYXN0ZShmYWxzZSwgMCkpLnRvQmUoZmFsc2UpXG4gICAgICBleHBlY3Qoc2hvdWxkSW50ZXJjZXB0V3JhcHBlclBhc3RlKGZhbHNlLCAyKSkudG9CZSh0cnVlKVxuICAgIH0pXG4gIH0pXG59KVxuIl0sIm1hcHBpbmdzIjoiOzs7QUFBQSxTQUNFQSx3QkFBd0IsRUFDeEJDLHFCQUFxQixFQUNyQkMsMkJBQTJCLEVBQzNC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QUN6RSxDQUFDLENBQUM7SUFFRkYsRUFBRSxDQUFDLGdEQUFnRCxFQUFFLFlBQU07TUFDekRDLE1BQU0sQ0FBQ1QscUJBQXFCLENBQUMsV0FBVyxFQUFFLFNBQVMsQ0FBQyxDQUFDLENBQUNVLElBQUksQ0FBQyxJQUFJLENBQUM7TUFDaEVELE1BQU0sQ0FBQ1QscUJBQXFCLENBQUMrQixTQUFTLEVBQUUsV0FBVyxDQUFDLENBQUMsQ0FBQ3JCLElBQUksQ0FBQyxJQUFJLENBQUM7TUFDaEVELE1BQU0sQ0FBQ1QscUJBQXFCLENBQUMsaUJBQWlCLEVBQUUsU0FBUyxDQUFDLENBQUMsQ0FBQ1UsSUFBSSxDQUFDLEtBQUssQ0FBQztJQUN6RSxDQUFDLENBQUM7SUFFRkYsRUFBRSxDQUFDLHdDQUF3QyxFQUFFLFlBQU07TUFDakRDLE1BQU0sQ0FBQ0wsMEJBQTBCLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUNNLElBQUksQ0FBQyxLQUFLLENBQUM7TUFDNURELE1BQU0sQ0FBQ0wsMEJBQTBCLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUNNLElBQUksQ0FBQyxJQUFJLENBQUM7TUFDMURELE1BQU0sQ0FBQ1Ysd0JBQXdCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQ1csSUFBSSxDQUFDLENBQUMsQ0FBQztNQUMzQ0QsTUFBTSxDQUFDVix3QkFBd0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDVyxJQUFJLENBQUMsQ0FBQyxDQUFDO01BQzNDRCxNQUFNLENBQUNOLDBCQUEwQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUNPLElBQUksQ0FBQyxJQUFJLENBQUM7TUFDaERELE1BQU0sQ0FBQ04sMEJBQTBCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQ08sSUFBSSxDQUFDLEtBQUssQ0FBQztJQUNuRCxDQUFDLENBQUM7SUFFRkYsRUFBRSxDQUFDLDZEQUE2RCxFQUFFLFlBQU07TUFDdEVDLE1BQU0sQ0FBQ0osMkJBQTJCLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUNLLElBQUksQ0FBQyxLQUFLLENBQUM7TUFDeERELE1BQU0sQ0FBQ0osMkJBQTJCLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUNLLElBQUksQ0FBQyxLQUFLLENBQUM7TUFDekRELE1BQU0sQ0FBQ0osMkJBQTJCLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUNLLElBQUksQ0FBQyxJQUFJLENBQUM7SUFDMUQsQ0FBQyxDQUFDO0VBQ0osQ0FBQyxDQUFDO0FBQ0osQ0FBQyxDQUFDIiwiaWdub3JlTGlzdCI6W119
|