@projectcor/maia-components 2.11.110-0 → 2.26.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (667) hide show
  1. package/README.md +2 -0
  2. package/package.json +3 -3
  3. package/CHANGELOG.md +0 -642
  4. package/lib/App.js +0 -55
  5. package/lib/components/atoms/ActionableButton.js +0 -60
  6. package/lib/components/atoms/AgentActivityIndicator/AgentActivityIndicator.js +0 -89
  7. package/lib/components/atoms/AgentActivityIndicator/AgentActivityIndicator.styles.js +0 -21
  8. package/lib/components/atoms/AgentActivityIndicator/AgentActivityIndicator.utils.js +0 -9
  9. package/lib/components/atoms/AgentActivityIndicator/index.js +0 -2
  10. package/lib/components/atoms/ApprovalBox/ApprovalBox.js +0 -209
  11. package/lib/components/atoms/ApprovalBox/ApprovalBox.styles.js +0 -93
  12. package/lib/components/atoms/ApprovalBox/index.js +0 -2
  13. package/lib/components/atoms/AttachmentCard/AttachmentCard.js +0 -218
  14. package/lib/components/atoms/AttachmentCard/AttachmentCard.styles.js +0 -52
  15. package/lib/components/atoms/AttachmentCard/AttachmentCardAudio.js +0 -448
  16. package/lib/components/atoms/AttachmentCard/AttachmentCardAudio.styles.js +0 -58
  17. package/lib/components/atoms/AttachmentCard/AttachmentCardImage.js +0 -55
  18. package/lib/components/atoms/AttachmentCard/AttachmentCardImage.styles.js +0 -14
  19. package/lib/components/atoms/AttachmentCard/index.js +0 -4
  20. package/lib/components/atoms/AttachmentPreviewModal/AttachmentPreviewModal.js +0 -442
  21. package/lib/components/atoms/AttachmentPreviewModal/AttachmentPreviewModal.styles.js +0 -119
  22. package/lib/components/atoms/AttachmentPreviewModal/ExcelPreview.js +0 -222
  23. package/lib/components/atoms/AttachmentPreviewModal/PptPreview.js +0 -313
  24. package/lib/components/atoms/AttachmentPreviewModal/WordPreview.js +0 -128
  25. package/lib/components/atoms/AttachmentPreviewModal/index.js +0 -2
  26. package/lib/components/atoms/Backdrop/Backdrop.js +0 -17
  27. package/lib/components/atoms/Backdrop/Backdrop.styles.js +0 -9
  28. package/lib/components/atoms/Backdrop/index.js +0 -2
  29. package/lib/components/atoms/CardItem.js +0 -7
  30. package/lib/components/atoms/CardMenu/CardMenu.js +0 -131
  31. package/lib/components/atoms/CardMenu/index.js +0 -2
  32. package/lib/components/atoms/CardMenu/styles.js +0 -21
  33. package/lib/components/atoms/ChatClientSelector/ChatClientSelector.js +0 -77
  34. package/lib/components/atoms/ChatClientSelector/index.js +0 -2
  35. package/lib/components/atoms/ChatDisclaimerMessage/ChatDisclaimerMessage.js +0 -9
  36. package/lib/components/atoms/ChatDisclaimerMessage/index.js +0 -2
  37. package/lib/components/atoms/ChatDisclaimerMessage/styles.js +0 -6
  38. package/lib/components/atoms/Checkbox/Checkbox.js +0 -34
  39. package/lib/components/atoms/Checkbox/index.js +0 -2
  40. package/lib/components/atoms/Checkbox/styles.js +0 -39
  41. package/lib/components/atoms/Chip/Chip.js +0 -150
  42. package/lib/components/atoms/Chip/index.js +0 -2
  43. package/lib/components/atoms/Chip/styles.js +0 -43
  44. package/lib/components/atoms/ChipLlm/ChipLlm.js +0 -45
  45. package/lib/components/atoms/ChipLlm/ChipLlm.style.js +0 -21
  46. package/lib/components/atoms/ChipLlm/index.js +0 -2
  47. package/lib/components/atoms/ChipStatus/ChipStatus.interface.js +0 -2
  48. package/lib/components/atoms/ChipStatus/ChipStatus.js +0 -14
  49. package/lib/components/atoms/ChipStatus/ChipStatus.styles.js +0 -27
  50. package/lib/components/atoms/ChipStatus/index.js +0 -2
  51. package/lib/components/atoms/ClearButton.js +0 -6
  52. package/lib/components/atoms/ClientSelector/ClientSelector.js +0 -146
  53. package/lib/components/atoms/ClientSelector/ClientSelector.styles.js +0 -15
  54. package/lib/components/atoms/ClientSelector/index.js +0 -2
  55. package/lib/components/atoms/ContextMentionChip/ContextMentionChip.js +0 -38
  56. package/lib/components/atoms/ContextMentionChip/ContextMentionChip.styles.js +0 -188
  57. package/lib/components/atoms/ContextMentionChip/MentionOverflowLabel.js +0 -39
  58. package/lib/components/atoms/ContextMentionChip/buildChipElement.js +0 -445
  59. package/lib/components/atoms/ContextMentionChip/index.js +0 -4
  60. package/lib/components/atoms/ContextMentionEditor/ContextMentionEditor.js +0 -533
  61. package/lib/components/atoms/ContextMentionEditor/ContextMentionEditor.styles.js +0 -10
  62. package/lib/components/atoms/ContextMentionEditor/index.js +0 -2
  63. package/lib/components/atoms/ContextMentionItem/ContextMentionItem.js +0 -282
  64. package/lib/components/atoms/ContextMentionItem/ContextMentionItem.styles.js +0 -148
  65. package/lib/components/atoms/ContextMentionItem/index.js +0 -2
  66. package/lib/components/atoms/ContextMentionPopover/ContextMentionPopover.js +0 -290
  67. package/lib/components/atoms/ContextMentionPopover/ContextMentionPopover.styles.js +0 -108
  68. package/lib/components/atoms/ContextMentionPopover/index.js +0 -3
  69. package/lib/components/atoms/CopyToClipboard.js +0 -70
  70. package/lib/components/atoms/EditableLabel/EditableLabel.js +0 -110
  71. package/lib/components/atoms/EditableLabel/index.js +0 -2
  72. package/lib/components/atoms/EditableLabel/styles.js +0 -7
  73. package/lib/components/atoms/EmptySearchClients/EmptySearchClients.js +0 -22
  74. package/lib/components/atoms/EmptySearchClients/EmptySearchClients.styles.js +0 -18
  75. package/lib/components/atoms/EmptySearchClients/index.js +0 -2
  76. package/lib/components/atoms/EmptySearchProjects/EmptySearchProjects.js +0 -19
  77. package/lib/components/atoms/EmptySearchProjects/EmptySearchProjects.styles.js +0 -15
  78. package/lib/components/atoms/EmptySearchProjects/index.js +0 -2
  79. package/lib/components/atoms/EntitySelector/EntitySelector.js +0 -247
  80. package/lib/components/atoms/EntitySelector/EntitySelector.skeleton.js +0 -38
  81. package/lib/components/atoms/EntitySelector/EntitySelector.styles.js +0 -67
  82. package/lib/components/atoms/EntitySelector/index.js +0 -2
  83. package/lib/components/atoms/ErrorSearchClients/ErrorSearchClients.js +0 -14
  84. package/lib/components/atoms/ErrorSearchClients/ErrorSearchClients.styles.js +0 -15
  85. package/lib/components/atoms/ErrorSearchFaqs/ErrorSearchFaqs.js +0 -14
  86. package/lib/components/atoms/ErrorSearchFaqs/ErrorSearchFaqs.style.js +0 -15
  87. package/lib/components/atoms/ErrorSearchFaqs/index.js +0 -2
  88. package/lib/components/atoms/ErrorSearchProjects/ErrorSearchProjects.js +0 -18
  89. package/lib/components/atoms/ErrorSearchProjects/ErrorSearchProjects.style.js +0 -15
  90. package/lib/components/atoms/ErrorSearchProjects/index.js +0 -2
  91. package/lib/components/atoms/Expand/Expand.js +0 -32
  92. package/lib/components/atoms/Expand/index.js +0 -2
  93. package/lib/components/atoms/Fade/Fade.js +0 -56
  94. package/lib/components/atoms/Fade/index.js +0 -2
  95. package/lib/components/atoms/FeedbackButton/FeedbackButton.js +0 -59
  96. package/lib/components/atoms/FeedbackButton/FeedbackButton.styles.js +0 -14
  97. package/lib/components/atoms/FeedbackButton/index.js +0 -2
  98. package/lib/components/atoms/FrequentlyAskedQuestions/FrequentlyAskedQuestions.js +0 -138
  99. package/lib/components/atoms/FrequentlyAskedQuestions/FrequentlyAskedQuestions.skeleton.js +0 -44
  100. package/lib/components/atoms/FrequentlyAskedQuestions/FrequentlyAskedQuestions.styles.js +0 -43
  101. package/lib/components/atoms/FrequentlyAskedQuestions/index.js +0 -2
  102. package/lib/components/atoms/FrequentlyUsedActions/FrequentlyUsedActions.js +0 -122
  103. package/lib/components/atoms/FrequentlyUsedActions/FrequentlyUsedActions.skeleton.js +0 -43
  104. package/lib/components/atoms/FrequentlyUsedActions/FrequentlyUsedActions.styles.js +0 -62
  105. package/lib/components/atoms/FrequentlyUsedActions/index.js +0 -2
  106. package/lib/components/atoms/GoBackButton.js +0 -24
  107. package/lib/components/atoms/HelpButton.js +0 -44
  108. package/lib/components/atoms/IconButton.js +0 -56
  109. package/lib/components/atoms/ImagePreview/ImagePreview.js +0 -96
  110. package/lib/components/atoms/ImagePreview/ImagePreview.styles.js +0 -70
  111. package/lib/components/atoms/Input/CustomInput.interface.js +0 -2
  112. package/lib/components/atoms/Input/CustomInput.js +0 -91
  113. package/lib/components/atoms/Input/CustomInput.styles.js +0 -39
  114. package/lib/components/atoms/Input/index.js +0 -2
  115. package/lib/components/atoms/ListMenuOption/ListMenuOption.js +0 -41
  116. package/lib/components/atoms/ListMenuOption/index.js +0 -2
  117. package/lib/components/atoms/ListMenuOption/styles.js +0 -9
  118. package/lib/components/atoms/Loader.js +0 -41
  119. package/lib/components/atoms/LoadingFaqs/LoadingFaqs.js +0 -11
  120. package/lib/components/atoms/LoadingFaqs/LoadingFaqs.style.js +0 -6
  121. package/lib/components/atoms/LoadingFaqs/index.js +0 -2
  122. package/lib/components/atoms/LoadingSearchClients/LoadingSearchClients.js +0 -11
  123. package/lib/components/atoms/LoadingSearchClients/LoadingSearchClients.styles.js +0 -6
  124. package/lib/components/atoms/LoadingSearchClients/index.js +0 -2
  125. package/lib/components/atoms/LoadingSearchProjects/LoadingSearchProjects.js +0 -14
  126. package/lib/components/atoms/LoadingSearchProjects/LoadingSearchProjects.style.js +0 -10
  127. package/lib/components/atoms/LoadingSearchProjects/index.js +0 -2
  128. package/lib/components/atoms/LoadingText/LoadingText.js +0 -18
  129. package/lib/components/atoms/LoadingText/index.js +0 -2
  130. package/lib/components/atoms/LoadingText/styles.js +0 -7
  131. package/lib/components/atoms/MAIAButton/MAIAButton.js +0 -33
  132. package/lib/components/atoms/MAIAButton/index.js +0 -2
  133. package/lib/components/atoms/MAIAError/MAIAError.js +0 -15
  134. package/lib/components/atoms/MAIAError/index.js +0 -2
  135. package/lib/components/atoms/MAIAInput/MAIAInput.js +0 -1232
  136. package/lib/components/atoms/MAIAInput/MAIAInputEditor.js +0 -266
  137. package/lib/components/atoms/MAIAInput/index.js +0 -2
  138. package/lib/components/atoms/MAIAInput/maiaInputLayout.js +0 -25
  139. package/lib/components/atoms/MAIAInput/styles.js +0 -186
  140. package/lib/components/atoms/MAIAMessage/MAIAMessage.interfaces.js +0 -2
  141. package/lib/components/atoms/MAIAMessage/MAIAMessage.js +0 -22
  142. package/lib/components/atoms/MAIAMessage/index.js +0 -2
  143. package/lib/components/atoms/MAIAMessage/styles.js +0 -7
  144. package/lib/components/atoms/MaiaStreamdown/MaiaStreamdown.config.js +0 -23
  145. package/lib/components/atoms/MaiaStreamdown/MaiaStreamdown.interfaces.js +0 -2
  146. package/lib/components/atoms/MaiaStreamdown/MaiaStreamdown.js +0 -51
  147. package/lib/components/atoms/MaiaStreamdown/MaiaStreamdown.styles.js +0 -26
  148. package/lib/components/atoms/MaiaStreamdown/index.js +0 -2
  149. package/lib/components/atoms/MaiaWrapper/MaiaWrapper.js +0 -18
  150. package/lib/components/atoms/MaiaWrapper/MaiaWrapperBase.js +0 -84
  151. package/lib/components/atoms/MaiaWrapper/ModernMaiaWrapper.js +0 -15
  152. package/lib/components/atoms/MaiaWrapper/index.js +0 -3
  153. package/lib/components/atoms/MaiaWrapper/styles.js +0 -21
  154. package/lib/components/atoms/ModalClientAccess/ModalClientAccess.interface.js +0 -2
  155. package/lib/components/atoms/ModalClientAccess/ModalClientAccess.js +0 -84
  156. package/lib/components/atoms/ModalClientAccess/ModalClientAccess.styles.js +0 -53
  157. package/lib/components/atoms/ModalClientAccess/index.js +0 -2
  158. package/lib/components/atoms/ModalInfo/ModalInfo.js +0 -52
  159. package/lib/components/atoms/ModalInfo/ModalInfoContent.js +0 -7
  160. package/lib/components/atoms/ModalInfo/index.js +0 -3
  161. package/lib/components/atoms/ModalInfo/styles.js +0 -7
  162. package/lib/components/atoms/ModalProject/ModalProject.interface.js +0 -2
  163. package/lib/components/atoms/ModalProject/ModalProject.js +0 -112
  164. package/lib/components/atoms/ModalProject/ModalProject.style.js +0 -59
  165. package/lib/components/atoms/ModalProject/index.js +0 -2
  166. package/lib/components/atoms/NextPageLoader.js +0 -33
  167. package/lib/components/atoms/OnboardingModalButton/OnboardingModal.js +0 -28
  168. package/lib/components/atoms/OnboardingModalButton/OnboardingModalButton.js +0 -180
  169. package/lib/components/atoms/OnboardingModalButton/OnboardingModalButton.styles.js +0 -34
  170. package/lib/components/atoms/OnboardingModalButton/index.js +0 -3
  171. package/lib/components/atoms/OptionAccessibility/OptionAccessibility.js +0 -131
  172. package/lib/components/atoms/OptionAccessibility/OptionAccessibility.styles.js +0 -59
  173. package/lib/components/atoms/OptionAccessibility/index.js +0 -2
  174. package/lib/components/atoms/OptionCorPermission/OptionCorPermission.js +0 -27
  175. package/lib/components/atoms/OptionCorPermission/OptionCorPermission.styles.js +0 -18
  176. package/lib/components/atoms/OptionCorPermission/index.js +0 -2
  177. package/lib/components/atoms/PrimaryButton.js +0 -31
  178. package/lib/components/atoms/ProjectSelector/ProjectSelector.js +0 -77
  179. package/lib/components/atoms/ProjectSelector/ProjectSelector.styles.js +0 -61
  180. package/lib/components/atoms/ProjectSelector/index.js +0 -2
  181. package/lib/components/atoms/SecondaryButton.js +0 -20
  182. package/lib/components/atoms/SessionGeneratingDot/SessionGeneratingDot.js +0 -20
  183. package/lib/components/atoms/SessionGeneratingDot/SessionGeneratingDot.styles.js +0 -20
  184. package/lib/components/atoms/SessionGeneratingDot/index.js +0 -2
  185. package/lib/components/atoms/Skeleton/Skeleton.js +0 -36
  186. package/lib/components/atoms/Skeleton/index.js +0 -2
  187. package/lib/components/atoms/SkillsDropdown/SkillsDropdown.js +0 -188
  188. package/lib/components/atoms/SkillsDropdown/SkillsDropdown.styles.js +0 -69
  189. package/lib/components/atoms/SkillsDropdown/index.js +0 -2
  190. package/lib/components/atoms/SlashCommandChip/SlashCommandChip.js +0 -16
  191. package/lib/components/atoms/SlashCommandChip/SlashCommandChip.styles.js +0 -24
  192. package/lib/components/atoms/SlashCommandChip/buildSlashChipElement.js +0 -18
  193. package/lib/components/atoms/SlashCommandChip/index.js +0 -4
  194. package/lib/components/atoms/SlashCommandDropdown/SlashCommandDropdown.js +0 -210
  195. package/lib/components/atoms/SlashCommandDropdown/SlashCommandDropdown.styles.js +0 -53
  196. package/lib/components/atoms/SlashCommandDropdown/index.js +0 -2
  197. package/lib/components/atoms/Switch/Switch.js +0 -27
  198. package/lib/components/atoms/Switch/Switch.styles.js +0 -22
  199. package/lib/components/atoms/Switch/index.js +0 -2
  200. package/lib/components/atoms/TextArea/CustomTextArea.interface.js +0 -2
  201. package/lib/components/atoms/TextArea/CustomTextArea.js +0 -93
  202. package/lib/components/atoms/TextArea/CustomTextArea.styles.js +0 -25
  203. package/lib/components/atoms/TextArea/TextArea.interfaces.js +0 -2
  204. package/lib/components/atoms/TextArea/TextArea.js +0 -172
  205. package/lib/components/atoms/TextArea/TextArea.styles.js +0 -16
  206. package/lib/components/atoms/TextArea/index.js +0 -2
  207. package/lib/components/atoms/ThirdButton.js +0 -19
  208. package/lib/components/atoms/VideoModal/VideoModal.js +0 -76
  209. package/lib/components/atoms/VideoModal/index.js +0 -2
  210. package/lib/components/atoms/WithAppCfg.js +0 -26
  211. package/lib/components/atoms/WithFeatureValidation.js +0 -23
  212. package/lib/components/atoms/WrapperCenterIcon/WrapperCenterIcon.js +0 -9
  213. package/lib/components/atoms/WrapperCenterIcon/WrapperCenterIcon.styles.js +0 -6
  214. package/lib/components/atoms/WrapperCenterIcon/index.js +0 -2
  215. package/lib/components/atoms/icons/AIIcon.js +0 -23
  216. package/lib/components/atoms/icons/AacFile.js +0 -39
  217. package/lib/components/atoms/icons/AccessibilityIcon.js +0 -42
  218. package/lib/components/atoms/icons/ActionAssignIcon.js +0 -111
  219. package/lib/components/atoms/icons/ActionCalendarIcon.js +0 -112
  220. package/lib/components/atoms/icons/ActionChargeHoursIcon.js +0 -111
  221. package/lib/components/atoms/icons/ActionChatIcon.js +0 -71
  222. package/lib/components/atoms/icons/ActionCreateIcon.js +0 -91
  223. package/lib/components/atoms/icons/ActionCreateReworkIcon.js +0 -39
  224. package/lib/components/atoms/icons/ActionCreateSubtaskIcon.js +0 -37
  225. package/lib/components/atoms/icons/ActionEditIcon.js +0 -39
  226. package/lib/components/atoms/icons/ActionSummaryMessagesIcon.js +0 -88
  227. package/lib/components/atoms/icons/ActionSummaryTaskIcon.js +0 -37
  228. package/lib/components/atoms/icons/ActionTimeBackIcon.js +0 -112
  229. package/lib/components/atoms/icons/AgentMaiaIcon.js +0 -31
  230. package/lib/components/atoms/icons/Brain.js +0 -77
  231. package/lib/components/atoms/icons/CorAccessIcon.js +0 -41
  232. package/lib/components/atoms/icons/CorLogo.js +0 -76
  233. package/lib/components/atoms/icons/CsvFile.js +0 -41
  234. package/lib/components/atoms/icons/DocFile.js +0 -41
  235. package/lib/components/atoms/icons/DocxFile.js +0 -41
  236. package/lib/components/atoms/icons/EmptyClientIllustration.js +0 -67
  237. package/lib/components/atoms/icons/EmptyHistory.js +0 -46
  238. package/lib/components/atoms/icons/EmptySearchIllustration.js +0 -37
  239. package/lib/components/atoms/icons/EmptyState.js +0 -84
  240. package/lib/components/atoms/icons/EmptyStateAgents.js +0 -58
  241. package/lib/components/atoms/icons/ErrorIcon.js +0 -14
  242. package/lib/components/atoms/icons/ErrorSearchIllustration.js +0 -52
  243. package/lib/components/atoms/icons/ErrorState.js +0 -51
  244. package/lib/components/atoms/icons/FaqChevronIcon.js +0 -39
  245. package/lib/components/atoms/icons/FaqsIcon.js +0 -51
  246. package/lib/components/atoms/icons/FlacIcon.js +0 -39
  247. package/lib/components/atoms/icons/FolderIcon.js +0 -29
  248. package/lib/components/atoms/icons/HomeIcon.js +0 -30
  249. package/lib/components/atoms/icons/ImageFile.js +0 -46
  250. package/lib/components/atoms/icons/M4aFile.js +0 -39
  251. package/lib/components/atoms/icons/MAIAIcon.js +0 -20
  252. package/lib/components/atoms/icons/MAIAIsologo.js +0 -65
  253. package/lib/components/atoms/icons/MDFile.js +0 -41
  254. package/lib/components/atoms/icons/MaiaChatLayoutFloatingIcon.js +0 -41
  255. package/lib/components/atoms/icons/MaiaChatLayoutFullscreenIcon.js +0 -41
  256. package/lib/components/atoms/icons/MaiaChatLayoutMenuIcon.js +0 -33
  257. package/lib/components/atoms/icons/MaiaChatLayoutSidebarIcon.js +0 -41
  258. package/lib/components/atoms/icons/MaiaInputAddIcon.js +0 -42
  259. package/lib/components/atoms/icons/MaiaInputAttachIcon.js +0 -29
  260. package/lib/components/atoms/icons/MaiaInputAttachmentImageIcon.js +0 -33
  261. package/lib/components/atoms/icons/MaiaInputDeepSearchIcon.js +0 -35
  262. package/lib/components/atoms/icons/MaiaInputMentionIcon.js +0 -44
  263. package/lib/components/atoms/icons/MaiaInputRobotIcon.js +0 -29
  264. package/lib/components/atoms/icons/MaiaInputSendIcon.js +0 -29
  265. package/lib/components/atoms/icons/MaiaInputSlashIcon.js +0 -29
  266. package/lib/components/atoms/icons/MaiaInputWebSearchIcon.js +0 -35
  267. package/lib/components/atoms/icons/MaiaSettingsProject.js +0 -111
  268. package/lib/components/atoms/icons/MaiaSettingsProjectV2.js +0 -193
  269. package/lib/components/atoms/icons/MaiaSparkleIcon.js +0 -75
  270. package/lib/components/atoms/icons/MaiaStoreIcon.js +0 -31
  271. package/lib/components/atoms/icons/Mp3File.js +0 -39
  272. package/lib/components/atoms/icons/Mp4File.js +0 -39
  273. package/lib/components/atoms/icons/MyAgentsNavIcon.js +0 -51
  274. package/lib/components/atoms/icons/NewChat.js +0 -29
  275. package/lib/components/atoms/icons/NotionIcon.js +0 -36
  276. package/lib/components/atoms/icons/OgaFile.js +0 -39
  277. package/lib/components/atoms/icons/OggFile.js +0 -39
  278. package/lib/components/atoms/icons/PdfFile.js +0 -39
  279. package/lib/components/atoms/icons/PlusIcon.js +0 -29
  280. package/lib/components/atoms/icons/PptFile.js +0 -47
  281. package/lib/components/atoms/icons/PptxFile.js +0 -49
  282. package/lib/components/atoms/icons/RetryIcon.js +0 -34
  283. package/lib/components/atoms/icons/SkillIcon.js +0 -30
  284. package/lib/components/atoms/icons/SkillVisibilityEveryoneIcon.js +0 -23
  285. package/lib/components/atoms/icons/SkillVisibilityOnlyMeIcon.js +0 -23
  286. package/lib/components/atoms/icons/SkillsNavIcon.js +0 -24
  287. package/lib/components/atoms/icons/SubtaskIcon.js +0 -36
  288. package/lib/components/atoms/icons/TaskLinkIcon.js +0 -27
  289. package/lib/components/atoms/icons/TelescopeIcon.js +0 -60
  290. package/lib/components/atoms/icons/TemplateGradientIcon.js +0 -42
  291. package/lib/components/atoms/icons/TextFile.js +0 -41
  292. package/lib/components/atoms/icons/WavFile.js +0 -39
  293. package/lib/components/atoms/icons/WebmFile.js +0 -50
  294. package/lib/components/atoms/icons/XlsFile.js +0 -42
  295. package/lib/components/atoms/icons/XlsxFile.js +0 -42
  296. package/lib/components/atoms/icons/index.js +0 -53
  297. package/lib/components/atoms/index.js +0 -42
  298. package/lib/components/index.js +0 -11
  299. package/lib/components/molecules/AbmSection/AbmAccessibilitySection/AbmAccessibilitySection.interface.js +0 -2
  300. package/lib/components/molecules/AbmSection/AbmAccessibilitySection/AbmAccessibilitySection.js +0 -149
  301. package/lib/components/molecules/AbmSection/AbmAccessibilitySection/AbmAccessibilitySection.styles.js +0 -53
  302. package/lib/components/molecules/AbmSection/AbmGeneralSection.js +0 -415
  303. package/lib/components/molecules/AbmSection/AbmGeneralSection.styles.js +0 -152
  304. package/lib/components/molecules/AbmSection/AbmKnowledgeSection.js +0 -374
  305. package/lib/components/molecules/AbmSection/AbmKnowledgeSection.styles.js +0 -106
  306. package/lib/components/molecules/AbmSection/AbmLoaderFiles.js +0 -92
  307. package/lib/components/molecules/AbmSection/AbmLoaderFiles.styles.js +0 -57
  308. package/lib/components/molecules/AbmSection/index.js +0 -4
  309. package/lib/components/molecules/ChatAIClientSelector/ChatAIClientSelector.js +0 -52
  310. package/lib/components/molecules/ChatAIClientSelector/index.js +0 -2
  311. package/lib/components/molecules/ChatAIContent/ChatAIContent.js +0 -119
  312. package/lib/components/molecules/ChatAIContent/ChatAIContent.skeleton.js +0 -187
  313. package/lib/components/molecules/ChatAIContent/ChatAIContent.styles.js +0 -6
  314. package/lib/components/molecules/ChatAIContent/index.js +0 -2
  315. package/lib/components/molecules/ChatAIHistory/ChatAIHistory.js +0 -241
  316. package/lib/components/molecules/ChatAIHistory/index.js +0 -2
  317. package/lib/components/molecules/ChatAIHistory/styles.js +0 -22
  318. package/lib/components/molecules/ChatAIHome/ChatAIHome.js +0 -649
  319. package/lib/components/molecules/ChatAIHome/ChatAIHomeMaiaker.js +0 -115
  320. package/lib/components/molecules/ChatAIHome/ChatAIHomeMaiaker.styles.js +0 -95
  321. package/lib/components/molecules/ChatAIHome/index.js +0 -2
  322. package/lib/components/molecules/ChatAIHome/styles.js +0 -335
  323. package/lib/components/molecules/ChatAIMessages/ChatAICreateAgentActions.js +0 -137
  324. package/lib/components/molecules/ChatAIMessages/ChatAIMessages.js +0 -853
  325. package/lib/components/molecules/ChatAIMessages/ChatAISuggestions.js +0 -47
  326. package/lib/components/molecules/ChatAIMessages/ChatAISuggestions.styles.js +0 -37
  327. package/lib/components/molecules/ChatAIMessages/README.md +0 -101
  328. package/lib/components/molecules/ChatAIMessages/index.js +0 -2
  329. package/lib/components/molecules/ChatAIMessages/newStyles.js +0 -131
  330. package/lib/components/molecules/ChatAIMessages/styles.js +0 -94
  331. package/lib/components/molecules/ChatAIModal/ChatAIModal.js +0 -1250
  332. package/lib/components/molecules/ChatAIModal/ChatAIModal.styles.js +0 -58
  333. package/lib/components/molecules/ChatAIModal/components/ChatAiAgentOptions/ChatAiAgentOptions.js +0 -127
  334. package/lib/components/molecules/ChatAIModal/components/ChatAiAgentOptions/ChatAiAgentOptions.styles.js +0 -34
  335. package/lib/components/molecules/ChatAIModal/components/ChatAiAgentOptions/index.js +0 -2
  336. package/lib/components/molecules/ChatAIModal/components/ChatAiModalFooter/ChatAiModalFooter.js +0 -189
  337. package/lib/components/molecules/ChatAIModal/components/ChatAiModalFooter/ChatAiModalFooter.styles.js +0 -26
  338. package/lib/components/molecules/ChatAIModal/components/ChatAiModalFooter/index.js +0 -2
  339. package/lib/components/molecules/ChatAIModal/components/ChatAiModalHeader/ChatAiModalHeader.js +0 -453
  340. package/lib/components/molecules/ChatAIModal/components/ChatAiModalHeader/ChatAiModalHeader.styles.js +0 -108
  341. package/lib/components/molecules/ChatAIModal/components/ChatAiModalHeader/index.js +0 -2
  342. package/lib/components/molecules/ChatAIModal/components/MaiaMinimizedPill/MaiaMinimizedPill.js +0 -48
  343. package/lib/components/molecules/ChatAIModal/components/MaiaMinimizedPill/MaiaMinimizedPill.styles.js +0 -38
  344. package/lib/components/molecules/ChatAIModal/components/MaiaMinimizedPill/index.js +0 -2
  345. package/lib/components/molecules/ChatAIModal/constants.js +0 -40
  346. package/lib/components/molecules/ChatAIModal/floatingPanelMotion/FloatingPanelMotion.js +0 -16
  347. package/lib/components/molecules/ChatAIModal/floatingPanelMotion/FloatingPanelMotion.styles.js +0 -12
  348. package/lib/components/molecules/ChatAIModal/floatingPanelMotion/constants.js +0 -13
  349. package/lib/components/molecules/ChatAIModal/floatingPanelMotion/index.js +0 -3
  350. package/lib/components/molecules/ChatAIModal/floatingPanelMotion/useFloatingPanelDragTilt.js +0 -57
  351. package/lib/components/molecules/ChatAIModal/index.js +0 -2
  352. package/lib/components/molecules/ChatAIModal/layout.js +0 -74
  353. package/lib/components/molecules/ChatAIMyAgents/ChatAIMyAgents.js +0 -457
  354. package/lib/components/molecules/ChatAIMyAgents/ChatAIMyAgents.styles.js +0 -218
  355. package/lib/components/molecules/ChatAIMySkills/ChatAIMySkills.js +0 -384
  356. package/lib/components/molecules/ChatAIMySkills/ChatAIMySkills.styles.js +0 -165
  357. package/lib/components/molecules/ChatAIMySkills/index.js +0 -2
  358. package/lib/components/molecules/ChatAIProjectSelector/ChatAIProjectSelector.js +0 -48
  359. package/lib/components/molecules/ChatAIProjectSelector/ChatAIProjectSelector.styles.js +0 -49
  360. package/lib/components/molecules/ChatAIProjectSelector/index.js +0 -2
  361. package/lib/components/molecules/ChatFooter/ChatFooter.js +0 -337
  362. package/lib/components/molecules/ChatFooter/ChatFooterCorAccess.js +0 -32
  363. package/lib/components/molecules/ChatFooter/ChatFooterCorAccess.styles.js +0 -14
  364. package/lib/components/molecules/ChatFooter/ChatFooterFaqs.js +0 -201
  365. package/lib/components/molecules/ChatFooter/ChatFooterFaqs.styles.js +0 -51
  366. package/lib/components/molecules/ChatFooter/index.js +0 -2
  367. package/lib/components/molecules/ChatFooter/styles.js +0 -23
  368. package/lib/components/molecules/ContextMentionInput/ContextMentionInput.js +0 -60
  369. package/lib/components/molecules/ContextMentionInput/ContextMentionInput.styles.js +0 -6
  370. package/lib/components/molecules/ContextMentionInput/index.js +0 -2
  371. package/lib/components/molecules/MessageFeedback/MessageFeedback.js +0 -118
  372. package/lib/components/molecules/MessageFeedback/index.js +0 -2
  373. package/lib/components/molecules/MessageFeedback/styles.js +0 -14
  374. package/lib/components/molecules/ProjectSummaryChat/ProjectSummaryChat.js +0 -127
  375. package/lib/components/molecules/ProjectSummaryChat/index.js +0 -2
  376. package/lib/components/molecules/ProjectSummaryChat/styles.js +0 -8
  377. package/lib/components/molecules/ProjectSummaryConfig/ProjectSummaryConfig.js +0 -152
  378. package/lib/components/molecules/ProjectSummaryConfig/index.js +0 -2
  379. package/lib/components/molecules/ProjectSummaryConfig/styles.js +0 -86
  380. package/lib/components/molecules/ProjectSummaryContent/ProjectSummaryContent.js +0 -49
  381. package/lib/components/molecules/ProjectSummaryContent/index.js +0 -2
  382. package/lib/components/molecules/ProjectSummaryModal/ProjectSummaryModal.js +0 -19
  383. package/lib/components/molecules/ProjectSummaryModal/index.js +0 -2
  384. package/lib/components/molecules/ProjectSummaryModal/styles.js +0 -2
  385. package/lib/components/molecules/Sidebar/Sidebar.js +0 -716
  386. package/lib/components/molecules/Sidebar/Sidebar.layout.styles.js +0 -157
  387. package/lib/components/molecules/Sidebar/Sidebar.skeleton.js +0 -48
  388. package/lib/components/molecules/Sidebar/Sidebar.styles.js +0 -75
  389. package/lib/components/molecules/Sidebar/index.js +0 -2
  390. package/lib/components/organisms/AbmAgentModal/AbmAgentModal.js +0 -1420
  391. package/lib/components/organisms/AbmAgentModal/AbmAgentModal.styles.js +0 -93
  392. package/lib/components/organisms/AbmAgentModal/index.js +0 -2
  393. package/lib/components/organisms/AbmSkillGenerateModal/AbmSkillGenerateModal.js +0 -182
  394. package/lib/components/organisms/AbmSkillGenerateModal/AbmSkillGenerateModal.styles.js +0 -34
  395. package/lib/components/organisms/AbmSkillGenerateModal/index.js +0 -2
  396. package/lib/components/organisms/AbmSkillModal/AbmSkillModal.js +0 -550
  397. package/lib/components/organisms/AbmSkillModal/AbmSkillModal.styles.js +0 -118
  398. package/lib/components/organisms/AbmSkillModal/index.js +0 -2
  399. package/lib/components/organisms/ChatAI/ChatAI.js +0 -167
  400. package/lib/components/organisms/ChatAI/index.js +0 -2
  401. package/lib/components/organisms/ChatAI/styles.js +0 -7
  402. package/lib/components/organisms/ClientAIButton/ClientAIButton.js +0 -23
  403. package/lib/components/organisms/ClientAIButton/index.js +0 -2
  404. package/lib/components/organisms/DeleteAgentModal/DeleteAgentModal.js +0 -86
  405. package/lib/components/organisms/DeleteAgentModal/DeleteAgentModal.styles.js +0 -39
  406. package/lib/components/organisms/DeleteAgentModal/index.js +0 -2
  407. package/lib/components/organisms/DeleteQuestionModal/DeleteQuestionModal.js +0 -122
  408. package/lib/components/organisms/DeleteQuestionModal/DeleteQuestionModal.styles.js +0 -47
  409. package/lib/components/organisms/DeleteQuestionModal/index.js +0 -2
  410. package/lib/components/organisms/EditQuestionModal/EditQuestionModal.js +0 -138
  411. package/lib/components/organisms/EditQuestionModal/EditQuestionModal.styles.js +0 -69
  412. package/lib/components/organisms/EditQuestionModal/index.js +0 -2
  413. package/lib/components/organisms/ModalFileExceeds/ModalFileExceeds.js +0 -113
  414. package/lib/components/organisms/ModalFileExceeds/ModalFileExceeds.styles.js +0 -54
  415. package/lib/components/organisms/ModalFileExceeds/index.js +0 -2
  416. package/lib/components/organisms/ProjectAIButton/ProjectAIButton.js +0 -26
  417. package/lib/components/organisms/ProjectAIButton/index.js +0 -2
  418. package/lib/components/organisms/ProjectSummary/ProjectSummary.js +0 -60
  419. package/lib/components/organisms/ProjectSummary/index.js +0 -2
  420. package/lib/components/organisms/ProjectSummary/styles.js +0 -7
  421. package/lib/components/organisms/SnackBar/Snackbar.interface.js +0 -2
  422. package/lib/components/organisms/SnackBar/Snackbar.js +0 -73
  423. package/lib/components/organisms/SnackBar/Snackbar.styles.js +0 -9
  424. package/lib/components/organisms/SnackBar/index.js +0 -2
  425. package/lib/components/organisms/SourcesInformation/SourceItem.js +0 -18
  426. package/lib/components/organisms/SourcesInformation/SourceItem.styles.js +0 -14
  427. package/lib/components/organisms/SourcesInformation/SourcesInformationModal.js +0 -66
  428. package/lib/components/organisms/SourcesInformation/SourcesInformationModal.styles.js +0 -27
  429. package/lib/components/organisms/SourcesInformation/index.js +0 -2
  430. package/lib/constants/config.js +0 -10
  431. package/lib/constants/formatExtensions.js +0 -55
  432. package/lib/constants/gqlClient.js +0 -4
  433. package/lib/constants/maiaHourAgentAccess.js +0 -15
  434. package/lib/constants/maiaTaskPanelAccess.js +0 -24
  435. package/lib/constants/maiaTaskPanelOutsideClick.js +0 -9
  436. package/lib/constants/maiaTaskPanelZIndex.js +0 -19
  437. package/lib/constants/permissions/config.js +0 -72
  438. package/lib/constants/permissions/index.js +0 -3
  439. package/lib/constants/permissions/types.js +0 -2
  440. package/lib/constants/permissions/utils.js +0 -18
  441. package/lib/constants/plannerSyncEvents.js +0 -15
  442. package/lib/constants/taskLinkIcon.js +0 -15
  443. package/lib/constants/taskUrls.js +0 -11
  444. package/lib/context/cor-user.js +0 -31
  445. package/lib/context/global-context.js +0 -39
  446. package/lib/dev/DevChatAI.js +0 -101
  447. package/lib/dev/DevContextMentionInput.js +0 -67
  448. package/lib/dev/ProjectSummary.js +0 -9
  449. package/lib/dev/Providers.js +0 -27
  450. package/lib/exports.js +0 -2
  451. package/lib/hooks/README.md +0 -192
  452. package/lib/hooks/index.js +0 -30
  453. package/lib/hooks/useAccessClient/index.js +0 -2
  454. package/lib/hooks/useAccessClient/useAccessClient.js +0 -81
  455. package/lib/hooks/useAgentModel/index.js +0 -2
  456. package/lib/hooks/useAgentModel/useAgentModel.js +0 -62
  457. package/lib/hooks/useAgentModel/useCreateAgent.js +0 -128
  458. package/lib/hooks/useAgentModel/useDeleteAgent.js +0 -88
  459. package/lib/hooks/useAgentModel/useUpdateAgent.js +0 -129
  460. package/lib/hooks/useAgentSuggestions.js +0 -60
  461. package/lib/hooks/useCaretPosition.js +0 -65
  462. package/lib/hooks/useChatManager/index.js +0 -2
  463. package/lib/hooks/useChatManager/useChatManager.interface.js +0 -2
  464. package/lib/hooks/useChatManager/useChatManager.js +0 -1782
  465. package/lib/hooks/useChatMessages/index.js +0 -2
  466. package/lib/hooks/useChatMessages/useChatMessages.interface.js +0 -2
  467. package/lib/hooks/useChatMessages/useChatMessages.js +0 -722
  468. package/lib/hooks/useChats/index.js +0 -2
  469. package/lib/hooks/useChats/useChats.interfaces.js +0 -2
  470. package/lib/hooks/useChats/useChats.js +0 -187
  471. package/lib/hooks/useClientSearch.js +0 -163
  472. package/lib/hooks/useContextMentions.js +0 -500
  473. package/lib/hooks/useContextPinPopover.js +0 -228
  474. package/lib/hooks/useDebounce.js +0 -18
  475. package/lib/hooks/useEntitySearch.js +0 -1053
  476. package/lib/hooks/useEvent.js +0 -93
  477. package/lib/hooks/useFrequentlyAskedQuestions.js +0 -150
  478. package/lib/hooks/useFrequentlyUsedActions.js +0 -94
  479. package/lib/hooks/useKnowledge/deleteKnowledge.js +0 -69
  480. package/lib/hooks/useKnowledge/downloadKnowledge.js +0 -81
  481. package/lib/hooks/useKnowledge/index.js +0 -4
  482. package/lib/hooks/useKnowledge/saveKnowledge.js +0 -107
  483. package/lib/hooks/useKnowledge/useKnowledgeOperations.js +0 -156
  484. package/lib/hooks/useMaiaTaskPanelZIndex.js +0 -17
  485. package/lib/hooks/useMentionAllowedTypes.js +0 -120
  486. package/lib/hooks/useMentionPopover.js +0 -342
  487. package/lib/hooks/useMinimizedPillBottomOffset.js +0 -110
  488. package/lib/hooks/useModal/index.js +0 -2
  489. package/lib/hooks/useModal/useModal.interfaces.js +0 -2
  490. package/lib/hooks/useModal/useModal.js +0 -47
  491. package/lib/hooks/useOnboardingNavigation.js +0 -20
  492. package/lib/hooks/useOrchestratorStream/index.js +0 -2
  493. package/lib/hooks/useOrchestratorStream/useOrchestratorStream.interface.js +0 -2
  494. package/lib/hooks/useOrchestratorStream/useOrchestratorStream.js +0 -269
  495. package/lib/hooks/useProjectSearch.js +0 -183
  496. package/lib/hooks/useProjectSummary.js +0 -101
  497. package/lib/hooks/useProjectSummaryConfig.js +0 -211
  498. package/lib/hooks/useProjects.js +0 -46
  499. package/lib/hooks/useRecentClientsSearch.js +0 -150
  500. package/lib/hooks/useRecentContexts.js +0 -86
  501. package/lib/hooks/useResize.js +0 -29
  502. package/lib/hooks/useSkillsCatalog.js +0 -66
  503. package/lib/hooks/useSlashCommands.js +0 -84
  504. package/lib/hooks/useSmoothStreamText/index.js +0 -2
  505. package/lib/hooks/useSmoothStreamText/useSmoothStreamText.js +0 -197
  506. package/lib/hooks/useSnackBarManager/useSnackBarManager.js +0 -41
  507. package/lib/hooks/useStreamResponse.js +0 -112
  508. package/lib/hooks/useStreamdownStyles.js +0 -13
  509. package/lib/hooks/useStreamingMessage/index.js +0 -2
  510. package/lib/hooks/useStreamingMessage/useStreamingMessage.js +0 -18
  511. package/lib/hooks/useT.js +0 -17
  512. package/lib/hooks/useTabTaskDefault.js +0 -33
  513. package/lib/hooks/useTaskPanel.js +0 -22
  514. package/lib/hooks/useTextOverflowEllipsisTooltip.js +0 -34
  515. package/lib/hooks/useToggle.js +0 -19
  516. package/lib/hooks/useToggleFavorite/index.js +0 -2
  517. package/lib/hooks/useToggleFavorite/useToggleFavorite.js +0 -83
  518. package/lib/index.css +0 -76
  519. package/lib/index.js +0 -30
  520. package/lib/lang/br/index.js +0 -783
  521. package/lib/lang/en/index.js +0 -783
  522. package/lib/lang/es/index.js +0 -784
  523. package/lib/lang/fr/index.js +0 -604
  524. package/lib/lang/index.js +0 -24
  525. package/lib/lang/utils.js +0 -33
  526. package/lib/mocks/mockChats.js +0 -395
  527. package/lib/mocks/mockOrchestrator.js +0 -5
  528. package/lib/mocks/mockProject.js +0 -11
  529. package/lib/mocks/mockProjectSummary.js +0 -6
  530. package/lib/mocks/mockedUser.js +0 -169
  531. package/lib/services/apolloClient.js +0 -3
  532. package/lib/services/appcues.js +0 -19
  533. package/lib/services/corpilot/ProjectSummary/getProjectSummary.js +0 -31
  534. package/lib/services/corpilot/ProjectSummary/index.js +0 -5
  535. package/lib/services/corpilot/client.js +0 -27
  536. package/lib/services/corpilot/index.js +0 -5
  537. package/lib/services/maia/Access/updateAccess.js +0 -59
  538. package/lib/services/maia/Actions/getFrequentlyUsedActions.js +0 -46
  539. package/lib/services/maia/Actions/getSlashCommands.js +0 -39
  540. package/lib/services/maia/Actions/index.js +0 -7
  541. package/lib/services/maia/Agents/createAgent.js +0 -39
  542. package/lib/services/maia/Agents/deleteAgent.js +0 -38
  543. package/lib/services/maia/Agents/fetchAgentDetail.js +0 -122
  544. package/lib/services/maia/Agents/getAgentById.js +0 -162
  545. package/lib/services/maia/Agents/getAgentModels.js +0 -112
  546. package/lib/services/maia/Agents/getAgentSuggestions.js +0 -44
  547. package/lib/services/maia/Agents/getAgents.js +0 -718
  548. package/lib/services/maia/Agents/setAgentToolGroups.js +0 -42
  549. package/lib/services/maia/Agents/toggleFavorite.js +0 -34
  550. package/lib/services/maia/Agents/updateAgent.js +0 -39
  551. package/lib/services/maia/Chats/deleteChat.js +0 -32
  552. package/lib/services/maia/Chats/getChatMessages.js +0 -144
  553. package/lib/services/maia/Chats/getChatsByUserId.js +0 -82
  554. package/lib/services/maia/Chats/index.js +0 -15
  555. package/lib/services/maia/Chats/markSessionAsRead.js +0 -32
  556. package/lib/services/maia/Chats/patchChat.js +0 -43
  557. package/lib/services/maia/Chats/wasHelpfulChat.js +0 -31
  558. package/lib/services/maia/Faqs/getFrequentlyAskedQuestions.js +0 -55
  559. package/lib/services/maia/Faqs/index.js +0 -5
  560. package/lib/services/maia/Knowledge/delete.js +0 -41
  561. package/lib/services/maia/Knowledge/download.js +0 -48
  562. package/lib/services/maia/Knowledge/index.js +0 -3
  563. package/lib/services/maia/Knowledge/save.js +0 -43
  564. package/lib/services/maia/Orchestrator/index.js +0 -7
  565. package/lib/services/maia/Orchestrator/orchestrator.js +0 -246
  566. package/lib/services/maia/RecentClients/getRecentClients.js +0 -43
  567. package/lib/services/maia/RecentClients/index.js +0 -6
  568. package/lib/services/maia/RecentContexts/getRecentContexts.js +0 -54
  569. package/lib/services/maia/RecentContexts/index.js +0 -6
  570. package/lib/services/maia/RecentProjects/getRecentProjects.js +0 -55
  571. package/lib/services/maia/RecentProjects/index.js +0 -6
  572. package/lib/services/maia/RecentTasks/getRecentTasks.js +0 -54
  573. package/lib/services/maia/RecentTasks/index.js +0 -6
  574. package/lib/services/maia/RecentUsers/getRecentUsers.js +0 -59
  575. package/lib/services/maia/RecentUsers/index.js +0 -6
  576. package/lib/services/maia/Skills/createSkill.js +0 -39
  577. package/lib/services/maia/Skills/deleteSkill.js +0 -38
  578. package/lib/services/maia/Skills/generateSkill.js +0 -41
  579. package/lib/services/maia/Skills/getSkills.js +0 -120
  580. package/lib/services/maia/Skills/updateSkill.js +0 -39
  581. package/lib/services/maia/client.js +0 -27
  582. package/lib/services/maia/index.js +0 -17
  583. package/lib/services/query/ClientSearchQuery.js +0 -5
  584. package/lib/services/query/entitySearchQuery.js +0 -18
  585. package/lib/services/query/index.js +0 -2
  586. package/lib/services/query/projectSearchByValueQuery.js +0 -5
  587. package/lib/services/query/taskUserTabQuery.js +0 -8
  588. package/lib/services/query/usersDirectoryQuery.js +0 -19
  589. package/lib/services/types.js +0 -6
  590. package/lib/services/utils/fetchCOR.js +0 -117
  591. package/lib/services/utils/getCookie.js +0 -10
  592. package/lib/services/utils/index.js +0 -3
  593. package/lib/services/utils/mapChatMessages.js +0 -287
  594. package/lib/services/utils/validateIsMaia.js +0 -4
  595. package/lib/store/chatsSidebarOptimistic.js +0 -92
  596. package/lib/store/chatsStore.types.js +0 -2
  597. package/lib/store/chatsStoreLifecycle.js +0 -8
  598. package/lib/store/faqsStore.types.js +0 -2
  599. package/lib/store/index.js +0 -4
  600. package/lib/store/maiaLastChatPersistence.js +0 -35
  601. package/lib/store/sessions/activeView.js +0 -22
  602. package/lib/store/sessions/index.js +0 -9
  603. package/lib/store/sessions/sessionHitlContext.js +0 -15
  604. package/lib/store/sessions/sessionNotificationSound.js +0 -57
  605. package/lib/store/sessions/sessionNotifications.js +0 -110
  606. package/lib/store/sessions/sessionNotifications.types.js +0 -2
  607. package/lib/store/sessions/sessionStreamManager.js +0 -715
  608. package/lib/store/sessions/sessionStreamingText.js +0 -80
  609. package/lib/store/sessions/sessions.types.js +0 -35
  610. package/lib/store/sessions/useSessionMeta.js +0 -39
  611. package/lib/store/sessions/useSessionStreamingText.js +0 -18
  612. package/lib/store/sessions/useSessionsStore.js +0 -197
  613. package/lib/store/useChatsStore.js +0 -387
  614. package/lib/store/useFaqsStore.js +0 -27
  615. package/lib/streamdownStyles.js +0 -9
  616. package/lib/styles/StyledCleanContainer.js +0 -7
  617. package/lib/styles/cascade.js +0 -14
  618. package/lib/styles/config.js +0 -47
  619. package/lib/styles/shared/scrollable.js +0 -3
  620. package/lib/styles/transitions.js +0 -21
  621. package/lib/types/Action.js +0 -2
  622. package/lib/types/AgentSuggestion.js +0 -2
  623. package/lib/types/Chat.js +0 -10
  624. package/lib/types/Client.js +0 -2
  625. package/lib/types/FrequentlyAskedQuestion.js +0 -2
  626. package/lib/types/Project.js +0 -2
  627. package/lib/types/ProjectSummaryConfigKeys.js +0 -9
  628. package/lib/types/Task.js +0 -2
  629. package/lib/types/agent.js +0 -2
  630. package/lib/types/agentModal.js +0 -2
  631. package/lib/types/contextMention.js +0 -37
  632. package/lib/types/global.d.js +0 -2
  633. package/lib/types/skill.js +0 -2
  634. package/lib/types/streamActivity.js +0 -2
  635. package/lib/types/userType.d.js +0 -2
  636. package/lib/utils/actionCategoryMap.js +0 -37
  637. package/lib/utils/actionIconMap.js +0 -61
  638. package/lib/utils/agentDisplayName.js +0 -42
  639. package/lib/utils/chatInputFiles.js +0 -52
  640. package/lib/utils/contextMentionIcons.js +0 -134
  641. package/lib/utils/contextMentionLabel.js +0 -4
  642. package/lib/utils/contextMentionTriggers.js +0 -51
  643. package/lib/utils/contextMentionTypeLabel.js +0 -17
  644. package/lib/utils/corConnectorMentionTypes.js +0 -41
  645. package/lib/utils/ensureStreamdownStyles.js +0 -21
  646. package/lib/utils/entityLinkRender.js +0 -135
  647. package/lib/utils/fileDownloadHelper.js +0 -40
  648. package/lib/utils/formatQuickActionMessage.js +0 -16
  649. package/lib/utils/formatUnreadCount.js +0 -6
  650. package/lib/utils/getUnitFileSize.js +0 -13
  651. package/lib/utils/hitlAnalytics.js +0 -65
  652. package/lib/utils/hoursPlannerQuickActionType.js +0 -64
  653. package/lib/utils/imagePreprocessor.js +0 -108
  654. package/lib/utils/index.js +0 -3
  655. package/lib/utils/maiaHostOpen.js +0 -19
  656. package/lib/utils/maiaStreamdownRehypePlugins.js +0 -27
  657. package/lib/utils/mapBackendLang.js +0 -8
  658. package/lib/utils/normalizeAgentConnectors.js +0 -70
  659. package/lib/utils/openTaskInCorPanel.js +0 -22
  660. package/lib/utils/orchestratorSubagents.js +0 -11
  661. package/lib/utils/renderContextMentions.js +0 -420
  662. package/lib/utils/retryCompletion.js +0 -85
  663. package/lib/utils/slashCommandMarker.js +0 -30
  664. package/lib/utils/sortManagerHoursHomeFuas.js +0 -14
  665. package/lib/utils/sseStreamContent.js +0 -17
  666. package/lib/utils/streamActivityMessages.js +0 -359
  667. package/lib/utils/validateTrimmedFields.js +0 -8
@@ -1,152 +0,0 @@
1
- import styled, { css } from 'styled-components';
2
- import { cascadeItem } from '../../../styles/cascade';
3
- import { dropdownIn } from '../../../styles/transitions';
4
- export var SCAGSWrapper = styled.div.withConfig({
5
- displayName: "AbmGeneralSectionstyles__SCAGSWrapper",
6
- componentId: "sc-tesimq-0"
7
- })(["display:flex;flex-direction:column;gap:18px;width:100%;overflow-y:", ";padding:12px 12px 12px 0px;flex-grow:1;"], function (_ref) {
8
- var openModalAiModel = _ref.openModalAiModel;
9
- return openModalAiModel ? 'hidden' : 'auto';
10
- });
11
- export var SCAGSGeneralCard = styled.div.withConfig({
12
- displayName: "AbmGeneralSectionstyles__SCAGSGeneralCard",
13
- componentId: "sc-tesimq-1"
14
- })(["display:flex;flex-direction:column;gap:18px;width:100%;background-color:#f9f9f9;padding:16px;border-radius:4px;", ""], function (_ref2) {
15
- var $index = _ref2.$index;
16
- return cascadeItem($index);
17
- });
18
- export var SCAGSFieldSurface = styled.div.withConfig({
19
- displayName: "AbmGeneralSectionstyles__SCAGSFieldSurface",
20
- componentId: "sc-tesimq-2"
21
- })(["width:100%;background-color:#fff;"]);
22
- export var SCAGSOptionalFields = styled.div.withConfig({
23
- displayName: "AbmGeneralSectionstyles__SCAGSOptionalFields",
24
- componentId: "sc-tesimq-3"
25
- })(["display:flex;flex-direction:column;gap:8px;width:100%;", ""], function (_ref3) {
26
- var $index = _ref3.$index;
27
- return cascadeItem($index);
28
- });
29
- export var SCAGSOptionalLabel = styled.span.withConfig({
30
- displayName: "AbmGeneralSectionstyles__SCAGSOptionalLabel",
31
- componentId: "sc-tesimq-4"
32
- })(["color:rgba(32,32,31,1);font-family:'Work Sans';font-size:16px;font-style:normal;font-weight:500;line-height:122%;"]);
33
- export var SCAGSNoModelsAvailable = styled.div.withConfig({
34
- displayName: "AbmGeneralSectionstyles__SCAGSNoModelsAvailable",
35
- componentId: "sc-tesimq-5"
36
- })(["padding:12px;text-align:center;color:#999;"]);
37
- export var SCAGSWrapperHeader = styled.div.withConfig({
38
- displayName: "AbmGeneralSectionstyles__SCAGSWrapperHeader",
39
- componentId: "sc-tesimq-6"
40
- })(["display:flex;flex-direction:column;", ""], function (_ref4) {
41
- var $index = _ref4.$index;
42
- return cascadeItem($index);
43
- });
44
- export var SCAGSWrapperHeaderTitle = styled.span.withConfig({
45
- displayName: "AbmGeneralSectionstyles__SCAGSWrapperHeaderTitle",
46
- componentId: "sc-tesimq-7"
47
- })(["display:flex;justify-content:space-between;align-items:center;font-size:20px;font-family:'Work Sans';color:rgba(32,32,31,1);font-weight:500;line-height:122%;"]);
48
- export var SCAGSWrapperHeaderTitleRequired = styled.span.withConfig({
49
- displayName: "AbmGeneralSectionstyles__SCAGSWrapperHeaderTitleRequired",
50
- componentId: "sc-tesimq-8"
51
- })(["color:#999;font-family:'Work Sans';font-size:12px;font-weight:400;line-height:130%;"]);
52
- export var SCAGSWrapperHeaderInfo = styled.span.withConfig({
53
- displayName: "AbmGeneralSectionstyles__SCAGSWrapperHeaderInfo",
54
- componentId: "sc-tesimq-9"
55
- })(["font-size:14px;font-family:'Work Sans';color:rgba(102,102,102,1);line-height:140%;"]);
56
- export var SCAGSWrapperSelector = styled.div.withConfig({
57
- displayName: "AbmGeneralSectionstyles__SCAGSWrapperSelector",
58
- componentId: "sc-tesimq-10"
59
- })(["display:flex;width:365px;[class*='SCSUTitle']{font-size:10px;line-height:120%;color:rgba(32,32,31,1);}[class*='SCSUPlaceholder']{font-size:14px;line-height:140%;font-family:'Work Sans';color:rgba(32,32,31,1);}[class*='SCSUWrapperChildren']{display:none;}"]);
60
- export var SCAGSSelectorModal = styled.div.withConfig({
61
- displayName: "AbmGeneralSectionstyles__SCAGSSelectorModal",
62
- componentId: "sc-tesimq-11"
63
- })(["position:fixed;left:", "px;width:", "px;top:", ";bottom:", ";z-index:", ";padding:4px;box-shadow:0px 4px 16px 0px rgba(18,18,18,0.24);border-radius:8px;font-size:14px;font-family:'Work Sans';line-height:140%;color:rgba(153,153,153,1);background-color:#ffffff;", " transform-origin:", ";"], function (_ref5) {
64
- var $left = _ref5.$left;
65
- return $left;
66
- }, function (_ref6) {
67
- var $width = _ref6.$width;
68
- return $width;
69
- }, function (_ref7) {
70
- var $top = _ref7.$top;
71
- return $top !== undefined ? "".concat($top, "px") : 'auto';
72
- }, function (_ref8) {
73
- var $bottom = _ref8.$bottom;
74
- return $bottom !== undefined ? "".concat($bottom, "px") : 'auto';
75
- }, function (_ref9) {
76
- var $zIndex = _ref9.$zIndex;
77
- return $zIndex;
78
- }, dropdownIn, function (_ref0) {
79
- var $placement = _ref0.$placement;
80
- return $placement === 'top' ? 'bottom center' : 'top center';
81
- });
82
- export var SCAGSSelectorModalContent = styled.div.withConfig({
83
- displayName: "AbmGeneralSectionstyles__SCAGSSelectorModalContent",
84
- componentId: "sc-tesimq-12"
85
- })(["max-height:232px;overflow-y:auto;display:flex;flex-direction:column;"]);
86
- export var SCAGSOption = styled.li.withConfig({
87
- displayName: "AbmGeneralSectionstyles__SCAGSOption",
88
- componentId: "sc-tesimq-13"
89
- })(["list-style:none;cursor:pointer;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:2px;padding:10px 8px;border-radius:4px;", " &:hover{background-color:rgba(240,240,240,1);}"], function (_ref1) {
90
- var isSelected = _ref1.isSelected;
91
- return isSelected && css(["background-color:rgba(225,244,255,1);&:hover{background-color:rgba(225,244,255,1) !important;cursor:default;}"]);
92
- });
93
- export var SCAGSOptionLabel = styled.span.withConfig({
94
- displayName: "AbmGeneralSectionstyles__SCAGSOptionLabel",
95
- componentId: "sc-tesimq-14"
96
- })(["color:", ";font-family:'Work Sans';font-size:14px;font-weight:400;line-height:20px;"], function (_ref10) {
97
- var isSelected = _ref10.isSelected;
98
- return isSelected ? 'rgba(0, 87, 140, 1)' : 'rgba(32, 32, 32, 1)';
99
- });
100
- export var SCAGSOptionDescription = styled.span.withConfig({
101
- displayName: "AbmGeneralSectionstyles__SCAGSOptionDescription",
102
- componentId: "sc-tesimq-15"
103
- })(["color:rgba(77,77,77,1);font-family:'Work Sans';font-size:12px;font-weight:400;line-height:16px;"]);
104
- export var SCAGSWrapperContent = styled.div.withConfig({
105
- displayName: "AbmGeneralSectionstyles__SCAGSWrapperContent",
106
- componentId: "sc-tesimq-16"
107
- })(["display:flex;flex-direction:row;gap:30px;"]);
108
- export var SCAGSWrapperEmoji = styled.div.withConfig({
109
- displayName: "AbmGeneralSectionstyles__SCAGSWrapperEmoji",
110
- componentId: "sc-tesimq-17"
111
- })(["display:flex;flex-direction:column;gap:8px;"]);
112
- export var SCAGSWrapperAddIcon = styled.div.withConfig({
113
- displayName: "AbmGeneralSectionstyles__SCAGSWrapperAddIcon",
114
- componentId: "sc-tesimq-18"
115
- })(["background-color:rgba(247,247,247,1);width:26px;height:26px;border-radius:50%;display:flex;justify-content:center;align-items:center;position:absolute;transition:all 0.3s ease-in-out;right:-8px;top:-5px;box-shadow:-1px 1px 1px 0px rgba(92,92,92,0.05);"]);
116
- export var SCAGSButtonEmoji = styled.button.withConfig({
117
- displayName: "AbmGeneralSectionstyles__SCAGSButtonEmoji",
118
- componentId: "sc-tesimq-19"
119
- })(["background-color:transparent;width:fit-content;border:none;cursor:pointer;z-index:1;:hover{", "{background-color:rgba(235,219,248,1);}}"], SCAGSWrapperAddIcon);
120
- export var SCAGSWrapperEmojiContent = styled.div.withConfig({
121
- displayName: "AbmGeneralSectionstyles__SCAGSWrapperEmojiContent",
122
- componentId: "sc-tesimq-20"
123
- })(["display:flex;align-items:center;position:relative;width:48px;height:48px;cursor:pointer;"]);
124
- export var SCAGSWrapperEmojiIcon = styled.div.withConfig({
125
- displayName: "AbmGeneralSectionstyles__SCAGSWrapperEmojiIcon",
126
- componentId: "sc-tesimq-21"
127
- })(["width:48px;height:48px;display:flex;background-color:rgba(247,247,247,1);justify-content:center;align-items:center;border-radius:50%;"]);
128
- export var SCAGSWrapperOnboardingContent = styled.div.withConfig({
129
- displayName: "AbmGeneralSectionstyles__SCAGSWrapperOnboardingContent",
130
- componentId: "sc-tesimq-22"
131
- })(["display:flex;align-items:center;gap:4px;color:#006faf;font-size:10px;font-family:'Work Sans';line-height:120%;width:fit-content;&:hover{cursor:pointer !important;color:#4dbdff;svg *:not(.no-fill){fill:#4dbdff !important;}}"]);
132
- export var SCAGSWrapperOnboarding = styled.div.withConfig({
133
- displayName: "AbmGeneralSectionstyles__SCAGSWrapperOnboarding",
134
- componentId: "sc-tesimq-23"
135
- })(["display:flex;flex-direction:column;gap:6px;"]);
136
- export var SCAGSWrapperOnboardingText = styled.span.withConfig({
137
- displayName: "AbmGeneralSectionstyles__SCAGSWrapperOnboardingText",
138
- componentId: "sc-tesimq-24"
139
- })(["color:#006faf;font-family:'Work Sans';font-size:10px;font-style:italic;font-weight:400;line-height:120%;letter-spacing:-0.1px;&:hover{cursor:pointer !important;color:#4dbdff;}"]);
140
- export var SCAGSWrapperHeaderCreatedByText = styled.span.withConfig({
141
- displayName: "AbmGeneralSectionstyles__SCAGSWrapperHeaderCreatedByText",
142
- componentId: "sc-tesimq-25"
143
- })(["display:none;font-size:12px;color:rgba(150,150,150,0.8);width:fit-content;cursor:pointer;"]);
144
- export var SCAGSWrapperHeaderCreatedByTextName = styled.span.withConfig({
145
- displayName: "AbmGeneralSectionstyles__SCAGSWrapperHeaderCreatedByTextName",
146
- componentId: "sc-tesimq-26"
147
- })(["font-style:italic;"]);
148
- export var SCAGSWrapperSpanTitle = styled.span.withConfig({
149
- displayName: "AbmGeneralSectionstyles__SCAGSWrapperSpanTitle",
150
- componentId: "sc-tesimq-27"
151
- })(["font-size:14px;color:rgba(32,32,31,1);line-height:140%;font-family:'Work Sans';"]);
152
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJzdHlsZWQiLCJjc3MiLCJjYXNjYWRlSXRlbSIsImRyb3Bkb3duSW4iLCJTQ0FHU1dyYXBwZXIiLCJkaXYiLCJ3aXRoQ29uZmlnIiwiZGlzcGxheU5hbWUiLCJjb21wb25lbnRJZCIsIl9yZWYiLCJvcGVuTW9kYWxBaU1vZGVsIiwiU0NBR1NHZW5lcmFsQ2FyZCIsIl9yZWYyIiwiJGluZGV4IiwiU0NBR1NGaWVsZFN1cmZhY2UiLCJTQ0FHU09wdGlvbmFsRmllbGRzIiwiX3JlZjMiLCJTQ0FHU09wdGlvbmFsTGFiZWwiLCJzcGFuIiwiU0NBR1NOb01vZGVsc0F2YWlsYWJsZSIsIlNDQUdTV3JhcHBlckhlYWRlciIsIl9yZWY0IiwiU0NBR1NXcmFwcGVySGVhZGVyVGl0bGUiLCJTQ0FHU1dyYXBwZXJIZWFkZXJUaXRsZVJlcXVpcmVkIiwiU0NBR1NXcmFwcGVySGVhZGVySW5mbyIsIlNDQUdTV3JhcHBlclNlbGVjdG9yIiwiU0NBR1NTZWxlY3Rvck1vZGFsIiwiX3JlZjUiLCIkbGVmdCIsIl9yZWY2IiwiJHdpZHRoIiwiX3JlZjciLCIkdG9wIiwidW5kZWZpbmVkIiwiY29uY2F0IiwiX3JlZjgiLCIkYm90dG9tIiwiX3JlZjkiLCIkekluZGV4IiwiX3JlZjAiLCIkcGxhY2VtZW50IiwiU0NBR1NTZWxlY3Rvck1vZGFsQ29udGVudCIsIlNDQUdTT3B0aW9uIiwibGkiLCJfcmVmMSIsImlzU2VsZWN0ZWQiLCJTQ0FHU09wdGlvbkxhYmVsIiwiX3JlZjEwIiwiU0NBR1NPcHRpb25EZXNjcmlwdGlvbiIsIlNDQUdTV3JhcHBlckNvbnRlbnQiLCJTQ0FHU1dyYXBwZXJFbW9qaSIsIlNDQUdTV3JhcHBlckFkZEljb24iLCJTQ0FHU0J1dHRvbkVtb2ppIiwiYnV0dG9uIiwiU0NBR1NXcmFwcGVyRW1vamlDb250ZW50IiwiU0NBR1NXcmFwcGVyRW1vamlJY29uIiwiU0NBR1NXcmFwcGVyT25ib2FyZGluZ0NvbnRlbnQiLCJTQ0FHU1dyYXBwZXJPbmJvYXJkaW5nIiwiU0NBR1NXcmFwcGVyT25ib2FyZGluZ1RleHQiLCJTQ0FHU1dyYXBwZXJIZWFkZXJDcmVhdGVkQnlUZXh0IiwiU0NBR1NXcmFwcGVySGVhZGVyQ3JlYXRlZEJ5VGV4dE5hbWUiLCJTQ0FHU1dyYXBwZXJTcGFuVGl0bGUiXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50cy9tb2xlY3VsZXMvQWJtU2VjdGlvbi9BYm1HZW5lcmFsU2VjdGlvbi5zdHlsZXMudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBzdHlsZWQsIHsgY3NzIH0gZnJvbSAnc3R5bGVkLWNvbXBvbmVudHMnXG5pbXBvcnQgeyBjYXNjYWRlSXRlbSB9IGZyb20gJy4uLy4uLy4uL3N0eWxlcy9jYXNjYWRlJ1xuaW1wb3J0IHsgZHJvcGRvd25JbiB9IGZyb20gJy4uLy4uLy4uL3N0eWxlcy90cmFuc2l0aW9ucydcblxuZXhwb3J0IGNvbnN0IFNDQUdTV3JhcHBlciA9IHN0eWxlZC5kaXY8eyBvcGVuTW9kYWxBaU1vZGVsOiBib29sZWFuIH0+YFxuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBnYXA6IDE4cHg7XG4gIHdpZHRoOiAxMDAlO1xuICBvdmVyZmxvdy15OiAkeyh7IG9wZW5Nb2RhbEFpTW9kZWwgfSkgPT4gKG9wZW5Nb2RhbEFpTW9kZWwgPyAnaGlkZGVuJyA6ICdhdXRvJyl9O1xuICBwYWRkaW5nOiAxMnB4IDEycHggMTJweCAwcHg7XG4gIGZsZXgtZ3JvdzogMTtcbmBcblxuZXhwb3J0IGNvbnN0IFNDQUdTR2VuZXJhbENhcmQgPSBzdHlsZWQuZGl2PHsgJGluZGV4PzogbnVtYmVyIH0+YFxuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBnYXA6IDE4cHg7XG4gIHdpZHRoOiAxMDAlO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjlmOWY5O1xuICBwYWRkaW5nOiAxNnB4O1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICR7KHsgJGluZGV4IH0pID0+IGNhc2NhZGVJdGVtKCRpbmRleCl9XG5gXG5cbmV4cG9ydCBjb25zdCBTQ0FHU0ZpZWxkU3VyZmFjZSA9IHN0eWxlZC5kaXZgXG4gIHdpZHRoOiAxMDAlO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuYFxuXG5leHBvcnQgY29uc3QgU0NBR1NPcHRpb25hbEZpZWxkcyA9IHN0eWxlZC5kaXY8eyAkaW5kZXg/OiBudW1iZXIgfT5gXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGdhcDogOHB4O1xuICB3aWR0aDogMTAwJTtcbiAgJHsoeyAkaW5kZXggfSkgPT4gY2FzY2FkZUl0ZW0oJGluZGV4KX1cbmBcblxuZXhwb3J0IGNvbnN0IFNDQUdTT3B0aW9uYWxMYWJlbCA9IHN0eWxlZC5zcGFuYFxuICBjb2xvcjogcmdiYSgzMiwgMzIsIDMxLCAxKTtcbiAgZm9udC1mYW1pbHk6ICdXb3JrIFNhbnMnO1xuICBmb250LXNpemU6IDE2cHg7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgbGluZS1oZWlnaHQ6IDEyMiU7XG5gXG5cbmV4cG9ydCBjb25zdCBTQ0FHU05vTW9kZWxzQXZhaWxhYmxlID0gc3R5bGVkLmRpdmBcbiAgcGFkZGluZzogMTJweDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBjb2xvcjogIzk5OTtcbmBcblxuZXhwb3J0IGNvbnN0IFNDQUdTV3JhcHBlckhlYWRlciA9IHN0eWxlZC5kaXY8eyAkaW5kZXg/OiBudW1iZXIgfT5gXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICR7KHsgJGluZGV4IH0pID0+IGNhc2NhZGVJdGVtKCRpbmRleCl9XG5gXG5cbmV4cG9ydCBjb25zdCBTQ0FHU1dyYXBwZXJIZWFkZXJUaXRsZSA9IHN0eWxlZC5zcGFuYFxuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGZvbnQtc2l6ZTogMjBweDtcbiAgZm9udC1mYW1pbHk6ICdXb3JrIFNhbnMnO1xuICBjb2xvcjogcmdiYSgzMiwgMzIsIDMxLCAxKTtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgbGluZS1oZWlnaHQ6IDEyMiU7XG5gXG5cbmV4cG9ydCBjb25zdCBTQ0FHU1dyYXBwZXJIZWFkZXJUaXRsZVJlcXVpcmVkID0gc3R5bGVkLnNwYW5gXG4gIGNvbG9yOiAjOTk5O1xuICBmb250LWZhbWlseTogJ1dvcmsgU2Fucyc7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgbGluZS1oZWlnaHQ6IDEzMCU7XG5gXG5cbmV4cG9ydCBjb25zdCBTQ0FHU1dyYXBwZXJIZWFkZXJJbmZvID0gc3R5bGVkLnNwYW5gXG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgZm9udC1mYW1pbHk6ICdXb3JrIFNhbnMnO1xuICBjb2xvcjogcmdiYSgxMDIsIDEwMiwgMTAyLCAxKTtcbiAgbGluZS1oZWlnaHQ6IDE0MCU7XG5gXG5cbmV4cG9ydCBjb25zdCBTQ0FHU1dyYXBwZXJTZWxlY3RvciA9IHN0eWxlZC5kaXZgXG4gIGRpc3BsYXk6IGZsZXg7XG4gIHdpZHRoOiAzNjVweDtcbiAgW2NsYXNzKj0nU0NTVVRpdGxlJ10ge1xuICAgIGZvbnQtc2l6ZTogMTBweDtcbiAgICBsaW5lLWhlaWdodDogMTIwJTtcbiAgICBjb2xvcjogcmdiYSgzMiwgMzIsIDMxLCAxKTtcbiAgfVxuICBbY2xhc3MqPSdTQ1NVUGxhY2Vob2xkZXInXSB7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIGxpbmUtaGVpZ2h0OiAxNDAlO1xuICAgIGZvbnQtZmFtaWx5OiAnV29yayBTYW5zJztcbiAgICBjb2xvcjogcmdiYSgzMiwgMzIsIDMxLCAxKTtcbiAgfVxuICAvKiBFbCBtZW7DuiByZWFsIHNlIHBvcnRhIGEgYm9keTsgb2N1bHRhbW9zIGVsIHBhbmVsIGludGVybm8gZGUgQ1VTZWxlY3QuICovXG4gIFtjbGFzcyo9J1NDU1VXcmFwcGVyQ2hpbGRyZW4nXSB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuYFxuXG5leHBvcnQgY29uc3QgU0NBR1NTZWxlY3Rvck1vZGFsID0gc3R5bGVkLmRpdjx7XG4gICRsZWZ0OiBudW1iZXJcbiAgJHdpZHRoOiBudW1iZXJcbiAgJHRvcD86IG51bWJlclxuICAkYm90dG9tPzogbnVtYmVyXG4gICR6SW5kZXg6IG51bWJlclxuICAkcGxhY2VtZW50OiAndG9wJyB8ICdib3R0b20nXG59PmBcbiAgcG9zaXRpb246IGZpeGVkO1xuICBsZWZ0OiAkeyh7ICRsZWZ0IH0pID0+ICRsZWZ0fXB4O1xuICB3aWR0aDogJHsoeyAkd2lkdGggfSkgPT4gJHdpZHRofXB4O1xuICB0b3A6ICR7KHsgJHRvcCB9KSA9PiAoJHRvcCAhPT0gdW5kZWZpbmVkID8gYCR7JHRvcH1weGAgOiAnYXV0bycpfTtcbiAgYm90dG9tOiAkeyh7ICRib3R0b20gfSkgPT4gKCRib3R0b20gIT09IHVuZGVmaW5lZCA/IGAkeyRib3R0b219cHhgIDogJ2F1dG8nKX07XG4gIHotaW5kZXg6ICR7KHsgJHpJbmRleCB9KSA9PiAkekluZGV4fTtcbiAgcGFkZGluZzogNHB4O1xuICBib3gtc2hhZG93OiAwcHggNHB4IDE2cHggMHB4IHJnYmEoMTgsIDE4LCAxOCwgMC4yNCk7XG4gIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBmb250LWZhbWlseTogJ1dvcmsgU2Fucyc7XG4gIGxpbmUtaGVpZ2h0OiAxNDAlO1xuICBjb2xvcjogcmdiYSgxNTMsIDE1MywgMTUzLCAxKTtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZjtcbiAgJHtkcm9wZG93bklufVxuICB0cmFuc2Zvcm0tb3JpZ2luOiAkeyh7ICRwbGFjZW1lbnQgfSkgPT4gKCRwbGFjZW1lbnQgPT09ICd0b3AnID8gJ2JvdHRvbSBjZW50ZXInIDogJ3RvcCBjZW50ZXInKX07XG5gXG5cbmV4cG9ydCBjb25zdCBTQ0FHU1NlbGVjdG9yTW9kYWxDb250ZW50ID0gc3R5bGVkLmRpdmBcbiAgbWF4LWhlaWdodDogMjMycHg7XG4gIG92ZXJmbG93LXk6IGF1dG87XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5gXG5cbmV4cG9ydCBjb25zdCBTQ0FHU09wdGlvbiA9IHN0eWxlZC5saTx7IGlzU2VsZWN0ZWQ6IGJvb2xlYW4gfT5gXG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBnYXA6IDJweDtcbiAgcGFkZGluZzogMTBweCA4cHg7XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgJHsoeyBpc1NlbGVjdGVkIH0pID0+XG4gICAgaXNTZWxlY3RlZCAmJlxuICAgIGNzc2BcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjI1LCAyNDQsIDI1NSwgMSk7XG4gICAgICAmOmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyMjUsIDI0NCwgMjU1LCAxKSAhaW1wb3J0YW50O1xuICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gICAgICB9XG4gICAgYH1cbiAgJjpob3ZlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNDAsIDI0MCwgMjQwLCAxKTtcbiAgfVxuYFxuXG5leHBvcnQgY29uc3QgU0NBR1NPcHRpb25MYWJlbCA9IHN0eWxlZC5zcGFuPHsgaXNTZWxlY3RlZDogYm9vbGVhbiB9PmBcbiAgY29sb3I6ICR7KHsgaXNTZWxlY3RlZCB9KSA9PiAoaXNTZWxlY3RlZCA/ICdyZ2JhKDAsIDg3LCAxNDAsIDEpJyA6ICdyZ2JhKDMyLCAzMiwgMzIsIDEpJyl9O1xuICBmb250LWZhbWlseTogJ1dvcmsgU2Fucyc7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgbGluZS1oZWlnaHQ6IDIwcHg7XG5gXG5cbmV4cG9ydCBjb25zdCBTQ0FHU09wdGlvbkRlc2NyaXB0aW9uID0gc3R5bGVkLnNwYW5gXG4gIGNvbG9yOiByZ2JhKDc3LCA3NywgNzcsIDEpO1xuICBmb250LWZhbWlseTogJ1dvcmsgU2Fucyc7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgbGluZS1oZWlnaHQ6IDE2cHg7XG5gXG5cbmV4cG9ydCBjb25zdCBTQ0FHU1dyYXBwZXJDb250ZW50ID0gc3R5bGVkLmRpdmBcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgZ2FwOiAzMHB4O1xuYFxuXG5leHBvcnQgY29uc3QgU0NBR1NXcmFwcGVyRW1vamkgPSBzdHlsZWQuZGl2YFxuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBnYXA6IDhweDtcbmBcblxuZXhwb3J0IGNvbnN0IFNDQUdTV3JhcHBlckFkZEljb24gPSBzdHlsZWQuZGl2YFxuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI0NywgMjQ3LCAyNDcsIDEpO1xuICB3aWR0aDogMjZweDtcbiAgaGVpZ2h0OiAyNnB4O1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2UtaW4tb3V0O1xuICByaWdodDogLThweDtcbiAgdG9wOiAtNXB4O1xuICBib3gtc2hhZG93OiAtMXB4IDFweCAxcHggMHB4IHJnYmEoOTIsIDkyLCA5MiwgMC4wNSk7XG5gXG5cbmV4cG9ydCBjb25zdCBTQ0FHU0J1dHRvbkVtb2ppID0gc3R5bGVkLmJ1dHRvbmBcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIHdpZHRoOiBmaXQtY29udGVudDtcbiAgYm9yZGVyOiBub25lO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHotaW5kZXg6IDE7XG4gIDpob3ZlciB7XG4gICAgJHtTQ0FHU1dyYXBwZXJBZGRJY29ufSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDIzNSwgMjE5LCAyNDgsIDEpO1xuICAgIH1cbiAgfVxuYFxuXG5leHBvcnQgY29uc3QgU0NBR1NXcmFwcGVyRW1vamlDb250ZW50ID0gc3R5bGVkLmRpdmBcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB3aWR0aDogNDhweDtcbiAgaGVpZ2h0OiA0OHB4O1xuICBjdXJzb3I6IHBvaW50ZXI7XG5gXG5cbmV4cG9ydCBjb25zdCBTQ0FHU1dyYXBwZXJFbW9qaUljb24gPSBzdHlsZWQuZGl2YFxuICB3aWR0aDogNDhweDtcbiAgaGVpZ2h0OiA0OHB4O1xuICBkaXNwbGF5OiBmbGV4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI0NywgMjQ3LCAyNDcsIDEpO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuYFxuXG5leHBvcnQgY29uc3QgU0NBR1NXcmFwcGVyT25ib2FyZGluZ0NvbnRlbnQgPSBzdHlsZWQuZGl2YFxuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDRweDtcbiAgY29sb3I6ICMwMDZmYWY7XG4gIGZvbnQtc2l6ZTogMTBweDtcbiAgZm9udC1mYW1pbHk6ICdXb3JrIFNhbnMnO1xuICBsaW5lLWhlaWdodDogMTIwJTtcbiAgd2lkdGg6IGZpdC1jb250ZW50O1xuICAmOmhvdmVyIHtcbiAgICBjdXJzb3I6IHBvaW50ZXIgIWltcG9ydGFudDtcbiAgICBjb2xvcjogIzRkYmRmZjtcbiAgICBzdmcgKjpub3QoLm5vLWZpbGwpIHtcbiAgICAgIGZpbGw6ICM0ZGJkZmYgIWltcG9ydGFudDtcbiAgICB9XG4gIH1cbmBcblxuZXhwb3J0IGNvbnN0IFNDQUdTV3JhcHBlck9uYm9hcmRpbmcgPSBzdHlsZWQuZGl2YFxuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBnYXA6IDZweDtcbmBcblxuZXhwb3J0IGNvbnN0IFNDQUdTV3JhcHBlck9uYm9hcmRpbmdUZXh0ID0gc3R5bGVkLnNwYW5gXG4gIGNvbG9yOiAjMDA2ZmFmO1xuICBmb250LWZhbWlseTogJ1dvcmsgU2Fucyc7XG4gIGZvbnQtc2l6ZTogMTBweDtcbiAgZm9udC1zdHlsZTogaXRhbGljO1xuICBmb250LXdlaWdodDogNDAwO1xuICBsaW5lLWhlaWdodDogMTIwJTtcbiAgbGV0dGVyLXNwYWNpbmc6IC0wLjFweDtcbiAgJjpob3ZlciB7XG4gICAgY3Vyc29yOiBwb2ludGVyICFpbXBvcnRhbnQ7XG4gICAgY29sb3I6ICM0ZGJkZmY7XG4gIH1cbmBcblxuZXhwb3J0IGNvbnN0IFNDQUdTV3JhcHBlckhlYWRlckNyZWF0ZWRCeVRleHQgPSBzdHlsZWQuc3BhbmBcbiAgZGlzcGxheTogbm9uZTtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBjb2xvcjogcmdiYSgxNTAsIDE1MCwgMTUwLCAwLjgpO1xuICB3aWR0aDogZml0LWNvbnRlbnQ7XG4gIGN1cnNvcjogcG9pbnRlcjtcbmBcblxuZXhwb3J0IGNvbnN0IFNDQUdTV3JhcHBlckhlYWRlckNyZWF0ZWRCeVRleHROYW1lID0gc3R5bGVkLnNwYW5gXG4gIGZvbnQtc3R5bGU6IGl0YWxpYztcbmBcblxuZXhwb3J0IGNvbnN0IFNDQUdTV3JhcHBlclNwYW5UaXRsZSA9IHN0eWxlZC5zcGFuYFxuICBmb250LXNpemU6IDE0cHg7XG4gIGNvbG9yOiByZ2JhKDMyLCAzMiwgMzEsIDEpO1xuICBsaW5lLWhlaWdodDogMTQwJTtcbiAgZm9udC1mYW1pbHk6ICdXb3JrIFNh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
@@ -1,374 +0,0 @@
1
- import _toConsumableArray from "@babel/runtime/helpers/toConsumableArray";
2
- import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
3
- /* eslint-disable jsx-a11y/click-events-have-key-events */
4
- /* eslint-disable jsx-a11y/no-static-element-interactions */
5
- /* eslint-disable no-console */
6
- /* eslint-disable no-plusplus */
7
- /* eslint-disable react/no-array-index-key */
8
- /* eslint-disable import/no-cycle */
9
- /* eslint-disable @typescript-eslint/no-explicit-any */
10
- /* eslint-disable jsx-a11y/anchor-is-valid */
11
- /* eslint-disable no-unused-vars */
12
- import { Tooltip } from '@projectcor/tooltipv2/lib/components/Tooltip';
13
- import { FileUpload } from '@projectcor/icons/lib/components/FileUpload';
14
- import { Open } from '@projectcor/icons/lib/components/Open';
15
- import { useEffect, useRef, useState } from 'react';
16
- import { useTranslation } from 'react-i18next';
17
- import { AttachmentCard } from '../../atoms/AttachmentCard/AttachmentCard';
18
- import { AttachmentPreviewModal } from '../../atoms/AttachmentPreviewModal';
19
- import { SCAKSWrapper, SCAKSWrapperHeader, SCAKSWrapperContent, SCAKSWrapperHeaderTitle, SCAKSWrapperHeaderInfo, SCAKSFileUploadWrapperContent, SCAKSAttachmentsWrapper, SCAKSMoreInfoSpan, SCAKSMoreInfoIconWrapper, SCAKSDropZone, SCAKSDropZoneIcon, SCAKSDropZoneText, SCAKSDropZoneInfo, SCAKSDropZoneTextSpan } from './AbmKnowledgeSection.styles';
20
- import { useDownloadKnowledge } from '../../../hooks/useKnowledge/downloadKnowledge';
21
- import { useOnboardingNavigation } from '../../../hooks/useOnboardingNavigation';
22
- import { ModalFileExceeds } from '../../organisms/ModalFileExceeds/ModalFileExceeds';
23
- import { allowedFileTypesForKnowledge, fileTypes } from '../../../constants/formatExtensions';
24
- import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
25
- function getUniqueString(prevStrings, stringToChange) {
26
- var _stringToChange$split = stringToChange.split('.'),
27
- _stringToChange$split2 = _slicedToArray(_stringToChange$split, 2),
28
- filename = _stringToChange$split2[0],
29
- _stringToChange$split3 = _stringToChange$split2[1],
30
- extension = _stringToChange$split3 === void 0 ? '' : _stringToChange$split3;
31
- var ext = extension ? ".".concat(extension) : '';
32
- if (!(prevStrings !== null && prevStrings !== void 0 && prevStrings.includes(stringToChange))) {
33
- return stringToChange;
34
- }
35
- var counter = 1;
36
- var newFilename;
37
- do {
38
- newFilename = "".concat(filename, "(").concat(counter, ")").concat(ext);
39
- counter++;
40
- } while (prevStrings !== null && prevStrings !== void 0 && prevStrings.includes(newFilename));
41
- return newFilename;
42
- }
43
- var MAX_TOTAL_SIZE = 5 * 1024 * 1024; // 5MB total
44
-
45
- export var AbmKnowledgeSection = function AbmKnowledgeSection(_ref) {
46
- var handleSetAgentValues = _ref.handleSetAgentValues,
47
- values = _ref.values,
48
- onFileErrorChange = _ref.onFileErrorChange,
49
- tooltipZIndex = _ref.tooltipZIndex;
50
- var _useState = useState(values.knowledge || []),
51
- _useState2 = _slicedToArray(_useState, 2),
52
- localAttachments = _useState2[0],
53
- setLocalAttachments = _useState2[1];
54
- var _useState3 = useState(null),
55
- _useState4 = _slicedToArray(_useState3, 2),
56
- previewAttachment = _useState4[0],
57
- setPreviewAttachment = _useState4[1];
58
- var _useTranslation = useTranslation('abm_agent_section'),
59
- t = _useTranslation.t;
60
- var _useState5 = useState({
61
- isOpen: false,
62
- excludedFiles: [],
63
- exceededFiles: [],
64
- invalidExtensionFiles: []
65
- }),
66
- _useState6 = _slicedToArray(_useState5, 2),
67
- modalProps = _useState6[0],
68
- setModalProps = _useState6[1];
69
- var _useDownloadKnowledge = useDownloadKnowledge(),
70
- handleDownloadKnowledge = _useDownloadKnowledge.handleDownloadKnowledge,
71
- isDownloadingSuccess = _useDownloadKnowledge.success,
72
- isDownloadingError = _useDownloadKnowledge.error,
73
- isDownloading = _useDownloadKnowledge.isLoading,
74
- handleResetStates = _useDownloadKnowledge.handleResetStates;
75
- var _useOnboardingNavigat = useOnboardingNavigation(),
76
- handleOnboardingNavigation = _useOnboardingNavigat.handleOnboardingNavigation;
77
- var fileInputRef = useRef(null);
78
- var _useState7 = useState(false),
79
- _useState8 = _slicedToArray(_useState7, 2),
80
- isDragging = _useState8[0],
81
- setIsDragging = _useState8[1];
82
-
83
- // Calcular el tamaño total actual de archivos
84
- var currentTotalSize = (localAttachments || []).reduce(function (total, attachment) {
85
- var size = typeof attachment.size === 'number' ? attachment.size : Number(attachment.size);
86
- return total + (Number.isNaN(size) ? 0 : size);
87
- }, 0);
88
- var isAtSizeLimit = currentTotalSize >= MAX_TOTAL_SIZE;
89
- var handleAttachClick = function handleAttachClick() {
90
- var _fileInputRef$current;
91
- if (isAtSizeLimit) {
92
- return;
93
- }
94
- (_fileInputRef$current = fileInputRef.current) === null || _fileInputRef$current === void 0 || _fileInputRef$current.click();
95
- };
96
- var handleFileSelect = function handleFileSelect(e) {
97
- var files = e.target.files;
98
- if (!files) return;
99
- var exceededFiles = [];
100
- var excludedFiles = [];
101
- var invalidExtensionFiles = [];
102
- var insertedFiles = [];
103
- var attachmentsNames = (localAttachments || []).map(function (attachment) {
104
- return attachment.name;
105
- });
106
-
107
- // Calcular el tamaño total actual de archivos ya adjuntos
108
- var existingTotalSize = (localAttachments || []).reduce(function (total, attachment) {
109
- var size = typeof attachment.size === 'number' ? attachment.size : Number(attachment.size);
110
- return total + (Number.isNaN(size) ? 0 : size);
111
- }, 0);
112
- var runningTotalSize = existingTotalSize;
113
- Array.from(files).forEach(function (file) {
114
- var _fileNameParts$pop;
115
- var fileNameParts = file.name.split('.');
116
- var fileExtension = fileNameParts.length > 1 ? ".".concat((_fileNameParts$pop = fileNameParts.pop()) === null || _fileNameParts$pop === void 0 ? void 0 : _fileNameParts$pop.toLowerCase()) : '';
117
- if (!allowedFileTypesForKnowledge.includes(fileExtension)) {
118
- invalidExtensionFiles.push(file.name);
119
- return;
120
- }
121
-
122
- // Verificar si agregar este archivo excedería el límite total de 5MB
123
- var newTotalSize = runningTotalSize + file.size;
124
- if (newTotalSize > MAX_TOTAL_SIZE) {
125
- exceededFiles.push(file.name);
126
- return;
127
- }
128
- var typeFile = file.type || fileTypes[fileExtension];
129
- var uniqueName = getUniqueString(attachmentsNames, file.name);
130
- var parsedFile = new File([file], uniqueName, {
131
- type: typeFile
132
- });
133
- var attachmentFile = {
134
- file: parsedFile,
135
- id: "".concat(Date.now(), "-").concat(Math.random()),
136
- name: uniqueName,
137
- size: file.size,
138
- type: typeFile,
139
- status: 'started'
140
- };
141
-
142
- // Solo agregar el archivo si no está en la lista de archivos excedidos
143
- if (!exceededFiles.includes(file.name)) {
144
- insertedFiles.push(attachmentFile);
145
- // Actualizar el tamaño total para la siguiente validación
146
- runningTotalSize += file.size;
147
- }
148
- });
149
-
150
- // Mostrar modal si hay archivos con extensión inválida o que exceden el límite
151
- var hasErrors = invalidExtensionFiles.length > 0 || exceededFiles.length > 0;
152
- if (hasErrors) {
153
- setModalProps({
154
- isOpen: true,
155
- excludedFiles: excludedFiles,
156
- exceededFiles: exceededFiles,
157
- invalidExtensionFiles: invalidExtensionFiles
158
- });
159
- onFileErrorChange === null || onFileErrorChange === void 0 || onFileErrorChange(true);
160
- } else {
161
- onFileErrorChange === null || onFileErrorChange === void 0 || onFileErrorChange(false);
162
- }
163
-
164
- // Solo agregar archivos válidos que no excedan el límite
165
- if (insertedFiles.length) {
166
- handleSetAgentValues === null || handleSetAgentValues === void 0 || handleSetAgentValues({
167
- key: 'knowledge',
168
- value: insertedFiles
169
- });
170
- setLocalAttachments(function (prev) {
171
- return [].concat(_toConsumableArray(prev || []), insertedFiles);
172
- });
173
- }
174
- };
175
- var handleDragEnter = function handleDragEnter(e) {
176
- e.preventDefault();
177
- e.stopPropagation();
178
- if (!isAtSizeLimit) {
179
- setIsDragging(true);
180
- }
181
- };
182
- var handleDragLeave = function handleDragLeave(e) {
183
- e.preventDefault();
184
- e.stopPropagation();
185
- setIsDragging(false);
186
- };
187
- var handleDragOver = function handleDragOver(e) {
188
- e.preventDefault();
189
- e.stopPropagation();
190
- };
191
- var handleDrop = function handleDrop(e) {
192
- e.preventDefault();
193
- e.stopPropagation();
194
- setIsDragging(false);
195
- if (isAtSizeLimit) {
196
- return;
197
- }
198
- var files = e.dataTransfer.files;
199
- if (!files || files.length === 0) {
200
- return;
201
- }
202
-
203
- // Crear un evento sintético para reutilizar la lógica de handleFileSelect
204
- var syntheticEvent = {
205
- target: {
206
- files: files
207
- }
208
- };
209
- handleFileSelect(syntheticEvent);
210
- };
211
- var handleDeleteAttachment = function handleDeleteAttachment(id) {
212
- var fileToDelete = localAttachments[id];
213
- if (!fileToDelete) return;
214
- var newAttachments = (localAttachments || []).filter(function (_, index) {
215
- return index !== id;
216
- });
217
- setLocalAttachments(newAttachments);
218
- handleSetAgentValues === null || handleSetAgentValues === void 0 || handleSetAgentValues({
219
- key: 'knowledge',
220
- value: newAttachments,
221
- deleteKnowledge: true
222
- });
223
- onFileErrorChange === null || onFileErrorChange === void 0 || onFileErrorChange(false);
224
- };
225
- var handleDownloadAttachment = function handleDownloadAttachment(id) {
226
- var file = (localAttachments || [])[id];
227
- if (!file) return;
228
- handleDownloadKnowledge({
229
- agentId: values.general.id.toString(),
230
- knowledgeId: file.id
231
- });
232
- };
233
- useEffect(function () {
234
- if (isDownloadingSuccess && !isDownloadingError && !isDownloading) {
235
- var url = URL.createObjectURL(isDownloadingSuccess.blob);
236
- var link = document.createElement('a');
237
- link.href = url;
238
- link.download = isDownloadingSuccess.filename;
239
- link.style.display = 'none';
240
- document.body.appendChild(link);
241
- link.click();
242
- setTimeout(function () {
243
- document.body.removeChild(link);
244
- URL.revokeObjectURL(url);
245
- handleResetStates();
246
- }, 100);
247
- }
248
- }, [isDownloadingSuccess, isDownloadingError, isDownloading, handleResetStates]);
249
- var handleAction = function handleAction(_ref2) {
250
- var id = _ref2.id,
251
- action = _ref2.action;
252
- if (isDownloading) return;
253
- if (action === 'delete') {
254
- handleDeleteAttachment(id);
255
- return;
256
- }
257
- if (action === 'download') {
258
- handleDownloadAttachment(id);
259
- }
260
- };
261
- var handleAttachmentClick = function handleAttachmentClick(attachment) {
262
- // Permitir previsualización si tiene archivo local o URLs del backend
263
- // Solo si no tiene errores (status !== 'failed')
264
- if (attachment.status === 'failed') {
265
- return;
266
- }
267
- if (attachment.file instanceof File || attachment.originalFile instanceof File || attachment.url_thumbnail || attachment.url_original || attachment.url_file) {
268
- setPreviewAttachment(attachment);
269
- }
270
- };
271
- var handleClosePreview = function handleClosePreview() {
272
- setPreviewAttachment(null);
273
- };
274
- return /*#__PURE__*/_jsxs(_Fragment, {
275
- children: [/*#__PURE__*/_jsxs(SCAKSWrapper, {
276
- children: [/*#__PURE__*/_jsxs(SCAKSWrapperHeader, {
277
- $index: 0,
278
- children: [/*#__PURE__*/_jsx(SCAKSWrapperHeaderTitle, {
279
- children: t('knowledgeSection.knowledgeTab')
280
- }), /*#__PURE__*/_jsx(SCAKSWrapperHeaderInfo, {
281
- children: /*#__PURE__*/_jsxs("div", {
282
- children: [t('knowledgeSection.infoLabel'), /*#__PURE__*/_jsxs(SCAKSMoreInfoSpan, {
283
- onClick: function onClick() {
284
- return handleOnboardingNavigation('moreInfo');
285
- },
286
- children: [t('knowledgeSection.moreInfo'), /*#__PURE__*/_jsx(SCAKSMoreInfoIconWrapper, {
287
- children: /*#__PURE__*/_jsx(Open, {
288
- width: 18,
289
- height: 18,
290
- color: "#006FAF"
291
- })
292
- })]
293
- })]
294
- })
295
- })]
296
- }), /*#__PURE__*/_jsxs(SCAKSWrapperContent, {
297
- $index: 1,
298
- children: [/*#__PURE__*/_jsx(SCAKSFileUploadWrapperContent, {
299
- children: /*#__PURE__*/_jsx(Tooltip, {
300
- title: isAtSizeLimit ? t('knowledgeSection.error.maxSizeTitle') : '',
301
- zIndex: tooltipZIndex,
302
- children: /*#__PURE__*/_jsxs(SCAKSDropZone, {
303
- isAtSizeLimit: isAtSizeLimit,
304
- isDragging: isDragging,
305
- onDragEnter: handleDragEnter,
306
- onDragLeave: handleDragLeave,
307
- onDragOver: handleDragOver,
308
- onDrop: handleDrop,
309
- children: [/*#__PURE__*/_jsx(SCAKSDropZoneIcon, {
310
- children: /*#__PURE__*/_jsx(FileUpload, {
311
- width: 30,
312
- height: 30,
313
- color: isAtSizeLimit ? '#999' : '#006FAF'
314
- })
315
- }), /*#__PURE__*/_jsxs(SCAKSDropZoneText, {
316
- children: [/*#__PURE__*/_jsx(SCAKSDropZoneTextSpan, {
317
- isAtSizeLimit: isAtSizeLimit,
318
- "data-dropzone-link": true,
319
- onClick: handleAttachClick,
320
- children: t('knowledgeSection.dropZoneText.1')
321
- }), /*#__PURE__*/_jsx("span", {
322
- children: t('knowledgeSection.dropZoneText.2')
323
- })]
324
- }), /*#__PURE__*/_jsx(SCAKSDropZoneInfo, {
325
- children: t('knowledgeSection.infoFileTypes')
326
- })]
327
- })
328
- })
329
- }), /*#__PURE__*/_jsx(SCAKSAttachmentsWrapper, {
330
- children: (localAttachments || []).map(function (attachment, index) {
331
- return /*#__PURE__*/_jsx(AttachmentCard, {
332
- positionIndex: index,
333
- attachment: attachment,
334
- handleAction: handleAction,
335
- abmKnowledgeSection: true,
336
- fullWidth: true,
337
- onClick: function onClick() {
338
- return handleAttachmentClick(attachment);
339
- }
340
- }, "attachment-".concat(attachment === null || attachment === void 0 ? void 0 : attachment.name, "-").concat(attachment === null || attachment === void 0 ? void 0 : attachment.id, "-").concat(index));
341
- })
342
- })]
343
- }), /*#__PURE__*/_jsx("input", {
344
- ref: fileInputRef,
345
- type: "file",
346
- multiple: true,
347
- accept: ".txt,.md,.csv,.doc,.docx,.ppt,.pptx,.pdf,.png,.jpg,.jpeg,.xlsx,.xls",
348
- onChange: handleFileSelect,
349
- style: {
350
- display: 'none'
351
- }
352
- })]
353
- }), modalProps.isOpen && /*#__PURE__*/_jsx(ModalFileExceeds, {
354
- onClose: function onClose() {
355
- setModalProps({
356
- isOpen: false,
357
- excludedFiles: [],
358
- exceededFiles: [],
359
- invalidExtensionFiles: []
360
- });
361
- onFileErrorChange === null || onFileErrorChange === void 0 || onFileErrorChange(false);
362
- },
363
- excludedFiles: modalProps.excludedFiles,
364
- exceededFiles: modalProps.exceededFiles,
365
- invalidExtensionFiles: modalProps.invalidExtensionFiles,
366
- section: "abm_agent"
367
- }), /*#__PURE__*/_jsx(AttachmentPreviewModal, {
368
- isOpen: !!previewAttachment,
369
- onClose: handleClosePreview,
370
- attachment: previewAttachment
371
- })]
372
- });
373
- };
374
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJUb29sdGlwIiwiRmlsZVVwbG9hZCIsIk9wZW4iLCJ1c2VFZmZlY3QiLCJ1c2VSZWYiLCJ1c2VTdGF0ZSIsInVzZVRyYW5zbGF0aW9uIiwiQXR0YWNobWVudENhcmQiLCJBdHRhY2htZW50UHJldmlld01vZGFsIiwiU0NBS1NXcmFwcGVyIiwiU0NBS1NXcmFwcGVySGVhZGVyIiwiU0NBS1NXcmFwcGVyQ29udGVudCIsIlNDQUtTV3JhcHBlckhlYWRlclRpdGxlIiwiU0NBS1NXcmFwcGVySGVhZGVySW5mbyIsIlNDQUtTRmlsZVVwbG9hZFdyYXBwZXJDb250ZW50IiwiU0NBS1NBdHRhY2htZW50c1dyYXBwZXIiLCJTQ0FLU01vcmVJbmZvU3BhbiIsIlNDQUtTTW9yZUluZm9JY29uV3JhcHBlciIsIlNDQUtTRHJvcFpvbmUiLCJTQ0FLU0Ryb3Bab25lSWNvbiIsIlNDQUtTRHJvcFpvbmVUZXh0IiwiU0NBS1NEcm9wWm9uZUluZm8iLCJTQ0FLU0Ryb3Bab25lVGV4dFNwYW4iLCJ1c2VEb3dubG9hZEtub3dsZWRnZSIsInVzZU9uYm9hcmRpbmdOYXZpZ2F0aW9uIiwiTW9kYWxGaWxlRXhjZWVkcyIsImFsbG93ZWRGaWxlVHlwZXNGb3JLbm93bGVkZ2UiLCJmaWxlVHlwZXMiLCJqc3giLCJfanN4IiwianN4cyIsIl9qc3hzIiwiRnJhZ21lbnQiLCJfRnJhZ21lbnQiLCJnZXRVbmlxdWVTdHJpbmciLCJwcmV2U3RyaW5ncyIsInN0cmluZ1RvQ2hhbmdlIiwiX3N0cmluZ1RvQ2hhbmdlJHNwbGl0Iiwic3BsaXQiLCJfc3RyaW5nVG9DaGFuZ2Ukc3BsaXQyIiwiX3NsaWNlZFRvQXJyYXkiLCJmaWxlbmFtZSIsIl9zdHJpbmdUb0NoYW5nZSRzcGxpdDMiLCJleHRlbnNpb24iLCJleHQiLCJjb25jYXQiLCJpbmNsdWRlcyIsImNvdW50ZXIiLCJuZXdGaWxlbmFtZSIsIk1BWF9UT1RBTF9TSVpFIiwiQWJtS25vd2xlZGdlU2VjdGlvbiIsIl9yZWYiLCJoYW5kbGVTZXRBZ2VudFZhbHVlcyIsInZhbHVlcyIsIm9uRmlsZUVycm9yQ2hhbmdlIiwidG9vbHRpcFpJbmRleCIsIl91c2VTdGF0ZSIsImtub3dsZWRnZSIsIl91c2VTdGF0ZTIiLCJsb2NhbEF0dGFjaG1lbnRzIiwic2V0TG9jYWxBdHRhY2htZW50cyIsIl91c2VTdGF0ZTMiLCJfdXNlU3RhdGU0IiwicHJldmlld0F0dGFjaG1lbnQiLCJzZXRQcmV2aWV3QXR0YWNobWVudCIsIl91c2VUcmFuc2xhdGlvbiIsInQiLCJfdXNlU3RhdGU1IiwiaXNPcGVuIiwiZXhjbHVkZWRGaWxlcyIsImV4Y2VlZGVkRmlsZXMiLCJpbnZhbGlkRXh0ZW5zaW9uRmlsZXMiLCJfdXNlU3RhdGU2IiwibW9kYWxQcm9wcyIsInNldE1vZGFsUHJvcHMiLCJfdXNlRG93bmxvYWRLbm93bGVkZ2UiLCJoYW5kbGVEb3dubG9hZEtub3dsZWRnZSIsImlzRG93bmxvYWRpbmdTdWNjZXNzIiwic3VjY2VzcyIsImlzRG93bmxvYWRpbmdFcnJvciIsImVycm9yIiwiaXNEb3dubG9hZGluZyIsImlzTG9hZGluZyIsImhhbmRsZVJlc2V0U3RhdGVzIiwiX3VzZU9uYm9hcmRpbmdOYXZpZ2F0IiwiaGFuZGxlT25ib2FyZGluZ05hdmlnYXRpb24iLCJmaWxlSW5wdXRSZWYiLCJfdXNlU3RhdGU3IiwiX3VzZVN0YXRlOCIsImlzRHJhZ2dpbmciLCJzZXRJc0RyYWdnaW5nIiwiY3VycmVudFRvdGFsU2l6ZSIsInJlZHVjZSIsInRvdGFsIiwiYXR0YWNobWVudCIsInNpemUiLCJOdW1iZXIiLCJpc05hTiIsImlzQXRTaXplTGltaXQiLCJoYW5kbGVBdHRhY2hDbGljayIsIl9maWxlSW5wdXRSZWYkY3VycmVudCIsImN1cnJlbnQiLCJjbGljayIsImhhbmRsZUZpbGVTZWxlY3QiLCJlIiwiZmlsZXMiLCJ0YXJnZXQiLCJpbnNlcnRlZEZpbGVzIiwiYXR0YWNobWVudHNOYW1lcyIsIm1hcCIsIm5hbWUiLCJleGlzdGluZ1RvdGFsU2l6ZSIsInJ1bm5pbmdUb3RhbFNpemUiLCJBcnJheSIsImZyb20iLCJmb3JFYWNoIiwiZmlsZSIsIl9maWxlTmFtZVBhcnRzJHBvcCIsImZpbGVOYW1lUGFydHMiLCJmaWxlRXh0ZW5zaW9uIiwibGVuZ3RoIiwicG9wIiwidG9Mb3dlckNhc2UiLCJwdXNoIiwibmV3VG90YWxTaXplIiwidHlwZUZpbGUiLCJ0eXBlIiwidW5pcXVlTmFtZSIsInBhcnNlZEZpbGUiLCJGaWxlIiwiYXR0YWNobWVudEZpbGUiLCJpZCIsIkRhdGUiLCJub3ciLCJNYXRoIiwicmFuZG9tIiwic3RhdHVzIiwiaGFzRXJyb3JzIiwia2V5IiwidmFsdWUiLCJwcmV2IiwiX3RvQ29uc3VtYWJsZUFycmF5IiwiaGFuZGxlRHJhZ0VudGVyIiwicHJldmVudERlZmF1bHQiLCJzdG9wUHJvcGFnYXRpb24iLCJoYW5kbGVEcmFnTGVhdmUiLCJoYW5kbGVEcmFnT3ZlciIsImhhbmRsZURyb3AiLCJkYXRhVHJhbnNmZXIiLCJzeW50aGV0aWNFdmVudCIsImhhbmRsZURlbGV0ZUF0dGFjaG1lbnQiLCJmaWxlVG9EZWxldGUiLCJuZXdBdHRhY2htZW50cyIsImZpbHRlciIsIl8iLCJpbmRleCIsImRlbGV0ZUtub3dsZWRnZSIsImhhbmRsZURvd25sb2FkQXR0YWNobWVudCIsImFnZW50SWQiLCJnZW5lcmFsIiwidG9TdHJpbmciLCJrbm93bGVkZ2VJZCIsInVybCIsIlVSTCIsImNyZWF0ZU9iamVjdFVSTCIsImJsb2IiLCJsaW5rIiwiZG9jdW1lbnQiLCJjcmVhdGVFbGVtZW50IiwiaHJlZiIsImRvd25sb2FkIiwic3R5bGUiLCJkaXNwbGF5IiwiYm9keSIsImFwcGVuZENoaWxkIiwic2V0VGltZW91dCIsInJlbW92ZUNoaWxkIiwicmV2b2tlT2JqZWN0VVJMIiwiaGFuZGxlQWN0aW9uIiwiX3JlZjIiLCJhY3Rpb24iLCJoYW5kbGVBdHRhY2htZW50Q2xpY2siLCJvcmlnaW5hbEZpbGUiLCJ1cmxfdGh1bWJuYWlsIiwidXJsX29yaWdpbmFsIiwidXJsX2ZpbGUiLCJoYW5kbGVDbG9zZVByZXZpZXciLCJjaGlsZHJlbiIsIiRpbmRleCIsIm9uQ2xpY2siLCJ3aWR0aCIsImhlaWdodCIsImNvbG9yIiwidGl0bGUiLCJ6SW5kZXgiLCJvbkRyYWdFbnRlciIsIm9uRHJhZ0xlYXZlIiwib25EcmFnT3ZlciIsIm9uRHJvcCIsInBvc2l0aW9uSW5kZXgiLCJhYm1Lbm93bGVkZ2VTZWN0aW9uIiwiZnVsbFdpZHRoIiwicmVmIiwibXVsdGlwbGUiLCJhY2NlcHQiLCJvbkNoYW5nZSIsIm9uQ2xvc2UiLCJzZWN0aW9uIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvbW9sZWN1bGVzL0FibVNlY3Rpb24vQWJtS25vd2xlZGdlU2VjdGlvbi50c3giXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUganN4LWExMXkvY2xpY2stZXZlbnRzLWhhdmUta2V5LWV2ZW50cyAqL1xuLyogZXNsaW50LWRpc2FibGUganN4LWExMXkvbm8tc3RhdGljLWVsZW1lbnQtaW50ZXJhY3Rpb25zICovXG4vKiBlc2xpbnQtZGlzYWJsZSBuby1jb25zb2xlICovXG4vKiBlc2xpbnQtZGlzYWJsZSBuby1wbHVzcGx1cyAqL1xuLyogZXNsaW50LWRpc2FibGUgcmVhY3Qvbm8tYXJyYXktaW5kZXgta2V5ICovXG4vKiBlc2xpbnQtZGlzYWJsZSBpbXBvcnQvbm8tY3ljbGUgKi9cbi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnkgKi9cbi8qIGVzbGludC1kaXNhYmxlIGpzeC1hMTF5L2FuY2hvci1pcy12YWxpZCAqL1xuLyogZXNsaW50LWRpc2FibGUgbm8tdW51c2VkLXZhcnMgKi9cbmltcG9ydCB7IFRvb2x0aXAgfSBmcm9tICdAcHJvamVjdGNvci90b29sdGlwdjIvbGliL2NvbXBvbmVudHMvVG9vbHRpcCdcbmltcG9ydCB7IEZpbGVVcGxvYWQgfSBmcm9tICdAcHJvamVjdGNvci9pY29ucy9saWIvY29tcG9uZW50cy9GaWxlVXBsb2FkJ1xuaW1wb3J0IHsgT3BlbiB9IGZyb20gJ0Bwcm9qZWN0Y29yL2ljb25zL2xpYi9jb21wb25lbnRzL09wZW4nXG5pbXBvcnQgeyBDaGFuZ2VFdmVudCwgRHJhZ0V2ZW50LCB1c2VFZmZlY3QsIHVzZVJlZiwgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCdcbmltcG9ydCB7IHVzZVRyYW5zbGF0aW9uIH0gZnJvbSAncmVhY3QtaTE4bmV4dCdcbmltcG9ydCB7IEF0dGFjaG1lbnRDYXJkIH0gZnJvbSAnLi4vLi4vYXRvbXMvQXR0YWNobWVudENhcmQvQXR0YWNobWVudENhcmQnXG5pbXBvcnQgeyBBdHRhY2htZW50UHJldmlld01vZGFsIH0gZnJvbSAnLi4vLi4vYXRvbXMvQXR0YWNobWVudFByZXZpZXdNb2RhbCdcbmltcG9ydCB7IE1vZGFsVmFsdWVzIH0gZnJvbSAnLi4vLi4vLi4vdHlwZXMvYWdlbnRNb2RhbCdcbmltcG9ydCB7IEF0dGFjaG1lbnRGaWxlIH0gZnJvbSAnLi4vQ2hhdEZvb3Rlci9DaGF0Rm9vdGVyJ1xuaW1wb3J0IHtcbiAgU0NBS1NXcmFwcGVyLFxuICBTQ0FLU1dyYXBwZXJIZWFkZXIsXG4gIFNDQUtTV3JhcHBlckNvbnRlbnQsXG4gIFNDQUtTV3JhcHBlckhlYWRlclRpdGxlLFxuICBTQ0FLU1dyYXBwZXJIZWFkZXJJbmZvLFxuICBTQ0FLU0ZpbGVVcGxvYWRXcmFwcGVyQ29udGVudCxcbiAgU0NBS1NBdHRhY2htZW50c1dyYXBwZXIsXG4gIFNDQUtTTW9yZUluZm9TcGFuLFxuICBTQ0FLU01vcmVJbmZvSWNvbldyYXBwZXIsXG4gIFNDQUtTRHJvcFpvbmUsXG4gIFNDQUtTRHJvcFpvbmVJY29uLFxuICBTQ0FLU0Ryb3Bab25lVGV4dCxcbiAgU0NBS1NEcm9wWm9uZUluZm8sXG4gIFNDQUtTRHJvcFpvbmVUZXh0U3Bhbixcbn0gZnJvbSAnLi9BYm1Lbm93bGVkZ2VTZWN0aW9uLnN0eWxlcydcbmltcG9ydCB7IHVzZURvd25sb2FkS25vd2xlZGdlIH0gZnJvbSAnLi4vLi4vLi4vaG9va3MvdXNlS25vd2xlZGdlL2Rvd25sb2FkS25vd2xlZGdlJ1xuaW1wb3J0IHsgdXNlT25ib2FyZGluZ05hdmlnYXRpb24gfSBmcm9tICcuLi8uLi8uLi9ob29rcy91c2VPbmJvYXJkaW5nTmF2aWdhdGlvbidcbmltcG9ydCB7IE1vZGFsRmlsZUV4Y2VlZHMgfSBmcm9tICcuLi8uLi9vcmdhbmlzbXMvTW9kYWxGaWxlRXhjZWVkcy9Nb2RhbEZpbGVFeGNlZWRzJ1xuaW1wb3J0IHsgYWxsb3dlZEZpbGVUeXBlc0Zvcktub3dsZWRnZSwgZmlsZVR5cGVzIH0gZnJvbSAnLi4vLi4vLi4vY29uc3RhbnRzL2Zvcm1hdEV4dGVuc2lvbnMnXG5cbmZ1bmN0aW9uIGdldFVuaXF1ZVN0cmluZyhwcmV2U3RyaW5nczogc3RyaW5nW10sIHN0cmluZ1RvQ2hhbmdlOiBzdHJpbmcpOiBzdHJpbmcge1xuICBjb25zdCBbZmlsZW5hbWUsIGV4dGVuc2lvbiA9ICcnXSA9IHN0cmluZ1RvQ2hhbmdlLnNwbGl0KCcuJylcbiAgY29uc3QgZXh0ID0gZXh0ZW5zaW9uID8gYC4ke2V4dGVuc2lvbn1gIDogJydcblxuICBpZiAoIXByZXZTdHJpbmdzPy5pbmNsdWRlcyhzdHJpbmdUb0NoYW5nZSkpIHtcbiAgICByZXR1cm4gc3RyaW5nVG9DaGFuZ2VcbiAgfVxuXG4gIGxldCBjb3VudGVyID0gMVxuICBsZXQgbmV3RmlsZW5hbWVcbiAgZG8ge1xuICAgIG5ld0ZpbGVuYW1lID0gYCR7ZmlsZW5hbWV9KCR7Y291bnRlcn0pJHtleHR9YFxuICAgIGNvdW50ZXIrK1xuICB9IHdoaWxlIChwcmV2U3RyaW5ncz8uaW5jbHVkZXMobmV3RmlsZW5hbWUpKVxuXG4gIHJldHVybiBuZXdGaWxlbmFtZVxufVxuXG5jb25zdCBNQVhfVE9UQUxfU0laRSA9IDUgKiAxMDI0ICogMTAyNCAvLyA1TUIgdG90YWxcblxuZXhwb3J0IGNvbnN0IEFibUtub3dsZWRnZVNlY3Rpb24gPSAoe1xuICBoYW5kbGVTZXRBZ2VudFZhbHVlcyxcbiAgdmFsdWVzLFxuICBvbkZpbGVFcnJvckNoYW5nZSxcbiAgdG9vbHRpcFpJbmRleCxcbn06IHtcbiAgaGFuZGxlU2V0QWdlbnRWYWx1ZXM6ICh7XG4gICAga2V5LFxuICAgIHZhbHVlLFxuICAgIGRlbGV0ZUtub3dsZWRnZSxcbiAgfToge1xuICAgIGtleTogc3RyaW5nXG4gICAgdmFsdWU6IHVua25vd25cbiAgICBkZWxldGVLbm93bGVkZ2U/OiBib29sZWFuXG4gIH0pID0+IHZvaWRcbiAgdmFsdWVzOiBNb2RhbFZhbHVlc1xuICBvbkZpbGVFcnJvckNoYW5nZT86IChoYXNFcnJvcnM6IGJvb2xlYW4pID0+IHZvaWRcbiAgdG9vbHRpcFpJbmRleD86IG51bWJlclxufSkgPT4ge1xuICBjb25zdCBbbG9jYWxBdHRhY2htZW50cywgc2V0TG9jYWxBdHRhY2htZW50c10gPSB1c2VTdGF0ZTxBdHRhY2htZW50RmlsZVtdPih2YWx1ZXMua25vd2xlZGdlIHx8IFtdKVxuICBjb25zdCBbcHJldmlld0F0dGFjaG1lbnQsIHNldFByZXZpZXdBdHRhY2htZW50XSA9IHVzZVN0YXRlPEF0dGFjaG1lbnRGaWxlIHwgbnVsbD4obnVsbClcbiAgY29uc3QgeyB0IH0gPSB1c2VUcmFuc2xhdGlvbignYWJtX2FnZW50X3NlY3Rpb24nKVxuICBjb25zdCBbbW9kYWxQcm9wcywgc2V0TW9kYWxQcm9wc10gPSB1c2VTdGF0ZSh7XG4gICAgaXNPcGVuOiBmYWxzZSxcbiAgICBleGNsdWRlZEZpbGVzOiBbXSBhcyBzdHJpbmdbXSxcbiAgICBleGNlZWRlZEZpbGVzOiBbXSBhcyBzdHJpbmdbXSxcbiAgICBpbnZhbGlkRXh0ZW5zaW9uRmlsZXM6IFtdIGFzIHN0cmluZ1tdLFxuICB9KVxuICBjb25zdCB7XG4gICAgaGFuZGxlRG93bmxvYWRLbm93bGVkZ2UsXG4gICAgc3VjY2VzczogaXNEb3dubG9hZGluZ1N1Y2Nlc3MsXG4gICAgZXJyb3I6IGlzRG93bmxvYWRpbmdFcnJvcixcbiAgICBpc0xvYWRpbmc6IGlzRG93bmxvYWRpbmcsXG4gICAgaGFuZGxlUmVzZXRTdGF0ZXMsXG4gIH0gPSB1c2VEb3dubG9hZEtub3dsZWRnZSgpXG4gIGNvbnN0IHsgaGFuZGxlT25ib2FyZGluZ05hdmlnYXRpb24gfSA9IHVzZU9uYm9hcmRpbmdOYXZpZ2F0aW9uKClcbiAgY29uc3QgZmlsZUlucHV0UmVmID0gdXNlUmVmPEhUTUxJbnB1dEVsZW1lbnQ+KG51bGwpXG4gIGNvbnN0IFtpc0RyYWdnaW5nLCBzZXRJc0RyYWdnaW5nXSA9IHVzZVN0YXRlKGZhbHNlKVxuXG4gIC8vIENhbGN1bGFyIGVsIHRhbWHDsW8gdG90YWwgYWN0dWFsIGRlIGFyY2hpdm9zXG4gIGNvbnN0IGN1cnJlbnRUb3RhbFNpemUgPSAobG9jYWxBdHRhY2htZW50cyB8fCBbXSkucmVkdWNlKCh0b3RhbCwgYXR0YWNobWVudCkgPT4ge1xuICAgIGNvbnN0IHNpemUgPSB0eXBlb2YgYXR0YWNobWVudC5zaXplID09PSAnbnVtYmVyJyA/IGF0dGFjaG1lbnQuc2l6ZSA6IE51bWJlcihhdHRhY2htZW50LnNpemUpXG4gICAgcmV0dXJuIHRvdGFsICsgKE51bWJlci5pc05hTihzaXplKSA/IDAgOiBzaXplKVxuICB9LCAwKVxuICBjb25zdCBpc0F0U2l6ZUxpbWl0ID0gY3VycmVudFRvdGFsU2l6ZSA+PSBNQVhfVE9UQUxfU0laRVxuXG4gIGNvbnN0IGhhbmRsZUF0dGFjaENsaWNrID0gKCkgPT4ge1xuICAgIGlmIChpc0F0U2l6ZUxpbWl0KSB7XG4gICAgICByZXR1cm5cbiAgICB9XG4gICAgZmlsZUlucHV0UmVmLmN1cnJlbnQ/LmNsaWNrKClcbiAgfVxuXG4gIGNvbnN0IGhhbmRsZUZpbGVTZWxlY3QgPSAoZTogQ2hhbmdlRXZlbnQ8SFRNTElucHV0RWxlbWVudD4pID0+IHtcbiAgICBjb25zdCB7IGZpbGVzIH0gPSBlLnRhcmdldFxuICAgIGlmICghZmlsZXMpIHJldHVyblxuXG4gICAgY29uc3QgZXhjZWVkZWRGaWxlczogc3RyaW5nW10gPSBbXVxuICAgIGNvbnN0IGV4Y2x1ZGVkRmlsZXM6IHN0cmluZ1tdID0gW11cbiAgICBjb25zdCBpbnZhbGlkRXh0ZW5zaW9uRmlsZXM6IHN0cmluZ1tdID0gW11cbiAgICBjb25zdCBpbnNlcnRlZEZpbGVzOiBBdHRhY2htZW50RmlsZVtdID0gW11cbiAgICBjb25zdCBhdHRhY2htZW50c05hbWVzID0gKGxvY2FsQXR0YWNobWVudHMgfHwgW10pLm1hcChhdHRhY2htZW50ID0+IGF0dGFjaG1lbnQubmFtZSlcblxuICAgIC8vIENhbGN1bGFyIGVsIHRhbWHDsW8gdG90YWwgYWN0dWFsIGRlIGFyY2hpdm9zIHlhIGFkanVudG9zXG4gICAgY29uc3QgZXhpc3RpbmdUb3RhbFNpemUgPSAobG9jYWxBdHRhY2htZW50cyB8fCBbXSkucmVkdWNlKCh0b3RhbCwgYXR0YWNobWVudCkgPT4ge1xuICAgICAgY29uc3Qgc2l6ZSA9IHR5cGVvZiBhdHRhY2htZW50LnNpemUgPT09ICdudW1iZXInID8gYXR0YWNobWVudC5zaXplIDogTnVtYmVyKGF0dGFjaG1lbnQuc2l6ZSlcbiAgICAgIHJldHVybiB0b3RhbCArIChOdW1iZXIuaXNOYU4oc2l6ZSkgPyAwIDogc2l6ZSlcbiAgICB9LCAwKVxuICAgIGxldCBydW5uaW5nVG90YWxTaXplID0gZXhpc3RpbmdUb3RhbFNpemVcbiAgICBBcnJheS5mcm9tKGZpbGVzKS5mb3JFYWNoKGZpbGUgPT4ge1xuICAgICAgY29uc3QgZmlsZU5hbWVQYXJ0cyA9IGZpbGUubmFtZS5zcGxpdCgnLicpXG4gICAgICBjb25zdCBmaWxlRXh0ZW5zaW9uID0gZmlsZU5hbWVQYXJ0cy5sZW5ndGggPiAxID8gYC4ke2ZpbGVOYW1lUGFydHMucG9wKCk/LnRvTG93ZXJDYXNlKCl9YCA6ICcnXG5cbiAgICAgIGlmICghYWxsb3dlZEZpbGVUeXBlc0Zvcktub3dsZWRnZS5pbmNsdWRlcyhmaWxlRXh0ZW5zaW9uKSkge1xuICAgICAgICBpbnZhbGlkRXh0ZW5zaW9uRmlsZXMucHVzaChmaWxlLm5hbWUpXG4gICAgICAgIHJldHVyblxuICAgICAgfVxuXG4gICAgICAvLyBWZXJpZmljYXIgc2kgYWdyZWdhciBlc3RlIGFyY2hpdm8gZXhjZWRlcsOtYSBlbCBsw61taXRlIHRvdGFsIGRlIDVNQlxuICAgICAgY29uc3QgbmV3VG90YWxTaXplID0gcnVubmluZ1RvdGFsU2l6ZSArIGZpbGUuc2l6ZVxuICAgICAgaWYgKG5ld1RvdGFsU2l6ZSA+IE1BWF9UT1RBTF9TSVpFKSB7XG4gICAgICAgIGV4Y2VlZGVkRmlsZXMucHVzaChmaWxlLm5hbWUpXG4gICAgICAgIHJldHVyblxuICAgICAgfVxuXG4gICAgICBjb25zdCB0eXBlRmlsZSA9IGZpbGUudHlwZSB8fCBmaWxlVHlwZXNbZmlsZUV4dGVuc2lvbl1cbiAgICAgIGNvbnN0IHVuaXF1ZU5hbWUgPSBnZXRVbmlxdWVTdHJpbmcoYXR0YWNobWVudHNOYW1lcywgZmlsZS5uYW1lKVxuICAgICAgY29uc3QgcGFyc2VkRmlsZSA9IG5ldyBGaWxlKFtmaWxlXSwgdW5pcXVlTmFtZSwgeyB0eXBlOiB0eXBlRmlsZSB9KVxuXG4gICAgICBjb25zdCBhdHRhY2htZW50RmlsZTogQXR0YWNobWVudEZpbGUgPSB7XG4gICAgICAgIGZpbGU6IHBhcnNlZEZpbGUsXG4gICAgICAgIGlkOiBgJHtEYXRlLm5vdygpfS0ke01hdGgucmFuZG9tKCl9YCxcbiAgICAgICAgbmFtZTogdW5pcXVlTmFtZSxcbiAgICAgICAgc2l6ZTogZmlsZS5zaXplLFxuICAgICAgICB0eXBlOiB0eXBlRmlsZSxcbiAgICAgICAgc3RhdHVzOiAnc3RhcnRlZCcsXG4gICAgICB9XG5cbiAgICAgIC8vIFNvbG8gYWdyZWdhciBlbCBhcmNoaXZvIHNpIG5vIGVzdMOhIGVuIGxhIGxpc3RhIGRlIGFyY2hpdm9zIGV4Y2VkaWRvc1xuICAgICAgaWYgKCFleGNlZWRlZEZpbGVzLmluY2x1ZGVzKGZpbGUubmFtZSkpIHtcbiAgICAgICAgaW5zZXJ0ZWRGaWxlcy5wdXNoKGF0dGFjaG1lbnRGaWxlKVxuICAgICAgICAvLyBBY3R1YWxpemFyIGVsIHRhbWHDsW8gdG90YWwgcGFyYSBsYSBzaWd1aWVudGUgdmFsaWRhY2nDs25cbiAgICAgICAgcnVubmluZ1RvdGFsU2l6ZSArPSBmaWxlLnNpemVcbiAgICAgIH1cbiAgICB9KVxuXG4gICAgLy8gTW9zdHJhciBtb2RhbCBzaSBoYXkgYXJjaGl2b3MgY29uIGV4dGVuc2nDs24gaW52w6FsaWRhIG8gcXVlIGV4Y2VkZW4gZWwgbMOtbWl0ZVxuICAgIGNvbnN0IGhhc0Vycm9ycyA9IGludmFsaWRFeHRlbnNpb25GaWxlcy5sZW5ndGggPiAwIHx8IGV4Y2VlZGVkRmlsZXMubGVuZ3RoID4gMFxuICAgIGlmIChoYXNFcnJvcnMpIHtcbiAgICAgIHNldE1vZGFsUHJvcHMoeyBpc09wZW46IHRydWUsIGV4Y2x1ZGVkRmlsZXMsIGV4Y2VlZGVkRmlsZXMsIGludmFsaWRFeHRlbnNpb25GaWxlcyB9KVxuICAgICAgb25GaWxlRXJyb3JDaGFuZ2U/Lih0cnVlKVxuICAgIH0gZWxzZSB7XG4gICAgICBvbkZpbGVFcnJvckNoYW5nZT8uKGZhbHNlKVxuICAgIH1cblxuICAgIC8vIFNvbG8gYWdyZWdhciBhcmNoaXZvcyB2w6FsaWRvcyBxdWUgbm8gZXhjZWRhbiBlbCBsw61taXRlXG4gICAgaWYgKGluc2VydGVkRmlsZXMubGVuZ3RoKSB7XG4gICAgICBoYW5kbGVTZXRBZ2VudFZhbHVlcz8uKHsga2V5OiAna25vd2xlZGdlJywgdmFsdWU6IGluc2VydGVkRmlsZXMgfSlcbiAgICAgIHNldExvY2FsQXR0YWNobWVudHMocHJldiA9PiBbLi4uKHByZXYgfHwgW10pLCAuLi5pbnNlcnRlZEZpbGVzXSlcbiAgICB9XG4gIH1cblxuICBjb25zdCBoYW5kbGVEcmFnRW50ZXIgPSAoZTogRHJhZ0V2ZW50PEhUTUxEaXZFbGVtZW50PikgPT4ge1xuICAgIGUucHJldmVudERlZmF1bHQoKVxuICAgIGUuc3RvcFByb3BhZ2F0aW9uKClcbiAgICBpZiAoIWlzQXRTaXplTGltaXQpIHtcbiAgICAgIHNldElzRHJhZ2dpbmcodHJ1ZSlcbiAgICB9XG4gIH1cblxuICBjb25zdCBoYW5kbGVEcmFnTGVhdmUgPSAoZTogRHJhZ0V2ZW50PEhUTUxEaXZFbGVtZW50PikgPT4ge1xuICAgIGUucHJldmVudERlZmF1bHQoKVxuICAgIGUuc3RvcFByb3BhZ2F0aW9uKClcbiAgICBzZXRJc0RyYWdnaW5nKGZhbHNlKVxuICB9XG5cbiAgY29uc3QgaGFuZGxlRHJhZ092ZXIgPSAoZTogRHJhZ0V2ZW50PEhUTUxEaXZFbGVtZW50PikgPT4ge1xuICAgIGUucHJldmVudERlZmF1bHQoKVxuICAgIGUuc3RvcFByb3BhZ2F0aW9uKClcbiAgfVxuXG4gIGNvbnN0IGhhbmRsZURyb3AgPSAoZTogRHJhZ0V2ZW50PEhUTUxEaXZFbGVtZW50PikgPT4ge1xuICAgIGUucHJldmVudERlZmF1bHQoKVxuICAgIGUuc3RvcFByb3BhZ2F0aW9uKClcbiAgICBzZXRJc0RyYWdnaW5nKGZhbHNlKVxuXG4gICAgaWYgKGlzQXRTaXplTGltaXQpIHtcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIGNvbnN0IHsgZmlsZXMgfSA9IGUuZGF0YVRyYW5zZmVyXG4gICAgaWYgKCFmaWxlcyB8fCBmaWxlcy5sZW5ndGggPT09IDApIHtcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIC8vIENyZWFyIHVuIGV2ZW50byBzaW50w6l0aWNvIHBhcmEgcmV1dGlsaXphciBsYSBsw7NnaWNhIGRlIGhhbmRsZUZpbGVTZWxlY3RcbiAgICBjb25zdCBzeW50aGV0aWNFdmVudCA9IHtcbiAgICAgIHRhcmdldDogeyBmaWxlcyB9LFxuICAgIH0gYXMgQ2hhbmdlRXZlbnQ8SFRNTElucHV0RWxlbWVudD5cblxuICAgIGhhbmRsZUZpbGVTZWxlY3Qoc3ludGhldGljRXZlbnQpXG4gIH1cblxuICBjb25zdCBoYW5kbGVEZWxldGVBdHRhY2htZW50ID0gKGlkOiBudW1iZXIpID0+IHtcbiAgICBjb25zdCBmaWxlVG9EZWxldGUgPSBsb2NhbEF0dGFjaG1lbnRzW2lkXVxuICAgIGlmICghZmlsZVRvRGVsZXRlKSByZXR1cm5cblxuICAgIGNvbnN0IG5ld0F0dGFjaG1lbnRzID0gKGxvY2FsQXR0YWNobWVudHMgfHwgW10pLmZpbHRlcigoXywgaW5kZXgpID0+IGluZGV4ICE9PSBpZClcbiAgICBzZXRMb2NhbEF0dGFjaG1lbnRzKG5ld0F0dGFjaG1lbnRzKVxuXG4gICAgaGFuZGxlU2V0QWdlbnRWYWx1ZXM/Lih7IGtleTogJ2tub3dsZWRnZScsIHZhbHVlOiBuZXdBdHRhY2htZW50cywgZGVsZXRlS25vd2xlZGdlOiB0cnVlIH0pXG5cbiAgICBvbkZpbGVFcnJvckNoYW5nZT8uKGZhbHNlKVxuICB9XG5cbiAgY29uc3QgaGFuZGxlRG93bmxvYWRBdHRhY2htZW50ID0gKGlkOiBudW1iZXIpID0+IHtcbiAgICBjb25zdCBmaWxlID0gKGxvY2FsQXR0YWNobWVudHMgfHwgW10pW2lkXVxuICAgIGlmICghZmlsZSkgcmV0dXJuXG5cbiAgICBoYW5kbGVEb3dubG9hZEtub3dsZWRnZSh7IGFnZW50SWQ6IHZhbHVlcy5nZW5lcmFsLmlkIS50b1N0cmluZygpLCBrbm93bGVkZ2VJZDogZmlsZS5pZCB9KVxuICB9XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoaXNEb3dubG9hZGluZ1N1Y2Nlc3MgJiYgIWlzRG93bmxvYWRpbmdFcnJvciAmJiAhaXNEb3dubG9hZGluZykge1xuICAgICAgY29uc3QgdXJsID0gVVJMLmNyZWF0ZU9iamVjdFVSTChpc0Rvd25sb2FkaW5nU3VjY2Vzcy5ibG9iKVxuICAgICAgY29uc3QgbGluayA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2EnKVxuICAgICAgbGluay5ocmVmID0gdXJsXG4gICAgICBsaW5rLmRvd25sb2FkID0gaXNEb3dubG9hZGluZ1N1Y2Nlc3MuZmlsZW5hbWVcbiAgICAgIGxpbmsuc3R5bGUuZGlzcGxheSA9ICdub25lJ1xuXG4gICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGxpbmspXG4gICAgICBsaW5rLmNsaWNrKClcblxuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQobGluaylcbiAgICAgICAgVVJMLnJldm9rZU9iamVjdFVSTCh1cmwpXG4gICAgICAgIGhhbmRsZVJlc2V0U3RhdGVzKClcbiAgICAgIH0sIDEwMClcbiAgICB9XG4gIH0sIFtpc0Rvd25sb2FkaW5nU3VjY2VzcywgaXNEb3dubG9hZGluZ0Vycm9yLCBpc0Rvd25sb2FkaW5nLCBoYW5kbGVSZXNldFN0YXRlc10pXG5cbiAgY29uc3QgaGFuZGxlQWN0aW9uID0gKHsgaWQsIGFjdGlvbiB9OiB7IGlkOiBudW1iZXI7IGFjdGlvbjogJ2RlbGV0ZScgfCAnZG93bmxvYWQnIH0pID0+IHtcbiAgICBpZiAoaXNEb3dubG9hZGluZykgcmV0dXJuXG4gICAgaWYgKGFjdGlvbiA9PT0gJ2RlbGV0ZScpIHtcbiAgICAgIGhhbmRsZURlbGV0ZUF0dGFjaG1lbnQoaWQpXG4gICAgICByZXR1cm5cbiAgICB9XG4gICAgaWYgKGFjdGlvbiA9PT0gJ2Rvd25sb2FkJykge1xuICAgICAgaGFuZGxlRG93bmxvYWRBdHRhY2htZW50KGlkKVxuICAgIH1cbiAgfVxuXG4gIGNvbnN0IGhhbmRsZUF0dGFjaG1lbnRDbGljayA9IChhdHRhY2htZW50OiBBdHRhY2htZW50RmlsZSkgPT4ge1xuICAgIC8vIFBlcm1pdGlyIHByZXZpc3VhbGl6YWNpw7NuIHNpIHRpZW5lIGFyY2hpdm8gbG9jYWwgbyBVUkxzIGRlbCBiYWNrZW5kXG4gICAgLy8gU29sbyBzaSBubyB0aWVuZSBlcnJvcmVzIChzdGF0dXMgIT09ICdmYWlsZWQnKVxuICAgIGlmIChhdHRhY2htZW50LnN0YXR1cyA9PT0gJ2ZhaWxlZCcpIHtcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIGlmIChcbiAgICAgIGF0dGFjaG1lbnQuZmlsZSBpbnN0YW5jZW9mIEZpbGUgfHxcbiAgICAgIGF0dGFjaG1lbnQub3JpZ2luYWxGaWxlIGluc3RhbmNlb2YgRmlsZSB8fFxuICAgICAgYXR0YWNobWVudC51cmxfdGh1bWJuYWlsIHx8XG4gICAgICBhdHRhY2htZW50LnVybF9vcmlnaW5hbCB8fFxuICAgICAgYXR0YWNobWVudC51cmxfZmlsZVxuICAgICkge1xuICAgICAgc2V0UHJldmlld0F0dGFjaG1lbnQoYXR0YWNobWVudClcbiAgICB9XG4gIH1cblxuICBjb25zdCBoYW5kbGVDbG9zZVByZXZpZXcgPSAoKSA9PiB7XG4gICAgc2V0UHJldmlld0F0dGFjaG1lbnQobnVsbClcbiAgfVxuXG4gIHJldHVybiAoXG4gICAgPD5cbiAgICAgIDxTQ0FLU1dyYXBwZXI+XG4gICAgICAgIDxTQ0FLU1dyYXBwZXJIZWFkZXIgJGluZGV4PXswfT5cbiAgICAgICAgICA8U0NBS1NXcmFwcGVySGVhZGVyVGl0bGU+e3QoJ2tub3dsZWRnZVNlY3Rpb24ua25vd2xlZGdlVGFiJyl9PC9TQ0FLU1dyYXBwZXJIZWFkZXJUaXRsZT5cbiAgICAgICAgICA8U0NBS1NXcmFwcGVySGVhZGVySW5mbz5cbiAgICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICAgIHt0KCdrbm93bGVkZ2VTZWN0aW9uLmluZm9MYWJlbCcpfVxuICAgICAgICAgICAgICA8U0NBS1NNb3JlSW5mb1NwYW4gb25DbGljaz17KCkgPT4gaGFuZGxlT25ib2FyZGluZ05hdmlnYXRpb24oJ21vcmVJbmZvJyl9PlxuICAgICAgICAgICAgICAgIHt0KCdrbm93bGVkZ2VTZWN0aW9uLm1vcmVJbmZvJyl9XG4gICAgICAgICAgICAgICAgPFNDQUtTTW9yZUluZm9JY29uV3JhcHBlcj5cbiAgICAgICAgICAgICAgICAgIDxPcGVuIHdpZHRoPXsxOH0gaGVpZ2h0PXsxOH0gY29sb3I9XCIjMDA2RkFGXCIgLz5cbiAgICAgICAgICAgICAgICA8L1NDQUtTTW9yZUluZm9JY29uV3JhcHBlcj5cbiAgICAgICAgICAgICAgPC9TQ0FLU01vcmVJbmZvU3Bhbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvU0NBS1NXcmFwcGVySGVhZGVySW5mbz5cbiAgICAgICAgPC9TQ0FLU1dyYXBwZXJIZWFkZXI+XG4gICAgICAgIDxTQ0FLU1dyYXBwZXJDb250ZW50ICRpbmRleD17MX0+XG4gICAgICAgICAgPFNDQUtTRmlsZVVwbG9hZFdyYXBwZXJDb250ZW50PlxuICAgICAgICAgICAgPFRvb2x0aXAgdGl0bGU9e2lzQXRTaXplTGltaXQgPyB0KCdrbm93bGVkZ2VTZWN0aW9uLmVycm9yLm1heFNpemVUaXRsZScpIDogJyd9IHpJbmRleD17dG9vbHRpcFpJbmRleH0+XG4gICAgICAgICAgICAgIDxTQ0FLU0Ryb3Bab25lXG4gICAgICAgICAgICAgICAgaXNBdFNpemVMaW1pdD17aXNBdFNpemVMaW1pdH1cbiAgICAgICAgICAgICAgICBpc0RyYWdnaW5nPXtpc0RyYWdnaW5nfVxuICAgICAgICAgICAgICAgIG9uRHJhZ0VudGVyPXtoYW5kbGVEcmFnRW50ZXJ9XG4gICAgICAgICAgICAgICAgb25EcmFnTGVhdmU9e2hhbmRsZURyYWdMZWF2ZX1cbiAgICAgICAgICAgICAgICBvbkRyYWdPdmVyPXtoYW5kbGVEcmFnT3Zlcn1cbiAgICAgICAgICAgICAgICBvbkRyb3A9e2hhbmRsZURyb3B9XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8U0NBS1NEcm9wWm9uZUljb24+XG4gICAgICAgICAgICAgICAgICA8RmlsZVVwbG9hZCB3aWR0aD17MzB9IGhlaWdodD17MzB9IGNvbG9yPXtpc0F0U2l6ZUxpbWl0ID8gJyM5OTknIDogJyMwMDZGQUYnfSAvPlxuICAgICAgICAgICAgICAgIDwvU0NBS1NEcm9wWm9uZUljb24+XG4gICAgICAgICAgICAgICAgPFNDQUtTRHJvcFpvbmVUZXh0PlxuICAgICAgICAgICAgICAgICAgPFNDQUtTRHJvcFpvbmVUZXh0U3BhbiBpc0F0U2l6ZUxpbWl0PXtpc0F0U2l6ZUxpbWl0fSBkYXRhLWRyb3B6b25lLWxpbmsgb25DbGljaz17aGFuZGxlQXR0YWNoQ2xpY2t9PlxuICAgICAgICAgICAgICAgICAgICB7dCgna25vd2xlZGdlU2VjdGlvbi5kcm9wWm9uZVRleHQuMScpfVxuICAgICAgICAgICAgICAgICAgPC9TQ0FLU0Ryb3Bab25lVGV4dFNwYW4+XG4gICAgICAgICAgICAgICAgICA8c3Bhbj57dCgna25vd2xlZGdlU2VjdGlvbi5kcm9wWm9uZVRleHQuMicpfTwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8L1NDQUtTRHJvcFpvbmVUZXh0PlxuICAgICAgICAgICAgICAgIDxTQ0FLU0Ryb3Bab25lSW5mbz57dCgna25vd2xlZGdlU2VjdGlvbi5pbmZvRmlsZVR5cGVzJyl9PC9TQ0FLU0Ryb3Bab25lSW5mbz5cbiAgICAgICAgICAgICAgPC9TQ0FLU0Ryb3Bab25lPlxuICAgICAgICAgICAgPC9Ub29sdGlwPlxuICAgICAgICAgIDwvU0NBS1NGaWxlVXBsb2FkV3JhcHBlckNvbnRlbnQ+XG4gICAgICAgICAgPFNDQUtTQXR0YWNobWVudHNXcmFwcGVyPlxuICAgICAgICAgICAgeyhsb2NhbEF0dGFjaG1lbnRzIHx8IFtdKS5tYXAoKGF0dGFjaG1lbnQsIGluZGV4KSA9PiB7XG4gICAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgPEF0dGFjaG1lbnRDYXJkXG4gICAgICAgICAgICAgICAgICBwb3NpdGlvbkluZGV4PXtpbmRleH1cbiAgICAgICAgICAgICAgICAgIGtleT17YGF0dGFjaG1lbnQtJHthdHRhY2htZW50Py5uYW1lfS0ke2F0dGFjaG1lbnQ/LmlkfS0ke2luZGV4fWB9XG4gICAgICAgICAgICAgICAgICBhdHRhY2htZW50PXthdHRhY2htZW50fVxuICAgICAgICAgICAgICAgICAgaGFuZGxlQWN0aW9uPXtoYW5kbGVBY3Rpb259XG4gICAgICAgICAgICAgICAgICBhYm1Lbm93bGVkZ2VTZWN0aW9uXG4gICAgICAgICAgICAgICAgICBmdWxsV2lkdGhcbiAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IGhhbmRsZUF0dGFjaG1lbnRDbGljayhhdHRhY2htZW50KX1cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICApXG4gICAgICAgICAgICB9KX1cbiAgICAgICAgICA8L1NDQUtTQXR0YWNobWVudHNXcmFwcGVyPlxuICAgICAgICA8L1NDQUtTV3JhcHBlckNvbnRlbnQ+XG4gICAgICAgIDxpbnB1dFxuICAgICAgICAgIHJlZj17ZmlsZUlucHV0UmVmfVxuICAgICAgICAgIHR5cGU9XCJmaWxlXCJcbiAgICAgICAgICBtdWx0aXBsZVxuICAgICAgICAgIGFjY2VwdD1cIi50eHQsLm1kLC5jc3YsLmRvYywuZG9jeCwucHB0LC5wcHR4LC5wZGYsLnBuZywuanBnLC5qcGVnLC54bHN4LC54bHNcIlxuICAgICAgICAgIG9uQ2hhbmdlPXtoYW5kbGVGaWxlU2VsZWN0fVxuICAgICAgICAgIHN0eWxlPXt7IGRpc3BsYXk6ICdub25lJyB9fVxuICAgICAgICAvPlxuICAgICAgPC9TQ0FLU1dyYXBwZXI+XG4gICAgICB7bW9kYWxQcm9wcy5pc09wZW4gJiYgKFxuICAgICAgICA8TW9kYWxGaWxlRXhjZWVkc1xuICAgICAgICAgIG9uQ2xvc2U9eygpID0+IHtcbiAgICAgICAgICAgIHNldE1vZGFsUHJvcHMoeyBpc09wZW46IGZhbHNlLCBleGNsdWRlZEZpbGVzOiBbXSwgZXhjZWVkZWRGaWxlczogW10sIGludmFsaWRFeHRlbnNpb25GaWxlczogW10gfSlcbiAgICAgICAgICAgIG9uRmlsZUVycm9yQ2hhbmdlPy4oZmFsc2UpXG4gICAgICAgICAgfX1cbiAgICAgICAgICBleGNsdWRlZEZpbGVzPXttb2RhbFByb3BzLmV4Y2x1ZGVkRmlsZXN9XG4gICAgICAgICAgZXhjZWVkZWRGaWxlcz17bW9kYWxQcm9wcy5leGNlZWRlZEZpbGVzfVxuICAgICAgICAgIGludmFsaWRFeHRlbnNpb25GaWxlcz17bW9kYWxQcm9wcy5pbnZhbGlkRXh0ZW5zaW9uRmlsZXN9XG4gICAgICAgICAgc2VjdGlvbj1cImFibV9hZ2VudFwiXG4gICAgICAgIC8+XG4gICAgICApfVxuICAgICAgPEF0dGFjaG1lbnRQcmV2aWV3TW9kYWxcbiAgICAgICAgaXNPcGVuPXshIXByZXZpZXdBdHRhY2htZW50fVxuICAgICAgICBvbkNsb3NlPXtoYW5kbGVDbG9zZVByZXZpZXd9XG4gICAgICAgIGF0dGFjaG1lbnQ9e3ByZXZpZXdBdHRhY2htZW50fVxuICAgICAgLz5cbiAgICA8Lz5cbiAgKVxufVxuIl0sIm1hcHBpbmdzIjoiOztBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVNBLE9BQU8sUUFBUSw4Q0FBOEM7QUFDdEUsU0FBU0MsVUFBVSxRQUFRLDZDQUE2QztBQUN4RSxTQUFTQyxJQUFJLFFBQVEsdUNBQXVDO0FBQzVELFNBQWlDQyxTQUFTLEVBQUVDLE1BQU0sRUFBRUMsUUFBUSxRQUFRLE9BQU87QUFDM0UsU0FBU0MsY0FBYyxRQUFRLGVBQWU7QUFDOUMsU0FBU0MsY0FBYyxRQUFRLDJDQUEyQztBQUMxRSxTQUFTQyxzQkFBc0IsUUFBUSxvQ0FBb0M7QUFHM0UsU0FDRUMsWUFBWSxFQUNaQyxrQkFBa0IsRUFDbEJDLG1CQUFtQixFQUNuQkMsdUJBQXVCLEVBQ3ZCQyxzQkFBc0IsRUFDdEJDLDZCQUE2QixFQUM3QkMsdUJBQXVCLEVBQ3ZCQyxpQkFBaUIsRUFDakJDLHdCQUF3QixFQUN4QkMsYUFBYSxFQUNiQyxpQkFBaUIsRUFDakJDLGlCQUFpQixFQUNqQkMsaUJBQWlCLEVBQ2pCQyxxQkFBcUIsUUFDaEIsOEJBQThCO0FBQ3JDLFNBQVNDLG9CQUFvQixRQUFRLCtDQUErQztBQUNwRixTQUFTQyx1QkFBdUIsUUFBUSx3Q0FBd0M7QUFDaEYsU0FBU0MsZ0JBQWdCLFFBQVEsbURBQW1EO0FBQ3BGLFNBQVNDLDRCQUE0QixFQUFFQyxTQUFTLFFBQVEscUNBQXFDO0FBQUEsU0FBQUMsR0FBQSxJQUFBQyxJQUFBLEVBQUFDLElBQUEsSUFBQUMsS0FBQSxFQUFBQyxRQUFBLElBQUFDLFNBQUE7QUFFN0YsU0FBU0Ms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