@projectcor/maia-components 2.44.5-0 → 2.45.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (428) hide show
  1. package/README.md +2 -0
  2. package/lib/App.js +19 -44
  3. package/lib/components/atoms/AttachmentCard/AttachmentCardAudio.js +51 -5
  4. package/lib/components/atoms/AttachmentPreviewModal/AttachmentPreviewModal.js +76 -18
  5. package/lib/components/atoms/AttachmentPreviewModal/PptPreview.js +31 -3
  6. package/lib/components/atoms/AttachmentPreviewModal/WordPreview.js +4 -2
  7. package/lib/components/atoms/ContextMentionChip/buildChipElement.js +255 -15
  8. package/lib/components/atoms/ContextMentionEditor/ContextMentionEditor.js +34 -5
  9. package/lib/components/atoms/FrequentlyUsedActions/FrequentlyUsedActions.js +1 -3
  10. package/lib/components/atoms/FrequentlyUsedActions/FrequentlyUsedActions.styles.js +7 -19
  11. package/lib/components/atoms/MAIAInput/MAIAInput.js +10 -4
  12. package/lib/components/atoms/MAIAInput/MAIAInputEditor.js +60 -8
  13. package/lib/components/atoms/OnboardingModalButton/OnboardingModalButton.js +15 -3
  14. package/lib/components/atoms/ReasoningBlock/ReasoningBlock.js +2 -7
  15. package/lib/components/atoms/ReasoningBlock/ReasoningBlock.styles.js +16 -21
  16. package/lib/components/atoms/ReasoningBlock/ReasoningSteps.js +5 -7
  17. package/lib/components/atoms/ReasoningBlock/ReasoningTimeline.js +52 -72
  18. package/lib/components/atoms/ReasoningBlock/reasoningLeading.js +1 -6
  19. package/lib/components/atoms/ReasoningBlock/reasoningLiveNarration.js +15 -36
  20. package/lib/components/index.js +1 -2
  21. package/lib/components/molecules/AbmSection/AbmAccessibilitySection/AbmAccessibilitySection.js +29 -5
  22. package/lib/components/molecules/AbmSection/AbmGeneralSection.js +40 -6
  23. package/lib/components/molecules/AbmSection/AbmKnowledgeSection.js +90 -18
  24. package/lib/components/molecules/AbmSection/AbmLoaderFiles.js +15 -5
  25. package/lib/components/molecules/ChatAIContent/ChatAIContent.js +3 -7
  26. package/lib/components/molecules/ChatAIHome/ChatAIHome.js +6 -21
  27. package/lib/components/molecules/ChatAIMessages/ChatAIMessages.js +47 -19
  28. package/lib/components/molecules/ChatAIMessages/newStyles.js +26 -29
  29. package/lib/components/molecules/ChatAIModal/ChatAIModal.helpers.js +4 -147
  30. package/lib/components/molecules/ChatAIModal/ChatAIModal.js +108 -64
  31. package/lib/components/molecules/ChatAIModal/components/ChatAiAgentOptions/ChatAiAgentOptions.js +2 -3
  32. package/lib/components/molecules/ChatAIModal/components/ChatAiModalFooter/ChatAiModalFooter.js +153 -15
  33. package/lib/components/molecules/ChatAIModal/components/ChatAiModalFooter/ChatAiModalFooter.styles.js +26 -2
  34. package/lib/components/molecules/ChatAIModal/components/ChatAiModalHeader/ChatAiModalHeader.js +86 -76
  35. package/lib/components/molecules/ChatFooter/ChatFooter.js +3 -5
  36. package/lib/components/molecules/ChatFooter/ChatFooterFaqs.js +44 -9
  37. package/lib/components/molecules/Sidebar/Sidebar.js +23 -41
  38. package/lib/components/organisms/AbmAgentModal/AbmAgentModal.js +171 -56
  39. package/lib/constants/permissions/index.js +2 -2
  40. package/lib/constants/permissions/utils.js +1 -4
  41. package/lib/dev/DevReasoningTimeline.js +37 -68
  42. package/lib/dev/Providers.js +3 -5
  43. package/lib/hooks/useChatManager/useChatManager.js +351 -76
  44. package/lib/hooks/useChatMessages/useChatMessages.js +82 -12
  45. package/lib/hooks/useClientSearch.js +32 -4
  46. package/lib/hooks/useContextMentions.js +163 -2
  47. package/lib/hooks/useContextPinPopover.js +75 -16
  48. package/lib/hooks/useEntitySearch.js +391 -38
  49. package/lib/hooks/useFrequentlyUsedActions.js +22 -60
  50. package/lib/hooks/useMentionPopover.js +35 -9
  51. package/lib/hooks/useMinimizedPillBottomOffset.js +45 -15
  52. package/lib/hooks/useProjectSearch.js +58 -4
  53. package/lib/hooks/useProjectSummaryConfig.js +52 -14
  54. package/lib/hooks/useRecentClientsSearch.js +32 -4
  55. package/lib/index.js +2 -5
  56. package/lib/lang/approvalBoxToolActions.js +492 -0
  57. package/lib/lang/br/index.js +23 -59
  58. package/lib/lang/en/index.js +23 -59
  59. package/lib/lang/es/index.js +23 -59
  60. package/lib/lang/fr/index.js +23 -59
  61. package/lib/services/maia/Actions/getFrequentlyUsedActions.js +1 -1
  62. package/lib/services/maia/Agents/getAgents.js +242 -78
  63. package/lib/services/maia/Orchestrator/orchestrator.js +121 -38
  64. package/lib/store/sessions/sessionNotifications.js +41 -35
  65. package/lib/store/sessions/sessionStreamManager.js +52 -40
  66. package/lib/styles/cascade.js +3 -29
  67. package/lib/styles/transitions.js +1 -3
  68. package/lib/types/agentModal.js +1 -1
  69. package/lib/types/global.d.js +1 -1
  70. package/lib/utils/hoursPlannerQuickActionType.js +1 -74
  71. package/lib/utils/imagePreprocessor.js +37 -12
  72. package/lib/utils/streamActivityMessages.js +60 -32
  73. package/package.json +1 -1
  74. package/lib/components/atoms/ActionableButton.spec.js +0 -111
  75. package/lib/components/atoms/AgentActivityIndicator/AgentActivityIndicator.spec.js +0 -52
  76. package/lib/components/atoms/AgentActivityIndicator/AgentActivityIndicator.utils.spec.js +0 -11
  77. package/lib/components/atoms/ApprovalBox/ApprovalBox.spec.js +0 -135
  78. package/lib/components/atoms/AttachmentCard/AttachmentCard.spec.js +0 -123
  79. package/lib/components/atoms/AttachmentCard/AttachmentCardAudio.helpers.js +0 -65
  80. package/lib/components/atoms/AttachmentCard/AttachmentCardAudio.helpers.spec.js +0 -66
  81. package/lib/components/atoms/AttachmentCard/AttachmentCardAudio.spec.js +0 -211
  82. package/lib/components/atoms/AttachmentCard/AttachmentCardImage.spec.js +0 -78
  83. package/lib/components/atoms/AttachmentPreviewModal/AttachmentPreviewModal.helpers.js +0 -55
  84. package/lib/components/atoms/AttachmentPreviewModal/AttachmentPreviewModal.helpers.spec.js +0 -41
  85. package/lib/components/atoms/AttachmentPreviewModal/AttachmentPreviewModal.spec.js +0 -253
  86. package/lib/components/atoms/AttachmentPreviewModal/ExcelPreview.spec.js +0 -80
  87. package/lib/components/atoms/AttachmentPreviewModal/PptPreview.helpers.js +0 -31
  88. package/lib/components/atoms/AttachmentPreviewModal/PptPreview.helpers.spec.js +0 -33
  89. package/lib/components/atoms/AttachmentPreviewModal/PptPreview.spec.js +0 -25
  90. package/lib/components/atoms/AttachmentPreviewModal/WordPreview.helpers.js +0 -4
  91. package/lib/components/atoms/AttachmentPreviewModal/WordPreview.helpers.spec.js +0 -11
  92. package/lib/components/atoms/AttachmentPreviewModal/WordPreview.spec.js +0 -77
  93. package/lib/components/atoms/Backdrop/Backdrop.spec.js +0 -28
  94. package/lib/components/atoms/CardMenu/CardMenu.spec.js +0 -56
  95. package/lib/components/atoms/ChatClientSelector/ChatClientSelector.spec.js +0 -67
  96. package/lib/components/atoms/Checkbox/Checkbox.spec.js +0 -27
  97. package/lib/components/atoms/Chip/Chip.spec.js +0 -82
  98. package/lib/components/atoms/ChipLlm/ChipLlm.spec.js +0 -26
  99. package/lib/components/atoms/ClientSelector/ClientSelector.spec.js +0 -88
  100. package/lib/components/atoms/ContextMentionChip/ContextMentionChip.spec.js +0 -29
  101. package/lib/components/atoms/ContextMentionChip/MentionOverflowLabel.spec.js +0 -46
  102. package/lib/components/atoms/ContextMentionChip/buildChipElement.helpers.js +0 -227
  103. package/lib/components/atoms/ContextMentionChip/buildChipElement.helpers.spec.js +0 -77
  104. package/lib/components/atoms/ContextMentionChip/buildChipElement.spec.js +0 -81
  105. package/lib/components/atoms/ContextMentionEditor/ContextMentionEditor.helpers.js +0 -31
  106. package/lib/components/atoms/ContextMentionEditor/ContextMentionEditor.helpers.spec.js +0 -48
  107. package/lib/components/atoms/ContextMentionEditor/ContextMentionEditor.spec.js +0 -231
  108. package/lib/components/atoms/ContextMentionItem/ContextMentionItem.spec.js +0 -107
  109. package/lib/components/atoms/ContextMentionPopover/ContextMentionPopover.spec.js +0 -136
  110. package/lib/components/atoms/CopyToClipboard.spec.js +0 -74
  111. package/lib/components/atoms/EditableLabel/EditableLabel.spec.js +0 -76
  112. package/lib/components/atoms/EntitySelector/EntitySelector.spec.js +0 -86
  113. package/lib/components/atoms/Expand/Expand.spec.js +0 -57
  114. package/lib/components/atoms/Fade/Fade.spec.js +0 -31
  115. package/lib/components/atoms/FeedbackButton/FeedbackButton.spec.js +0 -75
  116. package/lib/components/atoms/FrequentlyAskedQuestions/FrequentlyAskedQuestions.spec.js +0 -104
  117. package/lib/components/atoms/FrequentlyUsedActions/FrequentlyUsedActions.spec.js +0 -91
  118. package/lib/components/atoms/HelpButton.spec.js +0 -87
  119. package/lib/components/atoms/ImagePreview/ImagePreview.spec.js +0 -96
  120. package/lib/components/atoms/ListMenuOption/ListMenuOption.spec.js +0 -54
  121. package/lib/components/atoms/LoadingFaqs/LoadingFaqs.spec.js +0 -21
  122. package/lib/components/atoms/LoadingSearchClients/LoadingSearchClients.spec.js +0 -20
  123. package/lib/components/atoms/LoadingSearchProjects/LoadingSearchProjects.spec.js +0 -26
  124. package/lib/components/atoms/LoadingText/LoadingText.spec.js +0 -25
  125. package/lib/components/atoms/MAIAButton/MAIAButton.spec.js +0 -42
  126. package/lib/components/atoms/MAIAError/MAIAError.spec.js +0 -27
  127. package/lib/components/atoms/MAIAInput/MAIAInput.helpers.js +0 -12
  128. package/lib/components/atoms/MAIAInput/MAIAInput.helpers.spec.js +0 -26
  129. package/lib/components/atoms/MAIAInput/MAIAInput.spec.js +0 -430
  130. package/lib/components/atoms/MAIAInput/MAIAInputEditor.helpers.js +0 -50
  131. package/lib/components/atoms/MAIAInput/MAIAInputEditor.helpers.spec.js +0 -20
  132. package/lib/components/atoms/MAIAInput/MAIAInputEditor.spec.js +0 -53
  133. package/lib/components/atoms/MAIAInput/maiaInputLayout.spec.js +0 -22
  134. package/lib/components/atoms/MaiaStreamdown/MaiaStreamdown.spec.js +0 -64
  135. package/lib/components/atoms/MaiaWrapper/MaiaWrapper.spec.js +0 -43
  136. package/lib/components/atoms/MaiaWrapper/MaiaWrapperBase.spec.js +0 -114
  137. package/lib/components/atoms/MaiaWrapper/ModernMaiaWrapper.spec.js +0 -51
  138. package/lib/components/atoms/ModalClientAccess/ModalClientAccess.spec.js +0 -48
  139. package/lib/components/atoms/ModalProject/ModalProject.spec.js +0 -66
  140. package/lib/components/atoms/NextPageLoader.spec.js +0 -37
  141. package/lib/components/atoms/OnboardingModalButton/OnboardingModal.spec.js +0 -20
  142. package/lib/components/atoms/OnboardingModalButton/OnboardingModalButton.helpers.js +0 -17
  143. package/lib/components/atoms/OnboardingModalButton/OnboardingModalButton.helpers.spec.js +0 -35
  144. package/lib/components/atoms/OnboardingModalButton/OnboardingModalButton.spec.js +0 -47
  145. package/lib/components/atoms/OptionAccessibility/OptionAccessibility.spec.js +0 -86
  146. package/lib/components/atoms/PrimaryButton.spec.js +0 -42
  147. package/lib/components/atoms/ProjectSelector/ProjectSelector.spec.js +0 -69
  148. package/lib/components/atoms/ReasoningBlock/ReasoningBlock.spec.js +0 -69
  149. package/lib/components/atoms/ReasoningBlock/ReasoningSteps.spec.js +0 -59
  150. package/lib/components/atoms/ReasoningBlock/ReasoningTimeline.spec.js +0 -132
  151. package/lib/components/atoms/ReasoningBlock/groupParallelSteps.spec.js +0 -162
  152. package/lib/components/atoms/ReasoningBlock/reasoningLeading.spec.js +0 -70
  153. package/lib/components/atoms/ReasoningBlock/reasoningLiveNarration.spec.js +0 -120
  154. package/lib/components/atoms/ReasoningBlock/reasoningMotion.js +0 -4
  155. package/lib/components/atoms/ReasoningBlock/reasoningTimeline.helpers.js +0 -10
  156. package/lib/components/atoms/ReasoningBlock/reasoningTimeline.helpers.spec.js +0 -31
  157. package/lib/components/atoms/ReasoningBlock/useCollapsibleHeight.js +0 -52
  158. package/lib/components/atoms/ReasoningBlock/useCollapsibleHeight.spec.js +0 -90
  159. package/lib/components/atoms/SessionGeneratingDot/SessionGeneratingDot.spec.js +0 -16
  160. package/lib/components/atoms/SkillsDropdown/SkillsDropdown.spec.js +0 -107
  161. package/lib/components/atoms/SlashCommandChip/SlashCommandChip.spec.js +0 -24
  162. package/lib/components/atoms/SlashCommandDropdown/SlashCommandDropdown.spec.js +0 -85
  163. package/lib/components/atoms/Switch/Switch.spec.js +0 -41
  164. package/lib/components/atoms/TextArea/CustomTextArea.spec.js +0 -52
  165. package/lib/components/atoms/TextArea/TextArea.spec.js +0 -68
  166. package/lib/components/atoms/ThirdButton.spec.js +0 -29
  167. package/lib/components/atoms/VideoModal/VideoModal.spec.js +0 -68
  168. package/lib/components/atoms/WithAppCfg.spec.js +0 -60
  169. package/lib/components/molecules/AbmSection/AbmAccessibilitySection/AbmAccessibilitySection.helpers.js +0 -37
  170. package/lib/components/molecules/AbmSection/AbmAccessibilitySection/AbmAccessibilitySection.helpers.spec.js +0 -53
  171. package/lib/components/molecules/AbmSection/AbmAccessibilitySection/AbmAccessibilitySection.spec.js +0 -371
  172. package/lib/components/molecules/AbmSection/AbmGeneralSection.helpers.js +0 -39
  173. package/lib/components/molecules/AbmSection/AbmGeneralSection.helpers.spec.js +0 -57
  174. package/lib/components/molecules/AbmSection/AbmGeneralSection.spec.js +0 -227
  175. package/lib/components/molecules/AbmSection/AbmKnowledgeSection.helpers.js +0 -86
  176. package/lib/components/molecules/AbmSection/AbmKnowledgeSection.helpers.spec.js +0 -108
  177. package/lib/components/molecules/AbmSection/AbmKnowledgeSection.spec.js +0 -254
  178. package/lib/components/molecules/AbmSection/AbmLoaderFiles.helpers.js +0 -17
  179. package/lib/components/molecules/AbmSection/AbmLoaderFiles.helpers.spec.js +0 -50
  180. package/lib/components/molecules/AbmSection/AbmLoaderFiles.spec.js +0 -94
  181. package/lib/components/molecules/AgentInputBlock/AgentInputBlockMessage.js +0 -83
  182. package/lib/components/molecules/AgentInputBlock/AgentInputBlockMessage.styles.js +0 -30
  183. package/lib/components/molecules/AgentInputBlock/index.js +0 -5
  184. package/lib/components/molecules/AgentInputBlock/resolveAgentInputBlock.js +0 -52
  185. package/lib/components/molecules/AgentInputBlock/resolveAgentInputBlock.spec.js +0 -76
  186. package/lib/components/molecules/AgentInputBlock/resolveLegacyContextSession.js +0 -20
  187. package/lib/components/molecules/AgentInputBlock/resolveLegacyContextSession.spec.js +0 -34
  188. package/lib/components/molecules/AgentInputBlock/useAgentChangeModelAction.js +0 -36
  189. package/lib/components/molecules/ChatAIClientSelector/ChatAIClientSelector.spec.js +0 -66
  190. package/lib/components/molecules/ChatAIContent/ChatAIContent.spec.js +0 -145
  191. package/lib/components/molecules/ChatAIHistory/ChatAIHistory.spec.js +0 -204
  192. package/lib/components/molecules/ChatAIHome/ChatAIHome.spec.js +0 -246
  193. package/lib/components/molecules/ChatAIHome/ChatAIHomeMaiaker.spec.js +0 -86
  194. package/lib/components/molecules/ChatAIMessages/ChatAICreateAgentActions.spec.js +0 -104
  195. package/lib/components/molecules/ChatAIMessages/ChatAIMessages.helpers.js +0 -54
  196. package/lib/components/molecules/ChatAIMessages/ChatAIMessages.helpers.spec.js +0 -77
  197. package/lib/components/molecules/ChatAIMessages/ChatAIMessages.spec.js +0 -410
  198. package/lib/components/molecules/ChatAIMessages/ChatAISuggestions.spec.js +0 -46
  199. package/lib/components/molecules/ChatAIModal/ChatAIModal.helpers.spec.js +0 -471
  200. package/lib/components/molecules/ChatAIModal/ChatAIModal.spec.js +0 -659
  201. package/lib/components/molecules/ChatAIModal/components/ChatAiAgentOptions/ChatAiAgentOptions.helpers.js +0 -5
  202. package/lib/components/molecules/ChatAIModal/components/ChatAiAgentOptions/ChatAiAgentOptions.helpers.spec.js +0 -33
  203. package/lib/components/molecules/ChatAIModal/components/ChatAiAgentOptions/ChatAiAgentOptions.spec.js +0 -116
  204. package/lib/components/molecules/ChatAIModal/components/ChatAiModalFooter/ChatAiModalFooter.spec.js +0 -134
  205. package/lib/components/molecules/ChatAIModal/components/ChatAiModalHeader/ChatAiModalHeader.helpers.js +0 -30
  206. package/lib/components/molecules/ChatAIModal/components/ChatAiModalHeader/ChatAiModalHeader.helpers.spec.js +0 -95
  207. package/lib/components/molecules/ChatAIModal/components/ChatAiModalHeader/ChatAiModalHeader.spec.js +0 -241
  208. package/lib/components/molecules/ChatAIModal/components/MaiaMinimizedPill/MaiaMinimizedPill.spec.js +0 -37
  209. package/lib/components/molecules/ChatAIModal/constants.spec.js +0 -16
  210. package/lib/components/molecules/ChatAIModal/floatingPanelMotion/FloatingPanelMotion.spec.js +0 -22
  211. package/lib/components/molecules/ChatAIModal/floatingPanelMotion/useFloatingPanelDragTilt.spec.js +0 -67
  212. package/lib/components/molecules/ChatAIModal/layout.spec.js +0 -72
  213. package/lib/components/molecules/ChatAIMyAgents/ChatAIMyAgents.spec.js +0 -172
  214. package/lib/components/molecules/ChatAIMySkills/ChatAIMySkills.spec.js +0 -128
  215. package/lib/components/molecules/ChatAIProjectSelector/ChatAIProjectSelector.spec.js +0 -66
  216. package/lib/components/molecules/ChatFooter/ChatFooter.spec.js +0 -355
  217. package/lib/components/molecules/ChatFooter/ChatFooterCorAccess.spec.js +0 -10
  218. package/lib/components/molecules/ChatFooter/ChatFooterFaqs.helpers.js +0 -48
  219. package/lib/components/molecules/ChatFooter/ChatFooterFaqs.helpers.spec.js +0 -82
  220. package/lib/components/molecules/ChatFooter/ChatFooterFaqs.spec.js +0 -139
  221. package/lib/components/molecules/ContextMentionInput/ContextMentionInput.spec.js +0 -84
  222. package/lib/components/molecules/MessageFeedback/MessageFeedback.spec.js +0 -116
  223. package/lib/components/molecules/ProjectSummaryChat/ProjectSummaryChat.spec.js +0 -126
  224. package/lib/components/molecules/ProjectSummaryConfig/ProjectSummaryConfig.spec.js +0 -115
  225. package/lib/components/molecules/ProjectSummaryContent/ProjectSummaryContent.spec.js +0 -79
  226. package/lib/components/molecules/ProjectSummaryModal/ProjectSummaryModal.spec.js +0 -37
  227. package/lib/components/molecules/Sidebar/Sidebar.spec.js +0 -453
  228. package/lib/components/organisms/AbmAgentModal/AbmAgentModal.helpers.js +0 -198
  229. package/lib/components/organisms/AbmAgentModal/AbmAgentModal.helpers.spec.js +0 -385
  230. package/lib/components/organisms/AbmAgentModal/AbmAgentModal.spec.js +0 -1125
  231. package/lib/components/organisms/AbmSkillGenerateModal/AbmSkillGenerateModal.spec.js +0 -112
  232. package/lib/components/organisms/AbmSkillModal/AbmSkillModal.spec.js +0 -405
  233. package/lib/components/organisms/ChatAI/ChatAI.spec.js +0 -174
  234. package/lib/components/organisms/ChatAIPage/ChatAIPage.js +0 -525
  235. package/lib/components/organisms/ChatAIPage/ChatAIPage.spec.js +0 -231
  236. package/lib/components/organisms/ChatAIPage/ChatAIPage.styles.js +0 -16
  237. package/lib/components/organisms/ChatAIPage/ChatAIPageHeader.js +0 -253
  238. package/lib/components/organisms/ChatAIPage/ChatAIPageHeader.spec.js +0 -139
  239. package/lib/components/organisms/ChatAIPage/ChatAIPageHeader.styles.js +0 -13
  240. package/lib/components/organisms/ChatAIPage/ChatAIPageHome.js +0 -267
  241. package/lib/components/organisms/ChatAIPage/ChatAIPageHome.spec.js +0 -261
  242. package/lib/components/organisms/ChatAIPage/ChatAIPageHome.styles.js +0 -194
  243. package/lib/components/organisms/ChatAIPage/ChatAIPageHomeActionCardSlot.js +0 -105
  244. package/lib/components/organisms/ChatAIPage/ChatAIPageHomeActionCardSlot.spec.js +0 -73
  245. package/lib/components/organisms/ChatAIPage/ChatAIPageHomeActionCards.skeleton.js +0 -38
  246. package/lib/components/organisms/ChatAIPage/getDaypart.js +0 -9
  247. package/lib/components/organisms/ChatAIPage/getDaypart.spec.js +0 -19
  248. package/lib/components/organisms/ChatAIPage/index.js +0 -3
  249. package/lib/components/organisms/ClientAIButton/ClientAIButton.spec.js +0 -53
  250. package/lib/components/organisms/DeleteAgentModal/DeleteAgentModal.spec.js +0 -59
  251. package/lib/components/organisms/DeleteQuestionModal/DeleteQuestionModal.spec.js +0 -79
  252. package/lib/components/organisms/EditQuestionModal/EditQuestionModal.spec.js +0 -86
  253. package/lib/components/organisms/ModalFileExceeds/ModalFileExceeds.spec.js +0 -49
  254. package/lib/components/organisms/ProjectAIButton/ProjectAIButton.spec.js +0 -67
  255. package/lib/components/organisms/ProjectSummary/ProjectSummary.spec.js +0 -117
  256. package/lib/components/organisms/SnackBar/Snackbar.spec.js +0 -66
  257. package/lib/components/organisms/SourcesInformation/SourceItem.spec.js +0 -19
  258. package/lib/components/organisms/SourcesInformation/SourcesInformationModal.spec.js +0 -52
  259. package/lib/constants/maiaExternalConnectorsAccess.spec.js +0 -29
  260. package/lib/constants/permissions/utils.spec.js +0 -128
  261. package/lib/dev/DevMaiaPage.js +0 -30
  262. package/lib/hooks/frequentlyUsedActionsCache.js +0 -17
  263. package/lib/hooks/frequentlyUsedActionsCache.spec.js +0 -25
  264. package/lib/hooks/useAccessClient/useAccessClient.spec.js +0 -149
  265. package/lib/hooks/useAgentModel/useAgentModel.spec.js +0 -83
  266. package/lib/hooks/useAgentModel/useCreateAgent.spec.js +0 -231
  267. package/lib/hooks/useAgentModel/useDeleteAgent.spec.js +0 -183
  268. package/lib/hooks/useAgentModel/useUpdateAgent.spec.js +0 -313
  269. package/lib/hooks/useAgentSuggestions.spec.js +0 -89
  270. package/lib/hooks/useCaretPosition.spec.js +0 -58
  271. package/lib/hooks/useChatManager/useChatManager.helpers.js +0 -353
  272. package/lib/hooks/useChatManager/useChatManager.helpers.spec.js +0 -506
  273. package/lib/hooks/useChatManager/useChatManager.spec.js +0 -1261
  274. package/lib/hooks/useChatMessages/useChatMessages.helpers.js +0 -109
  275. package/lib/hooks/useChatMessages/useChatMessages.helpers.spec.js +0 -176
  276. package/lib/hooks/useChatMessages/useChatMessages.spec.js +0 -379
  277. package/lib/hooks/useChats/useChats.spec.js +0 -208
  278. package/lib/hooks/useClientSearch.helpers.js +0 -36
  279. package/lib/hooks/useClientSearch.helpers.spec.js +0 -52
  280. package/lib/hooks/useClientSearch.spec.js +0 -86
  281. package/lib/hooks/useContextMentions.helpers.js +0 -152
  282. package/lib/hooks/useContextMentions.helpers.spec.js +0 -143
  283. package/lib/hooks/useContextMentions.spec.js +0 -239
  284. package/lib/hooks/useContextMentions.types.js +0 -2
  285. package/lib/hooks/useContextPinPopover.helpers.js +0 -95
  286. package/lib/hooks/useContextPinPopover.helpers.spec.js +0 -115
  287. package/lib/hooks/useContextPinPopover.spec.js +0 -159
  288. package/lib/hooks/useContinueLegacyContextInNewChat/index.js +0 -2
  289. package/lib/hooks/useContinueLegacyContextInNewChat/useContinueLegacyContextInNewChat.js +0 -93
  290. package/lib/hooks/useDebounce.spec.js +0 -42
  291. package/lib/hooks/useEntitySearch.helpers.js +0 -359
  292. package/lib/hooks/useEntitySearch.helpers.spec.js +0 -321
  293. package/lib/hooks/useEntitySearch.spec.js +0 -443
  294. package/lib/hooks/useEvent.spec.js +0 -45
  295. package/lib/hooks/useFrequentlyAskedQuestions.spec.js +0 -222
  296. package/lib/hooks/useFrequentlyUsedActions.spec.js +0 -135
  297. package/lib/hooks/useIsMaiaPageRoute.js +0 -26
  298. package/lib/hooks/useIsMaiaPageRoute.spec.js +0 -26
  299. package/lib/hooks/useKnowledge/deleteKnowledge.spec.js +0 -122
  300. package/lib/hooks/useKnowledge/downloadKnowledge.spec.js +0 -148
  301. package/lib/hooks/useKnowledge/saveKnowledge.spec.js +0 -104
  302. package/lib/hooks/useKnowledge/useKnowledgeOperations.spec.js +0 -178
  303. package/lib/hooks/useMaiaChatSessionMeta/index.js +0 -2
  304. package/lib/hooks/useMaiaChatSessionMeta/useMaiaChatSessionMeta.js +0 -24
  305. package/lib/hooks/useMentionAllowedTypes.spec.js +0 -89
  306. package/lib/hooks/useMentionPopover.helpers.js +0 -41
  307. package/lib/hooks/useMentionPopover.helpers.spec.js +0 -71
  308. package/lib/hooks/useMentionPopover.spec.js +0 -215
  309. package/lib/hooks/useMinimizedPillBottomOffset.helpers.js +0 -47
  310. package/lib/hooks/useMinimizedPillBottomOffset.helpers.spec.js +0 -132
  311. package/lib/hooks/useMinimizedPillBottomOffset.spec.js +0 -89
  312. package/lib/hooks/useMinimizedPillNoveltyDot/useMinimizedPillNoveltyDot.spec.js +0 -67
  313. package/lib/hooks/useModal/useModal.spec.js +0 -73
  314. package/lib/hooks/useOrchestratorStream/useOrchestratorStream.spec.js +0 -192
  315. package/lib/hooks/useProjectSearch.helpers.js +0 -61
  316. package/lib/hooks/useProjectSearch.helpers.spec.js +0 -70
  317. package/lib/hooks/useProjectSearch.spec.js +0 -91
  318. package/lib/hooks/useProjectSummary.spec.js +0 -193
  319. package/lib/hooks/useProjectSummaryConfig.helpers.js +0 -62
  320. package/lib/hooks/useProjectSummaryConfig.helpers.spec.js +0 -92
  321. package/lib/hooks/useProjectSummaryConfig.spec.js +0 -133
  322. package/lib/hooks/useReasoningTrace/reasoningStore.spec.js +0 -112
  323. package/lib/hooks/useRecentClientsSearch.helpers.js +0 -33
  324. package/lib/hooks/useRecentClientsSearch.helpers.spec.js +0 -33
  325. package/lib/hooks/useRecentClientsSearch.spec.js +0 -85
  326. package/lib/hooks/useRecentContexts.spec.js +0 -139
  327. package/lib/hooks/useResize.spec.js +0 -37
  328. package/lib/hooks/useSkillsCatalog.spec.js +0 -88
  329. package/lib/hooks/useSlashCommands.spec.js +0 -139
  330. package/lib/hooks/useSmoothStreamText/useSmoothStreamText.spec.js +0 -101
  331. package/lib/hooks/useSnackBarManager/useSnackBarManager.spec.js +0 -33
  332. package/lib/hooks/useStreamResponse.spec.js +0 -199
  333. package/lib/hooks/useT.spec.js +0 -20
  334. package/lib/hooks/useToggle.spec.js +0 -33
  335. package/lib/hooks/useToggleFavorite/useToggleFavorite.spec.js +0 -171
  336. package/lib/services/maia/Access/updateAccess.spec.js +0 -137
  337. package/lib/services/maia/Actions/getFrequentlyUsedActions.spec.js +0 -56
  338. package/lib/services/maia/Actions/getSlashCommands.spec.js +0 -91
  339. package/lib/services/maia/Agents/connectors.spec.js +0 -359
  340. package/lib/services/maia/Agents/createAgent.spec.js +0 -55
  341. package/lib/services/maia/Agents/deleteAgent.spec.js +0 -57
  342. package/lib/services/maia/Agents/fetchAgentDetail.spec.js +0 -108
  343. package/lib/services/maia/Agents/getAgentById.spec.js +0 -190
  344. package/lib/services/maia/Agents/getAgentModels.spec.js +0 -190
  345. package/lib/services/maia/Agents/getAgentSuggestions.spec.js +0 -89
  346. package/lib/services/maia/Agents/getAgents.helpers.js +0 -181
  347. package/lib/services/maia/Agents/getAgents.helpers.spec.js +0 -211
  348. package/lib/services/maia/Agents/getAgents.spec.js +0 -697
  349. package/lib/services/maia/Agents/setAgentToolGroups.spec.js +0 -45
  350. package/lib/services/maia/Agents/toggleFavorite.spec.js +0 -59
  351. package/lib/services/maia/Agents/updateAgent.spec.js +0 -48
  352. package/lib/services/maia/Chats/deleteChat.spec.js +0 -31
  353. package/lib/services/maia/Chats/getChatMessages.spec.js +0 -150
  354. package/lib/services/maia/Chats/getChatsByUserId.spec.js +0 -149
  355. package/lib/services/maia/Chats/markSessionAsRead.spec.js +0 -30
  356. package/lib/services/maia/Chats/patchChat.spec.js +0 -41
  357. package/lib/services/maia/Chats/wasHelpfulChat.spec.js +0 -28
  358. package/lib/services/maia/Faqs/getFrequentlyAskedQuestions.spec.js +0 -58
  359. package/lib/services/maia/Knowledge/delete.spec.js +0 -45
  360. package/lib/services/maia/Knowledge/download.spec.js +0 -78
  361. package/lib/services/maia/Knowledge/save.spec.js +0 -58
  362. package/lib/services/maia/Orchestrator/orchestrator.helpers.js +0 -130
  363. package/lib/services/maia/Orchestrator/orchestrator.helpers.spec.js +0 -153
  364. package/lib/services/maia/Orchestrator/orchestrator.spec.js +0 -181
  365. package/lib/services/maia/RecentClients/getRecentClients.spec.js +0 -52
  366. package/lib/services/maia/RecentContexts/getRecentContexts.spec.js +0 -103
  367. package/lib/services/maia/RecentProjects/getRecentProjects.spec.js +0 -82
  368. package/lib/services/maia/RecentTasks/getRecentTasks.spec.js +0 -63
  369. package/lib/services/maia/RecentUsers/getRecentUsers.spec.js +0 -82
  370. package/lib/services/maia/Skills/createSkill.spec.js +0 -68
  371. package/lib/services/maia/Skills/deleteSkill.spec.js +0 -42
  372. package/lib/services/maia/Skills/generateSkill.spec.js +0 -48
  373. package/lib/services/maia/Skills/getSkills.spec.js +0 -152
  374. package/lib/services/maia/Skills/updateSkill.spec.js +0 -62
  375. package/lib/services/maia/client.spec.js +0 -56
  376. package/lib/services/utils/fetchCOR.spec.js +0 -211
  377. package/lib/services/utils/getCookie.spec.js +0 -20
  378. package/lib/services/utils/mapChatMessages.spec.js +0 -254
  379. package/lib/store/chatsSidebarOptimistic.spec.js +0 -112
  380. package/lib/store/maiaLastChatPersistence.spec.js +0 -22
  381. package/lib/store/maiaPanelSessionPersistence.spec.js +0 -62
  382. package/lib/store/sessions/sessionNotificationSound.spec.js +0 -145
  383. package/lib/store/sessions/sessionNotifications.helpers.js +0 -45
  384. package/lib/store/sessions/sessionNotifications.helpers.spec.js +0 -63
  385. package/lib/store/sessions/sessionNotifications.spec.js +0 -106
  386. package/lib/store/sessions/sessionStreamManager.spec.js +0 -503
  387. package/lib/store/sessions/sessions.types.spec.js +0 -16
  388. package/lib/store/sessions/useSessionsStore.spec.js +0 -135
  389. package/lib/store/useChatsStore.spec.js +0 -619
  390. package/lib/store/useFaqsStore.spec.js +0 -57
  391. package/lib/test/mockSseStream.js +0 -121
  392. package/lib/test/streamdownCodeMock.js +0 -6
  393. package/lib/test/streamdownMock.js +0 -12
  394. package/lib/utils/actionCategoryMap.spec.js +0 -18
  395. package/lib/utils/agentDisplayName.spec.js +0 -44
  396. package/lib/utils/autoApproveStorage.spec.js +0 -25
  397. package/lib/utils/chatInputFiles.spec.js +0 -39
  398. package/lib/utils/contextMentionIcons.spec.js +0 -41
  399. package/lib/utils/contextMentionLabel.spec.js +0 -13
  400. package/lib/utils/contextMentionTriggers.spec.js +0 -38
  401. package/lib/utils/contextMentionTypeLabel.spec.js +0 -14
  402. package/lib/utils/corConnectorMentionTypes.spec.js +0 -23
  403. package/lib/utils/entityLinkRender.spec.js +0 -72
  404. package/lib/utils/fileDownloadHelper.spec.js +0 -67
  405. package/lib/utils/formatQuickActionMessage.spec.js +0 -27
  406. package/lib/utils/formatUnreadCount.spec.js +0 -12
  407. package/lib/utils/getUnitFileSize.spec.js +0 -18
  408. package/lib/utils/hitlAnalytics.spec.js +0 -100
  409. package/lib/utils/hoursPlannerQuickActionType.spec.js +0 -64
  410. package/lib/utils/imagePreprocessor.helpers.js +0 -28
  411. package/lib/utils/imagePreprocessor.helpers.spec.js +0 -28
  412. package/lib/utils/imagePreprocessor.spec.js +0 -112
  413. package/lib/utils/maiaPageRoute.js +0 -24
  414. package/lib/utils/maiaPageRoute.spec.js +0 -23
  415. package/lib/utils/mapBackendLang.spec.js +0 -19
  416. package/lib/utils/navigateContextEntity.spec.js +0 -50
  417. package/lib/utils/normalizeAgentConnectors.spec.js +0 -107
  418. package/lib/utils/orchestratorSubagents.spec.js +0 -32
  419. package/lib/utils/reasoningMappers.spec.js +0 -103
  420. package/lib/utils/recentContextsHomeLimit.spec.js +0 -32
  421. package/lib/utils/renderContextMentions.spec.js +0 -158
  422. package/lib/utils/retryCompletion.spec.js +0 -99
  423. package/lib/utils/skillContentSize.spec.js +0 -13
  424. package/lib/utils/slashCommandMarker.spec.js +0 -43
  425. package/lib/utils/sortManagerHoursHomeFuas.spec.js +0 -51
  426. package/lib/utils/sseStreamContent.spec.js +0 -31
  427. package/lib/utils/streamActivityMessages.spec.js +0 -227
  428. package/lib/utils/validateTrimmedFields.spec.js +0 -26
@@ -1,20 +1,5 @@
1
1
  import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
2
2
  import { quickActionTitleToType } from './slashCommandMarker';
3
- /** Seeded action_external_id values from ms-maia alembic h9c0d1e2f3a4. */
4
- export var MY_DAY_FUA_EXTERNAL_IDS = {
5
- es: 'c7a1d0e5-0001-4000-8000-000000000001',
6
- en: 'c7a1d0e5-0001-4000-8000-000000000002',
7
- pt: 'c7a1d0e5-0001-4000-8000-000000000003'
8
- };
9
-
10
- /** Seeded action_external_id values from ms-maia alembic h10d1e2f3a4b5. */
11
- export var SHOULD_REVIEW_FUA_EXTERNAL_IDS = {
12
- es: 'c7a1d0e5-0002-4000-8000-000000000001',
13
- en: 'c7a1d0e5-0002-4000-8000-000000000002',
14
- pt: 'c7a1d0e5-0002-4000-8000-000000000003'
15
- };
16
- var MY_DAY_FUA_ID_SET = new Set(Object.values(MY_DAY_FUA_EXTERNAL_IDS));
17
- var SHOULD_REVIEW_FUA_ID_SET = new Set(Object.values(SHOULD_REVIEW_FUA_EXTERNAL_IDS));
18
3
  var HOURS_PLANNER_ICON_TO_TYPE = {
19
4
  calendar: 'complete_hours_week',
20
5
  time_back: 'complete_hours_previous_week',
@@ -47,30 +32,6 @@ export var HOURS_PLANNER_CANONICAL_TITLES = {
47
32
  br: 'Quero te contar no que estive trabalhando'
48
33
  }
49
34
  };
50
-
51
- /** Título canónico por idioma para el CTA my-day (seed ms-maia; icon/category null). */
52
- export var MY_DAY_CANONICAL_TITLES = {
53
- my_day_today: {
54
- es: '¿Qué tengo para hoy?',
55
- en: "What's on my plate today?",
56
- br: 'O que tenho para hoje?'
57
- },
58
- my_day: {
59
- es: 'Mi día',
60
- en: 'My day',
61
- br: 'Meu dia'
62
- }
63
- };
64
-
65
- /** Título canónico por idioma para el CTA should-review (seed ms-maia; icon/category null). */
66
-
67
- export var SHOULD_REVIEW_CANONICAL_TITLES = {
68
- should_review: {
69
- es: '¿Qué debería revisar?',
70
- en: 'What should I review?',
71
- br: 'O que eu deveria revisar?'
72
- }
73
- };
74
35
  var HOURS_PLANNER_TITLE_TO_TYPE = Object.fromEntries(Object.entries(HOURS_PLANNER_CANONICAL_TITLES).flatMap(function (_ref) {
75
36
  var _ref2 = _slicedToArray(_ref, 2),
76
37
  type = _ref2[0],
@@ -79,22 +40,6 @@ var HOURS_PLANNER_TITLE_TO_TYPE = Object.fromEntries(Object.entries(HOURS_PLANNE
79
40
  return [normalizeQuickActionTitle(title), type];
80
41
  });
81
42
  }));
82
- var MY_DAY_TITLE_TO_TYPE = Object.fromEntries(Object.entries(MY_DAY_CANONICAL_TITLES).flatMap(function (_ref3) {
83
- var _ref4 = _slicedToArray(_ref3, 2),
84
- type = _ref4[0],
85
- titles = _ref4[1];
86
- return Object.values(titles).map(function (title) {
87
- return [normalizeQuickActionTitle(title), type];
88
- });
89
- }));
90
- var SHOULD_REVIEW_TITLE_TO_TYPE = Object.fromEntries(Object.entries(SHOULD_REVIEW_CANONICAL_TITLES).flatMap(function (_ref5) {
91
- var _ref6 = _slicedToArray(_ref5, 2),
92
- type = _ref6[0],
93
- titles = _ref6[1];
94
- return Object.values(titles).map(function (title) {
95
- return [normalizeQuickActionTitle(title), type];
96
- });
97
- }));
98
43
  export var resolveHoursPlannerQuickActionType = function resolveHoursPlannerQuickActionType(action) {
99
44
  var _HOURS_PLANNER_TITLE_;
100
45
  if (action.category !== 'hours') return null;
@@ -104,27 +49,9 @@ export var resolveHoursPlannerQuickActionType = function resolveHoursPlannerQuic
104
49
  }
105
50
  return (_HOURS_PLANNER_TITLE_ = HOURS_PLANNER_TITLE_TO_TYPE[normalizeQuickActionTitle(action.title)]) !== null && _HOURS_PLANNER_TITLE_ !== void 0 ? _HOURS_PLANNER_TITLE_ : null;
106
51
  };
107
- export var resolveMyDayQuickActionType = function resolveMyDayQuickActionType(action) {
108
- var _MY_DAY_TITLE_TO_TYPE;
109
- if (action.id && MY_DAY_FUA_ID_SET.has(action.id)) {
110
- return 'my_day_today';
111
- }
112
- return (_MY_DAY_TITLE_TO_TYPE = MY_DAY_TITLE_TO_TYPE[normalizeQuickActionTitle(action.title)]) !== null && _MY_DAY_TITLE_TO_TYPE !== void 0 ? _MY_DAY_TITLE_TO_TYPE : null;
113
- };
114
- export var resolveShouldReviewQuickActionType = function resolveShouldReviewQuickActionType(action) {
115
- var _SHOULD_REVIEW_TITLE_;
116
- if (action.id && SHOULD_REVIEW_FUA_ID_SET.has(action.id)) {
117
- return 'should_review';
118
- }
119
- return (_SHOULD_REVIEW_TITLE_ = SHOULD_REVIEW_TITLE_TO_TYPE[normalizeQuickActionTitle(action.title)]) !== null && _SHOULD_REVIEW_TITLE_ !== void 0 ? _SHOULD_REVIEW_TITLE_ : null;
120
- };
121
52
  export var resolveQuickActionType = function resolveQuickActionType(action) {
122
53
  var hoursType = resolveHoursPlannerQuickActionType(action);
123
54
  if (hoursType) return hoursType;
124
- var myDayType = resolveMyDayQuickActionType(action);
125
- if (myDayType) return myDayType;
126
- var shouldReviewType = resolveShouldReviewQuickActionType(action);
127
- if (shouldReviewType) return shouldReviewType;
128
55
  return quickActionTitleToType(action.id, action.title);
129
56
  };
130
57
  export var resolveQuickActionOrigin = function resolveQuickActionOrigin(section) {
@@ -134,4 +61,4 @@ export var resolveQuickActionOrigin = function resolveQuickActionOrigin(section)
134
61
  if (section === 'header' && variant === 'planner') return 'header';
135
62
  return 'home';
136
63
  };
137
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJxdWlja0FjdGlvblRpdGxlVG9UeXBlIiwiTVlfREFZX0ZVQV9FWFRFUk5BTF9JRFMiLCJlcyIsImVuIiwicHQiLCJTSE9VTERfUkVWSUVXX0ZVQV9FWFRFUk5BTF9JRFMiLCJNWV9EQVlfRlVBX0lEX1NFVCIsIlNldCIsIk9iamVjdCIsInZhbHVlcyIsIlNIT1VMRF9SRVZJRVdfRlVBX0lEX1NFVCIsIkhPVVJTX1BMQU5ORVJfSUNPTl9UT19UWVBFIiwiY2FsZW5kYXIiLCJ0aW1lX2JhY2siLCJjaGFyZ2VfaG91cnMiLCJjaGF0Iiwibm9ybWFsaXplUXVpY2tBY3Rpb25UaXRsZSIsInRpdGxlIiwidG9Mb3dlckNhc2UiLCJub3JtYWxpemUiLCJyZXBsYWNlIiwidHJpbSIsIkhPVVJTX1BMQU5ORVJfQ0FOT05JQ0FMX1RJVExFUyIsImNvbXBsZXRlX2hvdXJzX3dlZWsiLCJiciIsImNvbXBsZXRlX2hvdXJzX3ByZXZpb3VzX3dlZWsiLCJjb21wbGV0ZV9ob3Vyc190b2RheSIsImNvbXBsZXRlX2hvdXJzX2dlbmVyaWMiLCJNWV9EQVlfQ0FOT05JQ0FMX1RJVExFUyIsIm15X2RheV90b2RheSIsIm15X2RheSIsIlNIT1VMRF9SRVZJRVdfQ0FOT05JQ0FMX1RJVExFUyIsInNob3VsZF9yZXZpZXciLCJIT1VSU19QTEFOTkVSX1RJVExFX1RPX1RZUEUiLCJmcm9tRW50cmllcyIsImVudHJpZXMiLCJmbGF0TWFwIiwiX3JlZiIsIl9yZWYyIiwiX3NsaWNlZFRvQXJyYXkiLCJ0eXBlIiwidGl0bGVzIiwibWFwIiwiTVlfREFZX1RJVExFX1RPX1RZUEUiLCJfcmVmMyIsIl9yZWY0IiwiU0hPVUxEX1JFVklFV19USVRMRV9UT19UWVBFIiwiX3JlZjUiLCJfcmVmNiIsInJlc29sdmVIb3Vyc1BsYW5uZXJRdWlja0FjdGlvblR5cGUiLCJhY3Rpb24iLCJfSE9VUlNfUExBTk5FUl9USVRMRV8iLCJjYXRlZ29yeSIsImljb24iLCJfSE9VUlNfUExBTk5FUl9JQ09OX1QiLCJyZXNvbHZlTXlEYXlRdWlja0FjdGlvblR5cGUiLCJfTVlfREFZX1RJVExFX1RPX1RZUEUiLCJpZCIsImhhcyIsInJlc29sdmVTaG91bGRSZXZpZXdRdWlja0FjdGlvblR5cGUiLCJfU0hPVUxEX1JFVklFV19USVRMRV8iLCJyZXNvbHZlUXVpY2tBY3Rpb25UeXBlIiwiaG91cnNUeXBlIiwibXlEYXlUeXBlIiwic2hvdWxkUmV2aWV3VHlwZSIsInJlc29sdmVRdWlja0FjdGlvbk9yaWdpbiIsInNlY3Rpb24iLCJ2YXJpYW50IiwiYXJndW1lbnRzIiwibGVuZ3RoIiwidW5kZWZpbmVkIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3V0aWxzL2hvdXJzUGxhbm5lclF1aWNrQWN0aW9uVHlwZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IEFjdGlvbiwgQWN0aW9uSWNvbktleSB9IGZyb20gJy4uL3R5cGVzL0FjdGlvbidcbmltcG9ydCB7IHF1aWNrQWN0aW9uVGl0bGVUb1R5cGUgfSBmcm9tICcuL3NsYXNoQ29tbWFuZE1hcmtlcidcblxuZXhwb3J0IHR5cGUgSG91cnNQbGFubmVyUXVpY2tBY3Rpb25UeXBlID1cbiAgJ2NvbXBsZXRlX2hvdXJzX3dlZWsnIHwgJ2NvbXBsZXRlX2hvdXJzX3ByZXZpb3VzX3dlZWsnIHwgJ2NvbXBsZXRlX2hvdXJzX3RvZGF5JyB8ICdjb21wbGV0ZV9ob3Vyc19nZW5lcmljJ1xuXG5leHBvcnQgdHlwZSBNeURheVF1aWNrQWN0aW9uVHlwZSA9ICdteV9kYXknIHwgJ215X2RheV90b2RheSdcblxuZXhwb3J0IHR5cGUgU2hvdWxkUmV2aWV3UXVpY2tBY3Rpb25UeXBlID0gJ3Nob3VsZF9yZXZpZXcnXG5cbi8qKiBTZWVkZWQgYWN0aW9uX2V4dGVybmFsX2lkIHZhbHVlcyBmcm9tIG1zLW1haWEgYWxlbWJpYyBoOWMwZDFlMmYzYTQuICovXG5leHBvcnQgY29uc3QgTVlfREFZX0ZVQV9FWFRFUk5BTF9JRFMgPSB7XG4gIGVzOiAnYzdhMWQwZTUtMDAwMS00MDAwLTgwMDAtMDAwMDAwMDAwMDAxJyxcbiAgZW46ICdjN2ExZDBlNS0wMDAxLTQwMDAtODAwMC0wMDAwMDAwMDAwMDInLFxuICBwdDogJ2M3YTFkMGU1LTAwMDEtNDAwMC04MDAwLTAwMDAwMDAwMDAwMycsXG59IGFzIGNvbnN0XG5cbi8qKiBTZWVkZWQgYWN0aW9uX2V4dGVybmFsX2lkIHZhbHVlcyBmcm9tIG1zLW1haWEgYWxlbWJpYyBoMTBkMWUyZjNhNGI1LiAqL1xuZXhwb3J0IGNvbnN0IFNIT1VMRF9SRVZJRVdfRlVBX0VYVEVSTkFMX0lEUyA9IHtcbiAgZXM6ICdjN2ExZDBlNS0wMDAyLTQwMDAtODAwMC0wMDAwMDAwMDAwMDEnLFxuICBlbjogJ2M3YTFkMGU1LTAwMDItNDAwMC04MDAwLTAwMDAwMDAwMDAwMicsXG4gIHB0OiAnYzdhMWQwZTUtMDAwMi00MDAwLTgwMDAtMDAwMDAwMDAwMDAzJyxcbn0gYXMgY29uc3RcblxuY29uc3QgTVlfREFZX0ZVQV9JRF9TRVQgPSBuZXcgU2V0PHN0cmluZz4oT2JqZWN0LnZhbHVlcyhNWV9EQVlfRlVBX0VYVEVSTkFMX0lEUykpXG5jb25zdCBTSE9VTERfUkVWSUVXX0ZVQV9JRF9TRVQgPSBuZXcgU2V0PHN0cmluZz4oT2JqZWN0LnZhbHVlcyhTSE9VTERfUkVWSUVXX0ZVQV9FWFRFUk5BTF9JRFMpKVxuXG5jb25zdCBIT1VSU19QTEFOTkVSX0lDT05fVE9fVFlQRTogUGFydGlhbDxSZWNvcmQ8QWN0aW9uSWNvbktleSwgSG91cnNQbGFubmVyUXVpY2tBY3Rpb25UeXBlPj4gPSB7XG4gIGNhbGVuZGFyOiAnY29tcGxldGVfaG91cnNfd2VlaycsXG4gIHRpbWVfYmFjazogJ2NvbXBsZXRlX2hvdXJzX3ByZXZpb3VzX3dlZWsnLFxuICBjaGFyZ2VfaG91cnM6ICdjb21wbGV0ZV9ob3Vyc190b2RheScsXG4gIGNoYXQ6ICdjb21wbGV0ZV9ob3Vyc19nZW5lcmljJyxcbn1cblxuY29uc3Qgbm9ybWFsaXplUXVpY2tBY3Rpb25UaXRsZSA9ICh0aXRsZTogc3RyaW5nKTogc3RyaW5nID0+XG4gIHRpdGxlXG4gICAgLnRvTG93ZXJDYXNlKClcbiAgICAubm9ybWFsaXplKCdORkQnKVxuICAgIC5yZXBsYWNlKC9bXFx1MDMwMC1cXHUwMzZmXS9nLCAnJylcbiAgICAucmVwbGFjZSgvW15hLXowLTlcXHNdKy9nLCAnICcpXG4gICAgLnJlcGxhY2UoL1xccysvZywgJyAnKVxuICAgIC50cmltKClcblxudHlwZSBIb3Vyc1BsYW5uZXJDYW5vbmljYWxUaXRsZXMgPSBSZWNvcmQ8SG91cnNQbGFubmVyUXVpY2tBY3Rpb25UeXBlLCB7IGVzOiBzdHJpbmc7IGVuOiBzdHJpbmc7IGJyOiBzdHJpbmcgfT5cblxuLyoqIFTDrXR1bG8gY2Fuw7NuaWNvIHBvciBpZGlvbWEgcGFyYSBjYWRhIEZVQSBkZSBob3Jhcy9wbGFubmVyIChkZWJlIGNvaW5jaWRpciBjb24gbGEgREIpLiAqL1xuZXhwb3J0IGNvbnN0IEhPVVJTX1BMQU5ORVJfQ0FOT05JQ0FMX1RJVExFUzogSG91cnNQbGFubmVyQ2Fub25pY2FsVGl0bGVzID0ge1xuICBjb21wbGV0ZV9ob3Vyc193ZWVrOiB7XG4gICAgZXM6ICdDb21wbGV0YSBtaXMgaG9yYXMgZGUgZXN0YSBzZW1hbmEnLFxuICAgIGVuOiAnQ29tcGxldGUgbXkgaG91cnMgZm9yIHRoaXMgd2VlaycsXG4gICAgYnI6ICdDb21wbGV0ZSBtaW5oYXMgaG9yYXMgZGVzdGEgc2VtYW5hJyxcbiAgfSxcbiAgY29tcGxldGVfaG91cnNfcHJldmlvdXNfd2Vlazoge1xuICAgIGVzOiAnQ2FyZ2EgbWlzIGhvcmFzIGRlIGxhIHNlbWFuYSBwYXNhZGEnLFxuICAgIGVuOiAnTG9hZCBteSBob3VycyBmcm9tIGxhc3Qgd2VlaycsXG4gICAgYnI6ICdDYXJyZWd1ZSBtaW5oYXMgaG9yYXMgZGEgc2VtYW5hIHBhc3NhZGEnLFxuICB9LFxuICBjb21wbGV0ZV9ob3Vyc190b2RheToge1xuICAgIGVzOiAnQ2FyZ2EgbWlzIGhvcmFzIGRlIGhveScsXG4gICAgZW46ICdMb2FkIG15IGhvdXJzIGZvciB0b2RheScsXG4gICAgYnI6ICdDYXJyZWd1ZSBtaW5oYXMgaG9yYXMgZGUgaG9qZScsXG4gIH0sXG4gIGNvbXBsZXRlX2hvdXJzX2dlbmVyaWM6IHtcbiAgICBlczogJ1F1aWVybyBjb250YXJ0ZSBlbiBxdcOpIGVzdHV2ZSB0cmFiYWphbmRvJyxcbiAgICBlbjogJ0kgd2FudCB0byB0ZWxsIHlvdSB3aGF0IEkgd2FzIHdvcmtpbmcgb24nLFxuICAgIGJyOiAnUXVlcm8gdGUgY29udGFyIG5vIHF1ZSBlc3RpdmUgdHJhYmFsaGFuZG8nLFxuICB9LFxufVxuXG4vKiogVMOtdHVsbyBjYW7Ds25pY28gcG9yIGlkaW9tYSBwYXJhIGVsIENUQSBteS1kYXkgKHNlZWQgbXMtbWFpYTsgaWNvbi9jYXRlZ29yeSBudWxsKS4gKi9cbmV4cG9ydCBjb25zdCBNWV9EQVlfQ0FOT05JQ0FMX1RJVExFUzogUmVjb3JkPE15RGF5UXVpY2tBY3Rpb25UeXBlLCB7IGVzOiBzdHJpbmc7IGVuOiBzdHJpbmc7IGJyOiBzdHJpbmcgfT4gPSB7XG4gIG15X2RheV90b2RheToge1xuICAgIGVzOiAnwr9RdcOpIHRlbmdvIHBhcmEgaG95PycsXG4gICAgZW46IFwiV2hhdCdzIG9uIG15IHBsYXRlIHRvZGF5P1wiLFxuICAgIGJyOiAnTyBxdWUgdGVuaG8gcGFyYSBob2plPycsXG4gIH0sXG4gIG15X2RheToge1xuICAgIGVzOiAnTWkgZMOtYScsXG4gICAgZW46ICdNeSBkYXknLFxuICAgIGJyOiAnTWV1IGRpYScsXG4gIH0sXG59XG5cbi8qKiBUw610dWxvIGNhbsOzbmljbyBwb3IgaWRpb21hIHBhcmEgZWwgQ1RBIHNob3VsZC1yZXZpZXcgKHNlZWQgbXMtbWFpYTsgaWNvbi9jYXRlZ29yeSBudWxsKS4gKi9cbnR5cGUgU2hvdWxkUmV2aWV3Q2Fub25pY2FsVGl0bGVzID0gUmVjb3JkPFNob3VsZFJldmlld1F1aWNrQWN0aW9uVHlwZSwgeyBlczogc3RyaW5nOyBlbjogc3RyaW5nOyBicjogc3RyaW5nIH0+XG5cbmV4cG9ydCBjb25zdCBTSE9VTERfUkVWSUVXX0NBTk9OSUNBTF9USVRMRVM6IFNob3VsZFJldmlld0Nhbm9uaWNhbFRpdGxlcyA9IHtcbiAgc2hvdWxkX3Jldmlldzoge1xuICAgIGVzOiAnwr9RdcOpIGRlYmVyw61hIHJldmlzYXI/JyxcbiAgICBlbjogJ1doYXQgc2hvdWxkIEkgcmV2aWV3PycsXG4gICAgYnI6ICdPIHF1ZSBldSBkZXZlcmlhIHJldmlzYXI/JyxcbiAgfSxcbn1cblxuY29uc3QgSE9VUlNfUExBTk5FUl9USVRMRV9UT19UWVBFOiBSZWNvcmQ8c3RyaW5nLCBIb3Vyc1BsYW5uZXJRdWlja0FjdGlvblR5cGU+ID0gT2JqZWN0LmZyb21FbnRyaWVzKFxuICBPYmplY3QuZW50cmllcyhIT1VSU19QTEFOTkVSX0NBTk9OSUNBTF9USVRMRVMpLmZsYXRNYXAoKFt0eXBlLCB0aXRsZXNdKSA9PlxuICAgIE9iamVjdC52YWx1ZXModGl0bGVzKS5tYXAodGl0bGUgPT4gW25vcm1hbGl6ZVF1aWNrQWN0aW9uVGl0bGUodGl0bGUpLCB0eXBlIGFzIEhvdXJzUGxhbm5lclF1aWNrQWN0aW9uVHlwZV0pXG4gIClcbilcblxuY29uc3QgTVlfREFZX1RJVExFX1RPX1RZUEU6IFJlY29yZDxzdHJpbmcsIE15RGF5UXVpY2tBY3Rpb25UeXBlPiA9IE9iamVjdC5mcm9tRW50cmllcyhcbiAgT2JqZWN0LmVudHJpZXMoTVlfREFZX0NBTk9OSUNBTF9USVRMRVMpLmZsYXRNYXAoKFt0eXBlLCB0aXRsZXNdKSA9PlxuICAgIE9iamVjdC52YWx1ZXModGl0bGVzKS5tYXAodGl0bGUgPT4gW25vcm1hbGl6ZVF1aWNrQWN0aW9uVGl0bGUodGl0bGUpLCB0eXBlIGFzIE15RGF5UXVpY2tBY3Rpb25UeXBlXSlcbiAgKVxuKVxuXG5jb25zdCBTSE9VTERfUkVWSUVXX1RJVExFX1RPX1RZUEU6IFJlY29yZDxzdHJpbmcsIFNob3VsZFJldmlld1F1aWNrQWN0aW9uVHlwZT4gPSBPYmplY3QuZnJvbUVudHJpZXMoXG4gIE9iamVjdC5lbnRyaWVzKFNIT1VMRF9SRVZJRVdfQ0FOT05JQ0FMX1RJVExFUykuZmxhdE1hcCgoW3R5cGUsIHRpdGxlc10pID0+XG4gICAgT2JqZWN0LnZhbHVlcyh0aXRsZXMpLm1hcCh0aXRsZSA9PiBbbm9ybWFsaXplUXVpY2tBY3Rpb25UaXRsZSh0aXRsZSksIHR5cGUgYXMgU2hvdWxkUmV2aWV3UXVpY2tBY3Rpb25UeXBlXSlcbiAgKVxuKVxuXG5leHBvcnQgY29uc3QgcmVzb2x2ZUhvdXJzUGxhbm5lclF1aWNrQWN0aW9uVHlwZSA9IChcbiAgYWN0aW9uOiBQaWNrPEFjdGlvbiwgJ3RpdGxlJyB8ICdpY29uJyB8ICdjYXRlZ29yeSc+XG4pOiBIb3Vyc1BsYW5uZXJRdWlja0FjdGlvblR5cGUgfCBudWxsID0+IHtcbiAgaWYgKGFjdGlvbi5jYXRlZ29yeSAhPT0gJ2hvdXJzJykgcmV0dXJuIG51bGxcblxuICBpZiAoYWN0aW9uLmljb24gJiYgSE9VUlNfUExBTk5FUl9JQ09OX1RPX1RZUEVbYWN0aW9uLmljb25dKSB7XG4gICAgcmV0dXJuIEhPVVJTX1BMQU5ORVJfSUNPTl9UT19UWVBFW2FjdGlvbi5pY29uXSA/PyBudWxsXG4gIH1cblxuICByZXR1cm4gSE9VUlNfUExBTk5FUl9USVRMRV9UT19UWVBFW25vcm1hbGl6ZVF1aWNrQWN0aW9uVGl0bGUoYWN0aW9uLnRpdGxlKV0gPz8gbnVsbFxufVxuXG5leHBvcnQgY29uc3QgcmVzb2x2ZU15RGF5UXVpY2tBY3Rpb25UeXBlID0gKFxuICBhY3Rpb246IFBpY2s8QWN0aW9uLCAnaWQnIHwgJ3RpdGxlJyB8ICdpY29uJyB8ICdjYXRlZ29yeSc+XG4pOiBNeURheVF1aWNrQWN0aW9uVHlwZSB8IG51bGwgPT4ge1xuICBpZiAoYWN0aW9uLmlkICYmIE1ZX0RBWV9GVUFfSURfU0VULmhhcyhhY3Rpb24uaWQpKSB7XG4gICAgcmV0dXJuICdteV9kYXlfdG9kYXknXG4gIH1cblxuICByZXR1cm4gTVlfREFZX1RJVExFX1RPX1RZUEVbbm9ybWFsaXplUXVpY2tBY3Rpb25UaXRsZShhY3Rpb24udGl0bGUpXSA/PyBudWxsXG59XG5cbmV4cG9ydCBjb25zdCByZXNvbHZlU2hvdWxkUmV2aWV3UXVpY2tBY3Rpb25UeXBlID0gKFxuICBhY3Rpb246IFBpY2s8QWN0aW9uLCAnaWQnIHwgJ3RpdGxlJyB8ICdpY29uJyB8ICdjYXRlZ29yeSc+XG4pOiBTaG91bGRSZXZpZXdRdWlja0FjdGlvblR5cGUgfCBudWxsID0+IHtcbiAgaWYgKGFjdGlvbi5pZCAmJiBTSE9VTERfUkVWSUVXX0ZVQV9JRF9TRVQuaGFzKGFjdGlvbi5pZCkpIHtcbiAgICByZXR1cm4gJ3Nob3VsZF9yZXZpZXcnXG4gIH1cblxuICByZXR1cm4gU0hPVUxEX1JFVklFV19USVRMRV9UT19UWVBFW25vcm1hbGl6ZVF1aWNrQWN0aW9uVGl0bGUoYWN0aW9uLnRpdGxlKV0gPz8gbnVsbFxufVxuXG5leHBvcnQgY29uc3QgcmVzb2x2ZVF1aWNrQWN0aW9uVHlwZSA9IChhY3Rpb246IFBpY2s8QWN0aW9uLCAnaWQnIHwgJ3RpdGxlJyB8ICdpY29uJyB8ICdjYXRlZ29yeSc+KTogc3RyaW5nID0+IHtcbiAgY29uc3QgaG91cnNUeXBlID0gcmVzb2x2ZUhvdXJzUGxhbm5lclF1aWNrQWN0aW9uVHlwZShhY3Rpb24pXG4gIGlmIChob3Vyc1R5cGUpIHJldHVybiBob3Vyc1R5cGVcbiAgY29uc3QgbXlEYXlUeXBlID0gcmVzb2x2ZU15RGF5UXVpY2tBY3Rpb25UeXBlKGFjdGlvbilcbiAgaWYgKG15RGF5VHlwZSkgcmV0dXJuIG15RGF5VHlwZVxuICBjb25zdCBzaG91bGRSZXZpZXdUeXBlID0gcmVzb2x2ZVNob3VsZFJldmlld1F1aWNrQWN0aW9uVHlwZShhY3Rpb24pXG4gIGlmIChzaG91bGRSZXZpZXdUeXBlKSByZXR1cm4gc2hvdWxkUmV2aWV3VHlwZVxuICByZXR1cm4gcXVpY2tBY3Rpb25UaXRsZVRvVHlwZShhY3Rpb24uaWQsIGFjdGlvbi50aXRsZSlcbn1cblxuZXhwb3J0IHR5cGUgUXVpY2tBY3Rpb25PcmlnaW4gPSAndGFzaycgfCAncGxhbm5lcicgfCAnaGVhZGVyJyB8ICdob21lJ1xuXG5leHBvcnQgY29uc3QgcmVzb2x2ZVF1aWNrQWN0aW9uT3JpZ2luID0gKFxuICBzZWN0aW9uOiBzdHJpbmcgfCB1bmRlZmluZWQsXG4gIHZhcmlhbnQ6ICdkZWZhdWx0JyB8ICdwbGFubmVyJyA9ICdkZWZhdWx0J1xuKTogUXVpY2tBY3Rpb25PcmlnaW4gPT4ge1xuICBpZiAoc2VjdGlvbiA9PT0gJ3Rhc2snKSByZXR1cm4gJ3Rhc2snXG4gIGlmIChzZWN0aW9uID09PSAncGxhbm5lcicpIHJldHVybiAncGxhbm5lcidcbiAgaWYgKHNlY3Rpb24gPT09ICdoZWFkZXInICYmIHZhcmlhbnQgPT09ICdwbGFubmVyJykgcmV0dXJuICdoZWFkZXInXG4gIHJldHVybiAnaG9tZSdcbn1cbiJdLCJtYXBwaW5ncyI6IjtBQUNBLFNBQVNBLHNCQUFzQixRQUFRLHNCQUFzQjtBQVM3RDtBQUNBLE9BQU8sSUFBTUMsdUJBQXVCLEdBQUc7RUFDckNDLEVBQUUsRUFBRSxzQ0FBc0M7RUFDMUNDLEVBQUUsRUFBRSxzQ0FBc0M7RUFDMUNDLEVBQUUsRUFBRTtBQUNOLENBQVU7O0FBRVY7QUFDQSxPQUFPLElBQU1DLDhCQUE4QixHQUFHO0VBQzVDSCxFQUFFLEVBQUUsc0NBQXNDO0VBQzFDQyxFQUFFLEVBQUUsc0NBQXNDO0VBQzFDQyxFQUFFLEVBQUU7QUFDTixDQUFVO0FBRVYsSUFBTUUsaUJBQWlCLEdBQUcsSUFBSUMsR0FBRyxDQUFTQyxNQUFNLENBQUNDLE1BQU0sQ0FBQ1IsdUJBQXVCLENBQUMsQ0FBQztBQUNqRixJQUFNUyx3QkFBd0IsR0FBRyxJQUFJSCxHQUFHLENBQVNDLE1BQU0sQ0FBQ0MsTUFBTSxDQUFDSiw4QkFBOEIsQ0FBQyxDQUFDO0FBRS9GLElBQU1NLDBCQUF1RixHQUFHO0VBQzlGQyxRQUFRLEVBQUUscUJBQXFCO0VBQy9CQyxTQUFTLEVBQUUsOEJBQThCO0VBQ3pDQyxZQUFZ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
64
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJxdWlja0FjdGlvblRpdGxlVG9UeXBlIiwiSE9VUlNfUExBTk5FUl9JQ09OX1RPX1RZUEUiLCJjYWxlbmRhciIsInRpbWVfYmFjayIsImNoYXJnZV9ob3VycyIsImNoYXQiLCJub3JtYWxpemVRdWlja0FjdGlvblRpdGxlIiwidGl0bGUiLCJ0b0xvd2VyQ2FzZSIsIm5vcm1hbGl6ZSIsInJlcGxhY2UiLCJ0cmltIiwiSE9VUlNfUExBTk5FUl9DQU5PTklDQUxfVElUTEVTIiwiY29tcGxldGVfaG91cnNfd2VlayIsImVzIiwiZW4iLCJiciIsImNvbXBsZXRlX2hvdXJzX3ByZXZpb3VzX3dlZWsiLCJjb21wbGV0ZV9ob3Vyc190b2RheSIsImNvbXBsZXRlX2hvdXJzX2dlbmVyaWMiLCJIT1VSU19QTEFOTkVSX1RJVExFX1RPX1RZUEUiLCJPYmplY3QiLCJmcm9tRW50cmllcyIsImVudHJpZXMiLCJmbGF0TWFwIiwiX3JlZiIsIl9yZWYyIiwiX3NsaWNlZFRvQXJyYXkiLCJ0eXBlIiwidGl0bGVzIiwidmFsdWVzIiwibWFwIiwicmVzb2x2ZUhvdXJzUGxhbm5lclF1aWNrQWN0aW9uVHlwZSIsImFjdGlvbiIsIl9IT1VSU19QTEFOTkVSX1RJVExFXyIsImNhdGVnb3J5IiwiaWNvbiIsIl9IT1VSU19QTEFOTkVSX0lDT05fVCIsInJlc29sdmVRdWlja0FjdGlvblR5cGUiLCJob3Vyc1R5cGUiLCJpZCIsInJlc29sdmVRdWlja0FjdGlvbk9yaWdpbiIsInNlY3Rpb24iLCJ2YXJpYW50IiwiYXJndW1lbnRzIiwibGVuZ3RoIiwidW5kZWZpbmVkIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3V0aWxzL2hvdXJzUGxhbm5lclF1aWNrQWN0aW9uVHlwZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IEFjdGlvbiwgQWN0aW9uSWNvbktleSB9IGZyb20gJy4uL3R5cGVzL0FjdGlvbidcbmltcG9ydCB7IHF1aWNrQWN0aW9uVGl0bGVUb1R5cGUgfSBmcm9tICcuL3NsYXNoQ29tbWFuZE1hcmtlcidcblxuZXhwb3J0IHR5cGUgSG91cnNQbGFubmVyUXVpY2tBY3Rpb25UeXBlID1cbiAgJ2NvbXBsZXRlX2hvdXJzX3dlZWsnIHwgJ2NvbXBsZXRlX2hvdXJzX3ByZXZpb3VzX3dlZWsnIHwgJ2NvbXBsZXRlX2hvdXJzX3RvZGF5JyB8ICdjb21wbGV0ZV9ob3Vyc19nZW5lcmljJ1xuXG5jb25zdCBIT1VSU19QTEFOTkVSX0lDT05fVE9fVFlQRTogUGFydGlhbDxSZWNvcmQ8QWN0aW9uSWNvbktleSwgSG91cnNQbGFubmVyUXVpY2tBY3Rpb25UeXBlPj4gPSB7XG4gIGNhbGVuZGFyOiAnY29tcGxldGVfaG91cnNfd2VlaycsXG4gIHRpbWVfYmFjazogJ2NvbXBsZXRlX2hvdXJzX3ByZXZpb3VzX3dlZWsnLFxuICBjaGFyZ2VfaG91cnM6ICdjb21wbGV0ZV9ob3Vyc190b2RheScsXG4gIGNoYXQ6ICdjb21wbGV0ZV9ob3Vyc19nZW5lcmljJyxcbn1cblxuY29uc3Qgbm9ybWFsaXplUXVpY2tBY3Rpb25UaXRsZSA9ICh0aXRsZTogc3RyaW5nKTogc3RyaW5nID0+XG4gIHRpdGxlXG4gICAgLnRvTG93ZXJDYXNlKClcbiAgICAubm9ybWFsaXplKCdORkQnKVxuICAgIC5yZXBsYWNlKC9bXFx1MDMwMC1cXHUwMzZmXS9nLCAnJylcbiAgICAucmVwbGFjZSgvW15hLXowLTlcXHNdKy9nLCAnICcpXG4gICAgLnJlcGxhY2UoL1xccysvZywgJyAnKVxuICAgIC50cmltKClcblxudHlwZSBIb3Vyc1BsYW5uZXJDYW5vbmljYWxUaXRsZXMgPSBSZWNvcmQ8SG91cnNQbGFubmVyUXVpY2tBY3Rpb25UeXBlLCB7IGVzOiBzdHJpbmc7IGVuOiBzdHJpbmc7IGJyOiBzdHJpbmcgfT5cblxuLyoqIFTDrXR1bG8gY2Fuw7NuaWNvIHBvciBpZGlvbWEgcGFyYSBjYWRhIEZVQSBkZSBob3Jhcy9wbGFubmVyIChkZWJlIGNvaW5jaWRpciBjb24gbGEgREIpLiAqL1xuZXhwb3J0IGNvbnN0IEhPVVJTX1BMQU5ORVJfQ0FOT05JQ0FMX1RJVExFUzogSG91cnNQbGFubmVyQ2Fub25pY2FsVGl0bGVzID0ge1xuICBjb21wbGV0ZV9ob3Vyc193ZWVrOiB7XG4gICAgZXM6ICdDb21wbGV0YSBtaXMgaG9yYXMgZGUgZXN0YSBzZW1hbmEnLFxuICAgIGVuOiAnQ29tcGxldGUgbXkgaG91cnMgZm9yIHRoaXMgd2VlaycsXG4gICAgYnI6ICdDb21wbGV0ZSBtaW5oYXMgaG9yYXMgZGVzdGEgc2VtYW5hJyxcbiAgfSxcbiAgY29tcGxldGVfaG91cnNfcHJldmlvdXNfd2Vlazoge1xuICAgIGVzOiAnQ2FyZ2EgbWlzIGhvcmFzIGRlIGxhIHNlbWFuYSBwYXNhZGEnLFxuICAgIGVuOiAnTG9hZCBteSBob3VycyBmcm9tIGxhc3Qgd2VlaycsXG4gICAgYnI6ICdDYXJyZWd1ZSBtaW5oYXMgaG9yYXMgZGEgc2VtYW5hIHBhc3NhZGEnLFxuICB9LFxuICBjb21wbGV0ZV9ob3Vyc190b2RheToge1xuICAgIGVzOiAnQ2FyZ2EgbWlzIGhvcmFzIGRlIGhveScsXG4gICAgZW46ICdMb2FkIG15IGhvdXJzIGZvciB0b2RheScsXG4gICAgYnI6ICdDYXJyZWd1ZSBtaW5oYXMgaG9yYXMgZGUgaG9qZScsXG4gIH0sXG4gIGNvbXBsZXRlX2hvdXJzX2dlbmVyaWM6IHtcbiAgICBlczogJ1F1aWVybyBjb250YXJ0ZSBlbiBxdcOpIGVzdHV2ZSB0cmFiYWphbmRvJyxcbiAgICBlbjogJ0kgd2FudCB0byB0ZWxsIHlvdSB3aGF0IEkgd2FzIHdvcmtpbmcgb24nLFxuICAgIGJyOiAnUXVlcm8gdGUgY29udGFyIG5vIHF1ZSBlc3RpdmUgdHJhYmFsaGFuZG8nLFxuICB9LFxufVxuXG5jb25zdCBIT1VSU19QTEFOTkVSX1RJVExFX1RPX1RZUEU6IFJlY29yZDxzdHJpbmcsIEhvdXJzUGxhbm5lclF1aWNrQWN0aW9uVHlwZT4gPSBPYmplY3QuZnJvbUVudHJpZXMoXG4gIE9iamVjdC5lbnRyaWVzKEhPVVJTX1BMQU5ORVJfQ0FOT05JQ0FMX1RJVExFUykuZmxhdE1hcCgoW3R5cGUsIHRpdGxlc10pID0+XG4gICAgT2JqZWN0LnZhbHVlcyh0aXRsZXMpLm1hcCh0aXRsZSA9PiBbbm9ybWFsaXplUXVpY2tBY3Rpb25UaXRsZSh0aXRsZSksIHR5cGUgYXMgSG91cnNQbGFubmVyUXVpY2tBY3Rpb25UeXBlXSlcbiAgKVxuKVxuXG5leHBvcnQgY29uc3QgcmVzb2x2ZUhvdXJzUGxhbm5lclF1aWNrQWN0aW9uVHlwZSA9IChcbiAgYWN0aW9uOiBQaWNrPEFjdGlvbiwgJ3RpdGxlJyB8ICdpY29uJyB8ICdjYXRlZ29yeSc+XG4pOiBIb3Vyc1BsYW5uZXJRdWlja0FjdGlvblR5cGUgfCBudWxsID0+IHtcbiAgaWYgKGFjdGlvbi5jYXRlZ29yeSAhPT0gJ2hvdXJzJykgcmV0dXJuIG51bGxcblxuICBpZiAoYWN0aW9uLmljb24gJiYgSE9VUlNfUExBTk5FUl9JQ09OX1RPX1RZUEVbYWN0aW9uLmljb25dKSB7XG4gICAgcmV0dXJuIEhPVVJTX1BMQU5ORVJfSUNPTl9UT19UWVBFW2FjdGlvbi5pY29uXSA/PyBudWxsXG4gIH1cblxuICByZXR1cm4gSE9VUlNfUExBTk5FUl9USVRMRV9UT19UWVBFW25vcm1hbGl6ZVF1aWNrQWN0aW9uVGl0bGUoYWN0aW9uLnRpdGxlKV0gPz8gbnVsbFxufVxuXG5leHBvcnQgY29uc3QgcmVzb2x2ZVF1aWNrQWN0aW9uVHlwZSA9IChhY3Rpb246IFBpY2s8QWN0aW9uLCAnaWQnIHwgJ3RpdGxlJyB8ICdpY29uJyB8ICdjYXRlZ29yeSc+KTogc3RyaW5nID0+IHtcbiAgY29uc3QgaG91cnNUeXBlID0gcmVzb2x2ZUhvdXJzUGxhbm5lclF1aWNrQWN0aW9uVHlwZShhY3Rpb24pXG4gIGlmIChob3Vyc1R5cGUpIHJldHVybiBob3Vyc1R5cGVcbiAgcmV0dXJuIHF1aWNrQWN0aW9uVGl0bGVUb1R5cGUoYWN0aW9uLmlkLCBhY3Rpb24udGl0bGUpXG59XG5cbmV4cG9ydCB0eXBlIFF1aWNrQWN0aW9uT3JpZ2luID0gJ3Rhc2snIHwgJ3BsYW5uZXInIHwgJ2hlYWRlcicgfCAnaG9tZSdcblxuZXhwb3J0IGNvbnN0IHJlc29sdmVRdWlja0FjdGlvbk9yaWdpbiA9IChcbiAgc2VjdGlvbjogc3RyaW5nIHwgdW5kZWZpbmVkLFxuICB2YXJpYW50OiAnZGVmYXVsdCcgfCAncGxhbm5lcicgPSAnZGVmYXVsdCdcbik6IFF1aWNrQWN0aW9uT3JpZ2luID0+IHtcbiAgaWYgKHNlY3Rpb24gPT09ICd0YXNrJykgcmV0dXJuICd0YXNrJ1xuICBpZiAoc2VjdGlvbiA9PT0gJ3BsYW5uZXInKSByZXR1cm4gJ3BsYW5uZXInXG4gIGlmIChzZWN0aW9uID09PSAnaGVhZGVyJyAmJiB2YXJpYW50ID09PSAncGxhbm5lcicpIHJldHVybiAnaGVhZGVyJ1xuICByZXR1cm4gJ2hvbWUnXG59XG4iXSwibWFwcGluZ3MiOiI7QUFDQSxTQUFTQSxzQkFBc0IsUUFBUSxzQkFBc0I7QUFLN0QsSUFBTUMsMEJBQXVGLEdBQUc7RUFDOUZDLFFBQVEsRUFBRSxxQkFBcUI7RUFDL0JDLFNBQVMsRUFBRSw4QkFBOEI7RUFDekNDLFlBQVksRUFBRSxzQkFBc0I7RUFDcENDLElBQUksRUFBRTtBQUNSLENBQUM7QUFFRCxJQUFNQyx5QkFBeUIsR0FBRyxTQUE1QkEseUJBQXlCQSxDQUFJQyxLQUFhO0VBQUEsT0FDOUNBLEtBQUssQ0FDRkMsV0FBVyxDQUFDLENBQUMsQ0FDYkMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUNoQkMsT0FBTyxDQUFDLGtCQUFrQixFQUFFLEVBQUUsQ0FBQyxDQUMvQkEsT0FBTyxDQUFDLGVBQWUsRUFBRSxHQUFHLENBQUMsQ0FDN0JBLE9BQU8sQ0FBQyxNQUFNLEVBQUUsR0FBRyxDQUFDLENBQ3BCQyxJQUFJLENBQUMsQ0FBQztBQUFBO0FBSVg7QUFDQSxPQUFPLElBQU1DLDhCQUEyRCxHQUFHO0VBQ3pFQyxtQkFBbUIsRUFBRTtJQUNuQkMsRUFBRSxFQUFFLG1DQUFtQztJQUN2Q0MsRUFBRSxFQUFFLGlDQUFpQztJQUNyQ0MsRUFB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
@@ -1,5 +1,3 @@
1
- import { computeContainDrawRect, getImageAspectRatio, IMAGE_BACKEND_TARGET_SIZE, isNearSquareAspectRatio } from './imagePreprocessor.helpers';
2
-
3
1
  /**
4
2
  * Pre-procesa imágenes para el backend
5
3
  * - Imágenes cuadradas: usa object-fit: cover (sin padding)
@@ -17,20 +15,40 @@ export var preprocessImageForBackend = function preprocessImageForBackend(file)
17
15
  img.onload = function () {
18
16
  var originalWidth = img.width,
19
17
  originalHeight = img.height;
20
- var aspectRatio = getImageAspectRatio(originalWidth, originalHeight);
21
- var targetSize = IMAGE_BACKEND_TARGET_SIZE;
18
+ var aspectRatio = originalWidth / originalHeight;
19
+
20
+ // Tamaño objetivo del backend (160x160px)
21
+ var targetSize = 160;
22
22
  canvas.width = targetSize;
23
23
  canvas.height = targetSize;
24
- if (isNearSquareAspectRatio(originalWidth, originalHeight)) {
24
+
25
+ // Determinar si es cuadrada (tolerancia del 10%)
26
+ var isSquare = Math.abs(aspectRatio - 1) <= 0.1;
27
+ if (isSquare) {
28
+ // Para imágenes cuadradas: object-fit: cover (sin padding)
25
29
  ctx.drawImage(img, 0, 0, targetSize, targetSize);
26
30
  } else {
27
- var _computeContainDrawRe = computeContainDrawRect(aspectRatio, targetSize),
28
- drawWidth = _computeContainDrawRe.drawWidth,
29
- drawHeight = _computeContainDrawRe.drawHeight,
30
- drawX = _computeContainDrawRe.drawX,
31
- drawY = _computeContainDrawRe.drawY;
31
+ // Para imágenes rectangulares: object-fit: contain (con padding)
32
+
33
+ var drawWidth = targetSize;
34
+ var drawHeight = targetSize;
35
+ var drawX = 0;
36
+ var drawY = 0;
37
+ if (aspectRatio > 1) {
38
+ // Imagen más ancha que alta - ajustar altura
39
+ drawHeight = targetSize / aspectRatio;
40
+ drawY = (targetSize - drawHeight) / 2;
41
+ } else if (aspectRatio < 1) {
42
+ // Imagen más alta que ancha - ajustar ancho
43
+ drawWidth = targetSize * aspectRatio;
44
+ drawX = (targetSize - drawWidth) / 2;
45
+ }
46
+
47
+ // Rellenar fondo con color gris claro
32
48
  ctx.fillStyle = '#f2f2f2';
33
49
  ctx.fillRect(0, 0, targetSize, targetSize);
50
+
51
+ // Dibujar la imagen completa centrada
34
52
  ctx.drawImage(img, drawX, drawY, drawWidth, drawHeight);
35
53
  }
36
54
 
@@ -67,7 +85,14 @@ export var shouldPreprocessImage = function shouldPreprocessImage(file) {
67
85
  try {
68
86
  var width = img.width,
69
87
  height = img.height;
70
- resolve(!isNearSquareAspectRatio(width, height));
88
+ var aspectRatio = width / height;
89
+
90
+ // Procesar solo si no es cuadrada (aspect ratio != 1)
91
+ // Las imágenes cuadradas se ven igual con cover y contain
92
+ var isNotSquare = Math.abs(aspectRatio - 1) > 0.1;
93
+
94
+ // Debug: Imagen analizada
95
+ resolve(isNotSquare);
71
96
  } catch (error) {
72
97
  console.error('Error analizando imagen:', error);
73
98
  resolve(false);
@@ -80,4 +105,4 @@ export var shouldPreprocessImage = function shouldPreprocessImage(file) {
80
105
  img.src = URL.createObjectURL(file);
81
106
  });
82
107
  };
83
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJjb21wdXRlQ29udGFpbkRyYXdSZWN0IiwiZ2V0SW1hZ2VBc3BlY3RSYXRpbyIsIklNQUdFX0JBQ0tFTkRfVEFSR0VUX1NJWkUiLCJpc05lYXJTcXVhcmVBc3BlY3RSYXRpbyIsInByZXByb2Nlc3NJbWFnZUZvckJhY2tlbmQiLCJmaWxlIiwiUHJvbWlzZSIsInJlc29sdmUiLCJyZWplY3QiLCJpbWciLCJJbWFnZSIsImNhbnZhcyIsImRvY3VtZW50IiwiY3JlYXRlRWxlbWVudCIsImN0eCIsImdldENvbnRleHQiLCJFcnJvciIsIm9ubG9hZCIsIm9yaWdpbmFsV2lkdGgiLCJ3aWR0aCIsIm9yaWdpbmFsSGVpZ2h0IiwiaGVpZ2h0IiwiYXNwZWN0UmF0aW8iLCJ0YXJnZXRTaXplIiwiZHJhd0ltYWdlIiwiX2NvbXB1dGVDb250YWluRHJhd1JlIiwiZHJhd1dpZHRoIiwiZHJhd0hlaWdodCIsImRyYXdYIiwiZHJhd1kiLCJmaWxsU3R5bGUiLCJmaWxsUmVjdCIsInRvQmxvYiIsImJsb2IiLCJwcm9jZXNzZWRGaWxlIiwiRmlsZSIsIm5hbWUiLCJ0eXBlIiwibGFzdE1vZGlmaWVkIiwib25lcnJvciIsInNyYyIsIlVSTCIsImNyZWF0ZU9iamVjdFVSTCIsInNob3VsZFByZXByb2Nlc3NJbWFnZSIsImVycm9yIiwiY29uc29sZSJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlscy9pbWFnZVByZXByb2Nlc3Nvci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBjb21wdXRlQ29udGFpbkRyYXdSZWN0LFxuICBnZXRJbWFnZUFzcGVjdFJhdGlvLFxuICBJTUFHRV9CQUNLRU5EX1RBUkdFVF9TSVpFLFxuICBpc05lYXJTcXVhcmVBc3BlY3RSYXRpbyxcbn0gZnJvbSAnLi9pbWFnZVByZXByb2Nlc3Nvci5oZWxwZXJzJ1xuXG4vKipcbiAqIFByZS1wcm9jZXNhIGltw6FnZW5lcyBwYXJhIGVsIGJhY2tlbmRcbiAqIC0gSW3DoWdlbmVzIGN1YWRyYWRhczogdXNhIG9iamVjdC1maXQ6IGNvdmVyIChzaW4gcGFkZGluZylcbiAqIC0gSW3DoWdlbmVzIHJlY3Rhbmd1bGFyZXM6IHVzYSBvYmplY3QtZml0OiBjb250YWluIChjb24gcGFkZGluZylcbiAqL1xuZXhwb3J0IGNvbnN0IHByZXByb2Nlc3NJbWFnZUZvckJhY2tlbmQgPSAoZmlsZTogRmlsZSk6IFByb21pc2U8RmlsZT4gPT4ge1xuICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgIGNvbnN0IGltZyA9IG5ldyBJbWFnZSgpXG4gICAgY29uc3QgY2FudmFzID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnY2FudmFzJylcbiAgICBjb25zdCBjdHggPSBjYW52YXMuZ2V0Q29udGV4dCgnMmQnKVxuXG4gICAgaWYgKCFjdHgpIHtcbiAgICAgIHJlamVjdChuZXcgRXJyb3IoJ05vIHNlIHB1ZG8gb2J0ZW5lciBlbCBjb250ZXh0byBkZWwgY2FudmFzJykpXG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICBpbWcub25sb2FkID0gKCkgPT4ge1xuICAgICAgY29uc3QgeyB3aWR0aDogb3JpZ2luYWxXaWR0aCwgaGVpZ2h0OiBvcmlnaW5hbEhlaWdodCB9ID0gaW1nXG4gICAgICBjb25zdCBhc3BlY3RSYXRpbyA9IGdldEltYWdlQXNwZWN0UmF0aW8ob3JpZ2luYWxXaWR0aCwgb3JpZ2luYWxIZWlnaHQpXG4gICAgICBjb25zdCB0YXJnZXRTaXplID0gSU1BR0VfQkFDS0VORF9UQVJHRVRfU0laRVxuICAgICAgY2FudmFzLndpZHRoID0gdGFyZ2V0U2l6ZVxuICAgICAgY2FudmFzLmhlaWdodCA9IHRhcmdldFNpemVcblxuICAgICAgaWYgKGlzTmVhclNxdWFyZUFzcGVjdFJhdGlvKG9yaWdpbmFsV2lkdGgsIG9yaWdpbmFsSGVpZ2h0KSkge1xuICAgICAgICBjdHguZHJhd0ltYWdlKGltZywgMCwgMCwgdGFyZ2V0U2l6ZSwgdGFyZ2V0U2l6ZSlcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnN0IHsgZHJhd1dpZHRoLCBkcmF3SGVpZ2h0LCBkcmF3WCwgZHJhd1kgfSA9IGNvbXB1dGVDb250YWluRHJhd1JlY3QoYXNwZWN0UmF0aW8sIHRhcmdldFNpemUpXG5cbiAgICAgICAgY3R4LmZpbGxTdHlsZSA9ICcjZjJmMmYyJ1xuICAgICAgICBjdHguZmlsbFJlY3QoMCwgMCwgdGFyZ2V0U2l6ZSwgdGFyZ2V0U2l6ZSlcbiAgICAgICAgY3R4LmRyYXdJbWFnZShpbWcsIGRyYXdYLCBkcmF3WSwgZHJhd1dpZHRoLCBkcmF3SGVpZ2h0KVxuICAgICAgfVxuXG4gICAgICAvLyBDb252ZXJ0aXIgY2FudmFzIGEgYmxvYiB5IGx1ZWdvIGEgRmlsZVxuICAgICAgY2FudmFzLnRvQmxvYihcbiAgICAgICAgYmxvYiA9PiB7XG4gICAgICAgICAgaWYgKCFibG9iKSB7XG4gICAgICAgICAgICByZWplY3QobmV3IEVycm9yKCdFcnJvciBhbCBwcm9jZXNhciBsYSBpbWFnZW4nKSlcbiAgICAgICAgICAgIHJldHVyblxuICAgICAgICAgIH1cblxuICAgICAgICAgIC8vIENyZWFyIG51ZXZvIEZpbGUgY29uIGVsIG1pc21vIG5vbWJyZSB5IHRpcG9cbiAgICAgICAgICBjb25zdCBwcm9jZXNzZWRGaWxlID0gbmV3IEZpbGUoW2Jsb2JdLCBmaWxlLm5hbWUsIHtcbiAgICAgICAgICAgIHR5cGU6IGZpbGUudHlwZSxcbiAgICAgICAgICAgIGxhc3RNb2RpZmllZDogZmlsZS5sYXN0TW9kaWZpZWQsXG4gICAgICAgICAgfSlcblxuICAgICAgICAgIHJlc29sdmUocHJvY2Vzc2VkRmlsZSlcbiAgICAgICAgfSxcbiAgICAgICAgZmlsZS50eXBlLFxuICAgICAgICAwLjlcbiAgICAgICkgLy8gQ2FsaWRhZCBkZWwgOTAlXG4gICAgfVxuXG4gICAgaW1nLm9uZXJyb3IgPSAoKSA9PiB7XG4gICAgICByZWplY3QobmV3IEVycm9yKCdFcnJvciBhbCBjYXJnYXIgbGEgaW1hZ2VuJykpXG4gICAgfVxuXG4gICAgaW1nLnNyYyA9IFVSTC5jcmVhdGVPYmplY3RVUkwoZmlsZSlcbiAgfSlcbn1cblxuLyoqXG4gKiBEZXRlcm1pbmEgc2kgdW5hIGltYWdlbiBuZWNlc2l0YSBwcmUtcHJvY2VzYW1pZW50b1xuICogU29sbyBwcm9jZXNhbW9zIGltw6FnZW5lcyBxdWUgbm8gc2VhbiBjdWFkcmFkYXMgKHF1ZSBuZWNlc2l0ZW4gb2JqZWN0LWZpdDogY29udGFpbilcbiAqL1xuZXhwb3J0IGNvbnN0IHNob3VsZFByZXByb2Nlc3NJbWFnZSA9IChmaWxlOiBGaWxlKTogUHJvbWlzZTxib29sZWFuPiA9PiB7XG4gIHJldHVybiBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHtcbiAgICBjb25zdCBpbWcgPSBuZXcgSW1hZ2UoKVxuXG4gICAgaW1nLm9ubG9hZCA9ICgpID0+IHtcbiAgICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IHsgd2lkdGgsIGhlaWdodCB9ID0gaW1nXG4gICAgICAgIHJlc29sdmUoIWlzTmVhclNxdWFyZUFzcGVjdFJhdGlvKHdpZHRoLCBoZWlnaHQpKVxuICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgY29uc29sZS5lcnJvcignRXJyb3IgYW5hbGl6YW5kbyBpbWFnZW46JywgZXJyb3IpXG4gICAgICAgIHJlc29sdmUoZmFsc2UpXG4gICAgICB9XG4gICAgfVxuXG4gICAgaW1nLm9uZXJyb3IgPSAoKSA9PiB7XG4gICAgICAvLyBFcnJvciBjYXJnYW5kbyBpbWFnZW4gcGFyYSBhbsOhbGlzaXNcbiAgICAgIHJlc29sdmUoZmFsc2UpXG4gICAgfVxuXG4gICAgaW1nLnNyYyA9IFVSTC5jcmVhdGVPYmplY3RVUkwoZmlsZSlcbiAgfSlcbn1cbiJdLCJtYXBwaW5ncyI6IkFBQUEsU0FDRUEsc0JBQXNCLEVBQ3RCQyxtQkFBbUIsRUFDbkJDLHlCQUF5QixFQUN6QkMsdUJBQXVCLFFBQ2xCLDZCQUE2Qjs7QUFFcEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU8sSUFBTUMseUJB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
108
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJwcmVwcm9jZXNzSW1hZ2VGb3JCYWNrZW5kIiwiZmlsZSIsIlByb21pc2UiLCJyZXNvbHZlIiwicmVqZWN0IiwiaW1nIiwiSW1hZ2UiLCJjYW52YXMiLCJkb2N1bWVudCIsImNyZWF0ZUVsZW1lbnQiLCJjdHgiLCJnZXRDb250ZXh0IiwiRXJyb3IiLCJvbmxvYWQiLCJvcmlnaW5hbFdpZHRoIiwid2lkdGgiLCJvcmlnaW5hbEhlaWdodCIsImhlaWdodCIsImFzcGVjdFJhdGlvIiwidGFyZ2V0U2l6ZSIsImlzU3F1YXJlIiwiTWF0aCIsImFicyIsImRyYXdJbWFnZSIsImRyYXdXaWR0aCIsImRyYXdIZWlnaHQiLCJkcmF3WCIsImRyYXdZIiwiZmlsbFN0eWxlIiwiZmlsbFJlY3QiLCJ0b0Jsb2IiLCJibG9iIiwicHJvY2Vzc2VkRmlsZSIsIkZpbGUiLCJuYW1lIiwidHlwZSIsImxhc3RNb2RpZmllZCIsIm9uZXJyb3IiLCJzcmMiLCJVUkwiLCJjcmVhdGVPYmplY3RVUkwiLCJzaG91bGRQcmVwcm9jZXNzSW1hZ2UiLCJpc05vdFNxdWFyZSIsImVycm9yIiwiY29uc29sZSJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlscy9pbWFnZVByZXByb2Nlc3Nvci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFByZS1wcm9jZXNhIGltw6FnZW5lcyBwYXJhIGVsIGJhY2tlbmRcbiAqIC0gSW3DoWdlbmVzIGN1YWRyYWRhczogdXNhIG9iamVjdC1maXQ6IGNvdmVyIChzaW4gcGFkZGluZylcbiAqIC0gSW3DoWdlbmVzIHJlY3Rhbmd1bGFyZXM6IHVzYSBvYmplY3QtZml0OiBjb250YWluIChjb24gcGFkZGluZylcbiAqL1xuZXhwb3J0IGNvbnN0IHByZXByb2Nlc3NJbWFnZUZvckJhY2tlbmQgPSAoZmlsZTogRmlsZSk6IFByb21pc2U8RmlsZT4gPT4ge1xuICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgIGNvbnN0IGltZyA9IG5ldyBJbWFnZSgpXG4gICAgY29uc3QgY2FudmFzID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnY2FudmFzJylcbiAgICBjb25zdCBjdHggPSBjYW52YXMuZ2V0Q29udGV4dCgnMmQnKVxuXG4gICAgaWYgKCFjdHgpIHtcbiAgICAgIHJlamVjdChuZXcgRXJyb3IoJ05vIHNlIHB1ZG8gb2J0ZW5lciBlbCBjb250ZXh0byBkZWwgY2FudmFzJykpXG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICBpbWcub25sb2FkID0gKCkgPT4ge1xuICAgICAgY29uc3QgeyB3aWR0aDogb3JpZ2luYWxXaWR0aCwgaGVpZ2h0OiBvcmlnaW5hbEhlaWdodCB9ID0gaW1nXG4gICAgICBjb25zdCBhc3BlY3RSYXRpbyA9IG9yaWdpbmFsV2lkdGggLyBvcmlnaW5hbEhlaWdodFxuXG4gICAgICAvLyBUYW1hw7FvIG9iamV0aXZvIGRlbCBiYWNrZW5kICgxNjB4MTYwcHgpXG4gICAgICBjb25zdCB0YXJnZXRTaXplID0gMTYwXG4gICAgICBjYW52YXMud2lkdGggPSB0YXJnZXRTaXplXG4gICAgICBjYW52YXMuaGVpZ2h0ID0gdGFyZ2V0U2l6ZVxuXG4gICAgICAvLyBEZXRlcm1pbmFyIHNpIGVzIGN1YWRyYWRhICh0b2xlcmFuY2lhIGRlbCAxMCUpXG4gICAgICBjb25zdCBpc1NxdWFyZSA9IE1hdGguYWJzKGFzcGVjdFJhdGlvIC0gMSkgPD0gMC4xXG5cbiAgICAgIGlmIChpc1NxdWFyZSkge1xuICAgICAgICAvLyBQYXJhIGltw6FnZW5lcyBjdWFkcmFkYXM6IG9iamVjdC1maXQ6IGNvdmVyIChzaW4gcGFkZGluZylcbiAgICAgICAgY3R4LmRyYXdJbWFnZShpbWcsIDAsIDAsIHRhcmdldFNpemUsIHRhcmdldFNpemUpXG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBQYXJhIGltw6FnZW5lcyByZWN0YW5ndWxhcmVzOiBvYmplY3QtZml0OiBjb250YWluIChjb24gcGFkZGluZylcblxuICAgICAgICBsZXQgZHJhd1dpZHRoID0gdGFyZ2V0U2l6ZVxuICAgICAgICBsZXQgZHJhd0hlaWdodCA9IHRhcmdldFNpemVcbiAgICAgICAgbGV0IGRyYXdYID0gMFxuICAgICAgICBsZXQgZHJhd1kgPSAwXG5cbiAgICAgICAgaWYgKGFzcGVjdFJhdGlvID4gMSkge1xuICAgICAgICAgIC8vIEltYWdlbiBtw6FzIGFuY2hhIHF1ZSBhbHRhIC0gYWp1c3RhciBhbHR1cmFcbiAgICAgICAgICBkcmF3SGVpZ2h0ID0gdGFyZ2V0U2l6ZSAvIGFzcGVjdFJhdGlvXG4gICAgICAgICAgZHJhd1kgPSAodGFyZ2V0U2l6ZSAtIGRyYXdIZWlnaHQpIC8gMlxuICAgICAgICB9IGVsc2UgaWYgKGFzcGVjdFJhdGlvIDwgMSkge1xuICAgICAgICAgIC8vIEltYWdlbiBtw6FzIGFsdGEgcXVlIGFuY2hhIC0gYWp1c3RhciBhbmNob1xuICAgICAgICAgIGRyYXdXaWR0aCA9IHRhcmdldFNpemUgKiBhc3BlY3RSYXRpb1xuICAgICAgICAgIGRyYXdYID0gKHRhcmdldFNpemUgLSBkcmF3V2lkdGgpIC8gMlxuICAgICAgICB9XG5cbiAgICAgICAgLy8gUmVsbGVuYXIgZm9uZG8gY29uIGNvbG9yIGdyaXMgY2xhcm9cbiAgICAgICAgY3R4LmZpbGxTdHlsZSA9ICcjZjJmMmYyJ1xuICAgICAgICBjdHguZmlsbFJlY3QoMCwgMCwgdGFyZ2V0U2l6ZSwgdGFyZ2V0U2l6ZSlcblxuICAgICAgICAvLyBEaWJ1amFyIGxhIGltYWdlbiBjb21wbGV0YSBjZW50cmFkYVxuICAgICAgICBjdHguZHJhd0ltYWdlKGltZywgZHJhd1gsIGRyYXdZLCBkcmF3V2lkdGgsIGRyYXdIZWlnaHQpXG4gICAgICB9XG5cbiAgICAgIC8vIENvbnZlcnRpciBjYW52YXMgYSBibG9iIHkgbHVlZ28gYSBGaWxlXG4gICAgICBjYW52YXMudG9CbG9iKFxuICAgICAgICBibG9iID0+IHtcbiAgICAgICAgICBpZiAoIWJsb2IpIHtcbiAgICAgICAgICAgIHJlamVjdChuZXcgRXJyb3IoJ0Vycm9yIGFsIHByb2Nlc2FyIGxhIGltYWdlbicpKVxuICAgICAgICAgICAgcmV0dXJuXG4gICAgICAgICAgfVxuXG4gICAgICAgICAgLy8gQ3JlYXIgbnVldm8gRmlsZSBjb24gZWwgbWlzbW8gbm9tYnJlIHkgdGlwb1xuICAgICAgICAgIGNvbnN0IHByb2Nlc3NlZEZpbGUgPSBuZXcgRmlsZShbYmxvYl0sIGZpbGUubmFtZSwge1xuICAgICAgICAgICAgdHlwZTogZmlsZS50eXBlLFxuICAgICAgICAgICAgbGFzdE1vZGlmaWVkOiBmaWxlLmxhc3RNb2RpZmllZCxcbiAgICAgICAgICB9KVxuXG4gICAgICAgICAgcmVzb2x2ZShwcm9jZXNzZWRGaWxlKVxuICAgICAgICB9LFxuICAgICAgICBmaWxlLnR5cGUsXG4gICAgICAgIDAuOVxuICAgICAgKSAvLyBDYWxpZGFkIGRlbCA5MCVcbiAgICB9XG5cbiAgICBpbWcub25lcnJvciA9ICgpID0+IHtcbiAgICAgIHJlamVjdChuZXcgRXJyb3IoJ0Vycm9yIGFsIGNhcmdhciBsYSBpbWFnZW4nKSlcbiAgICB9XG5cbiAgICBpbWcuc3JjID0gVVJMLmNyZWF0ZU9iamVjdFVSTChmaWxlKVxuICB9KVxufVxuXG4vKipcbiAqIERldGVybWluYSBzaSB1bmEgaW1hZ2VuIG5lY2VzaXRhIHByZS1wcm9jZXNhbWllbnRvXG4gKiBTb2xvIHByb2Nlc2Ftb3MgaW3DoWdlbmVzIHF1ZSBubyBzZWFuIGN1YWRyYWRhcyAocXVlIG5lY2VzaXRlbiBvYmplY3QtZml0OiBjb250YWluKVxuICovXG5leHBvcnQgY29uc3Qgc2hvdWxkUHJlcHJvY2Vzc0ltYWdlID0gKGZpbGU6IEZpbGUpOiBQcm9taXNlPGJvb2xlYW4+ID0+IHtcbiAgcmV0dXJuIG5ldyBQcm9taXNlKHJlc29sdmUgPT4ge1xuICAgIGNvbnN0IGltZyA9IG5ldyBJbWFnZSgpXG5cbiAgICBpbWcub25sb2FkID0gKCkgPT4ge1xuICAgICAgdHJ5IHtcbiAgICAgICAgY29uc3QgeyB3aWR0aCwgaGVpZ2h0IH0gPSBpbWdcbiAgICAgICAgY29uc3QgYXNwZWN0UmF0aW8gPSB3aWR0aCAvIGhlaWdodFxuXG4gICAgICAgIC8vIFByb2Nlc2FyIHNvbG8gc2kgbm8gZXMgY3VhZHJhZGEgKGFzcGVjdCByYXRpbyAhPSAxKVxuICAgICAgICAvLyBMYXMgaW3DoWdlbmVzIGN1YWRyYWRhcyBzZSB2ZW4gaWd1YWwgY29uIGNvdmVyIHkgY29udGFpblxuICAgICAgICBjb25zdCBpc05vdFNxdWFyZSA9IE1hdGguYWJzKGFzcGVjdFJhdGlvIC0gMSkgPiAwLjFcblxuICAgICAgICAvLyBEZWJ1ZzogSW1hZ2VuIGFuYWxpemFkYVxuICAgICAgICByZXNvbHZlKGlzTm90U3F1YXJlKVxuICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgY29uc29sZS5lcnJvcignRXJyb3IgYW5hbGl6YW5kbyBpbWFnZW46JywgZXJyb3IpXG4gICAgICAgIHJlc29sdmUoZmFsc2UpXG4gICAgICB9XG4gICAgfVxuXG4gICAgaW1nLm9uZXJyb3IgPSAoKSA9PiB7XG4gICAgICAvLyBFcnJvciBjYXJnYW5kbyBpbWFnZW4gcGFyYSBhbsOhbGlzaXNcbiAgICAgIHJlc29sdmUoZmFsc2UpXG4gICAgfVxuXG4gICAgaW1nLnNyYyA9IFVSTC5jcmVhdGVPYmplY3RVUkwoZmlsZSlcbiAgfSlcbn1cbiJdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU8sSUFBTUEseUJBQXlCLEdBQUcsU0FBNUJBLHlCQUF5QkEsQ0FBSUMsSUFBVSxFQUFvQjtFQUN0RSxPQUFPLElBQUlDLE9BQU8sQ0FBQyxVQUFDQyxPQUFPLEVBQUVDLE1BQU0sRUFBSztJQUN0QyxJQUFNQyxHQUFHLEdBQUcsSUFBSUMsS0FBSyxDQUFDLENBQUM7SUFDdkIsSUFBTUMsTUFBTSxHQUFHQyxRQUFRLENBQUNDLGFBQWEsQ0FBQyxRQUFRLENBQUM7SUFDL0MsSUFBTUMsR0FBRyxHQUFHSCxNQUFNLENBQUNJLFVBQVUsQ0FBQyxJ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