@projectcor/maia-components 2.29.0 → 2.30.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (658) hide show
  1. package/lib/App.js +55 -0
  2. package/lib/components/atoms/ActionableButton.js +60 -0
  3. package/lib/components/atoms/AgentActivityIndicator/AgentActivityIndicator.js +89 -0
  4. package/lib/components/atoms/AgentActivityIndicator/AgentActivityIndicator.styles.js +21 -0
  5. package/lib/components/atoms/AgentActivityIndicator/AgentActivityIndicator.utils.js +9 -0
  6. package/lib/components/atoms/AgentActivityIndicator/index.js +2 -0
  7. package/lib/components/atoms/ApprovalBox/ApprovalBox.js +209 -0
  8. package/lib/components/atoms/ApprovalBox/ApprovalBox.styles.js +93 -0
  9. package/lib/components/atoms/ApprovalBox/index.js +2 -0
  10. package/lib/components/atoms/AttachmentCard/AttachmentCard.js +218 -0
  11. package/lib/components/atoms/AttachmentCard/AttachmentCard.styles.js +52 -0
  12. package/lib/components/atoms/AttachmentCard/AttachmentCardAudio.js +448 -0
  13. package/lib/components/atoms/AttachmentCard/AttachmentCardAudio.styles.js +58 -0
  14. package/lib/components/atoms/AttachmentCard/AttachmentCardImage.js +55 -0
  15. package/lib/components/atoms/AttachmentCard/AttachmentCardImage.styles.js +14 -0
  16. package/lib/components/atoms/AttachmentCard/index.js +4 -0
  17. package/lib/components/atoms/AttachmentPreviewModal/AttachmentPreviewModal.js +442 -0
  18. package/lib/components/atoms/AttachmentPreviewModal/AttachmentPreviewModal.styles.js +119 -0
  19. package/lib/components/atoms/AttachmentPreviewModal/ExcelPreview.js +222 -0
  20. package/lib/components/atoms/AttachmentPreviewModal/PptPreview.js +313 -0
  21. package/lib/components/atoms/AttachmentPreviewModal/WordPreview.js +128 -0
  22. package/lib/components/atoms/AttachmentPreviewModal/index.js +2 -0
  23. package/lib/components/atoms/Backdrop/Backdrop.js +17 -0
  24. package/lib/components/atoms/Backdrop/Backdrop.styles.js +9 -0
  25. package/lib/components/atoms/Backdrop/index.js +2 -0
  26. package/lib/components/atoms/CardItem.js +7 -0
  27. package/lib/components/atoms/CardMenu/CardMenu.js +131 -0
  28. package/lib/components/atoms/CardMenu/index.js +2 -0
  29. package/lib/components/atoms/CardMenu/styles.js +21 -0
  30. package/lib/components/atoms/ChatClientSelector/ChatClientSelector.js +77 -0
  31. package/lib/components/atoms/ChatClientSelector/index.js +2 -0
  32. package/lib/components/atoms/ChatDisclaimerMessage/ChatDisclaimerMessage.js +9 -0
  33. package/lib/components/atoms/ChatDisclaimerMessage/index.js +2 -0
  34. package/lib/components/atoms/ChatDisclaimerMessage/styles.js +6 -0
  35. package/lib/components/atoms/Checkbox/Checkbox.js +34 -0
  36. package/lib/components/atoms/Checkbox/index.js +2 -0
  37. package/lib/components/atoms/Checkbox/styles.js +39 -0
  38. package/lib/components/atoms/Chip/Chip.js +150 -0
  39. package/lib/components/atoms/Chip/index.js +2 -0
  40. package/lib/components/atoms/Chip/styles.js +43 -0
  41. package/lib/components/atoms/ChipLlm/ChipLlm.js +45 -0
  42. package/lib/components/atoms/ChipLlm/ChipLlm.style.js +21 -0
  43. package/lib/components/atoms/ChipLlm/index.js +2 -0
  44. package/lib/components/atoms/ChipStatus/ChipStatus.interface.js +2 -0
  45. package/lib/components/atoms/ChipStatus/ChipStatus.js +14 -0
  46. package/lib/components/atoms/ChipStatus/ChipStatus.styles.js +27 -0
  47. package/lib/components/atoms/ChipStatus/index.js +2 -0
  48. package/lib/components/atoms/ClearButton.js +6 -0
  49. package/lib/components/atoms/ClientSelector/ClientSelector.js +146 -0
  50. package/lib/components/atoms/ClientSelector/ClientSelector.styles.js +15 -0
  51. package/lib/components/atoms/ClientSelector/index.js +2 -0
  52. package/lib/components/atoms/ContextMentionChip/ContextMentionChip.js +38 -0
  53. package/lib/components/atoms/ContextMentionChip/ContextMentionChip.styles.js +188 -0
  54. package/lib/components/atoms/ContextMentionChip/MentionOverflowLabel.js +39 -0
  55. package/lib/components/atoms/ContextMentionChip/buildChipElement.js +434 -0
  56. package/lib/components/atoms/ContextMentionChip/index.js +4 -0
  57. package/lib/components/atoms/ContextMentionEditor/ContextMentionEditor.js +411 -0
  58. package/lib/components/atoms/ContextMentionEditor/ContextMentionEditor.styles.js +10 -0
  59. package/lib/components/atoms/ContextMentionEditor/index.js +2 -0
  60. package/lib/components/atoms/ContextMentionItem/ContextMentionItem.js +309 -0
  61. package/lib/components/atoms/ContextMentionItem/ContextMentionItem.styles.js +157 -0
  62. package/lib/components/atoms/ContextMentionItem/index.js +2 -0
  63. package/lib/components/atoms/ContextMentionPopover/ContextMentionPopover.js +307 -0
  64. package/lib/components/atoms/ContextMentionPopover/ContextMentionPopover.styles.js +108 -0
  65. package/lib/components/atoms/ContextMentionPopover/index.js +3 -0
  66. package/lib/components/atoms/CopyToClipboard.js +70 -0
  67. package/lib/components/atoms/EditableLabel/EditableLabel.js +110 -0
  68. package/lib/components/atoms/EditableLabel/index.js +2 -0
  69. package/lib/components/atoms/EditableLabel/styles.js +7 -0
  70. package/lib/components/atoms/EmptySearchClients/EmptySearchClients.js +22 -0
  71. package/lib/components/atoms/EmptySearchClients/EmptySearchClients.styles.js +18 -0
  72. package/lib/components/atoms/EmptySearchClients/index.js +2 -0
  73. package/lib/components/atoms/EmptySearchProjects/EmptySearchProjects.js +19 -0
  74. package/lib/components/atoms/EmptySearchProjects/EmptySearchProjects.styles.js +15 -0
  75. package/lib/components/atoms/EmptySearchProjects/index.js +2 -0
  76. package/lib/components/atoms/EntitySelector/EntitySelector.js +247 -0
  77. package/lib/components/atoms/EntitySelector/EntitySelector.skeleton.js +38 -0
  78. package/lib/components/atoms/EntitySelector/EntitySelector.styles.js +67 -0
  79. package/lib/components/atoms/EntitySelector/index.js +2 -0
  80. package/lib/components/atoms/ErrorSearchClients/ErrorSearchClients.js +14 -0
  81. package/lib/components/atoms/ErrorSearchClients/ErrorSearchClients.styles.js +15 -0
  82. package/lib/components/atoms/ErrorSearchFaqs/ErrorSearchFaqs.js +14 -0
  83. package/lib/components/atoms/ErrorSearchFaqs/ErrorSearchFaqs.style.js +15 -0
  84. package/lib/components/atoms/ErrorSearchFaqs/index.js +2 -0
  85. package/lib/components/atoms/ErrorSearchProjects/ErrorSearchProjects.js +18 -0
  86. package/lib/components/atoms/ErrorSearchProjects/ErrorSearchProjects.style.js +15 -0
  87. package/lib/components/atoms/ErrorSearchProjects/index.js +2 -0
  88. package/lib/components/atoms/Expand/Expand.js +32 -0
  89. package/lib/components/atoms/Expand/index.js +2 -0
  90. package/lib/components/atoms/Fade/Fade.js +56 -0
  91. package/lib/components/atoms/Fade/index.js +2 -0
  92. package/lib/components/atoms/FeedbackButton/FeedbackButton.js +59 -0
  93. package/lib/components/atoms/FeedbackButton/FeedbackButton.styles.js +14 -0
  94. package/lib/components/atoms/FeedbackButton/index.js +2 -0
  95. package/lib/components/atoms/FrequentlyAskedQuestions/FrequentlyAskedQuestions.js +138 -0
  96. package/lib/components/atoms/FrequentlyAskedQuestions/FrequentlyAskedQuestions.skeleton.js +44 -0
  97. package/lib/components/atoms/FrequentlyAskedQuestions/FrequentlyAskedQuestions.styles.js +43 -0
  98. package/lib/components/atoms/FrequentlyAskedQuestions/index.js +2 -0
  99. package/lib/components/atoms/FrequentlyUsedActions/FrequentlyUsedActions.js +122 -0
  100. package/lib/components/atoms/FrequentlyUsedActions/FrequentlyUsedActions.skeleton.js +43 -0
  101. package/lib/components/atoms/FrequentlyUsedActions/FrequentlyUsedActions.styles.js +62 -0
  102. package/lib/components/atoms/FrequentlyUsedActions/index.js +2 -0
  103. package/lib/components/atoms/GoBackButton.js +24 -0
  104. package/lib/components/atoms/HelpButton.js +44 -0
  105. package/lib/components/atoms/IconButton.js +56 -0
  106. package/lib/components/atoms/ImagePreview/ImagePreview.js +96 -0
  107. package/lib/components/atoms/ImagePreview/ImagePreview.styles.js +70 -0
  108. package/lib/components/atoms/Input/CustomInput.interface.js +2 -0
  109. package/lib/components/atoms/Input/CustomInput.js +91 -0
  110. package/lib/components/atoms/Input/CustomInput.styles.js +39 -0
  111. package/lib/components/atoms/Input/index.js +2 -0
  112. package/lib/components/atoms/ListMenuOption/ListMenuOption.js +41 -0
  113. package/lib/components/atoms/ListMenuOption/index.js +2 -0
  114. package/lib/components/atoms/ListMenuOption/styles.js +9 -0
  115. package/lib/components/atoms/Loader.js +41 -0
  116. package/lib/components/atoms/LoadingFaqs/LoadingFaqs.js +11 -0
  117. package/lib/components/atoms/LoadingFaqs/LoadingFaqs.style.js +6 -0
  118. package/lib/components/atoms/LoadingFaqs/index.js +2 -0
  119. package/lib/components/atoms/LoadingSearchClients/LoadingSearchClients.js +11 -0
  120. package/lib/components/atoms/LoadingSearchClients/LoadingSearchClients.styles.js +6 -0
  121. package/lib/components/atoms/LoadingSearchClients/index.js +2 -0
  122. package/lib/components/atoms/LoadingSearchProjects/LoadingSearchProjects.js +14 -0
  123. package/lib/components/atoms/LoadingSearchProjects/LoadingSearchProjects.style.js +10 -0
  124. package/lib/components/atoms/LoadingSearchProjects/index.js +2 -0
  125. package/lib/components/atoms/LoadingText/LoadingText.js +18 -0
  126. package/lib/components/atoms/LoadingText/index.js +2 -0
  127. package/lib/components/atoms/LoadingText/styles.js +7 -0
  128. package/lib/components/atoms/MAIAButton/MAIAButton.js +33 -0
  129. package/lib/components/atoms/MAIAButton/index.js +2 -0
  130. package/lib/components/atoms/MAIAError/MAIAError.js +15 -0
  131. package/lib/components/atoms/MAIAError/index.js +2 -0
  132. package/lib/components/atoms/MAIAInput/MAIAInput.js +1058 -0
  133. package/lib/components/atoms/MAIAInput/MAIAInputEditor.js +266 -0
  134. package/lib/components/atoms/MAIAInput/index.js +2 -0
  135. package/lib/components/atoms/MAIAInput/maiaInputLayout.js +25 -0
  136. package/lib/components/atoms/MAIAInput/styles.js +182 -0
  137. package/lib/components/atoms/MAIAMessage/MAIAMessage.interfaces.js +2 -0
  138. package/lib/components/atoms/MAIAMessage/MAIAMessage.js +22 -0
  139. package/lib/components/atoms/MAIAMessage/index.js +2 -0
  140. package/lib/components/atoms/MAIAMessage/styles.js +7 -0
  141. package/lib/components/atoms/MaiaStreamdown/MaiaStreamdown.config.js +23 -0
  142. package/lib/components/atoms/MaiaStreamdown/MaiaStreamdown.interfaces.js +2 -0
  143. package/lib/components/atoms/MaiaStreamdown/MaiaStreamdown.js +51 -0
  144. package/lib/components/atoms/MaiaStreamdown/MaiaStreamdown.styles.js +26 -0
  145. package/lib/components/atoms/MaiaStreamdown/index.js +2 -0
  146. package/lib/components/atoms/MaiaWrapper/MaiaWrapper.js +18 -0
  147. package/lib/components/atoms/MaiaWrapper/MaiaWrapperBase.js +84 -0
  148. package/lib/components/atoms/MaiaWrapper/ModernMaiaWrapper.js +15 -0
  149. package/lib/components/atoms/MaiaWrapper/index.js +3 -0
  150. package/lib/components/atoms/MaiaWrapper/styles.js +21 -0
  151. package/lib/components/atoms/ModalClientAccess/ModalClientAccess.interface.js +2 -0
  152. package/lib/components/atoms/ModalClientAccess/ModalClientAccess.js +84 -0
  153. package/lib/components/atoms/ModalClientAccess/ModalClientAccess.styles.js +53 -0
  154. package/lib/components/atoms/ModalClientAccess/index.js +2 -0
  155. package/lib/components/atoms/ModalInfo/ModalInfo.js +52 -0
  156. package/lib/components/atoms/ModalInfo/ModalInfoContent.js +7 -0
  157. package/lib/components/atoms/ModalInfo/index.js +3 -0
  158. package/lib/components/atoms/ModalInfo/styles.js +7 -0
  159. package/lib/components/atoms/ModalProject/ModalProject.interface.js +2 -0
  160. package/lib/components/atoms/ModalProject/ModalProject.js +112 -0
  161. package/lib/components/atoms/ModalProject/ModalProject.style.js +59 -0
  162. package/lib/components/atoms/ModalProject/index.js +2 -0
  163. package/lib/components/atoms/NextPageLoader.js +33 -0
  164. package/lib/components/atoms/OnboardingModalButton/OnboardingModal.js +28 -0
  165. package/lib/components/atoms/OnboardingModalButton/OnboardingModalButton.js +180 -0
  166. package/lib/components/atoms/OnboardingModalButton/OnboardingModalButton.styles.js +34 -0
  167. package/lib/components/atoms/OnboardingModalButton/index.js +3 -0
  168. package/lib/components/atoms/OptionAccessibility/OptionAccessibility.js +131 -0
  169. package/lib/components/atoms/OptionAccessibility/OptionAccessibility.styles.js +59 -0
  170. package/lib/components/atoms/OptionAccessibility/index.js +2 -0
  171. package/lib/components/atoms/OptionCorPermission/OptionCorPermission.js +27 -0
  172. package/lib/components/atoms/OptionCorPermission/OptionCorPermission.styles.js +18 -0
  173. package/lib/components/atoms/OptionCorPermission/index.js +2 -0
  174. package/lib/components/atoms/PrimaryButton.js +31 -0
  175. package/lib/components/atoms/ProjectSelector/ProjectSelector.js +77 -0
  176. package/lib/components/atoms/ProjectSelector/ProjectSelector.styles.js +61 -0
  177. package/lib/components/atoms/ProjectSelector/index.js +2 -0
  178. package/lib/components/atoms/SecondaryButton.js +20 -0
  179. package/lib/components/atoms/SessionGeneratingDot/SessionGeneratingDot.js +20 -0
  180. package/lib/components/atoms/SessionGeneratingDot/SessionGeneratingDot.styles.js +20 -0
  181. package/lib/components/atoms/SessionGeneratingDot/index.js +2 -0
  182. package/lib/components/atoms/Skeleton/Skeleton.js +36 -0
  183. package/lib/components/atoms/Skeleton/index.js +2 -0
  184. package/lib/components/atoms/SlashCommandChip/SlashCommandChip.js +16 -0
  185. package/lib/components/atoms/SlashCommandChip/SlashCommandChip.styles.js +24 -0
  186. package/lib/components/atoms/SlashCommandChip/buildSlashChipElement.js +18 -0
  187. package/lib/components/atoms/SlashCommandChip/index.js +4 -0
  188. package/lib/components/atoms/SlashCommandDropdown/SlashCommandDropdown.js +210 -0
  189. package/lib/components/atoms/SlashCommandDropdown/SlashCommandDropdown.styles.js +53 -0
  190. package/lib/components/atoms/SlashCommandDropdown/index.js +2 -0
  191. package/lib/components/atoms/Switch/Switch.js +27 -0
  192. package/lib/components/atoms/Switch/Switch.styles.js +22 -0
  193. package/lib/components/atoms/Switch/index.js +2 -0
  194. package/lib/components/atoms/TextArea/CustomTextArea.interface.js +2 -0
  195. package/lib/components/atoms/TextArea/CustomTextArea.js +93 -0
  196. package/lib/components/atoms/TextArea/CustomTextArea.styles.js +25 -0
  197. package/lib/components/atoms/TextArea/TextArea.interfaces.js +2 -0
  198. package/lib/components/atoms/TextArea/TextArea.js +172 -0
  199. package/lib/components/atoms/TextArea/TextArea.styles.js +16 -0
  200. package/lib/components/atoms/TextArea/index.js +2 -0
  201. package/lib/components/atoms/ThirdButton.js +19 -0
  202. package/lib/components/atoms/VideoModal/VideoModal.js +76 -0
  203. package/lib/components/atoms/VideoModal/index.js +2 -0
  204. package/lib/components/atoms/WithAppCfg.js +26 -0
  205. package/lib/components/atoms/WithFeatureValidation.js +23 -0
  206. package/lib/components/atoms/WrapperCenterIcon/WrapperCenterIcon.js +9 -0
  207. package/lib/components/atoms/WrapperCenterIcon/WrapperCenterIcon.styles.js +6 -0
  208. package/lib/components/atoms/WrapperCenterIcon/index.js +2 -0
  209. package/lib/components/atoms/icons/AIIcon.js +23 -0
  210. package/lib/components/atoms/icons/AacFile.js +39 -0
  211. package/lib/components/atoms/icons/AccessibilityIcon.js +42 -0
  212. package/lib/components/atoms/icons/ActionAssignIcon.js +111 -0
  213. package/lib/components/atoms/icons/ActionCalendarIcon.js +112 -0
  214. package/lib/components/atoms/icons/ActionChargeHoursIcon.js +111 -0
  215. package/lib/components/atoms/icons/ActionChatIcon.js +71 -0
  216. package/lib/components/atoms/icons/ActionCreateIcon.js +91 -0
  217. package/lib/components/atoms/icons/ActionCreateReworkIcon.js +39 -0
  218. package/lib/components/atoms/icons/ActionCreateSubtaskIcon.js +37 -0
  219. package/lib/components/atoms/icons/ActionEditIcon.js +39 -0
  220. package/lib/components/atoms/icons/ActionSummaryMessagesIcon.js +88 -0
  221. package/lib/components/atoms/icons/ActionSummaryTaskIcon.js +37 -0
  222. package/lib/components/atoms/icons/ActionTimeBackIcon.js +112 -0
  223. package/lib/components/atoms/icons/AgentMaiaIcon.js +31 -0
  224. package/lib/components/atoms/icons/Brain.js +77 -0
  225. package/lib/components/atoms/icons/CorAccessIcon.js +41 -0
  226. package/lib/components/atoms/icons/CorLogo.js +76 -0
  227. package/lib/components/atoms/icons/CsvFile.js +41 -0
  228. package/lib/components/atoms/icons/DocFile.js +41 -0
  229. package/lib/components/atoms/icons/DocxFile.js +41 -0
  230. package/lib/components/atoms/icons/EmptyClientIllustration.js +67 -0
  231. package/lib/components/atoms/icons/EmptyHistory.js +46 -0
  232. package/lib/components/atoms/icons/EmptySearchIllustration.js +37 -0
  233. package/lib/components/atoms/icons/EmptyState.js +84 -0
  234. package/lib/components/atoms/icons/EmptyStateAgents.js +58 -0
  235. package/lib/components/atoms/icons/ErrorIcon.js +14 -0
  236. package/lib/components/atoms/icons/ErrorSearchIllustration.js +52 -0
  237. package/lib/components/atoms/icons/ErrorState.js +51 -0
  238. package/lib/components/atoms/icons/FaqChevronIcon.js +39 -0
  239. package/lib/components/atoms/icons/FaqsIcon.js +51 -0
  240. package/lib/components/atoms/icons/FlacIcon.js +39 -0
  241. package/lib/components/atoms/icons/FolderIcon.js +29 -0
  242. package/lib/components/atoms/icons/HomeIcon.js +30 -0
  243. package/lib/components/atoms/icons/ImageFile.js +46 -0
  244. package/lib/components/atoms/icons/M4aFile.js +39 -0
  245. package/lib/components/atoms/icons/MAIAIcon.js +20 -0
  246. package/lib/components/atoms/icons/MAIAIsologo.js +65 -0
  247. package/lib/components/atoms/icons/MDFile.js +41 -0
  248. package/lib/components/atoms/icons/MaiaChatLayoutFloatingIcon.js +41 -0
  249. package/lib/components/atoms/icons/MaiaChatLayoutFullscreenIcon.js +41 -0
  250. package/lib/components/atoms/icons/MaiaChatLayoutMenuIcon.js +33 -0
  251. package/lib/components/atoms/icons/MaiaChatLayoutSidebarIcon.js +41 -0
  252. package/lib/components/atoms/icons/MaiaInputAddIcon.js +42 -0
  253. package/lib/components/atoms/icons/MaiaInputAttachIcon.js +29 -0
  254. package/lib/components/atoms/icons/MaiaInputAttachmentImageIcon.js +33 -0
  255. package/lib/components/atoms/icons/MaiaInputDeepSearchIcon.js +35 -0
  256. package/lib/components/atoms/icons/MaiaInputMentionIcon.js +44 -0
  257. package/lib/components/atoms/icons/MaiaInputRobotIcon.js +29 -0
  258. package/lib/components/atoms/icons/MaiaInputSendIcon.js +29 -0
  259. package/lib/components/atoms/icons/MaiaInputSlashIcon.js +29 -0
  260. package/lib/components/atoms/icons/MaiaInputWebSearchIcon.js +35 -0
  261. package/lib/components/atoms/icons/MaiaSettingsProject.js +111 -0
  262. package/lib/components/atoms/icons/MaiaSettingsProjectV2.js +193 -0
  263. package/lib/components/atoms/icons/MaiaSparkleIcon.js +75 -0
  264. package/lib/components/atoms/icons/MaiaStoreIcon.js +31 -0
  265. package/lib/components/atoms/icons/Mp3File.js +39 -0
  266. package/lib/components/atoms/icons/Mp4File.js +39 -0
  267. package/lib/components/atoms/icons/MyAgentsNavIcon.js +51 -0
  268. package/lib/components/atoms/icons/NewChat.js +29 -0
  269. package/lib/components/atoms/icons/NotionIcon.js +36 -0
  270. package/lib/components/atoms/icons/OgaFile.js +39 -0
  271. package/lib/components/atoms/icons/OggFile.js +39 -0
  272. package/lib/components/atoms/icons/PdfFile.js +39 -0
  273. package/lib/components/atoms/icons/PptFile.js +47 -0
  274. package/lib/components/atoms/icons/PptxFile.js +49 -0
  275. package/lib/components/atoms/icons/RetryIcon.js +34 -0
  276. package/lib/components/atoms/icons/SkillIcon.js +30 -0
  277. package/lib/components/atoms/icons/SkillsNavIcon.js +27 -0
  278. package/lib/components/atoms/icons/SubtaskIcon.js +36 -0
  279. package/lib/components/atoms/icons/TaskLinkIcon.js +27 -0
  280. package/lib/components/atoms/icons/TelescopeIcon.js +60 -0
  281. package/lib/components/atoms/icons/TemplateGradientIcon.js +42 -0
  282. package/lib/components/atoms/icons/TextFile.js +41 -0
  283. package/lib/components/atoms/icons/WavFile.js +39 -0
  284. package/lib/components/atoms/icons/WebmFile.js +50 -0
  285. package/lib/components/atoms/icons/XlsFile.js +42 -0
  286. package/lib/components/atoms/icons/XlsxFile.js +42 -0
  287. package/lib/components/atoms/icons/index.js +50 -0
  288. package/lib/components/atoms/index.js +42 -0
  289. package/lib/components/index.js +11 -0
  290. package/lib/components/molecules/AbmSection/AbmAccessibilitySection/AbmAccessibilitySection.interface.js +2 -0
  291. package/lib/components/molecules/AbmSection/AbmAccessibilitySection/AbmAccessibilitySection.js +149 -0
  292. package/lib/components/molecules/AbmSection/AbmAccessibilitySection/AbmAccessibilitySection.styles.js +53 -0
  293. package/lib/components/molecules/AbmSection/AbmGeneralSection.js +415 -0
  294. package/lib/components/molecules/AbmSection/AbmGeneralSection.styles.js +152 -0
  295. package/lib/components/molecules/AbmSection/AbmKnowledgeSection.js +374 -0
  296. package/lib/components/molecules/AbmSection/AbmKnowledgeSection.styles.js +106 -0
  297. package/lib/components/molecules/AbmSection/AbmLoaderFiles.js +92 -0
  298. package/lib/components/molecules/AbmSection/AbmLoaderFiles.styles.js +57 -0
  299. package/lib/components/molecules/AbmSection/index.js +4 -0
  300. package/lib/components/molecules/ChatAIClientSelector/ChatAIClientSelector.js +52 -0
  301. package/lib/components/molecules/ChatAIClientSelector/index.js +2 -0
  302. package/lib/components/molecules/ChatAIContent/ChatAIContent.js +117 -0
  303. package/lib/components/molecules/ChatAIContent/ChatAIContent.skeleton.js +187 -0
  304. package/lib/components/molecules/ChatAIContent/ChatAIContent.styles.js +6 -0
  305. package/lib/components/molecules/ChatAIContent/index.js +2 -0
  306. package/lib/components/molecules/ChatAIHistory/ChatAIHistory.js +241 -0
  307. package/lib/components/molecules/ChatAIHistory/index.js +2 -0
  308. package/lib/components/molecules/ChatAIHistory/styles.js +22 -0
  309. package/lib/components/molecules/ChatAIHome/ChatAIHome.js +649 -0
  310. package/lib/components/molecules/ChatAIHome/ChatAIHomeMaiaker.js +115 -0
  311. package/lib/components/molecules/ChatAIHome/ChatAIHomeMaiaker.styles.js +95 -0
  312. package/lib/components/molecules/ChatAIHome/index.js +2 -0
  313. package/lib/components/molecules/ChatAIHome/styles.js +335 -0
  314. package/lib/components/molecules/ChatAIMessages/ChatAICreateAgentActions.js +137 -0
  315. package/lib/components/molecules/ChatAIMessages/ChatAIMessages.js +853 -0
  316. package/lib/components/molecules/ChatAIMessages/ChatAISuggestions.js +47 -0
  317. package/lib/components/molecules/ChatAIMessages/ChatAISuggestions.styles.js +37 -0
  318. package/lib/components/molecules/ChatAIMessages/README.md +101 -0
  319. package/lib/components/molecules/ChatAIMessages/index.js +2 -0
  320. package/lib/components/molecules/ChatAIMessages/newStyles.js +131 -0
  321. package/lib/components/molecules/ChatAIMessages/styles.js +94 -0
  322. package/lib/components/molecules/ChatAIModal/ChatAIModal.js +1217 -0
  323. package/lib/components/molecules/ChatAIModal/ChatAIModal.styles.js +58 -0
  324. package/lib/components/molecules/ChatAIModal/components/ChatAiAgentOptions/ChatAiAgentOptions.js +127 -0
  325. package/lib/components/molecules/ChatAIModal/components/ChatAiAgentOptions/ChatAiAgentOptions.styles.js +34 -0
  326. package/lib/components/molecules/ChatAIModal/components/ChatAiAgentOptions/index.js +2 -0
  327. package/lib/components/molecules/ChatAIModal/components/ChatAiModalFooter/ChatAiModalFooter.js +189 -0
  328. package/lib/components/molecules/ChatAIModal/components/ChatAiModalFooter/ChatAiModalFooter.styles.js +26 -0
  329. package/lib/components/molecules/ChatAIModal/components/ChatAiModalFooter/index.js +2 -0
  330. package/lib/components/molecules/ChatAIModal/components/ChatAiModalHeader/ChatAiModalHeader.js +448 -0
  331. package/lib/components/molecules/ChatAIModal/components/ChatAiModalHeader/ChatAiModalHeader.styles.js +108 -0
  332. package/lib/components/molecules/ChatAIModal/components/ChatAiModalHeader/index.js +2 -0
  333. package/lib/components/molecules/ChatAIModal/components/MaiaMinimizedPill/MaiaMinimizedPill.js +48 -0
  334. package/lib/components/molecules/ChatAIModal/components/MaiaMinimizedPill/MaiaMinimizedPill.styles.js +38 -0
  335. package/lib/components/molecules/ChatAIModal/components/MaiaMinimizedPill/index.js +2 -0
  336. package/lib/components/molecules/ChatAIModal/constants.js +40 -0
  337. package/lib/components/molecules/ChatAIModal/floatingPanelMotion/FloatingPanelMotion.js +16 -0
  338. package/lib/components/molecules/ChatAIModal/floatingPanelMotion/FloatingPanelMotion.styles.js +12 -0
  339. package/lib/components/molecules/ChatAIModal/floatingPanelMotion/constants.js +13 -0
  340. package/lib/components/molecules/ChatAIModal/floatingPanelMotion/index.js +3 -0
  341. package/lib/components/molecules/ChatAIModal/floatingPanelMotion/useFloatingPanelDragTilt.js +57 -0
  342. package/lib/components/molecules/ChatAIModal/index.js +2 -0
  343. package/lib/components/molecules/ChatAIModal/layout.js +74 -0
  344. package/lib/components/molecules/ChatAIMyAgents/ChatAIMyAgents.js +457 -0
  345. package/lib/components/molecules/ChatAIMyAgents/ChatAIMyAgents.styles.js +218 -0
  346. package/lib/components/molecules/ChatAIMySkills/ChatAIMySkills.js +357 -0
  347. package/lib/components/molecules/ChatAIMySkills/ChatAIMySkills.styles.js +145 -0
  348. package/lib/components/molecules/ChatAIMySkills/index.js +2 -0
  349. package/lib/components/molecules/ChatAIProjectSelector/ChatAIProjectSelector.js +48 -0
  350. package/lib/components/molecules/ChatAIProjectSelector/ChatAIProjectSelector.styles.js +49 -0
  351. package/lib/components/molecules/ChatAIProjectSelector/index.js +2 -0
  352. package/lib/components/molecules/ChatFooter/ChatFooter.js +337 -0
  353. package/lib/components/molecules/ChatFooter/ChatFooterCorAccess.js +32 -0
  354. package/lib/components/molecules/ChatFooter/ChatFooterCorAccess.styles.js +14 -0
  355. package/lib/components/molecules/ChatFooter/ChatFooterFaqs.js +201 -0
  356. package/lib/components/molecules/ChatFooter/ChatFooterFaqs.styles.js +51 -0
  357. package/lib/components/molecules/ChatFooter/index.js +2 -0
  358. package/lib/components/molecules/ChatFooter/styles.js +23 -0
  359. package/lib/components/molecules/ContextMentionInput/ContextMentionInput.js +62 -0
  360. package/lib/components/molecules/ContextMentionInput/ContextMentionInput.styles.js +6 -0
  361. package/lib/components/molecules/ContextMentionInput/index.js +2 -0
  362. package/lib/components/molecules/MessageFeedback/MessageFeedback.js +118 -0
  363. package/lib/components/molecules/MessageFeedback/index.js +2 -0
  364. package/lib/components/molecules/MessageFeedback/styles.js +14 -0
  365. package/lib/components/molecules/ProjectSummaryChat/ProjectSummaryChat.js +127 -0
  366. package/lib/components/molecules/ProjectSummaryChat/index.js +2 -0
  367. package/lib/components/molecules/ProjectSummaryChat/styles.js +8 -0
  368. package/lib/components/molecules/ProjectSummaryConfig/ProjectSummaryConfig.js +152 -0
  369. package/lib/components/molecules/ProjectSummaryConfig/index.js +2 -0
  370. package/lib/components/molecules/ProjectSummaryConfig/styles.js +86 -0
  371. package/lib/components/molecules/ProjectSummaryContent/ProjectSummaryContent.js +49 -0
  372. package/lib/components/molecules/ProjectSummaryContent/index.js +2 -0
  373. package/lib/components/molecules/ProjectSummaryModal/ProjectSummaryModal.js +19 -0
  374. package/lib/components/molecules/ProjectSummaryModal/index.js +2 -0
  375. package/lib/components/molecules/ProjectSummaryModal/styles.js +2 -0
  376. package/lib/components/molecules/Sidebar/Sidebar.js +715 -0
  377. package/lib/components/molecules/Sidebar/Sidebar.layout.styles.js +157 -0
  378. package/lib/components/molecules/Sidebar/Sidebar.skeleton.js +48 -0
  379. package/lib/components/molecules/Sidebar/Sidebar.styles.js +75 -0
  380. package/lib/components/molecules/Sidebar/index.js +2 -0
  381. package/lib/components/organisms/AbmAgentModal/AbmAgentModal.js +1420 -0
  382. package/lib/components/organisms/AbmAgentModal/AbmAgentModal.styles.js +93 -0
  383. package/lib/components/organisms/AbmAgentModal/index.js +2 -0
  384. package/lib/components/organisms/AbmSkillGenerateModal/AbmSkillGenerateModal.js +175 -0
  385. package/lib/components/organisms/AbmSkillGenerateModal/AbmSkillGenerateModal.styles.js +34 -0
  386. package/lib/components/organisms/AbmSkillGenerateModal/index.js +2 -0
  387. package/lib/components/organisms/AbmSkillModal/AbmSkillModal.js +432 -0
  388. package/lib/components/organisms/AbmSkillModal/AbmSkillModal.styles.js +98 -0
  389. package/lib/components/organisms/AbmSkillModal/index.js +2 -0
  390. package/lib/components/organisms/ChatAI/ChatAI.js +167 -0
  391. package/lib/components/organisms/ChatAI/index.js +2 -0
  392. package/lib/components/organisms/ChatAI/styles.js +7 -0
  393. package/lib/components/organisms/ClientAIButton/ClientAIButton.js +23 -0
  394. package/lib/components/organisms/ClientAIButton/index.js +2 -0
  395. package/lib/components/organisms/DeleteAgentModal/DeleteAgentModal.js +86 -0
  396. package/lib/components/organisms/DeleteAgentModal/DeleteAgentModal.styles.js +39 -0
  397. package/lib/components/organisms/DeleteAgentModal/index.js +2 -0
  398. package/lib/components/organisms/DeleteQuestionModal/DeleteQuestionModal.js +122 -0
  399. package/lib/components/organisms/DeleteQuestionModal/DeleteQuestionModal.styles.js +47 -0
  400. package/lib/components/organisms/DeleteQuestionModal/index.js +2 -0
  401. package/lib/components/organisms/EditQuestionModal/EditQuestionModal.js +138 -0
  402. package/lib/components/organisms/EditQuestionModal/EditQuestionModal.styles.js +69 -0
  403. package/lib/components/organisms/EditQuestionModal/index.js +2 -0
  404. package/lib/components/organisms/ModalFileExceeds/ModalFileExceeds.js +113 -0
  405. package/lib/components/organisms/ModalFileExceeds/ModalFileExceeds.styles.js +54 -0
  406. package/lib/components/organisms/ModalFileExceeds/index.js +2 -0
  407. package/lib/components/organisms/ProjectAIButton/ProjectAIButton.js +26 -0
  408. package/lib/components/organisms/ProjectAIButton/index.js +2 -0
  409. package/lib/components/organisms/ProjectSummary/ProjectSummary.js +60 -0
  410. package/lib/components/organisms/ProjectSummary/index.js +2 -0
  411. package/lib/components/organisms/ProjectSummary/styles.js +7 -0
  412. package/lib/components/organisms/SnackBar/Snackbar.interface.js +2 -0
  413. package/lib/components/organisms/SnackBar/Snackbar.js +73 -0
  414. package/lib/components/organisms/SnackBar/Snackbar.styles.js +9 -0
  415. package/lib/components/organisms/SnackBar/index.js +2 -0
  416. package/lib/components/organisms/SourcesInformation/SourceItem.js +18 -0
  417. package/lib/components/organisms/SourcesInformation/SourceItem.styles.js +14 -0
  418. package/lib/components/organisms/SourcesInformation/SourcesInformationModal.js +66 -0
  419. package/lib/components/organisms/SourcesInformation/SourcesInformationModal.styles.js +27 -0
  420. package/lib/components/organisms/SourcesInformation/index.js +2 -0
  421. package/lib/constants/config.js +13 -0
  422. package/lib/constants/formatExtensions.js +55 -0
  423. package/lib/constants/gqlClient.js +4 -0
  424. package/lib/constants/maiaHourAgentAccess.js +15 -0
  425. package/lib/constants/maiaTaskPanelAccess.js +24 -0
  426. package/lib/constants/maiaTaskPanelOutsideClick.js +9 -0
  427. package/lib/constants/maiaTaskPanelZIndex.js +19 -0
  428. package/lib/constants/permissions/config.js +72 -0
  429. package/lib/constants/permissions/index.js +3 -0
  430. package/lib/constants/permissions/types.js +2 -0
  431. package/lib/constants/permissions/utils.js +18 -0
  432. package/lib/constants/plannerSyncEvents.js +15 -0
  433. package/lib/constants/taskLinkIcon.js +15 -0
  434. package/lib/constants/taskUrls.js +11 -0
  435. package/lib/context/cor-user.js +31 -0
  436. package/lib/context/global-context.js +39 -0
  437. package/lib/dev/DevChatAI.js +101 -0
  438. package/lib/dev/DevContextMentionInput.js +67 -0
  439. package/lib/dev/ProjectSummary.js +9 -0
  440. package/lib/dev/Providers.js +27 -0
  441. package/lib/exports.js +2 -0
  442. package/lib/hooks/README.md +192 -0
  443. package/lib/hooks/index.js +30 -0
  444. package/lib/hooks/useAccessClient/index.js +2 -0
  445. package/lib/hooks/useAccessClient/useAccessClient.js +81 -0
  446. package/lib/hooks/useAgentModel/index.js +2 -0
  447. package/lib/hooks/useAgentModel/useAgentModel.js +62 -0
  448. package/lib/hooks/useAgentModel/useCreateAgent.js +128 -0
  449. package/lib/hooks/useAgentModel/useDeleteAgent.js +88 -0
  450. package/lib/hooks/useAgentModel/useUpdateAgent.js +129 -0
  451. package/lib/hooks/useAgentSuggestions.js +60 -0
  452. package/lib/hooks/useCaretPosition.js +65 -0
  453. package/lib/hooks/useChatManager/index.js +2 -0
  454. package/lib/hooks/useChatManager/useChatManager.interface.js +2 -0
  455. package/lib/hooks/useChatManager/useChatManager.js +1782 -0
  456. package/lib/hooks/useChatMessages/index.js +2 -0
  457. package/lib/hooks/useChatMessages/useChatMessages.interface.js +2 -0
  458. package/lib/hooks/useChatMessages/useChatMessages.js +722 -0
  459. package/lib/hooks/useChats/index.js +2 -0
  460. package/lib/hooks/useChats/useChats.interfaces.js +2 -0
  461. package/lib/hooks/useChats/useChats.js +187 -0
  462. package/lib/hooks/useClientSearch.js +163 -0
  463. package/lib/hooks/useContextMentions.js +463 -0
  464. package/lib/hooks/useContextPinPopover.js +228 -0
  465. package/lib/hooks/useDebounce.js +18 -0
  466. package/lib/hooks/useEntitySearch.js +1239 -0
  467. package/lib/hooks/useEvent.js +93 -0
  468. package/lib/hooks/useFrequentlyAskedQuestions.js +150 -0
  469. package/lib/hooks/useFrequentlyUsedActions.js +94 -0
  470. package/lib/hooks/useKnowledge/deleteKnowledge.js +69 -0
  471. package/lib/hooks/useKnowledge/downloadKnowledge.js +81 -0
  472. package/lib/hooks/useKnowledge/index.js +4 -0
  473. package/lib/hooks/useKnowledge/saveKnowledge.js +107 -0
  474. package/lib/hooks/useKnowledge/useKnowledgeOperations.js +156 -0
  475. package/lib/hooks/useMaiaTaskPanelZIndex.js +17 -0
  476. package/lib/hooks/useMentionAllowedTypes.js +136 -0
  477. package/lib/hooks/useMentionPopover.js +366 -0
  478. package/lib/hooks/useMinimizedPillBottomOffset.js +110 -0
  479. package/lib/hooks/useModal/index.js +2 -0
  480. package/lib/hooks/useModal/useModal.interfaces.js +2 -0
  481. package/lib/hooks/useModal/useModal.js +47 -0
  482. package/lib/hooks/useOnboardingNavigation.js +20 -0
  483. package/lib/hooks/useOrchestratorStream/index.js +2 -0
  484. package/lib/hooks/useOrchestratorStream/useOrchestratorStream.interface.js +2 -0
  485. package/lib/hooks/useOrchestratorStream/useOrchestratorStream.js +269 -0
  486. package/lib/hooks/useProjectSearch.js +183 -0
  487. package/lib/hooks/useProjectSummary.js +101 -0
  488. package/lib/hooks/useProjectSummaryConfig.js +211 -0
  489. package/lib/hooks/useProjects.js +46 -0
  490. package/lib/hooks/useRecentClientsSearch.js +150 -0
  491. package/lib/hooks/useRecentContexts.js +86 -0
  492. package/lib/hooks/useResize.js +29 -0
  493. package/lib/hooks/useSlashCommands.js +84 -0
  494. package/lib/hooks/useSmoothStreamText/index.js +2 -0
  495. package/lib/hooks/useSmoothStreamText/useSmoothStreamText.js +197 -0
  496. package/lib/hooks/useSnackBarManager/useSnackBarManager.js +41 -0
  497. package/lib/hooks/useStreamResponse.js +112 -0
  498. package/lib/hooks/useStreamdownStyles.js +13 -0
  499. package/lib/hooks/useStreamingMessage/index.js +2 -0
  500. package/lib/hooks/useStreamingMessage/useStreamingMessage.js +18 -0
  501. package/lib/hooks/useT.js +17 -0
  502. package/lib/hooks/useTabTaskDefault.js +33 -0
  503. package/lib/hooks/useTaskPanel.js +22 -0
  504. package/lib/hooks/useTextOverflowEllipsisTooltip.js +34 -0
  505. package/lib/hooks/useToggle.js +19 -0
  506. package/lib/hooks/useToggleFavorite/index.js +2 -0
  507. package/lib/hooks/useToggleFavorite/useToggleFavorite.js +83 -0
  508. package/lib/index.css +76 -0
  509. package/lib/index.js +30 -0
  510. package/lib/lang/br/index.js +761 -0
  511. package/lib/lang/en/index.js +761 -0
  512. package/lib/lang/es/index.js +762 -0
  513. package/lib/lang/fr/index.js +582 -0
  514. package/lib/lang/index.js +24 -0
  515. package/lib/lang/utils.js +33 -0
  516. package/lib/mocks/mockChats.js +395 -0
  517. package/lib/mocks/mockOrchestrator.js +5 -0
  518. package/lib/mocks/mockProject.js +11 -0
  519. package/lib/mocks/mockProjectSummary.js +6 -0
  520. package/lib/mocks/mockedUser.js +169 -0
  521. package/lib/services/apolloClient.js +3 -0
  522. package/lib/services/appcues.js +19 -0
  523. package/lib/services/corpilot/ProjectSummary/getProjectSummary.js +31 -0
  524. package/lib/services/corpilot/ProjectSummary/index.js +5 -0
  525. package/lib/services/corpilot/client.js +27 -0
  526. package/lib/services/corpilot/index.js +5 -0
  527. package/lib/services/maia/Access/updateAccess.js +59 -0
  528. package/lib/services/maia/Actions/getFrequentlyUsedActions.js +46 -0
  529. package/lib/services/maia/Actions/getSlashCommands.js +39 -0
  530. package/lib/services/maia/Actions/index.js +7 -0
  531. package/lib/services/maia/Agents/createAgent.js +39 -0
  532. package/lib/services/maia/Agents/deleteAgent.js +38 -0
  533. package/lib/services/maia/Agents/fetchAgentDetail.js +122 -0
  534. package/lib/services/maia/Agents/getAgentById.js +162 -0
  535. package/lib/services/maia/Agents/getAgentModels.js +112 -0
  536. package/lib/services/maia/Agents/getAgentSuggestions.js +44 -0
  537. package/lib/services/maia/Agents/getAgents.js +718 -0
  538. package/lib/services/maia/Agents/setAgentToolGroups.js +42 -0
  539. package/lib/services/maia/Agents/toggleFavorite.js +34 -0
  540. package/lib/services/maia/Agents/updateAgent.js +39 -0
  541. package/lib/services/maia/Chats/deleteChat.js +32 -0
  542. package/lib/services/maia/Chats/getChatMessages.js +144 -0
  543. package/lib/services/maia/Chats/getChatsByUserId.js +82 -0
  544. package/lib/services/maia/Chats/index.js +15 -0
  545. package/lib/services/maia/Chats/markSessionAsRead.js +32 -0
  546. package/lib/services/maia/Chats/patchChat.js +43 -0
  547. package/lib/services/maia/Chats/wasHelpfulChat.js +31 -0
  548. package/lib/services/maia/Faqs/getFrequentlyAskedQuestions.js +55 -0
  549. package/lib/services/maia/Faqs/index.js +5 -0
  550. package/lib/services/maia/Knowledge/delete.js +41 -0
  551. package/lib/services/maia/Knowledge/download.js +48 -0
  552. package/lib/services/maia/Knowledge/index.js +3 -0
  553. package/lib/services/maia/Knowledge/save.js +43 -0
  554. package/lib/services/maia/Orchestrator/index.js +7 -0
  555. package/lib/services/maia/Orchestrator/orchestrator.js +246 -0
  556. package/lib/services/maia/RecentClients/getRecentClients.js +43 -0
  557. package/lib/services/maia/RecentClients/index.js +6 -0
  558. package/lib/services/maia/RecentContexts/getRecentContexts.js +54 -0
  559. package/lib/services/maia/RecentContexts/index.js +6 -0
  560. package/lib/services/maia/RecentProjects/getRecentProjects.js +55 -0
  561. package/lib/services/maia/RecentProjects/index.js +6 -0
  562. package/lib/services/maia/RecentTasks/getRecentTasks.js +54 -0
  563. package/lib/services/maia/RecentTasks/index.js +6 -0
  564. package/lib/services/maia/RecentUsers/getRecentUsers.js +59 -0
  565. package/lib/services/maia/RecentUsers/index.js +6 -0
  566. package/lib/services/maia/Skills/createSkill.js +39 -0
  567. package/lib/services/maia/Skills/deleteSkill.js +38 -0
  568. package/lib/services/maia/Skills/generateSkill.js +41 -0
  569. package/lib/services/maia/Skills/getSkills.js +90 -0
  570. package/lib/services/maia/Skills/updateSkill.js +39 -0
  571. package/lib/services/maia/client.js +27 -0
  572. package/lib/services/maia/index.js +17 -0
  573. package/lib/services/query/ClientSearchQuery.js +5 -0
  574. package/lib/services/query/entitySearchQuery.js +18 -0
  575. package/lib/services/query/index.js +2 -0
  576. package/lib/services/query/projectSearchByValueQuery.js +5 -0
  577. package/lib/services/query/taskUserTabQuery.js +8 -0
  578. package/lib/services/query/usersDirectoryQuery.js +19 -0
  579. package/lib/services/types.js +6 -0
  580. package/lib/services/utils/fetchCOR.js +117 -0
  581. package/lib/services/utils/getCookie.js +10 -0
  582. package/lib/services/utils/index.js +3 -0
  583. package/lib/services/utils/mapChatMessages.js +287 -0
  584. package/lib/services/utils/validateIsMaia.js +4 -0
  585. package/lib/store/chatsSidebarOptimistic.js +92 -0
  586. package/lib/store/chatsStore.types.js +2 -0
  587. package/lib/store/chatsStoreLifecycle.js +8 -0
  588. package/lib/store/faqsStore.types.js +2 -0
  589. package/lib/store/index.js +4 -0
  590. package/lib/store/maiaLastChatPersistence.js +35 -0
  591. package/lib/store/sessions/activeView.js +22 -0
  592. package/lib/store/sessions/index.js +9 -0
  593. package/lib/store/sessions/sessionHitlContext.js +15 -0
  594. package/lib/store/sessions/sessionNotificationSound.js +57 -0
  595. package/lib/store/sessions/sessionNotifications.js +110 -0
  596. package/lib/store/sessions/sessionNotifications.types.js +2 -0
  597. package/lib/store/sessions/sessionStreamManager.js +715 -0
  598. package/lib/store/sessions/sessionStreamingText.js +80 -0
  599. package/lib/store/sessions/sessions.types.js +35 -0
  600. package/lib/store/sessions/useSessionMeta.js +39 -0
  601. package/lib/store/sessions/useSessionStreamingText.js +18 -0
  602. package/lib/store/sessions/useSessionsStore.js +197 -0
  603. package/lib/store/useChatsStore.js +387 -0
  604. package/lib/store/useFaqsStore.js +27 -0
  605. package/lib/streamdownStyles.js +9 -0
  606. package/lib/styles/StyledCleanContainer.js +7 -0
  607. package/lib/styles/cascade.js +14 -0
  608. package/lib/styles/config.js +47 -0
  609. package/lib/styles/shared/scrollable.js +3 -0
  610. package/lib/styles/transitions.js +21 -0
  611. package/lib/types/Action.js +2 -0
  612. package/lib/types/AgentSuggestion.js +2 -0
  613. package/lib/types/Chat.js +10 -0
  614. package/lib/types/Client.js +2 -0
  615. package/lib/types/FrequentlyAskedQuestion.js +2 -0
  616. package/lib/types/Project.js +2 -0
  617. package/lib/types/ProjectSummaryConfigKeys.js +9 -0
  618. package/lib/types/Task.js +2 -0
  619. package/lib/types/agent.js +2 -0
  620. package/lib/types/agentModal.js +2 -0
  621. package/lib/types/contextMention.js +37 -0
  622. package/lib/types/global.d.js +2 -0
  623. package/lib/types/skill.js +2 -0
  624. package/lib/types/streamActivity.js +2 -0
  625. package/lib/types/userType.d.js +2 -0
  626. package/lib/utils/actionCategoryMap.js +37 -0
  627. package/lib/utils/actionIconMap.js +61 -0
  628. package/lib/utils/agentDisplayName.js +42 -0
  629. package/lib/utils/chatInputFiles.js +52 -0
  630. package/lib/utils/contextMentionIcons.js +134 -0
  631. package/lib/utils/contextMentionLabel.js +4 -0
  632. package/lib/utils/contextMentionTriggers.js +54 -0
  633. package/lib/utils/contextMentionTypeLabel.js +17 -0
  634. package/lib/utils/corConnectorMentionTypes.js +41 -0
  635. package/lib/utils/ensureStreamdownStyles.js +21 -0
  636. package/lib/utils/entityLinkRender.js +135 -0
  637. package/lib/utils/fileDownloadHelper.js +40 -0
  638. package/lib/utils/formatQuickActionMessage.js +16 -0
  639. package/lib/utils/formatUnreadCount.js +6 -0
  640. package/lib/utils/getUnitFileSize.js +13 -0
  641. package/lib/utils/hitlAnalytics.js +65 -0
  642. package/lib/utils/hoursPlannerQuickActionType.js +64 -0
  643. package/lib/utils/imagePreprocessor.js +108 -0
  644. package/lib/utils/index.js +3 -0
  645. package/lib/utils/maiaHostOpen.js +19 -0
  646. package/lib/utils/maiaStreamdownRehypePlugins.js +27 -0
  647. package/lib/utils/mapBackendLang.js +8 -0
  648. package/lib/utils/normalizeAgentConnectors.js +70 -0
  649. package/lib/utils/openTaskInCorPanel.js +22 -0
  650. package/lib/utils/orchestratorSubagents.js +11 -0
  651. package/lib/utils/renderContextMentions.js +399 -0
  652. package/lib/utils/retryCompletion.js +85 -0
  653. package/lib/utils/slashCommandMarker.js +30 -0
  654. package/lib/utils/sortManagerHoursHomeFuas.js +14 -0
  655. package/lib/utils/sseStreamContent.js +17 -0
  656. package/lib/utils/streamActivityMessages.js +359 -0
  657. package/lib/utils/validateTrimmedFields.js +8 -0
  658. package/package.json +1 -1
@@ -0,0 +1,86 @@
1
+ import _asyncToGenerator from "@babel/runtime/helpers/asyncToGenerator";
2
+ import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
3
+ import _regeneratorRuntime from "@babel/runtime/regenerator";
4
+ import { useCallback, useEffect, useState } from 'react';
5
+ import { getRecentContexts } from '../services/maia/RecentContexts';
6
+ export var useRecentContexts = function useRecentContexts() {
7
+ var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
8
+ agentId = _ref.agentId,
9
+ _ref$enabled = _ref.enabled,
10
+ enabled = _ref$enabled === void 0 ? true : _ref$enabled,
11
+ _ref$limit = _ref.limit,
12
+ limit = _ref$limit === void 0 ? 9 : _ref$limit;
13
+ var _useState = useState([]),
14
+ _useState2 = _slicedToArray(_useState, 2),
15
+ contexts = _useState2[0],
16
+ setContexts = _useState2[1];
17
+ var _useState3 = useState(false),
18
+ _useState4 = _slicedToArray(_useState3, 2),
19
+ loading = _useState4[0],
20
+ setLoading = _useState4[1];
21
+ var _useState5 = useState(null),
22
+ _useState6 = _slicedToArray(_useState5, 2),
23
+ error = _useState6[0],
24
+ setError = _useState6[1];
25
+ var _useState7 = useState(false),
26
+ _useState8 = _slicedToArray(_useState7, 2),
27
+ loaded = _useState8[0],
28
+ setLoaded = _useState8[1];
29
+ var fetchRecentContexts = useCallback(/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee() {
30
+ var data, message, _t;
31
+ return _regeneratorRuntime.wrap(function (_context) {
32
+ while (1) switch (_context.prev = _context.next) {
33
+ case 0:
34
+ if (enabled) {
35
+ _context.next = 1;
36
+ break;
37
+ }
38
+ setContexts([]);
39
+ setLoading(false);
40
+ setError(null);
41
+ setLoaded(false);
42
+ return _context.abrupt("return");
43
+ case 1:
44
+ setLoading(true);
45
+ setError(null);
46
+ _context.prev = 2;
47
+ _context.next = 3;
48
+ return getRecentContexts({
49
+ agentId: agentId,
50
+ limit: limit
51
+ });
52
+ case 3:
53
+ data = _context.sent;
54
+ setContexts(data);
55
+ _context.next = 5;
56
+ break;
57
+ case 4:
58
+ _context.prev = 4;
59
+ _t = _context["catch"](2);
60
+ message = _t instanceof Error ? _t.message : 'An unknown error occurred';
61
+ setError(message);
62
+ setContexts([]);
63
+ console.error('Error fetching recent contexts:', _t);
64
+ case 5:
65
+ _context.prev = 5;
66
+ setLoading(false);
67
+ setLoaded(true);
68
+ return _context.finish(5);
69
+ case 6:
70
+ case "end":
71
+ return _context.stop();
72
+ }
73
+ }, _callee, null, [[2, 4, 5, 6]]);
74
+ })), [agentId, enabled, limit]);
75
+ useEffect(function () {
76
+ fetchRecentContexts();
77
+ }, [fetchRecentContexts]);
78
+ return {
79
+ contexts: contexts,
80
+ loading: loading,
81
+ loaded: loaded,
82
+ error: error,
83
+ fetchRecentContexts: fetchRecentContexts
84
+ };
85
+ };
86
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VDYWxsYmFjayIsInVzZUVmZmVjdCIsInVzZVN0YXRlIiwiZ2V0UmVjZW50Q29udGV4dHMiLCJ1c2VSZWNlbnRDb250ZXh0cyIsIl9yZWYiLCJhcmd1bWVudHMiLCJsZW5ndGgiLCJ1bmRlZmluZWQiLCJhZ2VudElkIiwiX3JlZiRlbmFibGVkIiwiZW5hYmxlZCIsIl9yZWYkbGltaXQiLCJsaW1pdCIsIl91c2VTdGF0ZSIsIl91c2VTdGF0ZTIiLCJfc2xpY2VkVG9BcnJheSIsImNvbnRleHRzIiwic2V0Q29udGV4dHMiLCJfdXNlU3RhdGUzIiwiX3VzZVN0YXRlNCIsImxvYWRpbmciLCJzZXRMb2FkaW5nIiwiX3VzZVN0YXRlNSIsIl91c2VTdGF0ZTYiLCJlcnJvciIsInNldEVycm9yIiwiX3VzZVN0YXRlNyIsIl91c2VTdGF0ZTgiLCJsb2FkZWQiLCJzZXRMb2FkZWQiLCJmZXRjaFJlY2VudENvbnRleHRzIiwiX2FzeW5jVG9HZW5lcmF0b3IiLCJfcmVnZW5lcmF0b3JSdW50aW1lIiwibWFyayIsIl9jYWxsZWUiLCJkYXRhIiwibWVzc2FnZSIsIl90Iiwid3JhcCIsIl9jb250ZXh0IiwicHJldiIsIm5leHQiLCJhYnJ1cHQiLCJzZW50IiwiRXJyb3IiLCJjb25zb2xlIiwiZmluaXNoIiwic3RvcCJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ob29rcy91c2VSZWNlbnRDb250ZXh0cy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB1c2VDYWxsYmFjaywgdXNlRWZmZWN0LCB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHsgZ2V0UmVjZW50Q29udGV4dHMsIHR5cGUgUmVjZW50Q29udGV4dEl0ZW0gfSBmcm9tICcuLi9zZXJ2aWNlcy9tYWlhL1JlY2VudENvbnRleHRzJ1xuXG50eXBlIFVzZVJlY2VudENvbnRleHRzT3B0aW9ucyA9IHtcbiAgYWdlbnRJZD86IHN0cmluZyB8IG51bWJlclxuICBlbmFibGVkPzogYm9vbGVhblxuICBsaW1pdD86IG51bWJlclxufVxuXG5leHBvcnQgY29uc3QgdXNlUmVjZW50Q29udGV4dHMgPSAoeyBhZ2VudElkLCBlbmFibGVkID0gdHJ1ZSwgbGltaXQgPSA5IH06IFVzZVJlY2VudENvbnRleHRzT3B0aW9ucyA9IHt9KSA9PiB7XG4gIGNvbnN0IFtjb250ZXh0cywgc2V0Q29udGV4dHNdID0gdXNlU3RhdGU8UmVjZW50Q29udGV4dEl0ZW1bXT4oW10pXG4gIGNvbnN0IFtsb2FkaW5nLCBzZXRMb2FkaW5nXSA9IHVzZVN0YXRlKGZhbHNlKVxuICBjb25zdCBbZXJyb3IsIHNldEVycm9yXSA9IHVzZVN0YXRlPHN0cmluZyB8IG51bGw+KG51bGwpXG4gIGNvbnN0IFtsb2FkZWQsIHNldExvYWRlZF0gPSB1c2VTdGF0ZShmYWxzZSlcblxuICBjb25zdCBmZXRjaFJlY2VudENvbnRleHRzID0gdXNlQ2FsbGJhY2soYXN5bmMgKCkgPT4ge1xuICAgIGlmICghZW5hYmxlZCkge1xuICAgICAgc2V0Q29udGV4dHMoW10pXG4gICAgICBzZXRMb2FkaW5nKGZhbHNlKVxuICAgICAgc2V0RXJyb3IobnVsbClcbiAgICAgIHNldExvYWRlZChmYWxzZSlcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIHNldExvYWRpbmcodHJ1ZSlcbiAgICBzZXRFcnJvcihudWxsKVxuXG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IGRhdGEgPSBhd2FpdCBnZXRSZWNlbnRDb250ZXh0cyh7IGFnZW50SWQsIGxpbWl0IH0pXG4gICAgICBzZXRDb250ZXh0cyhkYXRhKVxuICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgY29uc3QgbWVzc2FnZSA9IGVyciBpbnN0YW5jZW9mIEVycm9yID8gZXJyLm1lc3NhZ2UgOiAnQW4gdW5rbm93biBlcnJvciBvY2N1cnJlZCdcbiAgICAgIHNldEVycm9yKG1lc3NhZ2UpXG4gICAgICBzZXRDb250ZXh0cyhbXSlcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yIGZldGNoaW5nIHJlY2VudCBjb250ZXh0czonLCBlcnIpXG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIHNldExvYWRpbmcoZmFsc2UpXG4gICAgICBzZXRMb2FkZWQodHJ1ZSlcbiAgICB9XG4gIH0sIFthZ2VudElkLCBlbmFibGVkLCBsaW1pdF0pXG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBmZXRjaFJlY2VudENvbnRleHRzKClcbiAgfSwgW2ZldGNoUmVjZW50Q29udGV4dHNdKVxuXG4gIHJldHVybiB7XG4gICAgY29udGV4dHMsXG4gICAgbG9hZGluZyxcbiAgICBsb2FkZWQsXG4gICAgZXJyb3IsXG4gICAgZmV0Y2hSZWNlbnRDb250ZXh0cyxcbiAgfVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7QUFBQSxTQUFTQSxXQUFXLEVBQUVDLFNBQVMsRUFBRUMsUUFBUSxRQUFRLE9BQU87QUFDeEQsU0FBU0MsaUJBQWlCLFFBQWdDLGlDQUFpQztBQVEzRixPQUFPLElBQU1DLGlCQUFpQixHQUFHLFNBQXBCQSxpQkFBaUJBLENBQUEsRUFBOEU7RUFBQSxJQUFBQyxJQUFBLEdBQUFDLFNBQUEsQ0FBQUMsTUFBQSxRQUFBRCxTQUFBLFFBQUFFLFNBQUEsR0FBQUYsU0FBQSxNQUFQLENBQUMsQ0FBQztJQUFuRUcsT0FBTyxHQUFBSixJQUFBLENBQVBJLE9BQU87SUFBQUMsWUFBQSxHQUFBTCxJQUFBLENBQUVNLE9BQU87SUFBUEEsT0FBTyxHQUFBRCxZQUFBLGNBQUcsSUFBSSxHQUFBQSxZQUFBO0lBQUFFLFVBQUEsR0FBQVAsSUFBQSxDQUFFUSxLQUFLO0lBQUxBLEtBQUssR0FBQUQsVUFBQSxjQUFHLENBQUMsR0FBQUEsVUFBQTtFQUNwRSxJQUFBRSxTQUFBLEdBQWdDWixRQUFRLENBQXNCLEVBQUUsQ0FBQztJQUFBYSxVQUFBLEdBQUFDLGNBQUEsQ0FBQUYsU0FBQTtJQUExREcsUUFBUSxHQUFBRixVQUFBO0lBQUVHLFdBQVcsR0FBQUgsVUFBQTtFQUM1QixJQUFBSSxVQUFBLEdBQThCakIsUUFBUSxDQUFDLEtBQUssQ0FBQztJQUFBa0Is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
@@ -0,0 +1,29 @@
1
+ import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
2
+ /* eslint-disable @typescript-eslint/no-explicit-any */
3
+ import { useEffect, useState } from 'react';
4
+ export var useResizeListener = function useResizeListener(ref, dependencies) {
5
+ var _useState = useState(false),
6
+ _useState2 = _slicedToArray(_useState, 2),
7
+ showTooltip = _useState2[0],
8
+ setShowTooltip = _useState2[1];
9
+ var handleResize = function handleResize() {
10
+ if (ref.current) {
11
+ var textWidth = ref.current.scrollWidth;
12
+ setShowTooltip(textWidth > ref.current.clientWidth);
13
+ }
14
+ };
15
+ useEffect(function () {
16
+ var resizeListener = function resizeListener() {
17
+ return handleResize();
18
+ };
19
+ handleResize();
20
+ window.addEventListener('resize', resizeListener);
21
+ return function () {
22
+ window.removeEventListener('resize', resizeListener);
23
+ };
24
+ }, dependencies);
25
+ return {
26
+ showTooltip: showTooltip
27
+ };
28
+ };
29
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VFZmZlY3QiLCJ1c2VTdGF0ZSIsInVzZVJlc2l6ZUxpc3RlbmVyIiwicmVmIiwiZGVwZW5kZW5jaWVzIiwiX3VzZVN0YXRlIiwiX3VzZVN0YXRlMiIsIl9zbGljZWRUb0FycmF5Iiwic2hvd1Rvb2x0aXAiLCJzZXRTaG93VG9vbHRpcCIsImhhbmRsZVJlc2l6ZSIsImN1cnJlbnQiLCJ0ZXh0V2lkdGgiLCJzY3JvbGxXaWR0aCIsImNsaWVudFdpZHRoIiwicmVzaXplTGlzdGVuZXIiLCJ3aW5kb3ciLCJhZGRFdmVudExpc3RlbmVyIiwicmVtb3ZlRXZlbnRMaXN0ZW5lciJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ob29rcy91c2VSZXNpemUudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueSAqL1xuaW1wb3J0IHsgUmVmT2JqZWN0LCB1c2VFZmZlY3QsIHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnXG5cbmV4cG9ydCBjb25zdCB1c2VSZXNpemVMaXN0ZW5lciA9IChcbiAgcmVmOiBSZWZPYmplY3Q8SFRNTERpdkVsZW1lbnQgfCBIVE1MSW5wdXRFbGVtZW50IHwgSFRNTFNwYW5FbGVtZW50PixcbiAgZGVwZW5kZW5jaWVzOiBhbnlbXVxuKSA9PiB7XG4gIGNvbnN0IFtzaG93VG9vbHRpcCwgc2V0U2hvd1Rvb2x0aXBdID0gdXNlU3RhdGUoZmFsc2UpXG5cbiAgY29uc3QgaGFuZGxlUmVzaXplID0gKCkgPT4ge1xuICAgIGlmIChyZWYuY3VycmVudCkge1xuICAgICAgY29uc3QgdGV4dFdpZHRoID0gcmVmLmN1cnJlbnQuc2Nyb2xsV2lkdGhcbiAgICAgIHNldFNob3dUb29sdGlwKHRleHRXaWR0aCA+IHJlZi5jdXJyZW50LmNsaWVudFdpZHRoKVxuICAgIH1cbiAgfVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgY29uc3QgcmVzaXplTGlzdGVuZXIgPSAoKSA9PiBoYW5kbGVSZXNpemUoKVxuICAgIGhhbmRsZVJlc2l6ZSgpXG4gICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3Jlc2l6ZScsIHJlc2l6ZUxpc3RlbmVyKVxuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigncmVzaXplJywgcmVzaXplTGlzdGVuZXIpXG4gICAgfVxuICB9LCBkZXBlbmRlbmNpZXMpXG5cbiAgcmV0dXJuIHsgc2hvd1Rvb2x0aXAgfVxufVxuIl0sIm1hcHBpbmdzIjoiO0FBQUE7QUFDQSxTQUFvQkEsU0FBUyxFQUFFQyxRQUFRLFFBQVEsT0FBTztBQUV0RCxPQUFPLElBQU1DLGlCQUFpQixHQUFHLFNBQXBCQSxpQkFBaUJBLENBQzVCQyxHQUFtRSxFQUNuRUMsWUFBbUIsRUFDaEI7RUFDSCxJQUFBQyxTQUFBLEdBQXNDSixRQUFRLENBQUMsS0FBSyxDQUFDO0lBQUFLLFVBQUEsR0FBQUMsY0FBQSxDQUFBRixTQUFBO0lBQTlDRyxXQUFXLEdBQUFGLFVBQUE7SUFBRUcsY0FBYyxHQUFBSCxVQUFBO0VBRWxDLElBQU1JLFlBQVksR0FBRyxTQUFmQSxZQUFZQSxDQUFBLEVBQVM7SUFDekIsSUFBSVAsR0FBRyxDQUFDUSxPQUFPLEVBQUU7TUFDZixJQUFNQyxTQUFTLEdBQUdULEdBQUcsQ0FBQ1EsT0FBTyxDQUFDRSxXQUFXO01BQ3pDSixjQUFjLENBQUNHLFNBQVMsR0FBR1QsR0FBRyxDQUFDUSxPQUFPLENBQUNHLFdBQVcsQ0FBQztJQUNyRDtFQUNGLENBQUM7RUFFRGQsU0FBUyxDQUFDLFlBQU07SUFDZCxJQUFNZSxjQUFjLEdBQUcsU0FBakJBLGNBQWNBLENBQUE7TUFBQSxPQUFTTCxZQUFZLENBQUMsQ0FBQztJQUFBO0lBQzNDQSxZQUFZLENBQUMsQ0FBQztJQUNkTSxNQUFNLENBQUNDLGdCQUFnQixDQUFDLFFBQVEsRUFBRUYsY0FBYyxDQUFDO0lBQ2pELE9BQU8sWUFBTTtNQUNYQyxNQUFNLENBQUNFLG1CQUFtQixDQUFDLFFBQVEsRUFBRUgsY0FBYyxDQUFDO0lBQ3RELENBQUM7RUFDSCxDQUFDLEVBQUVYLFlBQVksQ0FBQztFQUVoQixPQUFPO0lBQUVJLFdBQVcsRUFBWEE7RUFBWSxDQUFDO0FBQ3hCLENBQUMiLCJpZ25vcmVMaXN0IjpbXX0=
@@ -0,0 +1,84 @@
1
+ import _asyncToGenerator from "@babel/runtime/helpers/asyncToGenerator";
2
+ import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
3
+ import _regeneratorRuntime from "@babel/runtime/regenerator";
4
+ import { useCallback, useEffect, useState } from 'react';
5
+ import { getSlashCommands } from '../services/maia/Actions/getSlashCommands';
6
+ import { filterActionsByHourAgentFeatureAccess } from '../constants/maiaHourAgentAccess';
7
+ import { useT } from './useT';
8
+ import { mapBackendLang } from '../utils/mapBackendLang';
9
+ export var useSlashCommands = function useSlashCommands(agentId) {
10
+ var _useT = useT(),
11
+ i18n = _useT.i18n;
12
+ var lang = mapBackendLang(i18n.language);
13
+ var _useState = useState([]),
14
+ _useState2 = _slicedToArray(_useState, 2),
15
+ commands = _useState2[0],
16
+ setCommands = _useState2[1];
17
+ var _useState3 = useState(false),
18
+ _useState4 = _slicedToArray(_useState3, 2),
19
+ loading = _useState4[0],
20
+ setLoading = _useState4[1];
21
+ var _useState5 = useState(null),
22
+ _useState6 = _slicedToArray(_useState5, 2),
23
+ error = _useState6[0],
24
+ setError = _useState6[1];
25
+ var handleGetSlashCommands = useCallback(/*#__PURE__*/function () {
26
+ var _ref = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee(aid) {
27
+ var response, message, _t;
28
+ return _regeneratorRuntime.wrap(function (_context) {
29
+ while (1) switch (_context.prev = _context.next) {
30
+ case 0:
31
+ setLoading(true);
32
+ setError(null);
33
+ _context.prev = 1;
34
+ _context.next = 2;
35
+ return getSlashCommands({
36
+ agentId: aid,
37
+ lang: lang
38
+ });
39
+ case 2:
40
+ response = _context.sent;
41
+ if (!(!response || !Array.isArray(response.data))) {
42
+ _context.next = 3;
43
+ break;
44
+ }
45
+ throw new Error('Invalid response format from server');
46
+ case 3:
47
+ setCommands(filterActionsByHourAgentFeatureAccess(response.data));
48
+ _context.next = 5;
49
+ break;
50
+ case 4:
51
+ _context.prev = 4;
52
+ _t = _context["catch"](1);
53
+ message = _t instanceof Error ? _t.message : 'An unknown error occurred';
54
+ setError(message);
55
+ console.error('Error fetching slash commands:', _t);
56
+ case 5:
57
+ _context.prev = 5;
58
+ setLoading(false);
59
+ return _context.finish(5);
60
+ case 6:
61
+ case "end":
62
+ return _context.stop();
63
+ }
64
+ }, _callee, null, [[1, 4, 5, 6]]);
65
+ }));
66
+ return function (_x) {
67
+ return _ref.apply(this, arguments);
68
+ };
69
+ }(), [lang]);
70
+ useEffect(function () {
71
+ setCommands([]);
72
+ setError(null);
73
+ if (agentId) {
74
+ handleGetSlashCommands(agentId);
75
+ }
76
+ }, [agentId, handleGetSlashCommands]);
77
+ return {
78
+ commands: commands,
79
+ loading: loading,
80
+ error: error,
81
+ handleGetSlashCommands: handleGetSlashCommands
82
+ };
83
+ };
84
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VDYWxsYmFjayIsInVzZUVmZmVjdCIsInVzZVN0YXRlIiwiZ2V0U2xhc2hDb21tYW5kcyIsImZpbHRlckFjdGlvbnNCeUhvdXJBZ2VudEZlYXR1cmVBY2Nlc3MiLCJ1c2VUIiwibWFwQmFja2VuZExhbmciLCJ1c2VTbGFzaENvbW1hbmRzIiwiYWdlbnRJZCIsIl91c2VUIiwiaTE4biIsImxhbmciLCJsYW5ndWFnZSIsIl91c2VTdGF0ZSIsIl91c2VTdGF0ZTIiLCJfc2xpY2VkVG9BcnJheSIsImNvbW1hbmRzIiwic2V0Q29tbWFuZHMiLCJfdXNlU3RhdGUzIiwiX3VzZVN0YXRlNCIsImxvYWRpbmciLCJzZXRMb2FkaW5nIiwiX3VzZVN0YXRlNSIsIl91c2VTdGF0ZTYiLCJlcnJvciIsInNldEVycm9yIiwiaGFuZGxlR2V0U2xhc2hDb21tYW5kcyIsIl9yZWYiLCJfYXN5bmNUb0dlbmVyYXRvciIsIl9yZWdlbmVyYXRvclJ1bnRpbWUiLCJtYXJrIiwiX2NhbGxlZSIsImFpZCIsInJlc3BvbnNlIiwibWVzc2FnZSIsIl90Iiwid3JhcCIsIl9jb250ZXh0IiwicHJldiIsIm5leHQiLCJzZW50IiwiQXJyYXkiLCJpc0FycmF5IiwiZGF0YSIsIkVycm9yIiwiY29uc29sZSIsImZpbmlzaCIsInN0b3AiLCJfeCIsImFwcGx5IiwiYXJndW1lbnRzIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL2hvb2tzL3VzZVNsYXNoQ29tbWFuZHMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdXNlQ2FsbGJhY2ssIHVzZUVmZmVjdCwgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCdcbmltcG9ydCB0eXBlIHsgQWN0aW9uIH0gZnJvbSAnLi4vdHlwZXMvQWN0aW9uJ1xuaW1wb3J0IHsgZ2V0U2xhc2hDb21tYW5kcyB9IGZyb20gJy4uL3NlcnZpY2VzL21haWEvQWN0aW9ucy9nZXRTbGFzaENvbW1hbmRzJ1xuaW1wb3J0IHsgZmlsdGVyQWN0aW9uc0J5SG91ckFnZW50RmVhdHVyZUFjY2VzcyB9IGZyb20gJy4uL2NvbnN0YW50cy9tYWlhSG91ckFnZW50QWNjZXNzJ1xuaW1wb3J0IHsgdXNlVCB9IGZyb20gJy4vdXNlVCdcbmltcG9ydCB7IG1hcEJhY2tlbmRMYW5nIH0gZnJvbSAnLi4vdXRpbHMvbWFwQmFja2VuZExhbmcnXG5cbmV4cG9ydCBjb25zdCB1c2VTbGFzaENvbW1hbmRzID0gKGFnZW50SWQ/OiBzdHJpbmcpID0+IHtcbiAgY29uc3QgeyBpMThuIH0gPSB1c2VUKClcbiAgY29uc3QgbGFuZyA9IG1hcEJhY2tlbmRMYW5nKGkxOG4ubGFuZ3VhZ2UpXG4gIGNvbnN0IFtjb21tYW5kcywgc2V0Q29tbWFuZHNdID0gdXNlU3RhdGU8QWN0aW9uW10+KFtdKVxuICBjb25zdCBbbG9hZGluZywgc2V0TG9hZGluZ10gPSB1c2VTdGF0ZShmYWxzZSlcbiAgY29uc3QgW2Vycm9yLCBzZXRFcnJvcl0gPSB1c2VTdGF0ZTxzdHJpbmcgfCBudWxsPihudWxsKVxuXG4gIGNvbnN0IGhhbmRsZUdldFNsYXNoQ29tbWFuZHMgPSB1c2VDYWxsYmFjayhcbiAgICBhc3luYyAoYWlkOiBzdHJpbmcpID0+IHtcbiAgICAgIHNldExvYWRpbmcodHJ1ZSlcbiAgICAgIHNldEVycm9yKG51bGwpXG4gICAgICB0cnkge1xuICAgICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGdldFNsYXNoQ29tbWFuZHMoeyBhZ2VudElkOiBhaWQsIGxhbmcgfSlcbiAgICAgICAgaWYgKCFyZXNwb25zZSB8fCAhQXJyYXkuaXNBcnJheShyZXNwb25zZS5kYXRhKSkge1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcignSW52YWxpZCByZXNwb25zZSBmb3JtYXQgZnJvbSBzZXJ2ZXInKVxuICAgICAgICB9XG4gICAgICAgIHNldENvbW1hbmRzKGZpbHRlckFjdGlvbnNCeUhvdXJBZ2VudEZlYXR1cmVBY2Nlc3MocmVzcG9uc2UuZGF0YSkpXG4gICAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgICAgY29uc3QgbWVzc2FnZSA9IGVyciBpbnN0YW5jZW9mIEVycm9yID8gZXJyLm1lc3NhZ2UgOiAnQW4gdW5rbm93biBlcnJvciBvY2N1cnJlZCdcbiAgICAgICAgc2V0RXJyb3IobWVzc2FnZSlcbiAgICAgICAgY29uc29sZS5lcnJvcignRXJyb3IgZmV0Y2hpbmcgc2xhc2ggY29tbWFuZHM6JywgZXJyKVxuICAgICAgfSBmaW5hbGx5IHtcbiAgICAgICAgc2V0TG9hZGluZyhmYWxzZSlcbiAgICAgIH1cbiAgICB9LFxuICAgIFtsYW5nXVxuICApXG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBzZXRDb21tYW5kcyhbXSlcbiAgICBzZXRFcnJvcihudWxsKVxuICAgIGlmIChhZ2VudElkKSB7XG4gICAgICBoYW5kbGVHZXRTbGFzaENvbW1hbmRzKGFnZW50SWQpXG4gICAgfVxuICB9LCBbYWdlbnRJZCwgaGFuZGxlR2V0U2xhc2hDb21tYW5kc10pXG5cbiAgcmV0dXJuIHtcbiAgICBjb21tYW5kcyxcbiAgICBsb2FkaW5nLFxuICAgIGVycm9yLFxuICAgIGhhbmRsZUdldFNsYXNoQ29tbWFuZHMsXG4gIH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsU0FBU0EsV0FBVyxFQUFFQyxTQUFTLEVBQUVDLFFBQVEsUUFBUSxPQUFPO0FBRXhELFNBQVNDLGdCQUFnQixRQUFRLDJDQUEyQztBQUM1RSxTQUFTQyxxQ0FBcUMsUUFBUSxrQ0FBa0M7QUFDeEYsU0FBU0MsSUFBSSxRQUFRLFFBQVE7QUFDN0IsU0FBU0MsY0FBYyxRQUFRLHlCQUF5QjtBQUV4RCxPQUFPLElBQU1DLGdCQUFnQixHQUFHLFNBQW5CQSxnQkFBZ0JBLENBQUlDLE9BQWdCLEVBQUs7RUFDcEQsSUFBQUMsS0FBQSxHQUFpQkosSUFBSSxDQUFDLENBQUM7SUFBZkssSUFBSSxHQUFBRCxLQUFBLENBQUpDLElBQUk7RUFDWixJQUFNQyxJQUFJLEdBQUdMLGNBQWMsQ0FBQ0ksSUFBSSxDQUFDRSxRQUFRLENBQUM7RUFDMUMsSUFBQUMsU0FBQSxHQUFn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
@@ -0,0 +1,2 @@
1
+ export { useSmoothStreamText } from './useSmoothStreamText';
2
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VTbW9vdGhTdHJlYW1UZXh0Il0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2hvb2tzL3VzZVNtb290aFN0cmVhbVRleHQvaW5kZXgudHMiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHsgdXNlU21vb3RoU3RyZWFtVGV4dCB9IGZyb20gJy4vdXNlU21vb3RoU3RyZWFtVGV4dCdcbiJdLCJtYXBwaW5ncyI6IkFBQUEsU0FBU0EsbUJBQW1CLFFBQVEsdUJBQXVCIiwiaWdub3JlTGlzdCI6W119
@@ -0,0 +1,197 @@
1
+ import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
2
+ import { useEffect, useRef, useState } from 'react';
3
+ /**
4
+ * Hook que desacopla la cadencia de llegada del texto (stream SSE) de la
5
+ * cadencia de renderizado. Usa un timer corto para liberar chars a ritmo
6
+ * constante hacia el DOM, eliminando los "frenos" que se producen cuando el
7
+ * backend emite ráfagas de tokens.
8
+ *
9
+ * Cuando `enabled` pasa a false (fin de stream), el texto se completa al
10
+ * instante. Durante el streaming, el buffer se vacía dinámicamente apuntando
11
+ * al lag configurado.
12
+ */
13
+ export var useSmoothStreamText = function useSmoothStreamText(targetText, _ref) {
14
+ var enabled = _ref.enabled,
15
+ _ref$minCharsPerFrame = _ref.minCharsPerFrame,
16
+ minCharsPerFrame = _ref$minCharsPerFrame === void 0 ? 1 : _ref$minCharsPerFrame,
17
+ _ref$maxCharsPerFrame = _ref.maxCharsPerFrame,
18
+ maxCharsPerFrame = _ref$maxCharsPerFrame === void 0 ? 24 : _ref$maxCharsPerFrame,
19
+ _ref$targetLagMs = _ref.targetLagMs,
20
+ targetLagMs = _ref$targetLagMs === void 0 ? 450 : _ref$targetLagMs,
21
+ _ref$snapToWordBounda = _ref.snapToWordBoundary,
22
+ snapToWordBoundary = _ref$snapToWordBounda === void 0 ? false : _ref$snapToWordBounda,
23
+ _ref$adaptToBackendRa = _ref.adaptToBackendRate,
24
+ adaptToBackendRate = _ref$adaptToBackendRa === void 0 ? true : _ref$adaptToBackendRa,
25
+ _ref$backendRateFacto = _ref.backendRateFactor,
26
+ backendRateFactor = _ref$backendRateFacto === void 0 ? 0.95 : _ref$backendRateFacto,
27
+ _ref$targetBufferMs = _ref.targetBufferMs,
28
+ targetBufferMs = _ref$targetBufferMs === void 0 ? 600 : _ref$targetBufferMs,
29
+ _ref$bufferCorrection = _ref.bufferCorrectionMs,
30
+ bufferCorrectionMs = _ref$bufferCorrection === void 0 ? 500 : _ref$bufferCorrection,
31
+ _ref$minBufferChars = _ref.minBufferChars,
32
+ minBufferChars = _ref$minBufferChars === void 0 ? 70 : _ref$minBufferChars,
33
+ _ref$warmupMs = _ref.warmupMs,
34
+ warmupMs = _ref$warmupMs === void 0 ? 400 : _ref$warmupMs;
35
+ var _useState = useState(function () {
36
+ return enabled ? '' : targetText;
37
+ }),
38
+ _useState2 = _slicedToArray(_useState, 2),
39
+ displayed = _useState2[0],
40
+ setDisplayed = _useState2[1];
41
+ var targetRef = useRef(targetText);
42
+ var displayedLenRef = useRef(displayed.length);
43
+ var tickTimerRef = useRef(null);
44
+ var lastTickRef = useRef(0);
45
+
46
+ // Medición de la cadencia del backend: se actualiza cuando cambia targetText.
47
+ var lastTargetLenRef = useRef(0);
48
+ var lastTargetUpdateRef = useRef(0);
49
+ // Estimación EMA de chars/ms producidos por el backend.
50
+ var backendCharsPerMsRef = useRef(0);
51
+ // Timestamp del primer chunk recibido (para warmup).
52
+ var firstChunkAtRef = useRef(0);
53
+ // Si el warmup ya terminó (una vez true, no vuelve a activarse en este stream).
54
+ var warmupDoneRef = useRef(false);
55
+ useEffect(function () {
56
+ var now = typeof performance !== 'undefined' ? performance.now() : Date.now();
57
+ var prevTargetLen = lastTargetLenRef.current;
58
+ var deltaChars = targetText.length - prevTargetLen;
59
+ var prevTargetAt = lastTargetUpdateRef.current;
60
+ if (enabled && deltaChars > 0) {
61
+ if (firstChunkAtRef.current === 0) firstChunkAtRef.current = now;
62
+ }
63
+ if (enabled && deltaChars > 0 && prevTargetAt > 0) {
64
+ var dt = Math.max(1, now - prevTargetAt);
65
+ var rate = deltaChars / dt;
66
+ var prevRate = backendCharsPerMsRef.current;
67
+ // EMA suave (alpha = 0.2) para absorber jitter y seguir la tendencia.
68
+ backendCharsPerMsRef.current = prevRate === 0 ? rate : prevRate * 0.8 + rate * 0.2;
69
+ }
70
+ if (enabled && targetText.length !== prevTargetLen) {
71
+ lastTargetLenRef.current = targetText.length;
72
+ lastTargetUpdateRef.current = now;
73
+ }
74
+ targetRef.current = targetText;
75
+ if (!enabled) {
76
+ if (tickTimerRef.current != null) {
77
+ window.clearTimeout(tickTimerRef.current);
78
+ tickTimerRef.current = null;
79
+ }
80
+ lastTickRef.current = 0;
81
+ if (displayedLenRef.current !== targetText.length) {
82
+ displayedLenRef.current = targetText.length;
83
+ setDisplayed(targetText);
84
+ }
85
+ // Reset de cadencia cuando se apaga para no contaminar el próximo stream.
86
+ lastTargetLenRef.current = 0;
87
+ lastTargetUpdateRef.current = 0;
88
+ backendCharsPerMsRef.current = 0;
89
+ firstChunkAtRef.current = 0;
90
+ warmupDoneRef.current = false;
91
+ return undefined;
92
+ }
93
+ if (displayedLenRef.current > targetText.length) {
94
+ displayedLenRef.current = 0;
95
+ setDisplayed('');
96
+ }
97
+ if (tickTimerRef.current != null) return undefined;
98
+ var getNow = function getNow() {
99
+ return typeof performance !== 'undefined' ? performance.now() : Date.now();
100
+ };
101
+ var scheduleTick = function scheduleTick(tick) {
102
+ tickTimerRef.current = window.setTimeout(function () {
103
+ tick(getNow());
104
+ }, 16);
105
+ };
106
+ var _tick = function tick(tickNow) {
107
+ var prev = lastTickRef.current;
108
+ var dt = prev ? Math.min(tickNow - prev, 64) : 16;
109
+ lastTickRef.current = tickNow;
110
+ var target = targetRef.current;
111
+ var currentLen = displayedLenRef.current;
112
+ var remaining = target.length - currentLen;
113
+ if (remaining <= 0) {
114
+ scheduleTick(_tick);
115
+ return;
116
+ }
117
+
118
+ // Warmup: al comienzo del stream esperamos `warmupMs` desde el primer
119
+ // chunk antes de empezar a pintar. Esto construye un colchón inicial y
120
+ // evita arrancar rápido para congelarnos acto seguido si el backend
121
+ // tarda mucho en emitir el segundo chunk.
122
+ if (!warmupDoneRef.current) {
123
+ var firstAt = firstChunkAtRef.current;
124
+ var waitedMs = firstAt > 0 ? tickNow - firstAt : 0;
125
+ var warmupComplete = warmupMs <= 0 || waitedMs >= warmupMs || target.length >= minBufferChars * 2;
126
+ if (!warmupComplete) {
127
+ scheduleTick(_tick);
128
+ return;
129
+ }
130
+ warmupDoneRef.current = true;
131
+ }
132
+
133
+ // Velocidad base: vaciar el buffer en ~targetLagMs.
134
+ var charsPerMs = remaining / targetLagMs;
135
+ var effectiveCharsPerMs = charsPerMs;
136
+ var backendRate = backendCharsPerMsRef.current;
137
+ if (adaptToBackendRate && backendRate > 0) {
138
+ if (typeof targetBufferMs === 'number') {
139
+ // Control proporcional: mantener el buffer en torno al colchón
140
+ // objetivo. Si bufferMs < target → frenamos por debajo del backend
141
+ // para acumular; si bufferMs > target → aceleramos para descargar.
142
+ // En equilibrio, pintamos al ritmo promedio del backend.
143
+ //
144
+ // El colchón objetivo se calcula sobre la tasa **efectiva** que
145
+ // podemos pintar (capeada por `maxCharsPerFrame` a 60fps), no sobre
146
+ // la del backend pura. Esto evita el caso patológico de ráfagas:
147
+ // si el backend tira a 6500 ch/s, el target NO se vuelve 3900 chars
148
+ // (que el render jamás podría sostener), sino algo razonable que
149
+ // la animación pueda mantener.
150
+ //
151
+ // Piso absoluto: el colchón nunca baja de `minBufferChars` aunque
152
+ // el backend esté mandando lento al inicio del stream.
153
+ var renderRateCap = maxCharsPerFrame * 60 / 1000;
154
+ var effectiveBufferRate = Math.min(backendRate, renderRateCap);
155
+ var targetBufferChars = Math.max(minBufferChars, targetBufferMs * effectiveBufferRate);
156
+ var bufferDelta = remaining - targetBufferChars;
157
+ // Corrección tiene unidades de chars/ms. bufferCorrectionMs controla
158
+ // qué tan rápido el buffer real converge al objetivo.
159
+ var correction = bufferDelta / Math.max(1, bufferCorrectionMs);
160
+ effectiveCharsPerMs = Math.max(0, backendRate + correction);
161
+ // Acotar por la velocidad de "vaciar en targetLagMs" para que si
162
+ // de pronto hay un pico gigante de buffer no salgamos disparados.
163
+ effectiveCharsPerMs = Math.min(effectiveCharsPerMs, charsPerMs);
164
+ } else {
165
+ // Modo simple: cap a la tasa del backend * factor.
166
+ var cap = backendRate * backendRateFactor;
167
+ effectiveCharsPerMs = Math.min(effectiveCharsPerMs, cap);
168
+ }
169
+ }
170
+ var rawStep = Math.ceil(effectiveCharsPerMs * dt);
171
+ var step = Math.max(minCharsPerFrame, Math.min(maxCharsPerFrame, rawStep));
172
+ var nextLen = Math.min(target.length, currentLen + step);
173
+ if (snapToWordBoundary && nextLen < target.length) {
174
+ var slice = target.slice(currentLen, nextLen);
175
+ var lastBoundary = Math.max(slice.lastIndexOf(' '), slice.lastIndexOf('\n'), slice.lastIndexOf('\t'));
176
+ if (lastBoundary >= 0) {
177
+ nextLen = currentLen + lastBoundary + 1;
178
+ }
179
+ }
180
+ if (nextLen !== currentLen) {
181
+ displayedLenRef.current = nextLen;
182
+ setDisplayed(target.slice(0, nextLen));
183
+ }
184
+ scheduleTick(_tick);
185
+ };
186
+ scheduleTick(_tick);
187
+ return function () {
188
+ if (tickTimerRef.current != null) {
189
+ window.clearTimeout(tickTimerRef.current);
190
+ tickTimerRef.current = null;
191
+ }
192
+ lastTickRef.current = 0;
193
+ };
194
+ }, [targetText, enabled, minCharsPerFrame, maxCharsPerFrame, targetLagMs, snapToWordBoundary, adaptToBackendRate, backendRateFactor, targetBufferMs, bufferCorrectionMs, minBufferChars, warmupMs]);
195
+ return displayed;
196
+ };
197
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VFZmZlY3QiLCJ1c2VSZWYiLCJ1c2VTdGF0ZSIsInVzZVNtb290aFN0cmVhbVRleHQiLCJ0YXJnZXRUZXh0IiwiX3JlZiIsImVuYWJsZWQiLCJfcmVmJG1pbkNoYXJzUGVyRnJhbWUiLCJtaW5DaGFyc1BlckZyYW1lIiwiX3JlZiRtYXhDaGFyc1BlckZyYW1lIiwibWF4Q2hhcnNQZXJGcmFtZSIsIl9yZWYkdGFyZ2V0TGFnTXMiLCJ0YXJnZXRMYWdNcyIsIl9yZWYkc25hcFRvV29yZEJvdW5kYSIsInNuYXBUb1dvcmRCb3VuZGFyeSIsIl9yZWYkYWRhcHRUb0JhY2tlbmRSYSIsImFkYXB0VG9CYWNrZW5kUmF0ZSIsIl9yZWYkYmFja2VuZFJhdGVGYWN0byIsImJhY2tlbmRSYXRlRmFjdG9yIiwiX3JlZiR0YXJnZXRCdWZmZXJNcyIsInRhcmdldEJ1ZmZlck1zIiwiX3JlZiRidWZmZXJDb3JyZWN0aW9uIiwiYnVmZmVyQ29ycmVjdGlvbk1zIiwiX3JlZiRtaW5CdWZmZXJDaGFycyIsIm1pbkJ1ZmZlckNoYXJzIiwiX3JlZiR3YXJtdXBNcyIsIndhcm11cE1zIiwiX3VzZVN0YXRlIiwiX3VzZVN0YXRlMiIsIl9zbGljZWRUb0FycmF5IiwiZGlzcGxheWVkIiwic2V0RGlzcGxheWVkIiwidGFyZ2V0UmVmIiwiZGlzcGxheWVkTGVuUmVmIiwibGVuZ3RoIiwidGlja1RpbWVyUmVmIiwibGFzdFRpY2tSZWYiLCJsYXN0VGFyZ2V0TGVuUmVmIiwibGFzdFRhcmdldFVwZGF0ZVJlZiIsImJhY2tlbmRDaGFyc1Blck1zUmVmIiwiZmlyc3RDaHVua0F0UmVmIiwid2FybXVwRG9uZVJlZiIsIm5vdyIsInBlcmZvcm1hbmNlIiwiRGF0ZSIsInByZXZUYXJnZXRMZW4iLCJjdXJyZW50IiwiZGVsdGFDaGFycyIsInByZXZUYXJnZXRBdCIsImR0IiwiTWF0aCIsIm1heCIsInJhdGUiLCJwcmV2UmF0ZSIsIndpbmRvdyIsImNsZWFyVGltZW91dCIsInVuZGVmaW5lZCIsImdldE5vdyIsInNjaGVkdWxlVGljayIsInRpY2siLCJzZXRUaW1lb3V0IiwidGlja05vdyIsInByZXYiLCJtaW4iLCJ0YXJnZXQiLCJjdXJyZW50TGVuIiwicmVtYWluaW5nIiwiZmlyc3RBdCIsIndhaXRlZE1zIiwid2FybXVwQ29tcGxldGUiLCJjaGFyc1Blck1zIiwiZWZmZWN0aXZlQ2hhcnNQZXJNcyIsImJhY2tlbmRSYXRlIiwicmVuZGVyUmF0ZUNhcCIsImVmZmVjdGl2ZUJ1ZmZlclJhdGUiLCJ0YXJnZXRCdWZmZXJDaGFycyIsImJ1ZmZlckRlbHRhIiwiY29ycmVjdGlvbiIsImNhcCIsInJhd1N0ZXAiLCJjZWlsIiwic3RlcCIsIm5leHRMZW4iLCJzbGljZSIsImxhc3RCb3VuZGFyeSIsImxhc3RJbmRleE9mIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2hvb2tzL3VzZVNtb290aFN0cmVhbVRleHQvdXNlU21vb3RoU3RyZWFtVGV4dC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB1c2VFZmZlY3QsIHVzZVJlZiwgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCdcblxudHlwZSBVc2VTbW9vdGhTdHJlYW1UZXh0T3B0aW9ucyA9IHtcbiAgLyoqIFNpIGVzdMOhIGRlc2hhYmlsaXRhZG8sIGRldnVlbHZlIGVsIHRhcmdldCB0YWwgY3VhbCAoc2luIGFuaW1hY2nDs24pLiAqL1xuICBlbmFibGVkOiBib29sZWFuXG4gIC8qKiBDYW50aWRhZCBtw61uaW1hIGRlIGNoYXJzIGEgbGliZXJhciBwb3IgZnJhbWUgY3VhbmRvIGhheSBidWZmZXIuICovXG4gIG1pbkNoYXJzUGVyRnJhbWU/OiBudW1iZXJcbiAgLyoqIENvdGEgc3VwZXJpb3IgZGUgY2hhcnMgcG9yIGZyYW1lIHBhcmEgZXZpdGFyIHNhbHRvcyBncmFuZGVzLiAqL1xuICBtYXhDaGFyc1BlckZyYW1lPzogbnVtYmVyXG4gIC8qKlxuICAgKiBMYWcgb2JqZXRpdm8gKG1zKSBlbnRyZSBlbCB0ZXh0byByZWNpYmlkbyB5IGVsIG1vc3RyYWRvLiBFbCBob29rIGNhbGN1bGFcbiAgICogZGluw6FtaWNhbWVudGUgZWwgc3RlcCBwb3IgZnJhbWUgcGFyYSB2YWNpYXIgZWwgYnVmZmVyIGVuIH50YXJnZXRMYWdNcy5cbiAgICogVmFsb3JlcyBtw6FzIGJham9zID0gc2UgcG9uZSBhbCBkw61hIG3DoXMgcsOhcGlkbyAobWVub3MgXCJzdWF2ZVwiKS5cbiAgICovXG4gIHRhcmdldExhZ01zPzogbnVtYmVyXG4gIC8qKlxuICAgKiBTaSBlc3TDoSBhY3Rpdm8sIGFsIGF2YW56YXIgc2UgZGV0aWVuZSBlbiBlbCDDumx0aW1vIHNlcGFyYWRvciBkZSBwYWxhYnJhXG4gICAqIChlc3BhY2lvLCBzYWx0byBkZSBsw61uZWEsIHNpZ25vcyBkZSBwdW50dWFjacOzbikgcGFyYSBldml0YXIgcmVuZGVyaXphclxuICAgKiBtYXJrZG93biBcImNvcnRhZG8gYSBsYSBtaXRhZFwiIHkgZGFyIHVuYSBzZW5zYWNpw7NuIG3DoXMgbmF0dXJhbC5cbiAgICovXG4gIHNuYXBUb1dvcmRCb3VuZGFyeT86IGJvb2xlYW5cbiAgLyoqXG4gICAqIFNpIGVzdMOhIGFjdGl2bywgbWlkZSBsYSB0YXNhIHByb21lZGlvIGEgbGEgcXVlIGNyZWNlIGVsIHRhcmdldCAoY2FkZW5jaWFcbiAgICogZGVsIGJhY2tlbmQgZW4gY2hhcnMvbXMpIHkgbGltaXRhIGxhIHZlbG9jaWRhZCBkZSBwaW50YWRvIGEgZXNhIHRhc2FcbiAgICogKG11bHRpcGxpY2FkYSBwb3IgYGJhY2tlbmRSYXRlRmFjdG9yYCkuIEVzdG8gZXZpdGEgZWwgY2FzbyB0w61waWNvIGRlXG4gICAqIFwicGludG8gcsOhcGlkbyBoYXN0YSB2YWNpYXIgZWwgYnVmZmVyIHkgZGVzcHXDqXMgc2UgY29uZ2VsYSBlc3BlcmFuZG9cbiAgICogYWwgcHLDs3hpbW8gY2h1bmsgZGVsIGJhY2tlbmRcIi5cbiAgICovXG4gIGFkYXB0VG9CYWNrZW5kUmF0ZT86IGJvb2xlYW5cbiAgLyoqXG4gICAqIEZhY3RvciBhcGxpY2FkbyBhIGxhIHRhc2EgZGVsIGJhY2tlbmQgY3VhbmRvIGBhZGFwdFRvQmFja2VuZFJhdGVgIGVzdMOhXG4gICAqIGFjdGl2by4gVmFsb3JlcyA8IDEgZGVqYW4gdW4gY29sY2jDs24gY3JlY2llbnRlIChtw6FzIHRvbGVyYW50ZSBhIHBhdXNhcyk7XG4gICAqIHZhbG9yZXMgPiAxIGludGVudGFuIGFsY2FuemFyLiBEZWZhdWx0OiAwLjk1LlxuICAgKi9cbiAgYmFja2VuZFJhdGVGYWN0b3I/OiBudW1iZXJcbiAgLyoqXG4gICAqIENvbGNow7NuIG9iamV0aXZvIGRlIGJ1ZmZlciBleHByZXNhZG8gZW4gbXMgKGN1w6FudG8gdGllbXBvIGRlIHRleHRvIHF1ZXJlbW9zXG4gICAqIHRlbmVyIHNpZW1wcmUgYWRlbGFudGFkbyBhbCBwaW50YWRvKS4gU2kgZXN0w6EgZGVmaW5pZG8ganVudG8gY29uXG4gICAqIGBhZGFwdFRvQmFja2VuZFJhdGVgLCBzZSB1c2EgdW4gY29udHJvbCBwcm9wb3JjaW9uYWw6IGN1YW5kbyBlbCBidWZmZXJcbiAgICogYmFqYSBkZWwgb2JqZXRpdm8sIGxhIHZlbG9jaWRhZCBjYWUgcG9yIGRlYmFqbyBkZSBsYSBkZWwgYmFja2VuZCBwYXJhXG4gICAqIHJlbGxlbmFybG87IGN1YW5kbyBsbyBzdXBlcmEsIHNlIGFjZWxlcmEgcGFyYSBkZXNjYXJnYXJsby4gQXPDrSBsYVxuICAgKiBhbmltYWNpw7NuIGFic29yYmUgcGF1c2FzIGRlbCBiYWNrZW5kIHNpbiBxdWVkYXJzZSBpZGxlLlxuICAgKlxuICAgKiBWYWxvciByZWNvbWVuZGFkbzogMzAw4oCTNjAwbXMgc2Vnw7puIGxhIGVzdGFiaWxpZGFkIGRlbCBiYWNrZW5kLlxuICAgKi9cbiAgdGFyZ2V0QnVmZmVyTXM/OiBudW1iZXJcbiAgLyoqXG4gICAqIENvbnN0YW50ZSBkZSB0aWVtcG8gKG1zKSBkZWwgY29udHJvbGFkb3IgZGVsIGJ1ZmZlci4gQ3VhbnRvIG3DoXMgYmFqbyxcbiAgICogbcOhcyBhZ3Jlc2l2YW1lbnRlIGNvcnJpZ2UgZGVzdsOtb3MuIERlZmF1bHQ6IDUwMC5cbiAgICovXG4gIGJ1ZmZlckNvcnJlY3Rpb25Ncz86IG51bWJlclxuICAvKipcbiAgICogUGlzbyBhYnNvbHV0byBkZWwgY29sY2jDs24gZW4gY2hhcnM6IGVsIGB0YXJnZXRCdWZmZXJDaGFyc2AgY2FsY3VsYWRvIGFcbiAgICogcGFydGlyIGRlIGB0YXJnZXRCdWZmZXJNcyDDlyBiYWNrZW5kUmF0ZWAgbnVuY2EgYmFqYSBkZSBlc3RlIHZhbG9yLiDDmnRpbFxuICAgKiBhbCBjb21pZW56byBkZWwgc3RyZWFtIGN1YW5kbyBsYSB0YXNhIGVzdGltYWRhIGRlbCBiYWNrZW5kIGVzIGJhamEuXG4gICAqIERlZmF1bHQ6IDcwLlxuICAgKi9cbiAgbWluQnVmZmVyQ2hhcnM/OiBudW1iZXJcbiAgLyoqXG4gICAqIFdhcm11cDogbXMgcXVlIGVsIGhvb2sgZXNwZXJhIFwiYWN1bXVsYW5kb1wiIGFudGVzIGRlIGVtcGV6YXIgYSBwaW50YXIsXG4gICAqIGluY2x1c28gc2kgeWEgaGF5IGNoYXJzIGVuIGVsIGJ1ZmZlci4gRXZpdGEgZWwgdMOtcGljbyBcImFycmFucXVlIHLDoXBpZG8sXG4gICAqIGNvbmdlbGFtaWVudG9cIiBjdWFuZG8gZWwgcHJpbWVyIGNodW5rIGxsZWdhIGFudGVzIHF1ZSBlbCBzZWd1bmRvIHNlXG4gICAqIHRhcmRhIG11Y2hvLiBTaSBzZSBkZWZpbmUgY29tbyAwLCBubyBoYXkgd2FybXVwLiBEZWZhdWx0OiA0MDAuXG4gICAqL1xuICB3YXJtdXBNcz86IG51bWJlclxufVxuXG4vKipcbiAqIEhvb2sgcXVlIGRlc2Fjb3BsYSBsYSBjYWRlbmNpYSBkZSBsbGVnYWRhIGRlbCB0ZXh0byAoc3RyZWFtIFNTRSkgZGUgbGFcbiAqIGNhZGVuY2lhIGRlIHJlbmRlcml6YWRvLiBVc2EgdW4gdGltZXIgY29ydG8gcGFyYSBsaWJlcmFyIGNoYXJzIGEgcml0bW9cbiAqIGNvbnN0YW50ZSBoYWNpYSBlbCBET00sIGVsaW1pbmFuZG8gbG9zIFwiZnJlbm9zXCIgcXVlIHNlIHByb2R1Y2VuIGN1YW5kbyBlbFxuICogYmFja2VuZCBlbWl0ZSByw6FmYWdhcyBkZSB0b2tlbnMuXG4gKlxuICogQ3VhbmRvIGBlbmFibGVkYCBwYXNhIGEgZmFsc2UgKGZpbiBkZSBzdHJlYW0pLCBlbCB0ZXh0byBzZSBjb21wbGV0YSBhbFxuICogaW5zdGFudGUuIER1cmFudGUgZWwgc3RyZWFtaW5nLCBlbCBidWZmZXIgc2UgdmFjw61hIGRpbsOhbWljYW1lbnRlIGFwdW50YW5kb1xuICogYWwgbGFnIGNvbmZpZ3VyYWRvLlxuICovXG5leHBvcnQgY29uc3QgdXNlU21vb3RoU3RyZWFtVGV4dCA9IChcbiAgdGFyZ2V0VGV4dDogc3RyaW5nLFxuICB7XG4gICAgZW5hYmxlZCxcbiAgICBtaW5DaGFyc1BlckZyYW1lID0gMSxcbiAgICBtYXhDaGFyc1BlckZyYW1lID0gMjQsXG4gICAgdGFyZ2V0TGFnTXMgPSA0NTAsXG4gICAgc25hcFRvV29yZEJvdW5kYXJ5ID0gZmFsc2UsXG4gICAgYWRhcHRUb0JhY2tlbmRSYXRlID0gdHJ1ZSxcbiAgICBiYWNrZW5kUmF0ZUZhY3RvciA9IDAuOTUsXG4gICAgdGFyZ2V0QnVmZmVyTXMgPSA2MDAsXG4gICAgYnVmZmVyQ29ycmVjdGlvbk1zID0gNTAwLFxuICAgIG1pbkJ1ZmZlckNoYXJzID0gNzAsXG4gICAgd2FybXVwTXMgPSA0MDAsXG4gIH06IFVzZVNtb290aFN0cmVhbVRleHRPcHRpb25zXG4pOiBzdHJpbmcgPT4ge1xuICBjb25zdCBbZGlzcGxheWVkLCBzZXREaXNwbGF5ZWRdID0gdXNlU3RhdGU8c3RyaW5nPigoKSA9PiAoZW5hYmxlZCA/ICcnIDogdGFyZ2V0VGV4dCkpXG5cbiAgY29uc3QgdGFyZ2V0UmVmID0gdXNlUmVmKHRhcmdldFRleHQpXG4gIGNvbnN0IGRpc3BsYXllZExlblJlZiA9IHVzZVJlZihkaXNwbGF5ZWQubGVuZ3RoKVxuICBjb25zdCB0aWNrVGltZXJSZWYgPSB1c2VSZWY8bnVtYmVyIHwgbnVsbD4obnVsbClcbiAgY29uc3QgbGFzdFRpY2tSZWYgPSB1c2VSZWY8bnVtYmVyPigwKVxuXG4gIC8vIE1lZGljacOzbiBkZSBsYSBjYWRlbmNpYSBkZWwgYmFja2VuZDogc2UgYWN0dWFsaXphIGN1YW5kbyBjYW1iaWEgdGFyZ2V0VGV4dC5cbiAgY29uc3QgbGFzdFRhcmdldExlblJlZiA9IHVzZVJlZjxudW1iZXI+KDApXG4gIGNvbnN0IGxhc3RUYXJnZXRVcGRhdGVSZWYgPSB1c2VSZWY8bnVtYmVyPigwKVxuICAvLyBFc3RpbWFjacOzbiBFTUEgZGUgY2hhcnMvbXMgcHJvZHVjaWRvcyBwb3IgZWwgYmFja2VuZC5cbiAgY29uc3QgYmFja2VuZENoYXJzUGVyTXNSZWYgPSB1c2VSZWY8bnVtYmVyPigwKVxuICAvLyBUaW1lc3RhbXAgZGVsIHByaW1lciBjaHVuayByZWNpYmlkbyAocGFyYSB3YXJtdXApLlxuICBjb25zdCBmaXJzdENodW5rQXRSZWYgPSB1c2VSZWY8bnVtYmVyPigwKVxuICAvLyBTaSBlbCB3YXJtdXAgeWEgdGVybWluw7MgKHVuYSB2ZXogdHJ1ZSwgbm8gdnVlbHZlIGEgYWN0aXZhcnNlIGVuIGVzdGUgc3RyZWFtKS5cbiAgY29uc3Qgd2FybXVwRG9uZVJlZiA9IHVzZVJlZjxib29sZWFuPihmYWxzZSlcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGNvbnN0IG5vdyA9IHR5cGVvZiBwZXJmb3JtYW5jZSAhPT0gJ3VuZGVmaW5lZCcgPyBwZXJmb3JtYW5jZS5ub3coKSA6IERhdGUubm93KClcbiAgICBjb25zdCBwcmV2VGFyZ2V0TGVuID0gbGFzdFRhcmdldExlblJlZi5jdXJyZW50XG4gICAgY29uc3QgZGVsdGFDaGFycyA9IHRhcmdldFRleHQubGVuZ3RoIC0gcHJldlRhcmdldExlblxuICAgIGNvbnN0IHByZXZUYXJnZXRBdCA9IGxhc3RUYXJnZXRVcGRhdGVSZWYuY3VycmVudFxuXG4gICAgaWYgKGVuYWJsZWQgJiYgZGVsdGFDaGFycyA+IDApIHtcbiAgICAgIGlmIChmaXJzdENodW5rQXRSZWYuY3VycmVudCA9PT0gMCkgZmlyc3RDaHVua0F0UmVmLmN1cnJlbnQgPSBub3dcbiAgICB9XG5cbiAgICBpZiAoZW5hYmxlZCAmJiBkZWx0YUNoYXJzID4gMCAmJiBwcmV2VGFyZ2V0QXQgPiAwKSB7XG4gICAgICBjb25zdCBkdCA9IE1hdGgubWF4KDEsIG5vdyAtIHByZXZUYXJnZXRBdClcbiAgICAgIGNvbnN0IHJhdGUgPSBkZWx0YUNoYXJzIC8gZHRcbiAgICAgIGNvbnN0IHByZXZSYXRlID0gYmFja2VuZENoYXJzUGVyTXNSZWYuY3VycmVudFxuICAgICAgLy8gRU1BIHN1YXZlIChhbHBoYSA9IDAuMikgcGFyYSBhYnNvcmJlciBqaXR0ZXIgeSBzZWd1aXIgbGEgdGVuZGVuY2lhLlxuICAgICAgYmFja2VuZENoYXJzUGVyTXNSZWYuY3VycmVudCA9IHByZXZSYXRlID09PSAwID8gcmF0ZSA6IHByZXZSYXRlICogMC44ICsgcmF0ZSAqIDAuMlxuICAgIH1cbiAgICBpZiAoZW5hYmxlZCAmJiB0YXJnZXRUZXh0Lmxlbmd0aCAhPT0gcHJldlRhcmdldExlbikge1xuICAgICAgbGFzdFRhcmdldExlblJlZi5jdXJyZW50ID0gdGFyZ2V0VGV4dC5sZW5ndGhcbiAgICAgIGxhc3RUYXJnZXRVcGRhdGVSZWYuY3VycmVudCA9IG5vd1xuICAgIH1cblxuICAgIHRhcmdldFJlZi5jdXJyZW50ID0gdGFyZ2V0VGV4dFxuXG4gICAgaWYgKCFlbmFibGVkKSB7XG4gICAgICBpZiAodGlja1RpbWVyUmVmLmN1cnJlbnQgIT0gbnVsbCkge1xuICAgICAgICB3aW5kb3cuY2xlYXJUaW1lb3V0KHRpY2tUaW1lclJlZi5jdXJyZW50KVxuICAgICAgICB0aWNrVGltZXJSZWYuY3VycmVudCA9IG51bGxcbiAgICAgIH1cbiAgICAgIGxhc3RUaWNrUmVmLmN1cnJlbnQgPSAwXG4gICAgICBpZiAoZGlzcGxheWVkTGVuUmVmLmN1cnJlbnQgIT09IHRhcmdldFRleHQubGVuZ3RoKSB7XG4gICAgICAgIGRpc3BsYXllZExlblJlZi5jdXJyZW50ID0gdGFyZ2V0VGV4dC5sZW5ndGhcbiAgICAgICAgc2V0RGlzcGxheWVkKHRhcmdldFRleHQpXG4gICAgICB9XG4gICAgICAvLyBSZXNldCBkZSBjYWRlbmNpYSBjdWFuZG8gc2UgYXBhZ2EgcGFyYSBubyBjb250YW1pbmFyIGVsIHByw7N4aW1vIHN0cmVhbS5cbiAgICAgIGxhc3RUYXJnZXRMZW5SZWYuY3VycmVudCA9IDBcbiAgICAgIGxhc3RUYXJnZXRVcGRhdGVSZWYuY3VycmVudCA9IDBcbiAgICAgIGJhY2tlbmRDaGFyc1Blck1zUmVmLmN1cnJlbnQgPSAwXG4gICAgICBmaXJzdENodW5rQXRSZWYuY3VycmVudCA9IDBcbiAgICAgIHdhcm11cERvbmVSZWYuY3VycmVudCA9IGZhbHNlXG4gICAgICByZXR1cm4gdW5kZWZpbmVkXG4gICAgfVxuXG4gICAgaWYgKGRpc3BsYXllZExlblJlZi5jdXJyZW50ID4gdGFyZ2V0VGV4dC5sZW5ndGgpIHtcbiAgICAgIGRpc3BsYXllZExlblJlZi5jdXJyZW50ID0gMFxuICAgICAgc2V0RGlzcGxheWVkKCcnKVxuICAgIH1cblxuICAgIGlmICh0aWNrVGltZXJSZWYuY3VycmVudCAhPSBudWxsKSByZXR1cm4gdW5kZWZpbmVkXG5cbiAgICBjb25zdCBnZXROb3cgPSAoKSA9PiAodHlwZW9mIHBlcmZvcm1hbmNlICE9PSAndW5kZWZpbmVkJyA/IHBlcmZvcm1hbmNlLm5vdygpIDogRGF0ZS5ub3coKSlcbiAgICBjb25zdCBzY2hlZHVsZVRpY2sgPSAodGljazogKHRpY2tOb3c6IG51bWJlcikgPT4gdm9pZCkgPT4ge1xuICAgICAgdGlja1RpbWVyUmVmLmN1cnJlbnQgPSB3aW5kb3cuc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIHRpY2soZ2V0Tm93KCkpXG4gICAgICB9LCAxNilcbiAgICB9XG5cbiAgICBjb25zdCB0aWNrID0gKHRpY2tOb3c6IG51bWJlcikgPT4ge1xuICAgICAgY29uc3QgcHJldiA9IGxhc3RUaWNrUmVmLmN1cnJlbnRcbiAgICAgIGNvbnN0IGR0ID0gcHJldiA/IE1hdGgubWluKHRpY2tOb3cgLSBwcmV2LCA2NCkgOiAxNlxuICAgICAgbGFzdFRpY2tSZWYuY3VycmVudCA9IHRpY2tOb3dcblxuICAgICAgY29uc3QgdGFyZ2V0ID0gdGFyZ2V0UmVmLmN1cnJlbnRcbiAgICAgIGNvbnN0IGN1cnJlbnRMZW4gPSBkaXNwbGF5ZWRMZW5SZWYuY3VycmVudFxuICAgICAgY29uc3QgcmVtYWluaW5nID0gdGFyZ2V0Lmxlbmd0aCAtIGN1cnJlbnRMZW5cblxuICAgICAgaWYgKHJlbWFpbmluZyA8PSAwKSB7XG4gICAgICAgIHNjaGVkdWxlVGljayh0aWNrKVxuICAgICAgICByZXR1cm5cbiAgICAgIH1cblxuICAgICAgLy8gV2FybXVwOiBhbCBjb21pZW56byBkZWwgc3RyZWFtIGVzcGVyYW1vcyBgd2FybXVwTXNgIGRlc2RlIGVsIHByaW1lclxuICAgICAgLy8gY2h1bmsgYW50ZXMgZGUgZW1wZXphciBhIHBpbnRhci4gRXN0byBjb25zdHJ1eWUgdW4gY29sY2jDs24gaW5pY2lhbCB5XG4gICAgICAvLyBldml0YSBhcnJhbmNhciByw6FwaWRvIHBhcmEgY29uZ2VsYXJub3MgYWN0byBzZWd1aWRvIHNpIGVsIGJhY2tlbmRcbiAgICAgIC8vIHRhcmRhIG11Y2hvIGVuIGVtaXRpciBlbCBzZWd1bmRvIGNodW5rLlxuICAgICAgaWYgKCF3YXJtdXBEb25lUmVmLmN1cnJlbnQpIHtcbiAgICAgICAgY29uc3QgZmlyc3RBdCA9IGZpcnN0Q2h1bmtBdFJlZi5jdXJyZW50XG4gICAgICAgIGNvbnN0IHdhaXRlZE1zID0gZmlyc3RBdCA+IDAgPyB0aWNrTm93IC0gZmlyc3RBdCA6IDBcbiAgICAgICAgY29uc3Qgd2FybXVwQ29tcGxldGUgPSB3YXJtdXBNcyA8PSAwIHx8IHdhaXRlZE1zID49IHdhcm11cE1zIHx8IHRhcmdldC5sZW5ndGggPj0gbWluQnVmZmVyQ2hhcnMgKiAyXG4gICAgICAgIGlmICghd2FybXVwQ29tcGxldGUpIHtcbiAgICAgICAgICBzY2hlZHVsZVRpY2sodGljaylcbiAgICAgICAgICByZXR1cm5cbiAgICAgICAgfVxuICAgICAgICB3YXJtdXBEb25lUmVmLmN1cnJlbnQgPSB0cnVlXG4gICAgICB9XG5cbiAgICAgIC8vIFZlbG9jaWRhZCBiYXNlOiB2YWNpYXIgZWwgYnVmZmVyIGVuIH50YXJnZXRMYWdNcy5cbiAgICAgIGNvbnN0IGNoYXJzUGVyTXMgPSByZW1haW5pbmcgLyB0YXJnZXRMYWdNc1xuICAgICAgbGV0IGVmZmVjdGl2ZUNoYXJzUGVyTXMgPSBjaGFyc1Blck1zXG5cbiAgICAgIGNvbnN0IGJhY2tlbmRSYXRlID0gYmFja2VuZENoYXJzUGVyTXNSZWYuY3VycmVudFxuXG4gICAgICBpZiAoYWRhcHRUb0JhY2tlbmRSYXRlICYmIGJhY2tlbmRSYXRlID4gMCkge1xuICAgICAgICBpZiAodHlwZW9mIHRhcmdldEJ1ZmZlck1zID09PSAnbnVtYmVyJykge1xuICAgICAgICAgIC8vIENvbnRyb2wgcHJvcG9yY2lvbmFsOiBtYW50ZW5lciBlbCBidWZmZXIgZW4gdG9ybm8gYWwgY29sY2jDs25cbiAgICAgICAgICAvLyBvYmpldGl2by4gU2kgYnVmZmVyTXMgPCB0YXJnZXQg4oaSIGZyZW5hbW9zIHBvciBkZWJham8gZGVsIGJhY2tlbmRcbiAgICAgICAgICAvLyBwYXJhIGFjdW11bGFyOyBzaSBidWZmZXJNcyA+IHRhcmdldCDihpIgYWNlbGVyYW1vcyBwYXJhIGRlc2Nhcmdhci5cbiAgICAgICAgICAvLyBFbiBlcXVpbGlicmlvLCBwaW50YW1vcyBhbCByaXRtbyBwcm9tZWRpbyBkZWwgYmFja2VuZC5cbiAgICAgICAgICAvL1xuICAgICAgICAgIC8vIEVsIGNvbGNow7NuIG9iamV0aXZvIHNlIGNhbGN1bGEgc29icmUgbGEgdGFzYSAqKmVmZWN0aXZhKiogcXVlXG4gICAgICAgICAgLy8gcG9kZW1vcyBwaW50YXIgKGNhcGVhZGEgcG9yIGBtYXhDaGFyc1BlckZyYW1lYCBhIDYwZnBzKSwgbm8gc29icmVcbiAgICAgICAgICAvLyBsYSBkZWwgYmFja2VuZCBwdXJhLiBFc3RvIGV2aXRhIGVsIGNhc28gcGF0b2zDs2dpY28gZGUgcsOhZmFnYXM6XG4gICAgICAgICAgLy8gc2kgZWwgYmFja2VuZCB0aXJhIGEgNjUwMCBjaC9zLCBlbCB0YXJnZXQgTk8gc2UgdnVlbHZlIDM5MDAgY2hhcnNcbiAgICAgICAgICAvLyAocXVlIGVsIHJlbmRlciBqYW3DoXMgcG9kcsOtYSBzb3N0ZW5lciksIHNpbm8gYWxnbyByYXpvbmFibGUgcXVlXG4gICAgICAgICAgLy8gbGEgYW5pbWFjacOzbiBwdWVkYSBtYW50ZW5lci5cbiAgICAgICAgICAvL1xuICAgICAgICAgIC8vIFBpc28gYWJzb2x1dG86IGVsIGNvbGNow7NuIG51bmNhIGJhamEgZGUgYG1pbkJ1ZmZlckNoYXJzYCBhdW5xdWVcbiAgICAgICAgICAvLyBlbCBiYWNrZW5kIGVzdMOpIG1hbmRhbmRvIGxlbnRvIGFsIGluaWNpbyBkZWwgc3RyZWFtLlxuICAgICAgICAgIGNvbnN0IHJlbmRlclJhdGVDYXAgPSAobWF4Q2hhcnNQZXJGcmFtZSAqIDYwKSAvIDEwMDBcbiAgICAgICAgICBjb25zdCBlZmZlY3RpdmVCdWZmZXJSYXRlID0gTWF0aC5taW4oYmFja2VuZFJhdGUsIHJlbmRlclJhdGVDYXApXG4gICAgICAgICAgY29uc3QgdGFyZ2V0QnVmZmVyQ2hhcnMgPSBNYXRoLm1heChtaW5CdWZmZXJDaGFycywgdGFyZ2V0QnVmZmVyTXMgKiBlZmZlY3RpdmVCdWZmZXJSYXRlKVxuICAgICAgICAgIGNvbnN0IGJ1ZmZlckRlbHRhID0gcmVtYWluaW5nIC0gdGFyZ2V0QnVmZmVyQ2hhcnNcbiAgICAgICAgICAvLyBDb3JyZWNjacOzbiB0aWVuZSB1bmlkYWRlcyBkZSBjaGFycy9tcy4gYnVmZmVyQ29ycmVjdGlvbk1zIGNvbnRyb2xhXG4gICAgICAgICAgLy8gcXXDqSB0YW4gcsOhcGlkbyBlbCBidWZmZXIgcmVhbCBjb252ZXJnZSBhbCBvYmpldGl2by5cbiAgICAgICAgICBjb25zdCBjb3JyZWN0aW9uID0gYnVmZmVyRGVsdGEgLyBNYXRoLm1heCgxLCBidWZmZXJDb3JyZWN0aW9uTXMpXG4gICAgICAgICAgZWZmZWN0aXZlQ2hhcnNQZXJNcyA9IE1hdGgubWF4KDAsIGJhY2tlbmRSYXRlICsgY29ycmVjdGlvbilcbiAgICAgICAgICAvLyBBY290YXIgcG9yIGxhIHZlbG9jaWRhZCBkZSBcInZhY2lhciBlbiB0YXJnZXRMYWdNc1wiIHBhcmEgcXVlIHNpXG4gICAgICAgICAgLy8gZGUgcHJvbnRvIGhheSB1biBwaWNvIGdpZ2FudGUgZGUgYnVmZmVyIG5vIHNhbGdhbW9zIGRpc3BhcmFkb3MuXG4gICAgICAgICAgZWZmZWN0aXZlQ2hhcnNQZXJNcyA9IE1hdGgubWluKGVmZmVjdGl2ZUNoYXJzUGVyTXMsIGNoYXJzUGVyTXMpXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgLy8gTW9kbyBzaW1wbGU6IGNhcCBhIGxhIHRhc2EgZGVsIGJhY2tlbmQgKiBmYWN0b3IuXG4gICAgICAgICAgY29uc3QgY2FwID0gYmFja2VuZFJhdGUgKiBiYWNrZW5kUmF0ZUZhY3RvclxuICAgICAgICAgIGVmZmVjdGl2ZUNoYXJzUGVyTXMgPSBNYXRoLm1pbihlZmZlY3RpdmVDaGFyc1Blck1zLCBjYXApXG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgY29uc3QgcmF3U3RlcCA9IE1hdGguY2VpbChlZmZlY3RpdmVDaGFyc1Blck1zICogZHQpXG4gICAgICBjb25zdCBzdGVwID0gTWF0aC5tYXgobWluQ2hhcnNQZXJGcmFtZSwgTWF0aC5taW4obWF4Q2hhcnNQZXJGcmFtZSwgcmF3U3RlcCkpXG5cbiAgICAgIGxldCBuZXh0TGVuID0gTWF0aC5taW4odGFyZ2V0Lmxlbmd0aCwgY3VycmVudExlbiArIHN0ZXApXG5cbiAgICAgIGlmIChzbmFwVG9Xb3JkQm91bmRhcnkgJiYgbmV4dExlbiA8IHRhcmdldC5sZW5ndGgpIHtcbiAgICAgICAgY29uc3Qgc2xpY2UgPSB0YXJnZXQuc2xpY2UoY3VycmVudExlbiwgbmV4dExlbilcbiAgICAgICAgY29uc3QgbGFzdEJvdW5kYXJ5ID0gTWF0aC5tYXgoc2xpY2UubGFzdEluZGV4T2YoJyAnKSwgc2xpY2UubGFzdEluZGV4T2YoJ1xcbicpLCBzbGljZS5sYXN0SW5kZXhPZignXFx0JykpXG4gICAgICAgIGlmIChsYXN0Qm91bmRhcnkgPj0gMCkge1xuICAgICAgICAgIG5leHRMZW4gPSBjdXJyZW50TGVuICsgbGFzdEJvdW5kYXJ5ICsgMVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGlmIChuZXh0TGVuICE9PSBjdXJyZW50TGVuKSB7XG4gICAgICAgIGRpc3BsYXllZExlblJlZi5jdXJyZW50ID0gbmV4dExlblxuICAgICAgICBzZXREaXNwbGF5ZWQodGFyZ2V0LnNsaWNlKDAsIG5leHRMZW4pKVxuICAgICAgfVxuXG4gICAgICBzY2hlZHVsZVRpY2sodGljaylcbiAgICB9XG5cbiAgICBzY2hlZHVsZVRpY2sodGljaylcblxuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICBpZiAodGlja1RpbWVyUmVmLmN1cnJlbnQgIT0gbnVsbCkge1xuICAgICAgICB3aW5kb3cuY2xlYXJUaW1lb3V0KHRpY2tUaW1lclJlZi5jdXJyZW50KVxuICAgICAgICB0aWNrVGltZXJSZWYuY3VycmVudCA9IG51bGxcbiAgICAgIH1cbiAgICAgIGxhc3RUaWNrUmVmLmN1cnJlbnQgPSAwXG4gICAgfVxuICB9LCBbXG4gICAgdGFyZ2V0VGV4dCxcbiAgICBlbmFibGVkLFxuICAgIG1pbkNoYXJzUGVyRnJhbWUsXG4gICAgbWF4Q2hhcnNQZXJGcmFtZSxcbiAgICB0YXJnZXRMYWdNcyxcbiAgICBzbmFwVG9Xb3JkQm91bmRhcnksXG4gICAgYWRhcHRUb0JhY2tlbmRSYXRlLFxuICAgIGJhY2tlbmRSYXRlRmFjdG9yLFxuICAgIHRhcmdldEJ1ZmZlck1zLFxuICAgIGJ1ZmZlckNvcnJlY3Rpb25NcyxcbiAgICBtaW5CdWZmZXJDaGFycyxcbiAgICB3YXJtdXBNcyxcbiAgXSlcblxuICByZXR1cm4gZGlzcGxheWVkXG59XG4iXSwibWFwcGluZ3MiOiI7QUFBQSxTQUFTQSxTQUFTLEVBQUVDLE1BQU0sRUFBRUMsUUFBUSxRQUFRLE9BQU87QUFtRW5EO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTyxJQUFNQyxtQkFBbUIsR0FBRyxTQUF0QkEsbUJBQW1CQSxDQUM5QkMsVUFBa0IsRUFBQUMsSUFBQSxFQWNQO0VBQUEsSUFaVEMsT0FBTyxHQUFBRCxJQUFBLENBQVBDLE9BQU87SUFBQUMscUJBQUEsR0FBQUYsSUFBQSxDQUNQRyxnQkFBZ0I7SUFBaEJBLGdCQUFnQixHQUFBRCxxQkFBQSxjQUFHLENBQUMsR0FBQUEscUJBQUE7SUFBQUUscUJBQUEsR0FBQUosSUFBQSxDQUNwQkssZ0JBQWdCO0lBQWhCQSxnQkFBZ0IsR0FBQUQscUJBQUEsY0FBRyxFQUFFLEdBQUFBLHFCQUFBO0lBQUFFLGdCQUFBLEdBQUFOLElBQUEsQ0FDckJPLFdBQVc7SUFBWEEsV0FBVyxHQUFBRCxnQkFBQSxjQUFHLEdBQUcsR0FBQUEsZ0JBQUE7SUFBQUUscUJBQUEsR0FBQVIsSUFBQSxDQUNqQlMsa0JBQWtCO0lBQWxCQSxrQkFBa0IsR0FBQUQscUJBQUEsY0FBRyxLQUFLLEdBQUFBLHFCQUFBO0lBQUFFLHFCQUFBLEdBQUFWLElBQUEsQ0FDMUJXLGtCQUFrQjtJQUFsQkEsa0JBQWtCLEdBQUFELHFCQUFBLGNBQUcsSUFBSSxHQUFBQSxxQkFBQTtJQUFBRSxxQkFBQSxHQUFBWixJQUFBLENBQ3pCYSxpQkFBaUI7SUFBakJBLGlCQUFpQixHQUFBRCxxQkFBQSxjQUFHLElBQUksR0FBQUEscUJBQUE7SUFBQUUsbUJBQUEsR0FBQWQsSUFBQSxDQUN4QmUsY0FBYztJQUFkQSxjQUFjLEdBQUFELG1CQUFBLGNBQUcsR0FBRyxHQUFBQSxtQkFBQTtJQUFBRSxxQkFBQSxHQUFBaEIsSUFB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
@@ -0,0 +1,41 @@
1
+ export var useSnackBarManager = function useSnackBarManager() {
2
+ var handleDispatchSnackbarEvent = function handleDispatchSnackbarEvent(snackbarEvent) {
3
+ document.dispatchEvent(snackbarEvent);
4
+ };
5
+ var handleSnackbarSuccess = function handleSnackbarSuccess(source) {
6
+ var snackbarEvent = new CustomEvent('snackbar-event', {
7
+ detail: {
8
+ show: true,
9
+ severity: 'success',
10
+ message: source
11
+ }
12
+ });
13
+ handleDispatchSnackbarEvent(snackbarEvent);
14
+ };
15
+ var handleSnackbarError = function handleSnackbarError(source) {
16
+ var snackbarEvent = new CustomEvent('snackbar-event', {
17
+ detail: {
18
+ show: true,
19
+ severity: 'error',
20
+ message: source
21
+ }
22
+ });
23
+ handleDispatchSnackbarEvent(snackbarEvent);
24
+ };
25
+ var handleSnackbarInfo = function handleSnackbarInfo(source) {
26
+ var snackbarEvent = new CustomEvent('snackbar-event', {
27
+ detail: {
28
+ show: true,
29
+ severity: 'info',
30
+ message: source
31
+ }
32
+ });
33
+ handleDispatchSnackbarEvent(snackbarEvent);
34
+ };
35
+ return {
36
+ handleSnackbarSuccess: handleSnackbarSuccess,
37
+ handleSnackbarError: handleSnackbarError,
38
+ handleSnackbarInfo: handleSnackbarInfo
39
+ };
40
+ };
41
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VTbmFja0Jhck1hbmFnZXIiLCJoYW5kbGVEaXNwYXRjaFNuYWNrYmFyRXZlbnQiLCJzbmFja2JhckV2ZW50IiwiZG9jdW1lbnQiLCJkaXNwYXRjaEV2ZW50IiwiaGFuZGxlU25hY2tiYXJTdWNjZXNzIiwic291cmNlIiwiQ3VzdG9tRXZlbnQiLCJkZXRhaWwiLCJzaG93Iiwic2V2ZXJpdHkiLCJtZXNzYWdlIiwiaGFuZGxlU25hY2tiYXJFcnJvciIsImhhbmRsZVNuYWNrYmFySW5mbyJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9ob29rcy91c2VTbmFja0Jhck1hbmFnZXIvdXNlU25hY2tCYXJNYW5hZ2VyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjb25zdCB1c2VTbmFja0Jhck1hbmFnZXIgPSAoKSA9PiB7XG4gIGNvbnN0IGhhbmRsZURpc3BhdGNoU25hY2tiYXJFdmVudCA9IChzbmFja2JhckV2ZW50OiBDdXN0b21FdmVudCkgPT4ge1xuICAgIGRvY3VtZW50LmRpc3BhdGNoRXZlbnQoc25hY2tiYXJFdmVudClcbiAgfVxuICBjb25zdCBoYW5kbGVTbmFja2JhclN1Y2Nlc3MgPSAoc291cmNlOiBzdHJpbmcpID0+IHtcbiAgICBjb25zdCBzbmFja2JhckV2ZW50ID0gbmV3IEN1c3RvbUV2ZW50KCdzbmFja2Jhci1ldmVudCcsIHtcbiAgICAgIGRldGFpbDoge1xuICAgICAgICBzaG93OiB0cnVlLFxuICAgICAgICBzZXZlcml0eTogJ3N1Y2Nlc3MnLFxuICAgICAgICBtZXNzYWdlOiBzb3VyY2UsXG4gICAgICB9LFxuICAgIH0pXG4gICAgaGFuZGxlRGlzcGF0Y2hTbmFja2JhckV2ZW50KHNuYWNrYmFyRXZlbnQpXG4gIH1cblxuICBjb25zdCBoYW5kbGVTbmFja2JhckVycm9yID0gKHNvdXJjZTogc3RyaW5nKSA9PiB7XG4gICAgY29uc3Qgc25hY2tiYXJFdmVudCA9IG5ldyBDdXN0b21FdmVudCgnc25hY2tiYXItZXZlbnQnLCB7XG4gICAgICBkZXRhaWw6IHtcbiAgICAgICAgc2hvdzogdHJ1ZSxcbiAgICAgICAgc2V2ZXJpdHk6ICdlcnJvcicsXG4gICAgICAgIG1lc3NhZ2U6IHNvdXJjZSxcbiAgICAgIH0sXG4gICAgfSlcbiAgICBoYW5kbGVEaXNwYXRjaFNuYWNrYmFyRXZlbnQoc25hY2tiYXJFdmVudClcbiAgfVxuXG4gIGNvbnN0IGhhbmRsZVNuYWNrYmFySW5mbyA9IChzb3VyY2U6IHN0cmluZykgPT4ge1xuICAgIGNvbnN0IHNuYWNrYmFyRXZlbnQgPSBuZXcgQ3VzdG9tRXZlbnQoJ3NuYWNrYmFyLWV2ZW50Jywge1xuICAgICAgZGV0YWlsOiB7XG4gICAgICAgIHNob3c6IHRydWUsXG4gICAgICAgIHNldmVyaXR5OiAnaW5mbycsXG4gICAgICAgIG1lc3NhZ2U6IHNvdXJjZSxcbiAgICAgIH0sXG4gICAgfSlcbiAgICBoYW5kbGVEaXNwYXRjaFNuYWNrYmFyRXZlbnQoc25hY2tiYXJFdmVudClcbiAgfVxuXG4gIHJldHVybiB7IGhhbmRsZVNuYWNrYmFyU3VjY2VzcywgaGFuZGxlU25hY2tiYXJFcnJvciwgaGFuZGxlU25hY2tiYXJJbmZvIH1cbn1cbiJdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxJQUFNQSxrQkFBa0IsR0FBRyxTQUFyQkEsa0JBQWtCQSxDQUFBLEVBQVM7RUFDdEMsSUFBTUMsMkJBQTJCLEdBQUcsU0FBOUJBLDJCQUEyQkEsQ0FBSUMsYUFBMEIsRUFBSztJQUNsRUMsUUFBUSxDQUFDQyxhQUFhLENBQUNGLGFBQWEsQ0FBQztFQUN2QyxDQUFDO0VBQ0QsSUFBTUcscUJBQXFCLEdBQUcsU0FBeEJBLHFCQUFxQkEsQ0FBSUMsTUFBYyxFQUFLO0lBQ2hELElBQU1KLGFBQWEsR0FBRyxJQUFJSyxXQUFXLENBQUMsZ0JBQWdCLEVBQUU7TUFDdERDLE1BQU0sRUFBRTtRQUNOQyxJQUFJLEVBQUUsSUFBSTtRQUNWQyxRQUFRLEVBQUUsU0FBUztRQUNuQkMsT0FBTyxFQUFFTDtNQUNYO0lBQ0YsQ0FBQyxDQUFDO0lBQ0ZMLDJCQUEyQixDQUFDQyxhQUFhLENBQUM7RUFDNUMsQ0FBQztFQUVELElBQU1VLG1CQUFtQixHQUFHLFNBQXRCQSxtQkFBbUJBLENBQUlOLE1BQWMsRUFBSztJQUM5QyxJQUFNSixhQUFhLEdBQUcsSUFBSUssV0FBVyxDQUFDLGdCQUFnQixFQUFFO01BQ3REQyxNQUFNLEVBQUU7UUFDTkMsSUFBSSxFQUFFLElBQUk7UUFDVkMsUUFBUSxFQUFFLE9BQU87UUFDakJDLE9BQU8sRUFBRUw7TUFDWDtJQUNGLENBQUMsQ0FBQztJQUNGTCwyQkFBMkIsQ0FBQ0MsYUFBYSxDQUFDO0VBQzVDLENBQUM7RUFFRCxJQUFNVyxrQkFBa0IsR0FBRyxTQUFyQkEsa0JBQWtCQSxDQUFJUCxNQUFjLEVBQUs7SUFDN0MsSUFBTUosYUFBYSxHQUFHLElBQUlLLFdBQVcsQ0FBQyxnQkFBZ0IsRUFBRTtNQUN0REMsTUFBTSxFQUFFO1FBQ05DLElBQUksRUFBRSxJQUFJO1FBQ1ZDLFFBQVEsRUFBRSxNQUFNO1FBQ2hCQyxPQUFPLEVBQUVMO01BQ1g7SUFDRixDQUFDLENBQUM7SUFDRkwsMkJBQTJCLENBQUNDLGFBQWEsQ0FBQztFQUM1QyxDQUFDO0VBRUQsT0FBTztJQUFFRyxxQkFBcUIsRUFBckJBLHFCQUFxQjtJQUFFTyxtQkFBbUIsRUFBbkJBLG1CQUFtQjtJQUFFQyxrQkFBa0IsRUFBbEJBO0VBQW1CLENBQUM7QUFDM0UsQ0FBQyIsImlnbm9yZUxpc3QiOltdfQ==