@projectcor/maia-components 2.11.110-1 → 2.26.1
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/package.json +3 -3
- package/CHANGELOG.md +0 -642
- package/lib/App.js +0 -55
- package/lib/components/atoms/ActionableButton.js +0 -60
- package/lib/components/atoms/AgentActivityIndicator/AgentActivityIndicator.js +0 -89
- package/lib/components/atoms/AgentActivityIndicator/AgentActivityIndicator.styles.js +0 -21
- package/lib/components/atoms/AgentActivityIndicator/AgentActivityIndicator.utils.js +0 -9
- package/lib/components/atoms/AgentActivityIndicator/index.js +0 -2
- package/lib/components/atoms/ApprovalBox/ApprovalBox.js +0 -209
- package/lib/components/atoms/ApprovalBox/ApprovalBox.styles.js +0 -93
- package/lib/components/atoms/ApprovalBox/index.js +0 -2
- package/lib/components/atoms/AttachmentCard/AttachmentCard.js +0 -218
- package/lib/components/atoms/AttachmentCard/AttachmentCard.styles.js +0 -52
- package/lib/components/atoms/AttachmentCard/AttachmentCardAudio.js +0 -448
- package/lib/components/atoms/AttachmentCard/AttachmentCardAudio.styles.js +0 -58
- package/lib/components/atoms/AttachmentCard/AttachmentCardImage.js +0 -55
- package/lib/components/atoms/AttachmentCard/AttachmentCardImage.styles.js +0 -14
- package/lib/components/atoms/AttachmentCard/index.js +0 -4
- package/lib/components/atoms/AttachmentPreviewModal/AttachmentPreviewModal.js +0 -442
- package/lib/components/atoms/AttachmentPreviewModal/AttachmentPreviewModal.styles.js +0 -119
- package/lib/components/atoms/AttachmentPreviewModal/ExcelPreview.js +0 -222
- package/lib/components/atoms/AttachmentPreviewModal/PptPreview.js +0 -313
- package/lib/components/atoms/AttachmentPreviewModal/WordPreview.js +0 -128
- package/lib/components/atoms/AttachmentPreviewModal/index.js +0 -2
- package/lib/components/atoms/Backdrop/Backdrop.js +0 -17
- package/lib/components/atoms/Backdrop/Backdrop.styles.js +0 -9
- package/lib/components/atoms/Backdrop/index.js +0 -2
- package/lib/components/atoms/CardItem.js +0 -7
- package/lib/components/atoms/CardMenu/CardMenu.js +0 -131
- package/lib/components/atoms/CardMenu/index.js +0 -2
- package/lib/components/atoms/CardMenu/styles.js +0 -21
- package/lib/components/atoms/ChatClientSelector/ChatClientSelector.js +0 -77
- package/lib/components/atoms/ChatClientSelector/index.js +0 -2
- package/lib/components/atoms/ChatDisclaimerMessage/ChatDisclaimerMessage.js +0 -9
- package/lib/components/atoms/ChatDisclaimerMessage/index.js +0 -2
- package/lib/components/atoms/ChatDisclaimerMessage/styles.js +0 -6
- package/lib/components/atoms/Checkbox/Checkbox.js +0 -34
- package/lib/components/atoms/Checkbox/index.js +0 -2
- package/lib/components/atoms/Checkbox/styles.js +0 -39
- package/lib/components/atoms/Chip/Chip.js +0 -150
- package/lib/components/atoms/Chip/index.js +0 -2
- package/lib/components/atoms/Chip/styles.js +0 -43
- package/lib/components/atoms/ChipLlm/ChipLlm.js +0 -45
- package/lib/components/atoms/ChipLlm/ChipLlm.style.js +0 -21
- package/lib/components/atoms/ChipLlm/index.js +0 -2
- package/lib/components/atoms/ChipStatus/ChipStatus.interface.js +0 -2
- package/lib/components/atoms/ChipStatus/ChipStatus.js +0 -14
- package/lib/components/atoms/ChipStatus/ChipStatus.styles.js +0 -27
- package/lib/components/atoms/ChipStatus/index.js +0 -2
- package/lib/components/atoms/ClearButton.js +0 -6
- package/lib/components/atoms/ClientSelector/ClientSelector.js +0 -146
- package/lib/components/atoms/ClientSelector/ClientSelector.styles.js +0 -15
- package/lib/components/atoms/ClientSelector/index.js +0 -2
- package/lib/components/atoms/ContextMentionChip/ContextMentionChip.js +0 -38
- package/lib/components/atoms/ContextMentionChip/ContextMentionChip.styles.js +0 -188
- package/lib/components/atoms/ContextMentionChip/MentionOverflowLabel.js +0 -39
- package/lib/components/atoms/ContextMentionChip/buildChipElement.js +0 -445
- package/lib/components/atoms/ContextMentionChip/index.js +0 -4
- package/lib/components/atoms/ContextMentionEditor/ContextMentionEditor.js +0 -533
- package/lib/components/atoms/ContextMentionEditor/ContextMentionEditor.styles.js +0 -10
- package/lib/components/atoms/ContextMentionEditor/index.js +0 -2
- package/lib/components/atoms/ContextMentionItem/ContextMentionItem.js +0 -282
- package/lib/components/atoms/ContextMentionItem/ContextMentionItem.styles.js +0 -148
- package/lib/components/atoms/ContextMentionItem/index.js +0 -2
- package/lib/components/atoms/ContextMentionPopover/ContextMentionPopover.js +0 -290
- package/lib/components/atoms/ContextMentionPopover/ContextMentionPopover.styles.js +0 -108
- package/lib/components/atoms/ContextMentionPopover/index.js +0 -3
- package/lib/components/atoms/CopyToClipboard.js +0 -70
- package/lib/components/atoms/EditableLabel/EditableLabel.js +0 -110
- package/lib/components/atoms/EditableLabel/index.js +0 -2
- package/lib/components/atoms/EditableLabel/styles.js +0 -7
- package/lib/components/atoms/EmptySearchClients/EmptySearchClients.js +0 -22
- package/lib/components/atoms/EmptySearchClients/EmptySearchClients.styles.js +0 -18
- package/lib/components/atoms/EmptySearchClients/index.js +0 -2
- package/lib/components/atoms/EmptySearchProjects/EmptySearchProjects.js +0 -19
- package/lib/components/atoms/EmptySearchProjects/EmptySearchProjects.styles.js +0 -15
- package/lib/components/atoms/EmptySearchProjects/index.js +0 -2
- package/lib/components/atoms/EntitySelector/EntitySelector.js +0 -247
- package/lib/components/atoms/EntitySelector/EntitySelector.skeleton.js +0 -38
- package/lib/components/atoms/EntitySelector/EntitySelector.styles.js +0 -67
- package/lib/components/atoms/EntitySelector/index.js +0 -2
- package/lib/components/atoms/ErrorSearchClients/ErrorSearchClients.js +0 -14
- package/lib/components/atoms/ErrorSearchClients/ErrorSearchClients.styles.js +0 -15
- package/lib/components/atoms/ErrorSearchFaqs/ErrorSearchFaqs.js +0 -14
- package/lib/components/atoms/ErrorSearchFaqs/ErrorSearchFaqs.style.js +0 -15
- package/lib/components/atoms/ErrorSearchFaqs/index.js +0 -2
- package/lib/components/atoms/ErrorSearchProjects/ErrorSearchProjects.js +0 -18
- package/lib/components/atoms/ErrorSearchProjects/ErrorSearchProjects.style.js +0 -15
- package/lib/components/atoms/ErrorSearchProjects/index.js +0 -2
- package/lib/components/atoms/Expand/Expand.js +0 -32
- package/lib/components/atoms/Expand/index.js +0 -2
- package/lib/components/atoms/Fade/Fade.js +0 -56
- package/lib/components/atoms/Fade/index.js +0 -2
- package/lib/components/atoms/FeedbackButton/FeedbackButton.js +0 -59
- package/lib/components/atoms/FeedbackButton/FeedbackButton.styles.js +0 -14
- package/lib/components/atoms/FeedbackButton/index.js +0 -2
- package/lib/components/atoms/FrequentlyAskedQuestions/FrequentlyAskedQuestions.js +0 -138
- package/lib/components/atoms/FrequentlyAskedQuestions/FrequentlyAskedQuestions.skeleton.js +0 -44
- package/lib/components/atoms/FrequentlyAskedQuestions/FrequentlyAskedQuestions.styles.js +0 -43
- package/lib/components/atoms/FrequentlyAskedQuestions/index.js +0 -2
- package/lib/components/atoms/FrequentlyUsedActions/FrequentlyUsedActions.js +0 -122
- package/lib/components/atoms/FrequentlyUsedActions/FrequentlyUsedActions.skeleton.js +0 -43
- package/lib/components/atoms/FrequentlyUsedActions/FrequentlyUsedActions.styles.js +0 -62
- package/lib/components/atoms/FrequentlyUsedActions/index.js +0 -2
- package/lib/components/atoms/GoBackButton.js +0 -24
- package/lib/components/atoms/HelpButton.js +0 -44
- package/lib/components/atoms/IconButton.js +0 -56
- package/lib/components/atoms/ImagePreview/ImagePreview.js +0 -96
- package/lib/components/atoms/ImagePreview/ImagePreview.styles.js +0 -70
- package/lib/components/atoms/Input/CustomInput.interface.js +0 -2
- package/lib/components/atoms/Input/CustomInput.js +0 -91
- package/lib/components/atoms/Input/CustomInput.styles.js +0 -39
- package/lib/components/atoms/Input/index.js +0 -2
- package/lib/components/atoms/ListMenuOption/ListMenuOption.js +0 -41
- package/lib/components/atoms/ListMenuOption/index.js +0 -2
- package/lib/components/atoms/ListMenuOption/styles.js +0 -9
- package/lib/components/atoms/Loader.js +0 -41
- package/lib/components/atoms/LoadingFaqs/LoadingFaqs.js +0 -11
- package/lib/components/atoms/LoadingFaqs/LoadingFaqs.style.js +0 -6
- package/lib/components/atoms/LoadingFaqs/index.js +0 -2
- package/lib/components/atoms/LoadingSearchClients/LoadingSearchClients.js +0 -11
- package/lib/components/atoms/LoadingSearchClients/LoadingSearchClients.styles.js +0 -6
- package/lib/components/atoms/LoadingSearchClients/index.js +0 -2
- package/lib/components/atoms/LoadingSearchProjects/LoadingSearchProjects.js +0 -14
- package/lib/components/atoms/LoadingSearchProjects/LoadingSearchProjects.style.js +0 -10
- package/lib/components/atoms/LoadingSearchProjects/index.js +0 -2
- package/lib/components/atoms/LoadingText/LoadingText.js +0 -18
- package/lib/components/atoms/LoadingText/index.js +0 -2
- package/lib/components/atoms/LoadingText/styles.js +0 -7
- package/lib/components/atoms/MAIAButton/MAIAButton.js +0 -33
- package/lib/components/atoms/MAIAButton/index.js +0 -2
- package/lib/components/atoms/MAIAError/MAIAError.js +0 -15
- package/lib/components/atoms/MAIAError/index.js +0 -2
- package/lib/components/atoms/MAIAInput/MAIAInput.js +0 -1233
- package/lib/components/atoms/MAIAInput/MAIAInputEditor.js +0 -266
- package/lib/components/atoms/MAIAInput/index.js +0 -2
- package/lib/components/atoms/MAIAInput/maiaInputLayout.js +0 -25
- package/lib/components/atoms/MAIAInput/styles.js +0 -186
- package/lib/components/atoms/MAIAMessage/MAIAMessage.interfaces.js +0 -2
- package/lib/components/atoms/MAIAMessage/MAIAMessage.js +0 -22
- package/lib/components/atoms/MAIAMessage/index.js +0 -2
- package/lib/components/atoms/MAIAMessage/styles.js +0 -7
- package/lib/components/atoms/MaiaStreamdown/MaiaStreamdown.config.js +0 -23
- package/lib/components/atoms/MaiaStreamdown/MaiaStreamdown.interfaces.js +0 -2
- package/lib/components/atoms/MaiaStreamdown/MaiaStreamdown.js +0 -51
- package/lib/components/atoms/MaiaStreamdown/MaiaStreamdown.styles.js +0 -26
- package/lib/components/atoms/MaiaStreamdown/index.js +0 -2
- package/lib/components/atoms/MaiaWrapper/MaiaWrapper.js +0 -18
- package/lib/components/atoms/MaiaWrapper/MaiaWrapperBase.js +0 -84
- package/lib/components/atoms/MaiaWrapper/ModernMaiaWrapper.js +0 -15
- package/lib/components/atoms/MaiaWrapper/index.js +0 -3
- package/lib/components/atoms/MaiaWrapper/styles.js +0 -21
- package/lib/components/atoms/ModalClientAccess/ModalClientAccess.interface.js +0 -2
- package/lib/components/atoms/ModalClientAccess/ModalClientAccess.js +0 -84
- package/lib/components/atoms/ModalClientAccess/ModalClientAccess.styles.js +0 -53
- package/lib/components/atoms/ModalClientAccess/index.js +0 -2
- package/lib/components/atoms/ModalInfo/ModalInfo.js +0 -52
- package/lib/components/atoms/ModalInfo/ModalInfoContent.js +0 -7
- package/lib/components/atoms/ModalInfo/index.js +0 -3
- package/lib/components/atoms/ModalInfo/styles.js +0 -7
- package/lib/components/atoms/ModalProject/ModalProject.interface.js +0 -2
- package/lib/components/atoms/ModalProject/ModalProject.js +0 -112
- package/lib/components/atoms/ModalProject/ModalProject.style.js +0 -59
- package/lib/components/atoms/ModalProject/index.js +0 -2
- package/lib/components/atoms/NextPageLoader.js +0 -33
- package/lib/components/atoms/OnboardingModalButton/OnboardingModal.js +0 -28
- package/lib/components/atoms/OnboardingModalButton/OnboardingModalButton.js +0 -180
- package/lib/components/atoms/OnboardingModalButton/OnboardingModalButton.styles.js +0 -34
- package/lib/components/atoms/OnboardingModalButton/index.js +0 -3
- package/lib/components/atoms/OptionAccessibility/OptionAccessibility.js +0 -131
- package/lib/components/atoms/OptionAccessibility/OptionAccessibility.styles.js +0 -59
- package/lib/components/atoms/OptionAccessibility/index.js +0 -2
- package/lib/components/atoms/OptionCorPermission/OptionCorPermission.js +0 -27
- package/lib/components/atoms/OptionCorPermission/OptionCorPermission.styles.js +0 -18
- package/lib/components/atoms/OptionCorPermission/index.js +0 -2
- package/lib/components/atoms/PrimaryButton.js +0 -31
- package/lib/components/atoms/ProjectSelector/ProjectSelector.js +0 -77
- package/lib/components/atoms/ProjectSelector/ProjectSelector.styles.js +0 -61
- package/lib/components/atoms/ProjectSelector/index.js +0 -2
- package/lib/components/atoms/SecondaryButton.js +0 -20
- package/lib/components/atoms/SessionGeneratingDot/SessionGeneratingDot.js +0 -20
- package/lib/components/atoms/SessionGeneratingDot/SessionGeneratingDot.styles.js +0 -20
- package/lib/components/atoms/SessionGeneratingDot/index.js +0 -2
- package/lib/components/atoms/Skeleton/Skeleton.js +0 -36
- package/lib/components/atoms/Skeleton/index.js +0 -2
- package/lib/components/atoms/SkillsDropdown/SkillsDropdown.js +0 -208
- package/lib/components/atoms/SkillsDropdown/SkillsDropdown.styles.js +0 -77
- package/lib/components/atoms/SkillsDropdown/index.js +0 -2
- package/lib/components/atoms/SlashCommandChip/SlashCommandChip.js +0 -16
- package/lib/components/atoms/SlashCommandChip/SlashCommandChip.styles.js +0 -24
- package/lib/components/atoms/SlashCommandChip/buildSlashChipElement.js +0 -18
- package/lib/components/atoms/SlashCommandChip/index.js +0 -4
- package/lib/components/atoms/SlashCommandDropdown/SlashCommandDropdown.js +0 -210
- package/lib/components/atoms/SlashCommandDropdown/SlashCommandDropdown.styles.js +0 -53
- package/lib/components/atoms/SlashCommandDropdown/index.js +0 -2
- package/lib/components/atoms/Switch/Switch.js +0 -27
- package/lib/components/atoms/Switch/Switch.styles.js +0 -22
- package/lib/components/atoms/Switch/index.js +0 -2
- package/lib/components/atoms/TextArea/CustomTextArea.interface.js +0 -2
- package/lib/components/atoms/TextArea/CustomTextArea.js +0 -93
- package/lib/components/atoms/TextArea/CustomTextArea.styles.js +0 -25
- package/lib/components/atoms/TextArea/TextArea.interfaces.js +0 -2
- package/lib/components/atoms/TextArea/TextArea.js +0 -172
- package/lib/components/atoms/TextArea/TextArea.styles.js +0 -16
- package/lib/components/atoms/TextArea/index.js +0 -2
- package/lib/components/atoms/ThirdButton.js +0 -19
- package/lib/components/atoms/VideoModal/VideoModal.js +0 -76
- package/lib/components/atoms/VideoModal/index.js +0 -2
- package/lib/components/atoms/WithAppCfg.js +0 -26
- package/lib/components/atoms/WithFeatureValidation.js +0 -23
- package/lib/components/atoms/WrapperCenterIcon/WrapperCenterIcon.js +0 -9
- package/lib/components/atoms/WrapperCenterIcon/WrapperCenterIcon.styles.js +0 -6
- package/lib/components/atoms/WrapperCenterIcon/index.js +0 -2
- package/lib/components/atoms/icons/AIIcon.js +0 -23
- package/lib/components/atoms/icons/AacFile.js +0 -39
- package/lib/components/atoms/icons/AccessibilityIcon.js +0 -42
- package/lib/components/atoms/icons/ActionAssignIcon.js +0 -111
- package/lib/components/atoms/icons/ActionCalendarIcon.js +0 -112
- package/lib/components/atoms/icons/ActionChargeHoursIcon.js +0 -111
- package/lib/components/atoms/icons/ActionChatIcon.js +0 -71
- package/lib/components/atoms/icons/ActionCreateIcon.js +0 -91
- package/lib/components/atoms/icons/ActionCreateReworkIcon.js +0 -39
- package/lib/components/atoms/icons/ActionCreateSubtaskIcon.js +0 -37
- package/lib/components/atoms/icons/ActionEditIcon.js +0 -39
- package/lib/components/atoms/icons/ActionSummaryMessagesIcon.js +0 -88
- package/lib/components/atoms/icons/ActionSummaryTaskIcon.js +0 -37
- package/lib/components/atoms/icons/ActionTimeBackIcon.js +0 -112
- package/lib/components/atoms/icons/AgentMaiaIcon.js +0 -31
- package/lib/components/atoms/icons/Brain.js +0 -77
- package/lib/components/atoms/icons/CorAccessIcon.js +0 -41
- package/lib/components/atoms/icons/CorLogo.js +0 -76
- package/lib/components/atoms/icons/CsvFile.js +0 -41
- package/lib/components/atoms/icons/DocFile.js +0 -41
- package/lib/components/atoms/icons/DocxFile.js +0 -41
- package/lib/components/atoms/icons/EmptyClientIllustration.js +0 -67
- package/lib/components/atoms/icons/EmptyHistory.js +0 -46
- package/lib/components/atoms/icons/EmptySearchIllustration.js +0 -37
- package/lib/components/atoms/icons/EmptyState.js +0 -84
- package/lib/components/atoms/icons/EmptyStateAgents.js +0 -58
- package/lib/components/atoms/icons/ErrorIcon.js +0 -14
- package/lib/components/atoms/icons/ErrorSearchIllustration.js +0 -52
- package/lib/components/atoms/icons/ErrorState.js +0 -51
- package/lib/components/atoms/icons/FaqChevronIcon.js +0 -39
- package/lib/components/atoms/icons/FaqsIcon.js +0 -51
- package/lib/components/atoms/icons/FlacIcon.js +0 -39
- package/lib/components/atoms/icons/FolderIcon.js +0 -29
- package/lib/components/atoms/icons/HomeIcon.js +0 -30
- package/lib/components/atoms/icons/ImageFile.js +0 -46
- package/lib/components/atoms/icons/M4aFile.js +0 -39
- package/lib/components/atoms/icons/MAIAIcon.js +0 -20
- package/lib/components/atoms/icons/MAIAIsologo.js +0 -65
- package/lib/components/atoms/icons/MDFile.js +0 -41
- package/lib/components/atoms/icons/MaiaChatLayoutFloatingIcon.js +0 -41
- package/lib/components/atoms/icons/MaiaChatLayoutFullscreenIcon.js +0 -41
- package/lib/components/atoms/icons/MaiaChatLayoutMenuIcon.js +0 -33
- package/lib/components/atoms/icons/MaiaChatLayoutSidebarIcon.js +0 -41
- package/lib/components/atoms/icons/MaiaInputAddIcon.js +0 -42
- package/lib/components/atoms/icons/MaiaInputAttachIcon.js +0 -29
- package/lib/components/atoms/icons/MaiaInputAttachmentImageIcon.js +0 -33
- package/lib/components/atoms/icons/MaiaInputDeepSearchIcon.js +0 -35
- package/lib/components/atoms/icons/MaiaInputMentionIcon.js +0 -44
- package/lib/components/atoms/icons/MaiaInputRobotIcon.js +0 -29
- package/lib/components/atoms/icons/MaiaInputSendIcon.js +0 -29
- package/lib/components/atoms/icons/MaiaInputSlashIcon.js +0 -29
- package/lib/components/atoms/icons/MaiaInputWebSearchIcon.js +0 -35
- package/lib/components/atoms/icons/MaiaSettingsProject.js +0 -111
- package/lib/components/atoms/icons/MaiaSettingsProjectV2.js +0 -193
- package/lib/components/atoms/icons/MaiaSparkleIcon.js +0 -75
- package/lib/components/atoms/icons/MaiaStoreIcon.js +0 -31
- package/lib/components/atoms/icons/Mp3File.js +0 -39
- package/lib/components/atoms/icons/Mp4File.js +0 -39
- package/lib/components/atoms/icons/MyAgentsNavIcon.js +0 -51
- package/lib/components/atoms/icons/NewChat.js +0 -29
- package/lib/components/atoms/icons/NotionIcon.js +0 -36
- package/lib/components/atoms/icons/OgaFile.js +0 -39
- package/lib/components/atoms/icons/OggFile.js +0 -39
- package/lib/components/atoms/icons/PdfFile.js +0 -39
- package/lib/components/atoms/icons/PlusIcon.js +0 -29
- package/lib/components/atoms/icons/PptFile.js +0 -47
- package/lib/components/atoms/icons/PptxFile.js +0 -49
- package/lib/components/atoms/icons/RetryIcon.js +0 -34
- package/lib/components/atoms/icons/SkillCreatedByIcon.js +0 -20
- package/lib/components/atoms/icons/SkillIcon.js +0 -30
- package/lib/components/atoms/icons/SkillVisibilityEveryoneIcon.js +0 -23
- package/lib/components/atoms/icons/SkillVisibilityOnlyMeIcon.js +0 -23
- package/lib/components/atoms/icons/SkillsNavIcon.js +0 -24
- package/lib/components/atoms/icons/SubtaskIcon.js +0 -36
- package/lib/components/atoms/icons/TaskLinkIcon.js +0 -27
- package/lib/components/atoms/icons/TelescopeIcon.js +0 -60
- package/lib/components/atoms/icons/TemplateGradientIcon.js +0 -42
- package/lib/components/atoms/icons/TextFile.js +0 -41
- package/lib/components/atoms/icons/WavFile.js +0 -39
- package/lib/components/atoms/icons/WebmFile.js +0 -50
- package/lib/components/atoms/icons/XlsFile.js +0 -42
- package/lib/components/atoms/icons/XlsxFile.js +0 -42
- package/lib/components/atoms/icons/index.js +0 -54
- package/lib/components/atoms/index.js +0 -42
- package/lib/components/index.js +0 -11
- package/lib/components/molecules/AbmSection/AbmAccessibilitySection/AbmAccessibilitySection.interface.js +0 -2
- package/lib/components/molecules/AbmSection/AbmAccessibilitySection/AbmAccessibilitySection.js +0 -149
- package/lib/components/molecules/AbmSection/AbmAccessibilitySection/AbmAccessibilitySection.styles.js +0 -53
- package/lib/components/molecules/AbmSection/AbmGeneralSection.js +0 -415
- package/lib/components/molecules/AbmSection/AbmGeneralSection.styles.js +0 -152
- package/lib/components/molecules/AbmSection/AbmKnowledgeSection.js +0 -374
- package/lib/components/molecules/AbmSection/AbmKnowledgeSection.styles.js +0 -106
- package/lib/components/molecules/AbmSection/AbmLoaderFiles.js +0 -92
- package/lib/components/molecules/AbmSection/AbmLoaderFiles.styles.js +0 -57
- package/lib/components/molecules/AbmSection/index.js +0 -4
- package/lib/components/molecules/ChatAIClientSelector/ChatAIClientSelector.js +0 -52
- package/lib/components/molecules/ChatAIClientSelector/index.js +0 -2
- package/lib/components/molecules/ChatAIContent/ChatAIContent.js +0 -119
- package/lib/components/molecules/ChatAIContent/ChatAIContent.skeleton.js +0 -187
- package/lib/components/molecules/ChatAIContent/ChatAIContent.styles.js +0 -6
- package/lib/components/molecules/ChatAIContent/index.js +0 -2
- package/lib/components/molecules/ChatAIHistory/ChatAIHistory.js +0 -241
- package/lib/components/molecules/ChatAIHistory/index.js +0 -2
- package/lib/components/molecules/ChatAIHistory/styles.js +0 -22
- package/lib/components/molecules/ChatAIHome/ChatAIHome.js +0 -649
- package/lib/components/molecules/ChatAIHome/ChatAIHomeMaiaker.js +0 -115
- package/lib/components/molecules/ChatAIHome/ChatAIHomeMaiaker.styles.js +0 -95
- package/lib/components/molecules/ChatAIHome/index.js +0 -2
- package/lib/components/molecules/ChatAIHome/styles.js +0 -335
- package/lib/components/molecules/ChatAIMessages/ChatAICreateAgentActions.js +0 -137
- package/lib/components/molecules/ChatAIMessages/ChatAIMessages.js +0 -853
- package/lib/components/molecules/ChatAIMessages/ChatAISuggestions.js +0 -47
- package/lib/components/molecules/ChatAIMessages/ChatAISuggestions.styles.js +0 -37
- package/lib/components/molecules/ChatAIMessages/README.md +0 -101
- package/lib/components/molecules/ChatAIMessages/index.js +0 -2
- package/lib/components/molecules/ChatAIMessages/newStyles.js +0 -131
- package/lib/components/molecules/ChatAIMessages/styles.js +0 -94
- package/lib/components/molecules/ChatAIModal/ChatAIModal.js +0 -1254
- package/lib/components/molecules/ChatAIModal/ChatAIModal.styles.js +0 -58
- package/lib/components/molecules/ChatAIModal/components/ChatAiAgentOptions/ChatAiAgentOptions.js +0 -127
- package/lib/components/molecules/ChatAIModal/components/ChatAiAgentOptions/ChatAiAgentOptions.styles.js +0 -34
- package/lib/components/molecules/ChatAIModal/components/ChatAiAgentOptions/index.js +0 -2
- package/lib/components/molecules/ChatAIModal/components/ChatAiModalFooter/ChatAiModalFooter.js +0 -189
- package/lib/components/molecules/ChatAIModal/components/ChatAiModalFooter/ChatAiModalFooter.styles.js +0 -26
- package/lib/components/molecules/ChatAIModal/components/ChatAiModalFooter/index.js +0 -2
- package/lib/components/molecules/ChatAIModal/components/ChatAiModalHeader/ChatAiModalHeader.js +0 -453
- package/lib/components/molecules/ChatAIModal/components/ChatAiModalHeader/ChatAiModalHeader.styles.js +0 -108
- package/lib/components/molecules/ChatAIModal/components/ChatAiModalHeader/index.js +0 -2
- package/lib/components/molecules/ChatAIModal/components/MaiaMinimizedPill/MaiaMinimizedPill.js +0 -48
- package/lib/components/molecules/ChatAIModal/components/MaiaMinimizedPill/MaiaMinimizedPill.styles.js +0 -38
- package/lib/components/molecules/ChatAIModal/components/MaiaMinimizedPill/index.js +0 -2
- package/lib/components/molecules/ChatAIModal/constants.js +0 -40
- package/lib/components/molecules/ChatAIModal/floatingPanelMotion/FloatingPanelMotion.js +0 -16
- package/lib/components/molecules/ChatAIModal/floatingPanelMotion/FloatingPanelMotion.styles.js +0 -12
- package/lib/components/molecules/ChatAIModal/floatingPanelMotion/constants.js +0 -13
- package/lib/components/molecules/ChatAIModal/floatingPanelMotion/index.js +0 -3
- package/lib/components/molecules/ChatAIModal/floatingPanelMotion/useFloatingPanelDragTilt.js +0 -57
- package/lib/components/molecules/ChatAIModal/index.js +0 -2
- package/lib/components/molecules/ChatAIModal/layout.js +0 -74
- package/lib/components/molecules/ChatAIMyAgents/ChatAIMyAgents.js +0 -457
- package/lib/components/molecules/ChatAIMyAgents/ChatAIMyAgents.styles.js +0 -218
- package/lib/components/molecules/ChatAIMySkills/ChatAIMySkills.js +0 -430
- package/lib/components/molecules/ChatAIMySkills/ChatAIMySkills.styles.js +0 -169
- package/lib/components/molecules/ChatAIMySkills/index.js +0 -2
- package/lib/components/molecules/ChatAIProjectSelector/ChatAIProjectSelector.js +0 -48
- package/lib/components/molecules/ChatAIProjectSelector/ChatAIProjectSelector.styles.js +0 -49
- package/lib/components/molecules/ChatAIProjectSelector/index.js +0 -2
- package/lib/components/molecules/ChatFooter/ChatFooter.js +0 -337
- package/lib/components/molecules/ChatFooter/ChatFooterCorAccess.js +0 -32
- package/lib/components/molecules/ChatFooter/ChatFooterCorAccess.styles.js +0 -14
- package/lib/components/molecules/ChatFooter/ChatFooterFaqs.js +0 -201
- package/lib/components/molecules/ChatFooter/ChatFooterFaqs.styles.js +0 -51
- package/lib/components/molecules/ChatFooter/index.js +0 -2
- package/lib/components/molecules/ChatFooter/styles.js +0 -23
- package/lib/components/molecules/ContextMentionInput/ContextMentionInput.js +0 -60
- package/lib/components/molecules/ContextMentionInput/ContextMentionInput.styles.js +0 -6
- package/lib/components/molecules/ContextMentionInput/index.js +0 -2
- package/lib/components/molecules/MessageFeedback/MessageFeedback.js +0 -118
- package/lib/components/molecules/MessageFeedback/index.js +0 -2
- package/lib/components/molecules/MessageFeedback/styles.js +0 -14
- package/lib/components/molecules/ProjectSummaryChat/ProjectSummaryChat.js +0 -127
- package/lib/components/molecules/ProjectSummaryChat/index.js +0 -2
- package/lib/components/molecules/ProjectSummaryChat/styles.js +0 -8
- package/lib/components/molecules/ProjectSummaryConfig/ProjectSummaryConfig.js +0 -152
- package/lib/components/molecules/ProjectSummaryConfig/index.js +0 -2
- package/lib/components/molecules/ProjectSummaryConfig/styles.js +0 -86
- package/lib/components/molecules/ProjectSummaryContent/ProjectSummaryContent.js +0 -49
- package/lib/components/molecules/ProjectSummaryContent/index.js +0 -2
- package/lib/components/molecules/ProjectSummaryModal/ProjectSummaryModal.js +0 -19
- package/lib/components/molecules/ProjectSummaryModal/index.js +0 -2
- package/lib/components/molecules/ProjectSummaryModal/styles.js +0 -2
- package/lib/components/molecules/Sidebar/Sidebar.js +0 -716
- package/lib/components/molecules/Sidebar/Sidebar.layout.styles.js +0 -157
- package/lib/components/molecules/Sidebar/Sidebar.skeleton.js +0 -48
- package/lib/components/molecules/Sidebar/Sidebar.styles.js +0 -75
- package/lib/components/molecules/Sidebar/index.js +0 -2
- package/lib/components/organisms/AbmAgentModal/AbmAgentModal.js +0 -1420
- package/lib/components/organisms/AbmAgentModal/AbmAgentModal.styles.js +0 -93
- package/lib/components/organisms/AbmAgentModal/index.js +0 -2
- package/lib/components/organisms/AbmSkillGenerateModal/AbmSkillGenerateModal.js +0 -182
- package/lib/components/organisms/AbmSkillGenerateModal/AbmSkillGenerateModal.styles.js +0 -34
- package/lib/components/organisms/AbmSkillGenerateModal/index.js +0 -2
- package/lib/components/organisms/AbmSkillModal/AbmSkillModal.js +0 -585
- package/lib/components/organisms/AbmSkillModal/AbmSkillModal.styles.js +0 -154
- package/lib/components/organisms/AbmSkillModal/index.js +0 -2
- package/lib/components/organisms/ChatAI/ChatAI.js +0 -167
- package/lib/components/organisms/ChatAI/index.js +0 -2
- package/lib/components/organisms/ChatAI/styles.js +0 -7
- package/lib/components/organisms/ClientAIButton/ClientAIButton.js +0 -23
- package/lib/components/organisms/ClientAIButton/index.js +0 -2
- package/lib/components/organisms/DeleteAgentModal/DeleteAgentModal.js +0 -86
- package/lib/components/organisms/DeleteAgentModal/DeleteAgentModal.styles.js +0 -39
- package/lib/components/organisms/DeleteAgentModal/index.js +0 -2
- package/lib/components/organisms/DeleteQuestionModal/DeleteQuestionModal.js +0 -122
- package/lib/components/organisms/DeleteQuestionModal/DeleteQuestionModal.styles.js +0 -47
- package/lib/components/organisms/DeleteQuestionModal/index.js +0 -2
- package/lib/components/organisms/EditQuestionModal/EditQuestionModal.js +0 -138
- package/lib/components/organisms/EditQuestionModal/EditQuestionModal.styles.js +0 -69
- package/lib/components/organisms/EditQuestionModal/index.js +0 -2
- package/lib/components/organisms/ModalFileExceeds/ModalFileExceeds.js +0 -113
- package/lib/components/organisms/ModalFileExceeds/ModalFileExceeds.styles.js +0 -54
- package/lib/components/organisms/ModalFileExceeds/index.js +0 -2
- package/lib/components/organisms/ProjectAIButton/ProjectAIButton.js +0 -26
- package/lib/components/organisms/ProjectAIButton/index.js +0 -2
- package/lib/components/organisms/ProjectSummary/ProjectSummary.js +0 -60
- package/lib/components/organisms/ProjectSummary/index.js +0 -2
- package/lib/components/organisms/ProjectSummary/styles.js +0 -7
- package/lib/components/organisms/SnackBar/Snackbar.interface.js +0 -2
- package/lib/components/organisms/SnackBar/Snackbar.js +0 -73
- package/lib/components/organisms/SnackBar/Snackbar.styles.js +0 -9
- package/lib/components/organisms/SnackBar/index.js +0 -2
- package/lib/components/organisms/SourcesInformation/SourceItem.js +0 -18
- package/lib/components/organisms/SourcesInformation/SourceItem.styles.js +0 -14
- package/lib/components/organisms/SourcesInformation/SourcesInformationModal.js +0 -66
- package/lib/components/organisms/SourcesInformation/SourcesInformationModal.styles.js +0 -27
- package/lib/components/organisms/SourcesInformation/index.js +0 -2
- package/lib/constants/config.js +0 -10
- package/lib/constants/formatExtensions.js +0 -55
- package/lib/constants/gqlClient.js +0 -4
- package/lib/constants/maiaHourAgentAccess.js +0 -15
- package/lib/constants/maiaTaskPanelAccess.js +0 -24
- package/lib/constants/maiaTaskPanelOutsideClick.js +0 -9
- package/lib/constants/maiaTaskPanelZIndex.js +0 -19
- package/lib/constants/permissions/config.js +0 -72
- package/lib/constants/permissions/index.js +0 -3
- package/lib/constants/permissions/types.js +0 -2
- package/lib/constants/permissions/utils.js +0 -18
- package/lib/constants/plannerSyncEvents.js +0 -15
- package/lib/constants/taskLinkIcon.js +0 -15
- package/lib/constants/taskUrls.js +0 -11
- package/lib/context/cor-user.js +0 -31
- package/lib/context/global-context.js +0 -39
- package/lib/dev/DevChatAI.js +0 -101
- package/lib/dev/DevContextMentionInput.js +0 -67
- package/lib/dev/ProjectSummary.js +0 -9
- package/lib/dev/Providers.js +0 -27
- package/lib/exports.js +0 -2
- package/lib/hooks/README.md +0 -192
- package/lib/hooks/index.js +0 -30
- package/lib/hooks/useAccessClient/index.js +0 -2
- package/lib/hooks/useAccessClient/useAccessClient.js +0 -81
- package/lib/hooks/useAgentModel/index.js +0 -2
- package/lib/hooks/useAgentModel/useAgentModel.js +0 -62
- package/lib/hooks/useAgentModel/useCreateAgent.js +0 -128
- package/lib/hooks/useAgentModel/useDeleteAgent.js +0 -88
- package/lib/hooks/useAgentModel/useUpdateAgent.js +0 -129
- package/lib/hooks/useAgentSuggestions.js +0 -60
- package/lib/hooks/useCaretPosition.js +0 -65
- package/lib/hooks/useChatManager/index.js +0 -2
- package/lib/hooks/useChatManager/useChatManager.interface.js +0 -2
- package/lib/hooks/useChatManager/useChatManager.js +0 -1782
- package/lib/hooks/useChatMessages/index.js +0 -2
- package/lib/hooks/useChatMessages/useChatMessages.interface.js +0 -2
- package/lib/hooks/useChatMessages/useChatMessages.js +0 -722
- package/lib/hooks/useChats/index.js +0 -2
- package/lib/hooks/useChats/useChats.interfaces.js +0 -2
- package/lib/hooks/useChats/useChats.js +0 -187
- package/lib/hooks/useClientSearch.js +0 -163
- package/lib/hooks/useContextMentions.js +0 -500
- package/lib/hooks/useContextPinPopover.js +0 -228
- package/lib/hooks/useDebounce.js +0 -18
- package/lib/hooks/useEntitySearch.js +0 -1053
- package/lib/hooks/useEvent.js +0 -93
- package/lib/hooks/useFrequentlyAskedQuestions.js +0 -150
- package/lib/hooks/useFrequentlyUsedActions.js +0 -94
- package/lib/hooks/useKnowledge/deleteKnowledge.js +0 -69
- package/lib/hooks/useKnowledge/downloadKnowledge.js +0 -81
- package/lib/hooks/useKnowledge/index.js +0 -4
- package/lib/hooks/useKnowledge/saveKnowledge.js +0 -107
- package/lib/hooks/useKnowledge/useKnowledgeOperations.js +0 -156
- package/lib/hooks/useMaiaTaskPanelZIndex.js +0 -17
- package/lib/hooks/useMentionAllowedTypes.js +0 -120
- package/lib/hooks/useMentionPopover.js +0 -342
- package/lib/hooks/useMinimizedPillBottomOffset.js +0 -110
- package/lib/hooks/useModal/index.js +0 -2
- package/lib/hooks/useModal/useModal.interfaces.js +0 -2
- package/lib/hooks/useModal/useModal.js +0 -47
- package/lib/hooks/useOnboardingNavigation.js +0 -20
- package/lib/hooks/useOrchestratorStream/index.js +0 -2
- package/lib/hooks/useOrchestratorStream/useOrchestratorStream.interface.js +0 -2
- package/lib/hooks/useOrchestratorStream/useOrchestratorStream.js +0 -269
- package/lib/hooks/useProjectSearch.js +0 -183
- package/lib/hooks/useProjectSummary.js +0 -101
- package/lib/hooks/useProjectSummaryConfig.js +0 -211
- package/lib/hooks/useProjects.js +0 -46
- package/lib/hooks/useRecentClientsSearch.js +0 -150
- package/lib/hooks/useRecentContexts.js +0 -86
- package/lib/hooks/useResize.js +0 -29
- package/lib/hooks/useSkillsCatalog.js +0 -66
- package/lib/hooks/useSlashCommands.js +0 -84
- package/lib/hooks/useSmoothStreamText/index.js +0 -2
- package/lib/hooks/useSmoothStreamText/useSmoothStreamText.js +0 -197
- package/lib/hooks/useSnackBarManager/useSnackBarManager.js +0 -41
- package/lib/hooks/useStreamResponse.js +0 -112
- package/lib/hooks/useStreamdownStyles.js +0 -13
- package/lib/hooks/useStreamingMessage/index.js +0 -2
- package/lib/hooks/useStreamingMessage/useStreamingMessage.js +0 -18
- package/lib/hooks/useT.js +0 -17
- package/lib/hooks/useTabTaskDefault.js +0 -33
- package/lib/hooks/useTaskPanel.js +0 -22
- package/lib/hooks/useTextOverflowEllipsisTooltip.js +0 -34
- package/lib/hooks/useToggle.js +0 -19
- package/lib/hooks/useToggleFavorite/index.js +0 -2
- package/lib/hooks/useToggleFavorite/useToggleFavorite.js +0 -83
- package/lib/index.css +0 -76
- package/lib/index.js +0 -30
- package/lib/lang/br/index.js +0 -785
- package/lib/lang/en/index.js +0 -785
- package/lib/lang/es/index.js +0 -786
- package/lib/lang/fr/index.js +0 -606
- package/lib/lang/index.js +0 -24
- package/lib/lang/utils.js +0 -33
- package/lib/mocks/mockChats.js +0 -395
- package/lib/mocks/mockOrchestrator.js +0 -5
- package/lib/mocks/mockProject.js +0 -11
- package/lib/mocks/mockProjectSummary.js +0 -6
- package/lib/mocks/mockedUser.js +0 -169
- package/lib/services/apolloClient.js +0 -3
- package/lib/services/appcues.js +0 -19
- package/lib/services/corpilot/ProjectSummary/getProjectSummary.js +0 -31
- package/lib/services/corpilot/ProjectSummary/index.js +0 -5
- package/lib/services/corpilot/client.js +0 -27
- package/lib/services/corpilot/index.js +0 -5
- package/lib/services/maia/Access/updateAccess.js +0 -59
- package/lib/services/maia/Actions/getFrequentlyUsedActions.js +0 -46
- package/lib/services/maia/Actions/getSlashCommands.js +0 -39
- package/lib/services/maia/Actions/index.js +0 -7
- package/lib/services/maia/Agents/createAgent.js +0 -39
- package/lib/services/maia/Agents/deleteAgent.js +0 -38
- package/lib/services/maia/Agents/fetchAgentDetail.js +0 -122
- package/lib/services/maia/Agents/getAgentById.js +0 -162
- package/lib/services/maia/Agents/getAgentModels.js +0 -112
- package/lib/services/maia/Agents/getAgentSuggestions.js +0 -44
- package/lib/services/maia/Agents/getAgents.js +0 -718
- package/lib/services/maia/Agents/setAgentToolGroups.js +0 -42
- package/lib/services/maia/Agents/toggleFavorite.js +0 -34
- package/lib/services/maia/Agents/updateAgent.js +0 -39
- package/lib/services/maia/Chats/deleteChat.js +0 -32
- package/lib/services/maia/Chats/getChatMessages.js +0 -144
- package/lib/services/maia/Chats/getChatsByUserId.js +0 -82
- package/lib/services/maia/Chats/index.js +0 -15
- package/lib/services/maia/Chats/markSessionAsRead.js +0 -32
- package/lib/services/maia/Chats/patchChat.js +0 -43
- package/lib/services/maia/Chats/wasHelpfulChat.js +0 -31
- package/lib/services/maia/Faqs/getFrequentlyAskedQuestions.js +0 -55
- package/lib/services/maia/Faqs/index.js +0 -5
- package/lib/services/maia/Knowledge/delete.js +0 -41
- package/lib/services/maia/Knowledge/download.js +0 -48
- package/lib/services/maia/Knowledge/index.js +0 -3
- package/lib/services/maia/Knowledge/save.js +0 -43
- package/lib/services/maia/Orchestrator/index.js +0 -7
- package/lib/services/maia/Orchestrator/orchestrator.js +0 -246
- package/lib/services/maia/RecentClients/getRecentClients.js +0 -43
- package/lib/services/maia/RecentClients/index.js +0 -6
- package/lib/services/maia/RecentContexts/getRecentContexts.js +0 -54
- package/lib/services/maia/RecentContexts/index.js +0 -6
- package/lib/services/maia/RecentProjects/getRecentProjects.js +0 -55
- package/lib/services/maia/RecentProjects/index.js +0 -6
- package/lib/services/maia/RecentTasks/getRecentTasks.js +0 -54
- package/lib/services/maia/RecentTasks/index.js +0 -6
- package/lib/services/maia/RecentUsers/getRecentUsers.js +0 -59
- package/lib/services/maia/RecentUsers/index.js +0 -6
- package/lib/services/maia/Skills/createSkill.js +0 -39
- package/lib/services/maia/Skills/deleteSkill.js +0 -38
- package/lib/services/maia/Skills/generateSkill.js +0 -41
- package/lib/services/maia/Skills/getSkills.js +0 -120
- package/lib/services/maia/Skills/updateSkill.js +0 -39
- package/lib/services/maia/client.js +0 -27
- package/lib/services/maia/index.js +0 -17
- package/lib/services/query/ClientSearchQuery.js +0 -5
- package/lib/services/query/entitySearchQuery.js +0 -18
- package/lib/services/query/index.js +0 -2
- package/lib/services/query/projectSearchByValueQuery.js +0 -5
- package/lib/services/query/taskUserTabQuery.js +0 -8
- package/lib/services/query/usersDirectoryQuery.js +0 -19
- package/lib/services/types.js +0 -6
- package/lib/services/utils/fetchCOR.js +0 -117
- package/lib/services/utils/getCookie.js +0 -10
- package/lib/services/utils/index.js +0 -3
- package/lib/services/utils/mapChatMessages.js +0 -287
- package/lib/services/utils/validateIsMaia.js +0 -4
- package/lib/store/chatsSidebarOptimistic.js +0 -92
- package/lib/store/chatsStore.types.js +0 -2
- package/lib/store/chatsStoreLifecycle.js +0 -8
- package/lib/store/faqsStore.types.js +0 -2
- package/lib/store/index.js +0 -4
- package/lib/store/maiaLastChatPersistence.js +0 -35
- package/lib/store/sessions/activeView.js +0 -22
- package/lib/store/sessions/index.js +0 -9
- package/lib/store/sessions/sessionHitlContext.js +0 -15
- package/lib/store/sessions/sessionNotificationSound.js +0 -57
- package/lib/store/sessions/sessionNotifications.js +0 -110
- package/lib/store/sessions/sessionNotifications.types.js +0 -2
- package/lib/store/sessions/sessionStreamManager.js +0 -715
- package/lib/store/sessions/sessionStreamingText.js +0 -80
- package/lib/store/sessions/sessions.types.js +0 -35
- package/lib/store/sessions/useSessionMeta.js +0 -39
- package/lib/store/sessions/useSessionStreamingText.js +0 -18
- package/lib/store/sessions/useSessionsStore.js +0 -197
- package/lib/store/useChatsStore.js +0 -387
- package/lib/store/useFaqsStore.js +0 -27
- package/lib/streamdownStyles.js +0 -9
- package/lib/styles/StyledCleanContainer.js +0 -7
- package/lib/styles/cascade.js +0 -14
- package/lib/styles/config.js +0 -47
- package/lib/styles/shared/scrollable.js +0 -3
- package/lib/styles/transitions.js +0 -21
- package/lib/types/Action.js +0 -2
- package/lib/types/AgentSuggestion.js +0 -2
- package/lib/types/Chat.js +0 -10
- package/lib/types/Client.js +0 -2
- package/lib/types/FrequentlyAskedQuestion.js +0 -2
- package/lib/types/Project.js +0 -2
- package/lib/types/ProjectSummaryConfigKeys.js +0 -9
- package/lib/types/Task.js +0 -2
- package/lib/types/agent.js +0 -2
- package/lib/types/agentModal.js +0 -2
- package/lib/types/contextMention.js +0 -37
- package/lib/types/global.d.js +0 -2
- package/lib/types/skill.js +0 -2
- package/lib/types/streamActivity.js +0 -2
- package/lib/types/userType.d.js +0 -2
- package/lib/utils/actionCategoryMap.js +0 -37
- package/lib/utils/actionIconMap.js +0 -61
- package/lib/utils/agentDisplayName.js +0 -42
- package/lib/utils/chatInputFiles.js +0 -52
- package/lib/utils/contextMentionIcons.js +0 -134
- package/lib/utils/contextMentionLabel.js +0 -4
- package/lib/utils/contextMentionTriggers.js +0 -51
- package/lib/utils/contextMentionTypeLabel.js +0 -17
- package/lib/utils/corConnectorMentionTypes.js +0 -41
- package/lib/utils/ensureStreamdownStyles.js +0 -21
- package/lib/utils/entityLinkRender.js +0 -135
- package/lib/utils/fileDownloadHelper.js +0 -40
- package/lib/utils/formatQuickActionMessage.js +0 -16
- package/lib/utils/formatUnreadCount.js +0 -6
- package/lib/utils/getUnitFileSize.js +0 -13
- package/lib/utils/hitlAnalytics.js +0 -65
- package/lib/utils/hoursPlannerQuickActionType.js +0 -64
- package/lib/utils/imagePreprocessor.js +0 -108
- package/lib/utils/index.js +0 -3
- package/lib/utils/maiaHostOpen.js +0 -19
- package/lib/utils/maiaStreamdownRehypePlugins.js +0 -27
- package/lib/utils/mapBackendLang.js +0 -8
- package/lib/utils/normalizeAgentConnectors.js +0 -70
- package/lib/utils/openTaskInCorPanel.js +0 -22
- package/lib/utils/orchestratorSubagents.js +0 -11
- package/lib/utils/renderContextMentions.js +0 -420
- package/lib/utils/retryCompletion.js +0 -85
- package/lib/utils/slashCommandMarker.js +0 -30
- package/lib/utils/sortManagerHoursHomeFuas.js +0 -14
- package/lib/utils/sseStreamContent.js +0 -17
- package/lib/utils/streamActivityMessages.js +0 -359
- package/lib/utils/validateTrimmedFields.js +0 -8
|
@@ -1,430 +0,0 @@
|
|
|
1
|
-
import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
|
2
|
-
import _asyncToGenerator from "@babel/runtime/helpers/asyncToGenerator";
|
|
3
|
-
import _toConsumableArray from "@babel/runtime/helpers/toConsumableArray";
|
|
4
|
-
import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
|
|
5
|
-
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
6
|
-
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
7
|
-
import _regeneratorRuntime from "@babel/runtime/regenerator";
|
|
8
|
-
import React, { useCallback, useEffect, useMemo, useRef, useState } from 'react';
|
|
9
|
-
import { MenuDots } from '@projectcor/icons/lib/components/MenuDots';
|
|
10
|
-
import { Search } from '@projectcor/icons/lib/components/Search';
|
|
11
|
-
import { InformationCircle } from '@projectcor/icons/lib/components/InformationCircle';
|
|
12
|
-
import { Tooltip } from '@projectcor/tooltipv2/lib/components/Tooltip';
|
|
13
|
-
import { useTranslation } from 'react-i18next';
|
|
14
|
-
import { deleteSkill } from '../../../services/maia/Skills/deleteSkill';
|
|
15
|
-
import { useSnackBarManager } from '../../../hooks/useSnackBarManager/useSnackBarManager';
|
|
16
|
-
import { useMaiaTaskPanelZIndex } from '../../../hooks/useMaiaTaskPanelZIndex';
|
|
17
|
-
import { DeleteQuestionModal } from '../../organisms/DeleteQuestionModal/DeleteQuestionModal';
|
|
18
|
-
import { SKILL_USE_AFTER_SAVE_EVENT } from '../../organisms/AbmSkillModal/AbmSkillModal';
|
|
19
|
-
import { SECTIONS } from '../../../constants/config';
|
|
20
|
-
import { Loader } from '../../atoms/Loader';
|
|
21
|
-
import { SkillCreatedByIcon } from '../../atoms/icons/SkillCreatedByIcon';
|
|
22
|
-
import { SkillVisibilityEveryoneIcon } from '../../atoms/icons/SkillVisibilityEveryoneIcon';
|
|
23
|
-
import { SkillVisibilityOnlyMeIcon } from '../../atoms/icons/SkillVisibilityOnlyMeIcon';
|
|
24
|
-
import { SCMSBody, SCMSCardButton, SCMSCardContentText, SCMSCardMenu, SCMSCardMenuItem, SCMSCardTitleName, SCMSCardTopRow, SCMSCardVisibilityRow, SCMSCardVisibilityText, SCMSCardsList, SCMSContainer, SCMSCreateButton, SCMSCreateButtonText, SCMSSharedEmptyStateRoot, SCMSSharedEmptyStateSubtitle, SCMSSharedEmptyStateTitle, SCMSSharedEmptyStateTitleBlock, SCMSKebabButton, SCMSLoadWrapper, SCMSMetaDescription, SCMSMetaRow, SCMSPanel, SCMSPanelHeader, SCMSListScrollArea, SCMSSearchInput, SCMSSearchWrapper, SCMSTabBar, SCMSTabButton, SCMSTabInfoIcon, SCMSTitle, SCMSTitleBlock } from './ChatAIMySkills.styles';
|
|
25
|
-
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
26
|
-
var DROPDOWN_GAP_PX = 6;
|
|
27
|
-
var CARD_MENU_ITEM_HEIGHT_PX = 44;
|
|
28
|
-
var resolveDropdownPlacement = function resolveDropdownPlacement(anchor, dropdownHeight) {
|
|
29
|
-
var rect = anchor.getBoundingClientRect();
|
|
30
|
-
var spaceBelow = window.innerHeight - rect.bottom - DROPDOWN_GAP_PX;
|
|
31
|
-
var spaceAbove = rect.top - DROPDOWN_GAP_PX;
|
|
32
|
-
if (spaceBelow >= dropdownHeight) return 'bottom';
|
|
33
|
-
if (spaceAbove >= dropdownHeight) return 'top';
|
|
34
|
-
return spaceBelow >= spaceAbove ? 'bottom' : 'top';
|
|
35
|
-
};
|
|
36
|
-
var formatSkillDisplayName = function formatSkillDisplayName(name) {
|
|
37
|
-
var normalized = name.replace(/^(@\/|#)/, '');
|
|
38
|
-
return "#".concat(normalized);
|
|
39
|
-
};
|
|
40
|
-
var openSkillModal = function openSkillModal(values) {
|
|
41
|
-
document.dispatchEvent(new CustomEvent('abm-skill-modal-set-values', {
|
|
42
|
-
detail: {
|
|
43
|
-
skillValues: {
|
|
44
|
-
values: values,
|
|
45
|
-
isOpen: true
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
}));
|
|
49
|
-
};
|
|
50
|
-
var SkillSearchInput = /*#__PURE__*/React.memo(function (_ref) {
|
|
51
|
-
var onSearch = _ref.onSearch,
|
|
52
|
-
placeholder = _ref.placeholder;
|
|
53
|
-
var _useState = useState(''),
|
|
54
|
-
_useState2 = _slicedToArray(_useState, 2),
|
|
55
|
-
value = _useState2[0],
|
|
56
|
-
setValue = _useState2[1];
|
|
57
|
-
var debounceRef = useRef(null);
|
|
58
|
-
var handleChange = useCallback(function (event) {
|
|
59
|
-
var nextValue = event.target.value;
|
|
60
|
-
setValue(nextValue);
|
|
61
|
-
if (debounceRef.current) clearTimeout(debounceRef.current);
|
|
62
|
-
debounceRef.current = setTimeout(function () {
|
|
63
|
-
onSearch(nextValue.trim());
|
|
64
|
-
}, 250);
|
|
65
|
-
}, [onSearch]);
|
|
66
|
-
useEffect(function () {
|
|
67
|
-
return function () {
|
|
68
|
-
if (debounceRef.current) clearTimeout(debounceRef.current);
|
|
69
|
-
};
|
|
70
|
-
}, []);
|
|
71
|
-
return /*#__PURE__*/_jsxs(SCMSSearchWrapper, {
|
|
72
|
-
children: [/*#__PURE__*/_jsx(Search, {
|
|
73
|
-
width: 16,
|
|
74
|
-
height: 16,
|
|
75
|
-
color: "#999"
|
|
76
|
-
}), /*#__PURE__*/_jsx(SCMSSearchInput, {
|
|
77
|
-
type: "text",
|
|
78
|
-
value: value,
|
|
79
|
-
onChange: handleChange,
|
|
80
|
-
placeholder: placeholder
|
|
81
|
-
})]
|
|
82
|
-
});
|
|
83
|
-
});
|
|
84
|
-
export var ChatAIMySkills = function ChatAIMySkills(_ref2) {
|
|
85
|
-
var mySkills = _ref2.mySkills,
|
|
86
|
-
sharedSkills = _ref2.sharedSkills,
|
|
87
|
-
_ref2$loading = _ref2.loading,
|
|
88
|
-
loading = _ref2$loading === void 0 ? false : _ref2$loading,
|
|
89
|
-
onDeleteSkill = _ref2.onDeleteSkill;
|
|
90
|
-
var _useTranslation = useTranslation([SECTIONS.chatAI]),
|
|
91
|
-
t = _useTranslation.t;
|
|
92
|
-
var _useSnackBarManager = useSnackBarManager(),
|
|
93
|
-
handleSnackbarSuccess = _useSnackBarManager.handleSnackbarSuccess,
|
|
94
|
-
handleSnackbarError = _useSnackBarManager.handleSnackbarError;
|
|
95
|
-
var tooltipZIndex = useMaiaTaskPanelZIndex(1500, 'overlay');
|
|
96
|
-
var listScrollRef = useRef(null);
|
|
97
|
-
var _useState3 = useState('mine'),
|
|
98
|
-
_useState4 = _slicedToArray(_useState3, 2),
|
|
99
|
-
activeTab = _useState4[0],
|
|
100
|
-
setActiveTab = _useState4[1];
|
|
101
|
-
var _useState5 = useState(''),
|
|
102
|
-
_useState6 = _slicedToArray(_useState5, 2),
|
|
103
|
-
searchQuery = _useState6[0],
|
|
104
|
-
setSearchQuery = _useState6[1];
|
|
105
|
-
var _useState7 = useState(null),
|
|
106
|
-
_useState8 = _slicedToArray(_useState7, 2),
|
|
107
|
-
menuOpenForSkillId = _useState8[0],
|
|
108
|
-
setMenuOpenForSkillId = _useState8[1];
|
|
109
|
-
var _useState9 = useState('bottom'),
|
|
110
|
-
_useState0 = _slicedToArray(_useState9, 2),
|
|
111
|
-
cardMenuPlacement = _useState0[0],
|
|
112
|
-
setCardMenuPlacement = _useState0[1];
|
|
113
|
-
var _useState1 = useState(null),
|
|
114
|
-
_useState10 = _slicedToArray(_useState1, 2),
|
|
115
|
-
skillToDelete = _useState10[0],
|
|
116
|
-
setSkillToDelete = _useState10[1];
|
|
117
|
-
var isMineTab = activeTab === 'mine';
|
|
118
|
-
var tabSkills = isMineTab ? mySkills : sharedSkills;
|
|
119
|
-
var filteredSkills = useMemo(function () {
|
|
120
|
-
var normalizedQuery = searchQuery.toLowerCase();
|
|
121
|
-
var matched = normalizedQuery ? tabSkills.filter(function (skill) {
|
|
122
|
-
return skill.name.toLowerCase().includes(normalizedQuery);
|
|
123
|
-
}) : tabSkills;
|
|
124
|
-
return _toConsumableArray(matched).sort(function (a, b) {
|
|
125
|
-
return a.name.localeCompare(b.name);
|
|
126
|
-
});
|
|
127
|
-
}, [searchQuery, tabSkills]);
|
|
128
|
-
var handleCreateSkill = useCallback(function () {
|
|
129
|
-
openSkillModal({
|
|
130
|
-
isEditing: false,
|
|
131
|
-
intent: 'write'
|
|
132
|
-
});
|
|
133
|
-
}, []);
|
|
134
|
-
|
|
135
|
-
// "Mis skills" tiene Editar + Eliminar; "Compartidas" solo Usar skill.
|
|
136
|
-
var cardMenuHeightPx = isMineTab ? CARD_MENU_ITEM_HEIGHT_PX * 2 : CARD_MENU_ITEM_HEIGHT_PX;
|
|
137
|
-
var handleToggleCardMenu = useCallback(function (event, skillId) {
|
|
138
|
-
event.preventDefault();
|
|
139
|
-
event.stopPropagation();
|
|
140
|
-
var cardAnchor = event.currentTarget.closest('[data-skill-card-id]');
|
|
141
|
-
if (cardAnchor instanceof HTMLElement) {
|
|
142
|
-
setCardMenuPlacement(resolveDropdownPlacement(cardAnchor, cardMenuHeightPx));
|
|
143
|
-
}
|
|
144
|
-
setMenuOpenForSkillId(function (prev) {
|
|
145
|
-
return prev === skillId ? null : skillId;
|
|
146
|
-
});
|
|
147
|
-
}, [cardMenuHeightPx]);
|
|
148
|
-
|
|
149
|
-
/** Mismo flujo que el botón "Usar skill" del modal: chat nuevo con el primer agente y la mención puesta. */
|
|
150
|
-
var handleUseSkill = useCallback(function (skill) {
|
|
151
|
-
document.dispatchEvent(new CustomEvent(SKILL_USE_AFTER_SAVE_EVENT, {
|
|
152
|
-
detail: {
|
|
153
|
-
skill: skill,
|
|
154
|
-
useFirstAgent: true
|
|
155
|
-
}
|
|
156
|
-
}));
|
|
157
|
-
setMenuOpenForSkillId(null);
|
|
158
|
-
}, []);
|
|
159
|
-
var handleOpenSkill = useCallback(function (skill, isReadOnly) {
|
|
160
|
-
openSkillModal({
|
|
161
|
-
isEditing: true,
|
|
162
|
-
isReadOnly: isReadOnly,
|
|
163
|
-
general: {
|
|
164
|
-
id: skill.id,
|
|
165
|
-
name: skill.name,
|
|
166
|
-
description: skill.description,
|
|
167
|
-
content: skill.content,
|
|
168
|
-
access_type: skill.access_type,
|
|
169
|
-
created_by_name: skill.created_by_name,
|
|
170
|
-
updated_at: skill.updated_at
|
|
171
|
-
}
|
|
172
|
-
});
|
|
173
|
-
setMenuOpenForSkillId(null);
|
|
174
|
-
}, []);
|
|
175
|
-
var deleteModalChat = useMemo(function () {
|
|
176
|
-
return skillToDelete ? {
|
|
177
|
-
title: skillToDelete.name,
|
|
178
|
-
id: skillToDelete.id
|
|
179
|
-
} : null;
|
|
180
|
-
}, [skillToDelete]);
|
|
181
|
-
var handleConfirmDelete = /*#__PURE__*/function () {
|
|
182
|
-
var _ref3 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee(chat) {
|
|
183
|
-
var _t;
|
|
184
|
-
return _regeneratorRuntime.wrap(function (_context) {
|
|
185
|
-
while (1) switch (_context.prev = _context.next) {
|
|
186
|
-
case 0:
|
|
187
|
-
_context.prev = 0;
|
|
188
|
-
_context.next = 1;
|
|
189
|
-
return deleteSkill(chat.id);
|
|
190
|
-
case 1:
|
|
191
|
-
handleSnackbarSuccess(t('mySkills.deleteSuccess'));
|
|
192
|
-
onDeleteSkill === null || onDeleteSkill === void 0 || onDeleteSkill(chat.id);
|
|
193
|
-
setSkillToDelete(null);
|
|
194
|
-
setMenuOpenForSkillId(null);
|
|
195
|
-
_context.next = 3;
|
|
196
|
-
break;
|
|
197
|
-
case 2:
|
|
198
|
-
_context.prev = 2;
|
|
199
|
-
_t = _context["catch"](0);
|
|
200
|
-
handleSnackbarError(t('mySkills.deleteError'));
|
|
201
|
-
case 3:
|
|
202
|
-
case "end":
|
|
203
|
-
return _context.stop();
|
|
204
|
-
}
|
|
205
|
-
}, _callee, null, [[0, 2]]);
|
|
206
|
-
}));
|
|
207
|
-
return function handleConfirmDelete(_x) {
|
|
208
|
-
return _ref3.apply(this, arguments);
|
|
209
|
-
};
|
|
210
|
-
}();
|
|
211
|
-
useEffect(function () {
|
|
212
|
-
var handleClickOutside = function handleClickOutside() {
|
|
213
|
-
if (menuOpenForSkillId) {
|
|
214
|
-
setMenuOpenForSkillId(null);
|
|
215
|
-
}
|
|
216
|
-
};
|
|
217
|
-
document.addEventListener('click', handleClickOutside);
|
|
218
|
-
return function () {
|
|
219
|
-
document.removeEventListener('click', handleClickOutside);
|
|
220
|
-
};
|
|
221
|
-
}, [menuOpenForSkillId]);
|
|
222
|
-
useEffect(function () {
|
|
223
|
-
if (!menuOpenForSkillId) return undefined;
|
|
224
|
-
var handleReposition = function handleReposition() {
|
|
225
|
-
var _listScrollRef$curren;
|
|
226
|
-
var openCard = (_listScrollRef$curren = listScrollRef.current) === null || _listScrollRef$curren === void 0 ? void 0 : _listScrollRef$curren.querySelector("[data-skill-card-id=\"".concat(menuOpenForSkillId, "\"]"));
|
|
227
|
-
if (openCard) {
|
|
228
|
-
setCardMenuPlacement(resolveDropdownPlacement(openCard, cardMenuHeightPx));
|
|
229
|
-
}
|
|
230
|
-
};
|
|
231
|
-
var scrollContainer = listScrollRef.current;
|
|
232
|
-
scrollContainer === null || scrollContainer === void 0 || scrollContainer.addEventListener('scroll', handleReposition, {
|
|
233
|
-
passive: true
|
|
234
|
-
});
|
|
235
|
-
window.addEventListener('resize', handleReposition);
|
|
236
|
-
return function () {
|
|
237
|
-
scrollContainer === null || scrollContainer === void 0 || scrollContainer.removeEventListener('scroll', handleReposition);
|
|
238
|
-
window.removeEventListener('resize', handleReposition);
|
|
239
|
-
};
|
|
240
|
-
}, [menuOpenForSkillId, cardMenuHeightPx]);
|
|
241
|
-
var tabDescription = isMineTab ? t('mySkills.mySkillsDescription') : t('mySkills.sharedSkillsDescription');
|
|
242
|
-
var isMineEmpty = isMineTab && !loading && mySkills.length === 0 && !searchQuery;
|
|
243
|
-
var showSkillsToolbar = isMineTab ? !isMineEmpty : tabSkills.length > 0 || !!searchQuery;
|
|
244
|
-
var renderCreateSkillButton = function renderCreateSkillButton() {
|
|
245
|
-
return /*#__PURE__*/_jsx(SCMSCreateButton, {
|
|
246
|
-
type: "button",
|
|
247
|
-
onClick: handleCreateSkill,
|
|
248
|
-
children: /*#__PURE__*/_jsx(SCMSCreateButtonText, {
|
|
249
|
-
children: t('mySkills.createSkill')
|
|
250
|
-
})
|
|
251
|
-
});
|
|
252
|
-
};
|
|
253
|
-
var renderSearchEmptyState = function renderSearchEmptyState() {
|
|
254
|
-
return /*#__PURE__*/_jsx(SCMSSharedEmptyStateRoot, {
|
|
255
|
-
children: /*#__PURE__*/_jsxs(SCMSSharedEmptyStateTitleBlock, {
|
|
256
|
-
children: [/*#__PURE__*/_jsx(SCMSSharedEmptyStateTitle, {
|
|
257
|
-
children: t('mySkills.searchEmptyStateTitle')
|
|
258
|
-
}), /*#__PURE__*/_jsx(SCMSSharedEmptyStateSubtitle, {
|
|
259
|
-
children: t('mySkills.searchEmptyStateDescription')
|
|
260
|
-
})]
|
|
261
|
-
})
|
|
262
|
-
});
|
|
263
|
-
};
|
|
264
|
-
var renderEmptyState = function renderEmptyState() {
|
|
265
|
-
if (!isMineTab) {
|
|
266
|
-
if (searchQuery) {
|
|
267
|
-
return renderSearchEmptyState();
|
|
268
|
-
}
|
|
269
|
-
return /*#__PURE__*/_jsx(SCMSSharedEmptyStateRoot, {
|
|
270
|
-
children: /*#__PURE__*/_jsxs(SCMSSharedEmptyStateTitleBlock, {
|
|
271
|
-
children: [/*#__PURE__*/_jsx(SCMSSharedEmptyStateTitle, {
|
|
272
|
-
children: t('mySkills.sharedEmptyStateTitle')
|
|
273
|
-
}), /*#__PURE__*/_jsx(SCMSSharedEmptyStateSubtitle, {
|
|
274
|
-
children: t('mySkills.sharedEmptyStateDescription')
|
|
275
|
-
})]
|
|
276
|
-
})
|
|
277
|
-
});
|
|
278
|
-
}
|
|
279
|
-
if (searchQuery) {
|
|
280
|
-
return renderSearchEmptyState();
|
|
281
|
-
}
|
|
282
|
-
return /*#__PURE__*/_jsxs(SCMSSharedEmptyStateRoot, {
|
|
283
|
-
children: [/*#__PURE__*/_jsxs(SCMSSharedEmptyStateTitleBlock, {
|
|
284
|
-
children: [/*#__PURE__*/_jsx(SCMSSharedEmptyStateTitle, {
|
|
285
|
-
children: t('mySkills.emptyStateTitle')
|
|
286
|
-
}), /*#__PURE__*/_jsx(SCMSSharedEmptyStateSubtitle, {
|
|
287
|
-
children: t('mySkills.emptyStateDescription')
|
|
288
|
-
})]
|
|
289
|
-
}), renderCreateSkillButton()]
|
|
290
|
-
});
|
|
291
|
-
};
|
|
292
|
-
return /*#__PURE__*/_jsxs(SCMSContainer, {
|
|
293
|
-
children: [/*#__PURE__*/_jsxs(SCMSBody, {
|
|
294
|
-
children: [/*#__PURE__*/_jsx(SCMSTitleBlock, {
|
|
295
|
-
children: /*#__PURE__*/_jsx(SCMSTitle, {
|
|
296
|
-
children: t('mySkills.title')
|
|
297
|
-
})
|
|
298
|
-
}), /*#__PURE__*/_jsxs(SCMSPanel, {
|
|
299
|
-
children: [/*#__PURE__*/_jsxs(SCMSPanelHeader, {
|
|
300
|
-
children: [/*#__PURE__*/_jsxs(SCMSTabBar, {
|
|
301
|
-
children: [/*#__PURE__*/_jsx(SCMSTabButton, {
|
|
302
|
-
type: "button",
|
|
303
|
-
$active: isMineTab,
|
|
304
|
-
onClick: function onClick() {
|
|
305
|
-
return setActiveTab('mine');
|
|
306
|
-
},
|
|
307
|
-
children: t('mySkills.tabMySkills')
|
|
308
|
-
}), /*#__PURE__*/_jsx(SCMSTabButton, {
|
|
309
|
-
type: "button",
|
|
310
|
-
$active: !isMineTab,
|
|
311
|
-
onClick: function onClick() {
|
|
312
|
-
return setActiveTab('shared');
|
|
313
|
-
},
|
|
314
|
-
children: t('mySkills.tabSharedSkills')
|
|
315
|
-
}), /*#__PURE__*/_jsx(Tooltip, _objectSpread(_objectSpread({
|
|
316
|
-
title: t('mySkills.infoTooltip')
|
|
317
|
-
}, tooltipZIndex != null ? {
|
|
318
|
-
zIndex: tooltipZIndex
|
|
319
|
-
} : {}), {}, {
|
|
320
|
-
children: /*#__PURE__*/_jsx(SCMSTabInfoIcon, {
|
|
321
|
-
"aria-label": t('mySkills.infoTooltip'),
|
|
322
|
-
children: /*#__PURE__*/_jsx(InformationCircle, {
|
|
323
|
-
color: "#808080",
|
|
324
|
-
width: 20,
|
|
325
|
-
height: 20
|
|
326
|
-
})
|
|
327
|
-
})
|
|
328
|
-
}))]
|
|
329
|
-
}), showSkillsToolbar ? /*#__PURE__*/_jsxs(_Fragment, {
|
|
330
|
-
children: [/*#__PURE__*/_jsxs(SCMSMetaRow, {
|
|
331
|
-
children: [/*#__PURE__*/_jsx(SCMSMetaDescription, {
|
|
332
|
-
children: tabDescription
|
|
333
|
-
}), isMineTab ? renderCreateSkillButton() : null]
|
|
334
|
-
}), /*#__PURE__*/_jsx(SkillSearchInput, {
|
|
335
|
-
onSearch: setSearchQuery,
|
|
336
|
-
placeholder: t('mySkills.searchPlaceholder')
|
|
337
|
-
})]
|
|
338
|
-
}) : null]
|
|
339
|
-
}), /*#__PURE__*/_jsxs(SCMSListScrollArea, {
|
|
340
|
-
ref: listScrollRef,
|
|
341
|
-
children: [loading ? /*#__PURE__*/_jsx(SCMSLoadWrapper, {
|
|
342
|
-
children: /*#__PURE__*/_jsx(Loader, {
|
|
343
|
-
size: "small"
|
|
344
|
-
})
|
|
345
|
-
}) : null, !loading && filteredSkills.length ? /*#__PURE__*/_jsx(SCMSCardsList, {
|
|
346
|
-
children: filteredSkills.map(function (skill, index) {
|
|
347
|
-
return /*#__PURE__*/_jsxs(SCMSCardButton, {
|
|
348
|
-
type: "button",
|
|
349
|
-
"data-skill-card-id": skill.id,
|
|
350
|
-
$index: index,
|
|
351
|
-
$elevated: menuOpenForSkillId === skill.id,
|
|
352
|
-
onClick: function onClick() {
|
|
353
|
-
return handleOpenSkill(skill, !isMineTab);
|
|
354
|
-
},
|
|
355
|
-
children: [/*#__PURE__*/_jsxs(SCMSCardTopRow, {
|
|
356
|
-
children: [/*#__PURE__*/_jsx(SCMSCardTitleName, {
|
|
357
|
-
children: formatSkillDisplayName(skill.name)
|
|
358
|
-
}), /*#__PURE__*/_jsx(SCMSKebabButton, {
|
|
359
|
-
type: "button",
|
|
360
|
-
$visible: menuOpenForSkillId === skill.id,
|
|
361
|
-
"aria-label": t('mySkills.cardMenuAriaLabel'),
|
|
362
|
-
onClick: function onClick(event) {
|
|
363
|
-
return handleToggleCardMenu(event, skill.id);
|
|
364
|
-
},
|
|
365
|
-
children: /*#__PURE__*/_jsx(MenuDots, {
|
|
366
|
-
color: "#808080",
|
|
367
|
-
width: 20,
|
|
368
|
-
height: 20
|
|
369
|
-
})
|
|
370
|
-
})]
|
|
371
|
-
}), /*#__PURE__*/_jsx(SCMSCardContentText, {
|
|
372
|
-
children: skill.description || skill.content
|
|
373
|
-
}), /*#__PURE__*/_jsx(SCMSCardVisibilityRow, {
|
|
374
|
-
children: isMineTab ? /*#__PURE__*/_jsxs(_Fragment, {
|
|
375
|
-
children: [skill.access_type === 'company' ? /*#__PURE__*/_jsx(SkillVisibilityEveryoneIcon, {}) : /*#__PURE__*/_jsx(SkillVisibilityOnlyMeIcon, {}), /*#__PURE__*/_jsx(SCMSCardVisibilityText, {
|
|
376
|
-
children: skill.access_type === 'company' ? t('mySkills.visibilityEveryone') : t('mySkills.visibilityOnlyMe')
|
|
377
|
-
})]
|
|
378
|
-
}) : /*#__PURE__*/_jsxs(_Fragment, {
|
|
379
|
-
children: [/*#__PURE__*/_jsx(SkillCreatedByIcon, {}), /*#__PURE__*/_jsx(SCMSCardVisibilityText, {
|
|
380
|
-
children: t('mySkills.sharedCreatedBy', {
|
|
381
|
-
name: skill.created_by_name || ''
|
|
382
|
-
})
|
|
383
|
-
})]
|
|
384
|
-
})
|
|
385
|
-
}), menuOpenForSkillId === skill.id ? /*#__PURE__*/_jsx(SCMSCardMenu, {
|
|
386
|
-
$placement: cardMenuPlacement,
|
|
387
|
-
onClick: function onClick(event) {
|
|
388
|
-
event.preventDefault();
|
|
389
|
-
event.stopPropagation();
|
|
390
|
-
},
|
|
391
|
-
children: isMineTab ? /*#__PURE__*/_jsxs(_Fragment, {
|
|
392
|
-
children: [/*#__PURE__*/_jsx(SCMSCardMenuItem, {
|
|
393
|
-
type: "button",
|
|
394
|
-
onClick: function onClick() {
|
|
395
|
-
return handleOpenSkill(skill, false);
|
|
396
|
-
},
|
|
397
|
-
children: t('mySkills.edit')
|
|
398
|
-
}), /*#__PURE__*/_jsx(SCMSCardMenuItem, {
|
|
399
|
-
type: "button",
|
|
400
|
-
onClick: function onClick() {
|
|
401
|
-
return setSkillToDelete(skill);
|
|
402
|
-
},
|
|
403
|
-
children: t('mySkills.delete')
|
|
404
|
-
})]
|
|
405
|
-
}) : /*#__PURE__*/_jsx(SCMSCardMenuItem, {
|
|
406
|
-
type: "button",
|
|
407
|
-
onClick: function onClick() {
|
|
408
|
-
return handleUseSkill(skill);
|
|
409
|
-
},
|
|
410
|
-
children: t('mySkills.useSkill')
|
|
411
|
-
})
|
|
412
|
-
}) : null]
|
|
413
|
-
}, skill.id);
|
|
414
|
-
})
|
|
415
|
-
}) : null, !loading && !filteredSkills.length ? renderEmptyState() : null]
|
|
416
|
-
})]
|
|
417
|
-
})]
|
|
418
|
-
}), deleteModalChat ? /*#__PURE__*/_jsx(DeleteQuestionModal, {
|
|
419
|
-
onClose: function onClose() {
|
|
420
|
-
return setSkillToDelete(null);
|
|
421
|
-
},
|
|
422
|
-
handlers: {
|
|
423
|
-
handleConfirmAction: handleConfirmDelete
|
|
424
|
-
},
|
|
425
|
-
chat: deleteModalChat,
|
|
426
|
-
action: "skill"
|
|
427
|
-
}) : null]
|
|
428
|
-
});
|
|
429
|
-
};
|
|
430
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsInVzZUNhbGxiYWNrIiwidXNlRWZmZWN0IiwidXNlTWVtbyIsInVzZVJlZiIsInVzZVN0YXRlIiwiTWVudURvdHMiLCJTZWFyY2giLCJJbmZvcm1hdGlvbkNpcmNsZSIsIlRvb2x0aXAiLCJ1c2VUcmFuc2xhdGlvbiIsImRlbGV0ZVNraWxsIiwidXNlU25hY2tCYXJNYW5hZ2VyIiwidXNlTWFpYVRhc2tQYW5lbFpJbmRleCIsIkRlbGV0ZVF1ZXN0aW9uTW9kYWwiLCJTS0lMTF9VU0VfQUZURVJfU0FWRV9FVkVOVCIsIlNFQ1RJT05TIiwiTG9hZGVyIiwiU2tpbGxDcmVhdGVkQnlJY29uIiwiU2tpbGxWaXNpYmlsaXR5RXZlcnlvbmVJY29uIiwiU2tpbGxWaXNpYmlsaXR5T25seU1lSWNvbiIsIlNDTVNCb2R5IiwiU0NNU0NhcmRCdXR0b24iLCJTQ01TQ2FyZENvbnRlbnRUZXh0IiwiU0NNU0NhcmRNZW51IiwiU0NNU0NhcmRNZW51SXRlbSIsIlNDTVNDYXJkVGl0bGVOYW1lIiwiU0NNU0NhcmRUb3BSb3ciLCJTQ01TQ2FyZFZpc2liaWxpdHlSb3ciLCJTQ01TQ2FyZFZpc2liaWxpdHlUZXh0IiwiU0NNU0NhcmRzTGlzdCIsIlNDTVNDb250YWluZXIiLCJTQ01TQ3JlYXRlQnV0dG9uIiwiU0NNU0NyZWF0ZUJ1dHRvblRleHQiLCJTQ01TU2hhcmVkRW1wdHlTdGF0ZVJvb3QiLCJTQ01TU2hhcmVkRW1wdHlTdGF0ZVN1YnRpdGxlIiwiU0NNU1NoYXJlZEVtcHR5U3RhdGVUaXRsZSIsIlNDTVNTaGFyZWRFbXB0eVN0YXRlVGl0bGVCbG9jayIsIlNDTVNLZWJhYkJ1dHRvbiIsIlNDTVNMb2FkV3JhcHBlciIsIlNDTVNNZXRhRGVzY3JpcHRpb24iLCJTQ01TTWV0YVJvdyIsIlNDTVNQYW5lbCIsIlNDTVNQYW5lbEhlYWRlciIsIlNDTVNMaXN0U2Nyb2xsQXJlYSIsIlNDTVNTZWFyY2hJbnB1dCIsIlNDTVNTZWFyY2hXcmFwcGVyIiwiU0NNU1RhYkJhciIsIlNDTVNUYWJCdXR0b24iLCJTQ01TVGFiSW5mb0ljb24iLCJTQ01TVGl0bGUiLCJTQ01TVGl0bGVCbG9jayIsImpzeCIsIl9qc3giLCJqc3hzIiwiX2pzeHMiLCJGcmFnbWVudCIsIl9GcmFnbWVudCIsIkRST1BET1dOX0dBUF9QWCIsIkNBUkRfTUVOVV9JVEVNX0hFSUdIVF9QWCIsInJlc29sdmVEcm9wZG93blBsYWNlbWVudCIsImFuY2hvciIsImRyb3Bkb3duSGVpZ2h0IiwicmVjdCIsImdldEJvdW5kaW5nQ2xpZW50UmVjdCIsInNwYWNlQmVsb3ciLCJ3aW5kb3ciLCJpbm5lckhlaWdodCIsImJvdHRvbSIsInNwYWNlQWJvdmUiLCJ0b3AiLCJmb3JtYXRTa2lsbERpc3BsYXlOYW1lIiwibmFtZSIsIm5vcm1hbGl6ZWQiLCJyZXBsYWNlIiwiY29uY2F0Iiwib3BlblNraWxsTW9kYWwiLCJ2YWx1ZXMiLCJkb2N1bWVudCIsImRpc3BhdGNoRXZlbnQiLCJDdXN0b21FdmVudCIsImRldGFpbCIsInNraWxsVmFsdWVzIiwiaXNPcGVuIiwiU2tpbGxTZWFyY2hJbnB1dCIsIm1lbW8iLCJfcmVmIiwib25TZWFyY2giLCJwbGFjZWhvbGRlciIsIl91c2VTdGF0ZSIsIl91c2VTdGF0ZTIiLCJfc2xpY2VkVG9BcnJheSIsInZhbHVlIiwic2V0VmFsdWUiLCJkZWJvdW5jZVJlZiIsImhhbmRsZUNoYW5nZSIsImV2ZW50IiwibmV4dFZhbHVlIiwidGFyZ2V0IiwiY3VycmVudCIsImNsZWFyVGltZW91dCIsInNldFRpbWVvdXQiLCJ0cmltIiwiY2hpbGRyZW4iLCJ3aWR0aCIsImhlaWdodCIsImNvbG9yIiwidHlwZSIsIm9uQ2hhbmdlIiwiQ2hhdEFJTXlTa2lsbHMiLCJfcmVmMiIsIm15U2tpbGxzIiwic2hhcmVkU2tpbGxzIiwiX3JlZjIkbG9hZGluZyIsImxvYWRpbmciLCJvbkRlbGV0ZVNraWxsIiwiX3VzZVRyYW5zbGF0aW9uIiwiY2hhdEFJIiwidCIsIl91c2VTbmFja0Jhck1hbmFnZXIiLCJoYW5kbGVTbmFja2JhclN1Y2Nlc3MiLCJoYW5kbGVTbmFja2JhckVycm9yIiwidG9vbHRpcFpJbmRleCIsImxpc3RTY3JvbGxSZWYiLCJfdXNlU3RhdGUzIiwiX3VzZVN0YXRlNCIsImFjdGl2ZVRhYiIsInNldEFjdGl2ZVRhYiIsIl91c2VTdGF0ZTUiLCJfdXNlU3RhdGU2Iiwic2VhcmNoUXVlcnkiLCJzZXRTZWFyY2hRdWVyeSIsIl91c2VTdGF0ZTciLCJfdXNlU3RhdGU4IiwibWVudU9wZW5Gb3JTa2lsbElkIiwic2V0TWVudU9wZW5Gb3JTa2lsbElkIiwiX3VzZVN0YXRlOSIsIl91c2VTdGF0ZTAiLCJjYXJkTWVudVBsYWNlbWVudCIsInNldENhcmRNZW51UGxhY2VtZW50IiwiX3VzZVN0YXRlMSIsIl91c2VTdGF0ZTEwIiwic2tpbGxUb0RlbGV0ZSIsInNldFNraWxsVG9EZWxldGUiLCJpc01pbmVUYWIiLCJ0YWJTa2lsbHMiLCJmaWx0ZXJlZFNraWxscyIsIm5vcm1hbGl6ZWRRdWVyeSIsInRvTG93ZXJDYXNlIiwibWF0Y2hlZCIsImZpbHRlciIsInNraWxsIiwiaW5jbHVkZXMiLCJfdG9Db25zdW1hYmxlQXJyYXkiLCJzb3J0IiwiYSIsImIiLCJsb2NhbGVDb21wYXJlIiwiaGFuZGxlQ3JlYXRlU2tpbGwiLCJpc0VkaXRpbmciLCJpbnRlbnQiLCJjYXJkTWVudUhlaWdodFB4IiwiaGFuZGxlVG9nZ2xlQ2FyZE1lbnUiLCJza2lsbElkIiwicHJldmVudERlZmF1bHQiLCJzdG9wUHJvcGFnYXRpb24iLCJjYXJkQW5jaG9yIiwiY3VycmVudFRhcmdldCIsImNsb3Nlc3QiLCJIVE1MRWxlbWVudCIsInByZXYiLCJoYW5kbGVVc2VTa2lsbCIsInVzZUZpcnN0QWdlbnQiLCJoYW5kbGVPcGVuU2tpbGwiLCJpc1JlYWRPbmx5IiwiZ2VuZXJhbCIsImlkIiwiZGVzY3JpcHRpb24iLCJjb250ZW50IiwiYWNjZXNzX3R5cGUiLCJjcmVhdGVkX2J5X25hbWUiLCJ1cGRhdGVkX2F0IiwiZGVsZXRlTW9kYWxDaGF0IiwidGl0bGUiLCJoYW5kbGVDb25maXJtRGVsZXRlIiwiX3JlZjMiLCJfYXN5bmNUb0dlbmVyYXRvciIsIl9yZWdlbmVyYXRvclJ1bnRpbWUiLCJtYXJrIiwiX2NhbGxlZSIsImNoYXQiLCJfdCIsIndyYXAiLCJfY29udGV4dCIsIm5leHQiLCJzdG9wIiwiX3giLCJhcHBseSIsImFyZ3VtZW50cyIsImhhbmRsZUNsaWNrT3V0c2lkZSIsImFkZEV2ZW50TGlzdGVuZXIiLCJyZW1vdmVFdmVudExpc3RlbmVyIiwidW5kZWZpbmVkIiwiaGFuZGxlUmVwb3NpdGlvbiIsIl9saXN0U2Nyb2xsUmVmJGN1cnJlbiIsIm9wZW5DYXJkIiwicXVlcnlTZWxlY3RvciIsInNjcm9sbENvbnRhaW5lciIsInBhc3NpdmUiLCJ0YWJEZXNjcmlwdGlvbiIsImlzTWluZUVtcHR5IiwibGVuZ3RoIiwic2hvd1NraWxsc1Rvb2xiYXIiLCJyZW5kZXJDcmVhdGVTa2lsbEJ1dHRvbiIsIm9uQ2xpY2siLCJyZW5kZXJTZWFyY2hFbXB0eVN0YXRlIiwicmVuZGVyRW1wdHlTdGF0ZSIsIiRhY3RpdmUiLCJfb2JqZWN0U3ByZWFkIiwiekluZGV4IiwicmVmIiwic2l6ZSIsIm1hcCIsImluZGV4IiwiJGluZGV4IiwiJGVsZXZhdGVkIiwiJHZpc2libGUiLCIkcGxhY2VtZW50Iiwib25DbG9zZSIsImhhbmRsZXJzIiwiaGFuZGxlQ29uZmlybUFjdGlvbiIsImFjdGlvbiJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL21vbGVjdWxlcy9DaGF0QUlNeVNraWxscy9DaGF0QUlNeVNraWxscy50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0LCB7IHVzZUNhbGxiYWNrLCB1c2VFZmZlY3QsIHVzZU1lbW8sIHVzZVJlZiwgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCdcbmltcG9ydCB7IE1lbnVEb3RzIH0gZnJvbSAnQHByb2plY3Rjb3IvaWNvbnMvbGliL2NvbXBvbmVudHMvTWVudURvdHMnXG5pbXBvcnQgeyBTZWFyY2ggfSBmcm9tICdAcHJvamVjdGNvci9pY29ucy9saWIvY29tcG9uZW50cy9TZWFyY2gnXG5pbXBvcnQgeyBJbmZvcm1hdGlvbkNpcmNsZSB9IGZyb20gJ0Bwcm9qZWN0Y29yL2ljb25zL2xpYi9jb21wb25lbnRzL0luZm9ybWF0aW9uQ2lyY2xlJ1xuaW1wb3J0IHsgVG9vbHRpcCB9IGZyb20gJ0Bwcm9qZWN0Y29yL3Rvb2x0aXB2Mi9saWIvY29tcG9uZW50cy9Ub29sdGlwJ1xuaW1wb3J0IHsgdXNlVHJhbnNsYXRpb24gfSBmcm9tICdyZWFjdC1pMThuZXh0J1xuaW1wb3J0IHsgU2tpbGwgfSBmcm9tICcuLi8uLi8uLi90eXBlcy9za2lsbCdcbmltcG9ydCB7IGRlbGV0ZVNraWxsIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvbWFpYS9Ta2lsbHMvZGVsZXRlU2tpbGwnXG5pbXBvcnQgeyB1c2VTbmFja0Jhck1hbmFnZXIgfSBmcm9tICcuLi8uLi8uLi9ob29rcy91c2VTbmFja0Jhck1hbmFnZXIvdXNlU25hY2tCYXJNYW5hZ2VyJ1xuaW1wb3J0IHsgdXNlTWFpYVRhc2tQYW5lbFpJbmRleCB9IGZyb20gJy4uLy4uLy4uL2hvb2tzL3VzZU1haWFUYXNrUGFuZWxaSW5kZXgnXG5pbXBvcnQgeyBEZWxldGVRdWVzdGlvbk1vZGFsIH0gZnJvbSAnLi4vLi4vb3JnYW5pc21zL0RlbGV0ZVF1ZXN0aW9uTW9kYWwvRGVsZXRlUXVlc3Rpb25Nb2RhbCdcbmltcG9ydCB7IFNLSUxMX1VTRV9BRlRFUl9TQVZFX0VWRU5UIH0gZnJvbSAnLi4vLi4vb3JnYW5pc21zL0FibVNraWxsTW9kYWwvQWJtU2tpbGxNb2RhbCdcbmltcG9ydCB7IFNFQ1RJT05TIH0gZnJvbSAnLi4vLi4vLi4vY29uc3RhbnRzL2NvbmZpZydcbmltcG9ydCB7IExvYWRlciB9IGZyb20gJy4uLy4uL2F0b21zL0xvYWRlcidcbmltcG9ydCB7IFNraWxsQ3JlYXRlZEJ5SWNvbiB9IGZyb20gJy4uLy4uL2F0b21zL2ljb25zL1NraWxsQ3JlYXRlZEJ5SWNvbidcbmltcG9ydCB7IFNraWxsVmlzaWJpbGl0eUV2ZXJ5b25lSWNvbiB9IGZyb20gJy4uLy4uL2F0b21zL2ljb25zL1NraWxsVmlzaWJpbGl0eUV2ZXJ5b25lSWNvbidcbmltcG9ydCB7IFNraWxsVmlzaWJpbGl0eU9ubHlNZUljb24gfSBmcm9tICcuLi8uLi9hdG9tcy9pY29ucy9Ta2lsbFZpc2liaWxpdHlPbmx5TWVJY29uJ1xuaW1wb3J0IHtcbiAgU0NNU0JvZHksXG4gIFNDTVNDYXJkQnV0dG9uLFxuICBTQ01TQ2FyZENvbnRlbnRUZXh0LFxuICBTQ01TQ2FyZE1lbnUsXG4gIFNDTVNDYXJkTWVudUl0ZW0sXG4gIFNDTVNDYXJkVGl0bGVOYW1lLFxuICBTQ01TQ2FyZFRvcFJvdyxcbiAgU0NNU0NhcmRWaXNpYmlsaXR5Um93LFxuICBTQ01TQ2FyZFZpc2liaWxpdHlUZXh0LFxuICBTQ01TQ2FyZHNMaXN0LFxuICBTQ01TQ29udGFpbmVyLFxuICBTQ01TQ3JlYXRlQnV0dG9uLFxuICBTQ01TQ3JlYXRlQnV0dG9uVGV4dCxcbiAgU0NNU1NoYXJlZEVtcHR5U3RhdGVSb290LFxuICBTQ01TU2hhcmVkRW1wdHlTdGF0ZVN1YnRpdGxlLFxuICBTQ01TU2hhcmVkRW1wdHlTdGF0ZVRpdGxlLFxuICBTQ01TU2hhcmVkRW1wdHlTdGF0ZVRpdGxlQmxvY2ssXG4gIFNDTVNLZWJhYkJ1dHRvbixcbiAgU0NNU0xvYWRXcmFwcGVyLFxuICBTQ01TTWV0YURlc2NyaXB0aW9uLFxuICBTQ01TTWV0YVJvdyxcbiAgU0NNU1BhbmVsLFxuICBTQ01TUGFuZWxIZWFkZXIsXG4gIFNDTVNMaXN0U2Nyb2xsQXJlYSxcbiAgU0NNU1NlYXJjaElucHV0LFxuICBTQ01TU2VhcmNoV3JhcHBlcixcbiAgU0NNU1RhYkJhcixcbiAgU0NNU1RhYkJ1dHRvbixcbiAgU0NNU1RhYkluZm9JY29uLFxuICBTQ01TVGl0bGUsXG4gIFNDTVNUaXRsZUJsb2NrLFxufSBmcm9tICcuL0NoYXRBSU15U2tpbGxzLnN0eWxlcydcblxudHlwZSBDaGF0QUlNeVNraWxsc1Byb3BzID0ge1xuICBteVNraWxsczogU2tpbGxbXVxuICBzaGFyZWRTa2lsbHM6IFNraWxsW11cbiAgbG9hZGluZz86IGJvb2xlYW5cbiAgb25EZWxldGVTa2lsbD86IChza2lsbElkOiBzdHJpbmcpID0+IHZvaWRcbn1cblxudHlwZSBTa2lsbHNUYWIgPSAnbWluZScgfCAnc2hhcmVkJ1xuXG50eXBlIFNraWxsTW9kYWxJbnRlbnQgPSAnZ2VuZXJhdGUnIHwgJ3dyaXRlJ1xuXG50eXBlIERyb3Bkb3duUGxhY2VtZW50ID0gJ3RvcCcgfCAnYm90dG9tJ1xuXG5jb25zdCBEUk9QRE9XTl9HQVBfUFggPSA2XG5jb25zdCBDQVJEX01FTlVfSVRFTV9IRUlHSFRfUFggPSA0NFxuXG5jb25zdCByZXNvbHZlRHJvcGRvd25QbGFjZW1lbnQgPSAoYW5jaG9yOiBIVE1MRWxlbWVudCwgZHJvcGRvd25IZWlnaHQ6IG51bWJlcik6IERyb3Bkb3duUGxhY2VtZW50ID0+IHtcbiAgY29uc3QgcmVjdCA9IGFuY2hvci5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKVxuICBjb25zdCBzcGFjZUJlbG93ID0gd2luZG93LmlubmVySGVpZ2h0IC0gcmVjdC5ib3R0b20gLSBEUk9QRE9XTl9HQVBfUFhcbiAgY29uc3Qgc3BhY2VBYm92ZSA9IHJlY3QudG9wIC0gRFJPUERPV05fR0FQX1BYXG5cbiAgaWYgKHNwYWNlQmVsb3cgPj0gZHJvcGRvd25IZWlnaHQpIHJldHVybiAnYm90dG9tJ1xuICBpZiAoc3BhY2VBYm92ZSA+PSBkcm9wZG93bkhlaWdodCkgcmV0dXJuICd0b3AnXG4gIHJldHVybiBzcGFjZUJlbG93ID49IHNwYWNlQWJvdmUgPyAnYm90dG9tJyA6ICd0b3AnXG59XG5cbmNvbnN0IGZvcm1hdFNraWxsRGlzcGxheU5hbWUgPSAobmFtZTogc3RyaW5nKSA9PiB7XG4gIGNvbnN0IG5vcm1hbGl6ZWQgPSBuYW1lLnJlcGxhY2UoL14oQFxcL3wjKS8sICcnKVxuICByZXR1cm4gYCMke25vcm1hbGl6ZWR9YFxufVxuXG5jb25zdCBvcGVuU2tpbGxNb2RhbCA9ICh2YWx1ZXM6IHtcbiAgaXNFZGl0aW5nOiBib29sZWFuXG4gIGlzUmVhZE9ubHk/OiBib29sZWFuXG4gIGludGVudD86IFNraWxsTW9kYWxJbnRlbnRcbiAgZ2VuZXJhbD86IHtcbiAgICBpZD86IHN0cmluZ1xuICAgIG5hbWU/OiBzdHJpbmdcbiAgICBkZXNjcmlwdGlvbj86IHN0cmluZ1xuICAgIGNvbnRlbnQ/OiBzdHJpbmdcbiAgICBhY2Nlc3NfdHlwZT86IFNraWxsWydhY2Nlc3NfdHlwZSddXG4gICAgY3JlYXRlZF9ieV9uYW1lPzogc3RyaW5nXG4gICAgdXBkYXRlZF9hdD86IHN0cmluZ1xuICB9XG59KSA9PiB7XG4gIGRvY3VtZW50LmRpc3BhdGNoRXZlbnQoXG4gICAgbmV3IEN1c3RvbUV2ZW50KCdhYm0tc2tpbGwtbW9kYWwtc2V0LXZhbHVlcycsIHtcbiAgICAgIGRldGFpbDoge1xuICAgICAgICBza2lsbFZhbHVlczoge1xuICAgICAgICAgIHZhbHVlcyxcbiAgICAgICAgICBpc09wZW46IHRydWUsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH0pXG4gIClcbn1cblxuY29uc3QgU2tpbGxTZWFyY2hJbnB1dCA9IFJlYWN0Lm1lbW8oXG4gICh7IG9uU2VhcmNoLCBwbGFjZWhvbGRlciB9OiB7IG9uU2VhcmNoOiAocXVlcnk6IHN0cmluZykgPT4gdm9pZDsgcGxhY2Vob2xkZXI6IHN0cmluZyB9KSA9PiB7XG4gICAgY29uc3QgW3ZhbHVlLCBzZXRWYWx1ZV0gPSB1c2VTdGF0ZSgnJylcbiAgICBjb25zdCBkZWJvdW5jZVJlZiA9IHVzZVJlZjxSZXR1cm5UeXBlPHR5cGVvZiBzZXRUaW1lb3V0PiB8IG51bGw+KG51bGwpXG5cbiAgICBjb25zdCBoYW5kbGVDaGFuZ2UgPSB1c2VDYWxsYmFjayhcbiAgICAgIChldmVudDogUmVhY3QuQ2hhbmdlRXZlbnQ8SFRNTElucHV0RWxlbWVudD4pID0+IHtcbiAgICAgICAgY29uc3QgbmV4dFZhbHVlID0gZXZlbnQudGFyZ2V0LnZhbHVlXG4gICAgICAgIHNldFZhbHVlKG5leHRWYWx1ZSlcbiAgICAgICAgaWYgKGRlYm91bmNlUmVmLmN1cnJlbnQpIGNsZWFyVGltZW91dChkZWJvdW5jZVJlZi5jdXJyZW50KVxuICAgICAgICBkZWJvdW5jZVJlZi5jdXJyZW50ID0gc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgb25TZWFyY2gobmV4dFZhbHVlLnRyaW0oKSlcbiAgICAgICAgfSwgMjUwKVxuICAgICAgfSxcbiAgICAgIFtvblNlYXJjaF1cbiAgICApXG5cbiAgICB1c2VFZmZlY3QoXG4gICAgICAoKSA9PiAoKSA9PiB7XG4gICAgICAgIGlmIChkZWJvdW5jZVJlZi5jdXJyZW50KSBjbGVhclRpbWVvdXQoZGVib3VuY2VSZWYuY3VycmVudClcbiAgICAgIH0sXG4gICAgICBbXVxuICAgIClcblxuICAgIHJldHVybiAoXG4gICAgICA8U0NNU1NlYXJjaFdyYXBwZXI+XG4gICAgICAgIDxTZWFyY2ggd2lkdGg9ezE2fSBoZWlnaHQ9ezE2fSBjb2xvcj1cIiM5OTlcIiAvPlxuICAgICAgICA8U0NNU1NlYXJjaElucHV0IHR5cGU9XCJ0ZXh0XCIgdmFsdWU9e3ZhbHVlfSBvbkNoYW5nZT17aGFuZGxlQ2hhbmdlfSBwbGFjZWhvbGRlcj17cGxhY2Vob2xkZXJ9IC8+XG4gICAgICA8L1NDTVNTZWFyY2hXcmFwcGVyPlxuICAgIClcbiAgfVxuKVxuXG5leHBvcnQgY29uc3QgQ2hhdEFJTXlTa2lsbHMgPSAoeyBteVNraWxscywgc2hhcmVkU2tpbGxzLCBsb2FkaW5nID0gZmFsc2UsIG9uRGVsZXRlU2tpbGwgfTogQ2hhdEFJTXlTa2lsbHNQcm9wcykgPT4ge1xuICBjb25zdCB7IHQgfSA9IHVzZVRyYW5zbGF0aW9uKFtTRUNUSU9OUy5jaGF0QUldKVxuICBjb25zdCB7IGhhbmRsZVNuYWNrYmFyU3VjY2VzcywgaGFuZGxlU25hY2tiYXJFcnJvciB9ID0gdXNlU25hY2tCYXJNYW5hZ2VyKClcbiAgY29uc3QgdG9vbHRpcFpJbmRleCA9IHVzZU1haWFUYXNrUGFuZWxaSW5kZXgoMTUwMCwgJ292ZXJsYXknKVxuICBjb25zdCBsaXN0U2Nyb2xsUmVmID0gdXNlUmVmPEhUTUxEaXZFbGVtZW50PihudWxsKVxuICBjb25zdCBbYWN0aXZlVGFiLCBzZXRBY3RpdmVUYWJdID0gdXNlU3RhdGU8U2tpbGxzVGFiPignbWluZScpXG4gIGNvbnN0IFtzZWFyY2hRdWVyeSwgc2V0U2VhcmNoUXVlcnldID0gdXNlU3RhdGUoJycpXG4gIGNvbnN0IFttZW51T3BlbkZvclNraWxsSWQsIHNldE1lbnVPcGVuRm9yU2tpbGxJZF0gPSB1c2VTdGF0ZTxzdHJpbmcgfCBudWxsPihudWxsKVxuICBjb25zdCBbY2FyZE1lbnVQbGFjZW1lbnQsIHNldENhcmRNZW51UGxhY2VtZW50XSA9IHVzZVN0YXRlPERyb3Bkb3duUGxhY2VtZW50PignYm90dG9tJylcbiAgY29uc3QgW3NraWxsVG9EZWxldGUsIHNldFNraWxsVG9EZWxldGVdID0gdXNlU3RhdGU8U2tpbGwgfCBudWxsPihudWxsKVxuICBjb25zdCBpc01pbmVUYWIgPSBhY3RpdmVUYWIgPT09ICdtaW5lJ1xuXG4gIGNvbnN0IHRhYlNraWxscyA9IGlzTWluZVRhYiA/IG15U2tpbGxzIDogc2hhcmVkU2tpbGxzXG5cbiAgY29uc3QgZmlsdGVyZWRTa2lsbHMgPSB1c2VNZW1vKCgpID0+IHtcbiAgICBjb25zdCBub3JtYWxpemVkUXVlcnkgPSBzZWFyY2hRdWVyeS50b0xvd2VyQ2FzZSgpXG4gICAgY29uc3QgbWF0Y2hlZCA9IG5vcm1hbGl6ZWRRdWVyeVxuICAgICAgPyB0YWJTa2lsbHMuZmlsdGVyKHNraWxsID0+IHNraWxsLm5hbWUudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhub3JtYWxpemVkUXVlcnkpKVxuICAgICAgOiB0YWJTa2lsbHNcbiAgICByZXR1cm4gWy4uLm1hdGNoZWRdLnNvcnQoKGEsIGIpID0+IGEubmFtZS5sb2NhbGVDb21wYXJlKGIubmFtZSkpXG4gIH0sIFtzZWFyY2hRdWVyeSwgdGFiU2tpbGxzXSlcblxuICBjb25zdCBoYW5kbGVDcmVhdGVTa2lsbCA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICBvcGVuU2tpbGxNb2RhbCh7IGlzRWRpdGluZzogZmFsc2UsIGludGVudDogJ3dyaXRlJyB9KVxuICB9LCBbXSlcblxuICAvLyBcIk1pcyBza2lsbHNcIiB0aWVuZSBFZGl0YXIgKyBFbGltaW5hcjsgXCJDb21wYXJ0aWRhc1wiIHNvbG8gVXNhciBza2lsbC5cbiAgY29uc3QgY2FyZE1lbnVIZWlnaHRQeCA9IGlzTWluZVRhYiA/IENBUkRfTUVOVV9JVEVNX0hFSUdIVF9QWCAqIDIgOiBDQVJEX01FTlVfSVRFTV9IRUlHSFRfUFhcblxuICBjb25zdCBoYW5kbGVUb2dnbGVDYXJkTWVudSA9IHVzZUNhbGxiYWNrKFxuICAgIChldmVudDogUmVhY3QuTW91c2VFdmVudDxIVE1MQnV0dG9uRWxlbWVudD4sIHNraWxsSWQ6IHN0cmluZykgPT4ge1xuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKVxuICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcbiAgICAgIGNvbnN0IGNhcmRBbmNob3IgPSBldmVudC5jdXJyZW50VGFyZ2V0LmNsb3Nlc3QoJ1tkYXRhLXNraWxsLWNhcmQtaWRdJylcbiAgICAgIGlmIChjYXJkQW5jaG9yIGluc3RhbmNlb2YgSFRNTEVsZW1lbnQpIHtcbiAgICAgICAgc2V0Q2FyZE1lbnVQbGFjZW1lbnQocmVzb2x2ZURyb3Bkb3duUGxhY2VtZW50KGNhcmRBbmNob3IsIGNhcmRNZW51SGVpZ2h0UHgpKVxuICAgICAgfVxuICAgICAgc2V0TWVudU9wZW5Gb3JTa2lsbElkKHByZXYgPT4gKHByZXYgPT09IHNraWxsSWQgPyBudWxsIDogc2tpbGxJZCkpXG4gICAgfSxcbiAgICBbY2FyZE1lbnVIZWlnaHRQeF1cbiAgKVxuXG4gIC8qKiBNaXNtbyBmbHVqbyBxdWUgZWwgYm90w7NuIFwiVXNhciBza2lsbFwiIGRlbCBtb2RhbDogY2hhdCBudWV2byBjb24gZWwgcHJpbWVyIGFnZW50ZSB5IGxhIG1lbmNpw7NuIHB1ZXN0YS4gKi9cbiAgY29uc3QgaGFuZGxlVXNlU2tpbGwgPSB1c2VDYWxsYmFjaygoc2tpbGw6IFNraWxsKSA9PiB7XG4gICAgZG9jdW1lbnQuZGlzcGF0Y2hFdmVudChcbiAgICAgIG5ldyBDdXN0b21FdmVudChTS0lMTF9VU0VfQUZURVJfU0FWRV9FVkVOVCwge1xuICAgICAgICBkZXRhaWw6IHsgc2tpbGwsIHVzZUZpcnN0QWdlbnQ6IHRydWUgfSxcbiAgICAgIH0pXG4gICAgKVxuICAgIHNldE1lbnVPcGVuRm9yU2tpbGxJZChudWxsKVxuICB9LCBbXSlcblxuICBjb25zdCBoYW5kbGVPcGVuU2tpbGwgPSB1c2VDYWxsYmFjaygoc2tpbGw6IFNraWxsLCBpc1JlYWRPbmx5OiBib29sZWFuKSA9PiB7XG4gICAgb3BlblNraWxsTW9kYWwoe1xuICAgICAgaXNFZGl0aW5nOiB0cnVlLFxuICAgICAgaXNSZWFkT25seSxcbiAgICAgIGdlbmVyYWw6IHtcbiAgICAgICAgaWQ6IHNraWxsLmlkLFxuICAgICAgICBuYW1lOiBza2lsbC5uYW1lLFxuICAgICAgICBkZXNjcmlwdGlvbjogc2tpbGwuZGVzY3JpcHRpb24sXG4gICAgICAgIGNvbnRlbnQ6IHNraWxsLmNvbnRlbnQsXG4gICAgICAgIGFjY2Vzc190eXBlOiBza2lsbC5hY2Nlc3NfdHlwZSxcbiAgICAgICAgY3JlYXRlZF9ieV9uYW1lOiBza2lsbC5jcmVhdGVkX2J5X25hbWUsXG4gICAgICAgIHVwZGF0ZWRfYXQ6IHNraWxsLnVwZGF0ZWRfYXQsXG4gICAgICB9LFxuICAgIH0pXG4gICAgc2V0TWVudU9wZW5Gb3JTa2lsbElkKG51bGwpXG4gIH0sIFtdKVxuXG4gIGNvbnN0IGRlbGV0ZU1vZGFsQ2hhdCA9IHVzZU1lbW8oXG4gICAgKCkgPT4gKHNraWxsVG9EZWxldGUgPyB7IHRpdGxlOiBza2lsbFRvRGVsZXRlLm5hbWUsIGlkOiBza2lsbFRvRGVsZXRlLmlkIH0gOiBudWxsKSxcbiAgICBbc2tpbGxUb0RlbGV0ZV1cbiAgKVxuXG4gIGNvbnN0IGhhbmRsZUNvbmZpcm1EZWxldGUgPSBhc3luYyAoY2hhdDogeyBpZDogc3RyaW5nIH0pID0+IHtcbiAgICB0cnkge1xuICAgICAgYXdhaXQgZGVsZXRlU2tpbGwoY2hhdC5pZClcbiAgICAgIGhhbmRsZVNuYWNrYmFyU3VjY2Vzcyh0KCdteVNraWxscy5kZWxldGVTdWNjZXNzJykpXG4gICAgICBvbkRlbGV0ZVNraWxsPy4oY2hhdC5pZClcbiAgICAgIHNldFNraWxsVG9EZWxldGUobnVsbClcbiAgICAgIHNldE1lbnVPcGVuRm9yU2tpbGxJZChudWxsKVxuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBoYW5kbGVTbmFja2JhckVycm9yKHQoJ215U2tpbGxzLmRlbGV0ZUVycm9yJykpXG4gICAgfVxuICB9XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBjb25zdCBoYW5kbGVDbGlja091dHNpZGUgPSAoKSA9PiB7XG4gICAgICBpZiAobWVudU9wZW5Gb3JTa2lsbElkKSB7XG4gICAgICAgIHNldE1lbnVPcGVuRm9yU2tpbGxJZChudWxsKVxuICAgICAgfVxuICAgIH1cblxuICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgaGFuZGxlQ2xpY2tPdXRzaWRlKVxuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdjbGljaycsIGhhbmRsZUNsaWNrT3V0c2lkZSlcbiAgICB9XG4gIH0sIFttZW51T3BlbkZvclNraWxsSWRdKVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKCFtZW51T3BlbkZvclNraWxsSWQpIHJldHVybiB1bmRlZmluZWRcblxuICAgIGNvbnN0IGhhbmRsZVJlcG9zaXRpb24gPSAoKSA9PiB7XG4gICAgICBjb25zdCBvcGVuQ2FyZCA9IGxpc3RTY3JvbGxSZWYuY3VycmVudD8ucXVlcnlTZWxlY3RvcjxIVE1MQnV0dG9uRWxlbWVudD4oXG4gICAgICAgIGBbZGF0YS1za2lsbC1jYXJkLWlkPVwiJHttZW51T3BlbkZvclNraWxsSWR9XCJdYFxuICAgICAgKVxuICAgICAgaWYgKG9wZW5DYXJkKSB7XG4gICAgICAgIHNldENhcmRNZW51UGxhY2VtZW50KHJlc29sdmVEcm9wZG93blBsYWNlbWVudChvcGVuQ2FyZCwgY2FyZE1lbnVIZWlnaHRQeCkpXG4gICAgICB9XG4gICAgfVxuXG4gICAgY29uc3Qgc2Nyb2xsQ29udGFpbmVyID0gbGlzdFNjcm9sbFJlZi5jdXJyZW50XG4gICAgc2Nyb2xsQ29udGFpbmVyPy5hZGRFdmVudExpc3RlbmVyKCdzY3JvbGwnLCBoYW5kbGVSZXBvc2l0aW9uLCB7IHBhc3NpdmU6IHRydWUgfSlcbiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigncmVzaXplJywgaGFuZGxlUmVwb3NpdGlvbilcblxuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICBzY3JvbGxDb250YWluZXI/LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3Njcm9sbCcsIGhhbmRsZVJlcG9zaXRpb24pXG4gICAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigncmVzaXplJywgaGFuZGxlUmVwb3NpdGlvbilcbiAgICB9XG4gIH0sIFttZW51T3BlbkZvclNraWxsSWQsIGNhcmRNZW51SGVpZ2h0UHhdKVxuXG4gIGNvbnN0IHRhYkRlc2NyaXB0aW9uID0gaXNNaW5lVGFiID8gdCgnbXlTa2lsbHMubXlTa2lsbHNEZXNjcmlwdGlvbicpIDogdCgnbXlTa2lsbHMuc2hhcmVkU2tpbGxzRGVzY3JpcHRpb24nKVxuXG4gIGNvbnN0IGlzTWluZUVtcHR5ID0gaXNNaW5lVGFiICYmICFsb2FkaW5nICYmIG15U2tpbGxzLmxlbmd0aCA9PT0gMCAmJiAhc2VhcmNoUXVlcnlcbiAgY29uc3Qgc2hvd1NraWxsc1Rvb2xiYXIgPSBpc01pbmVUYWIgPyAhaXNNaW5lRW1wdHkgOiB0YWJTa2lsbHMubGVuZ3RoID4gMCB8fCAhIXNlYXJjaFF1ZXJ5XG5cbiAgY29uc3QgcmVuZGVyQ3JlYXRlU2tpbGxCdXR0b24gPSAoKSA9PiAoXG4gICAgPFNDTVNDcmVhdGVCdXR0b24gdHlwZT1cImJ1dHRvblwiIG9uQ2xpY2s9e2hhbmRsZUNyZWF0ZVNraWxsfT5cbiAgICAgIDxTQ01TQ3JlYXRlQnV0dG9uVGV4dD57dCgnbXlTa2lsbHMuY3JlYXRlU2tpbGwnKX08L1NDTVNDcmVhdGVCdXR0b25UZXh0PlxuICAgIDwvU0NNU0NyZWF0ZUJ1dHRvbj5cbiAgKVxuXG4gIGNvbnN0IHJlbmRlclNlYXJjaEVtcHR5U3RhdGUgPSAoKSA9PiAoXG4gICAgPFNDTVNTaGFyZWRFbXB0eVN0YXRlUm9vdD5cbiAgICAgIDxTQ01TU2hhcmVkRW1wdHlTdGF0ZVRpdGxlQmxvY2s+XG4gICAgICAgIDxTQ01TU2hhcmVkRW1wdHlTdGF0ZVRpdGxlPnt0KCdteVNraWxscy5zZWFyY2hFbXB0eVN0YXRlVGl0bGUnKX08L1NDTVNTaGFyZWRFbXB0eVN0YXRlVGl0bGU+XG4gICAgICAgIDxTQ01TU2hhcmVkRW1wdHlTdGF0ZVN1YnRpdGxlPnt0KCdteVNraWxscy5zZWFyY2hFbXB0eVN0YXRlRGVzY3JpcHRpb24nKX08L1NDTVNTaGFyZWRFbXB0eVN0YXRlU3VidGl0bGU+XG4gICAgICA8L1NDTVNTaGFyZWRFbXB0eVN0YXRlVGl0bGVCbG9jaz5cbiAgICA8L1NDTVNTaGFyZWRFbXB0eVN0YXRlUm9vdD5cbiAgKVxuXG4gIGNvbnN0IHJlbmRlckVtcHR5U3RhdGUgPSAoKSA9PiB7XG4gICAgaWYgKCFpc01pbmVUYWIpIHtcbiAgICAgIGlmIChzZWFyY2hRdWVyeSkge1xuICAgICAgICByZXR1cm4gcmVuZGVyU2VhcmNoRW1wdHlTdGF0ZSgpXG4gICAgICB9XG5cbiAgICAgIHJldHVybiAoXG4gICAgICAgIDxTQ01TU2hhcmVkRW1wdHlTdGF0ZVJvb3Q+XG4gICAgICAgICAgPFNDTVNTaGFyZWRFbXB0eVN0YXRlVGl0bGVCbG9jaz5cbiAgICAgICAgICAgIDxTQ01TU2hhcmVkRW1wdHlTdGF0ZVRpdGxlPnt0KCdteVNraWxscy5zaGFyZWRFbXB0eVN0YXRlVGl0bGUnKX08L1NDTVNTaGFyZWRFbXB0eVN0YXRlVGl0bGU+XG4gICAgICAgICAgICA8U0NNU1NoYXJlZEVtcHR5U3RhdGVTdWJ0aXRsZT57dCgnbXlTa2lsbHMuc2hhcmVkRW1wdHlTdGF0ZURlc2NyaXB0aW9uJyl9PC9TQ01TU2hhcmVkRW1wdHlTdGF0ZVN1YnRpdGxlPlxuICAgICAgICAgIDwvU0NNU1NoYXJlZEVtcHR5U3RhdGVUaXRsZUJsb2NrPlxuICAgICAgICA8L1NDTVNTaGFyZWRFbXB0eVN0YXRlUm9vdD5cbiAgICAgIClcbiAgICB9XG5cbiAgICBpZiAoc2VhcmNoUXVlcnkpIHtcbiAgICAgIHJldHVybiByZW5kZXJTZWFyY2hFbXB0eVN0YXRlKClcbiAgICB9XG5cbiAgICByZXR1cm4gKFxuICAgICAgPFNDTVNTaGFyZWRFbXB0eVN0YXRlUm9vdD5cbiAgICAgICAgPFNDTVNTaGFyZWRFbXB0eVN0YXRlVGl0bGVCbG9jaz5cbiAgICAgICAgICA8U0NNU1NoYXJlZEVtcHR5U3RhdGVUaXRsZT57dCgnbXlTa2lsbHMuZW1wdHlTdGF0ZVRpdGxlJyl9PC9TQ01TU2hhcmVkRW1wdHlTdGF0ZVRpdGxlPlxuICAgICAgICAgIDxTQ01TU2hhcmVkRW1wdHlTdGF0ZVN1YnRpdGxlPnt0KCdteVNraWxscy5lbXB0eVN0YXRlRGVzY3JpcHRpb24nKX08L1NDTVNTaGFyZWRFbXB0eVN0YXRlU3VidGl0bGU+XG4gICAgICAgIDwvU0NNU1NoYXJlZEVtcHR5U3RhdGVUaXRsZUJsb2NrPlxuICAgICAgICB7cmVuZGVyQ3JlYXRlU2tpbGxCdXR0b24oKX1cbiAgICAgIDwvU0NNU1NoYXJlZEVtcHR5U3RhdGVSb290PlxuICAgIClcbiAgfVxuXG4gIHJldHVybiAoXG4gICAgPFNDTVNDb250YWluZXI+XG4gICAgICA8U0NNU0JvZHk+XG4gICAgICAgIDxTQ01TVGl0bGVCbG9jaz5cbiAgICAgICAgICA8U0NNU1RpdGxlPnt0KCdteVNraWxscy50aXRsZScpfTwvU0NNU1RpdGxlPlxuICAgICAgICA8L1NDTVNUaXRsZUJsb2NrPlxuXG4gICAgICAgIDxTQ01TUGFuZWw+XG4gICAgICAgICAgPFNDTVNQYW5lbEhlYWRlcj5cbiAgICAgICAgICAgIDxTQ01TVGFiQmFyPlxuICAgICAgICAgICAgICA8U0NNU1RhYkJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgJGFjdGl2ZT17aXNNaW5lVGFifSBvbkNsaWNrPXsoKSA9PiBzZXRBY3RpdmVUYWIoJ21pbmUnKX0+XG4gICAgICAgICAgICAgICAge3QoJ215U2tpbGxzLnRhYk15U2tpbGxzJyl9XG4gICAgICAgICAgICAgIDwvU0NNU1RhYkJ1dHRvbj5cbiAgICAgICAgICAgICAgPFNDTVNUYWJCdXR0b24gdHlwZT1cImJ1dHRvblwiICRhY3RpdmU9eyFpc01pbmVUYWJ9IG9uQ2xpY2s9eygpID0+IHNldEFjdGl2ZVRhYignc2hhcmVkJyl9PlxuICAgICAgICAgICAgICAgIHt0KCdteVNraWxscy50YWJTaGFyZWRTa2lsbHMnKX1cbiAgICAgICAgICAgICAgPC9TQ01TVGFiQnV0dG9uPlxuICAgICAgICAgICAgICA8VG9vbHRpcCB0aXRsZT17dCgnbXlTa2lsbHMuaW5mb1Rvb2x0aXAnKX0gey4uLih0b29sdGlwWkluZGV4ICE9IG51bGwgPyB7IHpJbmRleDogdG9vbHRpcFpJbmRleCB9IDoge30pfT5cbiAgICAgICAgICAgICAgICA8U0NNU1RhYkluZm9JY29uIGFyaWEtbGFiZWw9e3QoJ215U2tpbGxzLmluZm9Ub29sdGlwJyl9PlxuICAgICAgICAgICAgICAgICAgPEluZm9ybWF0aW9uQ2lyY2xlIGNvbG9yPVwiIzgwODA4MFwiIHdpZHRoPXsyMH0gaGVpZ2h0PXsyMH0gLz5cbiAgICAgICAgICAgICAgICA8L1NDTVNUYWJJbmZvSWNvbj5cbiAgICAgICAgICAgICAgPC9Ub29sdGlwPlxuICAgICAgICAgICAgPC9TQ01TVGFiQmFyPlxuXG4gICAgICAgICAgICB7c2hvd1NraWxsc1Rvb2xiYXIgPyAoXG4gICAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgICAgPFNDTVNNZXRhUm93PlxuICAgICAgICAgICAgICAgICAgPFNDTVNNZXRhRGVzY3JpcHRpb24+e3RhYkRlc2NyaXB0aW9ufTwvU0NNU01ldGFEZXNjcmlwdGlvbj5cbiAgICAgICAgICAgICAgICAgIHtpc01pbmVUYWIgPyByZW5kZXJDcmVhdGVTa2lsbEJ1dHRvbigpIDogbnVsbH1cbiAgICAgICAgICAgICAgICA8L1NDTVNNZXRhUm93PlxuXG4gICAgICAgICAgICAgICAgPFNraWxsU2VhcmNoSW5wdXQgb25TZWFyY2g9e3NldFNlYXJjaFF1ZXJ5fSBwbGFjZWhvbGRlcj17dCgnbXlTa2lsbHMuc2VhcmNoUGxhY2Vob2xkZXInKX0gLz5cbiAgICAgICAgICAgICAgPC8+XG4gICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICA8L1NDTVNQYW5lbEhlYWRlcj5cblxuICAgICAgICAgIDxTQ01TTGlzdFNjcm9sbEFyZWEgcmVmPXtsaXN0U2Nyb2xsUmVmfT5cbiAgICAgICAgICAgIHtsb2FkaW5nID8gKFxuICAgICAgICAgICAgICA8U0NNU0xvYWRXcmFwcGVyPlxuICAgICAgICAgICAgICAgIDxMb2FkZXIgc2l6ZT1cInNtYWxsXCIgLz5cbiAgICAgICAgICAgICAgPC9TQ01TTG9hZFdyYXBwZXI+XG4gICAgICAgICAgICApIDogbnVsbH1cblxuICAgICAgICAgICAgeyFsb2FkaW5nICYmIGZpbHRlcmVkU2tpbGxzLmxlbmd0aCA/IChcbiAgICAgICAgICAgICAgPFNDTVNDYXJkc0xpc3Q+XG4gICAgICAgICAgICAgICAge2ZpbHRlcmVkU2tpbGxzLm1hcCgoc2tpbGwsIGluZGV4KSA9PiAoXG4gICAgICAgICAgICAgICAgICA8U0NNU0NhcmRCdXR0b25cbiAgICAgICAgICAgICAgICAgICAga2V5PXtza2lsbC5pZH1cbiAgICAgICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgIGRhdGEtc2tpbGwtY2FyZC1pZD17c2tpbGwuaWR9XG4gICAgICAgICAgICAgICAgICAgICRpbmRleD17aW5kZXh9XG4gICAgICAgICAgICAgICAgICAgICRlbGV2YXRlZD17bWVudU9wZW5Gb3JTa2lsbElkID09PSBza2lsbC5pZH1cbiAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4gaGFuZGxlT3BlblNraWxsKHNraWxsLCAhaXNNaW5lVGFiKX1cbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPFNDTVNDYXJkVG9wUm93PlxuICAgICAgICAgICAgICAgICAgICAgIDxTQ01TQ2FyZFRpdGxlTmFtZT57Zm9ybWF0U2tpbGxEaXNwbGF5TmFtZShza2lsbC5uYW1lKX08L1NDTVNDYXJkVGl0bGVOYW1lPlxuICAgICAgICAgICAgICAgICAgICAgIDxTQ01TS2ViYWJCdXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgJHZpc2libGU9e21lbnVPcGVuRm9yU2tpbGxJZCA9PT0gc2tpbGwuaWR9XG4gICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPXt0KCdteVNraWxscy5jYXJkTWVudUFyaWFMYWJlbCcpfVxuICAgICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17ZXZlbnQgPT4gaGFuZGxlVG9nZ2xlQ2FyZE1lbnUoZXZlbnQsIHNraWxsLmlkKX1cbiAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICA8TWVudURvdHMgY29sb3I9XCIjODA4MDgwXCIgd2lkdGg9ezIwfSBoZWlnaHQ9ezIwfSAvPlxuICAgICAgICAgICAgICAgICAgICAgIDwvU0NNU0tlYmFiQnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICA8L1NDTVNDYXJkVG9wUm93PlxuICAgICAgICAgICAgICAgICAgICA8U0NNU0NhcmRDb250ZW50VGV4dD57c2tpbGwuZGVzY3JpcHRpb24gfHwgc2tpbGwuY29udGVudH08L1NDTVNDYXJkQ29udGVudFRleHQ+XG4gICAgICAgICAgICAgICAgICAgIDxTQ01TQ2FyZFZpc2liaWxpdHlSb3c+XG4gICAgICAgICAgICAgICAgICAgICAge2lzTWluZVRhYiA/IChcbiAgICAgICAgICAgICAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHtza2lsbC5hY2Nlc3NfdHlwZSA9PT0gJ2NvbXBhbnknID8gKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxTa2lsbFZpc2liaWxpdHlFdmVyeW9uZUljb24gLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgKSA6IChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8U2tpbGxWaXNpYmlsaXR5T25seU1lSWNvbiAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgICAgICAgICAgICA8U0NNU0NhcmRWaXNpYmlsaXR5VGV4dD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7c2tpbGwuYWNjZXNzX3R5cGUgPT09ICdjb21wYW55J1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyB0KCdteVNraWxscy52aXNpYmlsaXR5RXZlcnlvbmUnKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiB0KCdteVNraWxscy52aXNpYmlsaXR5T25seU1lJyl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvU0NNU0NhcmRWaXNpYmlsaXR5VGV4dD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvPlxuICAgICAgICAgICAgICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICAgICAgICAgICAgICA8PlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8U2tpbGxDcmVhdGVkQnlJY29uIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxTQ01TQ2FyZFZpc2liaWxpdHlUZXh0PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt0KCdteVNraWxscy5zaGFyZWRDcmVhdGVkQnknLCB7IG5hbWU6IHNraWxsLmNyZWF0ZWRfYnlfbmFtZSB8fCAnJyB9KX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9TQ01TQ2FyZFZpc2liaWxpdHlUZXh0PlxuICAgICAgICAgICAgICAgICAgICAgICAgPC8+XG4gICAgICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICAgICAgPC9TQ01TQ2FyZFZpc2liaWxpdHlSb3c+XG4gICAgICAgICAgICAgICAgICAgIHttZW51T3BlbkZvclNraWxsSWQgPT09IHNraWxsLmlkID8gKFxuICAgICAgICAgICAgICAgICAgICAgIDxTQ01TQ2FyZE1lbnVcbiAgICAgICAgICAgICAgICAgICAgICAgICRwbGFjZW1lbnQ9e2NhcmRNZW51UGxhY2VtZW50fVxuICAgICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17ZXZlbnQgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXG4gICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIHtpc01pbmVUYWIgPyAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPFNDTVNDYXJkTWVudUl0ZW0gdHlwZT1cImJ1dHRvblwiIG9uQ2xpY2s9eygpID0+IGhhbmRsZU9wZW5Ta2lsbChza2lsbCwgZmFsc2UpfT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt0KCdteVNraWxscy5lZGl0Jyl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9TQ01TQ2FyZE1lbnVJdGVtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxTQ01TQ2FyZE1lbnVJdGVtIHR5cGU9XCJidXR0b25cIiBvbkNsaWNrPXsoKSA9PiBzZXRTa2lsbFRvRGVsZXRlKHNraWxsKX0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7dCgnbXlTa2lsbHMuZGVsZXRlJyl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9TQ01TQ2FyZE1lbnVJdGVtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8Lz5cbiAgICAgICAgICAgICAgICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxTQ01TQ2FyZE1lbnVJdGVtIHR5cGU9XCJidXR0b25cIiBvbkNsaWNrPXsoKSA9PiBoYW5kbGVVc2VTa2lsbChza2lsbCl9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt0KCdteVNraWxscy51c2VTa2lsbCcpfVxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L1NDTVNDYXJkTWVudUl0ZW0+XG4gICAgICAgICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgICAgICAgIDwvU0NNU0NhcmRNZW51PlxuICAgICAgICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAgICAgIDwvU0NNU0NhcmRCdXR0b24+XG4gICAgICAgICAgICAgICAgKSl9XG4gICAgICAgICAgICAgIDwvU0NNU0NhcmRzTGlzdD5cbiAgICAgICAgICAgICkgOiBudWxsfVxuXG4gICAgICAgICAgICB7IWxvYWRpbmcgJiYgIWZpbHRlcmVkU2tpbGxzLmxlbmd0aCA/IHJlbmRlckVtcHR5U3RhdGUoKSA6IG51bGx9XG4gICAgICAgICAgPC9TQ01TTGlzdFNjcm9sbEFyZWE+XG4gICAgICAgIDwvU0NNU1BhbmVsPlxuICAgICAgPC9TQ01TQm9keT5cblxuICAgICAge2RlbGV0ZU1vZGFsQ2hhdCA/IChcbiAgICAgICAgPERlbGV0ZVF1ZXN0aW9uTW9kYWxcbiAgICAgICAgICBvbkNsb3NlPXsoKSA9PiBzZXRTa2lsbFRvRGVsZXRlKG51bGwpfVxuICAgICAgICAgIGhhbmRsZXJzPXt7XG4gICAgICAgICAgICBoYW5kbGVDb25maXJtQWN0aW9uOiBoYW5kbGVDb25maXJtRGVsZXRlLFxuICAgICAgICAgIH19XG4gICAgICAgICAgY2hhdD17ZGVsZXRlTW9kYWxDaGF0fVxuICAgICAgICAgIGFjdGlvbj1cInNraWxsXCJcbiAgICAgICAgLz5cbiAgICAgICkgOiBudWxsfVxuICAgIDwvU0NNU0NvbnRhaW5lcj5cbiAgKVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQUEsT0FBT0EsS0FBSyxJQUFJQyxXQUFXLEVBQUVDLFNBQVMsRUFBRUMsT0FBTyxFQUFFQyxNQUFNLEVBQUVDLFFBQVEsUUFBUSxPQUFPO0FBQ2hGLFNBQVNDLFFBQVEsUUFBUSwyQ0FBMkM7QUFDcEUsU0FBU0MsTUFBTSxRQUFRLHlDQUF5QztBQUNoRSxTQUFTQyxpQkFBaUIsUUFBUSxvREFBb0Q7QUFDdEYsU0FBU0MsT0FBTyxRQUFRLDhDQUE4QztBQUN0RSxTQUFTQyxjQUFjLFFBQVEsZUFBZTtBQUU5QyxTQUFTQyxXQUFXLFFBQVEsMkNBQTJDO0FBQ3ZFLFNBQVNDLGtCQUFrQixRQUFRLHNEQUFzRDtBQUN6RixTQUFTQyxzQkFBc0IsUUFBUSx1Q0FBdUM7QUFDOUUsU0FBU0MsbUJBQW1CLFFBQVEseURBQXlEO0FBQzdGLFNBQVNDLDBCQUEwQixRQUFRLDZDQUE2QztBQUN4RixTQUFTQyxRQUFRLFFBQVEsMkJBQTJCO0FBQ3BELFNBQVNDLE1BQU0sUUFBUSxvQkFBb0I7QUFDM0MsU0FBU0Msa0JBQWtCLFFBQVEsc0NBQXNDO0FBQ3pFLFNBQVNDLDJCQUEyQixRQUFRLCtDQUErQztBQUMzRixTQUFTQyx5QkFBeUIsUUFBUSw2Q0FBNkM7QUFDdkYsU0FDRUMsUUFBUSxFQUNSQyxjQUFjLEVBQ2RDLG1CQUFtQixFQUNuQkMsWUFBWSxFQUNaQyxnQkFBZ0IsRUFDaEJDLGlCQUFpQixFQUNqQkMsY0FB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LFFBQUEsZ0JBQ0VsRCxJQUFBLENBQUM1QixnQkFBZ0I7c0JBQUNrRixJQUFJLEVBQUMsUUFBUTtzQkFBQzJHLE9BQU8sRUFBRSxTQUFUQSxPQUFPQSxDQUFBO3dCQUFBLE9BQVF6QyxlQUFlLENBQUN0QixLQUFLLEVBQUUsS0FBSyxDQUFDO3NCQUFBLENBQUM7c0JBQUFoRCxRQUFBLEVBQzFFZSxDQUFDLENBQUMsZUFBZTtvQkFBQyxDQUNILENBQUMsZUFDbkJqRSxJQUFBLENBQUM1QixnQkFBZ0I7c0JBQUNrRixJQUFJLEVBQUMsUUFBUTtzQkFBQzJHLE9BQU8sRUFBRSxTQUFUQSxPQUFPQSxDQUFBO3dCQUFBLE9BQVF2RSxnQkFBZ0IsQ0FBQ1EsS0FBSyxDQUFDO3NCQUFBLENBQUM7c0JBQUFoRCxRQUFBLEVBQ3BFZSxDQUFDLENBQUMsaUJBQWlCO29CQUFDLENBQ0wsQ0FBQztrQkFBQSxDQUNuQixDQUFDLGdCQUVIakUsSUFBQSxDQUFDNUIsZ0JBQWdCO29CQUFDa0YsSUFBSSxFQUFDLFFBQVE7b0JBQUMyRyxPQUFPLEVBQUUsU0FBVEEsT0FBT0EsQ0FBQTtzQkFBQSxPQUFRM0MsY0FBYyxDQUFDcEIsS0FBSyxDQUFDO29CQUFBLENBQUM7b0JBQUFoRCxRQUFBLEVBQ2xFZSxDQUFDLENBQUMsbUJBQW1CO2tCQUFDLENBQ1A7Z0JBQ25CLENBQ1csQ0FBQyxHQUNiLElBQUk7Y0FBQSxHQWpFSGlDLEtBQUssQ0FBQ3lCLEVBa0VHLENBQUM7WUFBQSxDQUNsQjtVQUFDLENBQ1csQ0FBQyxHQUNkLElBQUksRUFFUCxDQUFDOUQsT0FBTyxJQUFJLENBQUNnQyxjQUFjLENBQUNpRSxNQUFNLEdBQUdLLGdCQUFnQixDQUFDLENBQUMsR0FBRyxJQUFJO1FBQUEsQ0FDN0MsQ0FBQztNQUFBLENBQ1osQ0FBQztJQUFBLENBQ0osQ0FBQyxFQUVWbEMsZUFBZSxnQkFDZGpJLElBQUEsQ0FBQ3ZDLG1CQUFtQjtNQUNsQnNOLE9BQU8sRUFBRSxTQUFUQSxPQUFPQSxDQUFBO1FBQUEsT0FBUXJGLGdCQUFnQixDQUFDLElBQUksQ0FBQztNQUFBLENBQUM7TUFDdENzRixRQUFRLEVBQUU7UUFDUkMsbUJBQW1CLEVBQUU5QztNQUN2QixDQUFFO01BQ0ZNLElBQUksRUFBRVIsZUFBZ0I7TUFDdEJpRCxNQUFNLEVBQUM7SUFBTyxDQUNmLENBQUMsR0FDQSxJQUFJO0VBQUEsQ0FDSyxDQUFDO0FBRXBCLENBQUMiLCJpZ25vcmVMaXN0IjpbXX0=
|