@projectcor/maia-components 2.11.36-3 → 2.11.36-5

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 (89) hide show
  1. package/lib/App.js +24 -11
  2. package/lib/components/atoms/ContextMentionChip/ContextMentionChip.js +28 -0
  3. package/lib/components/atoms/ContextMentionChip/ContextMentionChip.styles.js +84 -0
  4. package/lib/components/atoms/ContextMentionChip/buildChipElement.js +123 -0
  5. package/lib/components/atoms/ContextMentionChip/index.js +4 -0
  6. package/lib/components/atoms/ContextMentionEditor/ContextMentionEditor.js +85 -0
  7. package/lib/components/atoms/ContextMentionEditor/ContextMentionEditor.styles.js +6 -0
  8. package/lib/components/atoms/ContextMentionEditor/index.js +2 -0
  9. package/lib/components/atoms/ContextMentionItem/ContextMentionItem.js +188 -0
  10. package/lib/components/atoms/ContextMentionItem/ContextMentionItem.styles.js +98 -0
  11. package/lib/components/atoms/ContextMentionItem/index.js +2 -0
  12. package/lib/components/atoms/ContextMentionPopover/ContextMentionPopover.js +131 -0
  13. package/lib/components/atoms/ContextMentionPopover/ContextMentionPopover.styles.js +63 -0
  14. package/lib/components/atoms/ContextMentionPopover/index.js +3 -0
  15. package/lib/components/atoms/MAIAInput/MAIAInput.js +61 -191
  16. package/lib/components/atoms/icons/NotionIcon.js +36 -0
  17. package/lib/components/atoms/icons/RocketIcon.js +35 -0
  18. package/lib/components/atoms/icons/index.js +3 -1
  19. package/lib/components/index.js +2 -1
  20. package/lib/components/molecules/AbmSection/AbmAccessibilitySection/AbmAccessibilitySection.styles.js +2 -2
  21. package/lib/components/molecules/AbmSection/AbmActionsSectionV2/AbmActionsSectionV2.js +483 -0
  22. package/lib/components/molecules/AbmSection/AbmActionsSectionV2/AbmActionsSectionV2.styles.js +238 -0
  23. package/lib/components/molecules/AbmSection/AbmActionsSectionV2/catalog.js +437 -0
  24. package/lib/components/molecules/AbmSection/AbmActionsSectionV2/index.js +3 -0
  25. package/lib/components/molecules/AbmSection/AbmGeneralSection.styles.js +3 -3
  26. package/lib/components/molecules/AbmSection/AbmKnowledgeSection.styles.js +2 -2
  27. package/lib/components/molecules/AbmSection/AbmSkillsSection.styles.js +80 -0
  28. package/lib/components/molecules/AbmSection/AbmTriggersSection/AbmTriggersSection.js +31 -3
  29. package/lib/components/molecules/AbmSection/AbmTriggersSection/AbmTriggersSection.styles.js +2 -2
  30. package/lib/components/molecules/AbmSection/index.js +2 -2
  31. package/lib/components/molecules/ChatAIContent/ChatAIContent.js +7 -1
  32. package/lib/components/molecules/ChatAIHistory/ChatAIHistory.js +8 -4
  33. package/lib/components/molecules/ChatAIMessages/ChatAIMessages.js +21 -2
  34. package/lib/components/molecules/ChatAIMessages/newStyles.js +2 -2
  35. package/lib/components/molecules/ChatAIModal/ChatAIModal.js +16 -6
  36. package/lib/components/molecules/ChatAIModal/constants.js +6 -2
  37. package/lib/components/molecules/ChatFooter/ChatFooter.js +5 -4
  38. package/lib/components/molecules/ContextMentionInput/ContextMentionInput.js +55 -0
  39. package/lib/components/molecules/ContextMentionInput/ContextMentionInput.styles.js +6 -0
  40. package/lib/components/molecules/ContextMentionInput/index.js +2 -0
  41. package/lib/components/molecules/SchedulesPage/SchedulesPage.js +63 -44
  42. package/lib/components/molecules/Sidebar/Sidebar.js +26 -9
  43. package/lib/components/molecules/Sidebar/Sidebar.layout.styles.js +5 -1
  44. package/lib/components/molecules/SkillsPage/SkillsPage.js +747 -0
  45. package/lib/components/molecules/SkillsPage/index.js +2 -0
  46. package/lib/components/organisms/AbmAgentModal/AbmAgentModal.js +186 -47
  47. package/lib/components/organisms/AbmAgentModal/AbmAgentModal.styles.js +4 -4
  48. package/lib/components/organisms/DeleteQuestionModal/DeleteQuestionModal.js +5 -2
  49. package/lib/components/organisms/EditQuestionModal/EditQuestionModal.js +6 -3
  50. package/lib/constants/taskLinkIcon.js +6 -0
  51. package/lib/dev/DevAbmAgentModal.js +114 -0
  52. package/lib/dev/DevContextMentionInput.js +65 -0
  53. package/lib/dev/Providers.js +11 -6
  54. package/lib/dev/mocks/abmModalMocks.js +200 -0
  55. package/lib/hooks/useCaretPosition.js +35 -0
  56. package/lib/hooks/useChatManager/useChatManager.interface.js +1 -1
  57. package/lib/hooks/useChatManager/useChatManager.js +21 -11
  58. package/lib/hooks/useChatMessages/useChatMessages.interface.js +1 -1
  59. package/lib/hooks/useChatMessages/useChatMessages.js +30 -14
  60. package/lib/hooks/useContextMentions.js +204 -0
  61. package/lib/hooks/useEntitySearch.js +405 -0
  62. package/lib/hooks/useEvent.js +5 -1
  63. package/lib/hooks/useMentionAllowedTypes.js +81 -0
  64. package/lib/hooks/useMentionPopover.js +284 -0
  65. package/lib/hooks/useOrchestratorStream/useOrchestratorStream.js +6 -4
  66. package/lib/lang/br/index.js +139 -1
  67. package/lib/lang/en/index.js +139 -1
  68. package/lib/lang/es/index.js +139 -1
  69. package/lib/lang/fr/index.js +147 -9
  70. package/lib/services/maia/Agents/connectors.js +88 -0
  71. package/lib/services/maia/Agents/skills.js +164 -0
  72. package/lib/services/maia/Chats/getChatMessages.js +29 -4
  73. package/lib/services/maia/Orchestrator/orchestrator.js +8 -5
  74. package/lib/services/maia/RecentProjects/getRecentProjects.js +12 -4
  75. package/lib/services/query/entitySearchQuery.js +16 -0
  76. package/lib/services/query/usersDirectoryQuery.js +19 -0
  77. package/lib/services/utils/mapChatMessages.js +12 -5
  78. package/lib/types/Chat.js +1 -1
  79. package/lib/types/agent.js +1 -1
  80. package/lib/types/agentModal.js +1 -1
  81. package/lib/types/agentSkill.js +2 -0
  82. package/lib/types/contextMention.js +37 -0
  83. package/lib/utils/contextMentionIcons.js +117 -0
  84. package/lib/utils/contextMentionLabel.js +4 -0
  85. package/lib/utils/contextMentionTypeLabel.js +17 -0
  86. package/lib/utils/renderContextMentions.js +216 -0
  87. package/package.json +1 -1
  88. package/lib/components/molecules/AbmSection/AbmActionsSection.js +0 -136
  89. package/lib/components/molecules/AbmSection/AbmActionsSection.styles.js +0 -74
@@ -0,0 +1,405 @@
1
+ import _asyncToGenerator from "@babel/runtime/helpers/asyncToGenerator";
2
+ import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
3
+ import _defineProperty from "@babel/runtime/helpers/defineProperty";
4
+ import _regeneratorRuntime from "@babel/runtime/regenerator";
5
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
6
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
7
+ import { useLazyQuery } from '@apollo/client';
8
+ import { useCallback, useEffect, useMemo, useState } from 'react';
9
+ // eslint-disable-next-line import/no-cycle
10
+ import maia from '../services/maia';
11
+ import { SEARCH_ENTITIES } from '../services/query/entitySearchQuery';
12
+ import { SEARCH_CLIENTS } from '../services/query/ClientSearchQuery';
13
+ import { USERS_DIRECTORY } from '../services/query/usersDirectoryQuery';
14
+ import { useDebounce } from './useDebounce';
15
+
16
+ /**
17
+ * Restringe los resultados al `clientId`/`projectId` del agente activo.
18
+ * Cuando el agente está scopeado a un client/project, tanto los recents como
19
+ * el search deben filtrar por ese contexto. Si el backend no entiende algún
20
+ * campo lo ignora y se cae al comportamiento global.
21
+ */
22
+
23
+ var BASE_FILTERS_BY_TYPE = {
24
+ project: {
25
+ project: 'true',
26
+ archived: 'all'
27
+ },
28
+ task: {
29
+ task: 'true'
30
+ }
31
+ };
32
+ var buildFiltersForType = function buildFiltersForType(type, scope) {
33
+ var base = BASE_FILTERS_BY_TYPE[type];
34
+ var extra = {};
35
+ if ((scope === null || scope === void 0 ? void 0 : scope.clientId) !== undefined && (scope === null || scope === void 0 ? void 0 : scope.clientId) !== null && scope.clientId !== '') {
36
+ extra.clientId = String(scope.clientId);
37
+ }
38
+ // Project tab nunca filtra por projectId (rompe la lista). Tasks sí.
39
+ if (type !== 'project' && (scope === null || scope === void 0 ? void 0 : scope.projectId) !== undefined && (scope === null || scope === void 0 ? void 0 : scope.projectId) !== null && scope.projectId !== '') {
40
+ extra.projectId = String(scope.projectId);
41
+ }
42
+ return JSON.stringify(_objectSpread(_objectSpread({}, base), extra));
43
+ };
44
+
45
+ /**
46
+ * Filtros para usersDirectory. El backend espera un JSON string con
47
+ * withPosition, withTeams y searchInput. Le agregamos clientId/projectId
48
+ * del scope en caso de que el backend los aproveche para filtrar por
49
+ * contexto (si no los entiende los ignora).
50
+ */
51
+ var buildUsersDirectoryFilters = function buildUsersDirectoryFilters(q, scope) {
52
+ var base = {
53
+ withPosition: true,
54
+ withTeams: true,
55
+ searchInput: q
56
+ };
57
+ if ((scope === null || scope === void 0 ? void 0 : scope.clientId) !== undefined && (scope === null || scope === void 0 ? void 0 : scope.clientId) !== null && scope.clientId !== '') {
58
+ base.clientId = String(scope.clientId);
59
+ }
60
+ if ((scope === null || scope === void 0 ? void 0 : scope.projectId) !== undefined && (scope === null || scope === void 0 ? void 0 : scope.projectId) !== null && scope.projectId !== '') {
61
+ base.projectId = String(scope.projectId);
62
+ }
63
+ return JSON.stringify(base);
64
+ };
65
+ var highlightRange = function highlightRange(text, searchValue) {
66
+ if (!searchValue) return undefined;
67
+ var idx = text.toLowerCase().indexOf(searchValue.toLowerCase());
68
+ if (idx < 0) return undefined;
69
+ return {
70
+ start: idx,
71
+ length: searchValue.length
72
+ };
73
+ };
74
+ var mapClientToItem = function mapClientToItem(c, searchValue) {
75
+ var _c$totalProyectos, _c$totalProyectos2;
76
+ return {
77
+ id: c.id,
78
+ type: 'client',
79
+ primary: c.name,
80
+ primaryHighlight: highlightRange(c.name, searchValue),
81
+ breadcrumb: {
82
+ count: (_c$totalProyectos = c.totalProyectos) !== null && _c$totalProyectos !== void 0 ? _c$totalProyectos : undefined,
83
+ countLabel: 'projects'
84
+ },
85
+ raw: {
86
+ id: c.id,
87
+ name: c.name,
88
+ totalProyectos: (_c$totalProyectos2 = c.totalProyectos) !== null && _c$totalProyectos2 !== void 0 ? _c$totalProyectos2 : null
89
+ }
90
+ };
91
+ };
92
+ var mapUserToItem = function mapUserToItem(u, searchValue) {
93
+ var _u$firstName, _u$lastName, _u$picture, _u$positionName, _u$email;
94
+ var fullName = "".concat((_u$firstName = u.firstName) !== null && _u$firstName !== void 0 ? _u$firstName : '', " ").concat((_u$lastName = u.lastName) !== null && _u$lastName !== void 0 ? _u$lastName : '').trim();
95
+ var primary = fullName || u.email || String(u.id);
96
+ return {
97
+ id: u.id,
98
+ type: 'user',
99
+ primary: primary,
100
+ primaryHighlight: highlightRange(primary, searchValue),
101
+ raw: {
102
+ id: u.id,
103
+ name: primary,
104
+ picture: (_u$picture = u.picture) !== null && _u$picture !== void 0 ? _u$picture : null,
105
+ positionName: (_u$positionName = u.positionName) !== null && _u$positionName !== void 0 ? _u$positionName : null,
106
+ email: (_u$email = u.email) !== null && _u$email !== void 0 ? _u$email : null
107
+ }
108
+ };
109
+ };
110
+ var mapSearchToItem = function mapSearchToItem(r, type, searchValue) {
111
+ var _r$projectName, _r$clientId, _r$clientName, _r$projectName2, _r$feeId;
112
+ var primary = r.title || r.projectName || '';
113
+ var parent;
114
+ if (type === 'project') parent = r.clientName;else if (type === 'task') parent = undefined;else parent = (_r$projectName = r.projectName) !== null && _r$projectName !== void 0 ? _r$projectName : r.clientName;
115
+ return {
116
+ id: r.id,
117
+ type: type,
118
+ primary: primary,
119
+ primaryHighlight: highlightRange(primary, searchValue),
120
+ breadcrumb: parent ? {
121
+ parent: parent
122
+ } : undefined,
123
+ raw: {
124
+ id: r.id,
125
+ name: primary,
126
+ clientId: (_r$clientId = r.clientId) !== null && _r$clientId !== void 0 ? _r$clientId : null,
127
+ clientName: (_r$clientName = r.clientName) !== null && _r$clientName !== void 0 ? _r$clientName : null,
128
+ projectName: (_r$projectName2 = r.projectName) !== null && _r$projectName2 !== void 0 ? _r$projectName2 : null,
129
+ feeId: (_r$feeId = r.feeId) !== null && _r$feeId !== void 0 ? _r$feeId : null
130
+ }
131
+ };
132
+ };
133
+ var formatMcpPrimaryLabel = function formatMcpPrimaryLabel(slug) {
134
+ return slug.replace(/_/g, ' ').replace(/\b\w/g, function (_char) {
135
+ return _char.toUpperCase();
136
+ });
137
+ };
138
+ var mapMcpSlugsToItems = function mapMcpSlugsToItems(slugs, searchValue) {
139
+ var q = searchValue.trim().toLowerCase();
140
+ var filtered = slugs;
141
+ if (q) {
142
+ filtered = slugs.filter(function (s) {
143
+ var primary = formatMcpPrimaryLabel(s);
144
+ return s.toLowerCase().includes(q) || primary.toLowerCase().includes(q);
145
+ });
146
+ }
147
+ return filtered.map(function (slug) {
148
+ var primary = formatMcpPrimaryLabel(slug);
149
+ return {
150
+ id: slug,
151
+ type: 'mcp',
152
+ primary: primary,
153
+ primaryHighlight: highlightRange(primary, searchValue),
154
+ raw: {
155
+ id: slug,
156
+ name: primary
157
+ }
158
+ };
159
+ });
160
+ };
161
+ export var useEntitySearch = function useEntitySearch(type, scope) {
162
+ var _scope$mcpSlugs;
163
+ var _useState = useState(''),
164
+ _useState2 = _slicedToArray(_useState, 2),
165
+ searchValue = _useState2[0],
166
+ setSearchValue = _useState2[1];
167
+ var debouncedSearchValue = useDebounce(searchValue, 400);
168
+ var _useState3 = useState([]),
169
+ _useState4 = _slicedToArray(_useState3, 2),
170
+ items = _useState4[0],
171
+ setItems = _useState4[1];
172
+ var _useState5 = useState(false),
173
+ _useState6 = _slicedToArray(_useState5, 2),
174
+ loading = _useState6[0],
175
+ setLoading = _useState6[1];
176
+ var _useState7 = useState(false),
177
+ _useState8 = _slicedToArray(_useState7, 2),
178
+ error = _useState8[0],
179
+ setError = _useState8[1];
180
+ var mcpSlugsKey = ((_scope$mcpSlugs = scope === null || scope === void 0 ? void 0 : scope.mcpSlugs) !== null && _scope$mcpSlugs !== void 0 ? _scope$mcpSlugs : []).join('|');
181
+
182
+ // Estabilizamos el scope para no disparar fetchs por cambios de identidad de objeto.
183
+ var stableScope = useMemo(function () {
184
+ var _scope$clientId, _scope$projectId, _scope$mcpSlugs2;
185
+ return {
186
+ clientId: (_scope$clientId = scope === null || scope === void 0 ? void 0 : scope.clientId) !== null && _scope$clientId !== void 0 ? _scope$clientId : null,
187
+ projectId: (_scope$projectId = scope === null || scope === void 0 ? void 0 : scope.projectId) !== null && _scope$projectId !== void 0 ? _scope$projectId : null,
188
+ mcpSlugs: (_scope$mcpSlugs2 = scope === null || scope === void 0 ? void 0 : scope.mcpSlugs) !== null && _scope$mcpSlugs2 !== void 0 ? _scope$mcpSlugs2 : []
189
+ };
190
+ }, [scope === null || scope === void 0 ? void 0 : scope.clientId, scope === null || scope === void 0 ? void 0 : scope.projectId, mcpSlugsKey]);
191
+
192
+ // --- Search: project | task (GraphQL: search) ---
193
+ var _useLazyQuery = useLazyQuery(SEARCH_ENTITIES, {
194
+ variables: {
195
+ limit: 20
196
+ },
197
+ fetchPolicy: 'network-only'
198
+ }),
199
+ _useLazyQuery2 = _slicedToArray(_useLazyQuery, 2),
200
+ fetchSearchEntities = _useLazyQuery2[0],
201
+ _useLazyQuery2$ = _useLazyQuery2[1],
202
+ searchData = _useLazyQuery2$.data,
203
+ searchLoading = _useLazyQuery2$.loading,
204
+ searchError = _useLazyQuery2$.error;
205
+
206
+ // --- Search: client (GraphQL) ---
207
+ var _useLazyQuery3 = useLazyQuery(SEARCH_CLIENTS, {
208
+ fetchPolicy: 'network-only'
209
+ }),
210
+ _useLazyQuery4 = _slicedToArray(_useLazyQuery3, 2),
211
+ fetchSearchClients = _useLazyQuery4[0],
212
+ _useLazyQuery4$ = _useLazyQuery4[1],
213
+ clientsData = _useLazyQuery4$.data,
214
+ clientsLoading = _useLazyQuery4$.loading,
215
+ clientsError = _useLazyQuery4$.error;
216
+
217
+ // --- Search: user (GraphQL: usersDirectory) ---
218
+ var _useLazyQuery5 = useLazyQuery(USERS_DIRECTORY, {
219
+ fetchPolicy: 'network-only'
220
+ }),
221
+ _useLazyQuery6 = _slicedToArray(_useLazyQuery5, 2),
222
+ fetchUsersDirectory = _useLazyQuery6[0],
223
+ _useLazyQuery6$ = _useLazyQuery6[1],
224
+ usersData = _useLazyQuery6$.data,
225
+ usersLoading = _useLazyQuery6$.loading,
226
+ usersError = _useLazyQuery6$.error;
227
+ var fetchRecent = useCallback(/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee() {
228
+ var _stableScope$mcpSlugs, slugs, data, mapped, _data, _mapped, _t;
229
+ return _regeneratorRuntime.wrap(function (_context) {
230
+ while (1) switch (_context.prev = _context.next) {
231
+ case 0:
232
+ if (!(type === 'mcp')) {
233
+ _context.next = 1;
234
+ break;
235
+ }
236
+ slugs = (_stableScope$mcpSlugs = stableScope.mcpSlugs) !== null && _stableScope$mcpSlugs !== void 0 ? _stableScope$mcpSlugs : [];
237
+ setLoading(false);
238
+ setError(false);
239
+ setItems(mapMcpSlugsToItems(slugs, ''));
240
+ return _context.abrupt("return");
241
+ case 1:
242
+ setLoading(true);
243
+ setError(false);
244
+ _context.prev = 2;
245
+ if (!(type === 'client')) {
246
+ _context.next = 4;
247
+ break;
248
+ }
249
+ _context.next = 3;
250
+ return maia.RecentClients.getRecentClients();
251
+ case 3:
252
+ data = _context.sent;
253
+ mapped = (data !== null && data !== void 0 ? data : []).map(function (c) {
254
+ return mapClientToItem(c, '');
255
+ });
256
+ setItems(mapped);
257
+ _context.next = 7;
258
+ break;
259
+ case 4:
260
+ if (!(type === 'project')) {
261
+ _context.next = 6;
262
+ break;
263
+ }
264
+ _context.next = 5;
265
+ return maia.RecentProjects.getRecentProjects(stableScope.clientId ? {
266
+ clientId: stableScope.clientId
267
+ } : undefined);
268
+ case 5:
269
+ _data = _context.sent;
270
+ _mapped = (Array.isArray(_data) ? _data : []).map(function (p) {
271
+ return mapSearchToItem({
272
+ id: p.id,
273
+ title: p.title,
274
+ type: 'project',
275
+ clientId: p.clientId,
276
+ feeId: p.feeId,
277
+ clientName: p.clientName
278
+ }, 'project', '');
279
+ });
280
+ setItems(_mapped);
281
+ _context.next = 7;
282
+ break;
283
+ case 6:
284
+ // tasks y users no tienen endpoint de recents: arrancamos vacío
285
+ setItems([]);
286
+ case 7:
287
+ _context.next = 9;
288
+ break;
289
+ case 8:
290
+ _context.prev = 8;
291
+ _t = _context["catch"](2);
292
+ setError(true);
293
+ setItems([]);
294
+ case 9:
295
+ _context.prev = 9;
296
+ setLoading(false);
297
+ return _context.finish(9);
298
+ case 10:
299
+ case "end":
300
+ return _context.stop();
301
+ }
302
+ }, _callee, null, [[2, 8, 9, 10]]);
303
+ })), [type, stableScope]);
304
+
305
+ // Disparar search al cambiar debounced value
306
+ useEffect(function () {
307
+ var q = debouncedSearchValue.trim();
308
+ if (type === 'mcp') {
309
+ var _stableScope$mcpSlugs2;
310
+ var slugs = (_stableScope$mcpSlugs2 = stableScope.mcpSlugs) !== null && _stableScope$mcpSlugs2 !== void 0 ? _stableScope$mcpSlugs2 : [];
311
+ setLoading(false);
312
+ setError(false);
313
+ setItems(mapMcpSlugsToItems(slugs, q));
314
+ return;
315
+ }
316
+ if (!q) return;
317
+ if (type === 'client') {
318
+ fetchSearchClients({
319
+ variables: {
320
+ filter: {
321
+ name: q
322
+ },
323
+ page: 1,
324
+ perPage: 20
325
+ }
326
+ });
327
+ } else if (type === 'user') {
328
+ fetchUsersDirectory({
329
+ variables: {
330
+ filters: buildUsersDirectoryFilters(q, stableScope),
331
+ page: 1
332
+ }
333
+ });
334
+ } else {
335
+ fetchSearchEntities({
336
+ variables: {
337
+ q: q,
338
+ filters: buildFiltersForType(type, stableScope)
339
+ }
340
+ });
341
+ }
342
+ }, [debouncedSearchValue, type, stableScope, fetchSearchEntities, fetchSearchClients, fetchUsersDirectory]);
343
+
344
+ // Sincronizar resultados de search
345
+ useEffect(function () {
346
+ if (type === 'mcp') return;
347
+ var q = debouncedSearchValue.trim();
348
+ if (!q) return;
349
+ if (type === 'client') {
350
+ var _clientsData$clients;
351
+ setLoading(clientsLoading);
352
+ if (clientsError) {
353
+ setError(true);
354
+ return;
355
+ }
356
+ if (clientsData !== null && clientsData !== void 0 && (_clientsData$clients = clientsData.clients) !== null && _clientsData$clients !== void 0 && _clientsData$clients.data) {
357
+ setItems(clientsData.clients.data.map(function (c) {
358
+ return mapClientToItem(c, q);
359
+ }));
360
+ setError(false);
361
+ }
362
+ } else if (type === 'user') {
363
+ var _usersData$usersDirec;
364
+ setLoading(usersLoading);
365
+ if (usersError) {
366
+ setError(true);
367
+ return;
368
+ }
369
+ if (usersData !== null && usersData !== void 0 && (_usersData$usersDirec = usersData.usersDirectory) !== null && _usersData$usersDirec !== void 0 && _usersData$usersDirec.data) {
370
+ setItems(usersData.usersDirectory.data.map(function (u) {
371
+ return mapUserToItem(u, q);
372
+ }));
373
+ setError(false);
374
+ }
375
+ } else {
376
+ setLoading(searchLoading);
377
+ if (searchError) {
378
+ setError(true);
379
+ return;
380
+ }
381
+ if (searchData !== null && searchData !== void 0 && searchData.search) {
382
+ setItems(searchData.search.map(function (r) {
383
+ return mapSearchToItem(r, type, q);
384
+ }));
385
+ setError(false);
386
+ }
387
+ }
388
+ }, [searchData, clientsData, usersData, searchLoading, clientsLoading, usersLoading, searchError, clientsError, usersError, debouncedSearchValue, type]);
389
+
390
+ // Cuando se limpia el search, volver a recents
391
+ useEffect(function () {
392
+ if (!debouncedSearchValue.trim()) {
393
+ fetchRecent();
394
+ }
395
+ }, [debouncedSearchValue, fetchRecent]);
396
+ return {
397
+ items: items,
398
+ loading: loading,
399
+ error: error,
400
+ searchValue: searchValue,
401
+ updateSearchValue: setSearchValue,
402
+ fetchRecent: fetchRecent
403
+ };
404
+ };
405
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VMYXp5UXVlcnkiLCJ1c2VDYWxsYmFjayIsInVzZUVmZmVjdCIsInVzZU1lbW8iLCJ1c2VTdGF0ZSIsIm1haWEiLCJTRUFSQ0hfRU5USVRJRVMiLCJTRUFSQ0hfQ0xJRU5UUyIsIlVTRVJTX0RJUkVDVE9SWSIsInVzZURlYm91bmNlIiwiQkFTRV9GSUxURVJTX0JZX1RZUEUiLCJwcm9qZWN0IiwiYXJjaGl2ZWQiLCJ0YXNrIiwiYnVpbGRGaWx0ZXJzRm9yVHlwZSIsInR5cGUiLCJzY29wZSIsImJhc2UiLCJleHRyYSIsImNsaWVudElkIiwidW5kZWZpbmVkIiwiU3RyaW5nIiwicHJvamVjdElkIiwiSlNPTiIsInN0cmluZ2lmeSIsIl9vYmplY3RTcHJlYWQiLCJidWlsZFVzZXJzRGlyZWN0b3J5RmlsdGVycyIsInEiLCJ3aXRoUG9zaXRpb24iLCJ3aXRoVGVhbXMiLCJzZWFyY2hJbnB1dCIsImhpZ2hsaWdodFJhbmdlIiwidGV4dCIsInNlYXJjaFZhbHVlIiwiaWR4IiwidG9Mb3dlckNhc2UiLCJpbmRleE9mIiwic3RhcnQiLCJsZW5ndGgiLCJtYXBDbGllbnRUb0l0ZW0iLCJjIiwiX2MkdG90YWxQcm95ZWN0b3MiLCJfYyR0b3RhbFByb3llY3RvczIiLCJpZCIsInByaW1hcnkiLCJuYW1lIiwicHJpbWFyeUhpZ2hsaWdodCIsImJyZWFkY3J1bWIiLCJjb3VudCIsInRvdGFsUHJveWVjdG9zIiwiY291bnRMYWJlbCIsInJhdyIsIm1hcFVzZXJUb0l0ZW0iLCJ1IiwiX3UkZmlyc3ROYW1lIiwiX3UkbGFzdE5hbWUiLCJfdSRwaWN0dXJlIiwiX3UkcG9zaXRpb25OYW1lIiwiX3UkZW1haWwiLCJmdWxsTmFtZSIsImNvbmNhdCIsImZpcnN0TmFtZSIsImxhc3ROYW1lIiwidHJpbSIsImVtYWlsIiwicGljdHVyZSIsInBvc2l0aW9uTmFtZSIsIm1hcFNlYXJjaFRvSXRlbSIsInIiLCJfciRwcm9qZWN0TmFtZSIsIl9yJGNsaWVudElkIiwiX3IkY2xpZW50TmFtZSIsIl9yJHByb2plY3ROYW1lMiIsIl9yJGZlZUlkIiwidGl0bGUiLCJwcm9qZWN0TmFtZSIsInBhcmVudCIsImNsaWVudE5hbWUiLCJmZWVJZCIsImZvcm1hdE1jcFByaW1hcnlMYWJlbCIsInNsdWciLCJyZXBsYWNlIiwiY2hhciIsInRvVXBwZXJDYXNlIiwibWFwTWNwU2x1Z3NUb0l0ZW1zIiwic2x1Z3MiLCJmaWx0ZXJlZCIsImZpbHRlciIsInMiLCJpbmNsdWRlcyIsIm1hcCIsInVzZUVudGl0eVNlYXJjaCIsIl9zY29wZSRtY3BTbHVncyIsIl91c2VTdGF0ZSIsIl91c2VTdGF0ZTIiLCJfc2xpY2VkVG9BcnJheSIsInNldFNlYXJjaFZhbHVlIiwiZGVib3VuY2VkU2VhcmNoVmFsdWUiLCJfdXNlU3RhdGUzIiwiX3VzZVN0YXRlNCIsIml0ZW1zIiwic2V0SXRlbXMiLCJfdXNlU3RhdGU1IiwiX3VzZVN0YXRlNiIsImxvYWRpbmciLCJzZXRMb2FkaW5nIiwiX3VzZVN0YXRlNyIsIl91c2VTdGF0ZTgiLCJlcnJvciIsInNldEVycm9yIiwibWNwU2x1Z3NLZXkiLCJtY3BTbHVncyIsImpvaW4iLCJzdGFibGVTY29wZSIsIl9zY29wZSRjbGllbnRJZCIsIl9zY29wZSRwcm9qZWN0SWQiLCJfc2NvcGUkbWNwU2x1Z3MyIiwiX3VzZUxhenlRdWVyeSIsInZhcmlhYmxlcyIsImxpbWl0IiwiZmV0Y2hQb2xpY3kiLCJfdXNlTGF6eVF1ZXJ5MiIsImZldGNoU2VhcmNoRW50aXRpZXMiLCJfdXNlTGF6eVF1ZXJ5MiQiLCJzZWFyY2hEYXRhIiwiZGF0YSIsInNlYXJjaExvYWRpbmciLCJzZWFyY2hFcnJvciIsIl91c2VMYXp5UXVlcnkzIiwiX3VzZUxhenlRdWVyeTQiLCJmZXRjaFNlYXJjaENsaWVudHMiLCJfdXNlTGF6eVF1ZXJ5NCQiLCJjbGllbnRzRGF0YSIsImNsaWVudHNMb2FkaW5nIiwiY2xpZW50c0Vycm9yIiwiX3VzZUxhenlRdWVyeTUiLCJfdXNlTGF6eVF1ZXJ5NiIsImZldGNoVXNlcnNEaXJlY3RvcnkiLCJfdXNlTGF6eVF1ZXJ5NiQiLCJ1c2Vyc0RhdGEiLCJ1c2Vyc0xvYWRpbmciLCJ1c2Vyc0Vycm9yIiwiZmV0Y2hSZWNlbnQiLCJfYXN5bmNUb0dlbmVyYXRvciIsIl9yZWdlbmVyYXRvclJ1bnRpbWUiLCJtYXJrIiwiX2NhbGxlZSIsIl9zdGFibGVTY29wZSRtY3BTbHVncyIsIm1hcHBlZCIsIl9kYXRhIiwiX21hcHBlZCIsIl90Iiwid3JhcCIsIl9jb250ZXh0IiwicHJldiIsIm5leHQiLCJhYnJ1cHQiLCJSZWNlbnRDbGllbnRzIiwiZ2V0UmVjZW50Q2xpZW50cyIsInNlbnQiLCJSZWNlbnRQcm9qZWN0cyIsImdldFJlY2VudFByb2plY3RzIiwiQXJyYXkiLCJpc0FycmF5IiwicCIsImZpbmlzaCIsInN0b3AiLCJfc3RhYmxlU2NvcGUkbWNwU2x1Z3MyIiwicGFnZSIsInBlclBhZ2UiLCJmaWx0ZXJzIiwiX2NsaWVudHNEYXRhJGNsaWVudHMiLCJjbGllbnRzIiwiX3VzZXJzRGF0YSR1c2Vyc0RpcmVjIiwidXNlcnNEaXJlY3RvcnkiLCJzZWFyY2giLCJ1cGRhdGVTZWFyY2hWYWx1ZSJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ob29rcy91c2VFbnRpdHlTZWFyY2gudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdXNlTGF6eVF1ZXJ5IH0gZnJvbSAnQGFwb2xsby9jbGllbnQnXG5pbXBvcnQgeyB1c2VDYWxsYmFjaywgdXNlRWZmZWN0LCB1c2VNZW1vLCB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0J1xuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGltcG9ydC9uby1jeWNsZVxuaW1wb3J0IG1haWEgZnJvbSAnLi4vc2VydmljZXMvbWFpYSdcbmltcG9ydCB7IFNFQVJDSF9FTlRJVElFUyB9IGZyb20gJy4uL3NlcnZpY2VzL3F1ZXJ5L2VudGl0eVNlYXJjaFF1ZXJ5J1xuaW1wb3J0IHsgU0VBUkNIX0NMSUVOVFMgfSBmcm9tICcuLi9zZXJ2aWNlcy9xdWVyeS9DbGllbnRTZWFyY2hRdWVyeSdcbmltcG9ydCB7IFVTRVJTX0RJUkVDVE9SWSB9IGZyb20gJy4uL3NlcnZpY2VzL3F1ZXJ5L3VzZXJzRGlyZWN0b3J5UXVlcnknXG5pbXBvcnQgeyB1c2VEZWJvdW5jZSB9IGZyb20gJy4vdXNlRGVib3VuY2UnXG5pbXBvcnQgeyBDb250ZXh0RW50aXR5VHlwZSwgQ29udGV4dE1lbnRpb25JdGVtIH0gZnJvbSAnLi4vdHlwZXMvY29udGV4dE1lbnRpb24nXG5cbnR5cGUgUmF3U2VhcmNoUmVzdWx0ID0ge1xuICBpZDogc3RyaW5nIHwgbnVtYmVyXG4gIHRpdGxlOiBzdHJpbmdcbiAgdHlwZT86IHN0cmluZ1xuICBjbGllbnRJZD86IG51bWJlciB8IHN0cmluZyB8IG51bGxcbiAgZmVlSWQ/OiBudW1iZXIgfCBzdHJpbmcgfCBudWxsXG4gIGNsaWVudE5hbWU/OiBzdHJpbmcgfCBudWxsXG4gIHByb2plY3ROYW1lPzogc3RyaW5nIHwgbnVsbFxufVxuXG50eXBlIFJhd0NsaWVudCA9IHtcbiAgaWQ6IG51bWJlciB8IHN0cmluZ1xuICBuYW1lOiBzdHJpbmdcbiAgdG90YWxQcm95ZWN0b3M/OiBudW1iZXIgfCBudWxsXG59XG5cbnR5cGUgUmF3RGlyZWN0b3J5VXNlciA9IHtcbiAgaWQ6IHN0cmluZyB8IG51bWJlclxuICBmaXJzdE5hbWU/OiBzdHJpbmcgfCBudWxsXG4gIGxhc3ROYW1lPzogc3RyaW5nIHwgbnVsbFxuICBlbWFpbD86IHN0cmluZyB8IG51bGxcbiAgcGljdHVyZT86IHN0cmluZyB8IG51bGxcbiAgcG9zaXRpb25OYW1lPzogc3RyaW5nIHwgbnVsbFxufVxuXG50eXBlIFNlYXJjaEVudGl0aWVzRGF0YSA9IHsgc2VhcmNoOiBSYXdTZWFyY2hSZXN1bHRbXSB8IG51bGwgfVxudHlwZSBTZWFyY2hDbGllbnRzRGF0YSA9IHtcbiAgY2xpZW50czoge1xuICAgIGRhdGE6IFJhd0NsaWVudFtdXG4gIH0gfCBudWxsXG59XG50eXBlIFVzZXJzRGlyZWN0b3J5RGF0YSA9IHtcbiAgdXNlcnNEaXJlY3Rvcnk6IHtcbiAgICB0b3RhbD86IG51bWJlciB8IG51bGxcbiAgICBkYXRhOiBSYXdEaXJlY3RvcnlVc2VyW10gfCBudWxsXG4gIH0gfCBudWxsXG59XG5cbi8qKlxuICogUmVzdHJpbmdlIGxvcyByZXN1bHRhZG9zIGFsIGBjbGllbnRJZGAvYHByb2plY3RJZGAgZGVsIGFnZW50ZSBhY3Rpdm8uXG4gKiBDdWFuZG8gZWwgYWdlbnRlIGVzdMOhIHNjb3BlYWRvIGEgdW4gY2xpZW50L3Byb2plY3QsIHRhbnRvIGxvcyByZWNlbnRzIGNvbW9cbiAqIGVsIHNlYXJjaCBkZWJlbiBmaWx0cmFyIHBvciBlc2UgY29udGV4dG8uIFNpIGVsIGJhY2tlbmQgbm8gZW50aWVuZGUgYWxnw7puXG4gKiBjYW1wbyBsbyBpZ25vcmEgeSBzZSBjYWUgYWwgY29tcG9ydGFtaWVudG8gZ2xvYmFsLlxuICovXG5leHBvcnQgdHlwZSBFbnRpdHlTZWFyY2hTY29wZSA9IHtcbiAgY2xpZW50SWQ/OiBzdHJpbmcgfCBudW1iZXIgfCBudWxsXG4gIHByb2plY3RJZD86IHN0cmluZyB8IG51bWJlciB8IG51bGxcbiAgLyoqIFNsdWdzIGRlbCBjb25lY3RvciBNQ1AgZGVsIGFnZW50ZSAobGlzdGFkbyBsb2NhbCwgc2luIEdyYXBoUUwpLiAqL1xuICBtY3BTbHVncz86IHN0cmluZ1tdXG59XG5cbnR5cGUgU2VhcmNoRmlsdGVyYWJsZVR5cGUgPSAncHJvamVjdCcgfCAndGFzaydcblxuY29uc3QgQkFTRV9GSUxURVJTX0JZX1RZUEU6IFJlY29yZDxTZWFyY2hGaWx0ZXJhYmxlVHlwZSwgUmVjb3JkPHN0cmluZywgc3RyaW5nPj4gPSB7XG4gIHByb2plY3Q6IHsgcHJvamVjdDogJ3RydWUnLCBhcmNoaXZlZDogJ2FsbCcgfSxcbiAgdGFzazogeyB0YXNrOiAndHJ1ZScgfSxcbn1cblxuY29uc3QgYnVpbGRGaWx0ZXJzRm9yVHlwZSA9ICh0eXBlOiBTZWFyY2hGaWx0ZXJhYmxlVHlwZSwgc2NvcGU/OiBFbnRpdHlTZWFyY2hTY29wZSk6IHN0cmluZyA9PiB7XG4gIGNvbnN0IGJhc2UgPSBCQVNFX0ZJTFRFUlNfQllfVFlQRVt0eXBlXVxuICBjb25zdCBleHRyYTogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHt9XG4gIGlmIChzY29wZT8uY2xpZW50SWQgIT09IHVuZGVmaW5lZCAmJiBzY29wZT8uY2xpZW50SWQgIT09IG51bGwgJiYgc2NvcGUuY2xpZW50SWQgIT09ICcnKSB7XG4gICAgZXh0cmEuY2xpZW50SWQgPSBTdHJpbmcoc2NvcGUuY2xpZW50SWQpXG4gIH1cbiAgLy8gUHJvamVjdCB0YWIgbnVuY2EgZmlsdHJhIHBvciBwcm9qZWN0SWQgKHJvbXBlIGxhIGxpc3RhKS4gVGFza3Mgc8OtLlxuICBpZiAodHlwZSAhPT0gJ3Byb2plY3QnICYmIHNjb3BlPy5wcm9qZWN0SWQgIT09IHVuZGVmaW5lZCAmJiBzY29wZT8ucHJvamVjdElkICE9PSBudWxsICYmIHNjb3BlLnByb2plY3RJZCAhPT0gJycpIHtcbiAgICBleHRyYS5wcm9qZWN0SWQgPSBTdHJpbmcoc2NvcGUucHJvamVjdElkKVxuICB9XG4gIHJldHVybiBKU09OLnN0cmluZ2lmeSh7IC4uLmJhc2UsIC4uLmV4dHJhIH0pXG59XG5cbi8qKlxuICogRmlsdHJvcyBwYXJhIHVzZXJzRGlyZWN0b3J5LiBFbCBiYWNrZW5kIGVzcGVyYSB1biBKU09OIHN0cmluZyBjb25cbiAqIHdpdGhQb3NpdGlvbiwgd2l0aFRlYW1zIHkgc2VhcmNoSW5wdXQuIExlIGFncmVnYW1vcyBjbGllbnRJZC9wcm9qZWN0SWRcbiAqIGRlbCBzY29wZSBlbiBjYXNvIGRlIHF1ZSBlbCBiYWNrZW5kIGxvcyBhcHJvdmVjaGUgcGFyYSBmaWx0cmFyIHBvclxuICogY29udGV4dG8gKHNpIG5vIGxvcyBlbnRpZW5kZSBsb3MgaWdub3JhKS5cbiAqL1xuY29uc3QgYnVpbGRVc2Vyc0RpcmVjdG9yeUZpbHRlcnMgPSAocTogc3RyaW5nLCBzY29wZT86IEVudGl0eVNlYXJjaFNjb3BlKTogc3RyaW5nID0+IHtcbiAgY29uc3QgYmFzZTogUmVjb3JkPHN0cmluZywgdW5rbm93bj4gPSB7XG4gICAgd2l0aFBvc2l0aW9uOiB0cnVlLFxuICAgIHdpdGhUZWFtczogdHJ1ZSxcbiAgICBzZWFyY2hJbnB1dDogcSxcbiAgfVxuICBpZiAoc2NvcGU/LmNsaWVudElkICE9PSB1bmRlZmluZWQgJiYgc2NvcGU/LmNsaWVudElkICE9PSBudWxsICYmIHNjb3BlLmNsaWVudElkICE9PSAnJykge1xuICAgIGJhc2UuY2xpZW50SWQgPSBTdHJpbmcoc2NvcGUuY2xpZW50SWQpXG4gIH1cbiAgaWYgKHNjb3BlPy5wcm9qZWN0SWQgIT09IHVuZGVmaW5lZCAmJiBzY29wZT8ucHJvamVjdElkICE9PSBudWxsICYmIHNjb3BlLnByb2plY3RJZCAhPT0gJycpIHtcbiAgICBiYXNlLnByb2plY3RJZCA9IFN0cmluZyhzY29wZS5wcm9qZWN0SWQpXG4gIH1cbiAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KGJhc2UpXG59XG5cbmNvbnN0IGhpZ2hsaWdodFJhbmdlID0gKHRleHQ6IHN0cmluZywgc2VhcmNoVmFsdWU6IHN0cmluZykgPT4ge1xuICBpZiAoIXNlYXJjaFZhbHVlKSByZXR1cm4gdW5kZWZpbmVkXG4gIGNvbnN0IGlkeCA9IHRleHQudG9Mb3dlckNhc2UoKS5pbmRleE9mKHNlYXJjaFZhbHVlLnRvTG93ZXJDYXNlKCkpXG4gIGlmIChpZHggPCAwKSByZXR1cm4gdW5kZWZpbmVkXG4gIHJldHVybiB7IHN0YXJ0OiBpZHgsIGxlbmd0aDogc2VhcmNoVmFsdWUubGVuZ3RoIH1cbn1cblxuY29uc3QgbWFwQ2xpZW50VG9JdGVtID0gKGM6IFJhd0NsaWVudCwgc2VhcmNoVmFsdWU6IHN0cmluZyk6IENvbnRleHRNZW50aW9uSXRlbSA9PiAoe1xuICBpZDogYy5pZCxcbiAgdHlwZTogJ2NsaWVudCcsXG4gIHByaW1hcnk6IGMubmFtZSxcbiAgcHJpbWFyeUhpZ2hsaWdodDogaGlnaGxpZ2h0UmFuZ2UoYy5uYW1lLCBzZWFyY2hWYWx1ZSksXG4gIGJyZWFkY3J1bWI6IHtcbiAgICBjb3VudDogYy50b3RhbFByb3llY3RvcyA/PyB1bmRlZmluZWQsXG4gICAgY291bnRMYWJlbDogJ3Byb2plY3RzJyxcbiAgfSxcbiAgcmF3OiB7XG4gICAgaWQ6IGMuaWQsXG4gICAgbmFtZTogYy5uYW1lLFxuICAgIHRvdGFsUHJveWVjdG9zOiBjLnRvdGFsUHJveWVjdG9zID8/IG51bGwsXG4gIH0sXG59KVxuXG5jb25zdCBtYXBVc2VyVG9JdGVtID0gKHU6IFJhd0RpcmVjdG9yeVVzZXIsIHNlYXJjaFZhbHVlOiBzdHJpbmcpOiBDb250ZXh0TWVudGlvbkl0ZW0gPT4ge1xuICBjb25zdCBmdWxsTmFtZSA9IGAke3UuZmlyc3ROYW1lID8/ICcnfSAke3UubGFzdE5hbWUgPz8gJyd9YC50cmltKClcbiAgY29uc3QgcHJpbWFyeSA9IGZ1bGxOYW1lIHx8IHUuZW1haWwgfHwgU3RyaW5nKHUuaWQpXG5cbiAgcmV0dXJuIHtcbiAgICBpZDogdS5pZCxcbiAgICB0eXBlOiAndXNlcicsXG4gICAgcHJpbWFyeSxcbiAgICBwcmltYXJ5SGlnaGxpZ2h0OiBoaWdobGlnaHRSYW5nZShwcmltYXJ5LCBzZWFyY2hWYWx1ZSksXG4gICAgcmF3OiB7XG4gICAgICBpZDogdS5pZCxcbiAgICAgIG5hbWU6IHByaW1hcnksXG4gICAgICBwaWN0dXJlOiB1LnBpY3R1cmUgPz8gbnVsbCxcbiAgICAgIHBvc2l0aW9uTmFtZTogdS5wb3NpdGlvbk5hbWUgPz8gbnVsbCxcbiAgICAgIGVtYWlsOiB1LmVtYWlsID8/IG51bGwsXG4gICAgfSxcbiAgfVxufVxuXG5jb25zdCBtYXBTZWFyY2hUb0l0ZW0gPSAocjogUmF3U2VhcmNoUmVzdWx0LCB0eXBlOiBDb250ZXh0RW50aXR5VHlwZSwgc2VhcmNoVmFsdWU6IHN0cmluZyk6IENvbnRleHRNZW50aW9uSXRlbSA9PiB7XG4gIGNvbnN0IHByaW1hcnkgPSByLnRpdGxlIHx8IHIucHJvamVjdE5hbWUgfHwgJydcbiAgbGV0IHBhcmVudDogc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZFxuICBpZiAodHlwZSA9PT0gJ3Byb2plY3QnKSBwYXJlbnQgPSByLmNsaWVudE5hbWVcbiAgZWxzZSBpZiAodHlwZSA9PT0gJ3Rhc2snKSBwYXJlbnQgPSB1bmRlZmluZWRcbiAgZWxzZSBwYXJlbnQgPSByLnByb2plY3ROYW1lID8/IHIuY2xpZW50TmFtZVxuXG4gIHJldHVybiB7XG4gICAgaWQ6IHIuaWQsXG4gICAgdHlwZSxcbiAgICBwcmltYXJ5LFxuICAgIHByaW1hcnlIaWdobGlnaHQ6IGhpZ2hsaWdodFJhbmdlKHByaW1hcnksIHNlYXJjaFZhbHVlKSxcbiAgICBicmVhZGNydW1iOiBwYXJlbnQgPyB7IHBhcmVudCB9IDogdW5kZWZpbmVkLFxuICAgIHJhdzoge1xuICAgICAgaWQ6IHIuaWQsXG4gICAgICBuYW1lOiBwcmltYXJ5LFxuICAgICAgY2xpZW50SWQ6IHIuY2xpZW50SWQgPz8gbnVsbCxcbiAgICAgIGNsaWVudE5hbWU6IHIuY2xpZW50TmFtZSA/PyBudWxsLFxuICAgICAgcHJvamVjdE5hbWU6IHIucHJvamVjdE5hbWUgPz8gbnVsbCxcbiAgICAgIGZlZUlkOiByLmZlZUlkID8/IG51bGwsXG4gICAgfSxcbiAgfVxufVxuXG5jb25zdCBmb3JtYXRNY3BQcmltYXJ5TGFiZWwgPSAoc2x1Zzogc3RyaW5nKTogc3RyaW5nID0+XG4gIHNsdWcucmVwbGFjZSgvXy9nLCAnICcpLnJlcGxhY2UoL1xcYlxcdy9nLCBjaGFyID0+IGNoYXIudG9VcHBlckNhc2UoKSlcblxuY29uc3QgbWFwTWNwU2x1Z3NUb0l0ZW1zID0gKHNsdWdzOiBzdHJpbmdbXSwgc2VhcmNoVmFsdWU6IHN0cmluZyk6IENvbnRleHRNZW50aW9uSXRlbVtdID0+IHtcbiAgY29uc3QgcSA9IHNlYXJjaFZhbHVlLnRyaW0oKS50b0xvd2VyQ2FzZSgpXG4gIGxldCBmaWx0ZXJlZCA9IHNsdWdzXG4gIGlmIChxKSB7XG4gICAgZmlsdGVyZWQgPSBzbHVncy5maWx0ZXIocyA9PiB7XG4gICAgICBjb25zdCBwcmltYXJ5ID0gZm9ybWF0TWNwUHJpbWFyeUxhYmVsKHMpXG4gICAgICByZXR1cm4gcy50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKHEpIHx8IHByaW1hcnkudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhxKVxuICAgIH0pXG4gIH1cbiAgcmV0dXJuIGZpbHRlcmVkLm1hcChzbHVnID0+IHtcbiAgICBjb25zdCBwcmltYXJ5ID0gZm9ybWF0TWNwUHJpbWFyeUxhYmVsKHNsdWcpXG4gICAgcmV0dXJuIHtcbiAgICAgIGlkOiBzbHVnLFxuICAgICAgdHlwZTogJ21jcCcgYXMgY29uc3QsXG4gICAgICBwcmltYXJ5LFxuICAgICAgcHJpbWFyeUhpZ2hsaWdodDogaGlnaGxpZ2h0UmFuZ2UocHJpbWFyeSwgc2VhcmNoVmFsdWUpLFxuICAgICAgcmF3OiB7XG4gICAgICAgIGlkOiBzbHVnLFxuICAgICAgICBuYW1lOiBwcmltYXJ5LFxuICAgICAgfSxcbiAgICB9XG4gIH0pXG59XG5cbmV4cG9ydCBjb25zdCB1c2VFbnRpdHlTZWFyY2ggPSAodHlwZTogQ29udGV4dEVudGl0eVR5cGUsIHNjb3BlPzogRW50aXR5U2VhcmNoU2NvcGUpID0+IHtcbiAgY29uc3QgW3NlYXJjaFZhbHVlLCBzZXRTZWFyY2hWYWx1ZV0gPSB1c2VTdGF0ZSgnJylcbiAgY29uc3QgZGVib3VuY2VkU2VhcmNoVmFsdWUgPSB1c2VEZWJvdW5jZShzZWFyY2hWYWx1ZSwgNDAwKVxuXG4gIGNvbnN0IFtpdGVtcywgc2V0SXRlbXNdID0gdXNlU3RhdGU8Q29udGV4dE1lbnRpb25JdGVtW10+KFtdKVxuICBjb25zdCBbbG9hZGluZywgc2V0TG9hZGluZ10gPSB1c2VTdGF0ZShmYWxzZSlcbiAgY29uc3QgW2Vycm9yLCBzZXRFcnJvcl0gPSB1c2VTdGF0ZShmYWxzZSlcblxuICBjb25zdCBtY3BTbHVnc0tleSA9IChzY29wZT8ubWNwU2x1Z3MgPz8gW10pLmpvaW4oJ3wnKVxuXG4gIC8vIEVzdGFiaWxpemFtb3MgZWwgc2NvcGUgcGFyYSBubyBkaXNwYXJhciBmZXRjaHMgcG9yIGNhbWJpb3MgZGUgaWRlbnRpZGFkIGRlIG9iamV0by5cbiAgY29uc3Qgc3RhYmxlU2NvcGUgPSB1c2VNZW1vPEVudGl0eVNlYXJjaFNjb3BlPihcbiAgICAoKSA9PiAoe1xuICAgICAgY2xpZW50SWQ6IHNjb3BlPy5jbGllbnRJZCA/PyBudWxsLFxuICAgICAgcHJvamVjdElkOiBzY29wZT8ucHJvamVjdElkID8/IG51bGwsXG4gICAgICBtY3BTbHVnczogc2NvcGU/Lm1jcFNsdWdzID8/IFtdLFxuICAgIH0pLFxuICAgIFtzY29wZT8uY2xpZW50SWQsIHNjb3BlPy5wcm9qZWN0SWQsIG1jcFNsdWdzS2V5XVxuICApXG5cbiAgLy8gLS0tIFNlYXJjaDogcHJvamVjdCB8IHRhc2sgKEdyYXBoUUw6IHNlYXJjaCkgLS0tXG4gIGNvbnN0IFtmZXRjaFNlYXJjaEVudGl0aWVzLCB7IGRhdGE6IHNlYXJjaERhdGEsIGxvYWRpbmc6IHNlYXJjaExvYWRpbmcsIGVycm9yOiBzZWFyY2hFcnJvciB9XSA9XG4gICAgdXNlTGF6eVF1ZXJ5PFNlYXJjaEVudGl0aWVzRGF0YT4oU0VBUkNIX0VOVElUSUVTLCB7XG4gICAgICB2YXJpYWJsZXM6IHsgbGltaXQ6IDIwIH0sXG4gICAgICBmZXRjaFBvbGljeTogJ25ldHdvcmstb25seScsXG4gICAgfSlcblxuICAvLyAtLS0gU2VhcmNoOiBjbGllbnQgKEdyYXBoUUwpIC0tLVxuICBjb25zdCBbZmV0Y2hTZWFyY2hDbGllbnRzLCB7IGRhdGE6IGNsaWVudHNEYXRhLCBsb2FkaW5nOiBjbGllbnRzTG9hZGluZywgZXJyb3I6IGNsaWVudHNFcnJvciB9XSA9XG4gICAgdXNlTGF6eVF1ZXJ5PFNlYXJjaENsaWVudHNEYXRhPihTRUFSQ0hfQ0xJRU5UUywge1xuICAgICAgZmV0Y2hQb2xpY3k6ICduZXR3b3JrLW9ubHknLFxuICAgIH0pXG5cbiAgLy8gLS0tIFNlYXJjaDogdXNlciAoR3JhcGhRTDogdXNlcnNEaXJlY3RvcnkpIC0tLVxuICBjb25zdCBbZmV0Y2hVc2Vyc0RpcmVjdG9yeSwgeyBkYXRhOiB1c2Vyc0RhdGEsIGxvYWRpbmc6IHVzZXJzTG9hZGluZywgZXJyb3I6IHVzZXJzRXJyb3IgfV0gPVxuICAgIHVzZUxhenlRdWVyeTxVc2Vyc0RpcmVjdG9yeURhdGE+KFVTRVJTX0RJUkVDVE9SWSwge1xuICAgICAgZmV0Y2hQb2xpY3k6ICduZXR3b3JrLW9ubHknLFxuICAgIH0pXG5cbiAgY29uc3QgZmV0Y2hSZWNlbnQgPSB1c2VDYWxsYmFjayhhc3luYyAoKSA9PiB7XG4gICAgaWYgKHR5cGUgPT09ICdtY3AnKSB7XG4gICAgICBjb25zdCBzbHVncyA9IHN0YWJsZVNjb3BlLm1jcFNsdWdzID8/IFtdXG4gICAgICBzZXRMb2FkaW5nKGZhbHNlKVxuICAgICAgc2V0RXJyb3IoZmFsc2UpXG4gICAgICBzZXRJdGVtcyhtYXBNY3BTbHVnc1RvSXRlbXMoc2x1Z3MsICcnKSlcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIHNldExvYWRpbmcodHJ1ZSlcbiAgICBzZXRFcnJvcihmYWxzZSlcbiAgICB0cnkge1xuICAgICAgaWYgKHR5cGUgPT09ICdjbGllbnQnKSB7XG4gICAgICAgIGNvbnN0IGRhdGEgPSBhd2FpdCBtYWlhLlJlY2VudENsaWVudHMuZ2V0UmVjZW50Q2xpZW50cygpXG4gICAgICAgIGNvbnN0IG1hcHBlZCA9IChkYXRhID8/IFtdKS5tYXAoYyA9PiBtYXBDbGllbnRUb0l0ZW0oYywgJycpKVxuICAgICAgICBzZXRJdGVtcyhtYXBwZWQpXG4gICAgICB9IGVsc2UgaWYgKHR5cGUgPT09ICdwcm9qZWN0Jykge1xuICAgICAgICBjb25zdCBkYXRhID0gYXdhaXQgbWFpYS5SZWNlbnRQcm9qZWN0cy5nZXRSZWNlbnRQcm9qZWN0cyhcbiAgICAgICAgICBzdGFibGVTY29wZS5jbGllbnRJZCA/IHsgY2xpZW50SWQ6IHN0YWJsZVNjb3BlLmNsaWVudElkIH0gOiB1bmRlZmluZWRcbiAgICAgICAgKVxuICAgICAgICBjb25zdCBtYXBwZWQgPSAoQXJyYXkuaXNBcnJheShkYXRhKSA/IGRhdGEgOiBbXSkubWFwKHAgPT5cbiAgICAgICAgICBtYXBTZWFyY2hUb0l0ZW0oXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIGlkOiBwLmlkLFxuICAgICAgICAgICAgICB0aXRsZTogcC50aXRsZSxcbiAgICAgICAgICAgICAgdHlwZTogJ3Byb2plY3QnLFxuICAgICAgICAgICAgICBjbGllbnRJZDogcC5jbGllbnRJZCxcbiAgICAgICAgICAgICAgZmVlSWQ6IHAuZmVlSWQsXG4gICAgICAgICAgICAgIGNsaWVudE5hbWU6IHAuY2xpZW50TmFtZSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAncHJvamVjdCcsXG4gICAgICAgICAgICAnJ1xuICAgICAgICAgIClcbiAgICAgICAgKVxuICAgICAgICBzZXRJdGVtcyhtYXBwZWQpXG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyB0YXNrcyB5IHVzZXJzIG5vIHRpZW5lbiBlbmRwb2ludCBkZSByZWNlbnRzOiBhcnJhbmNhbW9zIHZhY8Otb1xuICAgICAgICBzZXRJdGVtcyhbXSlcbiAgICAgIH1cbiAgICB9IGNhdGNoIHtcbiAgICAgIHNldEVycm9yKHRydWUpXG4gICAgICBzZXRJdGVtcyhbXSlcbiAgICB9IGZpbmFsbHkge1xuICAgICAgc2V0TG9hZGluZyhmYWxzZSlcbiAgICB9XG4gIH0sIFt0eXBlLCBzdGFibGVTY29wZV0pXG5cbiAgLy8gRGlzcGFyYXIgc2VhcmNoIGFsIGNhbWJpYXIgZGVib3VuY2VkIHZhbHVlXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgY29uc3QgcSA9IGRlYm91bmNlZFNlYXJjaFZhbHVlLnRyaW0oKVxuXG4gICAgaWYgKHR5cGUgPT09ICdtY3AnKSB7XG4gICAgICBjb25zdCBzbHVncyA9IHN0YWJsZVNjb3BlLm1jcFNsdWdzID8/IFtdXG4gICAgICBzZXRMb2FkaW5nKGZhbHNlKVxuICAgICAgc2V0RXJyb3IoZmFsc2UpXG4gICAgICBzZXRJdGVtcyhtYXBNY3BTbHVnc1RvSXRlbXMoc2x1Z3MsIHEpKVxuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgaWYgKCFxKSByZXR1cm5cblxuICAgIGlmICh0eXBlID09PSAnY2xpZW50Jykge1xuICAgICAgZmV0Y2hTZWFyY2hDbGllbnRzKHtcbiAgICAgICAgdmFyaWFibGVzOiB7XG4gICAgICAgICAgZmlsdGVyOiB7IG5hbWU6IHEgfSxcbiAgICAgICAgICBwYWdlOiAxLFxuICAgICAgICAgIHBlclBhZ2U6IDIwLFxuICAgICAgICB9LFxuICAgICAgfSlcbiAgICB9IGVsc2UgaWYgKHR5cGUgPT09ICd1c2VyJykge1xuICAgICAgZmV0Y2hVc2Vyc0RpcmVjdG9yeSh7XG4gICAgICAgIHZhcmlhYmxlczoge1xuICAgICAgICAgIGZpbHRlcnM6IGJ1aWxkVXNlcnNEaXJlY3RvcnlGaWx0ZXJzKHEsIHN0YWJsZVNjb3BlKSxcbiAgICAgICAgICBwYWdlOiAxLFxuICAgICAgICB9LFxuICAgICAgfSlcbiAgICB9IGVsc2Uge1xuICAgICAgZmV0Y2hTZWFyY2hFbnRpdGllcyh7XG4gICAgICAgIHZhcmlhYmxlczoge1xuICAgICAgICAgIHEsXG4gICAgICAgICAgZmlsdGVyczogYnVpbGRGaWx0ZXJzRm9yVHlwZSh0eXBlLCBzdGFibGVTY29wZSksXG4gICAgICAgIH0sXG4gICAgICB9KVxuICAgIH1cbiAgfSwgW2RlYm91bmNlZFNlYXJjaFZhbHVlLCB0eXBlLCBzdGFibGVTY29wZSwgZmV0Y2hTZWFyY2hFbnRpdGllcywgZmV0Y2hTZWFyY2hDbGllbnRzLCBmZXRjaFVzZXJzRGlyZWN0b3J5XSlcblxuICAvLyBTaW5jcm9uaXphciByZXN1bHRhZG9zIGRlIHNlYXJjaFxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmICh0eXBlID09PSAnbWNwJykgcmV0dXJuXG5cbiAgICBjb25zdCBxID0gZGVib3VuY2VkU2VhcmNoVmFsdWUudHJpbSgpXG4gICAgaWYgKCFxKSByZXR1cm5cblxuICAgIGlmICh0eXBlID09PSAnY2xpZW50Jykge1xuICAgICAgc2V0TG9hZGluZyhjbGllbnRzTG9hZGluZylcbiAgICAgIGlmIChjbGllbnRzRXJyb3IpIHtcbiAgICAgICAgc2V0RXJyb3IodHJ1ZSlcbiAgICAgICAgcmV0dXJuXG4gICAgICB9XG4gICAgICBpZiAoY2xpZW50c0RhdGE/LmNsaWVudHM/LmRhdGEpIHtcbiAgICAgICAgc2V0SXRlbXMoY2xpZW50c0RhdGEuY2xpZW50cy5kYXRhLm1hcChjID0+IG1hcENsaWVudFRvSXRlbShjLCBxKSkpXG4gICAgICAgIHNldEVycm9yKGZhbHNlKVxuICAgICAgfVxuICAgIH0gZWxzZSBpZiAodHlwZSA9PT0gJ3VzZXInKSB7XG4gICAgICBzZXRMb2FkaW5nKHVzZXJzTG9hZGluZylcbiAgICAgIGlmICh1c2Vyc0Vycm9yKSB7XG4gICAgICAgIHNldEVycm9yKHRydWUpXG4gICAgICAgIHJldHVyblxuICAgICAgfVxuICAgICAgaWYgKHVzZXJzRGF0YT8udXNlcnNEaXJlY3Rvcnk/LmRhdGEpIHtcbiAgICAgICAgc2V0SXRlbXModXNlcnNEYXRhLnVzZXJzRGlyZWN0b3J5LmRhdGEubWFwKHUgPT4gbWFwVXNlclRvSXRlbSh1LCBxKSkpXG4gICAgICAgIHNldEVycm9yKGZhbHNlKVxuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBzZXRMb2FkaW5nKHNlYXJjaExvYWRpbmcpXG4gICAgICBpZiAoc2VhcmNoRXJyb3IpIHtcbiAgICAgICAgc2V0RXJyb3IodHJ1ZSlcbiAgICAgICAgcmV0dXJuXG4gICAgICB9XG4gICAgICBpZiAoc2VhcmNoRGF0YT8uc2VhcmNoKSB7XG4gICAgICAgIHNldEl0ZW1zKHNlYXJjaERhdGEuc2VhcmNoLm1hcChyID0+IG1hcFNlYXJjaFRvSXRlbShyLCB0eXBlLCBxKSkpXG4gICAgICAgIHNldEVycm9yKGZhbHNlKVxuICAgICAgfVxuICAgIH1cbiAgfSwgW1xuICAgIHNlYXJjaERhdGEsXG4gICAgY2xpZW50c0RhdGEsXG4gICAgdXNlcnNEYXRhLFxuICAgIHNlYXJjaExvYWRpbmcsXG4gICAgY2xpZW50c0xvYWRpbmcsXG4gICAgdXNlcnNMb2FkaW5nLFxuICAgIHNlYXJjaEVycm9yLFxuICAgIGNsaWVudHNFcnJvcixcbiAgICB1c2Vyc0Vycm9yLFxuICAgIGRlYm91bmNlZFNlYXJjaFZhbHVlLFxuICAgIHR5cGUsXG4gIF0pXG5cbiAgLy8gQ3VhbmRvIHNlIGxpbXBpYSBlbCBzZWFyY2gsIHZvbHZlciBhIHJlY2VudHNcbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoIWRlYm91bmNlZFNlYXJjaFZhbHVlLnRyaW0oKSkge1xuICAgICAgZmV0Y2hSZWNlbnQoKVxuICAgIH1cbiAgfSwgW2RlYm91bmNlZFNlYXJjaFZhbHVlLCBmZXRjaFJlY2VudF0pXG5cbiAgcmV0dXJuIHtcbiAgICBpdGVtcyxcbiAgICBsb2FkaW5nLFxuICAgIGVycm9yLFxuICAgIHNlYXJjaFZhbHVlLFxuICAgIHVwZGF0ZVNlYXJjaFZhbHVlOiBzZXRTZWFyY2hWYWx1ZSxcbiAgICBmZXRjaFJlY2VudCxcbiAgfVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxTQUFTQSxZQUFZLFFBQVEsZ0JBQWdCO0FBQzdDLFNBQVNDLFdBQVcsRUFBRUMsU0FBUyxFQUFFQyxPQUFPLEVBQUVDLFFBQVEsUUFBUSxPQUFPO0FBQ2pFO0FBQ0EsT0FBT0MsSUFBSSxNQUFNLGtCQUFrQjtBQUNuQyxTQUFTQyxlQUFlLFFBQVEscUNBQXFDO0FBQ3JFLFNBQVNDLGNBQWMsUUFBUSxxQ0FBcUM7QUFDcEUsU0FBU0MsZUFBZSxRQUFRLHVDQUF1QztBQUN2RSxTQUFTQyxXQUFXLFFBQVEsZUFBZTs7QUF5QzNDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFVQSxJQUFNQyxvQkFBMEUsR0FBRztFQUNqRkMsT0FBTyxFQUFFO0lBQUVBLE9BQU8sRUFBRSxNQUFNO0lBQUVDLFFBQVEsRUFBRTtFQUFNLENBQUM7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
@@ -35,6 +35,10 @@ var CHAT_AI_EVENTS = {
35
35
  aiChatAgentSelect: 'AI_CHAT_AGENTE_SELECTED',
36
36
  aiChatSearchContextOpen: 'AI_CHAT_SEARCH_CONTEXT_OPEN',
37
37
  aiChatSearchContextSelectResult: 'AI_CHAT_SEARCH_CONTEXT_SELECT_RESULT',
38
+ aiChatMentionOpen: 'AI_CHAT_MENTION_OPEN',
39
+ aiChatMentionTypeSwitch: 'AI_CHAT_MENTION_TYPE_SWITCH',
40
+ aiChatMentionSelect: 'AI_CHAT_MENTION_SELECT',
41
+ aiChatMentionRemove: 'AI_CHAT_MENTION_REMOVE',
38
42
  aiChatBreadcrumbChange: 'AI_CHAT_BREADCRUMB_CHANGE',
39
43
  aiChatFavorite: 'AI_CHAT_FAVORITE',
40
44
  aiChatTools: 'AI_CHAT_TOOLS',
@@ -74,4 +78,4 @@ export var useEvent = function useEvent() {
74
78
  }, []);
75
79
  return triggerEvent;
76
80
  };
77
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VDYWxsYmFjayIsImRpc3BhdGNoQW1wbGl0dWRlIiwidXNlVXNlciIsIlBST0pFQ1RfUkVTVU1FX0VWRU5UUyIsInByb2plY3RSZXN1bWVPcGVuIiwicHJvamVjdFJlc3VtZU9wZW5Db25maWd1cmUiLCJwcm9qZWN0UmVzdW1lQ29uZmlnQ2hhbmdlIiwicHJvamVjdFJlc3VtZUdlbmVyYXRlIiwicHJvamVjdFJlc3VtZUNsb3NlIiwicHJvamVjdFJlc3VtZUV4cGFuZCIsInByb2plY3RSZXN1bWVCYWNrVGVtcGxhdGVzIiwicHJvamVjdFJlc3VtZUZlZWRiYWNrIiwicHJvamVjdFJlc3VtZUNvcHkiLCJwcm9qZWN0UmVzdW1lR2VuZXJhdGlvbkNvbXBsZXRlIiwiQ0hBVF9BSV9FVkVOVFMiLCJwbUFpT3BlbiIsInBtQWlGcmVxdWVudFF1ZXN0aW9uIiwicG1BaVR5cGVkVGV4dCIsInBtQWlTZW5kUXVlc3Rpb24iLCJwbUFpT3BlbkNoYXRIaXN0b3J5IiwicG1BaU5ld0NvbnZlcnNhdGlvbiIsInBtQWlPcGVuQ29udmVyc2F0aW9uIiwicG1BaU9wZW5NZW51IiwicG1BaU1lbnVEZWxldGUiLCJwbUFpTWVudUVkaXQiLCJwbUFpQmFja0J1dHRvbiIsImFpQ2hhdEZhcSIsImFpQ2hhdFNlbmQiLCJhaUNoYXRSZXNwb25zZSIsImFpQ2hhdE9wZW5BZ2VudFNlbGVjdCIsImFpQ2hhdEFnZW50U2VsZWN0IiwiYWlDaGF0U2VhcmNoQ29udGV4dE9wZW4iLCJhaUNoYXRTZWFyY2hDb250ZXh0U2VsZWN0UmVzdWx0IiwiYWlDaGF0QnJlYWRjcnVtYkNoYW5nZSIsImFpQ2hhdEZhdm9yaXRlIiwiYWlDaGF0VG9vbHMiLCJhaUNoYXRTdG9wUmVzcG9uc2UiLCJhaUNoYXRTZWxlY3RGQVEiLCJhaUNoYXRIaXRsIiwiYWlDaGF0SGl0bE9wdGlvbiIsImFpQ2hhdE1wT3BlbiIsImFpQ2hhdE1wU2VsZWN0QWdlbnQiLCJhaUNoYXRTdWdnZXN0ZWRBbnN3ZXIiLCJhaUNoYXRPcGVuVmlld09wdGlvbnMiLCJhaUNoYXRTZWxlY3RWaWV3T3B0aW9ucyIsImFpQ2hhdERyYWdnYWJsZSIsIkFCTV9BR0VOVF9FVkVOVFMiLCJvcGVuTW9kYWwiLCJjYW5jZWxNb2RhbCIsInRhYlNlY3Rpb24iLCJhZGRGaWxlIiwiY29uZmlybUFjdGlvbiIsImFjY2Vzc2liaWxpdHlUeXBlIiwiYWNjZXNzaWJpbGl0eVNlbGVjdENsaWVudCIsInNlbGVjdE1vZGVsIiwiY2hvb3NlTW9kZWwiLCJFVkVOVFMiLCJfb2JqZWN0U3ByZWFkIiwidXNlRXZlbnQiLCJfdXNlVXNlciIsImNvbXBhbnlJZCIsImNvbXBhbnlfaWQiLCJ1c2VySWQiLCJpZCIsInRyaWdnZXJFdmVudCIsImV2ZW50TmFtZSIsImFyZ3MiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvaG9va3MvdXNlRXZlbnQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdXNlQ2FsbGJhY2sgfSBmcm9tICdyZWFjdCdcbmltcG9ydCBkaXNwYXRjaEFtcGxpdHVkZSBmcm9tICdAcHJvamVjdGNvci9jb3ItY29tbW9ucy9saWIvdXRpbHMvZGlzcGF0Y2hBbXBsaXR1ZGUnXG5pbXBvcnQgeyB1c2VVc2VyIH0gZnJvbSAnLi4vY29udGV4dC9jb3ItdXNlcidcblxuY29uc3QgUFJPSkVDVF9SRVNVTUVfRVZFTlRTID0ge1xuICBwcm9qZWN0UmVzdW1lT3BlbjogJ1BST0pFQ1RfUkVTVU1FX09QRU4nLFxuICBwcm9qZWN0UmVzdW1lT3BlbkNvbmZpZ3VyZTogJ1BST0pFQ1RfUkVTVU1FX09QRU5fQ09ORklHVVJFJyxcbiAgcHJvamVjdFJlc3VtZUNvbmZpZ0NoYW5nZTogJ1BST0pFQ1RfUkVTVU1FX0NPTkZJR19DSEFOR0UnLFxuICBwcm9qZWN0UmVzdW1lR2VuZXJhdGU6ICdQUk9KRUNUX1JFU1VNRV9HRU5FUkFURScsXG4gIHByb2plY3RSZXN1bWVDbG9zZTogJ1BST0pFQ1RfUkVTVU1FX0NMT1NFJyxcbiAgcHJvamVjdFJlc3VtZUV4cGFuZDogJ1BST0pFQ1RfUkVTVU1FX0VYUEFORCcsXG4gIHByb2plY3RSZXN1bWVCYWNrVGVtcGxhdGVzOiAnUFJPSkVDVF9SRVNVTUVfQkFDS19URU1QTEFURVMnLFxuICBwcm9qZWN0UmVzdW1lRmVlZGJhY2s6ICdQUk9KRUNUX1JFU1VNRV9GRUVEQkFDSycsXG4gIHByb2plY3RSZXN1bWVDb3B5OiAnUFJPSkVDVF9SRVNVTUVfQ09QWScsXG4gIHByb2plY3RSZXN1bWVHZW5lcmF0aW9uQ29tcGxldGU6ICdQUk9KRUNUX1JFU1VNRV9HRU5FUkFUSU9OX0NPTVBMRVRFJyxcbn1cblxuY29uc3QgQ0hBVF9BSV9FVkVOVFMgPSB7XG4gIHBtQWlPcGVuOiAnUE1fQUlfT1BFTicsXG4gIHBtQWlGcmVxdWVudFF1ZXN0aW9uOiAnUE1fQUlfRlJFUVVFTlRfUVVFU1RJT04nLFxuICBwbUFpVHlwZWRUZXh0OiAnQUlfQ0hBVF9UWVBFRCcsXG4gIHBtQWlTZW5kUXVlc3Rpb246ICdQTV9BSV9TRU5EX1FVRVNUSU9OJyxcbiAgcG1BaU9wZW5DaGF0SGlzdG9yeTogJ1BNX0FJX09QRU5fQ0hBVF9ISVNUT1JZJyxcbiAgcG1BaU5ld0NvbnZlcnNhdGlvbjogJ1BNX0FJX05FV19DT05WRVJTQVRJT04nLFxuICBwbUFpT3BlbkNvbnZlcnNhdGlvbjogJ1BNX0FJX09QRU5fQ09OVkVSU0FUSU9OJyxcbiAgcG1BaU9wZW5NZW51OiAnUE1fQUlfT1BFTl9NRU5VJyxcbiAgcG1BaU1lbnVEZWxldGU6ICdQTV9BSV9NRU5VX0RFTEVURScsXG4gIHBtQWlNZW51RWRpdDogJ1BNX0FJX01FTlVfRURJVCcsXG4gIHBtQWlCYWNrQnV0dG9uOiAnUE1fQUlfQkFDS19CVVRUT04nLFxuICBhaUNoYXRGYXE6ICdBSV9DSEFUX0ZBUScsXG4gIGFpQ2hhdFNlbmQ6ICdBSV9DSEFUX1NFTkQnLFxuICBhaUNoYXRSZXNwb25zZTogJ0FJX0NIQVRfUkVTUE9OU0UnLFxuICBhaUNoYXRPcGVuQWdlbnRTZWxlY3Q6ICdBSV9DSEFUX09QRU5fQUdFTlRFX1NFTEVDVCcsXG4gIGFpQ2hhdEFnZW50U2VsZWN0OiAnQUlfQ0hBVF9BR0VOVEVfU0VMRUNURUQnLFxuICBhaUNoYXRTZWFyY2hDb250ZXh0T3BlbjogJ0FJX0NIQVRfU0VBUkNIX0NPTlRFWFRfT1BFTicsXG4gIGFpQ2hhdFNlYXJjaENvbnRleHRTZWxlY3RSZXN1bHQ6ICdBSV9DSEFUX1NFQVJDSF9DT05URVhUX1NFTEVDVF9SRVNVTFQnLFxuICBhaUNoYXRCcmVhZGNydW1iQ2hhbmdlOiAnQUlfQ0hBVF9CUkVBRENSVU1CX0NIQU5HRScsXG4gIGFpQ2hhdEZhdm9yaXRlOiAnQUlfQ0hBVF9GQVZPUklURScsXG4gIGFpQ2hhdFRvb2xzOiAnQUlfQ0hBVF9UT09MUycsXG4gIGFpQ2hhdFN0b3BSZXNwb25zZTogJ0FJX0NIQVRfU1RPUF9SRVNQT05TRScsXG4gIGFpQ2hhdFNlbGVjdEZBUTogJ0FJX0NIQVRfU0VMRUNUX0ZBUScsXG4gIGFpQ2hhdEhpdGw6ICdBSV9DSEFUX0hJVEwnLFxuICBhaUNoYXRIaXRsT3B0aW9uOiAnQUlfQ0hBVF9ISVRMX09QVElPTicsXG4gIGFpQ2hhdE1wT3BlbjogJ0FJX0NIQVRfTVBfT1BFTicsXG4gIGFpQ2hhdE1wU2VsZWN0QWdlbnQ6ICdBSV9DSEFUX01QX1NFTEVDVF9BR0VOVCcsXG4gIGFpQ2hhdFN1Z2dlc3RlZEFuc3dlcjogJ0FJX0NIQVRfU1VHR0VTVEVEX0FOU1dFUicsXG4gIGFpQ2hhdE9wZW5WaWV3T3B0aW9uczogJ0FJX0NIQVRfT1BFTl9WSUVXX09QVElPTlMnLFxuICBhaUNoYXRTZWxlY3RWaWV3T3B0aW9uczogJ0FJX0NIQVRfU0VMRUNUX1ZJRVdfT1BUSU9OUycsXG4gIGFpQ2hhdERyYWdnYWJsZTogJ0FJX0NIQVRfRFJBR0dBQkxFJyxcbn1cblxuY29uc3QgQUJNX0FHRU5UX0VWRU5UUyA9IHtcbiAgb3Blbk1vZGFsOiAnQUlfQ0hBVF9BQk1fQUNDRVNTJyxcbiAgY2FuY2VsTW9kYWw6ICdBSV9DSEFUX0FCTV9DQU5DRUwnLFxuICB0YWJTZWN0aW9uOiAnQUlfQ0hBVF9BQk1fU0VDVElPTicsXG4gIGFkZEZpbGU6ICdBSV9DSEFUX0FCTV9TRUNUSU9OJyxcbiAgY29uZmlybUFjdGlvbjogJ0FJX0NIQVRfQUJNX0NPTkZJUk0nLFxuICBkZWxldGU6ICdBSV9DSEFUX0FCTV9ERUxFVEVfQUdFTlQnLFxuICBhY2Nlc3NpYmlsaXR5VHlwZTogJ0FJX0NIQVRfQUJNX0FDQ0VTU0lCSUxJVFlfVFlQRScsXG4gIGFjY2Vzc2liaWxpdHlTZWxlY3RDbGllbnQ6ICdBSV9DSEFUX0FCTV9BQ0NFU1NJQklMSVRZX1NFTEVDVF9DTElFTlQnLFxuICBzZWxlY3RNb2RlbDogJ0FJX0NIQVRfQUJNX1NFTEVDVF9NT0RFTCcsXG4gIGNob29zZU1vZGVsOiAnQUlfQ0hBVF9BQk1fQ0hPT1NFX01PREVMJyxcbn1cbmV4cG9ydCBjb25zdCBFVkVOVFMgPSB7XG4gIC4uLlBST0pFQ1RfUkVTVU1FX0VWRU5UUyxcbiAgLi4uQ0hBVF9BSV9FVkVOVFMsXG4gIC4uLkFCTV9BR0VOVF9FVkVOVFMsXG59XG5cbmV4cG9ydCB0eXBlIEV2ZW50TmFtZSA9ICh0eXBlb2YgRVZFTlRTKVtrZXlvZiB0eXBlb2YgRVZFTlRTXVxuXG5leHBvcnQgY29uc3QgdXNlRXZlbnQgPSAoKSA9PiB7XG4gIGNvbnN0IHsgY29tcGFueV9pZDogY29tcGFueUlkLCBpZDogdXNlcklkIH0gPSB1c2VVc2VyKClcblxuICBjb25zdCB0cmlnZ2VyRXZlbnQgPSB1c2VDYWxsYmFjayg8RXZlbnRBcmdzPihldmVudE5hbWU6IEV2ZW50TmFtZSwgYXJncz86IEV2ZW50QXJncykgPT4ge1xuICAgIGRpc3BhdGNoQW1wbGl0dWRlKGV2ZW50TmFtZSwgY29tcGFueUlkLCB7XG4gICAgICBjb21wYW55SWQsXG4gICAgICB1c2VySWQsXG4gICAgICAuLi5hcmdzLFxuICAgIH0pXG4gIH0sIFtdKVxuXG4gIHJldHVybiB0cmlnZ2VyRXZlbnRcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsU0FBU0EsV0FBVyxRQUFR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
81
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VDYWxsYmFjayIsImRpc3BhdGNoQW1wbGl0dWRlIiwidXNlVXNlciIsIlBST0pFQ1RfUkVTVU1FX0VWRU5UUyIsInByb2plY3RSZXN1bWVPcGVuIiwicHJvamVjdFJlc3VtZU9wZW5Db25maWd1cmUiLCJwcm9qZWN0UmVzdW1lQ29uZmlnQ2hhbmdlIiwicHJvamVjdFJlc3VtZUdlbmVyYXRlIiwicHJvamVjdFJlc3VtZUNsb3NlIiwicHJvamVjdFJlc3VtZUV4cGFuZCIsInByb2plY3RSZXN1bWVCYWNrVGVtcGxhdGVzIiwicHJvamVjdFJlc3VtZUZlZWRiYWNrIiwicHJvamVjdFJlc3VtZUNvcHkiLCJwcm9qZWN0UmVzdW1lR2VuZXJhdGlvbkNvbXBsZXRlIiwiQ0hBVF9BSV9FVkVOVFMiLCJwbUFpT3BlbiIsInBtQWlGcmVxdWVudFF1ZXN0aW9uIiwicG1BaVR5cGVkVGV4dCIsInBtQWlTZW5kUXVlc3Rpb24iLCJwbUFpT3BlbkNoYXRIaXN0b3J5IiwicG1BaU5ld0NvbnZlcnNhdGlvbiIsInBtQWlPcGVuQ29udmVyc2F0aW9uIiwicG1BaU9wZW5NZW51IiwicG1BaU1lbnVEZWxldGUiLCJwbUFpTWVudUVkaXQiLCJwbUFpQmFja0J1dHRvbiIsImFpQ2hhdEZhcSIsImFpQ2hhdFNlbmQiLCJhaUNoYXRSZXNwb25zZSIsImFpQ2hhdE9wZW5BZ2VudFNlbGVjdCIsImFpQ2hhdEFnZW50U2VsZWN0IiwiYWlDaGF0U2VhcmNoQ29udGV4dE9wZW4iLCJhaUNoYXRTZWFyY2hDb250ZXh0U2VsZWN0UmVzdWx0IiwiYWlDaGF0TWVudGlvbk9wZW4iLCJhaUNoYXRNZW50aW9uVHlwZVN3aXRjaCIsImFpQ2hhdE1lbnRpb25TZWxlY3QiLCJhaUNoYXRNZW50aW9uUmVtb3ZlIiwiYWlDaGF0QnJlYWRjcnVtYkNoYW5nZSIsImFpQ2hhdEZhdm9yaXRlIiwiYWlDaGF0VG9vbHMiLCJhaUNoYXRTdG9wUmVzcG9uc2UiLCJhaUNoYXRTZWxlY3RGQVEiLCJhaUNoYXRIaXRsIiwiYWlDaGF0SGl0bE9wdGlvbiIsImFpQ2hhdE1wT3BlbiIsImFpQ2hhdE1wU2VsZWN0QWdlbnQiLCJhaUNoYXRTdWdnZXN0ZWRBbnN3ZXIiLCJhaUNoYXRPcGVuVmlld09wdGlvbnMiLCJhaUNoYXRTZWxlY3RWaWV3T3B0aW9ucyIsImFpQ2hhdERyYWdnYWJsZSIsIkFCTV9BR0VOVF9FVkVOVFMiLCJvcGVuTW9kYWwiLCJjYW5jZWxNb2RhbCIsInRhYlNlY3Rpb24iLCJhZGRGaWxlIiwiY29uZmlybUFjdGlvbiIsImFjY2Vzc2liaWxpdHlUeXBlIiwiYWNjZXNzaWJpbGl0eVNlbGVjdENsaWVudCIsInNlbGVjdE1vZGVsIiwiY2hvb3NlTW9kZWwiLCJFVkVOVFMiLCJfb2JqZWN0U3ByZWFkIiwidXNlRXZlbnQiLCJfdXNlVXNlciIsImNvbXBhbnlJZCIsImNvbXBhbnlfaWQiLCJ1c2VySWQiLCJpZCIsInRyaWdnZXJFdmVudCIsImV2ZW50TmFtZSIsImFyZ3MiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvaG9va3MvdXNlRXZlbnQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdXNlQ2FsbGJhY2sgfSBmcm9tICdyZWFjdCdcbmltcG9ydCBkaXNwYXRjaEFtcGxpdHVkZSBmcm9tICdAcHJvamVjdGNvci9jb3ItY29tbW9ucy9saWIvdXRpbHMvZGlzcGF0Y2hBbXBsaXR1ZGUnXG5pbXBvcnQgeyB1c2VVc2VyIH0gZnJvbSAnLi4vY29udGV4dC9jb3ItdXNlcidcblxuY29uc3QgUFJPSkVDVF9SRVNVTUVfRVZFTlRTID0ge1xuICBwcm9qZWN0UmVzdW1lT3BlbjogJ1BST0pFQ1RfUkVTVU1FX09QRU4nLFxuICBwcm9qZWN0UmVzdW1lT3BlbkNvbmZpZ3VyZTogJ1BST0pFQ1RfUkVTVU1FX09QRU5fQ09ORklHVVJFJyxcbiAgcHJvamVjdFJlc3VtZUNvbmZpZ0NoYW5nZTogJ1BST0pFQ1RfUkVTVU1FX0NPTkZJR19DSEFOR0UnLFxuICBwcm9qZWN0UmVzdW1lR2VuZXJhdGU6ICdQUk9KRUNUX1JFU1VNRV9HRU5FUkFURScsXG4gIHByb2plY3RSZXN1bWVDbG9zZTogJ1BST0pFQ1RfUkVTVU1FX0NMT1NFJyxcbiAgcHJvamVjdFJlc3VtZUV4cGFuZDogJ1BST0pFQ1RfUkVTVU1FX0VYUEFORCcsXG4gIHByb2plY3RSZXN1bWVCYWNrVGVtcGxhdGVzOiAnUFJPSkVDVF9SRVNVTUVfQkFDS19URU1QTEFURVMnLFxuICBwcm9qZWN0UmVzdW1lRmVlZGJhY2s6ICdQUk9KRUNUX1JFU1VNRV9GRUVEQkFDSycsXG4gIHByb2plY3RSZXN1bWVDb3B5OiAnUFJPSkVDVF9SRVNVTUVfQ09QWScsXG4gIHByb2plY3RSZXN1bWVHZW5lcmF0aW9uQ29tcGxldGU6ICdQUk9KRUNUX1JFU1VNRV9HRU5FUkFUSU9OX0NPTVBMRVRFJyxcbn1cblxuY29uc3QgQ0hBVF9BSV9FVkVOVFMgPSB7XG4gIHBtQWlPcGVuOiAnUE1fQUlfT1BFTicsXG4gIHBtQWlGcmVxdWVudFF1ZXN0aW9uOiAnUE1fQUlfRlJFUVVFTlRfUVVFU1RJT04nLFxuICBwbUFpVHlwZWRUZXh0OiAnQUlfQ0hBVF9UWVBFRCcsXG4gIHBtQWlTZW5kUXVlc3Rpb246ICdQTV9BSV9TRU5EX1FVRVNUSU9OJyxcbiAgcG1BaU9wZW5DaGF0SGlzdG9yeTogJ1BNX0FJX09QRU5fQ0hBVF9ISVNUT1JZJyxcbiAgcG1BaU5ld0NvbnZlcnNhdGlvbjogJ1BNX0FJX05FV19DT05WRVJTQVRJT04nLFxuICBwbUFpT3BlbkNvbnZlcnNhdGlvbjogJ1BNX0FJX09QRU5fQ09OVkVSU0FUSU9OJyxcbiAgcG1BaU9wZW5NZW51OiAnUE1fQUlfT1BFTl9NRU5VJyxcbiAgcG1BaU1lbnVEZWxldGU6ICdQTV9BSV9NRU5VX0RFTEVURScsXG4gIHBtQWlNZW51RWRpdDogJ1BNX0FJX01FTlVfRURJVCcsXG4gIHBtQWlCYWNrQnV0dG9uOiAnUE1fQUlfQkFDS19CVVRUT04nLFxuICBhaUNoYXRGYXE6ICdBSV9DSEFUX0ZBUScsXG4gIGFpQ2hhdFNlbmQ6ICdBSV9DSEFUX1NFTkQnLFxuICBhaUNoYXRSZXNwb25zZTogJ0FJX0NIQVRfUkVTUE9OU0UnLFxuICBhaUNoYXRPcGVuQWdlbnRTZWxlY3Q6ICdBSV9DSEFUX09QRU5fQUdFTlRFX1NFTEVDVCcsXG4gIGFpQ2hhdEFnZW50U2VsZWN0OiAnQUlfQ0hBVF9BR0VOVEVfU0VMRUNURUQnLFxuICBhaUNoYXRTZWFyY2hDb250ZXh0T3BlbjogJ0FJX0NIQVRfU0VBUkNIX0NPTlRFWFRfT1BFTicsXG4gIGFpQ2hhdFNlYXJjaENvbnRleHRTZWxlY3RSZXN1bHQ6ICdBSV9DSEFUX1NFQVJDSF9DT05URVhUX1NFTEVDVF9SRVNVTFQnLFxuICBhaUNoYXRNZW50aW9uT3BlbjogJ0FJX0NIQVRfTUVOVElPTl9PUEVOJyxcbiAgYWlDaGF0TWVudGlvblR5cGVTd2l0Y2g6ICdBSV9DSEFUX01FTlRJT05fVFlQRV9TV0lUQ0gnLFxuICBhaUNoYXRNZW50aW9uU2VsZWN0OiAnQUlfQ0hBVF9NRU5USU9OX1NFTEVDVCcsXG4gIGFpQ2hhdE1lbnRpb25SZW1vdmU6ICdBSV9DSEFUX01FTlRJT05fUkVNT1ZFJyxcbiAgYWlDaGF0QnJlYWRjcnVtYkNoYW5nZTogJ0FJX0NIQVRfQlJFQURDUlVNQl9DSEFOR0UnLFxuICBhaUNoYXRGYXZvcml0ZTogJ0FJX0NIQVRfRkFWT1JJVEUnLFxuICBhaUNoYXRUb29sczogJ0FJX0NIQVRfVE9PTFMnLFxuICBhaUNoYXRTdG9wUmVzcG9uc2U6ICdBSV9DSEFUX1NUT1BfUkVTUE9OU0UnLFxuICBhaUNoYXRTZWxlY3RGQVE6ICdBSV9DSEFUX1NFTEVDVF9GQVEnLFxuICBhaUNoYXRIaXRsOiAnQUlfQ0hBVF9ISVRMJyxcbiAgYWlDaGF0SGl0bE9wdGlvbjogJ0FJX0NIQVRfSElUTF9PUFRJT04nLFxuICBhaUNoYXRNcE9wZW46ICdBSV9DSEFUX01QX09QRU4nLFxuICBhaUNoYXRNcFNlbGVjdEFnZW50OiAnQUlfQ0hBVF9NUF9TRUxFQ1RfQUdFTlQnLFxuICBhaUNoYXRTdWdnZXN0ZWRBbnN3ZXI6ICdBSV9DSEFUX1NVR0dFU1RFRF9BTlNXRVInLFxuICBhaUNoYXRPcGVuVmlld09wdGlvbnM6ICdBSV9DSEFUX09QRU5fVklFV19PUFRJT05TJyxcbiAgYWlDaGF0U2VsZWN0Vmlld09wdGlvbnM6ICdBSV9DSEFUX1NFTEVDVF9WSUVXX09QVElPTlMnLFxuICBhaUNoYXREcmFnZ2FibGU6ICdBSV9DSEFUX0RSQUdHQUJMRScsXG59XG5cbmNvbnN0IEFCTV9BR0VOVF9FVkVOVFMgPSB7XG4gIG9wZW5Nb2RhbDogJ0FJX0NIQVRfQUJNX0FDQ0VTUycsXG4gIGNhbmNlbE1vZGFsOiAnQUlfQ0hBVF9BQk1fQ0FOQ0VMJyxcbiAgdGFiU2VjdGlvbjogJ0FJX0NIQVRfQUJNX1NFQ1RJT04nLFxuICBhZGRGaWxlOiAnQUlfQ0hBVF9BQk1fU0VDVElPTicsXG4gIGNvbmZpcm1BY3Rpb246ICdBSV9DSEFUX0FCTV9DT05GSVJNJyxcbiAgZGVsZXRlOiAnQUlfQ0hBVF9BQk1fREVMRVRFX0FHRU5UJyxcbiAgYWNjZXNzaWJpbGl0eVR5cGU6ICdBSV9DSEFUX0FCTV9BQ0NFU1NJQklMSVRZX1RZUEUnLFxuICBhY2Nlc3NpYmlsaXR5U2VsZWN0Q2xpZW50OiAnQUlfQ0hBVF9BQk1fQUNDRVNTSUJJTElUWV9TRUxFQ1RfQ0xJRU5UJyxcbiAgc2VsZWN0TW9kZWw6ICdBSV9DSEFUX0FCTV9TRUxFQ1RfTU9ERUwnLFxuICBjaG9vc2VNb2RlbDogJ0FJX0NIQVRfQUJNX0NIT09TRV9NT0RFTCcsXG59XG5leHBvcnQgY29uc3QgRVZFTlRTID0ge1xuICAuLi5QUk9KRUNUX1JFU1VNRV9FVkVOVFMsXG4gIC4uLkNIQVRfQUlfRVZFTlRTLFxuICAuLi5BQk1fQUdFTlRfRVZFTlRTLFxufVxuXG5leHBvcnQgdHlwZSBFdmVudE5hbWUgPSAodHlwZW9mIEVWRU5UUylba2V5b2YgdHlwZW9mIEVWRU5UU11cblxuZXhwb3J0IGNvbnN0IHVzZUV2ZW50ID0gKCkgPT4ge1xuICBjb25zdCB7IGNvbXBhbnlfaWQ6IGNvbXBhbnlJZCwgaWQ6IHVzZXJJZCB9ID0gdXNlVXNlcigpXG5cbiAgY29uc3QgdHJpZ2dlckV2ZW50ID0gdXNlQ2FsbGJhY2soPEV2ZW50QXJncz4oZXZlbnROYW1lOiBFdmVudE5hbWUsIGFyZ3M/OiBFdmVudEFyZ3MpID0+IHtcbiAgICBkaXNwYXRjaEFtcGxpdHVkZShldmVudE5hbWUsIGNvbXBhbnlJZCwge1xuICAgICAgY29tcGFueUlkLFxuICAgICAgdXNlcklkLFxuICAgICAgLi4uYXJncyxcbiAgICB9KVxuICB9LCBbXSlcblxuICByZXR1cm4gdHJpZ2dlckV2ZW50XG59XG4iXSwibWFwcGluZ3MiOiI7OztBQUFBLFNBQVNBLFdBQVcsUUFBUSxPQUFPO0FBQ25DLE9BQU9DLGlCQUFpQixNQUFNLHFEQUFxRDtBQUNuRixTQUFTQyxPQUFPLFFBQVEscUJBQXFCO0FBRTdDLElBQU1DLHFCQUFxQixHQUFHO0VBQzVCQyxpQkFBaUIsRUFBRSxxQkFBcUI7RUFDeENDLDBCQUEwQixFQUFFLCtCQUErQjtFQUMzREMseUJBQXlCLEVBQUUsOEJBQThCO0VBQ3pEQyxxQkFBcUIsRUFBRSx5QkFBeUI7RUFDaERDLGtCQUFrQixFQUFFLHNCQUFzQjtFQUMxQ0MsbUJBQW1CLEVBQUUsdUJBQXVCO0VBQzVDQywwQkFBMEIsRUFBRSwrQkFBK0I7RUFDM0RDLHFCQUFxQixFQUFFLHlCQUF5QjtFQUNoREMsaUJBQWlCLEVBQUUscUJBQXFCO0VBQ3hDQywrQkFBK0IsRUFBRTtBQUNuQyxDQUFDO0FBRUQsSUFBTUMsY0FBYyxHQUFHO0VBQ3JCQyxRQUFRLEVBQUUsWUFBWTtFQUN0QkMsb0JBQW9CLEVBQUUseUJBQXlCO0VBQy9DQyxhQUFhLEVBQUUsZUFBZTtFQUM5QkMsZ0JBQWdCLEVBQUUscUJBQXFCO0VBQ3ZDQyxtQkFBbUIsRUFBRSx5QkFBeUI7RUFDOUNDLG1CQUFtQixFQUFFLHdCQUF3QjtFQUM3Q0Msb0JBQW9CLEVBQUUseUJBQXlCO0VBQy9DQyxZQUFZLEVBQUUsaUJBQWlCO0VBQy9CQyxjQUFjLEVBQUUsbUJBQW1CO0VBQ25DQyxZQUFZLEVBQUUsaUJBQWlCO0VBQy9CQyxjQUFjLEVBQUUsbUJBQW1CO0VBQ25DQyxTQUFTLEVBQUUsYUFBYTtFQUN4QkMsVUFBVSxFQUFFLGNBQWM7RUFDMUJDLGNBQWMsRUFBRSxrQkFBa0I7RUFDbENDLHFCQUFxQixFQUFFLDRCQUE0QjtFQUNuREMsaUJBQWlCLEVBQUUseUJBQXlCO0VBQzVDQyx1QkFBdUIsRUFBRSw2QkFBNkI7RUFDdERDLCtCQUErQixFQUFFLHNDQUFzQztFQUN2RUMsaUJBQWlCLEVBQUUsc0JBQXNCO0VBQ3pDQyx1QkFBdUIsRUFBRSw2QkFBNkI7RUFDdERDLG1CQUFtQixFQUFFLHdCQUF3QjtFQUM3Q0MsbUJBQW1CLEVBQUUsd0JBQXdCO0VBQzdDQyxzQkFBc0IsRUFBRSwyQkFBMkI7RUFDbkRDLGNBQWMsRUFBRSxrQkFBa0I7RUFDbENDLFdBQVcsRUFBRSxlQUFlO0VBQzVCQyxrQkFBa0IsRUFBRSx1QkFBdUI7RUFDM0NDLGVBQWUsRUFBRSxvQkFBb0I7RUFDckNDLFVBQVUsRUFBRSxjQUFjO0VBQzFCQyxnQkFBZ0IsRUFBRSxxQkFBcUI7RUFDdkNDLFlBQVksRUFBRSxpQkFBaUI7RUFDL0JDLG1CQUFtQixFQUFFLHlCQUF5QjtFQUM5Q0MscUJBQXFCLEVBQUUsMEJBQTBCO0VBQ2pEQyxxQkFBcUIsRUFBRSwyQkFBMkI7RUFDbERDLHVCQUF1QixFQUFFLDZCQUE2QjtFQUN0REMsZUFBZSxFQUFFO0FBQ25CLENBQUM7QUFFRCxJQUFNQyxnQkFBZ0IsR0FBRztFQUN2QkMsU0FBUyxFQUFFLG9CQUFvQjtFQUMvQkMsV0FBVyxFQUFFLG9CQUFvQjtFQUNqQ0MsVUFBVSxFQUFFLHFCQUFxQjtFQUNqQ0MsT0FBTyxFQUFFLHFCQUFxQjtFQUM5QkMsYUFBYSxFQUFFLHFCQUFxQjtFQUNwQyxVQUFRLDBCQUEwQjtFQUNsQ0MsaUJBQWlCLEVBQUUsZ0NBQWdDO0VBQ25EQyx5QkFBeUIsRUFBRSx5Q0FBeUM7RUFDcEVDLFdBQVcsRUFBRSwwQkFBMEI7RUFDdkNDLFdBQVcsRUFBRTtBQUNmLENBQUM7QUFDRCxPQUFPLElBQU1DLE1BQU0sR0FBQUMsYUFBQSxDQUFBQSxhQUFBLENBQUFBLGFBQUEsS0FDZDFELHFCQUFxQixHQUNyQlcsY0FBYyxHQUNkb0MsZ0JBQWdCLENBQ3BCO0FBSUQsT0FBTyxJQUFNWSxRQUFRLEdBQUcsU0FBWEEsUUFBUUEsQ0FBQSxFQUFTO0VBQzVCLElBQUFDLFFBQUEsR0FBOEM3RCxPQUFPLENBQUMsQ0FBQztJQUFuQzhELFNBQVMsR0FBQUQsUUFBQSxDQUFyQkUsVUFBVTtJQUFpQkMsTUFBTSxHQUFBSCxRQUFBLENBQVZJLEVBQUU7RUFFakMsSUFBTUMsWUFBWSxHQUFHcEUsV0FBVyxDQUFDLFVBQVlxRSxTQUFvQixFQUFFQyxJQUFnQixFQUFLO0lBQ3RGckUsaUJBQWlCLENBQUNvRSxTQUFTLEVBQUVMLFNBQVMsRUFBQUgsYUFBQTtNQUNwQ0csU0FBUyxFQUFUQSxTQUFTO01BQ1RFLE1BQU0sRUFBTkE7SUFBTSxHQUNISSxJQUFJLENBQ1IsQ0FBQztFQUNKLENBQUMsRUFBRSxFQUFFLENBQUM7RUFFTixPQUFPRixZQUFZO0FBQ3JCLENBQUMiLCJpZ25vcmVMaXN0IjpbXX0=
@@ -0,0 +1,81 @@
1
+ import _toConsumableArray from "@babel/runtime/helpers/toConsumableArray";
2
+ import { useMemo } from 'react';
3
+ import { useGlobalContext } from '../context/global-context';
4
+ var ALL_TYPES = ['client', 'project', 'task', 'user'];
5
+ var COR_READ_SLUG_TO_TYPE = {
6
+ clients_read: 'client',
7
+ client_read: 'client',
8
+ projects_read: 'project',
9
+ project_read: 'project',
10
+ tasks_read: 'task',
11
+ task_read: 'task'
12
+ };
13
+
14
+ /**
15
+ * Deriva del agent activo qué tabs del context mention deben estar disponibles.
16
+ *
17
+ * Reglas actuales (hasta que exista agent.actions):
18
+ * - agent.entity === 'project' → [task, user] (ya está en contexto de un project)
19
+ * - agent.entity === 'client' → [project, task, user] (ya está en contexto de un client)
20
+ * - agent.entity === 'global' → todas
21
+ * - agent.type === 'custom' → todas (hasta habilitar agent.actions por agente)
22
+ * - sin agent → todas
23
+ *
24
+ * El `override` (prop `enabledTypes` del componente consumidor) siempre gana.
25
+ */
26
+ export var useMentionAllowedTypes = function useMentionAllowedTypes(override) {
27
+ var _useGlobalContext = useGlobalContext(),
28
+ agent = _useGlobalContext.agent;
29
+ return useMemo(function () {
30
+ var _agent$connectors, _corConnector$slugs, _agent$connectors$fin, _agent$connectors2, _allowedTypes$;
31
+ if (override && override.length > 0) {
32
+ var defaultType = override[0];
33
+ return {
34
+ allowedTypes: override,
35
+ defaultType: defaultType
36
+ };
37
+ }
38
+ var allowedTypes = ALL_TYPES;
39
+ if ((agent === null || agent === void 0 ? void 0 : agent.entity) === 'project') {
40
+ allowedTypes = ['task', 'user'];
41
+ } else if ((agent === null || agent === void 0 ? void 0 : agent.entity) === 'client') {
42
+ allowedTypes = ['project', 'task', 'user'];
43
+ }
44
+ var corConnector = agent === null || agent === void 0 || (_agent$connectors = agent.connectors) === null || _agent$connectors === void 0 ? void 0 : _agent$connectors.find(function (connector) {
45
+ return connector.group === 'COR';
46
+ });
47
+ var allowedByConnectors = new Set(((_corConnector$slugs = corConnector === null || corConnector === void 0 ? void 0 : corConnector.slugs) !== null && _corConnector$slugs !== void 0 ? _corConnector$slugs : []).map(function (slug) {
48
+ return COR_READ_SLUG_TO_TYPE[slug];
49
+ }).filter(function (type) {
50
+ return !!type;
51
+ }));
52
+
53
+ // Si el agente trae conectores COR, habilitar client/project/task solo cuando existe *_read.
54
+ // El tipo "user" mantiene su comportamiento actual (según entity) porque no depende de estos slugs.
55
+ if (corConnector) {
56
+ allowedTypes = allowedTypes.filter(function (type) {
57
+ return type === 'user' || allowedByConnectors.has(type);
58
+ });
59
+ }
60
+
61
+ // `user` sólo se habilita junto con `task`.
62
+ if (!allowedTypes.includes('task')) {
63
+ allowedTypes = allowedTypes.filter(function (type) {
64
+ return type !== 'user';
65
+ });
66
+ }
67
+ var mcpSlugs = (_agent$connectors$fin = agent === null || agent === void 0 || (_agent$connectors2 = agent.connectors) === null || _agent$connectors2 === void 0 || (_agent$connectors2 = _agent$connectors2.find(function (connector) {
68
+ return connector.group === 'MCP';
69
+ })) === null || _agent$connectors2 === void 0 || (_agent$connectors2 = _agent$connectors2.slugs) === null || _agent$connectors2 === void 0 ? void 0 : _agent$connectors2.filter(function (slug) {
70
+ return typeof slug === 'string' && slug.trim().length > 0;
71
+ })) !== null && _agent$connectors$fin !== void 0 ? _agent$connectors$fin : [];
72
+ if (mcpSlugs.length > 0) {
73
+ allowedTypes = [].concat(_toConsumableArray(allowedTypes), ['mcp']);
74
+ }
75
+ return {
76
+ allowedTypes: allowedTypes,
77
+ defaultType: (_allowedTypes$ = allowedTypes[0]) !== null && _allowedTypes$ !== void 0 ? _allowedTypes$ : 'user'
78
+ };
79
+ }, [agent === null || agent === void 0 ? void 0 : agent.entity, agent === null || agent === void 0 ? void 0 : agent.connectors, override]);
80
+ };
81
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VNZW1vIiwidXNlR2xvYmFsQ29udGV4dCIsIkFMTF9UWVBFUyIsIkNPUl9SRUFEX1NMVUdfVE9fVFlQRSIsImNsaWVudHNfcmVhZCIsImNsaWVudF9yZWFkIiwicHJvamVjdHNfcmVhZCIsInByb2plY3RfcmVhZCIsInRhc2tzX3JlYWQiLCJ0YXNrX3JlYWQiLCJ1c2VNZW50aW9uQWxsb3dlZFR5cGVzIiwib3ZlcnJpZGUiLCJfdXNlR2xvYmFsQ29udGV4dCIsImFnZW50IiwiX2FnZW50JGNvbm5lY3RvcnMiLCJfY29yQ29ubmVjdG9yJHNsdWdzIiwiX2FnZW50JGNvbm5lY3RvcnMkZmluIiwiX2FnZW50JGNvbm5lY3RvcnMyIiwiX2FsbG93ZWRUeXBlcyQiLCJsZW5ndGgiLCJkZWZhdWx0VHlwZSIsImFsbG93ZWRUeXBlcyIsImVudGl0eSIsImNvckNvbm5lY3RvciIsImNvbm5lY3RvcnMiLCJmaW5kIiwiY29ubmVjdG9yIiwiZ3JvdXAiLCJhbGxvd2VkQnlDb25uZWN0b3JzIiwiU2V0Iiwic2x1Z3MiLCJtYXAiLCJzbHVnIiwiZmlsdGVyIiwidHlwZSIsImhhcyIsImluY2x1ZGVzIiwibWNwU2x1Z3MiLCJ0cmltIiwiY29uY2F0IiwiX3RvQ29uc3VtYWJsZUFycmF5Il0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL2hvb2tzL3VzZU1lbnRpb25BbGxvd2VkVHlwZXMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdXNlTWVtbyB9IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHsgdXNlR2xvYmFsQ29udGV4dCB9IGZyb20gJy4uL2NvbnRleHQvZ2xvYmFsLWNvbnRleHQnXG5pbXBvcnQgeyBDb250ZXh0RW50aXR5VHlwZSB9IGZyb20gJy4uL3R5cGVzL2NvbnRleHRNZW50aW9uJ1xuXG5jb25zdCBBTExfVFlQRVM6IENvbnRleHRFbnRpdHlUeXBlW10gPSBbJ2NsaWVudCcsICdwcm9qZWN0JywgJ3Rhc2snLCAndXNlciddXG5cbmNvbnN0IENPUl9SRUFEX1NMVUdfVE9fVFlQRTogUmVjb3JkPHN0cmluZywgRXh0cmFjdDxDb250ZXh0RW50aXR5VHlwZSwgJ2NsaWVudCcgfCAncHJvamVjdCcgfCAndGFzayc+PiA9IHtcbiAgY2xpZW50c19yZWFkOiAnY2xpZW50JyxcbiAgY2xpZW50X3JlYWQ6ICdjbGllbnQnLFxuICBwcm9qZWN0c19yZWFkOiAncHJvamVjdCcsXG4gIHByb2plY3RfcmVhZDogJ3Byb2plY3QnLFxuICB0YXNrc19yZWFkOiAndGFzaycsXG4gIHRhc2tfcmVhZDogJ3Rhc2snLFxufVxuXG4vKipcbiAqIERlcml2YSBkZWwgYWdlbnQgYWN0aXZvIHF1w6kgdGFicyBkZWwgY29udGV4dCBtZW50aW9uIGRlYmVuIGVzdGFyIGRpc3BvbmlibGVzLlxuICpcbiAqIFJlZ2xhcyBhY3R1YWxlcyAoaGFzdGEgcXVlIGV4aXN0YSBhZ2VudC5hY3Rpb25zKTpcbiAqICAgLSBhZ2VudC5lbnRpdHkgPT09ICdwcm9qZWN0JyDihpIgW3Rhc2ssIHVzZXJdICAgICAgICAgICAgKHlhIGVzdMOhIGVuIGNvbnRleHRvIGRlIHVuIHByb2plY3QpXG4gKiAgIC0gYWdlbnQuZW50aXR5ID09PSAnY2xpZW50JyAg4oaSIFtwcm9qZWN0LCB0YXNrLCB1c2VyXSAgICh5YSBlc3TDoSBlbiBjb250ZXh0byBkZSB1biBjbGllbnQpXG4gKiAgIC0gYWdlbnQuZW50aXR5ID09PSAnZ2xvYmFsJyAg4oaSIHRvZGFzXG4gKiAgIC0gYWdlbnQudHlwZSA9PT0gJ2N1c3RvbScgICAg4oaSIHRvZGFzIChoYXN0YSBoYWJpbGl0YXIgYWdlbnQuYWN0aW9ucyBwb3IgYWdlbnRlKVxuICogICAtIHNpbiBhZ2VudCAgICAgICAgICAgICAgICAgIOKGkiB0b2Rhc1xuICpcbiAqIEVsIGBvdmVycmlkZWAgKHByb3AgYGVuYWJsZWRUeXBlc2AgZGVsIGNvbXBvbmVudGUgY29uc3VtaWRvcikgc2llbXByZSBnYW5hLlxuICovXG5leHBvcnQgY29uc3QgdXNlTWVudGlvbkFsbG93ZWRUeXBlcyA9IChvdmVycmlkZT86IENvbnRleHRFbnRpdHlUeXBlW10pID0+IHtcbiAgY29uc3QgeyBhZ2VudCB9ID0gdXNlR2xvYmFsQ29udGV4dCgpXG5cbiAgcmV0dXJuIHVzZU1lbW8oKCkgPT4ge1xuICAgIGlmIChvdmVycmlkZSAmJiBvdmVycmlkZS5sZW5ndGggPiAwKSB7XG4gICAgICBjb25zdCBkZWZhdWx0VHlwZSA9IG92ZXJyaWRlWzBdXG4gICAgICByZXR1cm4geyBhbGxvd2VkVHlwZXM6IG92ZXJyaWRlLCBkZWZhdWx0VHlwZSB9XG4gICAgfVxuXG4gICAgbGV0IGFsbG93ZWRUeXBlczogQ29udGV4dEVudGl0eVR5cGVbXSA9IEFMTF9UWVBFU1xuXG4gICAgaWYgKGFnZW50Py5lbnRpdHkgPT09ICdwcm9qZWN0Jykge1xuICAgICAgYWxsb3dlZFR5cGVzID0gWyd0YXNrJywgJ3VzZXInXVxuICAgIH0gZWxzZSBpZiAoYWdlbnQ/LmVudGl0eSA9PT0gJ2NsaWVudCcpIHtcbiAgICAgIGFsbG93ZWRUeXBlcyA9IFsncHJvamVjdCcsICd0YXNrJywgJ3VzZXInXVxuICAgIH1cblxuICAgIGNvbnN0IGNvckNvbm5lY3RvciA9IGFnZW50Py5jb25uZWN0b3JzPy5maW5kKGNvbm5lY3RvciA9PiBjb25uZWN0b3IuZ3JvdXAgPT09ICdDT1InKVxuICAgIGNvbnN0IGFsbG93ZWRCeUNvbm5lY3RvcnMgPSBuZXcgU2V0PENvbnRleHRFbnRpdHlUeXBlPihcbiAgICAgIChjb3JDb25uZWN0b3I/LnNsdWdzID8/IFtdKVxuICAgICAgICAubWFwKHNsdWcgPT4gQ09SX1JFQURfU0xVR19UT19UWVBFW3NsdWddKVxuICAgICAgICAuZmlsdGVyKCh0eXBlKTogdHlwZSBpcyBFeHRyYWN0PENvbnRleHRFbnRpdHlUeXBlLCAnY2xpZW50JyB8ICdwcm9qZWN0JyB8ICd0YXNrJz4gPT4gISF0eXBlKVxuICAgIClcblxuICAgIC8vIFNpIGVsIGFnZW50ZSB0cmFlIGNvbmVjdG9yZXMgQ09SLCBoYWJpbGl0YXIgY2xpZW50L3Byb2plY3QvdGFzayBzb2xvIGN1YW5kbyBleGlzdGUgKl9yZWFkLlxuICAgIC8vIEVsIHRpcG8gXCJ1c2VyXCIgbWFudGllbmUgc3UgY29tcG9ydGFtaWVudG8gYWN0dWFsIChzZWfDum4gZW50aXR5KSBwb3JxdWUgbm8gZGVwZW5kZSBkZSBlc3RvcyBzbHVncy5cbiAgICBpZiAoY29yQ29ubmVjdG9yKSB7XG4gICAgICBhbGxvd2VkVHlwZXMgPSBhbGxvd2VkVHlwZXMuZmlsdGVyKHR5cGUgPT4gdHlwZSA9PT0gJ3VzZXInIHx8IGFsbG93ZWRCeUNvbm5lY3RvcnMuaGFzKHR5cGUpKVxuICAgIH1cblxuICAgIC8vIGB1c2VyYCBzw7NsbyBzZSBoYWJpbGl0YSBqdW50byBjb24gYHRhc2tgLlxuICAgIGlmICghYWxsb3dlZFR5cGVzLmluY2x1ZGVzKCd0YXNrJykpIHtcbiAgICAgIGFsbG93ZWRUeXBlcyA9IGFsbG93ZWRUeXBlcy5maWx0ZXIodHlwZSA9PiB0eXBlICE9PSAndXNlcicpXG4gICAgfVxuXG4gICAgY29uc3QgbWNwU2x1Z3MgPVxuICAgICAgYWdlbnQ/LmNvbm5lY3RvcnNcbiAgICAgICAgPy5maW5kKGNvbm5lY3RvciA9PiBjb25uZWN0b3IuZ3JvdXAgPT09ICdNQ1AnKVxuICAgICAgICA/LnNsdWdzPy5maWx0ZXIoKHNsdWcpOiBzbHVnIGlzIHN0cmluZyA9PiB0eXBlb2Ygc2x1ZyA9PT0gJ3N0cmluZycgJiYgc2x1Zy50cmltKCkubGVuZ3RoID4gMCkgPz8gW11cbiAgICBpZiAobWNwU2x1Z3MubGVuZ3RoID4gMCkge1xuICAgICAgYWxsb3dlZFR5cGVzID0gWy4uLmFsbG93ZWRUeXBlcywgJ21jcCddXG4gICAgfVxuXG4gICAgcmV0dXJuIHtcbiAgICAgIGFsbG93ZWRUeXBlcyxcbiAgICAgIGRlZmF1bHRUeXBlOiBhbGxvd2VkVHlwZXNbMF0gPz8gJ3VzZXInLFxuICAgIH1cbiAgfSwgW2FnZW50Py5lbnRpdHksIGFnZW50Py5jb25uZWN0b3JzLCBvdmVycmlkZV0pXG59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