@projectcor/maia-components 2.49.1-0 → 2.49.1-1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (46) hide show
  1. package/lib/components/atoms/AttachmentCard/AttachmentCardAudio.helpers.js +3 -1
  2. package/lib/components/atoms/AttachmentCard/AttachmentCardImage.js +3 -1
  3. package/lib/components/atoms/AttachmentPreviewModal/AttachmentPreviewModal.js +24 -14
  4. package/lib/components/atoms/AttachmentPreviewModal/ExcelPreview.js +28 -10
  5. package/lib/components/atoms/AttachmentPreviewModal/PptPreview.js +19 -15
  6. package/lib/components/atoms/AttachmentPreviewModal/PptPreview.spec.js +33 -1
  7. package/lib/components/atoms/AttachmentPreviewModal/WordPreview.js +8 -4
  8. package/lib/components/atoms/ClientSelector/ClientSelector.js +15 -13
  9. package/lib/components/atoms/Fade/Fade.js +10 -6
  10. package/lib/components/atoms/Fade/Fade.spec.js +36 -1
  11. package/lib/components/atoms/MAIAInput/MAIAInput.attachments.helpers.js +3 -2
  12. package/lib/components/atoms/MAIAInput/MAIAInput.helpers.js +3 -2
  13. package/lib/components/atoms/MAIAInput/MAIAInput.js +10 -5
  14. package/lib/components/atoms/MaiaWrapper/MaiaWrapperBase.js +9 -4
  15. package/lib/components/atoms/OptionAccessibility/OptionAccessibility.js +4 -5
  16. package/lib/components/atoms/OptionAccessibility/OptionAccessibility.spec.js +3 -3
  17. package/lib/components/molecules/AbmSection/AbmAccessibilitySection/AbmAccessibilitySection.js +3 -2
  18. package/lib/components/molecules/AbmSection/AbmKnowledgeSection.helpers.js +6 -4
  19. package/lib/components/molecules/AbmSection/AbmKnowledgeSection.js +25 -16
  20. package/lib/components/molecules/ChatAIHome/ChatAIHome.js +3 -1
  21. package/lib/components/molecules/ChatAIModal/components/ChatAiModalHeader/ChatAiModalHeader.js +51 -359
  22. package/lib/components/molecules/ChatAIModal/components/ChatAiModalHeader/ChatAiModalHeader.utils.js +69 -0
  23. package/lib/components/molecules/ChatAIModal/components/ChatAiModalHeader/ChatAiModalHeader.utils.spec.js +144 -0
  24. package/lib/components/molecules/ChatAIModal/components/ChatAiModalHeader/ChatAiModalHeaderAgentDropdown.js +95 -0
  25. package/lib/components/molecules/ChatAIModal/components/ChatAiModalHeader/ChatAiModalHeaderAgentSelector.js +174 -0
  26. package/lib/components/molecules/ChatAIModal/components/ChatAiModalHeader/ChatAiModalHeaderLayoutMenu.js +99 -0
  27. package/lib/components/molecules/ChatAIModal/components/ChatAiModalHeader/ChatAiModalHeaderLayoutMenu.spec.js +65 -0
  28. package/lib/components/molecules/ChatFooter/ChatFooterFaqs.js +5 -2
  29. package/lib/components/organisms/ChatAIPage/ChatAIPageHome.js +24 -15
  30. package/lib/components/organisms/ChatAIPage/ChatAIPageHome.styles.js +8 -7
  31. package/lib/components/organisms/ProjectSummary/ProjectSummary.js +11 -7
  32. package/lib/components/organisms/SourcesInformation/SourcesInformationModal.js +4 -1
  33. package/lib/hooks/useAgentModel/useUpdateAgent.js +7 -6
  34. package/lib/hooks/useEntitySearch.js +3 -1
  35. package/lib/hooks/useKnowledge/downloadKnowledge.js +4 -4
  36. package/lib/hooks/useKnowledge/useKnowledgeOperations.js +16 -15
  37. package/lib/hooks/useProjectSummaryConfig.js +10 -5
  38. package/lib/services/maia/Agents/connectors.js +3 -1
  39. package/lib/store/useChatsStore.js +4 -3
  40. package/lib/utils/imagePreprocessor.js +14 -3
  41. package/lib/utils/navigateContextEntity.js +2 -2
  42. package/lib/utils/navigateContextEntity.spec.js +3 -3
  43. package/lib/utils/openTaskInCorPanel.js +2 -2
  44. package/lib/utils/openTaskInCorPanel.spec.js +2 -2
  45. package/lib/utils/streamActivityMessages.helpers.js +3 -3
  46. package/package.json +1 -1
@@ -0,0 +1,69 @@
1
+ export var isMaiaAgent = function isMaiaAgent(agent) {
2
+ return agent.type === 'orchestrator';
3
+ };
4
+ export var isAgentUnavailable = function isAgentUnavailable(agent) {
5
+ return !!(agent !== null && agent !== void 0 && agent.is_deleted) || !!(agent !== null && agent !== void 0 && agent.has_not_permissions) || !!(agent !== null && agent !== void 0 && agent.has_not_access);
6
+ };
7
+
8
+ /** Los custom requieren la feature multi-agents; clone y MAIA no van en esta lista. */
9
+ export var isListableAgent = function isListableAgent(agent, multiAgentsEnabled) {
10
+ if (isAgentUnavailable(agent) || agent.type === 'clone' || isMaiaAgent(agent)) return false;
11
+ return agent.type !== 'custom' || multiAgentsEnabled;
12
+ };
13
+
14
+ /** Solo los custom no legacy muestran su emoji; el resto usa el icono de MAIA. */
15
+ export var showsAgentEmoji = function showsAgentEmoji(agent) {
16
+ return (agent === null || agent === void 0 ? void 0 : agent.type) === 'custom' && !(agent !== null && agent !== void 0 && agent.is_legacy_context);
17
+ };
18
+
19
+ /** Los clone de project/client resuelven la sesión recién al elegir la entity. */
20
+ export var agentNeedsEntity = function agentNeedsEntity(agent) {
21
+ return (agent === null || agent === void 0 ? void 0 : agent.type) === 'clone' && ((agent === null || agent === void 0 ? void 0 : agent.entity) === 'project' || (agent === null || agent === void 0 ? void 0 : agent.entity) === 'client');
22
+ };
23
+
24
+ /**
25
+ * Agente a mostrar en el selector. Los no disponibles o de conversación se muestran tal cual;
26
+ * si no está en la lista paginada (p. ej. hidratado por GET tras create_agent) se usa el del contexto.
27
+ */
28
+ export var resolveDisplayedAgent = function resolveDisplayedAgent(agents, selectedAgent) {
29
+ var _ref;
30
+ if (isAgentUnavailable(selectedAgent) || selectedAgent !== null && selectedAgent !== void 0 && selectedAgent.is_from_conversation || selectedAgent !== null && selectedAgent !== void 0 && selectedAgent.is_legacy_context) {
31
+ return selectedAgent !== null && selectedAgent !== void 0 ? selectedAgent : null;
32
+ }
33
+ var fromList = agents.find(function (agent) {
34
+ return !isAgentUnavailable(agent) && agent.id === (selectedAgent === null || selectedAgent === void 0 ? void 0 : selectedAgent.id);
35
+ });
36
+ return (_ref = fromList !== null && fromList !== void 0 ? fromList : selectedAgent) !== null && _ref !== void 0 ? _ref : null;
37
+ };
38
+ export var getSectionLabelKey = function getSectionLabelKey(isMyAgentsSection, isMySkillsSection) {
39
+ if (isMyAgentsSection) return 'marketplace.myAgentsTitle';
40
+ if (isMySkillsSection) return 'conversations.mySkillsNav';
41
+ return null;
42
+ };
43
+ export var canUserCreateAgents = function canUserCreateAgents(user) {
44
+ var _user$permissions;
45
+ return !!((_user$permissions = user.permissions) !== null && _user$permissions !== void 0 && (_user$permissions = _user$permissions.ai_agents) !== null && _user$permissions !== void 0 && _user$permissions.create) && !!window.MAIA_CHAT_AI_FEATURE_ACCESS_MULTI_AGENTS;
46
+ };
47
+ export var shouldShowAgentSelector = function shouldShowAgentSelector(_ref2) {
48
+ var hasError = _ref2.hasError,
49
+ loading = _ref2.loading,
50
+ hideAgentSelector = _ref2.hideAgentSelector,
51
+ hasSelectedAgent = _ref2.hasSelectedAgent,
52
+ isAgentsSection = _ref2.isAgentsSection;
53
+ if (hasError || loading || hideAgentSelector) return false;
54
+ if (!hasSelectedAgent && !isAgentsSection) return false;
55
+ return !!window.MAIA_CHAT_AI_FEATURE_ACCESS_MULTI_AGENTS || !!window.MAIA_CHAT_AI_FEATURE_ACCESS;
56
+ };
57
+ export var dispatchOpenCreateAgentModal = function dispatchOpenCreateAgentModal() {
58
+ document.dispatchEvent(new CustomEvent('abm-agent-modal-set-values', {
59
+ detail: {
60
+ agentValues: {
61
+ values: {
62
+ isEditing: false
63
+ },
64
+ isOpen: true
65
+ }
66
+ }
67
+ }));
68
+ };
69
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJpc01haWFBZ2VudCIsImFnZW50IiwidHlwZSIsImlzQWdlbnRVbmF2YWlsYWJsZSIsImlzX2RlbGV0ZWQiLCJoYXNfbm90X3Blcm1pc3Npb25zIiwiaGFzX25vdF9hY2Nlc3MiLCJpc0xpc3RhYmxlQWdlbnQiLCJtdWx0aUFnZW50c0VuYWJsZWQiLCJzaG93c0FnZW50RW1vamkiLCJpc19sZWdhY3lfY29udGV4dCIsImFnZW50TmVlZHNFbnRpdHkiLCJlbnRpdHkiLCJyZXNvbHZlRGlzcGxheWVkQWdlbnQiLCJhZ2VudHMiLCJzZWxlY3RlZEFnZW50IiwiX3JlZiIsImlzX2Zyb21fY29udmVyc2F0aW9uIiwiZnJvbUxpc3QiLCJmaW5kIiwiaWQiLCJnZXRTZWN0aW9uTGFiZWxLZXkiLCJpc015QWdlbnRzU2VjdGlvbiIsImlzTXlTa2lsbHNTZWN0aW9uIiwiY2FuVXNlckNyZWF0ZUFnZW50cyIsInVzZXIiLCJfdXNlciRwZXJtaXNzaW9ucyIsInBlcm1pc3Npb25zIiwiYWlfYWdlbnRzIiwiY3JlYXRlIiwid2luZG93IiwiTUFJQV9DSEFUX0FJX0ZFQVRVUkVfQUNDRVNTX01VTFRJX0FHRU5UUyIsInNob3VsZFNob3dBZ2VudFNlbGVjdG9yIiwiX3JlZjIiLCJoYXNFcnJvciIsImxvYWRpbmciLCJoaWRlQWdlbnRTZWxlY3RvciIsImhhc1NlbGVjdGVkQWdlbnQiLCJpc0FnZW50c1NlY3Rpb24iLCJNQUlBX0NIQVRfQUlfRkVBVFVSRV9BQ0NFU1MiLCJkaXNwYXRjaE9wZW5DcmVhdGVBZ2VudE1vZGFsIiwiZG9jdW1lbnQiLCJkaXNwYXRjaEV2ZW50IiwiQ3VzdG9tRXZlbnQiLCJkZXRhaWwiLCJhZ2VudFZhbHVlcyIsInZhbHVlcyIsImlzRWRpdGluZyIsImlzT3BlbiJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL21vbGVjdWxlcy9DaGF0QUlNb2RhbC9jb21wb25lbnRzL0NoYXRBaU1vZGFsSGVhZGVyL0NoYXRBaU1vZGFsSGVhZGVyLnV0aWxzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgQ09SVXNlciB9IGZyb20gJy4uLy4uLy4uLy4uLy4uL2NvbnRleHQvY29yLXVzZXInXG5pbXBvcnQgeyBBZ2VudCB9IGZyb20gJy4uLy4uLy4uLy4uLy4uL3R5cGVzL2FnZW50J1xuXG5leHBvcnQgY29uc3QgaXNNYWlhQWdlbnQgPSAoYWdlbnQ6IEFnZW50KTogYm9vbGVhbiA9PiBhZ2VudC50eXBlID09PSAnb3JjaGVzdHJhdG9yJ1xuXG5leHBvcnQgY29uc3QgaXNBZ2VudFVuYXZhaWxhYmxlID0gKGFnZW50PzogQWdlbnQgfCBudWxsKTogYm9vbGVhbiA9PlxuICAhIWFnZW50Py5pc19kZWxldGVkIHx8ICEhYWdlbnQ/Lmhhc19ub3RfcGVybWlzc2lvbnMgfHwgISFhZ2VudD8uaGFzX25vdF9hY2Nlc3NcblxuLyoqIExvcyBjdXN0b20gcmVxdWllcmVuIGxhIGZlYXR1cmUgbXVsdGktYWdlbnRzOyBjbG9uZSB5IE1BSUEgbm8gdmFuIGVuIGVzdGEgbGlzdGEuICovXG5leHBvcnQgY29uc3QgaXNMaXN0YWJsZUFnZW50ID0gKGFnZW50OiBBZ2VudCwgbXVsdGlBZ2VudHNFbmFibGVkOiBib29sZWFuKTogYm9vbGVhbiA9PiB7XG4gIGlmIChpc0FnZW50VW5hdmFpbGFibGUoYWdlbnQpIHx8IGFnZW50LnR5cGUgPT09ICdjbG9uZScgfHwgaXNNYWlhQWdlbnQoYWdlbnQpKSByZXR1cm4gZmFsc2VcbiAgcmV0dXJuIGFnZW50LnR5cGUgIT09ICdjdXN0b20nIHx8IG11bHRpQWdlbnRzRW5hYmxlZFxufVxuXG4vKiogU29sbyBsb3MgY3VzdG9tIG5vIGxlZ2FjeSBtdWVzdHJhbiBzdSBlbW9qaTsgZWwgcmVzdG8gdXNhIGVsIGljb25vIGRlIE1BSUEuICovXG5leHBvcnQgY29uc3Qgc2hvd3NBZ2VudEVtb2ppID0gKGFnZW50PzogQWdlbnQgfCBudWxsKTogYm9vbGVhbiA9PiBhZ2VudD8udHlwZSA9PT0gJ2N1c3RvbScgJiYgIWFnZW50Py5pc19sZWdhY3lfY29udGV4dFxuXG4vKiogTG9zIGNsb25lIGRlIHByb2plY3QvY2xpZW50IHJlc3VlbHZlbiBsYSBzZXNpw7NuIHJlY2nDqW4gYWwgZWxlZ2lyIGxhIGVudGl0eS4gKi9cbmV4cG9ydCBjb25zdCBhZ2VudE5lZWRzRW50aXR5ID0gKGFnZW50PzogQWdlbnQgfCBudWxsKTogYm9vbGVhbiA9PlxuICBhZ2VudD8udHlwZSA9PT0gJ2Nsb25lJyAmJiAoYWdlbnQ/LmVudGl0eSA9PT0gJ3Byb2plY3QnIHx8IGFnZW50Py5lbnRpdHkgPT09ICdjbGllbnQnKVxuXG4vKipcbiAqIEFnZW50ZSBhIG1vc3RyYXIgZW4gZWwgc2VsZWN0b3IuIExvcyBubyBkaXNwb25pYmxlcyBvIGRlIGNvbnZlcnNhY2nDs24gc2UgbXVlc3RyYW4gdGFsIGN1YWw7XG4gKiBzaSBubyBlc3TDoSBlbiBsYSBsaXN0YSBwYWdpbmFkYSAocC4gZWouIGhpZHJhdGFkbyBwb3IgR0VUIHRyYXMgY3JlYXRlX2FnZW50KSBzZSB1c2EgZWwgZGVsIGNvbnRleHRvLlxuICovXG5leHBvcnQgY29uc3QgcmVzb2x2ZURpc3BsYXllZEFnZW50ID0gKGFnZW50czogQWdlbnRbXSwgc2VsZWN0ZWRBZ2VudD86IEFnZW50IHwgbnVsbCk6IEFnZW50IHwgbnVsbCA9PiB7XG4gIGlmIChpc0FnZW50VW5hdmFpbGFibGUoc2VsZWN0ZWRBZ2VudCkgfHwgc2VsZWN0ZWRBZ2VudD8uaXNfZnJvbV9jb252ZXJzYXRpb24gfHwgc2VsZWN0ZWRBZ2VudD8uaXNfbGVnYWN5X2NvbnRleHQpIHtcbiAgICByZXR1cm4gc2VsZWN0ZWRBZ2VudCA/PyBudWxsXG4gIH1cbiAgY29uc3QgZnJvbUxpc3QgPSBhZ2VudHMuZmluZChhZ2VudCA9PiAhaXNBZ2VudFVuYXZhaWxhYmxlKGFnZW50KSAmJiBhZ2VudC5pZCA9PT0gc2VsZWN0ZWRBZ2VudD8uaWQpXG4gIHJldHVybiBmcm9tTGlzdCA/PyBzZWxlY3RlZEFnZW50ID8/IG51bGxcbn1cblxuZXhwb3J0IGNvbnN0IGdldFNlY3Rpb25MYWJlbEtleSA9IChpc015QWdlbnRzU2VjdGlvbjogYm9vbGVhbiwgaXNNeVNraWxsc1NlY3Rpb246IGJvb2xlYW4pOiBzdHJpbmcgfCBudWxsID0+IHtcbiAgaWYgKGlzTXlBZ2VudHNTZWN0aW9uKSByZXR1cm4gJ21hcmtldHBsYWNlLm15QWdlbnRzVGl0bGUnXG4gIGlmIChpc015U2tpbGxzU2VjdGlvbikgcmV0dXJuICdjb252ZXJzYXRpb25zLm15U2tpbGxzTmF2J1xuICByZXR1cm4gbnVsbFxufVxuXG5leHBvcnQgY29uc3QgY2FuVXNlckNyZWF0ZUFnZW50cyA9ICh1c2VyOiBDT1JVc2VyKTogYm9vbGVhbiA9PlxuICAhIXVzZXIucGVybWlzc2lvbnM/LmFpX2FnZW50cz8uY3JlYXRlICYmICEhd2luZG93Lk1BSUFfQ0hBVF9BSV9GRUFUVVJFX0FDQ0VTU19NVUxUSV9BR0VOVFNcblxudHlwZSBBZ2VudFNlbGVjdG9yVmlzaWJpbGl0eSA9IHtcbiAgaGFzRXJyb3I6IGJvb2xlYW5cbiAgbG9hZGluZzogYm9vbGVhblxuICBoaWRlQWdlbnRTZWxlY3RvcjogYm9vbGVhblxuICBoYXNTZWxlY3RlZEFnZW50OiBib29sZWFuXG4gIGlzQWdlbnRzU2VjdGlvbjogYm9vbGVhblxufVxuXG5leHBvcnQgY29uc3Qgc2hvdWxkU2hvd0FnZW50U2VsZWN0b3IgPSAoe1xuICBoYXNFcnJvcixcbiAgbG9hZGluZyxcbiAgaGlkZUFnZW50U2VsZWN0b3IsXG4gIGhhc1NlbGVjdGVkQWdlbnQsXG4gIGlzQWdlbnRzU2VjdGlvbixcbn06IEFnZW50U2VsZWN0b3JWaXNpYmlsaXR5KTogYm9vbGVhbiA9PiB7XG4gIGlmIChoYXNFcnJvciB8fCBsb2FkaW5nIHx8IGhpZGVBZ2VudFNlbGVjdG9yKSByZXR1cm4gZmFsc2VcbiAgaWYgKCFoYXNTZWxlY3RlZEFnZW50ICYmICFpc0FnZW50c1NlY3Rpb24pIHJldHVybiBmYWxzZVxuICByZXR1cm4gISF3aW5kb3cuTUFJQV9DSEFUX0FJX0ZFQVRVUkVfQUNDRVNTX01VTFRJX0FHRU5UUyB8fCAhIXdpbmRvdy5NQUlBX0NIQVRfQUlfRkVBVFVSRV9BQ0NFU1Ncbn1cblxuZXhwb3J0IGNvbnN0IGRpc3BhdGNoT3BlbkNyZWF0ZUFnZW50TW9kYWwgPSAoKTogdm9pZCA9PiB7XG4gIGRvY3VtZW50LmRpc3BhdGNoRXZlbnQoXG4gICAgbmV3IEN1c3RvbUV2ZW50KCdhYm0tYWdlbnQtbW9kYWwtc2V0LXZhbHVlcycsIHtcbiAgICAgIGRldGFpbDoge1xuICAgICAgICBhZ2VudFZhbHVlczoge1xuICAgICAgICAgIHZhbHVlczoge1xuICAgICAgICAgICAgaXNFZGl0aW5nOiBmYWxzZSxcbiAgICAgICAgICB9LFxuICAgICAgICAgIGlzT3BlbjogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfSlcbiAgKVxufVxuIl0sIm1hcHBpbmdzIjoiQUFHQSxPQUFPLElBQU1BLFdBQVcsR0FBRyxTQUFkQSxXQUFXQSxDQUFJQyxLQUFZO0VBQUEsT0FBY0EsS0FBSyxDQUFDQyxJQUFJLEtBQUssY0FBYztBQUFBO0FBRW5GLE9BQU8sSUFBTUMsa0JBQWtCLEdBQUcsU0FBckJBLGtCQUFrQkEsQ0FBSUYsS0FBb0I7RUFBQSxPQUNyRCxDQUFDLEVBQUNBLEtBQUssYUFBTEEsS0FBSyxlQUFMQSxLQUFLLENBQUVHLFVBQVUsS0FBSSxDQUFDLEVBQUNILEtBQUssYUFBTEEsS0FBSyxlQUFMQSxLQUFLLENBQUVJLG1CQUFtQixLQUFJLENBQUMsRUFBQ0osS0FBSyxhQUFMQSxLQUFLLGVBQUxBLEtBQUssQ0FBRUssY0FBYztBQUFBOztBQUVoRjtBQUNBLE9BQU8sSUFBTUMsZUFBZSxHQUFHLFNBQWxCQSxlQUFlQSxDQUFJTixLQUFZLEVBQUVPLGtCQUEyQixFQUFjO0VBQ3JGLElBQUlMLGtCQUFrQixDQUFDRixLQUFLLENBQUMsSUFBSUEsS0FBSyxDQUFDQyxJQUFJLEtBQUssT0FBTyxJQUFJRixXQUFXLENBQUND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
@@ -0,0 +1,144 @@
1
+ import _defineProperty from "@babel/runtime/helpers/defineProperty";
2
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
3
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
4
+ import { agentNeedsEntity, canUserCreateAgents, dispatchOpenCreateAgentModal, getSectionLabelKey, isAgentUnavailable, isListableAgent, resolveDisplayedAgent, shouldShowAgentSelector, showsAgentEmoji } from './ChatAiModalHeader.utils';
5
+ var makeAgent = function makeAgent() {
6
+ var overrides = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
7
+ return _objectSpread({
8
+ id: 1,
9
+ name: 'Agent',
10
+ type: 'custom'
11
+ }, overrides);
12
+ };
13
+ describe('ChatAiModalHeader utils', function () {
14
+ afterEach(function () {
15
+ delete window.MAIA_CHAT_AI_FEATURE_ACCESS;
16
+ delete window.MAIA_CHAT_AI_FEATURE_ACCESS_MULTI_AGENTS;
17
+ });
18
+ it('isAgentUnavailable detects deleted, forbidden and inaccessible agents', function () {
19
+ expect(isAgentUnavailable(makeAgent())).toBe(false);
20
+ expect(isAgentUnavailable(makeAgent({
21
+ is_deleted: true
22
+ }))).toBe(true);
23
+ expect(isAgentUnavailable(makeAgent({
24
+ has_not_permissions: true
25
+ }))).toBe(true);
26
+ expect(isAgentUnavailable(makeAgent({
27
+ has_not_access: true
28
+ }))).toBe(true);
29
+ expect(isAgentUnavailable(null)).toBe(false);
30
+ });
31
+ it('isListableAgent excludes clone, MAIA and custom without multi-agents', function () {
32
+ expect(isListableAgent(makeAgent({
33
+ type: 'clone'
34
+ }), true)).toBe(false);
35
+ expect(isListableAgent(makeAgent({
36
+ type: 'orchestrator'
37
+ }), true)).toBe(false);
38
+ expect(isListableAgent(makeAgent({
39
+ type: 'custom'
40
+ }), false)).toBe(false);
41
+ expect(isListableAgent(makeAgent({
42
+ type: 'custom'
43
+ }), true)).toBe(true);
44
+ expect(isListableAgent(makeAgent({
45
+ type: 'custom',
46
+ is_deleted: true
47
+ }), true)).toBe(false);
48
+ });
49
+ it('showsAgentEmoji only for non legacy custom agents', function () {
50
+ expect(showsAgentEmoji(makeAgent())).toBe(true);
51
+ expect(showsAgentEmoji(makeAgent({
52
+ is_legacy_context: true
53
+ }))).toBe(false);
54
+ expect(showsAgentEmoji(makeAgent({
55
+ type: 'orchestrator'
56
+ }))).toBe(false);
57
+ });
58
+ it('agentNeedsEntity only for project/client clones', function () {
59
+ expect(agentNeedsEntity(makeAgent({
60
+ type: 'clone',
61
+ entity: 'project'
62
+ }))).toBe(true);
63
+ expect(agentNeedsEntity(makeAgent({
64
+ type: 'clone',
65
+ entity: 'client'
66
+ }))).toBe(true);
67
+ expect(agentNeedsEntity(makeAgent({
68
+ type: 'clone',
69
+ entity: 'global'
70
+ }))).toBe(false);
71
+ expect(agentNeedsEntity(makeAgent())).toBe(false);
72
+ });
73
+ it('resolveDisplayedAgent prefers the list version and falls back to the context agent', function () {
74
+ var selected = makeAgent({
75
+ name: 'from context'
76
+ });
77
+ var listed = makeAgent({
78
+ name: 'from list'
79
+ });
80
+ expect(resolveDisplayedAgent([listed], selected)).toBe(listed);
81
+ expect(resolveDisplayedAgent([], selected)).toBe(selected);
82
+ expect(resolveDisplayedAgent([], null)).toBeNull();
83
+ var fromConversation = makeAgent({
84
+ is_from_conversation: true
85
+ });
86
+ expect(resolveDisplayedAgent([listed], fromConversation)).toBe(fromConversation);
87
+ });
88
+ it('getSectionLabelKey maps the section to its translation key', function () {
89
+ expect(getSectionLabelKey(true, false)).toBe('marketplace.myAgentsTitle');
90
+ expect(getSectionLabelKey(false, true)).toBe('conversations.mySkillsNav');
91
+ expect(getSectionLabelKey(false, false)).toBeNull();
92
+ });
93
+ it('canUserCreateAgents requires the permission and the multi-agents feature', function () {
94
+ var user = {
95
+ permissions: {
96
+ ai_agents: {
97
+ create: true
98
+ }
99
+ }
100
+ };
101
+ expect(canUserCreateAgents(user)).toBe(false);
102
+ window.MAIA_CHAT_AI_FEATURE_ACCESS_MULTI_AGENTS = true;
103
+ expect(canUserCreateAgents(user)).toBe(true);
104
+ expect(canUserCreateAgents({})).toBe(false);
105
+ });
106
+ it('shouldShowAgentSelector hides on error/loading and without agent or feature access', function () {
107
+ var base = {
108
+ hasError: false,
109
+ loading: false,
110
+ hideAgentSelector: false,
111
+ hasSelectedAgent: true,
112
+ isAgentsSection: false
113
+ };
114
+ expect(shouldShowAgentSelector(base)).toBe(false);
115
+ window.MAIA_CHAT_AI_FEATURE_ACCESS = true;
116
+ expect(shouldShowAgentSelector(base)).toBe(true);
117
+ expect(shouldShowAgentSelector(_objectSpread(_objectSpread({}, base), {}, {
118
+ loading: true
119
+ }))).toBe(false);
120
+ expect(shouldShowAgentSelector(_objectSpread(_objectSpread({}, base), {}, {
121
+ hasSelectedAgent: false
122
+ }))).toBe(false);
123
+ expect(shouldShowAgentSelector(_objectSpread(_objectSpread({}, base), {}, {
124
+ hasSelectedAgent: false,
125
+ isAgentsSection: true
126
+ }))).toBe(true);
127
+ });
128
+ it('dispatchOpenCreateAgentModal emits the ABM open event', function () {
129
+ var listener = jest.fn();
130
+ document.addEventListener('abm-agent-modal-set-values', listener);
131
+ dispatchOpenCreateAgentModal();
132
+ expect(listener).toHaveBeenCalledTimes(1);
133
+ expect(listener.mock.calls[0][0].detail).toEqual({
134
+ agentValues: {
135
+ values: {
136
+ isEditing: false
137
+ },
138
+ isOpen: true
139
+ }
140
+ });
141
+ document.removeEventListener('abm-agent-modal-set-values', listener);
142
+ });
143
+ });
144
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJhZ2VudE5lZWRzRW50aXR5IiwiY2FuVXNlckNyZWF0ZUFnZW50cyIsImRpc3BhdGNoT3BlbkNyZWF0ZUFnZW50TW9kYWwiLCJnZXRTZWN0aW9uTGFiZWxLZXkiLCJpc0FnZW50VW5hdmFpbGFibGUiLCJpc0xpc3RhYmxlQWdlbnQiLCJyZXNvbHZlRGlzcGxheWVkQWdlbnQiLCJzaG91bGRTaG93QWdlbnRTZWxlY3RvciIsInNob3dzQWdlbnRFbW9qaSIsIm1ha2VBZ2VudCIsIm92ZXJyaWRlcyIsImFyZ3VtZW50cyIsImxlbmd0aCIsInVuZGVmaW5lZCIsIl9vYmplY3RTcHJlYWQiLCJpZCIsIm5hbWUiLCJ0eXBlIiwiZGVzY3JpYmUiLCJhZnRlckVhY2giLCJ3aW5kb3ciLCJNQUlBX0NIQVRfQUlfRkVBVFVSRV9BQ0NFU1MiLCJNQUlBX0NIQVRfQUlfRkVBVFVSRV9BQ0NFU1NfTVVMVElfQUdFTlRTIiwiaXQiLCJleHBlY3QiLCJ0b0JlIiwiaXNfZGVsZXRlZCIsImhhc19ub3RfcGVybWlzc2lvbnMiLCJoYXNfbm90X2FjY2VzcyIsImlzX2xlZ2FjeV9jb250ZXh0IiwiZW50aXR5Iiwic2VsZWN0ZWQiLCJsaXN0ZWQiLCJ0b0JlTnVsbCIsImZyb21Db252ZXJzYXRpb24iLCJpc19mcm9tX2NvbnZlcnNhdGlvbiIsInVzZXIiLCJwZXJtaXNzaW9ucyIsImFpX2FnZW50cyIsImNyZWF0ZSIsImJhc2UiLCJoYXNFcnJvciIsImxvYWRpbmciLCJoaWRlQWdlbnRTZWxlY3RvciIsImhhc1NlbGVjdGVkQWdlbnQiLCJpc0FnZW50c1NlY3Rpb24iLCJsaXN0ZW5lciIsImplc3QiLCJmbiIsImRvY3VtZW50IiwiYWRkRXZlbnRMaXN0ZW5lciIsInRvSGF2ZUJlZW5DYWxsZWRUaW1lcyIsIm1vY2siLCJjYWxscyIsImRldGFpbCIsInRvRXF1YWwiLCJhZ2VudFZhbHVlcyIsInZhbHVlcyIsImlzRWRpdGluZyIsImlzT3BlbiIsInJlbW92ZUV2ZW50TGlzdGVuZXIiXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50cy9tb2xlY3VsZXMvQ2hhdEFJTW9kYWwvY29tcG9uZW50cy9DaGF0QWlNb2RhbEhlYWRlci9DaGF0QWlNb2RhbEhlYWRlci51dGlscy5zcGVjLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgQ09SVXNlciB9IGZyb20gJy4uLy4uLy4uLy4uLy4uL2NvbnRleHQvY29yLXVzZXInXG5pbXBvcnQgeyBBZ2VudCB9IGZyb20gJy4uLy4uLy4uLy4uLy4uL3R5cGVzL2FnZW50J1xuaW1wb3J0IHtcbiAgYWdlbnROZWVkc0VudGl0eSxcbiAgY2FuVXNlckNyZWF0ZUFnZW50cyxcbiAgZGlzcGF0Y2hPcGVuQ3JlYXRlQWdlbnRNb2RhbCxcbiAgZ2V0U2VjdGlvbkxhYmVsS2V5LFxuICBpc0FnZW50VW5hdmFpbGFibGUsXG4gIGlzTGlzdGFibGVBZ2VudCxcbiAgcmVzb2x2ZURpc3BsYXllZEFnZW50LFxuICBzaG91bGRTaG93QWdlbnRTZWxlY3RvcixcbiAgc2hvd3NBZ2VudEVtb2ppLFxufSBmcm9tICcuL0NoYXRBaU1vZGFsSGVhZGVyLnV0aWxzJ1xuXG5jb25zdCBtYWtlQWdlbnQgPSAob3ZlcnJpZGVzOiBQYXJ0aWFsPEFnZW50PiA9IHt9KTogQWdlbnQgPT5cbiAgKHsgaWQ6IDEsIG5hbWU6ICdBZ2VudCcsIHR5cGU6ICdjdXN0b20nLCAuLi5vdmVycmlkZXMgfSkgYXMgQWdlbnRcblxuZGVzY3JpYmUoJ0NoYXRBaU1vZGFsSGVhZGVyIHV0aWxzJywgKCkgPT4ge1xuICBhZnRlckVhY2goKCkgPT4ge1xuICAgIGRlbGV0ZSB3aW5kb3cuTUFJQV9DSEFUX0FJX0ZFQVRVUkVfQUNDRVNTXG4gICAgZGVsZXRlIHdpbmRvdy5NQUlBX0NIQVRfQUlfRkVBVFVSRV9BQ0NFU1NfTVVMVElfQUdFTlRTXG4gIH0pXG5cbiAgaXQoJ2lzQWdlbnRVbmF2YWlsYWJsZSBkZXRlY3RzIGRlbGV0ZWQsIGZvcmJpZGRlbiBhbmQgaW5hY2Nlc3NpYmxlIGFnZW50cycsICgpID0+IHtcbiAgICBleHBlY3QoaXNBZ2VudFVuYXZhaWxhYmxlKG1ha2VBZ2VudCgpKSkudG9CZShmYWxzZSlcbiAgICBleHBlY3QoaXNBZ2VudFVuYXZhaWxhYmxlKG1ha2VBZ2VudCh7IGlzX2RlbGV0ZWQ6IHRydWUgfSkpKS50b0JlKHRydWUpXG4gICAgZXhwZWN0KGlzQWdlbnRVbmF2YWlsYWJsZShtYWtlQWdlbnQoeyBoYXNfbm90X3Blcm1pc3Npb25zOiB0cnVlIH0pKSkudG9CZSh0cnVlKVxuICAgIGV4cGVjdChpc0FnZW50VW5hdmFpbGFibGUobWFrZUFnZW50KHsgaGFzX25vdF9hY2Nlc3M6IHRydWUgfSkpKS50b0JlKHRydWUpXG4gICAgZXhwZWN0KGlzQWdlbnRVbmF2YWlsYWJsZShudWxsKSkudG9CZShmYWxzZSlcbiAgfSlcblxuICBpdCgnaXNMaXN0YWJsZUFnZW50IGV4Y2x1ZGVzIGNsb25lLCBNQUlBIGFuZCBjdXN0b20gd2l0aG91dCBtdWx0aS1hZ2VudHMnLCAoKSA9PiB7XG4gICAgZXhwZWN0KGlzTGlzdGFibGVBZ2VudChtYWtlQWdlbnQoeyB0eXBlOiAnY2xvbmUnIH0pLCB0cnVlKSkudG9CZShmYWxzZSlcbiAgICBleHBlY3QoaXNMaXN0YWJsZUFnZW50KG1ha2VBZ2VudCh7IHR5cGU6ICdvcmNoZXN0cmF0b3InIH0pLCB0cnVlKSkudG9CZShmYWxzZSlcbiAgICBleHBlY3QoaXNMaXN0YWJsZUFnZW50KG1ha2VBZ2VudCh7IHR5cGU6ICdjdXN0b20nIH0pLCBmYWxzZSkpLnRvQmUoZmFsc2UpXG4gICAgZXhwZWN0KGlzTGlzdGFibGVBZ2VudChtYWtlQWdlbnQoeyB0eXBlOiAnY3VzdG9tJyB9KSwgdHJ1ZSkpLnRvQmUodHJ1ZSlcbiAgICBleHBlY3QoaXNMaXN0YWJsZUFnZW50KG1ha2VBZ2VudCh7IHR5cGU6ICdjdXN0b20nLCBpc19kZWxldGVkOiB0cnVlIH0pLCB0cnVlKSkudG9CZShmYWxzZSlcbiAgfSlcblxuICBpdCgnc2hvd3NBZ2VudEVtb2ppIG9ubHkgZm9yIG5vbiBsZWdhY3kgY3VzdG9tIGFnZW50cycsICgpID0+IHtcbiAgICBleHBlY3Qoc2hvd3NBZ2VudEVtb2ppKG1ha2VBZ2VudCgpKSkudG9CZSh0cnVlKVxuICAgIGV4cGVjdChzaG93c0FnZW50RW1vamkobWFrZUFnZW50KHsgaXNfbGVnYWN5X2NvbnRleHQ6IHRydWUgfSkpKS50b0JlKGZhbHNlKVxuICAgIGV4cGVjdChzaG93c0FnZW50RW1vamkobWFrZUFnZW50KHsgdHlwZTogJ29yY2hlc3RyYXRvcicgfSkpKS50b0JlKGZhbHNlKVxuICB9KVxuXG4gIGl0KCdhZ2VudE5lZWRzRW50aXR5IG9ubHkgZm9yIHByb2plY3QvY2xpZW50IGNsb25lcycsICgpID0+IHtcbiAgICBleHBlY3QoYWdlbnROZWVkc0VudGl0eShtYWtlQWdlbnQoeyB0eXBlOiAnY2xvbmUnLCBlbnRpdHk6ICdwcm9qZWN0JyB9KSkpLnRvQmUodHJ1ZSlcbiAgICBleHBlY3QoYWdlbnROZWVkc0VudGl0eShtYWtlQWdlbnQoeyB0eXBlOiAnY2xvbmUnLCBlbnRpdHk6ICdjbGllbnQnIH0pKSkudG9CZSh0cnVlKVxuICAgIGV4cGVjdChhZ2VudE5lZWRzRW50aXR5KG1ha2VBZ2VudCh7IHR5cGU6ICdjbG9uZScsIGVudGl0eTogJ2dsb2JhbCcgfSkpKS50b0JlKGZhbHNlKVxuICAgIGV4cGVjdChhZ2VudE5lZWRzRW50aXR5KG1ha2VBZ2VudCgpKSkudG9CZShmYWxzZSlcbiAgfSlcblxuICBpdCgncmVzb2x2ZURpc3BsYXllZEFnZW50IHByZWZlcnMgdGhlIGxpc3QgdmVyc2lvbiBhbmQgZmFsbHMgYmFjayB0byB0aGUgY29udGV4dCBhZ2VudCcsICgpID0+IHtcbiAgICBjb25zdCBzZWxlY3RlZCA9IG1ha2VBZ2VudCh7IG5hbWU6ICdmcm9tIGNvbnRleHQnIH0pXG4gICAgY29uc3QgbGlzdGVkID0gbWFrZUFnZW50KHsgbmFtZTogJ2Zyb20gbGlzdCcgfSlcbiAgICBleHBlY3QocmVzb2x2ZURpc3BsYXllZEFnZW50KFtsaXN0ZWRdLCBzZWxlY3RlZCkpLnRvQmUobGlzdGVkKVxuICAgIGV4cGVjdChyZXNvbHZlRGlzcGxheWVkQWdlbnQoW10sIHNlbGVjdGVkKSkudG9CZShzZWxlY3RlZClcbiAgICBleHBlY3QocmVzb2x2ZURpc3BsYXllZEFnZW50KFtdLCBudWxsKSkudG9CZU51bGwoKVxuXG4gICAgY29uc3QgZnJvbUNvbnZlcnNhdGlvbiA9IG1ha2VBZ2VudCh7IGlzX2Zyb21fY29udmVyc2F0aW9uOiB0cnVlIH0pXG4gICAgZXhwZWN0KHJlc29sdmVEaXNwbGF5ZWRBZ2VudChbbGlzdGVkXSwgZnJvbUNvbnZlcnNhdGlvbikpLnRvQmUoZnJvbUNvbnZlcnNhdGlvbilcbiAgfSlcblxuICBpdCgnZ2V0U2VjdGlvbkxhYmVsS2V5IG1hcHMgdGhlIHNlY3Rpb24gdG8gaXRzIHRyYW5zbGF0aW9uIGtleScsICgpID0+IHtcbiAgICBleHBlY3QoZ2V0U2VjdGlvbkxhYmVsS2V5KHRydWUsIGZhbHNlKSkudG9CZSgnbWFya2V0cGxhY2UubXlBZ2VudHNUaXRsZScpXG4gICAgZXhwZWN0KGdldFNlY3Rpb25MYWJlbEtleShmYWxzZSwgdHJ1ZSkpLnRvQmUoJ2NvbnZlcnNhdGlvbnMubXlTa2lsbHNOYXYnKVxuICAgIGV4cGVjdChnZXRTZWN0aW9uTGFiZWxLZXkoZmFsc2UsIGZhbHNlKSkudG9CZU51bGwoKVxuICB9KVxuXG4gIGl0KCdjYW5Vc2VyQ3JlYXRlQWdlbnRzIHJlcXVpcmVzIHRoZSBwZXJtaXNzaW9uIGFuZCB0aGUgbXVsdGktYWdlbnRzIGZlYXR1cmUnLCAoKSA9PiB7XG4gICAgY29uc3QgdXNlciA9IHsgcGVybWlzc2lvbnM6IHsgYWlfYWdlbnRzOiB7IGNyZWF0ZTogdHJ1ZSB9IH0gfSBhcyB1bmtub3duIGFzIENPUlVzZXJcbiAgICBleHBlY3QoY2FuVXNlckNyZWF0ZUFnZW50cyh1c2VyKSkudG9CZShmYWxzZSlcbiAgICB3aW5kb3cuTUFJQV9DSEFUX0FJX0ZFQVRVUkVfQUNDRVNTX01VTFRJX0FHRU5UUyA9IHRydWVcbiAgICBleHBlY3QoY2FuVXNlckNyZWF0ZUFnZW50cyh1c2VyKSkudG9CZSh0cnVlKVxuICAgIGV4cGVjdChjYW5Vc2VyQ3JlYXRlQWdlbnRzKHt9IGFzIENPUlVzZXIpKS50b0JlKGZhbHNlKVxuICB9KVxuXG4gIGl0KCdzaG91bGRTaG93QWdlbnRTZWxlY3RvciBoaWRlcyBvbiBlcnJvci9sb2FkaW5nIGFuZCB3aXRob3V0IGFnZW50IG9yIGZlYXR1cmUgYWNjZXNzJywgKCkgPT4ge1xuICAgIGNvbnN0IGJhc2UgPSB7XG4gICAgICBoYXNFcnJvcjogZmFsc2UsXG4gICAgICBsb2FkaW5nOiBmYWxzZSxcbiAgICAgIGhpZGVBZ2VudFNlbGVjdG9yOiBmYWxzZSxcbiAgICAgIGhhc1NlbGVjdGVkQWdlbnQ6IHRydWUsXG4gICAgICBpc0FnZW50c1NlY3Rpb246IGZhbHNlLFxuICAgIH1cbiAgICBleHBlY3Qoc2hvdWxkU2hvd0FnZW50U2VsZWN0b3IoYmFzZSkpLnRvQmUoZmFsc2UpXG4gICAgd2luZG93Lk1BSUFfQ0hBVF9BSV9GRUFUVVJFX0FDQ0VTUyA9IHRydWVcbiAgICBleHBlY3Qoc2hvdWxkU2hvd0FnZW50U2VsZWN0b3IoYmFzZSkpLnRvQmUodHJ1ZSlcbiAgICBleHBlY3Qoc2hvdWxkU2hvd0FnZW50U2VsZWN0b3IoeyAuLi5iYXNlLCBsb2FkaW5nOiB0cnVlIH0pKS50b0JlKGZhbHNlKVxuICAgIGV4cGVjdChzaG91bGRTaG93QWdlbnRTZWxlY3Rvcih7IC4uLmJhc2UsIGhhc1NlbGVjdGVkQWdlbnQ6IGZhbHNlIH0pKS50b0JlKGZhbHNlKVxuICAgIGV4cGVjdChzaG91bGRTaG93QWdlbnRTZWxlY3Rvcih7IC4uLmJhc2UsIGhhc1NlbGVjdGVkQWdlbnQ6IGZhbHNlLCBpc0FnZW50c1NlY3Rpb246IHRydWUgfSkpLnRvQmUodHJ1ZSlcbiAgfSlcblxuICBpdCgnZGlzcGF0Y2hPcGVuQ3JlYXRlQWdlbnRNb2RhbCBlbWl0cyB0aGUgQUJNIG9wZW4gZXZlbnQnLCAoKSA9PiB7XG4gICAgY29uc3QgbGlzdGVuZXIgPSBqZXN0LmZuKClcbiAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdhYm0tYWdlbnQtbW9kYWwtc2V0LXZhbHVlcycsIGxpc3RlbmVyKVxuICAgIGRpc3BhdGNoT3BlbkNyZWF0ZUFnZW50TW9kYWwoKVxuICAgIGV4cGVjdChsaXN0ZW5lcikudG9IYXZlQmVlbkNhbGxlZFRpbWVzKDEpXG4gICAgZXhwZWN0KChsaXN0ZW5lci5tb2NrLmNhbGxzWzBdWzBdIGFzIEN1c3RvbUV2ZW50KS5kZXRhaWwpLnRvRXF1YWwoe1xuICAgICAgYWdlbnRWYWx1ZXM6IHsgdmFsdWVzOiB7IGlzRWRpdGluZzogZmFsc2UgfSwgaXNPcGVuOiB0cnVlIH0sXG4gICAgfSlcbiAgICBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdhYm0tYWdlbnQtbW9kYWwtc2V0LXZhbHVlcycsIGxpc3RlbmVyKVxuICB9KVxufSlcbiJdLCJtYXBwaW5ncyI6Ijs7O0FBRUEsU0FDRUEsZ0JBQWdCLEVBQ2hCQyxtQkFBbUIsRUFDbkJDLDRCQUE0QixFQUM1QkMsa0JBQWtCLEVBQ2xCQyxrQkFBa0IsRUFDbEJDLGVBQWUsRUFDZkMscUJBQXFCLEVBQ3JCQyx1QkFBdUIsRUFDdkJDLGVBQWUsUUFDViwyQkFBMkI7QUFFbEMsSUFBTUMsU0FBUyxHQUFHLFNBQVpBLFNBQVNBLENBQUE7RUFBQSxJQUFJQyxTQUF5QixHQUFBQyxTQUFBLENBQUFDLE1BQUEsUUFBQUQsU0FBQSxRQUFBRSxTQUFBLEdBQUFGLFNBQUEsTUFBRyxDQUFDLENBQUM7RUFBQSxPQUFBRyxhQUFBO0lBQzVDQyxFQUFFLEVBQUUsQ0FBQztJQUFFQyxJQUFJLEVBQUUsT0FBTztJQUFFQyxJQUFJLEVBQUU7RUFBUSxHQUFLUCxTQUFTO0FBQUEsQ0FBWTtBQUVuRVEsUUFBUSxDQUFDLHlCQUF5QixFQUFFLFlBQU07RUFDeENDLFNBQVMsQ0FBQyxZQUFNO0lBQ2QsT0FBT0MsTUFB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Q0FBQztJQUNEckIsTUFBTSxDQUFDakIsdUJBQXVCLENBQUNpQyxJQUFJLENBQUMsQ0FBQyxDQUFDZixJQUFJLENBQUMsS0FBSyxDQUFDO0lBQ2pETCxNQUFNLENBQUNDLDJCQUEyQixHQUFHLElBQUk7SUFDekNHLE1BQU0sQ0FBQ2pCLHVCQUF1QixDQUFDaUMsSUFBSSxDQUFDLENBQUMsQ0FBQ2YsSUFBSSxDQUFDLElBQUksQ0FBQztJQUNoREQsTUFBTSxDQUFDakIsdUJBQXVCLENBQUFPLGFBQUEsQ0FBQUEsYUFBQSxLQUFNMEIsSUFBSTtNQUFFRSxPQUFPLEVBQUU7SUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDakIsSUFBSSxDQUFDLEtBQUssQ0FBQztJQUN2RUQsTUFBTSxDQUFDakIsdUJBQXVCLENBQUFPLGFBQUEsQ0FBQUEsYUFBQSxLQUFNMEIsSUFBSTtNQUFFSSxnQkFBZ0IsRUFBRTtJQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUNuQixJQUFJLENBQUMsS0FBSyxDQUFDO0lBQ2pGRCxNQUFNLENBQUNqQix1QkFBdUIsQ0FBQU8sYUFBQSxDQUFBQSxhQUFBLEtBQU0wQixJQUFJO01BQUVJLGdCQUFnQixFQUFFLEtBQUs7TUFBRUMsZUFBZSxFQUFFO0lBQUksRUFBRSxDQUFDLENBQUMsQ0FBQ3BCLElBQUksQ0FBQyxJQUFJLENBQUM7RUFDekcsQ0FBQyxDQUFDO0VBRUZGLEVBQUUsQ0FBQyx1REFBdUQsRUFBRSxZQUFNO0lBQ2hFLElBQU11QixRQUFRLEdBQUdDLElBQUksQ0FBQ0MsRUFBRSxDQUFDLENBQUM7SUFDMUJDLFFBQVEsQ0FBQ0MsZ0JBQWdCLENBQUMsNEJBQTRCLEVBQUVKLFFBQVEsQ0FBQztJQUNqRTVDLDRCQUE0QixDQUFDLENBQUM7SUFDOUJzQixNQUFNLENBQUNzQixRQUFRLENBQUMsQ0FBQ0sscUJBQXFCLENBQUMsQ0FBQyxDQUFDO0lBQ3pDM0IsTUFBTSxDQUFFc0IsUUFBUSxDQUFDTSxJQUFJLENBQUNDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBaUJDLE1BQU0sQ0FBQyxDQUFDQyxPQUFPLENBQUM7TUFDaEVDLFdBQVcsRUFBRTtRQUFFQyxNQUFNLEVBQUU7VUFBRUMsU0FBUyxFQUFFO1FBQU0sQ0FBQztRQUFFQyxNQUFNLEVBQUU7TUFBSztJQUM1RCxDQUFDLENBQUM7SUFDRlYsUUFBUSxDQUFDVyxtQkFBbUIsQ0FBQyw0QkFBNEIsRUFBRWQsUUFBUSxDQUFDO0VBQ3RFLENBQUMsQ0FBQztBQUNKLENBQUMsQ0FBQyIsImlnbm9yZUxpc3QiOltdfQ==
@@ -0,0 +1,95 @@
1
+ import { useEffect, useRef } from 'react';
2
+ import { Plus } from '@projectcor/icons/lib/components/Plus';
3
+ import { useTranslation } from 'react-i18next';
4
+ import { SECTIONS } from '../../../../../constants/config';
5
+ import { Loader } from '../../../../atoms/Loader';
6
+ import { ChatAIAgentOption } from '../ChatAiAgentOptions/ChatAiAgentOptions';
7
+ import { SCCAIMHAddAgent, SCCAIMHAgentsList, SCCAIMHDivider, SCCAIMHLoaderWrapper, SCCAIMHPlusIconWrapper, SCCAIMHWrapperModal, SCCAIMHWrapperModalContent, SCCAIMHWrapperModalContentTitle } from './ChatAiModalHeader.styles';
8
+ import { isListableAgent, isMaiaAgent } from './ChatAiModalHeader.utils';
9
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
10
+ export var ChatAiModalHeaderAgentDropdown = function ChatAiModalHeaderAgentDropdown(_ref) {
11
+ var agents = _ref.agents,
12
+ selectedAgentId = _ref.selectedAgentId,
13
+ companyName = _ref.companyName,
14
+ showMaiaAgents = _ref.showMaiaAgents,
15
+ showAddAgent = _ref.showAddAgent,
16
+ hasMore = _ref.hasMore,
17
+ loadingMore = _ref.loadingMore,
18
+ loadMoreAgents = _ref.loadMoreAgents,
19
+ onSelectAgent = _ref.onSelectAgent,
20
+ onAgentUpdate = _ref.onAgentUpdate,
21
+ onClose = _ref.onClose,
22
+ onAddAgent = _ref.onAddAgent;
23
+ var _useTranslation = useTranslation([SECTIONS.abmAgent, SECTIONS.chatAI]),
24
+ t = _useTranslation.t;
25
+ var agentsRef = useRef(null);
26
+ var multiAgentsEnabled = !!window.MAIA_CHAT_AI_FEATURE_ACCESS_MULTI_AGENTS;
27
+ var maiaAgents = showMaiaAgents ? agents.filter(isMaiaAgent) : [];
28
+ var showCustomTitle = multiAgentsEnabled && agents.some(function (agent) {
29
+ return agent.type === 'custom';
30
+ });
31
+
32
+ // Scroll infinito: cargar más agentes 50px antes del final de la lista
33
+ useEffect(function () {
34
+ var scrollElement = agentsRef.current;
35
+ if (!scrollElement || !loadMoreAgents || !hasMore || loadingMore) return undefined;
36
+ var handleScroll = function handleScroll() {
37
+ var scrollTop = scrollElement.scrollTop,
38
+ scrollHeight = scrollElement.scrollHeight,
39
+ clientHeight = scrollElement.clientHeight;
40
+ if (scrollHeight - scrollTop - clientHeight < 50) {
41
+ loadMoreAgents();
42
+ }
43
+ };
44
+ scrollElement.addEventListener('scroll', handleScroll);
45
+ return function () {
46
+ scrollElement.removeEventListener('scroll', handleScroll);
47
+ };
48
+ }, [loadMoreAgents, hasMore, loadingMore]);
49
+ return /*#__PURE__*/_jsx(SCCAIMHWrapperModal, {
50
+ children: /*#__PURE__*/_jsxs(SCCAIMHWrapperModalContent, {
51
+ children: [maiaAgents.map(function (maiaAgent, index) {
52
+ return /*#__PURE__*/_jsx(ChatAIAgentOption, {
53
+ agent: maiaAgent,
54
+ index: index,
55
+ handleSelectAgent: onSelectAgent,
56
+ isSelected: selectedAgentId === maiaAgent.id,
57
+ isMaia: true,
58
+ onFavoriteToggle: onAgentUpdate
59
+ }, "agent-".concat(maiaAgent.id));
60
+ }), showCustomTitle ? /*#__PURE__*/_jsxs(_Fragment, {
61
+ children: [/*#__PURE__*/_jsxs(SCCAIMHWrapperModalContentTitle, {
62
+ children: [t('agents'), " by ", companyName]
63
+ }), /*#__PURE__*/_jsx(SCCAIMHDivider, {})]
64
+ }) : null, /*#__PURE__*/_jsxs(SCCAIMHAgentsList, {
65
+ hasMore: hasMore,
66
+ agentsCount: agents.length,
67
+ ref: agentsRef,
68
+ children: [agents.map(function (agent, index) {
69
+ return isListableAgent(agent, multiAgentsEnabled) ? /*#__PURE__*/_jsx(ChatAIAgentOption, {
70
+ agent: agent,
71
+ index: index,
72
+ handleSelectAgent: onSelectAgent,
73
+ isSelected: selectedAgentId === agent.id,
74
+ onFavoriteToggle: onAgentUpdate,
75
+ setIsExpanded: onClose
76
+ }, "agent-".concat(agent.id)) : null;
77
+ }), loadingMore ? /*#__PURE__*/_jsx(SCCAIMHLoaderWrapper, {
78
+ children: /*#__PURE__*/_jsx(Loader, {
79
+ size: "small"
80
+ })
81
+ }) : null]
82
+ }), showAddAgent ? /*#__PURE__*/_jsxs(SCCAIMHAddAgent, {
83
+ onClick: onAddAgent,
84
+ children: [/*#__PURE__*/_jsx(SCCAIMHPlusIconWrapper, {
85
+ children: /*#__PURE__*/_jsx(Plus, {
86
+ color: "white",
87
+ width: 18,
88
+ height: 18
89
+ })
90
+ }), t('createAgent')]
91
+ }) : null]
92
+ })
93
+ });
94
+ };
95
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VFZmZlY3QiLCJ1c2VSZWYiLCJQbHVzIiwidXNlVHJhbnNsYXRpb24iLCJTRUNUSU9OUyIsIkxvYWRlciIsIkNoYXRBSUFnZW50T3B0aW9uIiwiU0NDQUlNSEFkZEFnZW50IiwiU0NDQUlNSEFnZW50c0xpc3QiLCJTQ0NBSU1IRGl2aWRlciIsIlNDQ0FJTUhMb2FkZXJXcmFwcGVyIiwiU0NDQUlNSFBsdXNJY29uV3JhcHBlciIsIlNDQ0FJTUhXcmFwcGVyTW9kYWwiLCJTQ0NBSU1IV3JhcHBlck1vZGFsQ29udGVudCIsIlNDQ0FJTUhXcmFwcGVyTW9kYWxDb250ZW50VGl0bGUiLCJpc0xpc3RhYmxlQWdlbnQiLCJpc01haWFBZ2VudCIsImpzeCIsIl9qc3giLCJqc3hzIiwiX2pzeHMiLCJGcmFnbWVudCIsIl9GcmFnbWVudCIsIkNoYXRBaU1vZGFsSGVhZGVyQWdlbnREcm9wZG93biIsIl9yZWYiLCJhZ2VudHMiLCJzZWxlY3RlZEFnZW50SWQiLCJjb21wYW55TmFtZSIsInNob3dNYWlhQWdlbnRzIiwic2hvd0FkZEFnZW50IiwiaGFzTW9yZSIsImxvYWRpbmdNb3JlIiwibG9hZE1vcmVBZ2VudHMiLCJvblNlbGVjdEFnZW50Iiwib25BZ2VudFVwZGF0ZSIsIm9uQ2xvc2UiLCJvbkFkZEFnZW50IiwiX3VzZVRyYW5zbGF0aW9uIiwiYWJtQWdlbnQiLCJjaGF0QUkiLCJ0IiwiYWdlbnRzUmVmIiwibXVsdGlBZ2VudHNFbmFibGVkIiwid2luZG93IiwiTUFJQV9DSEFUX0FJX0ZFQVRVUkVfQUNDRVNTX01VTFRJX0FHRU5UUyIsIm1haWFBZ2VudHMiLCJmaWx0ZXIiLCJzaG93Q3VzdG9tVGl0bGUiLCJzb21lIiwiYWdlbnQiLCJ0eXBlIiwic2Nyb2xsRWxlbWVudCIsImN1cnJlbnQiLCJ1bmRlZmluZWQiLCJoYW5kbGVTY3JvbGwiLCJzY3JvbGxUb3AiLCJzY3JvbGxIZWlnaHQiLCJjbGllbnRIZWlnaHQiLCJhZGRFdmVudExpc3RlbmVyIiwicmVtb3ZlRXZlbnRMaXN0ZW5lciIsImNoaWxkcmVuIiwibWFwIiwibWFpYUFnZW50IiwiaW5kZXgiLCJoYW5kbGVTZWxlY3RBZ2VudCIsImlzU2VsZWN0ZWQiLCJpZCIsImlzTWFpYSIsIm9uRmF2b3JpdGVUb2dnbGUiLCJjb25jYXQiLCJhZ2VudHNDb3VudCIsImxlbmd0aCIsInJlZiIsInNldElzRXhwYW5kZWQiLCJzaXplIiwib25DbGljayIsImNvbG9yIiwid2lkdGgiLCJoZWlnaHQiXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50cy9tb2xlY3VsZXMvQ2hhdEFJTW9kYWwvY29tcG9uZW50cy9DaGF0QWlNb2RhbEhlYWRlci9DaGF0QWlNb2RhbEhlYWRlckFnZW50RHJvcGRvd24udHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHVzZUVmZmVjdCwgdXNlUmVmIH0gZnJvbSAncmVhY3QnXG5pbXBvcnQgeyBQbHVzIH0gZnJvbSAnQHByb2plY3Rjb3IvaWNvbnMvbGliL2NvbXBvbmVudHMvUGx1cydcbmltcG9ydCB7IHVzZVRyYW5zbGF0aW9uIH0gZnJvbSAncmVhY3QtaTE4bmV4dCdcbmltcG9ydCB7IFNFQ1RJT05TIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vY29uc3RhbnRzL2NvbmZpZydcbmltcG9ydCB7IEFnZW50IH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vdHlwZXMvYWdlbnQnXG5pbXBvcnQgeyBMb2FkZXIgfSBmcm9tICcuLi8uLi8uLi8uLi9hdG9tcy9Mb2FkZXInXG5pbXBvcnQgeyBDaGF0QUlBZ2VudE9wdGlvbiB9IGZyb20gJy4uL0NoYXRBaUFnZW50T3B0aW9ucy9DaGF0QWlBZ2VudE9wdGlvbnMnXG5pbXBvcnQge1xuICBTQ0NBSU1IQWRkQWdlbnQsXG4gIFNDQ0FJTUhBZ2VudHNMaXN0LFxuICBTQ0NBSU1IRGl2aWRlcixcbiAgU0NDQUlNSExvYWRlcldyYXBwZXIsXG4gIFNDQ0FJTUhQbHVzSWNvbldyYXBwZXIsXG4gIFNDQ0FJTUhXcmFwcGVyTW9kYWwsXG4gIFNDQ0FJTUhXcmFwcGVyTW9kYWxDb250ZW50LFxuICBTQ0NBSU1IV3JhcHBlck1vZGFsQ29udGVudFRpdGxlLFxufSBmcm9tICcuL0NoYXRBaU1vZGFsSGVhZGVyLnN0eWxlcydcbmltcG9ydCB7IGlzTGlzdGFibGVBZ2VudCwgaXNNYWlhQWdlbnQgfSBmcm9tICcuL0NoYXRBaU1vZGFsSGVhZGVyLnV0aWxzJ1xuXG50eXBlIENoYXRBaU1vZGFsSGVhZGVyQWdlbnREcm9wZG93blByb3BzID0ge1xuICBhZ2VudHM6IEFnZW50W11cbiAgc2VsZWN0ZWRBZ2VudElkPzogQWdlbnRbJ2lkJ11cbiAgY29tcGFueU5hbWU/OiBzdHJpbmdcbiAgc2hvd01haWFBZ2VudHM6IGJvb2xlYW5cbiAgc2hvd0FkZEFnZW50OiBib29sZWFuXG4gIGhhc01vcmU6IGJvb2xlYW5cbiAgbG9hZGluZ01vcmU6IGJvb2xlYW5cbiAgbG9hZE1vcmVBZ2VudHM/OiAoKSA9PiB2b2lkXG4gIG9uU2VsZWN0QWdlbnQ6IChhZ2VudDogQWdlbnQpID0+IHZvaWRcbiAgb25BZ2VudFVwZGF0ZT86ICh1cGRhdGVkQWdlbnQ6IEFnZW50KSA9PiB2b2lkXG4gIG9uQ2xvc2U6ICgpID0+IHZvaWRcbiAgb25BZGRBZ2VudDogKCkgPT4gdm9pZFxufVxuXG5leHBvcnQgY29uc3QgQ2hhdEFpTW9kYWxIZWFkZXJBZ2VudERyb3Bkb3duID0gKHtcbiAgYWdlbnRzLFxuICBzZWxlY3RlZEFnZW50SWQsXG4gIGNvbXBhbnlOYW1lLFxuICBzaG93TWFpYUFnZW50cyxcbiAgc2hvd0FkZEFnZW50LFxuICBoYXNNb3JlLFxuICBsb2FkaW5nTW9yZSxcbiAgbG9hZE1vcmVBZ2VudHMsXG4gIG9uU2VsZWN0QWdlbnQsXG4gIG9uQWdlbnRVcGRhdGUsXG4gIG9uQ2xvc2UsXG4gIG9uQWRkQWdlbnQsXG59OiBDaGF0QWlNb2RhbEhlYWRlckFnZW50RHJvcGRvd25Qcm9wcykgPT4ge1xuICBjb25zdCB7IHQgfSA9IHVzZVRyYW5zbGF0aW9uKFtTRUNUSU9OUy5hYm1BZ2VudCwgU0VDVElPTlMuY2hhdEFJXSlcbiAgY29uc3QgYWdlbnRzUmVmID0gdXNlUmVmPEhUTUxEaXZFbGVtZW50PihudWxsKVxuICBjb25zdCBtdWx0aUFnZW50c0VuYWJsZWQgPSAhIXdpbmRvdy5NQUlBX0NIQVRfQUlfRkVBVFVSRV9BQ0NFU1NfTVVMVElfQUdFTlRTXG4gIGNvbnN0IG1haWFBZ2VudHMgPSBzaG93TWFpYUFnZW50cyA/IGFnZW50cy5maWx0ZXIoaXNNYWlhQWdlbnQpIDogW11cbiAgY29uc3Qgc2hvd0N1c3RvbVRpdGxlID0gbXVsdGlBZ2VudHNFbmFibGVkICYmIGFnZW50cy5zb21lKGFnZW50ID0+IGFnZW50LnR5cGUgPT09ICdjdXN0b20nKVxuXG4gIC8vIFNjcm9sbCBpbmZpbml0bzogY2FyZ2FyIG3DoXMgYWdlbnRlcyA1MHB4IGFudGVzIGRlbCBmaW5hbCBkZSBsYSBsaXN0YVxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGNvbnN0IHNjcm9sbEVsZW1lbnQgPSBhZ2VudHNSZWYuY3VycmVudFxuICAgIGlmICghc2Nyb2xsRWxlbWVudCB8fCAhbG9hZE1vcmVBZ2VudHMgfHwgIWhhc01vcmUgfHwgbG9hZGluZ01vcmUpIHJldHVybiB1bmRlZmluZWRcblxuICAgIGNvbnN0IGhhbmRsZVNjcm9sbCA9ICgpID0+IHtcbiAgICAgIGNvbnN0IHsgc2Nyb2xsVG9wLCBzY3JvbGxIZWlnaHQsIGNsaWVudEhlaWdodCB9ID0gc2Nyb2xsRWxlbWVudFxuICAgICAgaWYgKHNjcm9sbEhlaWdodCAtIHNjcm9sbFRvcCAtIGNsaWVudEhlaWdodCA8IDUwKSB7XG4gICAgICAgIGxvYWRNb3JlQWdlbnRzKClcbiAgICAgIH1cbiAgICB9XG5cbiAgICBzY3JvbGxFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ3Njcm9sbCcsIGhhbmRsZVNjcm9sbClcbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgc2Nyb2xsRWxlbWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdzY3JvbGwnLCBoYW5kbGVTY3JvbGwpXG4gICAgfVxuICB9LCBbbG9hZE1vcmVBZ2VudHMsIGhhc01vcmUsIGxvYWRpbmdNb3JlXSlcblxuICByZXR1cm4gKFxuICAgIDxTQ0NBSU1IV3JhcHBlck1vZGFsPlxuICAgICAgPFNDQ0FJTUhXcmFwcGVyTW9kYWxDb250ZW50PlxuICAgICAgICB7bWFpYUFnZW50cy5tYXAoKG1haWFBZ2VudCwgaW5kZXgpID0+IChcbiAgICAgICAgICA8Q2hhdEFJQWdlbnRPcHRpb25cbiAgICAgICAgICAgIGtleT17YGFnZW50LSR7bWFpYUFnZW50LmlkfWB9XG4gICAgICAgICAgICBhZ2VudD17bWFpYUFnZW50fVxuICAgICAgICAgICAgaW5kZXg9e2luZGV4fVxuICAgICAgICAgICAgaGFuZGxlU2VsZWN0QWdlbnQ9e29uU2VsZWN0QWdlbnR9XG4gICAgICAgICAgICBpc1NlbGVjdGVkPXtzZWxlY3RlZEFnZW50SWQgPT09IG1haWFBZ2VudC5pZH1cbiAgICAgICAgICAgIGlzTWFpYVxuICAgICAgICAgICAgb25GYXZvcml0ZVRvZ2dsZT17b25BZ2VudFVwZGF0ZX1cbiAgICAgICAgICAvPlxuICAgICAgICApKX1cbiAgICAgICAge3Nob3dDdXN0b21UaXRsZSA/IChcbiAgICAgICAgICA8PlxuICAgICAgICAgICAgPFNDQ0FJTUhXcmFwcGVyTW9kYWxDb250ZW50VGl0bGU+XG4gICAgICAgICAgICAgIHt0KCdhZ2VudHMnKX0gYnkge2NvbXBhbnlOYW1lfVxuICAgICAgICAgICAgPC9TQ0NBSU1IV3JhcHBlck1vZGFsQ29udGVudFRpdGxlPlxuICAgICAgICAgICAgPFNDQ0FJTUhEaXZpZGVyIC8+XG4gICAgICAgICAgPC8+XG4gICAgICAgICkgOiBudWxsfVxuICAgICAgICA8U0NDQUlNSEFnZW50c0xpc3QgaGFzTW9yZT17aGFzTW9yZX0gYWdlbnRzQ291bnQ9e2FnZW50cy5sZW5ndGh9IHJlZj17YWdlbnRzUmVmfT5cbiAgICAgICAgICB7YWdlbnRzLm1hcCgoYWdlbnQsIGluZGV4KSA9PlxuICAgICAgICAgICAgaXNMaXN0YWJsZUFnZW50KGFnZW50LCBtdWx0aUFnZW50c0VuYWJsZWQpID8gKFxuICAgICAgICAgICAgICA8Q2hhdEFJQWdlbnRPcHRpb25cbiAgICAgICAgICAgICAgICBrZXk9e2BhZ2VudC0ke2FnZW50LmlkfWB9XG4gICAgICAgICAgICAgICAgYWdlbnQ9e2FnZW50fVxuICAgICAgICAgICAgICAgIGluZGV4PXtpbmRleH1cbiAgICAgICAgICAgICAgICBoYW5kbGVTZWxlY3RBZ2VudD17b25TZWxlY3RBZ2VudH1cbiAgICAgICAgICAgICAgICBpc1NlbGVjdGVkPXtzZWxlY3RlZEFnZW50SWQgPT09IGFnZW50LmlkfVxuICAgICAgICAgICAgICAgIG9uRmF2b3JpdGVUb2dnbGU9e29uQWdlbnRVcGRhdGV9XG4gICAgICAgICAgICAgICAgc2V0SXNFeHBhbmRlZD17b25DbG9zZX1cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICkgOiBudWxsXG4gICAgICAgICAgKX1cbiAgICAgICAgICB7bG9hZGluZ01vcmUgPyAoXG4gICAgICAgICAgICA8U0NDQUlNSExvYWRlcldyYXBwZXI+XG4gICAgICAgICAgICAgIDxMb2FkZXIgc2l6ZT1cInNtYWxsXCIgLz5cbiAgICAgICAgICAgIDwvU0NDQUlNSExvYWRlcldyYXBwZXI+XG4gICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgIDwvU0NDQUlNSEFnZW50c0xpc3Q+XG4gICAgICAgIHtzaG93QWRkQWdlbnQgPyAoXG4gICAgICAgICAgPFNDQ0FJTUhBZGRBZ2VudCBvbkNsaWNrPXtvbkFkZEFnZW50fT5cbiAgICAgICAgICAgIDxTQ0NBSU1IUGx1c0ljb25XcmFwcGVyPlxuICAgICAgICAgICAgICA8UGx1cyBjb2xvcj1cIndoaXRlXCIgd2lkdGg9ezE4fSBoZWlnaHQ9ezE4fSAvPlxuICAgICAgICAgICAgPC9TQ0NBSU1IUGx1c0ljb25XcmFwcGVyPlxuICAgICAgICAgICAge3QoJ2NyZWF0ZUFnZW50Jyl9XG4gICAgICAgICAgPC9TQ0NBSU1IQWRkQWdlbnQ+XG4gICAgICAgICkgOiBudWxsfVxuICAgICAgPC9TQ0NBSU1IV3JhcHBlck1vZGFsQ29udGVudD5cbiAgICA8L1NDQ0FJTUhXcmFwcGVyTW9kYWw+XG4gIClcbn1cbiJdLCJtYXBwaW5ncyI6IkFBQUEsU0FBU0EsU0FBUyxFQUFFQyxNQUFNLFFBQVEsT0FBTztBQUN6QyxTQUFTQyxJQUFJLFFBQVEsdUNBQXVDO0FBQzVELFNBQVNDLGNBQWMsUUFBUSxlQUFlO0FBQzlDLFNBQVNDLFFBQVEsUUFBUSxpQ0FBaUM7QUFFMUQsU0FBU0MsTUFBTSxRQUFRLDBCQUEwQjtBQUNqRCxTQUFTQyxpQkFBaUIsUUFBUSwwQ0FBMEM7QUFDNUUsU0FDRUMsZUFBZSxFQUNmQyxpQkFBaUIsRUFDakJDLGNBQWMsRUFDZEMsb0JBQW9CLEVBQ3BCQyxzQkFBc0IsRUFDdEJDLG1CQUFtQixFQUNuQkMsMEJBQTBCLEVBQzFCQywrQkFBK0IsUUFDMUIsNEJBQTRCO0FBQ25DLFNBQVNDLGVBQWUsRUFBRUMsV0FBVyxRQUFRLDJCQUEyQjtBQUFBLFNBQUFDLEdBQUEsSUFBQUMsSUFBQSxFQUFBQyxJQUFBLElBQUFDLEtBQUEsRUFBQUMsUUFBQSxJQUFBQyxTQUFBO0FBaUJ4RSxPQUFPLElBQU1DLDhCQUE4QixHQUFHLFNBQWpDQSw4QkFBOEJBLENBQUFDLElBQUEsRUFhQTtFQUFBLElBWnpDQyxNQUFNLEdBQUFELElBQUEsQ0FBTkMsTUFBTTtJQUNOQyxlQUFlLEdBQUFGLElBQUEsQ0FBZkUsZUFBZTtJQUNmQyxXQUFXLEdBQUFILElBQUEsQ0FBWEcsV0FBVztJQUNYQyxjQUFjLEdBQUFKLElBQUEsQ0FBZEksY0FBYztJQUNkQyxZQUFZLEdBQUFMLElBQUEsQ0FBWkssWUFBWTtJQUNaQyxPQUFPLEdBQUFOLElBQUEsQ0FBUE0sT0FBTztJQUNQQyxXQUFXLEdBQUFQLElBQUEsQ0FBWE8sV0FBVztJQUNYQyxjQUFjLEdBQUFSLElBQUEsQ0FBZFEsY0FBYztJQUNkQyxh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
@@ -0,0 +1,174 @@
1
+ import _defineProperty from "@babel/runtime/helpers/defineProperty";
2
+ import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
3
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
4
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
5
+ import { useCallback, useEffect, useMemo, useRef, useState } from 'react';
6
+ import { Tooltip } from '@projectcor/tooltipv2/lib/components/Tooltip';
7
+ import { ChevronDown } from '@projectcor/icons/lib/components/ChevronDown';
8
+ import { useTranslation } from 'react-i18next';
9
+ import { SECTIONS } from '../../../../../constants/config';
10
+ import { isMaiaCloneAgentsRoleBlocked } from '../../../../../constants/maiaTaskPanelAccess';
11
+ import { useUser } from '../../../../../context/cor-user';
12
+ import { useGlobalContext } from '../../../../../context/global-context';
13
+ import { EVENTS, useEvent } from '../../../../../hooks/useEvent';
14
+ import { useResizeListener } from '../../../../../hooks/useResize';
15
+ import { MAIAIcon } from '../../../../atoms/icons';
16
+ import { SCCAIMHSelectedAgent, SCCAIMHSelectedAgentText, SCCAIMHWrapper, SCCAIMHWrapperIcon } from './ChatAiModalHeader.styles';
17
+ import { agentNeedsEntity, canUserCreateAgents, dispatchOpenCreateAgentModal, getSectionLabelKey, isAgentUnavailable, isMaiaAgent, resolveDisplayedAgent, showsAgentEmoji } from './ChatAiModalHeader.utils';
18
+ import { ChatAiModalHeaderAgentDropdown } from './ChatAiModalHeaderAgentDropdown';
19
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
20
+ var LABEL_STYLE = {
21
+ display: 'flex',
22
+ alignItems: 'center',
23
+ gap: '4px'
24
+ };
25
+ export var ChatAiModalHeaderAgentSelector = function ChatAiModalHeaderAgentSelector(_ref) {
26
+ var _localAgents$name;
27
+ var agents = _ref.agents,
28
+ hasMore = _ref.hasMore,
29
+ loadingMore = _ref.loadingMore,
30
+ isMyAgentsSection = _ref.isMyAgentsSection,
31
+ isMySkillsSection = _ref.isMySkillsSection,
32
+ isMaiakerSection = _ref.isMaiakerSection,
33
+ tooltipZIndex = _ref.tooltipZIndex,
34
+ handleResetChat = _ref.handleResetChat,
35
+ onAgentUpdate = _ref.onAgentUpdate,
36
+ loadMoreAgents = _ref.loadMoreAgents,
37
+ sortAgentsList = _ref.sortAgentsList,
38
+ onAgentSelected = _ref.onAgentSelected;
39
+ var _useTranslation = useTranslation([SECTIONS.abmAgent, SECTIONS.chatAI]),
40
+ t = _useTranslation.t;
41
+ var user = useUser();
42
+ var amplitudEvent = useEvent();
43
+ var _useGlobalContext = useGlobalContext(),
44
+ selectedAgent = _useGlobalContext.agent,
45
+ selectAgent = _useGlobalContext.selectAgent,
46
+ setProject = _useGlobalContext.setProject,
47
+ setClient = _useGlobalContext.setClient,
48
+ setTask = _useGlobalContext.setTask,
49
+ section = _useGlobalContext.section;
50
+ var _useState = useState(false),
51
+ _useState2 = _slicedToArray(_useState, 2),
52
+ isExpanded = _useState2[0],
53
+ setIsExpanded = _useState2[1];
54
+ var textRefAgent = useRef(null);
55
+ var dropdownRef = useRef(null);
56
+ var _useResizeListener = useResizeListener(textRefAgent, [selectedAgent === null || selectedAgent === void 0 ? void 0 : selectedAgent.name]),
57
+ showTooltipAgent = _useResizeListener.showTooltip;
58
+ var agentsForSelector = useMemo(function () {
59
+ return agents.filter(function (agentItem) {
60
+ return isMaiaAgent(agentItem) || agentItem.entity !== 'global';
61
+ });
62
+ }, [agents]);
63
+ var localAgents = useMemo(function () {
64
+ return resolveDisplayedAgent(agents, selectedAgent);
65
+ }, [agents, selectedAgent]);
66
+ useEffect(function () {
67
+ if (!isExpanded) return undefined;
68
+ var handleClickOutside = function handleClickOutside(event) {
69
+ if (dropdownRef.current && !dropdownRef.current.contains(event.target)) {
70
+ setIsExpanded(false);
71
+ }
72
+ };
73
+ document.addEventListener('mousedown', handleClickOutside);
74
+ return function () {
75
+ document.removeEventListener('mousedown', handleClickOutside);
76
+ };
77
+ }, [isExpanded]);
78
+ var handleSelectAgent = useCallback(function (agent) {
79
+ selectAgent(agent);
80
+ amplitudEvent(EVENTS.aiChatAgentSelect, {
81
+ agent_type: agent === null || agent === void 0 ? void 0 : agent.type
82
+ });
83
+ setIsExpanded(false);
84
+ setProject(null);
85
+ setClient === null || setClient === void 0 || setClient(null);
86
+ setTask(null);
87
+ setTimeout(function () {
88
+ handleResetChat();
89
+ // Si el agente no depende de una entity (custom o clone+global) ya podemos
90
+ // resolver si existe una sesión previa y, en ese caso, navegar a ella.
91
+ // Para clone+project|client, la resolución ocurre en los selectors de entity.
92
+ if (!agentNeedsEntity(agent)) {
93
+ onAgentSelected === null || onAgentSelected === void 0 || onAgentSelected(agent);
94
+ }
95
+ }, 100);
96
+ }, [selectAgent, amplitudEvent, handleResetChat, setProject, setClient, setTask, onAgentSelected]);
97
+ var handleExpandModal = function handleExpandModal() {
98
+ if (!isExpanded) {
99
+ amplitudEvent(EVENTS.aiChatOpenAgentSelect);
100
+ // Cuando se abre el selector, ordenar los agentes
101
+ sortAgentsList === null || sortAgentsList === void 0 || sortAgentsList();
102
+ }
103
+ setIsExpanded(function (prev) {
104
+ return !prev;
105
+ });
106
+ };
107
+ var handleCloseDropdown = useCallback(function () {
108
+ return setIsExpanded(false);
109
+ }, []);
110
+ var handleAddAgent = function handleAddAgent() {
111
+ setIsExpanded(false);
112
+ amplitudEvent(EVENTS.openModal, {
113
+ option: 'create_agent'
114
+ });
115
+ dispatchOpenCreateAgentModal();
116
+ };
117
+
118
+ // En 'Mis agentes' / 'Skills' sin agente seteado, el selector muestra el icono de MAIA y el nombre de la sección
119
+ // en lugar del agente, para que el usuario pueda abrir el dropdown y elegir uno.
120
+ var selectorIcon = showsAgentEmoji(localAgents) ? localAgents === null || localAgents === void 0 ? void 0 : localAgents.emoji : /*#__PURE__*/_jsx(MAIAIcon, {});
121
+ var sectionLabelKey = getSectionLabelKey(isMyAgentsSection, isMySkillsSection);
122
+ var selectorLabel = (_localAgents$name = localAgents === null || localAgents === void 0 ? void 0 : localAgents.name) !== null && _localAgents$name !== void 0 ? _localAgents$name : sectionLabelKey ? t(sectionLabelKey, {
123
+ ns: SECTIONS.chatAI
124
+ }) : '';
125
+ var tooltipTitle = showTooltipAgent ? /*#__PURE__*/_jsxs("span", {
126
+ style: LABEL_STYLE,
127
+ children: [selectorIcon, " ", localAgents === null || localAgents === void 0 ? void 0 : localAgents.name]
128
+ }) : '';
129
+ var isAgentsSection = isMyAgentsSection || isMySkillsSection || isMaiakerSection;
130
+ var showAddAgent = canUserCreateAgents(user) && !isAgentsSection;
131
+ return /*#__PURE__*/_jsxs(SCCAIMHWrapper, {
132
+ ref: dropdownRef,
133
+ "data-no-drag": "true",
134
+ onClick: agents.length ? handleExpandModal : undefined,
135
+ id: "chat-ai-modal-header-wrapper",
136
+ children: [/*#__PURE__*/_jsx(SCCAIMHSelectedAgent, {
137
+ children: /*#__PURE__*/_jsx(Tooltip, _objectSpread(_objectSpread({
138
+ title: tooltipTitle,
139
+ placement: isExpanded ? 'left' : 'top'
140
+ }, tooltipZIndex != null ? {
141
+ zIndex: tooltipZIndex
142
+ } : {}), {}, {
143
+ children: /*#__PURE__*/_jsx(SCCAIMHSelectedAgentText, {
144
+ ref: textRefAgent,
145
+ isAgentDeleted: isAgentUnavailable(selectedAgent) || !!(selectedAgent !== null && selectedAgent !== void 0 && selectedAgent.is_legacy_context),
146
+ children: /*#__PURE__*/_jsxs("span", {
147
+ style: LABEL_STYLE,
148
+ children: [selectorIcon, " ", selectorLabel]
149
+ })
150
+ })
151
+ }))
152
+ }), /*#__PURE__*/_jsx(SCCAIMHWrapperIcon, {
153
+ children: /*#__PURE__*/_jsx(ChevronDown, {
154
+ width: 14,
155
+ height: 14,
156
+ color: "#20201F"
157
+ })
158
+ }), isExpanded ? /*#__PURE__*/_jsx(ChatAiModalHeaderAgentDropdown, {
159
+ agents: agentsForSelector,
160
+ selectedAgentId: selectedAgent === null || selectedAgent === void 0 ? void 0 : selectedAgent.id,
161
+ companyName: user.company,
162
+ showMaiaAgents: !!window.MAIA_CHAT_AI_FEATURE_ACCESS && !isMaiaCloneAgentsRoleBlocked(user, section),
163
+ showAddAgent: showAddAgent,
164
+ hasMore: hasMore,
165
+ loadingMore: loadingMore,
166
+ loadMoreAgents: loadMoreAgents,
167
+ onSelectAgent: handleSelectAgent,
168
+ onAgentUpdate: onAgentUpdate,
169
+ onClose: handleCloseDropdown,
170
+ onAddAgent: handleAddAgent
171
+ }) : null]
172
+ });
173
+ };
174
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VDYWxsYmFjayIsInVzZUVmZmVjdCIsInVzZU1lbW8iLCJ1c2VSZWYiLCJ1c2VTdGF0ZSIsIlRvb2x0aXAiLCJDaGV2cm9uRG93biIsInVzZVRyYW5zbGF0aW9uIiwiU0VDVElPTlMiLCJpc01haWFDbG9uZUFnZW50c1JvbGVCbG9ja2VkIiwidXNlVXNlciIsInVzZUdsb2JhbENvbnRleHQiLCJFVkVOVFMiLCJ1c2VFdmVudCIsInVzZVJlc2l6ZUxpc3RlbmVyIiwiTUFJQUljb24iLCJTQ0NBSU1IU2VsZWN0ZWRBZ2VudCIsIlNDQ0FJTUhTZWxlY3RlZEFnZW50VGV4dCIsIlNDQ0FJTUhXcmFwcGVyIiwiU0NDQUlNSFdyYXBwZXJJY29uIiwiYWdlbnROZWVkc0VudGl0eSIsImNhblVzZXJDcmVhdGVBZ2VudHMiLCJkaXNwYXRjaE9wZW5DcmVhdGVBZ2VudE1vZGFsIiwiZ2V0U2VjdGlvbkxhYmVsS2V5IiwiaXNBZ2VudFVuYXZhaWxhYmxlIiwiaXNNYWlhQWdlbnQiLCJyZXNvbHZlRGlzcGxheWVkQWdlbnQiLCJzaG93c0FnZW50RW1vamkiLCJDaGF0QWlNb2RhbEhlYWRlckFnZW50RHJvcGRvd24iLCJqc3giLCJfanN4IiwianN4cyIsIl9qc3hzIiwiTEFCRUxfU1RZTEUiLCJkaXNwbGF5IiwiYWxpZ25JdGVtcyIsImdhcCIsIkNoYXRBaU1vZGFsSGVhZGVyQWdlbnRTZWxlY3RvciIsIl9yZWYiLCJfbG9jYWxBZ2VudHMkbmFtZSIsImFnZW50cyIsImhhc01vcmUiLCJsb2FkaW5nTW9yZSIsImlzTXlBZ2VudHNTZWN0aW9uIiwiaXNNeVNraWxsc1NlY3Rpb24iLCJpc01haWFrZXJTZWN0aW9uIiwidG9vbHRpcFpJbmRleCIsImhhbmRsZVJlc2V0Q2hhdCIsIm9uQWdlbnRVcGRhdGUiLCJsb2FkTW9yZUFnZW50cyIsInNvcnRBZ2VudHNMaXN0Iiwib25BZ2VudFNlbGVjdGVkIiwiX3VzZVRyYW5zbGF0aW9uIiwiYWJtQWdlbnQiLCJjaGF0QUkiLCJ0IiwidXNlciIsImFtcGxpdHVkRXZlbnQiLCJfdXNlR2xvYmFsQ29udGV4dCIsInNlbGVjdGVkQWdlbnQiLCJhZ2VudCIsInNlbGVjdEFnZW50Iiwic2V0UHJvamVjdCIsInNldENsaWVudCIsInNldFRhc2siLCJzZWN0aW9uIiwiX3VzZVN0YXRlIiwiX3VzZVN0YXRlMiIsIl9zbGljZWRUb0FycmF5IiwiaXNFeHBhbmRlZCIsInNldElzRXhwYW5kZWQiLCJ0ZXh0UmVmQWdlbnQiLCJkcm9wZG93blJlZiIsIl91c2VSZXNpemVMaXN0ZW5lciIsIm5hbWUiLCJzaG93VG9vbHRpcEFnZW50Iiwic2hvd1Rvb2x0aXAiLCJhZ2VudHNGb3JTZWxlY3RvciIsImZpbHRlciIsImFnZW50SXRlbSIsImVudGl0eSIsImxvY2FsQWdlbnRzIiwidW5kZWZpbmVkIiwiaGFuZGxlQ2xpY2tPdXRzaWRlIiwiZXZlbnQiLCJjdXJyZW50IiwiY29udGFpbnMiLCJ0YXJnZXQiLCJkb2N1bWVudCIsImFkZEV2ZW50TGlzdGVuZXIiLCJyZW1vdmVFdmVudExpc3RlbmVyIiwiaGFuZGxlU2VsZWN0QWdlbnQiLCJhaUNoYXRBZ2VudFNlbGVjdCIsImFnZW50X3R5cGUiLCJ0eXBlIiwic2V0VGltZW91dCIsImhhbmRsZUV4cGFuZE1vZGFsIiwiYWlDaGF0T3BlbkFnZW50U2VsZWN0IiwicHJldiIsImhhbmRsZUNsb3NlRHJvcGRvd24iLCJoYW5kbGVBZGRBZ2VudCIsIm9wZW5Nb2RhbCIsIm9wdGlvbiIsInNlbGVjdG9ySWNvbiIsImVtb2ppIiwic2VjdGlvbkxhYmVsS2V5Iiwic2VsZWN0b3JMYWJlbCIsIm5zIiwidG9vbHRpcFRpdGxlIiwic3R5bGUiLCJjaGlsZHJlbiIsImlzQWdlbnRzU2VjdGlvbiIsInNob3dBZGRBZ2VudCIsInJlZiIsIm9uQ2xpY2siLCJsZW5ndGgiLCJpZCIsIl9vYmplY3RTcHJlYWQiLCJ0aXRsZSIsInBsYWNlbWVudCIsInpJbmRleCIsImlzQWdlbnREZWxldGVkIiwiaXNfbGVnYWN5X2NvbnRleHQiLCJ3aWR0aCIsImhlaWdodCIsImNvbG9yIiwic2VsZWN0ZWRBZ2VudElkIiwiY29tcGFueU5hbWUiLCJjb21wYW55Iiwic2hvd01haWFBZ2VudHMiLCJ3aW5kb3ciLCJNQUlBX0NIQVRfQUlfRkVBVFVSRV9BQ0NFU1MiLCJvblNlbGVjdEFnZW50Iiwib25DbG9zZSIsIm9uQWRkQWdlbnQiXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50cy9tb2xlY3VsZXMvQ2hhdEFJTW9kYWwvY29tcG9uZW50cy9DaGF0QWlNb2RhbEhlYWRlci9DaGF0QWlNb2RhbEhlYWRlckFnZW50U2VsZWN0b3IudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHVzZUNhbGxiYWNrLCB1c2VFZmZlY3QsIHVzZU1lbW8sIHVzZVJlZiwgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCdcbmltcG9ydCB7IFRvb2x0aXAgfSBmcm9tICdAcHJvamVjdGNvci90b29sdGlwdjIvbGliL2NvbXBvbmVudHMvVG9vbHRpcCdcbmltcG9ydCB7IENoZXZyb25Eb3duIH0gZnJvbSAnQHByb2plY3Rjb3IvaWNvbnMvbGliL2NvbXBvbmVudHMvQ2hldnJvbkRvd24nXG5pbXBvcnQgeyB1c2VUcmFuc2xhdGlvbiB9IGZyb20gJ3JlYWN0LWkxOG5leHQnXG5pbXBvcnQgeyBTRUNUSU9OUyB9IGZyb20gJy4uLy4uLy4uLy4uLy4uL2NvbnN0YW50cy9jb25maWcnXG5pbXBvcnQgeyBpc01haWFDbG9uZUFnZW50c1JvbGVCbG9ja2VkIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vY29uc3RhbnRzL21haWFUYXNrUGFuZWxBY2Nlc3MnXG5pbXBvcnQgeyB1c2VVc2VyIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vY29udGV4dC9jb3ItdXNlcidcbmltcG9ydCB7IHVzZUdsb2JhbENvbnRleHQgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi9jb250ZXh0L2dsb2JhbC1jb250ZXh0J1xuaW1wb3J0IHsgRVZFTlRTLCB1c2VFdmVudCB9IGZyb20gJy4uLy4uLy4uLy4uLy4uL2hvb2tzL3VzZUV2ZW50J1xuaW1wb3J0IHsgdXNlUmVzaXplTGlzdGVuZXIgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi9ob29rcy91c2VSZXNpemUnXG5pbXBvcnQgeyBBZ2VudCB9IGZyb20gJy4uLy4uLy4uLy4uLy4uL3R5cGVzL2FnZW50J1xuaW1wb3J0IHsgTUFJQUljb24gfSBmcm9tICcuLi8uLi8uLi8uLi9hdG9tcy9pY29ucydcbmltcG9ydCB7XG4gIFNDQ0FJTUhTZWxlY3RlZEFnZW50LFxuICBTQ0NBSU1IU2VsZWN0ZWRBZ2VudFRleHQsXG4gIFNDQ0FJTUhXcmFwcGVyLFxuICBTQ0NBSU1IV3JhcHBlckljb24sXG59IGZyb20gJy4vQ2hhdEFpTW9kYWxIZWFkZXIuc3R5bGVzJ1xuaW1wb3J0IHtcbiAgYWdlbnROZWVkc0VudGl0eSxcbiAgY2FuVXNlckNyZWF0ZUFnZW50cyxcbiAgZGlzcGF0Y2hPcGVuQ3JlYXRlQWdlbnRNb2RhbCxcbiAgZ2V0U2VjdGlvbkxhYmVsS2V5LFxuICBpc0FnZW50VW5hdmFpbGFibGUsXG4gIGlzTWFpYUFnZW50LFxuICByZXNvbHZlRGlzcGxheWVkQWdlbnQsXG4gIHNob3dzQWdlbnRFbW9qaSxcbn0gZnJvbSAnLi9DaGF0QWlNb2RhbEhlYWRlci51dGlscydcbmltcG9ydCB7IENoYXRBaU1vZGFsSGVhZGVyQWdlbnREcm9wZG93biB9IGZyb20gJy4vQ2hhdEFpTW9kYWxIZWFkZXJBZ2VudERyb3Bkb3duJ1xuXG5jb25zdCBMQUJFTF9TVFlMRSA9IHsgZGlzcGxheTogJ2ZsZXgnLCBhbGlnbkl0ZW1zOiAnY2VudGVyJywgZ2FwOiAnNHB4JyB9XG5cbnR5cGUgQ2hhdEFpTW9kYWxIZWFkZXJBZ2VudFNlbGVjdG9yUHJvcHMgPSB7XG4gIGFnZW50czogQWdlbnRbXVxuICBoYXNNb3JlOiBib29sZWFuXG4gIGxvYWRpbmdNb3JlOiBib29sZWFuXG4gIGlzTXlBZ2VudHNTZWN0aW9uOiBib29sZWFuXG4gIGlzTXlTa2lsbHNTZWN0aW9uOiBib29sZWFuXG4gIGlzTWFpYWtlclNlY3Rpb246IGJvb2xlYW5cbiAgdG9vbHRpcFpJbmRleD86IG51bWJlclxuICBoYW5kbGVSZXNldENoYXQ6ICgpID0+IHZvaWRcbiAgb25BZ2VudFVwZGF0ZT86ICh1cGRhdGVkQWdlbnQ6IEFnZW50KSA9PiB2b2lkXG4gIGxvYWRNb3JlQWdlbnRzPzogKCkgPT4gdm9pZFxuICBzb3J0QWdlbnRzTGlzdD86ICgpID0+IHZvaWRcbiAgb25BZ2VudFNlbGVjdGVkPzogKGFnZW50OiBBZ2VudCkgPT4gdm9pZCB8IFByb21pc2U8dW5rbm93bj5cbn1cblxuZXhwb3J0IGNvbnN0IENoYXRBaU1vZGFsSGVhZGVyQWdlbnRTZWxlY3RvciA9ICh7XG4gIGFnZW50cyxcbiAgaGFzTW9yZSxcbiAgbG9hZGluZ01vcmUsXG4gIGlzTXlBZ2VudHNTZWN0aW9uLFxuICBpc015U2tpbGxzU2VjdGlvbixcbiAgaXNNYWlha2VyU2VjdGlvbixcbiAgdG9vbHRpcFpJbmRleCxcbiAgaGFuZGxlUmVzZXRDaGF0LFxuICBvbkFnZW50VXBkYXRlLFxuICBsb2FkTW9yZUFnZW50cyxcbiAgc29ydEFnZW50c0xpc3QsXG4gIG9uQWdlbnRTZWxlY3RlZCxcbn06IENoYXRBaU1vZGFsSGVhZGVyQWdlbnRTZWxlY3RvclByb3BzKSA9PiB7XG4gIGNvbnN0IHsgdCB9ID0gdXNlVHJhbnNsYXRpb24oW1NFQ1RJT05TLmFibUFnZW50LCBTRUNUSU9OUy5jaGF0QUldKVxuICBjb25zdCB1c2VyID0gdXNlVXNlcigpXG4gIGNvbnN0IGFtcGxpdHVkRXZlbnQgPSB1c2VFdmVudCgpXG4gIGNvbnN0IHsgYWdlbnQ6IHNlbGVjdGVkQWdlbnQsIHNlbGVjdEFnZW50LCBzZXRQcm9qZWN0LCBzZXRDbGllbnQsIHNldFRhc2ssIHNlY3Rpb24gfSA9IHVzZUdsb2JhbENvbnRleHQoKVxuICBjb25zdCBbaXNFeHBhbmRlZCwgc2V0SXNFeHBhbmRlZF0gPSB1c2VTdGF0ZShmYWxzZSlcbiAgY29uc3QgdGV4dFJlZkFnZW50ID0gdXNlUmVmPEhUTUxTcGFuRWxlbWVudD4obnVsbClcbiAgY29uc3QgZHJvcGRvd25SZWYgPSB1c2VSZWY8SFRNTERpdkVsZW1lbnQ+KG51bGwpXG4gIGNvbnN0IHsgc2hvd1Rvb2x0aXA6IHNob3dUb29sdGlwQWdlbnQgfSA9IHVzZVJlc2l6ZUxpc3RlbmVyKHRleHRSZWZBZ2VudCwgW3NlbGVjdGVkQWdlbnQ/Lm5hbWVdKVxuXG4gIGNvbnN0IGFnZW50c0ZvclNlbGVjdG9yID0gdXNlTWVtbyhcbiAgICAoKSA9PiBhZ2VudHMuZmlsdGVyKGFnZW50SXRlbSA9PiBpc01haWFBZ2VudChhZ2VudEl0ZW0pIHx8IGFnZW50SXRlbS5lbnRpdHkgIT09ICdnbG9iYWwnKSxcbiAgICBbYWdlbnRzXVxuICApXG5cbiAgY29uc3QgbG9jYWxBZ2VudHMgPSB1c2VNZW1vKCgpID0+IHJlc29sdmVEaXNwbGF5ZWRBZ2VudChhZ2VudHMsIHNlbGVjdGVkQWdlbnQpLCBbYWdlbnRzLCBzZWxlY3RlZEFnZW50XSlcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmICghaXNFeHBhbmRlZCkgcmV0dXJuIHVuZGVmaW5lZFxuXG4gICAgY29uc3QgaGFuZGxlQ2xpY2tPdXRzaWRlID0gKGV2ZW50OiBNb3VzZUV2ZW50KSA9PiB7XG4gICAgICBpZiAoZHJvcGRvd25SZWYuY3VycmVudCAmJiAhZHJvcGRvd25SZWYuY3VycmVudC5jb250YWlucyhldmVudC50YXJnZXQgYXMgTm9kZSkpIHtcbiAgICAgICAgc2V0SXNFeHBhbmRlZChmYWxzZSlcbiAgICAgIH1cbiAgICB9XG5cbiAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdtb3VzZWRvd24nLCBoYW5kbGVDbGlja091dHNpZGUpXG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ21vdXNlZG93bicsIGhhbmRsZUNsaWNrT3V0c2lkZSlcbiAgICB9XG4gIH0sIFtpc0V4cGFuZGVkXSlcblxuICBjb25zdCBoYW5kbGVTZWxlY3RBZ2VudCA9IHVzZUNhbGxiYWNrKFxuICAgIChhZ2VudDogQWdlbnQpID0+IHtcbiAgICAgIHNlbGVjdEFnZW50KGFnZW50KVxuICAgICAgYW1wbGl0dWRFdmVudChFVkVOVFMuYWlDaGF0QWdlbnRTZWxlY3QsIHtcbiAgICAgICAgYWdlbnRfdHlwZTogYWdlbnQ/LnR5cGUsXG4gICAgICB9KVxuICAgICAgc2V0SXNFeHBhbmRlZChmYWxzZSlcbiAgICAgIHNldFByb2plY3QobnVsbClcbiAgICAgIHNldENsaWVudD8uKG51bGwpXG4gICAgICBzZXRUYXNrKG51bGwpXG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgaGFuZGxlUmVzZXRDaGF0KClcbiAgICAgICAgLy8gU2kgZWwgYWdlbnRlIG5vIGRlcGVuZGUgZGUgdW5hIGVudGl0eSAoY3VzdG9tIG8gY2xvbmUrZ2xvYmFsKSB5YSBwb2RlbW9zXG4gICAgICAgIC8vIHJlc29sdmVyIHNpIGV4aXN0ZSB1bmEgc2VzacOzbiBwcmV2aWEgeSwgZW4gZXNlIGNhc28sIG5hdmVnYXIgYSBlbGxhLlxuICAgICAgICAvLyBQYXJhIGNsb25lK3Byb2plY3R8Y2xpZW50LCBsYSByZXNvbHVjacOzbiBvY3VycmUgZW4gbG9zIHNlbGVjdG9ycyBkZSBlbnRpdHkuXG4gICAgICAgIGlmICghYWdlbnROZWVkc0VudGl0eShhZ2VudCkpIHtcbiAgICAgICAgICBvbkFnZW50U2VsZWN0ZWQ/LihhZ2VudClcbiAgICAgICAgfVxuICAgICAgfSwgMTAwKVxuICAgIH0sXG4gICAgW3NlbGVjdEFnZW50LCBhbXBsaXR1ZEV2ZW50LCBoYW5kbGVSZXNldENoYXQsIHNldFByb2plY3QsIHNldENsaWVudCwgc2V0VGFzaywgb25BZ2VudFNlbGVjdGVkXVxuICApXG5cbiAgY29uc3QgaGFuZGxlRXhwYW5kTW9kYWwgPSAoKSA9PiB7XG4gICAgaWYgKCFpc0V4cGFuZGVkKSB7XG4gICAgICBhbXBsaXR1ZEV2ZW50KEVWRU5UUy5haUNoYXRPcGVuQWdlbnRTZWxlY3QpXG4gICAgICAvLyBDdWFuZG8gc2UgYWJyZSBlbCBzZWxlY3Rvciwgb3JkZW5hciBsb3MgYWdlbnRlc1xuICAgICAgc29ydEFnZW50c0xpc3Q/LigpXG4gICAgfVxuICAgIHNldElzRXhwYW5kZWQocHJldiA9PiAhcHJldilcbiAgfVxuXG4gIGNvbnN0IGhhbmRsZUNsb3NlRHJvcGRvd24gPSB1c2VDYWxsYmFjaygoKSA9PiBzZXRJc0V4cGFuZGVkKGZhbHNlKSwgW10pXG5cbiAgY29uc3QgaGFuZGxlQWRkQWdlbnQgPSAoKSA9PiB7XG4gICAgc2V0SXNFeHBhbmRlZChmYWxzZSlcbiAgICBhbXBsaXR1ZEV2ZW50KEVWRU5UUy5vcGVuTW9kYWwsIHsgb3B0aW9uOiAnY3JlYXRlX2FnZW50JyB9KVxuICAgIGRpc3BhdGNoT3BlbkNyZWF0ZUFnZW50TW9kYWwoKVxuICB9XG5cbiAgLy8gRW4gJ01pcyBhZ2VudGVzJyAvICdTa2lsbHMnIHNpbiBhZ2VudGUgc2V0ZWFkbywgZWwgc2VsZWN0b3IgbXVlc3RyYSBlbCBpY29ubyBkZSBNQUlBIHkgZWwgbm9tYnJlIGRlIGxhIHNlY2Npw7NuXG4gIC8vIGVuIGx1Z2FyIGRlbCBhZ2VudGUsIHBhcmEgcXVlIGVsIHVzdWFyaW8gcHVlZGEgYWJyaXIgZWwgZHJvcGRvd24geSBlbGVnaXIgdW5vLlxuICBjb25zdCBzZWxlY3Rvckljb24gPSBzaG93c0FnZW50RW1vamkobG9jYWxBZ2VudHMpID8gbG9jYWxBZ2VudHM/LmVtb2ppIDogPE1BSUFJY29uIC8+XG4gIGNvbnN0IHNlY3Rpb25MYWJlbEtleSA9IGdldFNlY3Rpb25MYWJlbEtleShpc015QWdlbnRzU2VjdGlvbiwgaXNNeVNraWxsc1NlY3Rpb24pXG4gIGNvbnN0IHNlbGVjdG9yTGFiZWwgPSBsb2NhbEFnZW50cz8ubmFtZSA/PyAoc2VjdGlvbkxhYmVsS2V5ID8gdChzZWN0aW9uTGFiZWxLZXksIHsgbnM6IFNFQ1RJT05TLmNoYXRBSSB9KSA6ICcnKVxuXG4gIGNvbnN0IHRvb2x0aXBUaXRsZSA9IHNob3dUb29sdGlwQWdlbnQgPyAoXG4gICAgPHNwYW4gc3R5bGU9e0xBQkVMX1NUWUxFfT5cbiAgICAgIHtzZWxlY3Rvckljb259IHtsb2NhbEFnZW50cz8ubmFtZX1cbiAgICA8L3NwYW4+XG4gICkgOiAoXG4gICAgJydcbiAgKVxuXG4gIGNvbnN0IGlzQWdlbnRzU2VjdGlvbiA9IGlzTXlBZ2VudHNTZWN0aW9uIHx8IGlzTXlTa2lsbHNTZWN0aW9uIHx8IGlzTWFpYWtlclNlY3Rpb25cbiAgY29uc3Qgc2hvd0FkZEFnZW50ID0gY2FuVXNlckNyZWF0ZUFnZW50cyh1c2VyKSAmJiAhaXNBZ2VudHNTZWN0aW9uXG5cbiAgcmV0dXJuIChcbiAgICA8U0NDQUlNSFdyYXBwZXJcbiAgICAgIHJlZj17ZHJvcGRvd25SZWZ9XG4gICAgICBkYXRhLW5vLWRyYWc9XCJ0cnVlXCJcbiAgICAgIG9uQ2xpY2s9e2FnZW50cy5sZW5ndGggPyBoYW5kbGVFeHBhbmRNb2RhbCA6IHVuZGVmaW5lZH1cbiAgICAgIGlkPVwiY2hhdC1haS1tb2RhbC1oZWFkZXItd3JhcHBlclwiXG4gICAgPlxuICAgICAgPFNDQ0FJTUhTZWxlY3RlZEFnZW50PlxuICAgICAgICA8VG9vbHRpcFxuICAgICAgICAgIHRpdGxlPXt0b29sdGlwVGl0bGV9XG4gICAgICAgICAgcGxhY2VtZW50PXtpc0V4cGFuZGVkID8gJ2xlZnQnIDogJ3RvcCd9XG4gICAgICAgICAgey4uLih0b29sdGlwWkluZGV4ICE9IG51bGwgPyB7IHpJbmRleDogdG9vbHRpcFpJbmRleCB9IDoge30pfVxuICAgICAgICA+XG4gICAgICAgICAgPFNDQ0FJTUhTZWxlY3RlZEFnZW50VGV4dFxuICAgICAgICAgICAgcmVmPXt0ZXh0UmVmQWdlbnR9XG4gICAgICAgICAgICBpc0FnZW50RGVsZXRlZD17aXNBZ2VudFVuYXZhaWxhYmxlKHNlbGVjdGVkQWdlbnQpIHx8ICEhc2VsZWN0ZWRBZ2VudD8uaXNfbGVnYWN5X2NvbnRleHR9XG4gICAgICAgICAgPlxuICAgICAgICAgICAgPHNwYW4gc3R5bGU9e0xBQkVMX1NUWUxFfT5cbiAgICAgICAgICAgICAge3NlbGVjdG9ySWNvbn0ge3NlbGVjdG9yTGFiZWx9XG4gICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgPC9TQ0NBSU1IU2VsZWN0ZWRBZ2VudFRleHQ+XG4gICAgICAgIDwvVG9vbHRpcD5cbiAgICAgIDwvU0NDQUlNSFNlbGVjdGVkQWdlbnQ+XG4gICAgICA8U0NDQUlNSFdyYXBwZXJJY29uPlxuICAgICAgICA8Q2hldnJvbkRvd24gd2lkdGg9ezE0fSBoZWlnaHQ9ezE0fSBjb2xvcj1cIiMyMDIwMUZcIiAvPlxuICAgICAgPC9TQ0NBSU1IV3JhcHBlckljb24+XG4gICAgICB7aXNFeHBhbmRlZCA/IChcbiAgICAgICAgPENoYXRBaU1vZGFsSGVhZGVyQWdlbnREcm9wZG93blxuICAgICAgICAgIGFnZW50cz17YWdlbnRzRm9yU2VsZWN0b3J9XG4gICAgICAgICAgc2VsZWN0ZWRBZ2VudElkPXtzZWxlY3RlZEFnZW50Py5pZH1cbiAgICAgICAgICBjb21wYW55TmFtZT17dXNlci5jb21wYW55fVxuICAgICAgICAgIHNob3dNYWlhQWdlbnRzPXshIXdpbmRvdy5NQUlBX0NIQVRfQUlfRkVBVFVSRV9BQ0NFU1MgJiYgIWlzTWFpYUNsb25lQWdlbnRzUm9sZUJsb2NrZWQodXNlciwgc2VjdGlvbil9XG4gICAgICAgICAgc2hvd0FkZEFnZW50PXtzaG93QWRkQWdlbnR9XG4gICAgICAgICAgaGFzTW9yZT17aGFzTW9yZX1cbiAgICAgICAgICBsb2FkaW5nTW9yZT17bG9hZGluZ01vcmV9XG4gICAgICAgICAgbG9hZE1vcmVBZ2VudHM9e2xvYWRNb3JlQWdlbnRzfVxuICAgICAgICAgIG9uU2VsZWN0QWdlbnQ9e2hhbmRsZVNlbGVjdEFnZW50fVxuICAgICAgICAgIG9uQWdlbnRVcGRhdGU9e29uQWdlbnRVcGRhdGV9XG4gICAgICAgICAgb25DbG9zZT17aGFuZGxlQ2xvc2VEcm9wZG93bn1cbiAgICAgICAgICBvbkFkZEFnZW50PXtoYW5kbGVBZGRBZ2VudH1cbiAgICAgICAgLz5cbiAgICAgICkgOiBudWxsfVxuICAgIDwvU0NDQUlNSFdyYXBwZXI+XG4gIClcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLFNBQVNBLFdBQVcsRUFBRUMsU0FBUyxFQUFFQyxPQUFPLEVBQUVDLE1BQU0sRUFBRUMsUUFBUSxRQUFRLE9BQU87QUFDekUsU0FBU0MsT0FBTyxRQUFRLDhDQUE4QztBQUN0RSxTQUFTQyxXQUFXLFFBQVEsOENBQThDO0FBQzFFLFNBQVNDLGNBQWMsUUFBUSxlQUFlO0FBQzlDLFNBQVNDLFFBQVEsUUFBUSxpQ0FBaUM7QUFDMUQsU0FBU0MsNEJBQTRCLFFBQVEsOENBQThDO0FBQzNGLFNBQVNDLE9BQU8sUUFBUSxpQ0FBaUM7QUFDekQsU0FBU0MsZ0JBQWdCLFFBQVEsdUNBQXVDO0FBQ3hFLFNBQVNDLE1BQU0sRUFBRUMsUUFBUSxRQUFRLCtCQUErQjtBQUNoRSxTQUFTQyxpQkFBaUIsUUFBUSxnQ0FBZ0M7QUFFbEUsU0FBU0MsUUFBUSxRQUFRLHlCQUF5QjtBQUNsRCxTQUNFQyxvQkFBb0IsRUFDcEJDLHdCQUF3QixFQUN4QkMsY0FBYyxFQUNkQyxrQkFBa0IsUUFDYiw0QkFBNEI7QUFDbkMsU0FDRUMsZ0JBQWdCLEVBQ2hCQyxtQkFBbUIsRUFDbkJDLDRCQUE0QixFQUM1QkMsa0JBQWtCLEVBQ2xCQyxrQkFBa0IsRUFDbEJDLFdBQVcsRUFDWEMscUJBQXFCLEVBQ3JCQyxlQUFlLFFBQ1YsMkJBQTJCO0FBQ2xDLFNBQVNDLDhCQUE4QixRQUFRLGtDQUFrQztBQUFBLFNBQUFDLEdBQUEsSUFBQUMsSUFBQSxFQUFBQyxJQUFBLElBQUFDLEtBQUE7QUFFakYsSUFBTUMsV0FBVyxHQUFHO0VBQUVDLE9BQU8sRUFBRSxNQUFNO0VBQUVDLFVBQVUsRUFBRSxRQUFRO0VBQUVDLEdBQUcsRUFBRTtBQUFNLENBQUM7QUFpQnpFLE9BQU8sSUFBTUMsOEJBQThCLEdBQUcsU0FBakNBLDhCQUE4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