@projectcor/maia-components 2.44.5-0 → 2.45.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/README.md +2 -0
- package/lib/App.js +19 -44
- package/lib/components/atoms/AttachmentCard/AttachmentCardAudio.js +51 -5
- package/lib/components/atoms/AttachmentPreviewModal/AttachmentPreviewModal.js +76 -18
- package/lib/components/atoms/AttachmentPreviewModal/PptPreview.js +31 -3
- package/lib/components/atoms/AttachmentPreviewModal/WordPreview.js +4 -2
- package/lib/components/atoms/ContextMentionChip/buildChipElement.js +255 -15
- package/lib/components/atoms/ContextMentionEditor/ContextMentionEditor.js +34 -5
- package/lib/components/atoms/FrequentlyUsedActions/FrequentlyUsedActions.js +1 -3
- package/lib/components/atoms/FrequentlyUsedActions/FrequentlyUsedActions.styles.js +7 -19
- package/lib/components/atoms/MAIAInput/MAIAInput.js +10 -4
- package/lib/components/atoms/MAIAInput/MAIAInputEditor.js +60 -8
- package/lib/components/atoms/OnboardingModalButton/OnboardingModalButton.js +15 -3
- package/lib/components/atoms/ReasoningBlock/ReasoningBlock.js +2 -7
- package/lib/components/atoms/ReasoningBlock/ReasoningBlock.styles.js +16 -21
- package/lib/components/atoms/ReasoningBlock/ReasoningSteps.js +5 -7
- package/lib/components/atoms/ReasoningBlock/ReasoningTimeline.js +52 -72
- package/lib/components/atoms/ReasoningBlock/reasoningLeading.js +1 -6
- package/lib/components/atoms/ReasoningBlock/reasoningLiveNarration.js +15 -36
- package/lib/components/index.js +1 -2
- package/lib/components/molecules/AbmSection/AbmAccessibilitySection/AbmAccessibilitySection.js +29 -5
- package/lib/components/molecules/AbmSection/AbmGeneralSection.js +40 -6
- package/lib/components/molecules/AbmSection/AbmKnowledgeSection.js +90 -18
- package/lib/components/molecules/AbmSection/AbmLoaderFiles.js +15 -5
- package/lib/components/molecules/ChatAIContent/ChatAIContent.js +3 -7
- package/lib/components/molecules/ChatAIHome/ChatAIHome.js +6 -21
- package/lib/components/molecules/ChatAIMessages/ChatAIMessages.js +47 -19
- package/lib/components/molecules/ChatAIMessages/newStyles.js +26 -29
- package/lib/components/molecules/ChatAIModal/ChatAIModal.helpers.js +4 -147
- package/lib/components/molecules/ChatAIModal/ChatAIModal.js +108 -64
- package/lib/components/molecules/ChatAIModal/components/ChatAiAgentOptions/ChatAiAgentOptions.js +2 -3
- package/lib/components/molecules/ChatAIModal/components/ChatAiModalFooter/ChatAiModalFooter.js +153 -15
- package/lib/components/molecules/ChatAIModal/components/ChatAiModalFooter/ChatAiModalFooter.styles.js +26 -2
- package/lib/components/molecules/ChatAIModal/components/ChatAiModalHeader/ChatAiModalHeader.js +86 -76
- package/lib/components/molecules/ChatFooter/ChatFooter.js +3 -5
- package/lib/components/molecules/ChatFooter/ChatFooterFaqs.js +44 -9
- package/lib/components/molecules/Sidebar/Sidebar.js +23 -41
- package/lib/components/organisms/AbmAgentModal/AbmAgentModal.js +171 -56
- package/lib/constants/permissions/index.js +2 -2
- package/lib/constants/permissions/utils.js +1 -4
- package/lib/dev/DevReasoningTimeline.js +37 -68
- package/lib/dev/Providers.js +3 -5
- package/lib/hooks/useChatManager/useChatManager.js +351 -76
- package/lib/hooks/useChatMessages/useChatMessages.js +82 -12
- package/lib/hooks/useClientSearch.js +32 -4
- package/lib/hooks/useContextMentions.js +163 -2
- package/lib/hooks/useContextPinPopover.js +75 -16
- package/lib/hooks/useEntitySearch.js +391 -38
- package/lib/hooks/useFrequentlyUsedActions.js +22 -60
- package/lib/hooks/useMentionPopover.js +35 -9
- package/lib/hooks/useMinimizedPillBottomOffset.js +45 -15
- package/lib/hooks/useProjectSearch.js +58 -4
- package/lib/hooks/useProjectSummaryConfig.js +52 -14
- package/lib/hooks/useRecentClientsSearch.js +32 -4
- package/lib/index.js +2 -5
- package/lib/lang/approvalBoxToolActions.js +492 -0
- package/lib/lang/br/index.js +23 -59
- package/lib/lang/en/index.js +23 -59
- package/lib/lang/es/index.js +23 -59
- package/lib/lang/fr/index.js +23 -59
- package/lib/services/maia/Actions/getFrequentlyUsedActions.js +1 -1
- package/lib/services/maia/Agents/getAgents.js +242 -78
- package/lib/services/maia/Orchestrator/orchestrator.js +121 -38
- package/lib/store/sessions/sessionNotifications.js +41 -35
- package/lib/store/sessions/sessionStreamManager.js +52 -40
- package/lib/styles/cascade.js +3 -29
- package/lib/styles/transitions.js +1 -3
- package/lib/types/agentModal.js +1 -1
- package/lib/types/global.d.js +1 -1
- package/lib/utils/hoursPlannerQuickActionType.js +1 -74
- package/lib/utils/imagePreprocessor.js +37 -12
- package/lib/utils/streamActivityMessages.js +60 -32
- package/package.json +1 -1
- package/lib/components/atoms/ActionableButton.spec.js +0 -111
- package/lib/components/atoms/AgentActivityIndicator/AgentActivityIndicator.spec.js +0 -52
- package/lib/components/atoms/AgentActivityIndicator/AgentActivityIndicator.utils.spec.js +0 -11
- package/lib/components/atoms/ApprovalBox/ApprovalBox.spec.js +0 -135
- package/lib/components/atoms/AttachmentCard/AttachmentCard.spec.js +0 -123
- package/lib/components/atoms/AttachmentCard/AttachmentCardAudio.helpers.js +0 -65
- package/lib/components/atoms/AttachmentCard/AttachmentCardAudio.helpers.spec.js +0 -66
- package/lib/components/atoms/AttachmentCard/AttachmentCardAudio.spec.js +0 -211
- package/lib/components/atoms/AttachmentCard/AttachmentCardImage.spec.js +0 -78
- package/lib/components/atoms/AttachmentPreviewModal/AttachmentPreviewModal.helpers.js +0 -55
- package/lib/components/atoms/AttachmentPreviewModal/AttachmentPreviewModal.helpers.spec.js +0 -41
- package/lib/components/atoms/AttachmentPreviewModal/AttachmentPreviewModal.spec.js +0 -253
- package/lib/components/atoms/AttachmentPreviewModal/ExcelPreview.spec.js +0 -80
- package/lib/components/atoms/AttachmentPreviewModal/PptPreview.helpers.js +0 -31
- package/lib/components/atoms/AttachmentPreviewModal/PptPreview.helpers.spec.js +0 -33
- package/lib/components/atoms/AttachmentPreviewModal/PptPreview.spec.js +0 -25
- package/lib/components/atoms/AttachmentPreviewModal/WordPreview.helpers.js +0 -4
- package/lib/components/atoms/AttachmentPreviewModal/WordPreview.helpers.spec.js +0 -11
- package/lib/components/atoms/AttachmentPreviewModal/WordPreview.spec.js +0 -77
- package/lib/components/atoms/Backdrop/Backdrop.spec.js +0 -28
- package/lib/components/atoms/CardMenu/CardMenu.spec.js +0 -56
- package/lib/components/atoms/ChatClientSelector/ChatClientSelector.spec.js +0 -67
- package/lib/components/atoms/Checkbox/Checkbox.spec.js +0 -27
- package/lib/components/atoms/Chip/Chip.spec.js +0 -82
- package/lib/components/atoms/ChipLlm/ChipLlm.spec.js +0 -26
- package/lib/components/atoms/ClientSelector/ClientSelector.spec.js +0 -88
- package/lib/components/atoms/ContextMentionChip/ContextMentionChip.spec.js +0 -29
- package/lib/components/atoms/ContextMentionChip/MentionOverflowLabel.spec.js +0 -46
- package/lib/components/atoms/ContextMentionChip/buildChipElement.helpers.js +0 -227
- package/lib/components/atoms/ContextMentionChip/buildChipElement.helpers.spec.js +0 -77
- package/lib/components/atoms/ContextMentionChip/buildChipElement.spec.js +0 -81
- package/lib/components/atoms/ContextMentionEditor/ContextMentionEditor.helpers.js +0 -31
- package/lib/components/atoms/ContextMentionEditor/ContextMentionEditor.helpers.spec.js +0 -48
- package/lib/components/atoms/ContextMentionEditor/ContextMentionEditor.spec.js +0 -231
- package/lib/components/atoms/ContextMentionItem/ContextMentionItem.spec.js +0 -107
- package/lib/components/atoms/ContextMentionPopover/ContextMentionPopover.spec.js +0 -136
- package/lib/components/atoms/CopyToClipboard.spec.js +0 -74
- package/lib/components/atoms/EditableLabel/EditableLabel.spec.js +0 -76
- package/lib/components/atoms/EntitySelector/EntitySelector.spec.js +0 -86
- package/lib/components/atoms/Expand/Expand.spec.js +0 -57
- package/lib/components/atoms/Fade/Fade.spec.js +0 -31
- package/lib/components/atoms/FeedbackButton/FeedbackButton.spec.js +0 -75
- package/lib/components/atoms/FrequentlyAskedQuestions/FrequentlyAskedQuestions.spec.js +0 -104
- package/lib/components/atoms/FrequentlyUsedActions/FrequentlyUsedActions.spec.js +0 -91
- package/lib/components/atoms/HelpButton.spec.js +0 -87
- package/lib/components/atoms/ImagePreview/ImagePreview.spec.js +0 -96
- package/lib/components/atoms/ListMenuOption/ListMenuOption.spec.js +0 -54
- package/lib/components/atoms/LoadingFaqs/LoadingFaqs.spec.js +0 -21
- package/lib/components/atoms/LoadingSearchClients/LoadingSearchClients.spec.js +0 -20
- package/lib/components/atoms/LoadingSearchProjects/LoadingSearchProjects.spec.js +0 -26
- package/lib/components/atoms/LoadingText/LoadingText.spec.js +0 -25
- package/lib/components/atoms/MAIAButton/MAIAButton.spec.js +0 -42
- package/lib/components/atoms/MAIAError/MAIAError.spec.js +0 -27
- package/lib/components/atoms/MAIAInput/MAIAInput.helpers.js +0 -12
- package/lib/components/atoms/MAIAInput/MAIAInput.helpers.spec.js +0 -26
- package/lib/components/atoms/MAIAInput/MAIAInput.spec.js +0 -430
- package/lib/components/atoms/MAIAInput/MAIAInputEditor.helpers.js +0 -50
- package/lib/components/atoms/MAIAInput/MAIAInputEditor.helpers.spec.js +0 -20
- package/lib/components/atoms/MAIAInput/MAIAInputEditor.spec.js +0 -53
- package/lib/components/atoms/MAIAInput/maiaInputLayout.spec.js +0 -22
- package/lib/components/atoms/MaiaStreamdown/MaiaStreamdown.spec.js +0 -64
- package/lib/components/atoms/MaiaWrapper/MaiaWrapper.spec.js +0 -43
- package/lib/components/atoms/MaiaWrapper/MaiaWrapperBase.spec.js +0 -114
- package/lib/components/atoms/MaiaWrapper/ModernMaiaWrapper.spec.js +0 -51
- package/lib/components/atoms/ModalClientAccess/ModalClientAccess.spec.js +0 -48
- package/lib/components/atoms/ModalProject/ModalProject.spec.js +0 -66
- package/lib/components/atoms/NextPageLoader.spec.js +0 -37
- package/lib/components/atoms/OnboardingModalButton/OnboardingModal.spec.js +0 -20
- package/lib/components/atoms/OnboardingModalButton/OnboardingModalButton.helpers.js +0 -17
- package/lib/components/atoms/OnboardingModalButton/OnboardingModalButton.helpers.spec.js +0 -35
- package/lib/components/atoms/OnboardingModalButton/OnboardingModalButton.spec.js +0 -47
- package/lib/components/atoms/OptionAccessibility/OptionAccessibility.spec.js +0 -86
- package/lib/components/atoms/PrimaryButton.spec.js +0 -42
- package/lib/components/atoms/ProjectSelector/ProjectSelector.spec.js +0 -69
- package/lib/components/atoms/ReasoningBlock/ReasoningBlock.spec.js +0 -69
- package/lib/components/atoms/ReasoningBlock/ReasoningSteps.spec.js +0 -59
- package/lib/components/atoms/ReasoningBlock/ReasoningTimeline.spec.js +0 -132
- package/lib/components/atoms/ReasoningBlock/groupParallelSteps.spec.js +0 -162
- package/lib/components/atoms/ReasoningBlock/reasoningLeading.spec.js +0 -70
- package/lib/components/atoms/ReasoningBlock/reasoningLiveNarration.spec.js +0 -120
- package/lib/components/atoms/ReasoningBlock/reasoningMotion.js +0 -4
- package/lib/components/atoms/ReasoningBlock/reasoningTimeline.helpers.js +0 -10
- package/lib/components/atoms/ReasoningBlock/reasoningTimeline.helpers.spec.js +0 -31
- package/lib/components/atoms/ReasoningBlock/useCollapsibleHeight.js +0 -52
- package/lib/components/atoms/ReasoningBlock/useCollapsibleHeight.spec.js +0 -90
- package/lib/components/atoms/SessionGeneratingDot/SessionGeneratingDot.spec.js +0 -16
- package/lib/components/atoms/SkillsDropdown/SkillsDropdown.spec.js +0 -107
- package/lib/components/atoms/SlashCommandChip/SlashCommandChip.spec.js +0 -24
- package/lib/components/atoms/SlashCommandDropdown/SlashCommandDropdown.spec.js +0 -85
- package/lib/components/atoms/Switch/Switch.spec.js +0 -41
- package/lib/components/atoms/TextArea/CustomTextArea.spec.js +0 -52
- package/lib/components/atoms/TextArea/TextArea.spec.js +0 -68
- package/lib/components/atoms/ThirdButton.spec.js +0 -29
- package/lib/components/atoms/VideoModal/VideoModal.spec.js +0 -68
- package/lib/components/atoms/WithAppCfg.spec.js +0 -60
- package/lib/components/molecules/AbmSection/AbmAccessibilitySection/AbmAccessibilitySection.helpers.js +0 -37
- package/lib/components/molecules/AbmSection/AbmAccessibilitySection/AbmAccessibilitySection.helpers.spec.js +0 -53
- package/lib/components/molecules/AbmSection/AbmAccessibilitySection/AbmAccessibilitySection.spec.js +0 -371
- package/lib/components/molecules/AbmSection/AbmGeneralSection.helpers.js +0 -39
- package/lib/components/molecules/AbmSection/AbmGeneralSection.helpers.spec.js +0 -57
- package/lib/components/molecules/AbmSection/AbmGeneralSection.spec.js +0 -227
- package/lib/components/molecules/AbmSection/AbmKnowledgeSection.helpers.js +0 -86
- package/lib/components/molecules/AbmSection/AbmKnowledgeSection.helpers.spec.js +0 -108
- package/lib/components/molecules/AbmSection/AbmKnowledgeSection.spec.js +0 -254
- package/lib/components/molecules/AbmSection/AbmLoaderFiles.helpers.js +0 -17
- package/lib/components/molecules/AbmSection/AbmLoaderFiles.helpers.spec.js +0 -50
- package/lib/components/molecules/AbmSection/AbmLoaderFiles.spec.js +0 -94
- package/lib/components/molecules/AgentInputBlock/AgentInputBlockMessage.js +0 -83
- package/lib/components/molecules/AgentInputBlock/AgentInputBlockMessage.styles.js +0 -30
- package/lib/components/molecules/AgentInputBlock/index.js +0 -5
- package/lib/components/molecules/AgentInputBlock/resolveAgentInputBlock.js +0 -52
- package/lib/components/molecules/AgentInputBlock/resolveAgentInputBlock.spec.js +0 -76
- package/lib/components/molecules/AgentInputBlock/resolveLegacyContextSession.js +0 -20
- package/lib/components/molecules/AgentInputBlock/resolveLegacyContextSession.spec.js +0 -34
- package/lib/components/molecules/AgentInputBlock/useAgentChangeModelAction.js +0 -36
- package/lib/components/molecules/ChatAIClientSelector/ChatAIClientSelector.spec.js +0 -66
- package/lib/components/molecules/ChatAIContent/ChatAIContent.spec.js +0 -145
- package/lib/components/molecules/ChatAIHistory/ChatAIHistory.spec.js +0 -204
- package/lib/components/molecules/ChatAIHome/ChatAIHome.spec.js +0 -246
- package/lib/components/molecules/ChatAIHome/ChatAIHomeMaiaker.spec.js +0 -86
- package/lib/components/molecules/ChatAIMessages/ChatAICreateAgentActions.spec.js +0 -104
- package/lib/components/molecules/ChatAIMessages/ChatAIMessages.helpers.js +0 -54
- package/lib/components/molecules/ChatAIMessages/ChatAIMessages.helpers.spec.js +0 -77
- package/lib/components/molecules/ChatAIMessages/ChatAIMessages.spec.js +0 -410
- package/lib/components/molecules/ChatAIMessages/ChatAISuggestions.spec.js +0 -46
- package/lib/components/molecules/ChatAIModal/ChatAIModal.helpers.spec.js +0 -471
- package/lib/components/molecules/ChatAIModal/ChatAIModal.spec.js +0 -659
- package/lib/components/molecules/ChatAIModal/components/ChatAiAgentOptions/ChatAiAgentOptions.helpers.js +0 -5
- package/lib/components/molecules/ChatAIModal/components/ChatAiAgentOptions/ChatAiAgentOptions.helpers.spec.js +0 -33
- package/lib/components/molecules/ChatAIModal/components/ChatAiAgentOptions/ChatAiAgentOptions.spec.js +0 -116
- package/lib/components/molecules/ChatAIModal/components/ChatAiModalFooter/ChatAiModalFooter.spec.js +0 -134
- package/lib/components/molecules/ChatAIModal/components/ChatAiModalHeader/ChatAiModalHeader.helpers.js +0 -30
- package/lib/components/molecules/ChatAIModal/components/ChatAiModalHeader/ChatAiModalHeader.helpers.spec.js +0 -95
- package/lib/components/molecules/ChatAIModal/components/ChatAiModalHeader/ChatAiModalHeader.spec.js +0 -241
- package/lib/components/molecules/ChatAIModal/components/MaiaMinimizedPill/MaiaMinimizedPill.spec.js +0 -37
- package/lib/components/molecules/ChatAIModal/constants.spec.js +0 -16
- package/lib/components/molecules/ChatAIModal/floatingPanelMotion/FloatingPanelMotion.spec.js +0 -22
- package/lib/components/molecules/ChatAIModal/floatingPanelMotion/useFloatingPanelDragTilt.spec.js +0 -67
- package/lib/components/molecules/ChatAIModal/layout.spec.js +0 -72
- package/lib/components/molecules/ChatAIMyAgents/ChatAIMyAgents.spec.js +0 -172
- package/lib/components/molecules/ChatAIMySkills/ChatAIMySkills.spec.js +0 -128
- package/lib/components/molecules/ChatAIProjectSelector/ChatAIProjectSelector.spec.js +0 -66
- package/lib/components/molecules/ChatFooter/ChatFooter.spec.js +0 -355
- package/lib/components/molecules/ChatFooter/ChatFooterCorAccess.spec.js +0 -10
- package/lib/components/molecules/ChatFooter/ChatFooterFaqs.helpers.js +0 -48
- package/lib/components/molecules/ChatFooter/ChatFooterFaqs.helpers.spec.js +0 -82
- package/lib/components/molecules/ChatFooter/ChatFooterFaqs.spec.js +0 -139
- package/lib/components/molecules/ContextMentionInput/ContextMentionInput.spec.js +0 -84
- package/lib/components/molecules/MessageFeedback/MessageFeedback.spec.js +0 -116
- package/lib/components/molecules/ProjectSummaryChat/ProjectSummaryChat.spec.js +0 -126
- package/lib/components/molecules/ProjectSummaryConfig/ProjectSummaryConfig.spec.js +0 -115
- package/lib/components/molecules/ProjectSummaryContent/ProjectSummaryContent.spec.js +0 -79
- package/lib/components/molecules/ProjectSummaryModal/ProjectSummaryModal.spec.js +0 -37
- package/lib/components/molecules/Sidebar/Sidebar.spec.js +0 -453
- package/lib/components/organisms/AbmAgentModal/AbmAgentModal.helpers.js +0 -198
- package/lib/components/organisms/AbmAgentModal/AbmAgentModal.helpers.spec.js +0 -385
- package/lib/components/organisms/AbmAgentModal/AbmAgentModal.spec.js +0 -1125
- package/lib/components/organisms/AbmSkillGenerateModal/AbmSkillGenerateModal.spec.js +0 -112
- package/lib/components/organisms/AbmSkillModal/AbmSkillModal.spec.js +0 -405
- package/lib/components/organisms/ChatAI/ChatAI.spec.js +0 -174
- package/lib/components/organisms/ChatAIPage/ChatAIPage.js +0 -525
- package/lib/components/organisms/ChatAIPage/ChatAIPage.spec.js +0 -231
- package/lib/components/organisms/ChatAIPage/ChatAIPage.styles.js +0 -16
- package/lib/components/organisms/ChatAIPage/ChatAIPageHeader.js +0 -253
- package/lib/components/organisms/ChatAIPage/ChatAIPageHeader.spec.js +0 -139
- package/lib/components/organisms/ChatAIPage/ChatAIPageHeader.styles.js +0 -13
- package/lib/components/organisms/ChatAIPage/ChatAIPageHome.js +0 -267
- package/lib/components/organisms/ChatAIPage/ChatAIPageHome.spec.js +0 -261
- package/lib/components/organisms/ChatAIPage/ChatAIPageHome.styles.js +0 -194
- package/lib/components/organisms/ChatAIPage/ChatAIPageHomeActionCardSlot.js +0 -105
- package/lib/components/organisms/ChatAIPage/ChatAIPageHomeActionCardSlot.spec.js +0 -73
- package/lib/components/organisms/ChatAIPage/ChatAIPageHomeActionCards.skeleton.js +0 -38
- package/lib/components/organisms/ChatAIPage/getDaypart.js +0 -9
- package/lib/components/organisms/ChatAIPage/getDaypart.spec.js +0 -19
- package/lib/components/organisms/ChatAIPage/index.js +0 -3
- package/lib/components/organisms/ClientAIButton/ClientAIButton.spec.js +0 -53
- package/lib/components/organisms/DeleteAgentModal/DeleteAgentModal.spec.js +0 -59
- package/lib/components/organisms/DeleteQuestionModal/DeleteQuestionModal.spec.js +0 -79
- package/lib/components/organisms/EditQuestionModal/EditQuestionModal.spec.js +0 -86
- package/lib/components/organisms/ModalFileExceeds/ModalFileExceeds.spec.js +0 -49
- package/lib/components/organisms/ProjectAIButton/ProjectAIButton.spec.js +0 -67
- package/lib/components/organisms/ProjectSummary/ProjectSummary.spec.js +0 -117
- package/lib/components/organisms/SnackBar/Snackbar.spec.js +0 -66
- package/lib/components/organisms/SourcesInformation/SourceItem.spec.js +0 -19
- package/lib/components/organisms/SourcesInformation/SourcesInformationModal.spec.js +0 -52
- package/lib/constants/maiaExternalConnectorsAccess.spec.js +0 -29
- package/lib/constants/permissions/utils.spec.js +0 -128
- package/lib/dev/DevMaiaPage.js +0 -30
- package/lib/hooks/frequentlyUsedActionsCache.js +0 -17
- package/lib/hooks/frequentlyUsedActionsCache.spec.js +0 -25
- package/lib/hooks/useAccessClient/useAccessClient.spec.js +0 -149
- package/lib/hooks/useAgentModel/useAgentModel.spec.js +0 -83
- package/lib/hooks/useAgentModel/useCreateAgent.spec.js +0 -231
- package/lib/hooks/useAgentModel/useDeleteAgent.spec.js +0 -183
- package/lib/hooks/useAgentModel/useUpdateAgent.spec.js +0 -313
- package/lib/hooks/useAgentSuggestions.spec.js +0 -89
- package/lib/hooks/useCaretPosition.spec.js +0 -58
- package/lib/hooks/useChatManager/useChatManager.helpers.js +0 -353
- package/lib/hooks/useChatManager/useChatManager.helpers.spec.js +0 -506
- package/lib/hooks/useChatManager/useChatManager.spec.js +0 -1261
- package/lib/hooks/useChatMessages/useChatMessages.helpers.js +0 -109
- package/lib/hooks/useChatMessages/useChatMessages.helpers.spec.js +0 -176
- package/lib/hooks/useChatMessages/useChatMessages.spec.js +0 -379
- package/lib/hooks/useChats/useChats.spec.js +0 -208
- package/lib/hooks/useClientSearch.helpers.js +0 -36
- package/lib/hooks/useClientSearch.helpers.spec.js +0 -52
- package/lib/hooks/useClientSearch.spec.js +0 -86
- package/lib/hooks/useContextMentions.helpers.js +0 -152
- package/lib/hooks/useContextMentions.helpers.spec.js +0 -143
- package/lib/hooks/useContextMentions.spec.js +0 -239
- package/lib/hooks/useContextMentions.types.js +0 -2
- package/lib/hooks/useContextPinPopover.helpers.js +0 -95
- package/lib/hooks/useContextPinPopover.helpers.spec.js +0 -115
- package/lib/hooks/useContextPinPopover.spec.js +0 -159
- package/lib/hooks/useContinueLegacyContextInNewChat/index.js +0 -2
- package/lib/hooks/useContinueLegacyContextInNewChat/useContinueLegacyContextInNewChat.js +0 -93
- package/lib/hooks/useDebounce.spec.js +0 -42
- package/lib/hooks/useEntitySearch.helpers.js +0 -359
- package/lib/hooks/useEntitySearch.helpers.spec.js +0 -321
- package/lib/hooks/useEntitySearch.spec.js +0 -443
- package/lib/hooks/useEvent.spec.js +0 -45
- package/lib/hooks/useFrequentlyAskedQuestions.spec.js +0 -222
- package/lib/hooks/useFrequentlyUsedActions.spec.js +0 -135
- package/lib/hooks/useIsMaiaPageRoute.js +0 -26
- package/lib/hooks/useIsMaiaPageRoute.spec.js +0 -26
- package/lib/hooks/useKnowledge/deleteKnowledge.spec.js +0 -122
- package/lib/hooks/useKnowledge/downloadKnowledge.spec.js +0 -148
- package/lib/hooks/useKnowledge/saveKnowledge.spec.js +0 -104
- package/lib/hooks/useKnowledge/useKnowledgeOperations.spec.js +0 -178
- package/lib/hooks/useMaiaChatSessionMeta/index.js +0 -2
- package/lib/hooks/useMaiaChatSessionMeta/useMaiaChatSessionMeta.js +0 -24
- package/lib/hooks/useMentionAllowedTypes.spec.js +0 -89
- package/lib/hooks/useMentionPopover.helpers.js +0 -41
- package/lib/hooks/useMentionPopover.helpers.spec.js +0 -71
- package/lib/hooks/useMentionPopover.spec.js +0 -215
- package/lib/hooks/useMinimizedPillBottomOffset.helpers.js +0 -47
- package/lib/hooks/useMinimizedPillBottomOffset.helpers.spec.js +0 -132
- package/lib/hooks/useMinimizedPillBottomOffset.spec.js +0 -89
- package/lib/hooks/useMinimizedPillNoveltyDot/useMinimizedPillNoveltyDot.spec.js +0 -67
- package/lib/hooks/useModal/useModal.spec.js +0 -73
- package/lib/hooks/useOrchestratorStream/useOrchestratorStream.spec.js +0 -192
- package/lib/hooks/useProjectSearch.helpers.js +0 -61
- package/lib/hooks/useProjectSearch.helpers.spec.js +0 -70
- package/lib/hooks/useProjectSearch.spec.js +0 -91
- package/lib/hooks/useProjectSummary.spec.js +0 -193
- package/lib/hooks/useProjectSummaryConfig.helpers.js +0 -62
- package/lib/hooks/useProjectSummaryConfig.helpers.spec.js +0 -92
- package/lib/hooks/useProjectSummaryConfig.spec.js +0 -133
- package/lib/hooks/useReasoningTrace/reasoningStore.spec.js +0 -112
- package/lib/hooks/useRecentClientsSearch.helpers.js +0 -33
- package/lib/hooks/useRecentClientsSearch.helpers.spec.js +0 -33
- package/lib/hooks/useRecentClientsSearch.spec.js +0 -85
- package/lib/hooks/useRecentContexts.spec.js +0 -139
- package/lib/hooks/useResize.spec.js +0 -37
- package/lib/hooks/useSkillsCatalog.spec.js +0 -88
- package/lib/hooks/useSlashCommands.spec.js +0 -139
- package/lib/hooks/useSmoothStreamText/useSmoothStreamText.spec.js +0 -101
- package/lib/hooks/useSnackBarManager/useSnackBarManager.spec.js +0 -33
- package/lib/hooks/useStreamResponse.spec.js +0 -199
- package/lib/hooks/useT.spec.js +0 -20
- package/lib/hooks/useToggle.spec.js +0 -33
- package/lib/hooks/useToggleFavorite/useToggleFavorite.spec.js +0 -171
- package/lib/services/maia/Access/updateAccess.spec.js +0 -137
- package/lib/services/maia/Actions/getFrequentlyUsedActions.spec.js +0 -56
- package/lib/services/maia/Actions/getSlashCommands.spec.js +0 -91
- package/lib/services/maia/Agents/connectors.spec.js +0 -359
- package/lib/services/maia/Agents/createAgent.spec.js +0 -55
- package/lib/services/maia/Agents/deleteAgent.spec.js +0 -57
- package/lib/services/maia/Agents/fetchAgentDetail.spec.js +0 -108
- package/lib/services/maia/Agents/getAgentById.spec.js +0 -190
- package/lib/services/maia/Agents/getAgentModels.spec.js +0 -190
- package/lib/services/maia/Agents/getAgentSuggestions.spec.js +0 -89
- package/lib/services/maia/Agents/getAgents.helpers.js +0 -181
- package/lib/services/maia/Agents/getAgents.helpers.spec.js +0 -211
- package/lib/services/maia/Agents/getAgents.spec.js +0 -697
- package/lib/services/maia/Agents/setAgentToolGroups.spec.js +0 -45
- package/lib/services/maia/Agents/toggleFavorite.spec.js +0 -59
- package/lib/services/maia/Agents/updateAgent.spec.js +0 -48
- package/lib/services/maia/Chats/deleteChat.spec.js +0 -31
- package/lib/services/maia/Chats/getChatMessages.spec.js +0 -150
- package/lib/services/maia/Chats/getChatsByUserId.spec.js +0 -149
- package/lib/services/maia/Chats/markSessionAsRead.spec.js +0 -30
- package/lib/services/maia/Chats/patchChat.spec.js +0 -41
- package/lib/services/maia/Chats/wasHelpfulChat.spec.js +0 -28
- package/lib/services/maia/Faqs/getFrequentlyAskedQuestions.spec.js +0 -58
- package/lib/services/maia/Knowledge/delete.spec.js +0 -45
- package/lib/services/maia/Knowledge/download.spec.js +0 -78
- package/lib/services/maia/Knowledge/save.spec.js +0 -58
- package/lib/services/maia/Orchestrator/orchestrator.helpers.js +0 -130
- package/lib/services/maia/Orchestrator/orchestrator.helpers.spec.js +0 -153
- package/lib/services/maia/Orchestrator/orchestrator.spec.js +0 -181
- package/lib/services/maia/RecentClients/getRecentClients.spec.js +0 -52
- package/lib/services/maia/RecentContexts/getRecentContexts.spec.js +0 -103
- package/lib/services/maia/RecentProjects/getRecentProjects.spec.js +0 -82
- package/lib/services/maia/RecentTasks/getRecentTasks.spec.js +0 -63
- package/lib/services/maia/RecentUsers/getRecentUsers.spec.js +0 -82
- package/lib/services/maia/Skills/createSkill.spec.js +0 -68
- package/lib/services/maia/Skills/deleteSkill.spec.js +0 -42
- package/lib/services/maia/Skills/generateSkill.spec.js +0 -48
- package/lib/services/maia/Skills/getSkills.spec.js +0 -152
- package/lib/services/maia/Skills/updateSkill.spec.js +0 -62
- package/lib/services/maia/client.spec.js +0 -56
- package/lib/services/utils/fetchCOR.spec.js +0 -211
- package/lib/services/utils/getCookie.spec.js +0 -20
- package/lib/services/utils/mapChatMessages.spec.js +0 -254
- package/lib/store/chatsSidebarOptimistic.spec.js +0 -112
- package/lib/store/maiaLastChatPersistence.spec.js +0 -22
- package/lib/store/maiaPanelSessionPersistence.spec.js +0 -62
- package/lib/store/sessions/sessionNotificationSound.spec.js +0 -145
- package/lib/store/sessions/sessionNotifications.helpers.js +0 -45
- package/lib/store/sessions/sessionNotifications.helpers.spec.js +0 -63
- package/lib/store/sessions/sessionNotifications.spec.js +0 -106
- package/lib/store/sessions/sessionStreamManager.spec.js +0 -503
- package/lib/store/sessions/sessions.types.spec.js +0 -16
- package/lib/store/sessions/useSessionsStore.spec.js +0 -135
- package/lib/store/useChatsStore.spec.js +0 -619
- package/lib/store/useFaqsStore.spec.js +0 -57
- package/lib/test/mockSseStream.js +0 -121
- package/lib/test/streamdownCodeMock.js +0 -6
- package/lib/test/streamdownMock.js +0 -12
- package/lib/utils/actionCategoryMap.spec.js +0 -18
- package/lib/utils/agentDisplayName.spec.js +0 -44
- package/lib/utils/autoApproveStorage.spec.js +0 -25
- package/lib/utils/chatInputFiles.spec.js +0 -39
- package/lib/utils/contextMentionIcons.spec.js +0 -41
- package/lib/utils/contextMentionLabel.spec.js +0 -13
- package/lib/utils/contextMentionTriggers.spec.js +0 -38
- package/lib/utils/contextMentionTypeLabel.spec.js +0 -14
- package/lib/utils/corConnectorMentionTypes.spec.js +0 -23
- package/lib/utils/entityLinkRender.spec.js +0 -72
- package/lib/utils/fileDownloadHelper.spec.js +0 -67
- package/lib/utils/formatQuickActionMessage.spec.js +0 -27
- package/lib/utils/formatUnreadCount.spec.js +0 -12
- package/lib/utils/getUnitFileSize.spec.js +0 -18
- package/lib/utils/hitlAnalytics.spec.js +0 -100
- package/lib/utils/hoursPlannerQuickActionType.spec.js +0 -64
- package/lib/utils/imagePreprocessor.helpers.js +0 -28
- package/lib/utils/imagePreprocessor.helpers.spec.js +0 -28
- package/lib/utils/imagePreprocessor.spec.js +0 -112
- package/lib/utils/maiaPageRoute.js +0 -24
- package/lib/utils/maiaPageRoute.spec.js +0 -23
- package/lib/utils/mapBackendLang.spec.js +0 -19
- package/lib/utils/navigateContextEntity.spec.js +0 -50
- package/lib/utils/normalizeAgentConnectors.spec.js +0 -107
- package/lib/utils/orchestratorSubagents.spec.js +0 -32
- package/lib/utils/reasoningMappers.spec.js +0 -103
- package/lib/utils/recentContextsHomeLimit.spec.js +0 -32
- package/lib/utils/renderContextMentions.spec.js +0 -158
- package/lib/utils/retryCompletion.spec.js +0 -99
- package/lib/utils/skillContentSize.spec.js +0 -13
- package/lib/utils/slashCommandMarker.spec.js +0 -43
- package/lib/utils/sortManagerHoursHomeFuas.spec.js +0 -51
- package/lib/utils/sseStreamContent.spec.js +0 -31
- package/lib/utils/streamActivityMessages.spec.js +0 -227
- package/lib/utils/validateTrimmedFields.spec.js +0 -26
|
@@ -1,20 +1,5 @@
|
|
|
1
1
|
import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
|
|
2
2
|
import { quickActionTitleToType } from './slashCommandMarker';
|
|
3
|
-
/** Seeded action_external_id values from ms-maia alembic h9c0d1e2f3a4. */
|
|
4
|
-
export var MY_DAY_FUA_EXTERNAL_IDS = {
|
|
5
|
-
es: 'c7a1d0e5-0001-4000-8000-000000000001',
|
|
6
|
-
en: 'c7a1d0e5-0001-4000-8000-000000000002',
|
|
7
|
-
pt: 'c7a1d0e5-0001-4000-8000-000000000003'
|
|
8
|
-
};
|
|
9
|
-
|
|
10
|
-
/** Seeded action_external_id values from ms-maia alembic h10d1e2f3a4b5. */
|
|
11
|
-
export var SHOULD_REVIEW_FUA_EXTERNAL_IDS = {
|
|
12
|
-
es: 'c7a1d0e5-0002-4000-8000-000000000001',
|
|
13
|
-
en: 'c7a1d0e5-0002-4000-8000-000000000002',
|
|
14
|
-
pt: 'c7a1d0e5-0002-4000-8000-000000000003'
|
|
15
|
-
};
|
|
16
|
-
var MY_DAY_FUA_ID_SET = new Set(Object.values(MY_DAY_FUA_EXTERNAL_IDS));
|
|
17
|
-
var SHOULD_REVIEW_FUA_ID_SET = new Set(Object.values(SHOULD_REVIEW_FUA_EXTERNAL_IDS));
|
|
18
3
|
var HOURS_PLANNER_ICON_TO_TYPE = {
|
|
19
4
|
calendar: 'complete_hours_week',
|
|
20
5
|
time_back: 'complete_hours_previous_week',
|
|
@@ -47,30 +32,6 @@ export var HOURS_PLANNER_CANONICAL_TITLES = {
|
|
|
47
32
|
br: 'Quero te contar no que estive trabalhando'
|
|
48
33
|
}
|
|
49
34
|
};
|
|
50
|
-
|
|
51
|
-
/** Título canónico por idioma para el CTA my-day (seed ms-maia; icon/category null). */
|
|
52
|
-
export var MY_DAY_CANONICAL_TITLES = {
|
|
53
|
-
my_day_today: {
|
|
54
|
-
es: '¿Qué tengo para hoy?',
|
|
55
|
-
en: "What's on my plate today?",
|
|
56
|
-
br: 'O que tenho para hoje?'
|
|
57
|
-
},
|
|
58
|
-
my_day: {
|
|
59
|
-
es: 'Mi día',
|
|
60
|
-
en: 'My day',
|
|
61
|
-
br: 'Meu dia'
|
|
62
|
-
}
|
|
63
|
-
};
|
|
64
|
-
|
|
65
|
-
/** Título canónico por idioma para el CTA should-review (seed ms-maia; icon/category null). */
|
|
66
|
-
|
|
67
|
-
export var SHOULD_REVIEW_CANONICAL_TITLES = {
|
|
68
|
-
should_review: {
|
|
69
|
-
es: '¿Qué debería revisar?',
|
|
70
|
-
en: 'What should I review?',
|
|
71
|
-
br: 'O que eu deveria revisar?'
|
|
72
|
-
}
|
|
73
|
-
};
|
|
74
35
|
var HOURS_PLANNER_TITLE_TO_TYPE = Object.fromEntries(Object.entries(HOURS_PLANNER_CANONICAL_TITLES).flatMap(function (_ref) {
|
|
75
36
|
var _ref2 = _slicedToArray(_ref, 2),
|
|
76
37
|
type = _ref2[0],
|
|
@@ -79,22 +40,6 @@ var HOURS_PLANNER_TITLE_TO_TYPE = Object.fromEntries(Object.entries(HOURS_PLANNE
|
|
|
79
40
|
return [normalizeQuickActionTitle(title), type];
|
|
80
41
|
});
|
|
81
42
|
}));
|
|
82
|
-
var MY_DAY_TITLE_TO_TYPE = Object.fromEntries(Object.entries(MY_DAY_CANONICAL_TITLES).flatMap(function (_ref3) {
|
|
83
|
-
var _ref4 = _slicedToArray(_ref3, 2),
|
|
84
|
-
type = _ref4[0],
|
|
85
|
-
titles = _ref4[1];
|
|
86
|
-
return Object.values(titles).map(function (title) {
|
|
87
|
-
return [normalizeQuickActionTitle(title), type];
|
|
88
|
-
});
|
|
89
|
-
}));
|
|
90
|
-
var SHOULD_REVIEW_TITLE_TO_TYPE = Object.fromEntries(Object.entries(SHOULD_REVIEW_CANONICAL_TITLES).flatMap(function (_ref5) {
|
|
91
|
-
var _ref6 = _slicedToArray(_ref5, 2),
|
|
92
|
-
type = _ref6[0],
|
|
93
|
-
titles = _ref6[1];
|
|
94
|
-
return Object.values(titles).map(function (title) {
|
|
95
|
-
return [normalizeQuickActionTitle(title), type];
|
|
96
|
-
});
|
|
97
|
-
}));
|
|
98
43
|
export var resolveHoursPlannerQuickActionType = function resolveHoursPlannerQuickActionType(action) {
|
|
99
44
|
var _HOURS_PLANNER_TITLE_;
|
|
100
45
|
if (action.category !== 'hours') return null;
|
|
@@ -104,27 +49,9 @@ export var resolveHoursPlannerQuickActionType = function resolveHoursPlannerQuic
|
|
|
104
49
|
}
|
|
105
50
|
return (_HOURS_PLANNER_TITLE_ = HOURS_PLANNER_TITLE_TO_TYPE[normalizeQuickActionTitle(action.title)]) !== null && _HOURS_PLANNER_TITLE_ !== void 0 ? _HOURS_PLANNER_TITLE_ : null;
|
|
106
51
|
};
|
|
107
|
-
export var resolveMyDayQuickActionType = function resolveMyDayQuickActionType(action) {
|
|
108
|
-
var _MY_DAY_TITLE_TO_TYPE;
|
|
109
|
-
if (action.id && MY_DAY_FUA_ID_SET.has(action.id)) {
|
|
110
|
-
return 'my_day_today';
|
|
111
|
-
}
|
|
112
|
-
return (_MY_DAY_TITLE_TO_TYPE = MY_DAY_TITLE_TO_TYPE[normalizeQuickActionTitle(action.title)]) !== null && _MY_DAY_TITLE_TO_TYPE !== void 0 ? _MY_DAY_TITLE_TO_TYPE : null;
|
|
113
|
-
};
|
|
114
|
-
export var resolveShouldReviewQuickActionType = function resolveShouldReviewQuickActionType(action) {
|
|
115
|
-
var _SHOULD_REVIEW_TITLE_;
|
|
116
|
-
if (action.id && SHOULD_REVIEW_FUA_ID_SET.has(action.id)) {
|
|
117
|
-
return 'should_review';
|
|
118
|
-
}
|
|
119
|
-
return (_SHOULD_REVIEW_TITLE_ = SHOULD_REVIEW_TITLE_TO_TYPE[normalizeQuickActionTitle(action.title)]) !== null && _SHOULD_REVIEW_TITLE_ !== void 0 ? _SHOULD_REVIEW_TITLE_ : null;
|
|
120
|
-
};
|
|
121
52
|
export var resolveQuickActionType = function resolveQuickActionType(action) {
|
|
122
53
|
var hoursType = resolveHoursPlannerQuickActionType(action);
|
|
123
54
|
if (hoursType) return hoursType;
|
|
124
|
-
var myDayType = resolveMyDayQuickActionType(action);
|
|
125
|
-
if (myDayType) return myDayType;
|
|
126
|
-
var shouldReviewType = resolveShouldReviewQuickActionType(action);
|
|
127
|
-
if (shouldReviewType) return shouldReviewType;
|
|
128
55
|
return quickActionTitleToType(action.id, action.title);
|
|
129
56
|
};
|
|
130
57
|
export var resolveQuickActionOrigin = function resolveQuickActionOrigin(section) {
|
|
@@ -134,4 +61,4 @@ export var resolveQuickActionOrigin = function resolveQuickActionOrigin(section)
|
|
|
134
61
|
if (section === 'header' && variant === 'planner') return 'header';
|
|
135
62
|
return 'home';
|
|
136
63
|
};
|
|
137
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJxdWlja0FjdGlvblRpdGxlVG9UeXBlIiwiTVlfREFZX0ZVQV9FWFRFUk5BTF9JRFMiLCJlcyIsImVuIiwicHQiLCJTSE9VTERfUkVWSUVXX0ZVQV9FWFRFUk5BTF9JRFMiLCJNWV9EQVlfRlVBX0lEX1NFVCIsIlNldCIsIk9iamVjdCIsInZhbHVlcyIsIlNIT1VMRF9SRVZJRVdfRlVBX0lEX1NFVCIsIkhPVVJTX1BMQU5ORVJfSUNPTl9UT19UWVBFIiwiY2FsZW5kYXIiLCJ0aW1lX2JhY2siLCJjaGFyZ2VfaG91cnMiLCJjaGF0Iiwibm9ybWFsaXplUXVpY2tBY3Rpb25UaXRsZSIsInRpdGxlIiwidG9Mb3dlckNhc2UiLCJub3JtYWxpemUiLCJyZXBsYWNlIiwidHJpbSIsIkhPVVJTX1BMQU5ORVJfQ0FOT05JQ0FMX1RJVExFUyIsImNvbXBsZXRlX2hvdXJzX3dlZWsiLCJiciIsImNvbXBsZXRlX2hvdXJzX3ByZXZpb3VzX3dlZWsiLCJjb21wbGV0ZV9ob3Vyc190b2RheSIsImNvbXBsZXRlX2hvdXJzX2dlbmVyaWMiLCJNWV9EQVlfQ0FOT05JQ0FMX1RJVExFUyIsIm15X2RheV90b2RheSIsIm15X2RheSIsIlNIT1VMRF9SRVZJRVdfQ0FOT05JQ0FMX1RJVExFUyIsInNob3VsZF9yZXZpZXciLCJIT1VSU19QTEFOTkVSX1RJVExFX1RPX1RZUEUiLCJmcm9tRW50cmllcyIsImVudHJpZXMiLCJmbGF0TWFwIiwiX3JlZiIsIl9yZWYyIiwiX3NsaWNlZFRvQXJyYXkiLCJ0eXBlIiwidGl0bGVzIiwibWFwIiwiTVlfREFZX1RJVExFX1RPX1RZUEUiLCJfcmVmMyIsIl9yZWY0IiwiU0hPVUxEX1JFVklFV19USVRMRV9UT19UWVBFIiwiX3JlZjUiLCJfcmVmNiIsInJlc29sdmVIb3Vyc1BsYW5uZXJRdWlja0FjdGlvblR5cGUiLCJhY3Rpb24iLCJfSE9VUlNfUExBTk5FUl9USVRMRV8iLCJjYXRlZ29yeSIsImljb24iLCJfSE9VUlNfUExBTk5FUl9JQ09OX1QiLCJyZXNvbHZlTXlEYXlRdWlja0FjdGlvblR5cGUiLCJfTVlfREFZX1RJVExFX1RPX1RZUEUiLCJpZCIsImhhcyIsInJlc29sdmVTaG91bGRSZXZpZXdRdWlja0FjdGlvblR5cGUiLCJfU0hPVUxEX1JFVklFV19USVRMRV8iLCJyZXNvbHZlUXVpY2tBY3Rpb25UeXBlIiwiaG91cnNUeXBlIiwibXlEYXlUeXBlIiwic2hvdWxkUmV2aWV3VHlwZSIsInJlc29sdmVRdWlja0FjdGlvbk9yaWdpbiIsInNlY3Rpb24iLCJ2YXJpYW50IiwiYXJndW1lbnRzIiwibGVuZ3RoIiwidW5kZWZpbmVkIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3V0aWxzL2hvdXJzUGxhbm5lclF1aWNrQWN0aW9uVHlwZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IEFjdGlvbiwgQWN0aW9uSWNvbktleSB9IGZyb20gJy4uL3R5cGVzL0FjdGlvbidcbmltcG9ydCB7IHF1aWNrQWN0aW9uVGl0bGVUb1R5cGUgfSBmcm9tICcuL3NsYXNoQ29tbWFuZE1hcmtlcidcblxuZXhwb3J0IHR5cGUgSG91cnNQbGFubmVyUXVpY2tBY3Rpb25UeXBlID1cbiAgJ2NvbXBsZXRlX2hvdXJzX3dlZWsnIHwgJ2NvbXBsZXRlX2hvdXJzX3ByZXZpb3VzX3dlZWsnIHwgJ2NvbXBsZXRlX2hvdXJzX3RvZGF5JyB8ICdjb21wbGV0ZV9ob3Vyc19nZW5lcmljJ1xuXG5leHBvcnQgdHlwZSBNeURheVF1aWNrQWN0aW9uVHlwZSA9ICdteV9kYXknIHwgJ215X2RheV90b2RheSdcblxuZXhwb3J0IHR5cGUgU2hvdWxkUmV2aWV3UXVpY2tBY3Rpb25UeXBlID0gJ3Nob3VsZF9yZXZpZXcnXG5cbi8qKiBTZWVkZWQgYWN0aW9uX2V4dGVybmFsX2lkIHZhbHVlcyBmcm9tIG1zLW1haWEgYWxlbWJpYyBoOWMwZDFlMmYzYTQuICovXG5leHBvcnQgY29uc3QgTVlfREFZX0ZVQV9FWFRFUk5BTF9JRFMgPSB7XG4gIGVzOiAnYzdhMWQwZTUtMDAwMS00MDAwLTgwMDAtMDAwMDAwMDAwMDAxJyxcbiAgZW46ICdjN2ExZDBlNS0wMDAxLTQwMDAtODAwMC0wMDAwMDAwMDAwMDInLFxuICBwdDogJ2M3YTFkMGU1LTAwMDEtNDAwMC04MDAwLTAwMDAwMDAwMDAwMycsXG59IGFzIGNvbnN0XG5cbi8qKiBTZWVkZWQgYWN0aW9uX2V4dGVybmFsX2lkIHZhbHVlcyBmcm9tIG1zLW1haWEgYWxlbWJpYyBoMTBkMWUyZjNhNGI1LiAqL1xuZXhwb3J0IGNvbnN0IFNIT1VMRF9SRVZJRVdfRlVBX0VYVEVSTkFMX0lEUyA9IHtcbiAgZXM6ICdjN2ExZDBlNS0wMDAyLTQwMDAtODAwMC0wMDAwMDAwMDAwMDEnLFxuICBlbjogJ2M3YTFkMGU1LTAwMDItNDAwMC04MDAwLTAwMDAwMDAwMDAwMicsXG4gIHB0OiAnYzdhMWQwZTUtMDAwMi00MDAwLTgwMDAtMDAwMDAwMDAwMDAzJyxcbn0gYXMgY29uc3RcblxuY29uc3QgTVlfREFZX0ZVQV9JRF9TRVQgPSBuZXcgU2V0PHN0cmluZz4oT2JqZWN0LnZhbHVlcyhNWV9EQVlfRlVBX0VYVEVSTkFMX0lEUykpXG5jb25zdCBTSE9VTERfUkVWSUVXX0ZVQV9JRF9TRVQgPSBuZXcgU2V0PHN0cmluZz4oT2JqZWN0LnZhbHVlcyhTSE9VTERfUkVWSUVXX0ZVQV9FWFRFUk5BTF9JRFMpKVxuXG5jb25zdCBIT1VSU19QTEFOTkVSX0lDT05fVE9fVFlQRTogUGFydGlhbDxSZWNvcmQ8QWN0aW9uSWNvbktleSwgSG91cnNQbGFubmVyUXVpY2tBY3Rpb25UeXBlPj4gPSB7XG4gIGNhbGVuZGFyOiAnY29tcGxldGVfaG91cnNfd2VlaycsXG4gIHRpbWVfYmFjazogJ2NvbXBsZXRlX2hvdXJzX3ByZXZpb3VzX3dlZWsnLFxuICBjaGFyZ2VfaG91cnM6ICdjb21wbGV0ZV9ob3Vyc190b2RheScsXG4gIGNoYXQ6ICdjb21wbGV0ZV9ob3Vyc19nZW5lcmljJyxcbn1cblxuY29uc3Qgbm9ybWFsaXplUXVpY2tBY3Rpb25UaXRsZSA9ICh0aXRsZTogc3RyaW5nKTogc3RyaW5nID0+XG4gIHRpdGxlXG4gICAgLnRvTG93ZXJDYXNlKClcbiAgICAubm9ybWFsaXplKCdORkQnKVxuICAgIC5yZXBsYWNlKC9bXFx1MDMwMC1cXHUwMzZmXS9nLCAnJylcbiAgICAucmVwbGFjZSgvW15hLXowLTlcXHNdKy9nLCAnICcpXG4gICAgLnJlcGxhY2UoL1xccysvZywgJyAnKVxuICAgIC50cmltKClcblxudHlwZSBIb3Vyc1BsYW5uZXJDYW5vbmljYWxUaXRsZXMgPSBSZWNvcmQ8SG91cnNQbGFubmVyUXVpY2tBY3Rpb25UeXBlLCB7IGVzOiBzdHJpbmc7IGVuOiBzdHJpbmc7IGJyOiBzdHJpbmcgfT5cblxuLyoqIFTDrXR1bG8gY2Fuw7NuaWNvIHBvciBpZGlvbWEgcGFyYSBjYWRhIEZVQSBkZSBob3Jhcy9wbGFubmVyIChkZWJlIGNvaW5jaWRpciBjb24gbGEgREIpLiAqL1xuZXhwb3J0IGNvbnN0IEhPVVJTX1BMQU5ORVJfQ0FOT05JQ0FMX1RJVExFUzogSG91cnNQbGFubmVyQ2Fub25pY2FsVGl0bGVzID0ge1xuICBjb21wbGV0ZV9ob3Vyc193ZWVrOiB7XG4gICAgZXM6ICdDb21wbGV0YSBtaXMgaG9yYXMgZGUgZXN0YSBzZW1hbmEnLFxuICAgIGVuOiAnQ29tcGxldGUgbXkgaG91cnMgZm9yIHRoaXMgd2VlaycsXG4gICAgYnI6ICdDb21wbGV0ZSBtaW5oYXMgaG9yYXMgZGVzdGEgc2VtYW5hJyxcbiAgfSxcbiAgY29tcGxldGVfaG91cnNfcHJldmlvdXNfd2Vlazoge1xuICAgIGVzOiAnQ2FyZ2EgbWlzIGhvcmFzIGRlIGxhIHNlbWFuYSBwYXNhZGEnLFxuICAgIGVuOiAnTG9hZCBteSBob3VycyBmcm9tIGxhc3Qgd2VlaycsXG4gICAgYnI6ICdDYXJyZWd1ZSBtaW5oYXMgaG9yYXMgZGEgc2VtYW5hIHBhc3NhZGEnLFxuICB9LFxuICBjb21wbGV0ZV9ob3Vyc190b2RheToge1xuICAgIGVzOiAnQ2FyZ2EgbWlzIGhvcmFzIGRlIGhveScsXG4gICAgZW46ICdMb2FkIG15IGhvdXJzIGZvciB0b2RheScsXG4gICAgYnI6ICdDYXJyZWd1ZSBtaW5oYXMgaG9yYXMgZGUgaG9qZScsXG4gIH0sXG4gIGNvbXBsZXRlX2hvdXJzX2dlbmVyaWM6IHtcbiAgICBlczogJ1F1aWVybyBjb250YXJ0ZSBlbiBxdcOpIGVzdHV2ZSB0cmFiYWphbmRvJyxcbiAgICBlbjogJ0kgd2FudCB0byB0ZWxsIHlvdSB3aGF0IEkgd2FzIHdvcmtpbmcgb24nLFxuICAgIGJyOiAnUXVlcm8gdGUgY29udGFyIG5vIHF1ZSBlc3RpdmUgdHJhYmFsaGFuZG8nLFxuICB9LFxufVxuXG4vKiogVMOtdHVsbyBjYW7Ds25pY28gcG9yIGlkaW9tYSBwYXJhIGVsIENUQSBteS1kYXkgKHNlZWQgbXMtbWFpYTsgaWNvbi9jYXRlZ29yeSBudWxsKS4gKi9cbmV4cG9ydCBjb25zdCBNWV9EQVlfQ0FOT05JQ0FMX1RJVExFUzogUmVjb3JkPE15RGF5UXVpY2tBY3Rpb25UeXBlLCB7IGVzOiBzdHJpbmc7IGVuOiBzdHJpbmc7IGJyOiBzdHJpbmcgfT4gPSB7XG4gIG15X2RheV90b2RheToge1xuICAgIGVzOiAnwr9RdcOpIHRlbmdvIHBhcmEgaG95PycsXG4gICAgZW46IFwiV2hhdCdzIG9uIG15IHBsYXRlIHRvZGF5P1wiLFxuICAgIGJyOiAnTyBxdWUgdGVuaG8gcGFyYSBob2plPycsXG4gIH0sXG4gIG15X2RheToge1xuICAgIGVzOiAnTWkgZMOtYScsXG4gICAgZW46ICdNeSBkYXknLFxuICAgIGJyOiAnTWV1IGRpYScsXG4gIH0sXG59XG5cbi8qKiBUw610dWxvIGNhbsOzbmljbyBwb3IgaWRpb21hIHBhcmEgZWwgQ1RBIHNob3VsZC1yZXZpZXcgKHNlZWQgbXMtbWFpYTsgaWNvbi9jYXRlZ29yeSBudWxsKS4gKi9cbnR5cGUgU2hvdWxkUmV2aWV3Q2Fub25pY2FsVGl0bGVzID0gUmVjb3JkPFNob3VsZFJldmlld1F1aWNrQWN0aW9uVHlwZSwgeyBlczogc3RyaW5nOyBlbjogc3RyaW5nOyBicjogc3RyaW5nIH0+XG5cbmV4cG9ydCBjb25zdCBTSE9VTERfUkVWSUVXX0NBTk9OSUNBTF9USVRMRVM6IFNob3VsZFJldmlld0Nhbm9uaWNhbFRpdGxlcyA9IHtcbiAgc2hvdWxkX3Jldmlldzoge1xuICAgIGVzOiAnwr9RdcOpIGRlYmVyw61hIHJldmlzYXI/JyxcbiAgICBlbjogJ1doYXQgc2hvdWxkIEkgcmV2aWV3PycsXG4gICAgYnI6ICdPIHF1ZSBldSBkZXZlcmlhIHJldmlzYXI/JyxcbiAgfSxcbn1cblxuY29uc3QgSE9VUlNfUExBTk5FUl9USVRMRV9UT19UWVBFOiBSZWNvcmQ8c3RyaW5nLCBIb3Vyc1BsYW5uZXJRdWlja0FjdGlvblR5cGU+ID0gT2JqZWN0LmZyb21FbnRyaWVzKFxuICBPYmplY3QuZW50cmllcyhIT1VSU19QTEFOTkVSX0NBTk9OSUNBTF9USVRMRVMpLmZsYXRNYXAoKFt0eXBlLCB0aXRsZXNdKSA9PlxuICAgIE9iamVjdC52YWx1ZXModGl0bGVzKS5tYXAodGl0bGUgPT4gW25vcm1hbGl6ZVF1aWNrQWN0aW9uVGl0bGUodGl0bGUpLCB0eXBlIGFzIEhvdXJzUGxhbm5lclF1aWNrQWN0aW9uVHlwZV0pXG4gIClcbilcblxuY29uc3QgTVlfREFZX1RJVExFX1RPX1RZUEU6IFJlY29yZDxzdHJpbmcsIE15RGF5UXVpY2tBY3Rpb25UeXBlPiA9IE9iamVjdC5mcm9tRW50cmllcyhcbiAgT2JqZWN0LmVudHJpZXMoTVlfREFZX0NBTk9OSUNBTF9USVRMRVMpLmZsYXRNYXAoKFt0eXBlLCB0aXRsZXNdKSA9PlxuICAgIE9iamVjdC52YWx1ZXModGl0bGVzKS5tYXAodGl0bGUgPT4gW25vcm1hbGl6ZVF1aWNrQWN0aW9uVGl0bGUodGl0bGUpLCB0eXBlIGFzIE15RGF5UXVpY2tBY3Rpb25UeXBlXSlcbiAgKVxuKVxuXG5jb25zdCBTSE9VTERfUkVWSUVXX1RJVExFX1RPX1RZUEU6IFJlY29yZDxzdHJpbmcsIFNob3VsZFJldmlld1F1aWNrQWN0aW9uVHlwZT4gPSBPYmplY3QuZnJvbUVudHJpZXMoXG4gIE9iamVjdC5lbnRyaWVzKFNIT1VMRF9SRVZJRVdfQ0FOT05JQ0FMX1RJVExFUykuZmxhdE1hcCgoW3R5cGUsIHRpdGxlc10pID0+XG4gICAgT2JqZWN0LnZhbHVlcyh0aXRsZXMpLm1hcCh0aXRsZSA9PiBbbm9ybWFsaXplUXVpY2tBY3Rpb25UaXRsZSh0aXRsZSksIHR5cGUgYXMgU2hvdWxkUmV2aWV3UXVpY2tBY3Rpb25UeXBlXSlcbiAgKVxuKVxuXG5leHBvcnQgY29uc3QgcmVzb2x2ZUhvdXJzUGxhbm5lclF1aWNrQWN0aW9uVHlwZSA9IChcbiAgYWN0aW9uOiBQaWNrPEFjdGlvbiwgJ3RpdGxlJyB8ICdpY29uJyB8ICdjYXRlZ29yeSc+XG4pOiBIb3Vyc1BsYW5uZXJRdWlja0FjdGlvblR5cGUgfCBudWxsID0+IHtcbiAgaWYgKGFjdGlvbi5jYXRlZ29yeSAhPT0gJ2hvdXJzJykgcmV0dXJuIG51bGxcblxuICBpZiAoYWN0aW9uLmljb24gJiYgSE9VUlNfUExBTk5FUl9JQ09OX1RPX1RZUEVbYWN0aW9uLmljb25dKSB7XG4gICAgcmV0dXJuIEhPVVJTX1BMQU5ORVJfSUNPTl9UT19UWVBFW2FjdGlvbi5pY29uXSA/PyBudWxsXG4gIH1cblxuICByZXR1cm4gSE9VUlNfUExBTk5FUl9USVRMRV9UT19UWVBFW25vcm1hbGl6ZVF1aWNrQWN0aW9uVGl0bGUoYWN0aW9uLnRpdGxlKV0gPz8gbnVsbFxufVxuXG5leHBvcnQgY29uc3QgcmVzb2x2ZU15RGF5UXVpY2tBY3Rpb25UeXBlID0gKFxuICBhY3Rpb246IFBpY2s8QWN0aW9uLCAnaWQnIHwgJ3RpdGxlJyB8ICdpY29uJyB8ICdjYXRlZ29yeSc+XG4pOiBNeURheVF1aWNrQWN0aW9uVHlwZSB8IG51bGwgPT4ge1xuICBpZiAoYWN0aW9uLmlkICYmIE1ZX0RBWV9GVUFfSURfU0VULmhhcyhhY3Rpb24uaWQpKSB7XG4gICAgcmV0dXJuICdteV9kYXlfdG9kYXknXG4gIH1cblxuICByZXR1cm4gTVlfREFZX1RJVExFX1RPX1RZUEVbbm9ybWFsaXplUXVpY2tBY3Rpb25UaXRsZShhY3Rpb24udGl0bGUpXSA/PyBudWxsXG59XG5cbmV4cG9ydCBjb25zdCByZXNvbHZlU2hvdWxkUmV2aWV3UXVpY2tBY3Rpb25UeXBlID0gKFxuICBhY3Rpb246IFBpY2s8QWN0aW9uLCAnaWQnIHwgJ3RpdGxlJyB8ICdpY29uJyB8ICdjYXRlZ29yeSc+XG4pOiBTaG91bGRSZXZpZXdRdWlja0FjdGlvblR5cGUgfCBudWxsID0+IHtcbiAgaWYgKGFjdGlvbi5pZCAmJiBTSE9VTERfUkVWSUVXX0ZVQV9JRF9TRVQuaGFzKGFjdGlvbi5pZCkpIHtcbiAgICByZXR1cm4gJ3Nob3VsZF9yZXZpZXcnXG4gIH1cblxuICByZXR1cm4gU0hPVUxEX1JFVklFV19USVRMRV9UT19UWVBFW25vcm1hbGl6ZVF1aWNrQWN0aW9uVGl0bGUoYWN0aW9uLnRpdGxlKV0gPz8gbnVsbFxufVxuXG5leHBvcnQgY29uc3QgcmVzb2x2ZVF1aWNrQWN0aW9uVHlwZSA9IChhY3Rpb246IFBpY2s8QWN0aW9uLCAnaWQnIHwgJ3RpdGxlJyB8ICdpY29uJyB8ICdjYXRlZ29yeSc+KTogc3RyaW5nID0+IHtcbiAgY29uc3QgaG91cnNUeXBlID0gcmVzb2x2ZUhvdXJzUGxhbm5lclF1aWNrQWN0aW9uVHlwZShhY3Rpb24pXG4gIGlmIChob3Vyc1R5cGUpIHJldHVybiBob3Vyc1R5cGVcbiAgY29uc3QgbXlEYXlUeXBlID0gcmVzb2x2ZU15RGF5UXVpY2tBY3Rpb25UeXBlKGFjdGlvbilcbiAgaWYgKG15RGF5VHlwZSkgcmV0dXJuIG15RGF5VHlwZVxuICBjb25zdCBzaG91bGRSZXZpZXdUeXBlID0gcmVzb2x2ZVNob3VsZFJldmlld1F1aWNrQWN0aW9uVHlwZShhY3Rpb24pXG4gIGlmIChzaG91bGRSZXZpZXdUeXBlKSByZXR1cm4gc2hvdWxkUmV2aWV3VHlwZVxuICByZXR1cm4gcXVpY2tBY3Rpb25UaXRsZVRvVHlwZShhY3Rpb24uaWQsIGFjdGlvbi50aXRsZSlcbn1cblxuZXhwb3J0IHR5cGUgUXVpY2tBY3Rpb25PcmlnaW4gPSAndGFzaycgfCAncGxhbm5lcicgfCAnaGVhZGVyJyB8ICdob21lJ1xuXG5leHBvcnQgY29uc3QgcmVzb2x2ZVF1aWNrQWN0aW9uT3JpZ2luID0gKFxuICBzZWN0aW9uOiBzdHJpbmcgfCB1bmRlZmluZWQsXG4gIHZhcmlhbnQ6ICdkZWZhdWx0JyB8ICdwbGFubmVyJyA9ICdkZWZhdWx0J1xuKTogUXVpY2tBY3Rpb25PcmlnaW4gPT4ge1xuICBpZiAoc2VjdGlvbiA9PT0gJ3Rhc2snKSByZXR1cm4gJ3Rhc2snXG4gIGlmIChzZWN0aW9uID09PSAncGxhbm5lcicpIHJldHVybiAncGxhbm5lcidcbiAgaWYgKHNlY3Rpb24gPT09ICdoZWFkZXInICYmIHZhcmlhbnQgPT09ICdwbGFubmVyJykgcmV0dXJuICdoZWFkZXInXG4gIHJldHVybiAnaG9tZSdcbn1cbiJdLCJtYXBwaW5ncyI6IjtBQUNBLFNBQVNBLHNCQUFzQixRQUFRLHNCQUFzQjtBQVM3RDtBQUNBLE9BQU8sSUFBTUMsdUJBQXVCLEdBQUc7RUFDckNDLEVBQUUsRUFBRSxzQ0FBc0M7RUFDMUNDLEVBQUUsRUFBRSxzQ0FBc0M7RUFDMUNDLEVBQUUsRUFBRTtBQUNOLENBQVU7O0FBRVY7QUFDQSxPQUFPLElBQU1DLDhCQUE4QixHQUFHO0VBQzVDSCxFQUFFLEVBQUUsc0NBQXNDO0VBQzFDQyxFQUFFLEVBQUUsc0NBQXNDO0VBQzFDQyxFQUFFLEVBQUU7QUFDTixDQUFVO0FBRVYsSUFBTUUsaUJBQWlCLEdBQUcsSUFBSUMsR0FBRyxDQUFTQyxNQUFNLENBQUNDLE1BQU0sQ0FBQ1IsdUJBQXVCLENBQUMsQ0FBQztBQUNqRixJQUFNUyx3QkFBd0IsR0FBRyxJQUFJSCxHQUFHLENBQVNDLE1BQU0sQ0FBQ0MsTUFBTSxDQUFDSiw4QkFBOEIsQ0FBQyxDQUFDO0FBRS9GLElBQU1NLDBCQUF1RixHQUFHO0VBQzlGQyxRQUFRLEVBQUUscUJBQXFCO0VBQy9CQyxTQUFTLEVBQUUsOEJBQThCO0VBQ3pDQyxZQUFZ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
|
|
64
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJxdWlja0FjdGlvblRpdGxlVG9UeXBlIiwiSE9VUlNfUExBTk5FUl9JQ09OX1RPX1RZUEUiLCJjYWxlbmRhciIsInRpbWVfYmFjayIsImNoYXJnZV9ob3VycyIsImNoYXQiLCJub3JtYWxpemVRdWlja0FjdGlvblRpdGxlIiwidGl0bGUiLCJ0b0xvd2VyQ2FzZSIsIm5vcm1hbGl6ZSIsInJlcGxhY2UiLCJ0cmltIiwiSE9VUlNfUExBTk5FUl9DQU5PTklDQUxfVElUTEVTIiwiY29tcGxldGVfaG91cnNfd2VlayIsImVzIiwiZW4iLCJiciIsImNvbXBsZXRlX2hvdXJzX3ByZXZpb3VzX3dlZWsiLCJjb21wbGV0ZV9ob3Vyc190b2RheSIsImNvbXBsZXRlX2hvdXJzX2dlbmVyaWMiLCJIT1VSU19QTEFOTkVSX1RJVExFX1RPX1RZUEUiLCJPYmplY3QiLCJmcm9tRW50cmllcyIsImVudHJpZXMiLCJmbGF0TWFwIiwiX3JlZiIsIl9yZWYyIiwiX3NsaWNlZFRvQXJyYXkiLCJ0eXBlIiwidGl0bGVzIiwidmFsdWVzIiwibWFwIiwicmVzb2x2ZUhvdXJzUGxhbm5lclF1aWNrQWN0aW9uVHlwZSIsImFjdGlvbiIsIl9IT1VSU19QTEFOTkVSX1RJVExFXyIsImNhdGVnb3J5IiwiaWNvbiIsIl9IT1VSU19QTEFOTkVSX0lDT05fVCIsInJlc29sdmVRdWlja0FjdGlvblR5cGUiLCJob3Vyc1R5cGUiLCJpZCIsInJlc29sdmVRdWlja0FjdGlvbk9yaWdpbiIsInNlY3Rpb24iLCJ2YXJpYW50IiwiYXJndW1lbnRzIiwibGVuZ3RoIiwidW5kZWZpbmVkIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3V0aWxzL2hvdXJzUGxhbm5lclF1aWNrQWN0aW9uVHlwZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IEFjdGlvbiwgQWN0aW9uSWNvbktleSB9IGZyb20gJy4uL3R5cGVzL0FjdGlvbidcbmltcG9ydCB7IHF1aWNrQWN0aW9uVGl0bGVUb1R5cGUgfSBmcm9tICcuL3NsYXNoQ29tbWFuZE1hcmtlcidcblxuZXhwb3J0IHR5cGUgSG91cnNQbGFubmVyUXVpY2tBY3Rpb25UeXBlID1cbiAgJ2NvbXBsZXRlX2hvdXJzX3dlZWsnIHwgJ2NvbXBsZXRlX2hvdXJzX3ByZXZpb3VzX3dlZWsnIHwgJ2NvbXBsZXRlX2hvdXJzX3RvZGF5JyB8ICdjb21wbGV0ZV9ob3Vyc19nZW5lcmljJ1xuXG5jb25zdCBIT1VSU19QTEFOTkVSX0lDT05fVE9fVFlQRTogUGFydGlhbDxSZWNvcmQ8QWN0aW9uSWNvbktleSwgSG91cnNQbGFubmVyUXVpY2tBY3Rpb25UeXBlPj4gPSB7XG4gIGNhbGVuZGFyOiAnY29tcGxldGVfaG91cnNfd2VlaycsXG4gIHRpbWVfYmFjazogJ2NvbXBsZXRlX2hvdXJzX3ByZXZpb3VzX3dlZWsnLFxuICBjaGFyZ2VfaG91cnM6ICdjb21wbGV0ZV9ob3Vyc190b2RheScsXG4gIGNoYXQ6ICdjb21wbGV0ZV9ob3Vyc19nZW5lcmljJyxcbn1cblxuY29uc3Qgbm9ybWFsaXplUXVpY2tBY3Rpb25UaXRsZSA9ICh0aXRsZTogc3RyaW5nKTogc3RyaW5nID0+XG4gIHRpdGxlXG4gICAgLnRvTG93ZXJDYXNlKClcbiAgICAubm9ybWFsaXplKCdORkQnKVxuICAgIC5yZXBsYWNlKC9bXFx1MDMwMC1cXHUwMzZmXS9nLCAnJylcbiAgICAucmVwbGFjZSgvW15hLXowLTlcXHNdKy9nLCAnICcpXG4gICAgLnJlcGxhY2UoL1xccysvZywgJyAnKVxuICAgIC50cmltKClcblxudHlwZSBIb3Vyc1BsYW5uZXJDYW5vbmljYWxUaXRsZXMgPSBSZWNvcmQ8SG91cnNQbGFubmVyUXVpY2tBY3Rpb25UeXBlLCB7IGVzOiBzdHJpbmc7IGVuOiBzdHJpbmc7IGJyOiBzdHJpbmcgfT5cblxuLyoqIFTDrXR1bG8gY2Fuw7NuaWNvIHBvciBpZGlvbWEgcGFyYSBjYWRhIEZVQSBkZSBob3Jhcy9wbGFubmVyIChkZWJlIGNvaW5jaWRpciBjb24gbGEgREIpLiAqL1xuZXhwb3J0IGNvbnN0IEhPVVJTX1BMQU5ORVJfQ0FOT05JQ0FMX1RJVExFUzogSG91cnNQbGFubmVyQ2Fub25pY2FsVGl0bGVzID0ge1xuICBjb21wbGV0ZV9ob3Vyc193ZWVrOiB7XG4gICAgZXM6ICdDb21wbGV0YSBtaXMgaG9yYXMgZGUgZXN0YSBzZW1hbmEnLFxuICAgIGVuOiAnQ29tcGxldGUgbXkgaG91cnMgZm9yIHRoaXMgd2VlaycsXG4gICAgYnI6ICdDb21wbGV0ZSBtaW5oYXMgaG9yYXMgZGVzdGEgc2VtYW5hJyxcbiAgfSxcbiAgY29tcGxldGVfaG91cnNfcHJldmlvdXNfd2Vlazoge1xuICAgIGVzOiAnQ2FyZ2EgbWlzIGhvcmFzIGRlIGxhIHNlbWFuYSBwYXNhZGEnLFxuICAgIGVuOiAnTG9hZCBteSBob3VycyBmcm9tIGxhc3Qgd2VlaycsXG4gICAgYnI6ICdDYXJyZWd1ZSBtaW5oYXMgaG9yYXMgZGEgc2VtYW5hIHBhc3NhZGEnLFxuICB9LFxuICBjb21wbGV0ZV9ob3Vyc190b2RheToge1xuICAgIGVzOiAnQ2FyZ2EgbWlzIGhvcmFzIGRlIGhveScsXG4gICAgZW46ICdMb2FkIG15IGhvdXJzIGZvciB0b2RheScsXG4gICAgYnI6ICdDYXJyZWd1ZSBtaW5oYXMgaG9yYXMgZGUgaG9qZScsXG4gIH0sXG4gIGNvbXBsZXRlX2hvdXJzX2dlbmVyaWM6IHtcbiAgICBlczogJ1F1aWVybyBjb250YXJ0ZSBlbiBxdcOpIGVzdHV2ZSB0cmFiYWphbmRvJyxcbiAgICBlbjogJ0kgd2FudCB0byB0ZWxsIHlvdSB3aGF0IEkgd2FzIHdvcmtpbmcgb24nLFxuICAgIGJyOiAnUXVlcm8gdGUgY29udGFyIG5vIHF1ZSBlc3RpdmUgdHJhYmFsaGFuZG8nLFxuICB9LFxufVxuXG5jb25zdCBIT1VSU19QTEFOTkVSX1RJVExFX1RPX1RZUEU6IFJlY29yZDxzdHJpbmcsIEhvdXJzUGxhbm5lclF1aWNrQWN0aW9uVHlwZT4gPSBPYmplY3QuZnJvbUVudHJpZXMoXG4gIE9iamVjdC5lbnRyaWVzKEhPVVJTX1BMQU5ORVJfQ0FOT05JQ0FMX1RJVExFUykuZmxhdE1hcCgoW3R5cGUsIHRpdGxlc10pID0+XG4gICAgT2JqZWN0LnZhbHVlcyh0aXRsZXMpLm1hcCh0aXRsZSA9PiBbbm9ybWFsaXplUXVpY2tBY3Rpb25UaXRsZSh0aXRsZSksIHR5cGUgYXMgSG91cnNQbGFubmVyUXVpY2tBY3Rpb25UeXBlXSlcbiAgKVxuKVxuXG5leHBvcnQgY29uc3QgcmVzb2x2ZUhvdXJzUGxhbm5lclF1aWNrQWN0aW9uVHlwZSA9IChcbiAgYWN0aW9uOiBQaWNrPEFjdGlvbiwgJ3RpdGxlJyB8ICdpY29uJyB8ICdjYXRlZ29yeSc+XG4pOiBIb3Vyc1BsYW5uZXJRdWlja0FjdGlvblR5cGUgfCBudWxsID0+IHtcbiAgaWYgKGFjdGlvbi5jYXRlZ29yeSAhPT0gJ2hvdXJzJykgcmV0dXJuIG51bGxcblxuICBpZiAoYWN0aW9uLmljb24gJiYgSE9VUlNfUExBTk5FUl9JQ09OX1RPX1RZUEVbYWN0aW9uLmljb25dKSB7XG4gICAgcmV0dXJuIEhPVVJTX1BMQU5ORVJfSUNPTl9UT19UWVBFW2FjdGlvbi5pY29uXSA/PyBudWxsXG4gIH1cblxuICByZXR1cm4gSE9VUlNfUExBTk5FUl9USVRMRV9UT19UWVBFW25vcm1hbGl6ZVF1aWNrQWN0aW9uVGl0bGUoYWN0aW9uLnRpdGxlKV0gPz8gbnVsbFxufVxuXG5leHBvcnQgY29uc3QgcmVzb2x2ZVF1aWNrQWN0aW9uVHlwZSA9IChhY3Rpb246IFBpY2s8QWN0aW9uLCAnaWQnIHwgJ3RpdGxlJyB8ICdpY29uJyB8ICdjYXRlZ29yeSc+KTogc3RyaW5nID0+IHtcbiAgY29uc3QgaG91cnNUeXBlID0gcmVzb2x2ZUhvdXJzUGxhbm5lclF1aWNrQWN0aW9uVHlwZShhY3Rpb24pXG4gIGlmIChob3Vyc1R5cGUpIHJldHVybiBob3Vyc1R5cGVcbiAgcmV0dXJuIHF1aWNrQWN0aW9uVGl0bGVUb1R5cGUoYWN0aW9uLmlkLCBhY3Rpb24udGl0bGUpXG59XG5cbmV4cG9ydCB0eXBlIFF1aWNrQWN0aW9uT3JpZ2luID0gJ3Rhc2snIHwgJ3BsYW5uZXInIHwgJ2hlYWRlcicgfCAnaG9tZSdcblxuZXhwb3J0IGNvbnN0IHJlc29sdmVRdWlja0FjdGlvbk9yaWdpbiA9IChcbiAgc2VjdGlvbjogc3RyaW5nIHwgdW5kZWZpbmVkLFxuICB2YXJpYW50OiAnZGVmYXVsdCcgfCAncGxhbm5lcicgPSAnZGVmYXVsdCdcbik6IFF1aWNrQWN0aW9uT3JpZ2luID0+IHtcbiAgaWYgKHNlY3Rpb24gPT09ICd0YXNrJykgcmV0dXJuICd0YXNrJ1xuICBpZiAoc2VjdGlvbiA9PT0gJ3BsYW5uZXInKSByZXR1cm4gJ3BsYW5uZXInXG4gIGlmIChzZWN0aW9uID09PSAnaGVhZGVyJyAmJiB2YXJpYW50ID09PSAncGxhbm5lcicpIHJldHVybiAnaGVhZGVyJ1xuICByZXR1cm4gJ2hvbWUnXG59XG4iXSwibWFwcGluZ3MiOiI7QUFDQSxTQUFTQSxzQkFBc0IsUUFBUSxzQkFBc0I7QUFLN0QsSUFBTUMsMEJBQXVGLEdBQUc7RUFDOUZDLFFBQVEsRUFBRSxxQkFBcUI7RUFDL0JDLFNBQVMsRUFBRSw4QkFBOEI7RUFDekNDLFlBQVksRUFBRSxzQkFBc0I7RUFDcENDLElBQUksRUFBRTtBQUNSLENBQUM7QUFFRCxJQUFNQyx5QkFBeUIsR0FBRyxTQUE1QkEseUJBQXlCQSxDQUFJQyxLQUFhO0VBQUEsT0FDOUNBLEtBQUssQ0FDRkMsV0FBVyxDQUFDLENBQUMsQ0FDYkMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUNoQkMsT0FBTyxDQUFDLGtCQUFrQixFQUFFLEVBQUUsQ0FBQyxDQUMvQkEsT0FBTyxDQUFDLGVBQWUsRUFBRSxHQUFHLENBQUMsQ0FDN0JBLE9BQU8sQ0FBQyxNQUFNLEVBQUUsR0FBRyxDQUFDLENBQ3BCQyxJQUFJLENBQUMsQ0FBQztBQUFBO0FBSVg7QUFDQSxPQUFPLElBQU1DLDhCQUEyRCxHQUFHO0VBQ3pFQyxtQkFBbUIsRUFBRTtJQUNuQkMsRUFBRSxFQUFFLG1DQUFtQztJQUN2Q0MsRUFBRSxFQUFFLGlDQUFpQztJQUNyQ0MsRUFB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
|
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
import { computeContainDrawRect, getImageAspectRatio, IMAGE_BACKEND_TARGET_SIZE, isNearSquareAspectRatio } from './imagePreprocessor.helpers';
|
|
2
|
-
|
|
3
1
|
/**
|
|
4
2
|
* Pre-procesa imágenes para el backend
|
|
5
3
|
* - Imágenes cuadradas: usa object-fit: cover (sin padding)
|
|
@@ -17,20 +15,40 @@ export var preprocessImageForBackend = function preprocessImageForBackend(file)
|
|
|
17
15
|
img.onload = function () {
|
|
18
16
|
var originalWidth = img.width,
|
|
19
17
|
originalHeight = img.height;
|
|
20
|
-
var aspectRatio =
|
|
21
|
-
|
|
18
|
+
var aspectRatio = originalWidth / originalHeight;
|
|
19
|
+
|
|
20
|
+
// Tamaño objetivo del backend (160x160px)
|
|
21
|
+
var targetSize = 160;
|
|
22
22
|
canvas.width = targetSize;
|
|
23
23
|
canvas.height = targetSize;
|
|
24
|
-
|
|
24
|
+
|
|
25
|
+
// Determinar si es cuadrada (tolerancia del 10%)
|
|
26
|
+
var isSquare = Math.abs(aspectRatio - 1) <= 0.1;
|
|
27
|
+
if (isSquare) {
|
|
28
|
+
// Para imágenes cuadradas: object-fit: cover (sin padding)
|
|
25
29
|
ctx.drawImage(img, 0, 0, targetSize, targetSize);
|
|
26
30
|
} else {
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
31
|
+
// Para imágenes rectangulares: object-fit: contain (con padding)
|
|
32
|
+
|
|
33
|
+
var drawWidth = targetSize;
|
|
34
|
+
var drawHeight = targetSize;
|
|
35
|
+
var drawX = 0;
|
|
36
|
+
var drawY = 0;
|
|
37
|
+
if (aspectRatio > 1) {
|
|
38
|
+
// Imagen más ancha que alta - ajustar altura
|
|
39
|
+
drawHeight = targetSize / aspectRatio;
|
|
40
|
+
drawY = (targetSize - drawHeight) / 2;
|
|
41
|
+
} else if (aspectRatio < 1) {
|
|
42
|
+
// Imagen más alta que ancha - ajustar ancho
|
|
43
|
+
drawWidth = targetSize * aspectRatio;
|
|
44
|
+
drawX = (targetSize - drawWidth) / 2;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
// Rellenar fondo con color gris claro
|
|
32
48
|
ctx.fillStyle = '#f2f2f2';
|
|
33
49
|
ctx.fillRect(0, 0, targetSize, targetSize);
|
|
50
|
+
|
|
51
|
+
// Dibujar la imagen completa centrada
|
|
34
52
|
ctx.drawImage(img, drawX, drawY, drawWidth, drawHeight);
|
|
35
53
|
}
|
|
36
54
|
|
|
@@ -67,7 +85,14 @@ export var shouldPreprocessImage = function shouldPreprocessImage(file) {
|
|
|
67
85
|
try {
|
|
68
86
|
var width = img.width,
|
|
69
87
|
height = img.height;
|
|
70
|
-
|
|
88
|
+
var aspectRatio = width / height;
|
|
89
|
+
|
|
90
|
+
// Procesar solo si no es cuadrada (aspect ratio != 1)
|
|
91
|
+
// Las imágenes cuadradas se ven igual con cover y contain
|
|
92
|
+
var isNotSquare = Math.abs(aspectRatio - 1) > 0.1;
|
|
93
|
+
|
|
94
|
+
// Debug: Imagen analizada
|
|
95
|
+
resolve(isNotSquare);
|
|
71
96
|
} catch (error) {
|
|
72
97
|
console.error('Error analizando imagen:', error);
|
|
73
98
|
resolve(false);
|
|
@@ -80,4 +105,4 @@ export var shouldPreprocessImage = function shouldPreprocessImage(file) {
|
|
|
80
105
|
img.src = URL.createObjectURL(file);
|
|
81
106
|
});
|
|
82
107
|
};
|
|
83
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
108
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJwcmVwcm9jZXNzSW1hZ2VGb3JCYWNrZW5kIiwiZmlsZSIsIlByb21pc2UiLCJyZXNvbHZlIiwicmVqZWN0IiwiaW1nIiwiSW1hZ2UiLCJjYW52YXMiLCJkb2N1bWVudCIsImNyZWF0ZUVsZW1lbnQiLCJjdHgiLCJnZXRDb250ZXh0IiwiRXJyb3IiLCJvbmxvYWQiLCJvcmlnaW5hbFdpZHRoIiwid2lkdGgiLCJvcmlnaW5hbEhlaWdodCIsImhlaWdodCIsImFzcGVjdFJhdGlvIiwidGFyZ2V0U2l6ZSIsImlzU3F1YXJlIiwiTWF0aCIsImFicyIsImRyYXdJbWFnZSIsImRyYXdXaWR0aCIsImRyYXdIZWlnaHQiLCJkcmF3WCIsImRyYXdZIiwiZmlsbFN0eWxlIiwiZmlsbFJlY3QiLCJ0b0Jsb2IiLCJibG9iIiwicHJvY2Vzc2VkRmlsZSIsIkZpbGUiLCJuYW1lIiwidHlwZSIsImxhc3RNb2RpZmllZCIsIm9uZXJyb3IiLCJzcmMiLCJVUkwiLCJjcmVhdGVPYmplY3RVUkwiLCJzaG91bGRQcmVwcm9jZXNzSW1hZ2UiLCJpc05vdFNxdWFyZSIsImVycm9yIiwiY29uc29sZSJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlscy9pbWFnZVByZXByb2Nlc3Nvci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFByZS1wcm9jZXNhIGltw6FnZW5lcyBwYXJhIGVsIGJhY2tlbmRcbiAqIC0gSW3DoWdlbmVzIGN1YWRyYWRhczogdXNhIG9iamVjdC1maXQ6IGNvdmVyIChzaW4gcGFkZGluZylcbiAqIC0gSW3DoWdlbmVzIHJlY3Rhbmd1bGFyZXM6IHVzYSBvYmplY3QtZml0OiBjb250YWluIChjb24gcGFkZGluZylcbiAqL1xuZXhwb3J0IGNvbnN0IHByZXByb2Nlc3NJbWFnZUZvckJhY2tlbmQgPSAoZmlsZTogRmlsZSk6IFByb21pc2U8RmlsZT4gPT4ge1xuICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgIGNvbnN0IGltZyA9IG5ldyBJbWFnZSgpXG4gICAgY29uc3QgY2FudmFzID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnY2FudmFzJylcbiAgICBjb25zdCBjdHggPSBjYW52YXMuZ2V0Q29udGV4dCgnMmQnKVxuXG4gICAgaWYgKCFjdHgpIHtcbiAgICAgIHJlamVjdChuZXcgRXJyb3IoJ05vIHNlIHB1ZG8gb2J0ZW5lciBlbCBjb250ZXh0byBkZWwgY2FudmFzJykpXG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICBpbWcub25sb2FkID0gKCkgPT4ge1xuICAgICAgY29uc3QgeyB3aWR0aDogb3JpZ2luYWxXaWR0aCwgaGVpZ2h0OiBvcmlnaW5hbEhlaWdodCB9ID0gaW1nXG4gICAgICBjb25zdCBhc3BlY3RSYXRpbyA9IG9yaWdpbmFsV2lkdGggLyBvcmlnaW5hbEhlaWdodFxuXG4gICAgICAvLyBUYW1hw7FvIG9iamV0aXZvIGRlbCBiYWNrZW5kICgxNjB4MTYwcHgpXG4gICAgICBjb25zdCB0YXJnZXRTaXplID0gMTYwXG4gICAgICBjYW52YXMud2lkdGggPSB0YXJnZXRTaXplXG4gICAgICBjYW52YXMuaGVpZ2h0ID0gdGFyZ2V0U2l6ZVxuXG4gICAgICAvLyBEZXRlcm1pbmFyIHNpIGVzIGN1YWRyYWRhICh0b2xlcmFuY2lhIGRlbCAxMCUpXG4gICAgICBjb25zdCBpc1NxdWFyZSA9IE1hdGguYWJzKGFzcGVjdFJhdGlvIC0gMSkgPD0gMC4xXG5cbiAgICAgIGlmIChpc1NxdWFyZSkge1xuICAgICAgICAvLyBQYXJhIGltw6FnZW5lcyBjdWFkcmFkYXM6IG9iamVjdC1maXQ6IGNvdmVyIChzaW4gcGFkZGluZylcbiAgICAgICAgY3R4LmRyYXdJbWFnZShpbWcsIDAsIDAsIHRhcmdldFNpemUsIHRhcmdldFNpemUpXG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBQYXJhIGltw6FnZW5lcyByZWN0YW5ndWxhcmVzOiBvYmplY3QtZml0OiBjb250YWluIChjb24gcGFkZGluZylcblxuICAgICAgICBsZXQgZHJhd1dpZHRoID0gdGFyZ2V0U2l6ZVxuICAgICAgICBsZXQgZHJhd0hlaWdodCA9IHRhcmdldFNpemVcbiAgICAgICAgbGV0IGRyYXdYID0gMFxuICAgICAgICBsZXQgZHJhd1kgPSAwXG5cbiAgICAgICAgaWYgKGFzcGVjdFJhdGlvID4gMSkge1xuICAgICAgICAgIC8vIEltYWdlbiBtw6FzIGFuY2hhIHF1ZSBhbHRhIC0gYWp1c3RhciBhbHR1cmFcbiAgICAgICAgICBkcmF3SGVpZ2h0ID0gdGFyZ2V0U2l6ZSAvIGFzcGVjdFJhdGlvXG4gICAgICAgICAgZHJhd1kgPSAodGFyZ2V0U2l6ZSAtIGRyYXdIZWlnaHQpIC8gMlxuICAgICAgICB9IGVsc2UgaWYgKGFzcGVjdFJhdGlvIDwgMSkge1xuICAgICAgICAgIC8vIEltYWdlbiBtw6FzIGFsdGEgcXVlIGFuY2hhIC0gYWp1c3RhciBhbmNob1xuICAgICAgICAgIGRyYXdXaWR0aCA9IHRhcmdldFNpemUgKiBhc3BlY3RSYXRpb1xuICAgICAgICAgIGRyYXdYID0gKHRhcmdldFNpemUgLSBkcmF3V2lkdGgpIC8gMlxuICAgICAgICB9XG5cbiAgICAgICAgLy8gUmVsbGVuYXIgZm9uZG8gY29uIGNvbG9yIGdyaXMgY2xhcm9cbiAgICAgICAgY3R4LmZpbGxTdHlsZSA9ICcjZjJmMmYyJ1xuICAgICAgICBjdHguZmlsbFJlY3QoMCwgMCwgdGFyZ2V0U2l6ZSwgdGFyZ2V0U2l6ZSlcblxuICAgICAgICAvLyBEaWJ1amFyIGxhIGltYWdlbiBjb21wbGV0YSBjZW50cmFkYVxuICAgICAgICBjdHguZHJhd0ltYWdlKGltZywgZHJhd1gsIGRyYXdZLCBkcmF3V2lkdGgsIGRyYXdIZWlnaHQpXG4gICAgICB9XG5cbiAgICAgIC8vIENvbnZlcnRpciBjYW52YXMgYSBibG9iIHkgbHVlZ28gYSBGaWxlXG4gICAgICBjYW52YXMudG9CbG9iKFxuICAgICAgICBibG9iID0+IHtcbiAgICAgICAgICBpZiAoIWJsb2IpIHtcbiAgICAgICAgICAgIHJlamVjdChuZXcgRXJyb3IoJ0Vycm9yIGFsIHByb2Nlc2FyIGxhIGltYWdlbicpKVxuICAgICAgICAgICAgcmV0dXJuXG4gICAgICAgICAgfVxuXG4gICAgICAgICAgLy8gQ3JlYXIgbnVldm8gRmlsZSBjb24gZWwgbWlzbW8gbm9tYnJlIHkgdGlwb1xuICAgICAgICAgIGNvbnN0IHByb2Nlc3NlZEZpbGUgPSBuZXcgRmlsZShbYmxvYl0sIGZpbGUubmFtZSwge1xuICAgICAgICAgICAgdHlwZTogZmlsZS50eXBlLFxuICAgICAgICAgICAgbGFzdE1vZGlmaWVkOiBmaWxlLmxhc3RNb2RpZmllZCxcbiAgICAgICAgICB9KVxuXG4gICAgICAgICAgcmVzb2x2ZShwcm9jZXNzZWRGaWxlKVxuICAgICAgICB9LFxuICAgICAgICBmaWxlLnR5cGUsXG4gICAgICAgIDAuOVxuICAgICAgKSAvLyBDYWxpZGFkIGRlbCA5MCVcbiAgICB9XG5cbiAgICBpbWcub25lcnJvciA9ICgpID0+IHtcbiAgICAgIHJlamVjdChuZXcgRXJyb3IoJ0Vycm9yIGFsIGNhcmdhciBsYSBpbWFnZW4nKSlcbiAgICB9XG5cbiAgICBpbWcuc3JjID0gVVJMLmNyZWF0ZU9iamVjdFVSTChmaWxlKVxuICB9KVxufVxuXG4vKipcbiAqIERldGVybWluYSBzaSB1bmEgaW1hZ2VuIG5lY2VzaXRhIHByZS1wcm9jZXNhbWllbnRvXG4gKiBTb2xvIHByb2Nlc2Ftb3MgaW3DoWdlbmVzIHF1ZSBubyBzZWFuIGN1YWRyYWRhcyAocXVlIG5lY2VzaXRlbiBvYmplY3QtZml0OiBjb250YWluKVxuICovXG5leHBvcnQgY29uc3Qgc2hvdWxkUHJlcHJvY2Vzc0ltYWdlID0gKGZpbGU6IEZpbGUpOiBQcm9taXNlPGJvb2xlYW4+ID0+IHtcbiAgcmV0dXJuIG5ldyBQcm9taXNlKHJlc29sdmUgPT4ge1xuICAgIGNvbnN0IGltZyA9IG5ldyBJbWFnZSgpXG5cbiAgICBpbWcub25sb2FkID0gKCkgPT4ge1xuICAgICAgdHJ5IHtcbiAgICAgICAgY29uc3QgeyB3aWR0aCwgaGVpZ2h0IH0gPSBpbWdcbiAgICAgICAgY29uc3QgYXNwZWN0UmF0aW8gPSB3aWR0aCAvIGhlaWdodFxuXG4gICAgICAgIC8vIFByb2Nlc2FyIHNvbG8gc2kgbm8gZXMgY3VhZHJhZGEgKGFzcGVjdCByYXRpbyAhPSAxKVxuICAgICAgICAvLyBMYXMgaW3DoWdlbmVzIGN1YWRyYWRhcyBzZSB2ZW4gaWd1YWwgY29uIGNvdmVyIHkgY29udGFpblxuICAgICAgICBjb25zdCBpc05vdFNxdWFyZSA9IE1hdGguYWJzKGFzcGVjdFJhdGlvIC0gMSkgPiAwLjFcblxuICAgICAgICAvLyBEZWJ1ZzogSW1hZ2VuIGFuYWxpemFkYVxuICAgICAgICByZXNvbHZlKGlzTm90U3F1YXJlKVxuICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgY29uc29sZS5lcnJvcignRXJyb3IgYW5hbGl6YW5kbyBpbWFnZW46JywgZXJyb3IpXG4gICAgICAgIHJlc29sdmUoZmFsc2UpXG4gICAgICB9XG4gICAgfVxuXG4gICAgaW1nLm9uZXJyb3IgPSAoKSA9PiB7XG4gICAgICAvLyBFcnJvciBjYXJnYW5kbyBpbWFnZW4gcGFyYSBhbsOhbGlzaXNcbiAgICAgIHJlc29sdmUoZmFsc2UpXG4gICAgfVxuXG4gICAgaW1nLnNyYyA9IFVSTC5jcmVhdGVPYmplY3RVUkwoZmlsZSlcbiAgfSlcbn1cbiJdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU8sSUFBTUEseUJBQXlCLEdBQUcsU0FBNUJBLHlCQUF5QkEsQ0FBSUMsSUFBVSxFQUFvQjtFQUN0RSxPQUFPLElBQUlDLE9BQU8sQ0FBQyxVQUFDQyxPQUFPLEVBQUVDLE1BQU0sRUFBSztJQUN0QyxJQUFNQyxHQUFHLEdBQUcsSUFBSUMsS0FBSyxDQUFDLENBQUM7SUFDdkIsSUFBTUMsTUFBTSxHQUFHQyxRQUFRLENBQUNDLGFBQWEsQ0FBQyxRQUFRLENBQUM7SUFDL0MsSUFBTUMsR0FBRyxHQUFHSCxNQUFNLENBQUNJLFVBQVUsQ0FBQyxJ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
|