@projectcor/maia-components 2.29.0 → 2.30.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 +55 -0
- package/lib/components/atoms/ActionableButton.js +60 -0
- package/lib/components/atoms/AgentActivityIndicator/AgentActivityIndicator.js +89 -0
- package/lib/components/atoms/AgentActivityIndicator/AgentActivityIndicator.styles.js +21 -0
- package/lib/components/atoms/AgentActivityIndicator/AgentActivityIndicator.utils.js +9 -0
- package/lib/components/atoms/AgentActivityIndicator/index.js +2 -0
- package/lib/components/atoms/ApprovalBox/ApprovalBox.js +209 -0
- package/lib/components/atoms/ApprovalBox/ApprovalBox.styles.js +93 -0
- package/lib/components/atoms/ApprovalBox/index.js +2 -0
- package/lib/components/atoms/AttachmentCard/AttachmentCard.js +218 -0
- package/lib/components/atoms/AttachmentCard/AttachmentCard.styles.js +52 -0
- package/lib/components/atoms/AttachmentCard/AttachmentCardAudio.js +448 -0
- package/lib/components/atoms/AttachmentCard/AttachmentCardAudio.styles.js +58 -0
- package/lib/components/atoms/AttachmentCard/AttachmentCardImage.js +55 -0
- package/lib/components/atoms/AttachmentCard/AttachmentCardImage.styles.js +14 -0
- package/lib/components/atoms/AttachmentCard/index.js +4 -0
- package/lib/components/atoms/AttachmentPreviewModal/AttachmentPreviewModal.js +442 -0
- package/lib/components/atoms/AttachmentPreviewModal/AttachmentPreviewModal.styles.js +119 -0
- package/lib/components/atoms/AttachmentPreviewModal/ExcelPreview.js +222 -0
- package/lib/components/atoms/AttachmentPreviewModal/PptPreview.js +313 -0
- package/lib/components/atoms/AttachmentPreviewModal/WordPreview.js +128 -0
- package/lib/components/atoms/AttachmentPreviewModal/index.js +2 -0
- package/lib/components/atoms/Backdrop/Backdrop.js +17 -0
- package/lib/components/atoms/Backdrop/Backdrop.styles.js +9 -0
- package/lib/components/atoms/Backdrop/index.js +2 -0
- package/lib/components/atoms/CardItem.js +7 -0
- package/lib/components/atoms/CardMenu/CardMenu.js +131 -0
- package/lib/components/atoms/CardMenu/index.js +2 -0
- package/lib/components/atoms/CardMenu/styles.js +21 -0
- package/lib/components/atoms/ChatClientSelector/ChatClientSelector.js +77 -0
- package/lib/components/atoms/ChatClientSelector/index.js +2 -0
- package/lib/components/atoms/ChatDisclaimerMessage/ChatDisclaimerMessage.js +9 -0
- package/lib/components/atoms/ChatDisclaimerMessage/index.js +2 -0
- package/lib/components/atoms/ChatDisclaimerMessage/styles.js +6 -0
- package/lib/components/atoms/Checkbox/Checkbox.js +34 -0
- package/lib/components/atoms/Checkbox/index.js +2 -0
- package/lib/components/atoms/Checkbox/styles.js +39 -0
- package/lib/components/atoms/Chip/Chip.js +150 -0
- package/lib/components/atoms/Chip/index.js +2 -0
- package/lib/components/atoms/Chip/styles.js +43 -0
- package/lib/components/atoms/ChipLlm/ChipLlm.js +45 -0
- package/lib/components/atoms/ChipLlm/ChipLlm.style.js +21 -0
- package/lib/components/atoms/ChipLlm/index.js +2 -0
- package/lib/components/atoms/ChipStatus/ChipStatus.interface.js +2 -0
- package/lib/components/atoms/ChipStatus/ChipStatus.js +14 -0
- package/lib/components/atoms/ChipStatus/ChipStatus.styles.js +27 -0
- package/lib/components/atoms/ChipStatus/index.js +2 -0
- package/lib/components/atoms/ClearButton.js +6 -0
- package/lib/components/atoms/ClientSelector/ClientSelector.js +146 -0
- package/lib/components/atoms/ClientSelector/ClientSelector.styles.js +15 -0
- package/lib/components/atoms/ClientSelector/index.js +2 -0
- package/lib/components/atoms/ContextMentionChip/ContextMentionChip.js +38 -0
- package/lib/components/atoms/ContextMentionChip/ContextMentionChip.styles.js +188 -0
- package/lib/components/atoms/ContextMentionChip/MentionOverflowLabel.js +39 -0
- package/lib/components/atoms/ContextMentionChip/buildChipElement.js +434 -0
- package/lib/components/atoms/ContextMentionChip/index.js +4 -0
- package/lib/components/atoms/ContextMentionEditor/ContextMentionEditor.js +411 -0
- package/lib/components/atoms/ContextMentionEditor/ContextMentionEditor.styles.js +10 -0
- package/lib/components/atoms/ContextMentionEditor/index.js +2 -0
- package/lib/components/atoms/ContextMentionItem/ContextMentionItem.js +309 -0
- package/lib/components/atoms/ContextMentionItem/ContextMentionItem.styles.js +157 -0
- package/lib/components/atoms/ContextMentionItem/index.js +2 -0
- package/lib/components/atoms/ContextMentionPopover/ContextMentionPopover.js +307 -0
- package/lib/components/atoms/ContextMentionPopover/ContextMentionPopover.styles.js +108 -0
- package/lib/components/atoms/ContextMentionPopover/index.js +3 -0
- package/lib/components/atoms/CopyToClipboard.js +70 -0
- package/lib/components/atoms/EditableLabel/EditableLabel.js +110 -0
- package/lib/components/atoms/EditableLabel/index.js +2 -0
- package/lib/components/atoms/EditableLabel/styles.js +7 -0
- package/lib/components/atoms/EmptySearchClients/EmptySearchClients.js +22 -0
- package/lib/components/atoms/EmptySearchClients/EmptySearchClients.styles.js +18 -0
- package/lib/components/atoms/EmptySearchClients/index.js +2 -0
- package/lib/components/atoms/EmptySearchProjects/EmptySearchProjects.js +19 -0
- package/lib/components/atoms/EmptySearchProjects/EmptySearchProjects.styles.js +15 -0
- package/lib/components/atoms/EmptySearchProjects/index.js +2 -0
- package/lib/components/atoms/EntitySelector/EntitySelector.js +247 -0
- package/lib/components/atoms/EntitySelector/EntitySelector.skeleton.js +38 -0
- package/lib/components/atoms/EntitySelector/EntitySelector.styles.js +67 -0
- package/lib/components/atoms/EntitySelector/index.js +2 -0
- package/lib/components/atoms/ErrorSearchClients/ErrorSearchClients.js +14 -0
- package/lib/components/atoms/ErrorSearchClients/ErrorSearchClients.styles.js +15 -0
- package/lib/components/atoms/ErrorSearchFaqs/ErrorSearchFaqs.js +14 -0
- package/lib/components/atoms/ErrorSearchFaqs/ErrorSearchFaqs.style.js +15 -0
- package/lib/components/atoms/ErrorSearchFaqs/index.js +2 -0
- package/lib/components/atoms/ErrorSearchProjects/ErrorSearchProjects.js +18 -0
- package/lib/components/atoms/ErrorSearchProjects/ErrorSearchProjects.style.js +15 -0
- package/lib/components/atoms/ErrorSearchProjects/index.js +2 -0
- package/lib/components/atoms/Expand/Expand.js +32 -0
- package/lib/components/atoms/Expand/index.js +2 -0
- package/lib/components/atoms/Fade/Fade.js +56 -0
- package/lib/components/atoms/Fade/index.js +2 -0
- package/lib/components/atoms/FeedbackButton/FeedbackButton.js +59 -0
- package/lib/components/atoms/FeedbackButton/FeedbackButton.styles.js +14 -0
- package/lib/components/atoms/FeedbackButton/index.js +2 -0
- package/lib/components/atoms/FrequentlyAskedQuestions/FrequentlyAskedQuestions.js +138 -0
- package/lib/components/atoms/FrequentlyAskedQuestions/FrequentlyAskedQuestions.skeleton.js +44 -0
- package/lib/components/atoms/FrequentlyAskedQuestions/FrequentlyAskedQuestions.styles.js +43 -0
- package/lib/components/atoms/FrequentlyAskedQuestions/index.js +2 -0
- package/lib/components/atoms/FrequentlyUsedActions/FrequentlyUsedActions.js +122 -0
- package/lib/components/atoms/FrequentlyUsedActions/FrequentlyUsedActions.skeleton.js +43 -0
- package/lib/components/atoms/FrequentlyUsedActions/FrequentlyUsedActions.styles.js +62 -0
- package/lib/components/atoms/FrequentlyUsedActions/index.js +2 -0
- package/lib/components/atoms/GoBackButton.js +24 -0
- package/lib/components/atoms/HelpButton.js +44 -0
- package/lib/components/atoms/IconButton.js +56 -0
- package/lib/components/atoms/ImagePreview/ImagePreview.js +96 -0
- package/lib/components/atoms/ImagePreview/ImagePreview.styles.js +70 -0
- package/lib/components/atoms/Input/CustomInput.interface.js +2 -0
- package/lib/components/atoms/Input/CustomInput.js +91 -0
- package/lib/components/atoms/Input/CustomInput.styles.js +39 -0
- package/lib/components/atoms/Input/index.js +2 -0
- package/lib/components/atoms/ListMenuOption/ListMenuOption.js +41 -0
- package/lib/components/atoms/ListMenuOption/index.js +2 -0
- package/lib/components/atoms/ListMenuOption/styles.js +9 -0
- package/lib/components/atoms/Loader.js +41 -0
- package/lib/components/atoms/LoadingFaqs/LoadingFaqs.js +11 -0
- package/lib/components/atoms/LoadingFaqs/LoadingFaqs.style.js +6 -0
- package/lib/components/atoms/LoadingFaqs/index.js +2 -0
- package/lib/components/atoms/LoadingSearchClients/LoadingSearchClients.js +11 -0
- package/lib/components/atoms/LoadingSearchClients/LoadingSearchClients.styles.js +6 -0
- package/lib/components/atoms/LoadingSearchClients/index.js +2 -0
- package/lib/components/atoms/LoadingSearchProjects/LoadingSearchProjects.js +14 -0
- package/lib/components/atoms/LoadingSearchProjects/LoadingSearchProjects.style.js +10 -0
- package/lib/components/atoms/LoadingSearchProjects/index.js +2 -0
- package/lib/components/atoms/LoadingText/LoadingText.js +18 -0
- package/lib/components/atoms/LoadingText/index.js +2 -0
- package/lib/components/atoms/LoadingText/styles.js +7 -0
- package/lib/components/atoms/MAIAButton/MAIAButton.js +33 -0
- package/lib/components/atoms/MAIAButton/index.js +2 -0
- package/lib/components/atoms/MAIAError/MAIAError.js +15 -0
- package/lib/components/atoms/MAIAError/index.js +2 -0
- package/lib/components/atoms/MAIAInput/MAIAInput.js +1058 -0
- package/lib/components/atoms/MAIAInput/MAIAInputEditor.js +266 -0
- package/lib/components/atoms/MAIAInput/index.js +2 -0
- package/lib/components/atoms/MAIAInput/maiaInputLayout.js +25 -0
- package/lib/components/atoms/MAIAInput/styles.js +182 -0
- package/lib/components/atoms/MAIAMessage/MAIAMessage.interfaces.js +2 -0
- package/lib/components/atoms/MAIAMessage/MAIAMessage.js +22 -0
- package/lib/components/atoms/MAIAMessage/index.js +2 -0
- package/lib/components/atoms/MAIAMessage/styles.js +7 -0
- package/lib/components/atoms/MaiaStreamdown/MaiaStreamdown.config.js +23 -0
- package/lib/components/atoms/MaiaStreamdown/MaiaStreamdown.interfaces.js +2 -0
- package/lib/components/atoms/MaiaStreamdown/MaiaStreamdown.js +51 -0
- package/lib/components/atoms/MaiaStreamdown/MaiaStreamdown.styles.js +26 -0
- package/lib/components/atoms/MaiaStreamdown/index.js +2 -0
- package/lib/components/atoms/MaiaWrapper/MaiaWrapper.js +18 -0
- package/lib/components/atoms/MaiaWrapper/MaiaWrapperBase.js +84 -0
- package/lib/components/atoms/MaiaWrapper/ModernMaiaWrapper.js +15 -0
- package/lib/components/atoms/MaiaWrapper/index.js +3 -0
- package/lib/components/atoms/MaiaWrapper/styles.js +21 -0
- package/lib/components/atoms/ModalClientAccess/ModalClientAccess.interface.js +2 -0
- package/lib/components/atoms/ModalClientAccess/ModalClientAccess.js +84 -0
- package/lib/components/atoms/ModalClientAccess/ModalClientAccess.styles.js +53 -0
- package/lib/components/atoms/ModalClientAccess/index.js +2 -0
- package/lib/components/atoms/ModalInfo/ModalInfo.js +52 -0
- package/lib/components/atoms/ModalInfo/ModalInfoContent.js +7 -0
- package/lib/components/atoms/ModalInfo/index.js +3 -0
- package/lib/components/atoms/ModalInfo/styles.js +7 -0
- package/lib/components/atoms/ModalProject/ModalProject.interface.js +2 -0
- package/lib/components/atoms/ModalProject/ModalProject.js +112 -0
- package/lib/components/atoms/ModalProject/ModalProject.style.js +59 -0
- package/lib/components/atoms/ModalProject/index.js +2 -0
- package/lib/components/atoms/NextPageLoader.js +33 -0
- package/lib/components/atoms/OnboardingModalButton/OnboardingModal.js +28 -0
- package/lib/components/atoms/OnboardingModalButton/OnboardingModalButton.js +180 -0
- package/lib/components/atoms/OnboardingModalButton/OnboardingModalButton.styles.js +34 -0
- package/lib/components/atoms/OnboardingModalButton/index.js +3 -0
- package/lib/components/atoms/OptionAccessibility/OptionAccessibility.js +131 -0
- package/lib/components/atoms/OptionAccessibility/OptionAccessibility.styles.js +59 -0
- package/lib/components/atoms/OptionAccessibility/index.js +2 -0
- package/lib/components/atoms/OptionCorPermission/OptionCorPermission.js +27 -0
- package/lib/components/atoms/OptionCorPermission/OptionCorPermission.styles.js +18 -0
- package/lib/components/atoms/OptionCorPermission/index.js +2 -0
- package/lib/components/atoms/PrimaryButton.js +31 -0
- package/lib/components/atoms/ProjectSelector/ProjectSelector.js +77 -0
- package/lib/components/atoms/ProjectSelector/ProjectSelector.styles.js +61 -0
- package/lib/components/atoms/ProjectSelector/index.js +2 -0
- package/lib/components/atoms/SecondaryButton.js +20 -0
- package/lib/components/atoms/SessionGeneratingDot/SessionGeneratingDot.js +20 -0
- package/lib/components/atoms/SessionGeneratingDot/SessionGeneratingDot.styles.js +20 -0
- package/lib/components/atoms/SessionGeneratingDot/index.js +2 -0
- package/lib/components/atoms/Skeleton/Skeleton.js +36 -0
- package/lib/components/atoms/Skeleton/index.js +2 -0
- package/lib/components/atoms/SlashCommandChip/SlashCommandChip.js +16 -0
- package/lib/components/atoms/SlashCommandChip/SlashCommandChip.styles.js +24 -0
- package/lib/components/atoms/SlashCommandChip/buildSlashChipElement.js +18 -0
- package/lib/components/atoms/SlashCommandChip/index.js +4 -0
- package/lib/components/atoms/SlashCommandDropdown/SlashCommandDropdown.js +210 -0
- package/lib/components/atoms/SlashCommandDropdown/SlashCommandDropdown.styles.js +53 -0
- package/lib/components/atoms/SlashCommandDropdown/index.js +2 -0
- package/lib/components/atoms/Switch/Switch.js +27 -0
- package/lib/components/atoms/Switch/Switch.styles.js +22 -0
- package/lib/components/atoms/Switch/index.js +2 -0
- package/lib/components/atoms/TextArea/CustomTextArea.interface.js +2 -0
- package/lib/components/atoms/TextArea/CustomTextArea.js +93 -0
- package/lib/components/atoms/TextArea/CustomTextArea.styles.js +25 -0
- package/lib/components/atoms/TextArea/TextArea.interfaces.js +2 -0
- package/lib/components/atoms/TextArea/TextArea.js +172 -0
- package/lib/components/atoms/TextArea/TextArea.styles.js +16 -0
- package/lib/components/atoms/TextArea/index.js +2 -0
- package/lib/components/atoms/ThirdButton.js +19 -0
- package/lib/components/atoms/VideoModal/VideoModal.js +76 -0
- package/lib/components/atoms/VideoModal/index.js +2 -0
- package/lib/components/atoms/WithAppCfg.js +26 -0
- package/lib/components/atoms/WithFeatureValidation.js +23 -0
- package/lib/components/atoms/WrapperCenterIcon/WrapperCenterIcon.js +9 -0
- package/lib/components/atoms/WrapperCenterIcon/WrapperCenterIcon.styles.js +6 -0
- package/lib/components/atoms/WrapperCenterIcon/index.js +2 -0
- package/lib/components/atoms/icons/AIIcon.js +23 -0
- package/lib/components/atoms/icons/AacFile.js +39 -0
- package/lib/components/atoms/icons/AccessibilityIcon.js +42 -0
- package/lib/components/atoms/icons/ActionAssignIcon.js +111 -0
- package/lib/components/atoms/icons/ActionCalendarIcon.js +112 -0
- package/lib/components/atoms/icons/ActionChargeHoursIcon.js +111 -0
- package/lib/components/atoms/icons/ActionChatIcon.js +71 -0
- package/lib/components/atoms/icons/ActionCreateIcon.js +91 -0
- package/lib/components/atoms/icons/ActionCreateReworkIcon.js +39 -0
- package/lib/components/atoms/icons/ActionCreateSubtaskIcon.js +37 -0
- package/lib/components/atoms/icons/ActionEditIcon.js +39 -0
- package/lib/components/atoms/icons/ActionSummaryMessagesIcon.js +88 -0
- package/lib/components/atoms/icons/ActionSummaryTaskIcon.js +37 -0
- package/lib/components/atoms/icons/ActionTimeBackIcon.js +112 -0
- package/lib/components/atoms/icons/AgentMaiaIcon.js +31 -0
- package/lib/components/atoms/icons/Brain.js +77 -0
- package/lib/components/atoms/icons/CorAccessIcon.js +41 -0
- package/lib/components/atoms/icons/CorLogo.js +76 -0
- package/lib/components/atoms/icons/CsvFile.js +41 -0
- package/lib/components/atoms/icons/DocFile.js +41 -0
- package/lib/components/atoms/icons/DocxFile.js +41 -0
- package/lib/components/atoms/icons/EmptyClientIllustration.js +67 -0
- package/lib/components/atoms/icons/EmptyHistory.js +46 -0
- package/lib/components/atoms/icons/EmptySearchIllustration.js +37 -0
- package/lib/components/atoms/icons/EmptyState.js +84 -0
- package/lib/components/atoms/icons/EmptyStateAgents.js +58 -0
- package/lib/components/atoms/icons/ErrorIcon.js +14 -0
- package/lib/components/atoms/icons/ErrorSearchIllustration.js +52 -0
- package/lib/components/atoms/icons/ErrorState.js +51 -0
- package/lib/components/atoms/icons/FaqChevronIcon.js +39 -0
- package/lib/components/atoms/icons/FaqsIcon.js +51 -0
- package/lib/components/atoms/icons/FlacIcon.js +39 -0
- package/lib/components/atoms/icons/FolderIcon.js +29 -0
- package/lib/components/atoms/icons/HomeIcon.js +30 -0
- package/lib/components/atoms/icons/ImageFile.js +46 -0
- package/lib/components/atoms/icons/M4aFile.js +39 -0
- package/lib/components/atoms/icons/MAIAIcon.js +20 -0
- package/lib/components/atoms/icons/MAIAIsologo.js +65 -0
- package/lib/components/atoms/icons/MDFile.js +41 -0
- package/lib/components/atoms/icons/MaiaChatLayoutFloatingIcon.js +41 -0
- package/lib/components/atoms/icons/MaiaChatLayoutFullscreenIcon.js +41 -0
- package/lib/components/atoms/icons/MaiaChatLayoutMenuIcon.js +33 -0
- package/lib/components/atoms/icons/MaiaChatLayoutSidebarIcon.js +41 -0
- package/lib/components/atoms/icons/MaiaInputAddIcon.js +42 -0
- package/lib/components/atoms/icons/MaiaInputAttachIcon.js +29 -0
- package/lib/components/atoms/icons/MaiaInputAttachmentImageIcon.js +33 -0
- package/lib/components/atoms/icons/MaiaInputDeepSearchIcon.js +35 -0
- package/lib/components/atoms/icons/MaiaInputMentionIcon.js +44 -0
- package/lib/components/atoms/icons/MaiaInputRobotIcon.js +29 -0
- package/lib/components/atoms/icons/MaiaInputSendIcon.js +29 -0
- package/lib/components/atoms/icons/MaiaInputSlashIcon.js +29 -0
- package/lib/components/atoms/icons/MaiaInputWebSearchIcon.js +35 -0
- package/lib/components/atoms/icons/MaiaSettingsProject.js +111 -0
- package/lib/components/atoms/icons/MaiaSettingsProjectV2.js +193 -0
- package/lib/components/atoms/icons/MaiaSparkleIcon.js +75 -0
- package/lib/components/atoms/icons/MaiaStoreIcon.js +31 -0
- package/lib/components/atoms/icons/Mp3File.js +39 -0
- package/lib/components/atoms/icons/Mp4File.js +39 -0
- package/lib/components/atoms/icons/MyAgentsNavIcon.js +51 -0
- package/lib/components/atoms/icons/NewChat.js +29 -0
- package/lib/components/atoms/icons/NotionIcon.js +36 -0
- package/lib/components/atoms/icons/OgaFile.js +39 -0
- package/lib/components/atoms/icons/OggFile.js +39 -0
- package/lib/components/atoms/icons/PdfFile.js +39 -0
- package/lib/components/atoms/icons/PptFile.js +47 -0
- package/lib/components/atoms/icons/PptxFile.js +49 -0
- package/lib/components/atoms/icons/RetryIcon.js +34 -0
- package/lib/components/atoms/icons/SkillIcon.js +30 -0
- package/lib/components/atoms/icons/SkillsNavIcon.js +27 -0
- package/lib/components/atoms/icons/SubtaskIcon.js +36 -0
- package/lib/components/atoms/icons/TaskLinkIcon.js +27 -0
- package/lib/components/atoms/icons/TelescopeIcon.js +60 -0
- package/lib/components/atoms/icons/TemplateGradientIcon.js +42 -0
- package/lib/components/atoms/icons/TextFile.js +41 -0
- package/lib/components/atoms/icons/WavFile.js +39 -0
- package/lib/components/atoms/icons/WebmFile.js +50 -0
- package/lib/components/atoms/icons/XlsFile.js +42 -0
- package/lib/components/atoms/icons/XlsxFile.js +42 -0
- package/lib/components/atoms/icons/index.js +50 -0
- package/lib/components/atoms/index.js +42 -0
- package/lib/components/index.js +11 -0
- package/lib/components/molecules/AbmSection/AbmAccessibilitySection/AbmAccessibilitySection.interface.js +2 -0
- package/lib/components/molecules/AbmSection/AbmAccessibilitySection/AbmAccessibilitySection.js +149 -0
- package/lib/components/molecules/AbmSection/AbmAccessibilitySection/AbmAccessibilitySection.styles.js +53 -0
- package/lib/components/molecules/AbmSection/AbmGeneralSection.js +415 -0
- package/lib/components/molecules/AbmSection/AbmGeneralSection.styles.js +152 -0
- package/lib/components/molecules/AbmSection/AbmKnowledgeSection.js +374 -0
- package/lib/components/molecules/AbmSection/AbmKnowledgeSection.styles.js +106 -0
- package/lib/components/molecules/AbmSection/AbmLoaderFiles.js +92 -0
- package/lib/components/molecules/AbmSection/AbmLoaderFiles.styles.js +57 -0
- package/lib/components/molecules/AbmSection/index.js +4 -0
- package/lib/components/molecules/ChatAIClientSelector/ChatAIClientSelector.js +52 -0
- package/lib/components/molecules/ChatAIClientSelector/index.js +2 -0
- package/lib/components/molecules/ChatAIContent/ChatAIContent.js +117 -0
- package/lib/components/molecules/ChatAIContent/ChatAIContent.skeleton.js +187 -0
- package/lib/components/molecules/ChatAIContent/ChatAIContent.styles.js +6 -0
- package/lib/components/molecules/ChatAIContent/index.js +2 -0
- package/lib/components/molecules/ChatAIHistory/ChatAIHistory.js +241 -0
- package/lib/components/molecules/ChatAIHistory/index.js +2 -0
- package/lib/components/molecules/ChatAIHistory/styles.js +22 -0
- package/lib/components/molecules/ChatAIHome/ChatAIHome.js +649 -0
- package/lib/components/molecules/ChatAIHome/ChatAIHomeMaiaker.js +115 -0
- package/lib/components/molecules/ChatAIHome/ChatAIHomeMaiaker.styles.js +95 -0
- package/lib/components/molecules/ChatAIHome/index.js +2 -0
- package/lib/components/molecules/ChatAIHome/styles.js +335 -0
- package/lib/components/molecules/ChatAIMessages/ChatAICreateAgentActions.js +137 -0
- package/lib/components/molecules/ChatAIMessages/ChatAIMessages.js +853 -0
- package/lib/components/molecules/ChatAIMessages/ChatAISuggestions.js +47 -0
- package/lib/components/molecules/ChatAIMessages/ChatAISuggestions.styles.js +37 -0
- package/lib/components/molecules/ChatAIMessages/README.md +101 -0
- package/lib/components/molecules/ChatAIMessages/index.js +2 -0
- package/lib/components/molecules/ChatAIMessages/newStyles.js +131 -0
- package/lib/components/molecules/ChatAIMessages/styles.js +94 -0
- package/lib/components/molecules/ChatAIModal/ChatAIModal.js +1217 -0
- package/lib/components/molecules/ChatAIModal/ChatAIModal.styles.js +58 -0
- package/lib/components/molecules/ChatAIModal/components/ChatAiAgentOptions/ChatAiAgentOptions.js +127 -0
- package/lib/components/molecules/ChatAIModal/components/ChatAiAgentOptions/ChatAiAgentOptions.styles.js +34 -0
- package/lib/components/molecules/ChatAIModal/components/ChatAiAgentOptions/index.js +2 -0
- package/lib/components/molecules/ChatAIModal/components/ChatAiModalFooter/ChatAiModalFooter.js +189 -0
- package/lib/components/molecules/ChatAIModal/components/ChatAiModalFooter/ChatAiModalFooter.styles.js +26 -0
- package/lib/components/molecules/ChatAIModal/components/ChatAiModalFooter/index.js +2 -0
- package/lib/components/molecules/ChatAIModal/components/ChatAiModalHeader/ChatAiModalHeader.js +448 -0
- package/lib/components/molecules/ChatAIModal/components/ChatAiModalHeader/ChatAiModalHeader.styles.js +108 -0
- package/lib/components/molecules/ChatAIModal/components/ChatAiModalHeader/index.js +2 -0
- package/lib/components/molecules/ChatAIModal/components/MaiaMinimizedPill/MaiaMinimizedPill.js +48 -0
- package/lib/components/molecules/ChatAIModal/components/MaiaMinimizedPill/MaiaMinimizedPill.styles.js +38 -0
- package/lib/components/molecules/ChatAIModal/components/MaiaMinimizedPill/index.js +2 -0
- package/lib/components/molecules/ChatAIModal/constants.js +40 -0
- package/lib/components/molecules/ChatAIModal/floatingPanelMotion/FloatingPanelMotion.js +16 -0
- package/lib/components/molecules/ChatAIModal/floatingPanelMotion/FloatingPanelMotion.styles.js +12 -0
- package/lib/components/molecules/ChatAIModal/floatingPanelMotion/constants.js +13 -0
- package/lib/components/molecules/ChatAIModal/floatingPanelMotion/index.js +3 -0
- package/lib/components/molecules/ChatAIModal/floatingPanelMotion/useFloatingPanelDragTilt.js +57 -0
- package/lib/components/molecules/ChatAIModal/index.js +2 -0
- package/lib/components/molecules/ChatAIModal/layout.js +74 -0
- package/lib/components/molecules/ChatAIMyAgents/ChatAIMyAgents.js +457 -0
- package/lib/components/molecules/ChatAIMyAgents/ChatAIMyAgents.styles.js +218 -0
- package/lib/components/molecules/ChatAIMySkills/ChatAIMySkills.js +357 -0
- package/lib/components/molecules/ChatAIMySkills/ChatAIMySkills.styles.js +145 -0
- package/lib/components/molecules/ChatAIMySkills/index.js +2 -0
- package/lib/components/molecules/ChatAIProjectSelector/ChatAIProjectSelector.js +48 -0
- package/lib/components/molecules/ChatAIProjectSelector/ChatAIProjectSelector.styles.js +49 -0
- package/lib/components/molecules/ChatAIProjectSelector/index.js +2 -0
- package/lib/components/molecules/ChatFooter/ChatFooter.js +337 -0
- package/lib/components/molecules/ChatFooter/ChatFooterCorAccess.js +32 -0
- package/lib/components/molecules/ChatFooter/ChatFooterCorAccess.styles.js +14 -0
- package/lib/components/molecules/ChatFooter/ChatFooterFaqs.js +201 -0
- package/lib/components/molecules/ChatFooter/ChatFooterFaqs.styles.js +51 -0
- package/lib/components/molecules/ChatFooter/index.js +2 -0
- package/lib/components/molecules/ChatFooter/styles.js +23 -0
- package/lib/components/molecules/ContextMentionInput/ContextMentionInput.js +62 -0
- package/lib/components/molecules/ContextMentionInput/ContextMentionInput.styles.js +6 -0
- package/lib/components/molecules/ContextMentionInput/index.js +2 -0
- package/lib/components/molecules/MessageFeedback/MessageFeedback.js +118 -0
- package/lib/components/molecules/MessageFeedback/index.js +2 -0
- package/lib/components/molecules/MessageFeedback/styles.js +14 -0
- package/lib/components/molecules/ProjectSummaryChat/ProjectSummaryChat.js +127 -0
- package/lib/components/molecules/ProjectSummaryChat/index.js +2 -0
- package/lib/components/molecules/ProjectSummaryChat/styles.js +8 -0
- package/lib/components/molecules/ProjectSummaryConfig/ProjectSummaryConfig.js +152 -0
- package/lib/components/molecules/ProjectSummaryConfig/index.js +2 -0
- package/lib/components/molecules/ProjectSummaryConfig/styles.js +86 -0
- package/lib/components/molecules/ProjectSummaryContent/ProjectSummaryContent.js +49 -0
- package/lib/components/molecules/ProjectSummaryContent/index.js +2 -0
- package/lib/components/molecules/ProjectSummaryModal/ProjectSummaryModal.js +19 -0
- package/lib/components/molecules/ProjectSummaryModal/index.js +2 -0
- package/lib/components/molecules/ProjectSummaryModal/styles.js +2 -0
- package/lib/components/molecules/Sidebar/Sidebar.js +715 -0
- package/lib/components/molecules/Sidebar/Sidebar.layout.styles.js +157 -0
- package/lib/components/molecules/Sidebar/Sidebar.skeleton.js +48 -0
- package/lib/components/molecules/Sidebar/Sidebar.styles.js +75 -0
- package/lib/components/molecules/Sidebar/index.js +2 -0
- package/lib/components/organisms/AbmAgentModal/AbmAgentModal.js +1420 -0
- package/lib/components/organisms/AbmAgentModal/AbmAgentModal.styles.js +93 -0
- package/lib/components/organisms/AbmAgentModal/index.js +2 -0
- package/lib/components/organisms/AbmSkillGenerateModal/AbmSkillGenerateModal.js +175 -0
- package/lib/components/organisms/AbmSkillGenerateModal/AbmSkillGenerateModal.styles.js +34 -0
- package/lib/components/organisms/AbmSkillGenerateModal/index.js +2 -0
- package/lib/components/organisms/AbmSkillModal/AbmSkillModal.js +432 -0
- package/lib/components/organisms/AbmSkillModal/AbmSkillModal.styles.js +98 -0
- package/lib/components/organisms/AbmSkillModal/index.js +2 -0
- package/lib/components/organisms/ChatAI/ChatAI.js +167 -0
- package/lib/components/organisms/ChatAI/index.js +2 -0
- package/lib/components/organisms/ChatAI/styles.js +7 -0
- package/lib/components/organisms/ClientAIButton/ClientAIButton.js +23 -0
- package/lib/components/organisms/ClientAIButton/index.js +2 -0
- package/lib/components/organisms/DeleteAgentModal/DeleteAgentModal.js +86 -0
- package/lib/components/organisms/DeleteAgentModal/DeleteAgentModal.styles.js +39 -0
- package/lib/components/organisms/DeleteAgentModal/index.js +2 -0
- package/lib/components/organisms/DeleteQuestionModal/DeleteQuestionModal.js +122 -0
- package/lib/components/organisms/DeleteQuestionModal/DeleteQuestionModal.styles.js +47 -0
- package/lib/components/organisms/DeleteQuestionModal/index.js +2 -0
- package/lib/components/organisms/EditQuestionModal/EditQuestionModal.js +138 -0
- package/lib/components/organisms/EditQuestionModal/EditQuestionModal.styles.js +69 -0
- package/lib/components/organisms/EditQuestionModal/index.js +2 -0
- package/lib/components/organisms/ModalFileExceeds/ModalFileExceeds.js +113 -0
- package/lib/components/organisms/ModalFileExceeds/ModalFileExceeds.styles.js +54 -0
- package/lib/components/organisms/ModalFileExceeds/index.js +2 -0
- package/lib/components/organisms/ProjectAIButton/ProjectAIButton.js +26 -0
- package/lib/components/organisms/ProjectAIButton/index.js +2 -0
- package/lib/components/organisms/ProjectSummary/ProjectSummary.js +60 -0
- package/lib/components/organisms/ProjectSummary/index.js +2 -0
- package/lib/components/organisms/ProjectSummary/styles.js +7 -0
- package/lib/components/organisms/SnackBar/Snackbar.interface.js +2 -0
- package/lib/components/organisms/SnackBar/Snackbar.js +73 -0
- package/lib/components/organisms/SnackBar/Snackbar.styles.js +9 -0
- package/lib/components/organisms/SnackBar/index.js +2 -0
- package/lib/components/organisms/SourcesInformation/SourceItem.js +18 -0
- package/lib/components/organisms/SourcesInformation/SourceItem.styles.js +14 -0
- package/lib/components/organisms/SourcesInformation/SourcesInformationModal.js +66 -0
- package/lib/components/organisms/SourcesInformation/SourcesInformationModal.styles.js +27 -0
- package/lib/components/organisms/SourcesInformation/index.js +2 -0
- package/lib/constants/config.js +13 -0
- package/lib/constants/formatExtensions.js +55 -0
- package/lib/constants/gqlClient.js +4 -0
- package/lib/constants/maiaHourAgentAccess.js +15 -0
- package/lib/constants/maiaTaskPanelAccess.js +24 -0
- package/lib/constants/maiaTaskPanelOutsideClick.js +9 -0
- package/lib/constants/maiaTaskPanelZIndex.js +19 -0
- package/lib/constants/permissions/config.js +72 -0
- package/lib/constants/permissions/index.js +3 -0
- package/lib/constants/permissions/types.js +2 -0
- package/lib/constants/permissions/utils.js +18 -0
- package/lib/constants/plannerSyncEvents.js +15 -0
- package/lib/constants/taskLinkIcon.js +15 -0
- package/lib/constants/taskUrls.js +11 -0
- package/lib/context/cor-user.js +31 -0
- package/lib/context/global-context.js +39 -0
- package/lib/dev/DevChatAI.js +101 -0
- package/lib/dev/DevContextMentionInput.js +67 -0
- package/lib/dev/ProjectSummary.js +9 -0
- package/lib/dev/Providers.js +27 -0
- package/lib/exports.js +2 -0
- package/lib/hooks/README.md +192 -0
- package/lib/hooks/index.js +30 -0
- package/lib/hooks/useAccessClient/index.js +2 -0
- package/lib/hooks/useAccessClient/useAccessClient.js +81 -0
- package/lib/hooks/useAgentModel/index.js +2 -0
- package/lib/hooks/useAgentModel/useAgentModel.js +62 -0
- package/lib/hooks/useAgentModel/useCreateAgent.js +128 -0
- package/lib/hooks/useAgentModel/useDeleteAgent.js +88 -0
- package/lib/hooks/useAgentModel/useUpdateAgent.js +129 -0
- package/lib/hooks/useAgentSuggestions.js +60 -0
- package/lib/hooks/useCaretPosition.js +65 -0
- package/lib/hooks/useChatManager/index.js +2 -0
- package/lib/hooks/useChatManager/useChatManager.interface.js +2 -0
- package/lib/hooks/useChatManager/useChatManager.js +1782 -0
- package/lib/hooks/useChatMessages/index.js +2 -0
- package/lib/hooks/useChatMessages/useChatMessages.interface.js +2 -0
- package/lib/hooks/useChatMessages/useChatMessages.js +722 -0
- package/lib/hooks/useChats/index.js +2 -0
- package/lib/hooks/useChats/useChats.interfaces.js +2 -0
- package/lib/hooks/useChats/useChats.js +187 -0
- package/lib/hooks/useClientSearch.js +163 -0
- package/lib/hooks/useContextMentions.js +463 -0
- package/lib/hooks/useContextPinPopover.js +228 -0
- package/lib/hooks/useDebounce.js +18 -0
- package/lib/hooks/useEntitySearch.js +1239 -0
- package/lib/hooks/useEvent.js +93 -0
- package/lib/hooks/useFrequentlyAskedQuestions.js +150 -0
- package/lib/hooks/useFrequentlyUsedActions.js +94 -0
- package/lib/hooks/useKnowledge/deleteKnowledge.js +69 -0
- package/lib/hooks/useKnowledge/downloadKnowledge.js +81 -0
- package/lib/hooks/useKnowledge/index.js +4 -0
- package/lib/hooks/useKnowledge/saveKnowledge.js +107 -0
- package/lib/hooks/useKnowledge/useKnowledgeOperations.js +156 -0
- package/lib/hooks/useMaiaTaskPanelZIndex.js +17 -0
- package/lib/hooks/useMentionAllowedTypes.js +136 -0
- package/lib/hooks/useMentionPopover.js +366 -0
- package/lib/hooks/useMinimizedPillBottomOffset.js +110 -0
- package/lib/hooks/useModal/index.js +2 -0
- package/lib/hooks/useModal/useModal.interfaces.js +2 -0
- package/lib/hooks/useModal/useModal.js +47 -0
- package/lib/hooks/useOnboardingNavigation.js +20 -0
- package/lib/hooks/useOrchestratorStream/index.js +2 -0
- package/lib/hooks/useOrchestratorStream/useOrchestratorStream.interface.js +2 -0
- package/lib/hooks/useOrchestratorStream/useOrchestratorStream.js +269 -0
- package/lib/hooks/useProjectSearch.js +183 -0
- package/lib/hooks/useProjectSummary.js +101 -0
- package/lib/hooks/useProjectSummaryConfig.js +211 -0
- package/lib/hooks/useProjects.js +46 -0
- package/lib/hooks/useRecentClientsSearch.js +150 -0
- package/lib/hooks/useRecentContexts.js +86 -0
- package/lib/hooks/useResize.js +29 -0
- package/lib/hooks/useSlashCommands.js +84 -0
- package/lib/hooks/useSmoothStreamText/index.js +2 -0
- package/lib/hooks/useSmoothStreamText/useSmoothStreamText.js +197 -0
- package/lib/hooks/useSnackBarManager/useSnackBarManager.js +41 -0
- package/lib/hooks/useStreamResponse.js +112 -0
- package/lib/hooks/useStreamdownStyles.js +13 -0
- package/lib/hooks/useStreamingMessage/index.js +2 -0
- package/lib/hooks/useStreamingMessage/useStreamingMessage.js +18 -0
- package/lib/hooks/useT.js +17 -0
- package/lib/hooks/useTabTaskDefault.js +33 -0
- package/lib/hooks/useTaskPanel.js +22 -0
- package/lib/hooks/useTextOverflowEllipsisTooltip.js +34 -0
- package/lib/hooks/useToggle.js +19 -0
- package/lib/hooks/useToggleFavorite/index.js +2 -0
- package/lib/hooks/useToggleFavorite/useToggleFavorite.js +83 -0
- package/lib/index.css +76 -0
- package/lib/index.js +30 -0
- package/lib/lang/br/index.js +761 -0
- package/lib/lang/en/index.js +761 -0
- package/lib/lang/es/index.js +762 -0
- package/lib/lang/fr/index.js +582 -0
- package/lib/lang/index.js +24 -0
- package/lib/lang/utils.js +33 -0
- package/lib/mocks/mockChats.js +395 -0
- package/lib/mocks/mockOrchestrator.js +5 -0
- package/lib/mocks/mockProject.js +11 -0
- package/lib/mocks/mockProjectSummary.js +6 -0
- package/lib/mocks/mockedUser.js +169 -0
- package/lib/services/apolloClient.js +3 -0
- package/lib/services/appcues.js +19 -0
- package/lib/services/corpilot/ProjectSummary/getProjectSummary.js +31 -0
- package/lib/services/corpilot/ProjectSummary/index.js +5 -0
- package/lib/services/corpilot/client.js +27 -0
- package/lib/services/corpilot/index.js +5 -0
- package/lib/services/maia/Access/updateAccess.js +59 -0
- package/lib/services/maia/Actions/getFrequentlyUsedActions.js +46 -0
- package/lib/services/maia/Actions/getSlashCommands.js +39 -0
- package/lib/services/maia/Actions/index.js +7 -0
- package/lib/services/maia/Agents/createAgent.js +39 -0
- package/lib/services/maia/Agents/deleteAgent.js +38 -0
- package/lib/services/maia/Agents/fetchAgentDetail.js +122 -0
- package/lib/services/maia/Agents/getAgentById.js +162 -0
- package/lib/services/maia/Agents/getAgentModels.js +112 -0
- package/lib/services/maia/Agents/getAgentSuggestions.js +44 -0
- package/lib/services/maia/Agents/getAgents.js +718 -0
- package/lib/services/maia/Agents/setAgentToolGroups.js +42 -0
- package/lib/services/maia/Agents/toggleFavorite.js +34 -0
- package/lib/services/maia/Agents/updateAgent.js +39 -0
- package/lib/services/maia/Chats/deleteChat.js +32 -0
- package/lib/services/maia/Chats/getChatMessages.js +144 -0
- package/lib/services/maia/Chats/getChatsByUserId.js +82 -0
- package/lib/services/maia/Chats/index.js +15 -0
- package/lib/services/maia/Chats/markSessionAsRead.js +32 -0
- package/lib/services/maia/Chats/patchChat.js +43 -0
- package/lib/services/maia/Chats/wasHelpfulChat.js +31 -0
- package/lib/services/maia/Faqs/getFrequentlyAskedQuestions.js +55 -0
- package/lib/services/maia/Faqs/index.js +5 -0
- package/lib/services/maia/Knowledge/delete.js +41 -0
- package/lib/services/maia/Knowledge/download.js +48 -0
- package/lib/services/maia/Knowledge/index.js +3 -0
- package/lib/services/maia/Knowledge/save.js +43 -0
- package/lib/services/maia/Orchestrator/index.js +7 -0
- package/lib/services/maia/Orchestrator/orchestrator.js +246 -0
- package/lib/services/maia/RecentClients/getRecentClients.js +43 -0
- package/lib/services/maia/RecentClients/index.js +6 -0
- package/lib/services/maia/RecentContexts/getRecentContexts.js +54 -0
- package/lib/services/maia/RecentContexts/index.js +6 -0
- package/lib/services/maia/RecentProjects/getRecentProjects.js +55 -0
- package/lib/services/maia/RecentProjects/index.js +6 -0
- package/lib/services/maia/RecentTasks/getRecentTasks.js +54 -0
- package/lib/services/maia/RecentTasks/index.js +6 -0
- package/lib/services/maia/RecentUsers/getRecentUsers.js +59 -0
- package/lib/services/maia/RecentUsers/index.js +6 -0
- package/lib/services/maia/Skills/createSkill.js +39 -0
- package/lib/services/maia/Skills/deleteSkill.js +38 -0
- package/lib/services/maia/Skills/generateSkill.js +41 -0
- package/lib/services/maia/Skills/getSkills.js +90 -0
- package/lib/services/maia/Skills/updateSkill.js +39 -0
- package/lib/services/maia/client.js +27 -0
- package/lib/services/maia/index.js +17 -0
- package/lib/services/query/ClientSearchQuery.js +5 -0
- package/lib/services/query/entitySearchQuery.js +18 -0
- package/lib/services/query/index.js +2 -0
- package/lib/services/query/projectSearchByValueQuery.js +5 -0
- package/lib/services/query/taskUserTabQuery.js +8 -0
- package/lib/services/query/usersDirectoryQuery.js +19 -0
- package/lib/services/types.js +6 -0
- package/lib/services/utils/fetchCOR.js +117 -0
- package/lib/services/utils/getCookie.js +10 -0
- package/lib/services/utils/index.js +3 -0
- package/lib/services/utils/mapChatMessages.js +287 -0
- package/lib/services/utils/validateIsMaia.js +4 -0
- package/lib/store/chatsSidebarOptimistic.js +92 -0
- package/lib/store/chatsStore.types.js +2 -0
- package/lib/store/chatsStoreLifecycle.js +8 -0
- package/lib/store/faqsStore.types.js +2 -0
- package/lib/store/index.js +4 -0
- package/lib/store/maiaLastChatPersistence.js +35 -0
- package/lib/store/sessions/activeView.js +22 -0
- package/lib/store/sessions/index.js +9 -0
- package/lib/store/sessions/sessionHitlContext.js +15 -0
- package/lib/store/sessions/sessionNotificationSound.js +57 -0
- package/lib/store/sessions/sessionNotifications.js +110 -0
- package/lib/store/sessions/sessionNotifications.types.js +2 -0
- package/lib/store/sessions/sessionStreamManager.js +715 -0
- package/lib/store/sessions/sessionStreamingText.js +80 -0
- package/lib/store/sessions/sessions.types.js +35 -0
- package/lib/store/sessions/useSessionMeta.js +39 -0
- package/lib/store/sessions/useSessionStreamingText.js +18 -0
- package/lib/store/sessions/useSessionsStore.js +197 -0
- package/lib/store/useChatsStore.js +387 -0
- package/lib/store/useFaqsStore.js +27 -0
- package/lib/streamdownStyles.js +9 -0
- package/lib/styles/StyledCleanContainer.js +7 -0
- package/lib/styles/cascade.js +14 -0
- package/lib/styles/config.js +47 -0
- package/lib/styles/shared/scrollable.js +3 -0
- package/lib/styles/transitions.js +21 -0
- package/lib/types/Action.js +2 -0
- package/lib/types/AgentSuggestion.js +2 -0
- package/lib/types/Chat.js +10 -0
- package/lib/types/Client.js +2 -0
- package/lib/types/FrequentlyAskedQuestion.js +2 -0
- package/lib/types/Project.js +2 -0
- package/lib/types/ProjectSummaryConfigKeys.js +9 -0
- package/lib/types/Task.js +2 -0
- package/lib/types/agent.js +2 -0
- package/lib/types/agentModal.js +2 -0
- package/lib/types/contextMention.js +37 -0
- package/lib/types/global.d.js +2 -0
- package/lib/types/skill.js +2 -0
- package/lib/types/streamActivity.js +2 -0
- package/lib/types/userType.d.js +2 -0
- package/lib/utils/actionCategoryMap.js +37 -0
- package/lib/utils/actionIconMap.js +61 -0
- package/lib/utils/agentDisplayName.js +42 -0
- package/lib/utils/chatInputFiles.js +52 -0
- package/lib/utils/contextMentionIcons.js +134 -0
- package/lib/utils/contextMentionLabel.js +4 -0
- package/lib/utils/contextMentionTriggers.js +54 -0
- package/lib/utils/contextMentionTypeLabel.js +17 -0
- package/lib/utils/corConnectorMentionTypes.js +41 -0
- package/lib/utils/ensureStreamdownStyles.js +21 -0
- package/lib/utils/entityLinkRender.js +135 -0
- package/lib/utils/fileDownloadHelper.js +40 -0
- package/lib/utils/formatQuickActionMessage.js +16 -0
- package/lib/utils/formatUnreadCount.js +6 -0
- package/lib/utils/getUnitFileSize.js +13 -0
- package/lib/utils/hitlAnalytics.js +65 -0
- package/lib/utils/hoursPlannerQuickActionType.js +64 -0
- package/lib/utils/imagePreprocessor.js +108 -0
- package/lib/utils/index.js +3 -0
- package/lib/utils/maiaHostOpen.js +19 -0
- package/lib/utils/maiaStreamdownRehypePlugins.js +27 -0
- package/lib/utils/mapBackendLang.js +8 -0
- package/lib/utils/normalizeAgentConnectors.js +70 -0
- package/lib/utils/openTaskInCorPanel.js +22 -0
- package/lib/utils/orchestratorSubagents.js +11 -0
- package/lib/utils/renderContextMentions.js +399 -0
- package/lib/utils/retryCompletion.js +85 -0
- package/lib/utils/slashCommandMarker.js +30 -0
- package/lib/utils/sortManagerHoursHomeFuas.js +14 -0
- package/lib/utils/sseStreamContent.js +17 -0
- package/lib/utils/streamActivityMessages.js +359 -0
- package/lib/utils/validateTrimmedFields.js +8 -0
- package/package.json +1 -1
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
import styled from 'styled-components';
|
|
2
|
+
import { modalIn } from '../../../styles/transitions';
|
|
3
|
+
export var SCAPMWrapper = styled.div.withConfig({
|
|
4
|
+
displayName: "AttachmentPreviewModalstyles__SCAPMWrapper",
|
|
5
|
+
componentId: "sc-g4rij0-0"
|
|
6
|
+
})(["position:fixed;top:0;left:0;right:0;bottom:0;z-index:11112;"]);
|
|
7
|
+
export var SCAPMModal = styled.div.withConfig({
|
|
8
|
+
displayName: "AttachmentPreviewModalstyles__SCAPMModal",
|
|
9
|
+
componentId: "sc-g4rij0-1"
|
|
10
|
+
})(["width:90%;max-width:900px;height:85vh;max-height:800px;display:flex;flex-direction:column;", ""], modalIn);
|
|
11
|
+
export var SCAPMHeader = styled.div.withConfig({
|
|
12
|
+
displayName: "AttachmentPreviewModalstyles__SCAPMHeader",
|
|
13
|
+
componentId: "sc-g4rij0-2"
|
|
14
|
+
})(["display:flex;background-color:transparent;justify-content:flex-end;align-items:center;padding:16px 0;button{background-color:#f3f3f3;cursor:pointer;width:40px;height:40px;&:hover{background-color:#a4adb5;svg *:not(.no-fill){fill:#f3f3f3 !important;}}}"]);
|
|
15
|
+
export var SCAPMHeaderTitle = styled.h3.withConfig({
|
|
16
|
+
displayName: "AttachmentPreviewModalstyles__SCAPMHeaderTitle",
|
|
17
|
+
componentId: "sc-g4rij0-3"
|
|
18
|
+
})(["margin:0;font-size:18px;font-weight:600;color:rgba(32,32,31,1);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1;margin-right:16px;"]);
|
|
19
|
+
export var SCAPMContent = styled.div.withConfig({
|
|
20
|
+
displayName: "AttachmentPreviewModalstyles__SCAPMContent",
|
|
21
|
+
componentId: "sc-g4rij0-4"
|
|
22
|
+
})(["flex:1;background:", ";overflow:auto;display:flex;align-items:center;justify-content:center;border-radius:8px;"], function (_ref) {
|
|
23
|
+
var isImage = _ref.isImage,
|
|
24
|
+
error = _ref.error;
|
|
25
|
+
return error || isImage ? 'transparent' : 'white';
|
|
26
|
+
});
|
|
27
|
+
export var SCAPMImageContainer = styled.div.withConfig({
|
|
28
|
+
displayName: "AttachmentPreviewModalstyles__SCAPMImageContainer",
|
|
29
|
+
componentId: "sc-g4rij0-5"
|
|
30
|
+
})(["width:100%;height:100%;display:flex;align-items:center;justify-content:center;img{max-width:100%;max-height:100%;object-fit:contain;}"]);
|
|
31
|
+
export var SCAPMPdfContainer = styled.div.withConfig({
|
|
32
|
+
displayName: "AttachmentPreviewModalstyles__SCAPMPdfContainer",
|
|
33
|
+
componentId: "sc-g4rij0-6"
|
|
34
|
+
})(["width:100%;height:100%;iframe{border:none;border-radius:4px;}"]);
|
|
35
|
+
export var SCAPMTextContainer = styled.div.withConfig({
|
|
36
|
+
displayName: "AttachmentPreviewModalstyles__SCAPMTextContainer",
|
|
37
|
+
componentId: "sc-g4rij0-7"
|
|
38
|
+
})(["width:100%;height:100%;overflow:auto;pre{margin:16px;padding:16px;background:#f5f5f5;border-radius:4px;white-space:pre-wrap;word-wrap:break-word;font-family:'Courier New',monospace;font-size:14px;line-height:1.5;color:rgba(32,32,31,1);height:calc(100% - 32px);}"]);
|
|
39
|
+
export var SCAPMMarkdownContainer = styled.div.withConfig({
|
|
40
|
+
displayName: "AttachmentPreviewModalstyles__SCAPMMarkdownContainer",
|
|
41
|
+
componentId: "sc-g4rij0-8"
|
|
42
|
+
})(["width:100%;height:100%;overflow:auto;padding:20px;color:rgba(32,32,31,1);line-height:1.6;h1,h2,h3,h4,h5,h6{margin-top:24px;margin-bottom:16px;font-weight:600;}h1{font-size:2em;border-bottom:1px solid #eaecef;padding-bottom:0.3em;}h2{font-size:1.5em;border-bottom:1px solid #eaecef;padding-bottom:0.3em;}p{margin-bottom:16px;}code{background-color:rgba(27,31,35,0.05);border-radius:3px;font-size:85%;margin:0;padding:0.2em 0.4em;font-family:'Courier New',monospace;}pre{background-color:#f6f8fa;border-radius:3px;font-size:85%;line-height:1.45;overflow:auto;padding:16px;code{background-color:transparent;border:0;display:inline;line-height:inherit;margin:0;overflow:visible;padding:0;word-wrap:normal;}}blockquote{border-left:4px solid #dfe2e5;color:#6a737d;padding:0 1em;margin:0;}table{border-collapse:collapse;margin:16px 0;width:100%;th,td{border:1px solid #dfe2e5;padding:6px 13px;}th{background-color:#f6f8fa;font-weight:600;}}ul,ol{padding-left:2em;margin-bottom:16px;}a{color:#0366d6;text-decoration:none;&:hover{text-decoration:underline;}}"]);
|
|
43
|
+
export var SCAPMUnsupportedContainer = styled.div.withConfig({
|
|
44
|
+
displayName: "AttachmentPreviewModalstyles__SCAPMUnsupportedContainer",
|
|
45
|
+
componentId: "sc-g4rij0-9"
|
|
46
|
+
})(["display:flex;max-width:610px;width:100%;height:390px;background-color:#fff;flex-direction:column;border-radius:8px;align-items:center;justify-content:center;gap:40px;padding:20px;text-align:center;color:rgba(32,32,31,1);p{margin:0;font-size:14px;}"]);
|
|
47
|
+
export var SCAPMUnsupportedContainerText = styled.span.withConfig({
|
|
48
|
+
displayName: "AttachmentPreviewModalstyles__SCAPMUnsupportedContainerText",
|
|
49
|
+
componentId: "sc-g4rij0-10"
|
|
50
|
+
})(["max-width:350px;width:100%;color:#666666;text-align:center;font-family:'Work Sans';font-size:14px;font-style:normal;font-weight:400;line-height:140%;letter-spacing:-0.21px;"]);
|
|
51
|
+
export var SCAPMFileName = styled.h4.withConfig({
|
|
52
|
+
displayName: "AttachmentPreviewModalstyles__SCAPMFileName",
|
|
53
|
+
componentId: "sc-g4rij0-11"
|
|
54
|
+
})(["margin:0;font-size:16px;font-weight:600;"]);
|
|
55
|
+
export var SCAPMExcelContainer = styled.div.withConfig({
|
|
56
|
+
displayName: "AttachmentPreviewModalstyles__SCAPMExcelContainer",
|
|
57
|
+
componentId: "sc-g4rij0-12"
|
|
58
|
+
})(["display:flex;flex-direction:column;align-items:center;justify-content:center;gap:20px;padding:40px;text-align:center;color:rgba(32,32,31,1);p{margin:0;font-size:14px;line-height:1.6;max-width:500px;}"]);
|
|
59
|
+
export var SCAPMExcelButton = styled.div.withConfig({
|
|
60
|
+
displayName: "AttachmentPreviewModalstyles__SCAPMExcelButton",
|
|
61
|
+
componentId: "sc-g4rij0-13"
|
|
62
|
+
})(["margin-top:8px;button{display:flex;align-items:center;gap:8px;}"]);
|
|
63
|
+
export var SCAPMExcelTableWrapper = styled.div.withConfig({
|
|
64
|
+
displayName: "AttachmentPreviewModalstyles__SCAPMExcelTableWrapper",
|
|
65
|
+
componentId: "sc-g4rij0-14"
|
|
66
|
+
})(["width:100%;height:100%;display:flex;flex-direction:column;padding:20px;overflow:hidden;"]);
|
|
67
|
+
export var SCAPMExcelSheetSelector = styled.div.withConfig({
|
|
68
|
+
displayName: "AttachmentPreviewModalstyles__SCAPMExcelSheetSelector",
|
|
69
|
+
componentId: "sc-g4rij0-15"
|
|
70
|
+
})(["display:flex;align-items:center;gap:12px;margin-bottom:16px;padding-bottom:12px;border-bottom:1px solid #e0e0e0;label{font-size:14px;font-weight:600;color:rgba(32,32,31,1);}"]);
|
|
71
|
+
export var SCAPMExcelTable = styled.div.withConfig({
|
|
72
|
+
displayName: "AttachmentPreviewModalstyles__SCAPMExcelTable",
|
|
73
|
+
componentId: "sc-g4rij0-16"
|
|
74
|
+
})(["flex:1;overflow:auto;border:1px solid #e0e0e0;border-radius:4px;background:white;table{width:100%;border-collapse:collapse;font-size:13px;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI','Roboto','Oxygen','Ubuntu','Cantarell','Fira Sans','Droid Sans','Helvetica Neue',sans-serif;td{padding:8px 12px;border:1px solid #e0e0e0;text-align:left;vertical-align:top;word-wrap:break-word;max-width:300px;background:white;color:rgba(32,32,31,1);&:first-child{background-color:#f5f5f5;font-weight:600;position:sticky;left:0;z-index:1;}}tr:first-child td{background-color:#f0f0f0;font-weight:600;position:sticky;top:0;z-index:2;box-shadow:0 2px 2px -1px rgba(0,0,0,0.1);&:first-child{z-index:3;}}tr:hover td{background-color:#f9f9f9;}}"]);
|
|
75
|
+
export var SCAPMLoadingContainer = styled.div.withConfig({
|
|
76
|
+
displayName: "AttachmentPreviewModalstyles__SCAPMLoadingContainer",
|
|
77
|
+
componentId: "sc-g4rij0-17"
|
|
78
|
+
})(["display:flex;justify-content:center;align-items:center;height:100%;"]);
|
|
79
|
+
export var SCAPMExcelSheetSelect = styled.select.withConfig({
|
|
80
|
+
displayName: "AttachmentPreviewModalstyles__SCAPMExcelSheetSelect",
|
|
81
|
+
componentId: "sc-g4rij0-18"
|
|
82
|
+
})(["padding:8px 12px;border-radius:4px;border:1px solid #ccc;font-size:14px;cursor:pointer;"]);
|
|
83
|
+
export var SCAPMPdfIframe = styled.iframe.withConfig({
|
|
84
|
+
displayName: "AttachmentPreviewModalstyles__SCAPMPdfIframe",
|
|
85
|
+
componentId: "sc-g4rij0-19"
|
|
86
|
+
})(["width:100%;height:100%;border:none;"]);
|
|
87
|
+
export var SCAPMErrorContainer = styled.div.withConfig({
|
|
88
|
+
displayName: "AttachmentPreviewModalstyles__SCAPMErrorContainer",
|
|
89
|
+
componentId: "sc-g4rij0-20"
|
|
90
|
+
})(["display:flex;flex-direction:column;align-items:center;gap:8px;width:100%;"]);
|
|
91
|
+
export var SCAPMErrorFileName = styled.span.withConfig({
|
|
92
|
+
displayName: "AttachmentPreviewModalstyles__SCAPMErrorFileName",
|
|
93
|
+
componentId: "sc-g4rij0-21"
|
|
94
|
+
})(["color:#e0e0e0;text-align:center;font-family:'Work Sans';font-size:14px;font-style:normal;font-weight:400;line-height:140%;letter-spacing:-0.21px;"]);
|
|
95
|
+
export var SCAPMPptSlides = styled.div.withConfig({
|
|
96
|
+
displayName: "AttachmentPreviewModalstyles__SCAPMPptSlides",
|
|
97
|
+
componentId: "sc-g4rij0-22"
|
|
98
|
+
})(["width:100%;height:100%;overflow:auto;display:flex;flex-direction:column;gap:16px;padding:20px;"]);
|
|
99
|
+
export var SCAPMPptSlide = styled.article.withConfig({
|
|
100
|
+
displayName: "AttachmentPreviewModalstyles__SCAPMPptSlide",
|
|
101
|
+
componentId: "sc-g4rij0-23"
|
|
102
|
+
})(["display:flex;flex-direction:column;gap:12px;padding:20px;border:1px solid #e0e0e0;border-radius:8px;background:#ffffff;"]);
|
|
103
|
+
export var SCAPMPptSlideNumber = styled.span.withConfig({
|
|
104
|
+
displayName: "AttachmentPreviewModalstyles__SCAPMPptSlideNumber",
|
|
105
|
+
componentId: "sc-g4rij0-24"
|
|
106
|
+
})(["font-size:12px;font-weight:600;letter-spacing:0.02em;text-transform:uppercase;color:#ef6820;"]);
|
|
107
|
+
export var SCAPMPptSlideBody = styled.div.withConfig({
|
|
108
|
+
displayName: "AttachmentPreviewModalstyles__SCAPMPptSlideBody",
|
|
109
|
+
componentId: "sc-g4rij0-25"
|
|
110
|
+
})(["display:flex;flex-direction:column;gap:8px;"]);
|
|
111
|
+
export var SCAPMPptSlideText = styled.p.withConfig({
|
|
112
|
+
displayName: "AttachmentPreviewModalstyles__SCAPMPptSlideText",
|
|
113
|
+
componentId: "sc-g4rij0-26"
|
|
114
|
+
})(["margin:0;font-size:14px;line-height:1.5;color:rgba(32,32,31,1);"]);
|
|
115
|
+
export var SCAPMPptSlideImage = styled.img.withConfig({
|
|
116
|
+
displayName: "AttachmentPreviewModalstyles__SCAPMPptSlideImage",
|
|
117
|
+
componentId: "sc-g4rij0-27"
|
|
118
|
+
})(["max-width:100%;max-height:280px;object-fit:contain;align-self:flex-start;border-radius:4px;"]);
|
|
119
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJzdHlsZWQiLCJtb2RhbEluIiwiU0NBUE1XcmFwcGVyIiwiZGl2Iiwid2l0aENvbmZpZyIsImRpc3BsYXlOYW1lIiwiY29tcG9uZW50SWQiLCJTQ0FQTU1vZGFsIiwiU0NBUE1IZWFkZXIiLCJTQ0FQTUhlYWRlclRpdGxlIiwiaDMiLCJTQ0FQTUNvbnRlbnQiLCJfcmVmIiwiaXNJbWFnZSIsImVycm9yIiwiU0NBUE1JbWFnZUNvbnRhaW5lciIsIlNDQVBNUGRmQ29udGFpbmVyIiwiU0NBUE1UZXh0Q29udGFpbmVyIiwiU0NBUE1NYXJrZG93bkNvbnRhaW5lciIsIlNDQVBNVW5zdXBwb3J0ZWRDb250YWluZXIiLCJTQ0FQTVVuc3VwcG9ydGVkQ29udGFpbmVyVGV4dCIsInNwYW4iLCJTQ0FQTUZpbGVOYW1lIiwiaDQiLCJTQ0FQTUV4Y2VsQ29udGFpbmVyIiwiU0NBUE1FeGNlbEJ1dHRvbiIsIlNDQVBNRXhjZWxUYWJsZVdyYXBwZXIiLCJTQ0FQTUV4Y2VsU2hlZXRTZWxlY3RvciIsIlNDQVBNRXhjZWxUYWJsZSIsIlNDQVBNTG9hZGluZ0NvbnRhaW5lciIsIlNDQVBNRXhjZWxTaGVldFNlbGVjdCIsInNlbGVjdCIsIlNDQVBNUGRmSWZyYW1lIiwiaWZyYW1lIiwiU0NBUE1FcnJvckNvbnRhaW5lciIsIlNDQVBNRXJyb3JGaWxlTmFtZSIsIlNDQVBNUHB0U2xpZGVzIiwiU0NBUE1QcHRTbGlkZSIsImFydGljbGUiLCJTQ0FQTVBwdFNsaWRlTnVtYmVyIiwiU0NBUE1QcHRTbGlkZUJvZHkiLCJTQ0FQTVBwdFNsaWRlVGV4dCIsInAiLCJTQ0FQTVBwdFNsaWRlSW1hZ2UiLCJpbWciXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50cy9hdG9tcy9BdHRhY2htZW50UHJldmlld01vZGFsL0F0dGFjaG1lbnRQcmV2aWV3TW9kYWwuc3R5bGVzLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgc3R5bGVkIGZyb20gJ3N0eWxlZC1jb21wb25lbnRzJ1xuaW1wb3J0IHsgbW9kYWxJbiB9IGZyb20gJy4uLy4uLy4uL3N0eWxlcy90cmFuc2l0aW9ucydcblxuZXhwb3J0IGNvbnN0IFNDQVBNV3JhcHBlciA9IHN0eWxlZC5kaXZgXG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICByaWdodDogMDtcbiAgYm90dG9tOiAwO1xuICB6LWluZGV4OiAxMTExMjtcbmBcblxuZXhwb3J0IGNvbnN0IFNDQVBNTW9kYWwgPSBzdHlsZWQuZGl2YFxuICB3aWR0aDogOTAlO1xuICBtYXgtd2lkdGg6IDkwMHB4O1xuICBoZWlnaHQ6IDg1dmg7XG4gIG1heC1oZWlnaHQ6IDgwMHB4O1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAke21vZGFsSW59XG5gXG5cbmV4cG9ydCBjb25zdCBTQ0FQTUhlYWRlciA9IHN0eWxlZC5kaXZgXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBwYWRkaW5nOiAxNnB4IDA7XG5cbiAgYnV0dG9uIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjNmM2YzO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB3aWR0aDogNDBweDtcbiAgICBoZWlnaHQ6IDQwcHg7XG4gICAgJjpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjYTRhZGI1O1xuICAgICAgc3ZnICo6bm90KC5uby1maWxsKSB7XG4gICAgICAgIGZpbGw6ICNmM2YzZjMgIWltcG9ydGFudDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbmBcblxuZXhwb3J0IGNvbnN0IFNDQVBNSGVhZGVyVGl0bGUgPSBzdHlsZWQuaDNgXG4gIG1hcmdpbjogMDtcbiAgZm9udC1zaXplOiAxOHB4O1xuICBmb250LXdlaWdodDogNjAwO1xuICBjb2xvcjogcmdiYSgzMiwgMzIsIDMxLCAxKTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIGZsZXg6IDE7XG4gIG1hcmdpbi1yaWdodDogMTZweDtcbmBcblxuZXhwb3J0IGNvbnN0IFNDQVBNQ29udGVudCA9IHN0eWxlZC5kaXY8eyBpc0ltYWdlPzogYm9vbGVhbjsgZXJyb3I/OiBib29sZWFuIH0+YFxuICBmbGV4OiAxO1xuICBiYWNrZ3JvdW5kOiAkeyh7IGlzSW1hZ2UsIGVycm9yIH0pID0+IChlcnJvciB8fCBpc0ltYWdlID8gJ3RyYW5zcGFyZW50JyA6ICd3aGl0ZScpfTtcbiAgb3ZlcmZsb3c6IGF1dG87XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBib3JkZXItcmFkaXVzOiA4cHg7XG5gXG5cbmV4cG9ydCBjb25zdCBTQ0FQTUltYWdlQ29udGFpbmVyID0gc3R5bGVkLmRpdmBcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGltZyB7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgb2JqZWN0LWZpdDogY29udGFpbjtcbiAgfVxuYFxuXG5leHBvcnQgY29uc3QgU0NBUE1QZGZDb250YWluZXIgPSBzdHlsZWQuZGl2YFxuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBpZnJhbWUge1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gIH1cbmBcblxuZXhwb3J0IGNvbnN0IFNDQVBNVGV4dENvbnRhaW5lciA9IHN0eWxlZC5kaXZgXG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIG92ZXJmbG93OiBhdXRvO1xuICBwcmUge1xuICAgIG1hcmdpbjogMTZweDtcbiAgICBwYWRkaW5nOiAxNnB4O1xuICAgIGJhY2tncm91bmQ6ICNmNWY1ZjU7XG4gICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgIHdoaXRlLXNwYWNlOiBwcmUtd3JhcDtcbiAgICB3b3JkLXdyYXA6IGJyZWFrLXdvcmQ7XG4gICAgZm9udC1mYW1pbHk6ICdDb3VyaWVyIE5ldycsIG1vbm9zcGFjZTtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgbGluZS1oZWlnaHQ6IDEuNTtcbiAgICBjb2xvcjogcmdiYSgzMiwgMzIsIDMxLCAxKTtcbiAgICBoZWlnaHQ6IGNhbGMoMTAwJSAtIDMycHgpO1xuICB9XG5gXG5cbmV4cG9ydCBjb25zdCBTQ0FQTU1hcmtkb3duQ29udGFpbmVyID0gc3R5bGVkLmRpdmBcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgb3ZlcmZsb3c6IGF1dG87XG4gIHBhZGRpbmc6IDIwcHg7XG4gIGNvbG9yOiByZ2JhKDMyLCAzMiwgMzEsIDEpO1xuICBsaW5lLWhlaWdodDogMS42O1xuXG4gIGgxLFxuICBoMixcbiAgaDMsXG4gIGg0LFxuICBoNSxcbiAgaDYge1xuICAgIG1hcmdpbi10b3A6IDI0cHg7XG4gICAgbWFyZ2luLWJvdHRvbTogMTZweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICB9XG5cbiAgaDEge1xuICAgIGZvbnQtc2l6ZTogMmVtO1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZWFlY2VmO1xuICAgIHBhZGRpbmctYm90dG9tOiAwLjNlbTtcbiAgfVxuXG4gIGgyIHtcbiAgICBmb250LXNpemU6IDEuNWVtO1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZWFlY2VmO1xuICAgIHBhZGRpbmctYm90dG9tOiAwLjNlbTtcbiAgfVxuXG4gIHAge1xuICAgIG1hcmdpbi1ib3R0b206IDE2cHg7XG4gIH1cblxuICBjb2RlIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI3LCAzMSwgMzUsIDAuMDUpO1xuICAgIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgICBmb250LXNpemU6IDg1JTtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMC4yZW0gMC40ZW07XG4gICAgZm9udC1mYW1pbHk6ICdDb3VyaWVyIE5ldycsIG1vbm9zcGFjZTtcbiAgfVxuXG4gIHByZSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2Y2ZjhmYTtcbiAgICBib3JkZXItcmFkaXVzOiAzcHg7XG4gICAgZm9udC1zaXplOiA4NSU7XG4gICAgbGluZS1oZWlnaHQ6IDEuNDU7XG4gICAgb3ZlcmZsb3c6IGF1dG87XG4gICAgcGFkZGluZzogMTZweDtcbiAgICBjb2RlIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgYm9yZGVyOiAwO1xuICAgICAgZGlzcGxheTogaW5saW5lO1xuICAgICAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7XG4gICAgICBtYXJnaW46IDA7XG4gICAgICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgICAgIHBhZGRpbmc6IDA7XG4gICAgICB3b3JkLXdyYXA6IG5vcm1hbDtcbiAgICB9XG4gIH1cblxuICBibG9ja3F1b3RlIHtcbiAgICBib3JkZXItbGVmdDogNHB4IHNvbGlkICNkZmUyZTU7XG4gICAgY29sb3I6ICM2YTczN2Q7XG4gICAgcGFkZGluZzogMCAxZW07XG4gICAgbWFyZ2luOiAwO1xuICB9XG5cbiAgdGFibGUge1xuICAgIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7XG4gICAgbWFyZ2luOiAxNnB4IDA7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgdGgsXG4gICAgdGQge1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgI2RmZTJlNTtcbiAgICAgIHBhZGRpbmc6IDZweCAxM3B4O1xuICAgIH1cbiAgICB0aCB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjZmOGZhO1xuICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICB9XG4gIH1cblxuICB1bCxcbiAgb2wge1xuICAgIHBhZGRpbmctbGVmdDogMmVtO1xuICAgIG1hcmdpbi1ib3R0b206IDE2cHg7XG4gIH1cblxuICBhIHtcbiAgICBjb2xvcjogIzAzNjZkNjtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgJjpob3ZlciB7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICB9XG4gIH1cbmBcblxuZXhwb3J0IGNvbnN0IFNDQVBNVW5zdXBwb3J0ZWRDb250YWluZXIgPSBzdHlsZWQuZGl2YFxuICBkaXNwbGF5OiBmbGV4O1xuICBtYXgtd2lkdGg6IDYxMHB4O1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAzOTBweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgYm9yZGVyLXJhZGl1czogOHB4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgZ2FwOiA0MHB4O1xuICBwYWRkaW5nOiAyMHB4O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGNvbG9yOiByZ2JhKDMyLCAzMiwgMzEsIDEpO1xuICBwIHtcbiAgICBtYXJnaW46IDA7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICB9XG5gXG5cbmV4cG9ydCBjb25zdCBTQ0FQTVVuc3VwcG9ydGVkQ29udGFpbmVyVGV4dCA9IHN0eWxlZC5zcGFuYFxuICBtYXgtd2lkdGg6IDM1MHB4O1xuICB3aWR0aDogMTAwJTtcbiAgY29sb3I6ICM2NjY2NjY7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgZm9udC1mYW1pbHk6ICdXb3JrIFNhbnMnO1xuICBmb250LXNpemU6IDE0cHg7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgbGluZS1oZWlnaHQ6IDE0MCU7XG4gIGxldHRlci1zcGFjaW5nOiAtMC4yMXB4O1xuYFxuXG5leHBvcnQgY29uc3QgU0NBUE1GaWxlTmFtZSA9IHN0eWxlZC5oNGBcbiAgbWFyZ2luOiAwO1xuICBmb250LXNpemU6IDE2cHg7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG5gXG5cbmV4cG9ydCBjb25zdCBTQ0FQTUV4Y2VsQ29udGFpbmVyID0gc3R5bGVkLmRpdmBcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGdhcDogMjBweDtcbiAgcGFkZGluZzogNDBweDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBjb2xvcjogcmdiYSgzMiwgMzIsIDMxLCAxKTtcbiAgcCB7XG4gICAgbWFyZ2luOiAwO1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBsaW5lLWhlaWdodDogMS42O1xuICAgIG1heC13aWR0aDogNTAwcHg7XG4gIH1cbmBcblxuZXhwb3J0IGNvbnN0IFNDQVBNRXhjZWxCdXR0b24gPSBzdHlsZWQuZGl2YFxuICBtYXJnaW4tdG9wOiA4cHg7XG4gIGJ1dHRvbiB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogOHB4O1xuICB9XG5gXG5cbmV4cG9ydCBjb25zdCBTQ0FQTUV4Y2VsVGFibGVXcmFwcGVyID0gc3R5bGVkLmRpdmBcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgcGFkZGluZzogMjBweDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbmBcblxuZXhwb3J0IGNvbnN0IFNDQVBNRXhjZWxTaGVldFNlbGVjdG9yID0gc3R5bGVkLmRpdmBcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiAxMnB4O1xuICBtYXJnaW4tYm90dG9tOiAxNnB4O1xuICBwYWRkaW5nLWJvdHRvbTogMTJweDtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNlMGUwZTA7XG5cbiAgbGFiZWwge1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGNvbG9yOiByZ2JhKDMyLCAzMiwgMzEsIDEpO1xuICB9XG5gXG5cbmV4cG9ydCBjb25zdCBTQ0FQTUV4Y2VsVGFibGUgPSBzdHlsZWQuZGl2YFxuICBmbGV4OiAxO1xuICBvdmVyZmxvdzogYXV0bztcbiAgYm9yZGVyOiAxcHggc29saWQgI2UwZTBlMDtcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xuICBiYWNrZ3JvdW5kOiB3aGl0ZTtcblxuICB0YWJsZSB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTtcbiAgICBmb250LXNpemU6IDEzcHg7XG4gICAgZm9udC1mYW1pbHk6XG4gICAgICAtYXBwbGUtc3lzdGVtLCBCbGlua01hY1N5c3RlbUZvbnQsICdTZWdvZSBVSScsICdSb2JvdG8nLCAnT3h5Z2VuJywgJ1VidW50dScsICdDYW50YXJlbGwnLCAnRmlyYSBTYW5zJyxcbiAgICAgICdEcm9pZCBTYW5zJywgJ0hlbHZldGljYSBOZXVlJywgc2Fucy1zZXJpZjtcblxuICAgIHRkIHtcbiAgICAgIHBhZGRpbmc6IDhweCAxMnB4O1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgI2UwZTBlMDtcbiAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgd29yZC13cmFwOiBicmVhay13b3JkO1xuICAgICAgbWF4LXdpZHRoOiAzMDBweDtcbiAgICAgIGJhY2tncm91bmQ6IHdoaXRlO1xuICAgICAgY29sb3I6IHJnYmEoMzIsIDMyLCAzMSwgMSk7XG5cbiAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjVmNWY1O1xuICAgICAgICBmb250LXdlaWdodDogNjAwO1xuICAgICAgICBwb3NpdGlvbjogc3RpY2t5O1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICB6LWluZGV4OiAxO1xuICAgICAgfVxuICAgIH1cblxuICAgIHRyOmZpcnN0LWNoaWxkIHRkIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmMGYwZjA7XG4gICAgICBmb250LXdlaWdodDogNjAwO1xuICAgICAgcG9zaXRpb246IHN0aWNreTtcbiAgICAgIHRvcDogMDtcbiAgICAgIHotaW5kZXg6IDI7XG4gICAgICBib3gtc2hhZG93OiAwIDJweCAycHggLTFweCByZ2JhKDAsIDAsIDAsIDAuMSk7XG5cbiAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICB6LWluZGV4OiAzO1xuICAgICAgfVxuICAgIH1cblxuICAgIHRyOmhvdmVyIHRkIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmOWY5Zjk7XG4gICAgfVxuICB9XG5gXG5cbmV4cG9ydCBjb25zdCBTQ0FQTUxvYWRpbmdDb250YWluZXIgPSBzdHlsZWQuZGl2YFxuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgaGVpZ2h0OiAxMDAlO1xuYFxuXG5leHBvcnQgY29uc3QgU0NBUE1FeGNlbFNoZWV0U2VsZWN0ID0gc3R5bGVkLnNlbGVjdGBcbiAgcGFkZGluZzogOHB4IDEycHg7XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgYm9yZGVyOiAxcHggc29saWQgI2NjYztcbiAgZm9udC1zaXplOiAxNHB4O1xuICBjdXJzb3I6IHBvaW50ZXI7XG5gXG5cbmV4cG9ydCBjb25zdCBTQ0FQTVBkZklmcmFtZSA9IHN0eWxlZC5pZnJhbWVgXG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIGJvcmRlcjogbm9uZTtcbmBcblxuZXhwb3J0IGNvbnN0IFNDQVBNRXJyb3JDb250YWluZXIgPSBzdHlsZWQuZGl2YFxuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDhweDtcbiAgd2lkdGg6IDEwMCU7XG5gXG5cbmV4cG9ydCBjb25zdCBTQ0FQTUVycm9yRmlsZU5hbWUgPSBzdHlsZWQuc3BhbmBcbiAgY29sb3I6ICNlMGUwZTA7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgZm9udC1mYW1pbHk6ICdXb3JrIFNhbnMnO1xuICBmb250LXNpemU6IDE0cHg7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgbGluZS1oZWlnaHQ6IDE0MCU7XG4gIGxldHRlci1zcGFjaW5nOiAtMC4yMXB4O1xuYFxuXG5leHBvcnQgY29uc3QgU0NBUE1QcHRTbGlkZXMgPSBzdHlsZWQuZGl2YFxuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBvdmVyZmxvdzogYXV0bztcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgZ2FwOiAxNnB4O1xuICBwYWRkaW5nOiAyMHB4O1xuYFxuXG5leHBvcnQgY29uc3QgU0NBUE1QcHRTbGlkZSA9IHN0eWxlZC5hcnRpY2xlYFxuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBnYXA6IDEycHg7XG4gIHBhZGRpbmc6IDIwcHg7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNlMGUwZTA7XG4gIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgYmFja2dyb3VuZDogI2ZmZmZmZjtcbmBcblxuZXhwb3J0IGNvbnN0IFNDQVBNUHB0U2xpZGVOdW1iZXIgPSBzdHlsZWQuc3BhbmBcbiAgZm9udC1zaXplOiAxMnB4O1xuICBmb250LXdlaWdodDogNjAwO1xuICBsZXR0ZXItc3BhY2luZzogMC4wMmVtO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBjb2xvcjogI2VmNjgyMDtcbmBcblxuZXhwb3J0IGNvbnN0IFNDQVBNUHB0U2xpZGVCb2R5ID0gc3R5bGVkLmRpdmBcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgZ2FwOiA4cHg7XG5gXG5cbmV4cG9ydCBjb25zdCBTQ0FQTVBwdFNsaWRlVGV4dCA9IHN0eWxlZC5wYFxuICBtYXJnaW46IDA7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgbGluZS1oZWlnaHQ6IDEuNTtcbiAgY29sb3I6IHJnYmEoMzIsIDMyLCAzMSwgMSk7XG5gXG5cbmV4cG9ydCBjb25zdCBTQ0FQTVBwdFNsaWRlSW1hZ2UgPSBzdHlsZWQuaW1nYFxuICBtYXgtd2lkdGg6IDEwMCU7XG4gIG1heC1oZWlnaHQ6IDI4MHB4O1xuICBvYmplY3QtZml0OiBjb250YWluO1xuICBhbGlnbi1zZWxmOiBmbGV4LXN0YXJ0O1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG5gXG4iXSwibWFwcGluZ3MiOiJBQUFBLE9BQU9BLE1BQU0sTUFBTSxtQkFBbUI7QUFDdEMsU0FBU0MsT0FBTyxRQUFRLDZCQUE2QjtBQUVyRCxPQUFPLElBQU1DLFlBQVksR0FBR0YsTUFBTSxDQUFDRyxHQUFHLENBQUFDLFVBQUE7RUFBQUMsV0FBQTtFQUFBQyxXQUFBO0FBQUEsbUVBT3JDO0FBRUQsT0FBTyxJQUFNQyxVQUFVLEdBQUdQLE1BQU0sQ0FBQ0csR0FBRyxDQUFBQyxVQUFBO0VBQUFDLFdBQUE7RUFBQUMsV0FBQTtBQUFBLHVHQU9oQ0wsT0FBTyxDQUNWO0FBRUQsT0FBTyxJQUFNTyxXQUFXLEdBQUdSLE1BQU0sQ0FBQ0csR0FBRyxDQUFBQyxVQUFBO0VBQUFDLFdBQUE7RUFBQUMsV0FBQTtBQUFBLG1RQW1CcEM7QUFFRCxPQUFPLElBQU1HLGdCQUFnQixHQUFHVCxNQUFNLENBQUNVLEVBQUUsQ0FBQU4sVUFBQTtFQUFBQyxXQUFBO0VBQUFDLFdBQUE7QUFBQSwwSkFVeEM7QUFFRCxPQUFPLElBQU1LLFlBQVksR0FBR1gsTUFBTSxDQUFDRyxHQUFHLENBQUFDLFVBQUE7RUFBQUMsV0FBQTtFQUFBQyxXQUFBO0FBQUEsdUhBRXRCLFVBQUFN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
|
|
@@ -0,0 +1,222 @@
|
|
|
1
|
+
import _asyncToGenerator from "@babel/runtime/helpers/asyncToGenerator";
|
|
2
|
+
import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
|
|
3
|
+
import _regeneratorRuntime from "@babel/runtime/regenerator";
|
|
4
|
+
/* eslint-disable react/no-array-index-key */
|
|
5
|
+
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
6
|
+
/* eslint-disable import/no-extraneous-dependencies */
|
|
7
|
+
import React, { useState, useEffect } from 'react';
|
|
8
|
+
import * as XLSX from 'xlsx';
|
|
9
|
+
import { useTranslation } from 'react-i18next';
|
|
10
|
+
import { downloadFileFromUrl } from '../../../utils/fileDownloadHelper';
|
|
11
|
+
import { SCAPMExcelContainer, SCAPMExcelTable, SCAPMExcelTableWrapper, SCAPMExcelSheetSelector, SCAPMFileName, SCAPMLoadingContainer, SCAPMExcelSheetSelect } from './AttachmentPreviewModal.styles';
|
|
12
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
13
|
+
export var ExcelPreview = function ExcelPreview(_ref) {
|
|
14
|
+
var file = _ref.file,
|
|
15
|
+
fileUrl = _ref.fileUrl,
|
|
16
|
+
fileName = _ref.fileName;
|
|
17
|
+
var _useTranslation = useTranslation(['chat_ai_section']),
|
|
18
|
+
t = _useTranslation.t;
|
|
19
|
+
var _useState = useState([]),
|
|
20
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
21
|
+
excelData = _useState2[0],
|
|
22
|
+
setExcelData = _useState2[1];
|
|
23
|
+
var _useState3 = useState([]),
|
|
24
|
+
_useState4 = _slicedToArray(_useState3, 2),
|
|
25
|
+
excelSheetNames = _useState4[0],
|
|
26
|
+
setExcelSheetNames = _useState4[1];
|
|
27
|
+
var _useState5 = useState(''),
|
|
28
|
+
_useState6 = _slicedToArray(_useState5, 2),
|
|
29
|
+
selectedSheet = _useState6[0],
|
|
30
|
+
setSelectedSheet = _useState6[1];
|
|
31
|
+
var _useState7 = useState(true),
|
|
32
|
+
_useState8 = _slicedToArray(_useState7, 2),
|
|
33
|
+
isLoading = _useState8[0],
|
|
34
|
+
setIsLoading = _useState8[1];
|
|
35
|
+
var _useState9 = useState(null),
|
|
36
|
+
_useState0 = _slicedToArray(_useState9, 2),
|
|
37
|
+
error = _useState0[0],
|
|
38
|
+
setError = _useState0[1];
|
|
39
|
+
var _useState1 = useState(null),
|
|
40
|
+
_useState10 = _slicedToArray(_useState1, 2),
|
|
41
|
+
currentFile = _useState10[0],
|
|
42
|
+
setCurrentFile = _useState10[1];
|
|
43
|
+
|
|
44
|
+
// Descargar archivo desde URL si es necesario
|
|
45
|
+
useEffect(function () {
|
|
46
|
+
var loadFile = /*#__PURE__*/function () {
|
|
47
|
+
var _ref2 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee() {
|
|
48
|
+
var downloadedFile, _t;
|
|
49
|
+
return _regeneratorRuntime.wrap(function (_context) {
|
|
50
|
+
while (1) switch (_context.prev = _context.next) {
|
|
51
|
+
case 0:
|
|
52
|
+
if (!file) {
|
|
53
|
+
_context.next = 1;
|
|
54
|
+
break;
|
|
55
|
+
}
|
|
56
|
+
setCurrentFile(file);
|
|
57
|
+
return _context.abrupt("return");
|
|
58
|
+
case 1:
|
|
59
|
+
if (!fileUrl) {
|
|
60
|
+
_context.next = 6;
|
|
61
|
+
break;
|
|
62
|
+
}
|
|
63
|
+
_context.prev = 2;
|
|
64
|
+
setIsLoading(true);
|
|
65
|
+
_context.next = 3;
|
|
66
|
+
return downloadFileFromUrl(fileUrl, fileName);
|
|
67
|
+
case 3:
|
|
68
|
+
downloadedFile = _context.sent;
|
|
69
|
+
setCurrentFile(downloadedFile);
|
|
70
|
+
_context.next = 5;
|
|
71
|
+
break;
|
|
72
|
+
case 4:
|
|
73
|
+
_context.prev = 4;
|
|
74
|
+
_t = _context["catch"](2);
|
|
75
|
+
setError(t('chat.attachmentPreviewModal.excel.fileReadError'));
|
|
76
|
+
setIsLoading(false);
|
|
77
|
+
case 5:
|
|
78
|
+
_context.next = 7;
|
|
79
|
+
break;
|
|
80
|
+
case 6:
|
|
81
|
+
setError(t('chat.attachmentPreviewModal.excel.loadError'));
|
|
82
|
+
setIsLoading(false);
|
|
83
|
+
case 7:
|
|
84
|
+
case "end":
|
|
85
|
+
return _context.stop();
|
|
86
|
+
}
|
|
87
|
+
}, _callee, null, [[2, 4]]);
|
|
88
|
+
}));
|
|
89
|
+
return function loadFile() {
|
|
90
|
+
return _ref2.apply(this, arguments);
|
|
91
|
+
};
|
|
92
|
+
}();
|
|
93
|
+
loadFile();
|
|
94
|
+
}, [file, fileUrl, fileName, t]);
|
|
95
|
+
|
|
96
|
+
// Leer el archivo Excel cuando esté disponible
|
|
97
|
+
useEffect(function () {
|
|
98
|
+
if (!currentFile) {
|
|
99
|
+
return;
|
|
100
|
+
}
|
|
101
|
+
var reader = new FileReader();
|
|
102
|
+
reader.onload = function (e) {
|
|
103
|
+
try {
|
|
104
|
+
var _e$target;
|
|
105
|
+
var binaryStr = (_e$target = e.target) === null || _e$target === void 0 ? void 0 : _e$target.result;
|
|
106
|
+
var workbook = XLSX.read(binaryStr, {
|
|
107
|
+
type: 'binary'
|
|
108
|
+
});
|
|
109
|
+
var sheetNames = workbook.SheetNames;
|
|
110
|
+
setExcelSheetNames(sheetNames);
|
|
111
|
+
|
|
112
|
+
// Cargar la primera hoja por defecto
|
|
113
|
+
if (sheetNames.length > 0) {
|
|
114
|
+
var firstSheetName = sheetNames[0];
|
|
115
|
+
setSelectedSheet(firstSheetName);
|
|
116
|
+
var worksheet = workbook.Sheets[firstSheetName];
|
|
117
|
+
var jsonData = XLSX.utils.sheet_to_json(worksheet, {
|
|
118
|
+
header: 1,
|
|
119
|
+
defval: ''
|
|
120
|
+
});
|
|
121
|
+
setExcelData(jsonData);
|
|
122
|
+
}
|
|
123
|
+
setIsLoading(false);
|
|
124
|
+
setError(null);
|
|
125
|
+
} catch (err) {
|
|
126
|
+
setError(t('chat.attachmentPreviewModal.excel.loadError'));
|
|
127
|
+
setIsLoading(false);
|
|
128
|
+
}
|
|
129
|
+
};
|
|
130
|
+
reader.onerror = function () {
|
|
131
|
+
setError(t('chat.attachmentPreviewModal.excel.fileReadError'));
|
|
132
|
+
setIsLoading(false);
|
|
133
|
+
};
|
|
134
|
+
reader.readAsBinaryString(currentFile);
|
|
135
|
+
}, [currentFile, t]);
|
|
136
|
+
var handleSheetChange = function handleSheetChange(sheetName) {
|
|
137
|
+
if (!currentFile) {
|
|
138
|
+
return;
|
|
139
|
+
}
|
|
140
|
+
setSelectedSheet(sheetName);
|
|
141
|
+
setIsLoading(true);
|
|
142
|
+
var reader = new FileReader();
|
|
143
|
+
reader.onload = function (e) {
|
|
144
|
+
try {
|
|
145
|
+
var _e$target2;
|
|
146
|
+
var binaryStr = (_e$target2 = e.target) === null || _e$target2 === void 0 ? void 0 : _e$target2.result;
|
|
147
|
+
var workbook = XLSX.read(binaryStr, {
|
|
148
|
+
type: 'binary'
|
|
149
|
+
});
|
|
150
|
+
var worksheet = workbook.Sheets[sheetName];
|
|
151
|
+
var jsonData = XLSX.utils.sheet_to_json(worksheet, {
|
|
152
|
+
header: 1,
|
|
153
|
+
defval: ''
|
|
154
|
+
});
|
|
155
|
+
setExcelData(jsonData);
|
|
156
|
+
setIsLoading(false);
|
|
157
|
+
setError(null);
|
|
158
|
+
} catch (err) {
|
|
159
|
+
setError(t('chat.attachmentPreviewModal.excel.sheetLoadError'));
|
|
160
|
+
setIsLoading(false);
|
|
161
|
+
}
|
|
162
|
+
};
|
|
163
|
+
reader.onerror = function () {
|
|
164
|
+
setError(t('chat.attachmentPreviewModal.excel.fileReadError'));
|
|
165
|
+
setIsLoading(false);
|
|
166
|
+
};
|
|
167
|
+
reader.readAsBinaryString(currentFile);
|
|
168
|
+
};
|
|
169
|
+
if (isLoading) {
|
|
170
|
+
return /*#__PURE__*/_jsx(SCAPMLoadingContainer, {
|
|
171
|
+
children: /*#__PURE__*/_jsx("span", {
|
|
172
|
+
children: t('chat.attachmentPreviewModal.loading')
|
|
173
|
+
})
|
|
174
|
+
});
|
|
175
|
+
}
|
|
176
|
+
if (error || excelData.length === 0) {
|
|
177
|
+
return /*#__PURE__*/_jsxs(SCAPMExcelContainer, {
|
|
178
|
+
children: [/*#__PURE__*/_jsx(SCAPMFileName, {
|
|
179
|
+
children: fileName
|
|
180
|
+
}), /*#__PURE__*/_jsx("p", {
|
|
181
|
+
children: error || t('chat.attachmentPreviewModal.excel.loadError')
|
|
182
|
+
})]
|
|
183
|
+
});
|
|
184
|
+
}
|
|
185
|
+
return /*#__PURE__*/_jsxs(SCAPMExcelTableWrapper, {
|
|
186
|
+
children: [excelSheetNames.length > 1 && /*#__PURE__*/_jsxs(SCAPMExcelSheetSelector, {
|
|
187
|
+
children: [/*#__PURE__*/_jsxs("label", {
|
|
188
|
+
htmlFor: "sheet-selector",
|
|
189
|
+
id: "sheet-selector-label",
|
|
190
|
+
children: [t('chat.attachmentPreviewModal.excel.sheetSelectorLabel'), ' ']
|
|
191
|
+
}), /*#__PURE__*/_jsx(SCAPMExcelSheetSelect, {
|
|
192
|
+
id: "sheet-selector",
|
|
193
|
+
"aria-labelledby": "sheet-selector-label",
|
|
194
|
+
value: selectedSheet,
|
|
195
|
+
onChange: function onChange(e) {
|
|
196
|
+
return handleSheetChange(e.target.value);
|
|
197
|
+
},
|
|
198
|
+
children: excelSheetNames.map(function (sheetName) {
|
|
199
|
+
return /*#__PURE__*/_jsx("option", {
|
|
200
|
+
value: sheetName,
|
|
201
|
+
children: sheetName
|
|
202
|
+
}, sheetName);
|
|
203
|
+
})
|
|
204
|
+
})]
|
|
205
|
+
}), /*#__PURE__*/_jsx(SCAPMExcelTable, {
|
|
206
|
+
children: /*#__PURE__*/_jsx("table", {
|
|
207
|
+
children: /*#__PURE__*/_jsx("tbody", {
|
|
208
|
+
children: excelData.map(function (row, rowIndex) {
|
|
209
|
+
return /*#__PURE__*/_jsx("tr", {
|
|
210
|
+
children: row.map(function (cell, cellIndex) {
|
|
211
|
+
return /*#__PURE__*/_jsx("td", {
|
|
212
|
+
children: cell || ''
|
|
213
|
+
}, cellIndex);
|
|
214
|
+
})
|
|
215
|
+
}, rowIndex);
|
|
216
|
+
})
|
|
217
|
+
})
|
|
218
|
+
})
|
|
219
|
+
})]
|
|
220
|
+
});
|
|
221
|
+
};
|
|
222
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsInVzZVN0YXRlIiwidXNlRWZmZWN0IiwiWExTWCIsInVzZVRyYW5zbGF0aW9uIiwiZG93bmxvYWRGaWxlRnJvbVVybCIsIlNDQVBNRXhjZWxDb250YWluZXIiLCJTQ0FQTUV4Y2VsVGFibGUiLCJTQ0FQTUV4Y2VsVGFibGVXcmFwcGVyIiwiU0NBUE1FeGNlbFNoZWV0U2VsZWN0b3IiLCJTQ0FQTUZpbGVOYW1lIiwiU0NBUE1Mb2FkaW5nQ29udGFpbmVyIiwiU0NBUE1FeGNlbFNoZWV0U2VsZWN0IiwianN4IiwiX2pzeCIsImpzeHMiLCJfanN4cyIsIkV4Y2VsUHJldmlldyIsIl9yZWYiLCJmaWxlIiwiZmlsZVVybCIsImZpbGVOYW1lIiwiX3VzZVRyYW5zbGF0aW9uIiwidCIsIl91c2VTdGF0ZSIsIl91c2VTdGF0ZTIiLCJfc2xpY2VkVG9BcnJheSIsImV4Y2VsRGF0YSIsInNldEV4Y2VsRGF0YSIsIl91c2VTdGF0ZTMiLCJfdXNlU3RhdGU0IiwiZXhjZWxTaGVldE5hbWVzIiwic2V0RXhjZWxTaGVldE5hbWVzIiwiX3VzZVN0YXRlNSIsIl91c2VTdGF0ZTYiLCJzZWxlY3RlZFNoZWV0Iiwic2V0U2VsZWN0ZWRTaGVldCIsIl91c2VTdGF0ZTciLCJfdXNlU3RhdGU4IiwiaXNMb2FkaW5nIiwic2V0SXNMb2FkaW5nIiwiX3VzZVN0YXRlOSIsIl91c2VTdGF0ZTAiLCJlcnJvciIsInNldEVycm9yIiwiX3VzZVN0YXRlMSIsIl91c2VTdGF0ZTEwIiwiY3VycmVudEZpbGUiLCJzZXRDdXJyZW50RmlsZSIsImxvYWRGaWxlIiwiX3JlZjIiLCJfYXN5bmNUb0dlbmVyYXRvciIsIl9yZWdlbmVyYXRvclJ1bnRpbWUiLCJtYXJrIiwiX2NhbGxlZSIsImRvd25sb2FkZWRGaWxlIiwiX3QiLCJ3cmFwIiwiX2NvbnRleHQiLCJwcmV2IiwibmV4dCIsImFicnVwdCIsInNlbnQiLCJzdG9wIiwiYXBwbHkiLCJhcmd1bWVudHMiLCJyZWFkZXIiLCJGaWxlUmVhZGVyIiwib25sb2FkIiwiZSIsIl9lJHRhcmdldCIsImJpbmFyeVN0ciIsInRhcmdldCIsInJlc3VsdCIsIndvcmtib29rIiwicmVhZCIsInR5cGUiLCJzaGVldE5hbWVzIiwiU2hlZXROYW1lcyIsImxlbmd0aCIsImZpcnN0U2hlZXROYW1lIiwid29ya3NoZWV0IiwiU2hlZXRzIiwianNvbkRhdGEiLCJ1dGlscyIsInNoZWV0X3RvX2pzb24iLCJoZWFkZXIiLCJkZWZ2YWwiLCJlcnIiLCJvbmVycm9yIiwicmVhZEFzQmluYXJ5U3RyaW5nIiwiaGFuZGxlU2hlZXRDaGFuZ2UiLCJzaGVldE5hbWUiLCJfZSR0YXJnZXQyIiwiY2hpbGRyZW4iLCJodG1sRm9yIiwiaWQiLCJ2YWx1ZSIsIm9uQ2hhbmdlIiwibWFwIiwicm93Iiwicm93SW5kZXgiLCJjZWxsIiwiY2VsbEluZGV4Il0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvYXRvbXMvQXR0YWNobWVudFByZXZpZXdNb2RhbC9FeGNlbFByZXZpZXcudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIHJlYWN0L25vLWFycmF5LWluZGV4LWtleSAqL1xuLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueSAqL1xuLyogZXNsaW50LWRpc2FibGUgaW1wb3J0L25vLWV4dHJhbmVvdXMtZGVwZW5kZW5jaWVzICovXG5pbXBvcnQgUmVhY3QsIHsgdXNlU3RhdGUsIHVzZUVmZmVjdCB9IGZyb20gJ3JlYWN0J1xuaW1wb3J0ICogYXMgWExTWCBmcm9tICd4bHN4J1xuaW1wb3J0IHsgdXNlVHJhbnNsYXRpb24gfSBmcm9tICdyZWFjdC1pMThuZXh0J1xuaW1wb3J0IHsgZG93bmxvYWRGaWxlRnJvbVVybCB9IGZyb20gJy4uLy4uLy4uL3V0aWxzL2ZpbGVEb3dubG9hZEhlbHBlcidcbmltcG9ydCB7XG4gIFNDQVBNRXhjZWxDb250YWluZXIsXG4gIFNDQVBNRXhjZWxUYWJsZSxcbiAgU0NBUE1FeGNlbFRhYmxlV3JhcHBlcixcbiAgU0NBUE1FeGNlbFNoZWV0U2VsZWN0b3IsXG4gIFNDQVBNRmlsZU5hbWUsXG4gIFNDQVBNTG9hZGluZ0NvbnRhaW5lcixcbiAgU0NBUE1FeGNlbFNoZWV0U2VsZWN0LFxufSBmcm9tICcuL0F0dGFjaG1lbnRQcmV2aWV3TW9kYWwuc3R5bGVzJ1xuXG50eXBlIEV4Y2VsUHJldmlld1Byb3BzID0ge1xuICBmaWxlPzogRmlsZVxuICBmaWxlVXJsPzogc3RyaW5nXG4gIGZpbGVOYW1lOiBzdHJpbmdcbn1cblxuZXhwb3J0IGNvbnN0IEV4Y2VsUHJldmlldzogUmVhY3QuRkM8RXhjZWxQcmV2aWV3UHJvcHM+ID0gKHsgZmlsZSwgZmlsZVVybCwgZmlsZU5hbWUgfSkgPT4ge1xuICBjb25zdCB7IHQgfSA9IHVzZVRyYW5zbGF0aW9uKFsnY2hhdF9haV9zZWN0aW9uJ10pXG4gIGNvbnN0IFtleGNlbERhdGEsIHNldEV4Y2VsRGF0YV0gPSB1c2VTdGF0ZTxhbnlbXVtdPihbXSlcbiAgY29uc3QgW2V4Y2VsU2hlZXROYW1lcywgc2V0RXhjZWxTaGVldE5hbWVzXSA9IHVzZVN0YXRlPHN0cmluZ1tdPihbXSlcbiAgY29uc3QgW3NlbGVjdGVkU2hlZXQsIHNldFNlbGVjdGVkU2hlZXRdID0gdXNlU3RhdGU8c3RyaW5nPignJylcbiAgY29uc3QgW2lzTG9hZGluZywgc2V0SXNMb2FkaW5nXSA9IHVzZVN0YXRlKHRydWUpXG4gIGNvbnN0IFtlcnJvciwgc2V0RXJyb3JdID0gdXNlU3RhdGU8c3RyaW5nIHwgbnVsbD4obnVsbClcbiAgY29uc3QgW2N1cnJlbnRGaWxlLCBzZXRDdXJyZW50RmlsZV0gPSB1c2VTdGF0ZTxGaWxlIHwgbnVsbD4obnVsbClcblxuICAvLyBEZXNjYXJnYXIgYXJjaGl2byBkZXNkZSBVUkwgc2kgZXMgbmVjZXNhcmlvXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgY29uc3QgbG9hZEZpbGUgPSBhc3luYyAoKSA9PiB7XG4gICAgICBpZiAoZmlsZSkge1xuICAgICAgICBzZXRDdXJyZW50RmlsZShmaWxlKVxuICAgICAgICByZXR1cm5cbiAgICAgIH1cblxuICAgICAgaWYgKGZpbGVVcmwpIHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBzZXRJc0xvYWRpbmcodHJ1ZSlcbiAgICAgICAgICBjb25zdCBkb3dubG9hZGVkRmlsZSA9IGF3YWl0IGRvd25sb2FkRmlsZUZyb21VcmwoZmlsZVVybCwgZmlsZU5hbWUpXG4gICAgICAgICAgc2V0Q3VycmVudEZpbGUoZG93bmxvYWRlZEZpbGUpXG4gICAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICAgIHNldEVycm9yKHQoJ2NoYXQuYXR0YWNobWVudFByZXZpZXdNb2RhbC5leGNlbC5maWxlUmVhZEVycm9yJykpXG4gICAgICAgICAgc2V0SXNMb2FkaW5nKGZhbHNlKVxuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBzZXRFcnJvcih0KCdjaGF0LmF0dGFjaG1lbnRQcmV2aWV3TW9kYWwuZXhjZWwubG9hZEVycm9yJykpXG4gICAgICAgIHNldElzTG9hZGluZyhmYWxzZSlcbiAgICAgIH1cbiAgICB9XG5cbiAgICBsb2FkRmlsZSgpXG4gIH0sIFtmaWxlLCBmaWxlVXJsLCBmaWxlTmFtZSwgdF0pXG5cbiAgLy8gTGVlciBlbCBhcmNoaXZvIEV4Y2VsIGN1YW5kbyBlc3TDqSBkaXNwb25pYmxlXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKCFjdXJyZW50RmlsZSkge1xuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgY29uc3QgcmVhZGVyID0gbmV3IEZpbGVSZWFkZXIoKVxuXG4gICAgcmVhZGVyLm9ubG9hZCA9IGUgPT4ge1xuICAgICAgdHJ5IHtcbiAgICAgICAgY29uc3QgYmluYXJ5U3RyID0gZS50YXJnZXQ/LnJlc3VsdFxuICAgICAgICBjb25zdCB3b3JrYm9vayA9IFhMU1gucmVhZChiaW5hcnlTdHIsIHsgdHlwZTogJ2JpbmFyeScgfSlcbiAgICAgICAgY29uc3Qgc2hlZXROYW1lcyA9IHdvcmtib29rLlNoZWV0TmFtZXNcbiAgICAgICAgc2V0RXhjZWxTaGVldE5hbWVzKHNoZWV0TmFtZXMpXG5cbiAgICAgICAgLy8gQ2FyZ2FyIGxhIHByaW1lcmEgaG9qYSBwb3IgZGVmZWN0b1xuICAgICAgICBpZiAoc2hlZXROYW1lcy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgY29uc3QgZmlyc3RTaGVldE5hbWUgPSBzaGVldE5hbWVzWzBdXG4gICAgICAgICAgc2V0U2VsZWN0ZWRTaGVldChmaXJzdFNoZWV0TmFtZSlcbiAgICAgICAgICBjb25zdCB3b3Jrc2hlZXQgPSB3b3JrYm9vay5TaGVldHNbZmlyc3RTaGVldE5hbWVdXG4gICAgICAgICAgY29uc3QganNvbkRhdGEgPSBYTFNYLnV0aWxzLnNoZWV0X3RvX2pzb24od29ya3NoZWV0LCB7IGhlYWRlcjogMSwgZGVmdmFsOiAnJyB9KVxuICAgICAgICAgIHNldEV4Y2VsRGF0YShqc29uRGF0YSBhcyBhbnlbXVtdKVxuICAgICAgICB9XG4gICAgICAgIHNldElzTG9hZGluZyhmYWxzZSlcbiAgICAgICAgc2V0RXJyb3IobnVsbClcbiAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICBzZXRFcnJvcih0KCdjaGF0LmF0dGFjaG1lbnRQcmV2aWV3TW9kYWwuZXhjZWwubG9hZEVycm9yJykpXG4gICAgICAgIHNldElzTG9hZGluZyhmYWxzZSlcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZWFkZXIub25lcnJvciA9ICgpID0+IHtcbiAgICAgIHNldEVycm9yKHQoJ2NoYXQuYXR0YWNobWVudFByZXZpZXdNb2RhbC5leGNlbC5maWxlUmVhZEVycm9yJykpXG4gICAgICBzZXRJc0xvYWRpbmcoZmFsc2UpXG4gICAgfVxuXG4gICAgcmVhZGVyLnJlYWRBc0JpbmFyeVN0cmluZyhjdXJyZW50RmlsZSlcbiAgfSwgW2N1cnJlbnRGaWxlLCB0XSlcblxuICBjb25zdCBoYW5kbGVTaGVldENoYW5nZSA9IChzaGVldE5hbWU6IHN0cmluZykgPT4ge1xuICAgIGlmICghY3VycmVudEZpbGUpIHtcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIHNldFNlbGVjdGVkU2hlZXQoc2hlZXROYW1lKVxuICAgIHNldElzTG9hZGluZyh0cnVlKVxuXG4gICAgY29uc3QgcmVhZGVyID0gbmV3IEZpbGVSZWFkZXIoKVxuICAgIHJlYWRlci5vbmxvYWQgPSBlID0+IHtcbiAgICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IGJpbmFyeVN0ciA9IGUudGFyZ2V0Py5yZXN1bHRcbiAgICAgICAgY29uc3Qgd29ya2Jvb2sgPSBYTFNYLnJlYWQoYmluYXJ5U3RyLCB7IHR5cGU6ICdiaW5hcnknIH0pXG4gICAgICAgIGNvbnN0IHdvcmtzaGVldCA9IHdvcmtib29rLlNoZWV0c1tzaGVldE5hbWVdXG4gICAgICAgIGNvbnN0IGpzb25EYXRhID0gWExTWC51dGlscy5zaGVldF90b19qc29uKHdvcmtzaGVldCwgeyBoZWFkZXI6IDEsIGRlZnZhbDogJycgfSlcbiAgICAgICAgc2V0RXhjZWxEYXRhKGpzb25EYXRhIGFzIGFueVtdW10pXG4gICAgICAgIHNldElzTG9hZGluZyhmYWxzZSlcbiAgICAgICAgc2V0RXJyb3IobnVsbClcbiAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICBzZXRFcnJvcih0KCdjaGF0LmF0dGFjaG1lbnRQcmV2aWV3TW9kYWwuZXhjZWwuc2hlZXRMb2FkRXJyb3InKSlcbiAgICAgICAgc2V0SXNMb2FkaW5nKGZhbHNlKVxuICAgICAgfVxuICAgIH1cbiAgICByZWFkZXIub25lcnJvciA9ICgpID0+IHtcbiAgICAgIHNldEVycm9yKHQoJ2NoYXQuYXR0YWNobWVudFByZXZpZXdNb2RhbC5leGNlbC5maWxlUmVhZEVycm9yJykpXG4gICAgICBzZXRJc0xvYWRpbmcoZmFsc2UpXG4gICAgfVxuICAgIHJlYWRlci5yZWFkQXNCaW5hcnlTdHJpbmcoY3VycmVudEZpbGUpXG4gIH1cblxuICBpZiAoaXNMb2FkaW5nKSB7XG4gICAgcmV0dXJuIChcbiAgICAgIDxTQ0FQTUxvYWRpbmdDb250YWluZXI+XG4gICAgICAgIDxzcGFuPnt0KCdjaGF0LmF0dGFjaG1lbnRQcmV2aWV3TW9kYWwubG9hZGluZycpfTwvc3Bhbj5cbiAgICAgIDwvU0NBUE1Mb2FkaW5nQ29udGFpbmVyPlxuICAgIClcbiAgfVxuXG4gIGlmIChlcnJvciB8fCBleGNlbERhdGEubGVuZ3RoID09PSAwKSB7XG4gICAgcmV0dXJuIChcbiAgICAgIDxTQ0FQTUV4Y2VsQ29udGFpbmVyPlxuICAgICAgICA8U0NBUE1GaWxlTmFtZT57ZmlsZU5hbWV9PC9TQ0FQTUZpbGVOYW1lPlxuICAgICAgICA8cD57ZXJyb3IgfHwgdCgnY2hhdC5hdHRhY2htZW50UHJldmlld01vZGFsLmV4Y2VsLmxvYWRFcnJvcicpfTwvcD5cbiAgICAgIDwvU0NBUE1FeGNlbENvbnRhaW5lcj5cbiAgICApXG4gIH1cblxuICByZXR1cm4gKFxuICAgIDxTQ0FQTUV4Y2VsVGFibGVXcmFwcGVyPlxuICAgICAge2V4Y2VsU2hlZXROYW1lcy5sZW5ndGggPiAxICYmIChcbiAgICAgICAgPFNDQVBNRXhjZWxTaGVldFNlbGVjdG9yPlxuICAgICAgICAgIDxsYWJlbCBodG1sRm9yPVwic2hlZXQtc2VsZWN0b3JcIiBpZD1cInNoZWV0LXNlbGVjdG9yLWxhYmVsXCI+XG4gICAgICAgICAgICB7dCgnY2hhdC5hdHRhY2htZW50UHJldmlld01vZGFsLmV4Y2VsLnNoZWV0U2VsZWN0b3JMYWJlbCcpfXsnICd9XG4gICAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgICA8U0NBUE1FeGNlbFNoZWV0U2VsZWN0XG4gICAgICAgICAgICBpZD1cInNoZWV0LXNlbGVjdG9yXCJcbiAgICAgICAgICAgIGFyaWEtbGFiZWxsZWRieT1cInNoZWV0LXNlbGVjdG9yLWxhYmVsXCJcbiAgICAgICAgICAgIHZhbHVlPXtzZWxlY3RlZFNoZWV0fVxuICAgICAgICAgICAgb25DaGFuZ2U9e2UgPT4gaGFuZGxlU2hlZXRDaGFuZ2UoZS50YXJnZXQudmFsdWUpfVxuICAgICAgICAgID5cbiAgICAgICAgICAgIHtleGNlbFNoZWV0TmFtZXMubWFwKHNoZWV0TmFtZSA9PiAoXG4gICAgICAgICAgICAgIDxvcHRpb24ga2V5PXtzaGVldE5hbWV9IHZhbHVlPXtzaGVldE5hbWV9PlxuICAgICAgICAgICAgICAgIHtzaGVldE5hbWV9XG4gICAgICAgICAgICAgIDwvb3B0aW9uPlxuICAgICAgICAgICAgKSl9XG4gICAgICAgICAgPC9TQ0FQTUV4Y2VsU2hlZXRTZWxlY3Q+XG4gICAgICAgIDwvU0NBUE1FeGNlbFNoZWV0U2VsZWN0b3I+XG4gICAgICApfVxuICAgICAgPFNDQVBNRXhjZWxUYWJsZT5cbiAgICAgICAgPHRhYmxlPlxuICAgICAgICAgIDx0Ym9keT5cbiAgICAgICAgICAgIHtleGNlbERhdGEubWFwKChyb3csIHJvd0luZGV4KSA9PiAoXG4gICAgICAgICAgICAgIDx0ciBrZXk9e3Jvd0luZGV4fT5cbiAgICAgICAgICAgICAgICB7cm93Lm1hcCgoY2VsbCwgY2VsbEluZGV4KSA9PiAoXG4gICAgICAgICAgICAgICAgICA8dGQga2V5PXtjZWxsSW5kZXh9PntjZWxsIHx8ICcnfTwvdGQ+XG4gICAgICAgICAgICAgICAgKSl9XG4gICAgICAgICAgICAgIDwvdHI+XG4gICAgICAgICAgICApKX1cbiAgICAgICAgICA8L3Rib2R5PlxuICAgICAgICA8L3RhYmxlPlxuICAgICAgPC9TQ0FQTUV4Y2VsVGFibGU+XG4gICAgPC9TQ0FQTUV4Y2VsVGFibGVXcmFwcGVyPlxuICApXG59XG4iXSwibWFwcGluZ3MiOiI7OztBQUFBO0FBQ0E7QUFDQTtBQUNBLE9BQU9BLEtBQUssSUFBSUMsUUFBUSxFQUFFQyxTQUFTLFFBQVEsT0FBTztBQUNsRCxPQUFPLEtBQUtDLElBQUksTUFBTSxNQUFNO0FBQzVCLFNBQVNDLGNBQWMsUUFBUSxlQUFlO0FBQzlDLFNBQVNDLG1CQUFtQixRQUFRLG1DQUFtQztBQUN2RSxTQUNFQyxtQkFBbUIsRUFD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
|