@projectcor/maia-components 2.11.70-0 → 2.11.70
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.
- package/lib/components/atoms/Chip/Chip.js +15 -50
- package/lib/components/atoms/Chip/styles.js +5 -9
- package/lib/components/atoms/ContextMentionPopover/ContextMentionPopover.js +6 -38
- package/lib/components/atoms/ContextMentionPopover/ContextMentionPopover.styles.js +13 -21
- package/lib/components/atoms/MAIAInput/MAIAInput.js +14 -32
- package/lib/components/molecules/ChatAIHome/ChatAIHome.js +46 -297
- package/lib/components/molecules/ChatAIHome/styles.js +26 -63
- package/lib/components/molecules/ChatAIMessages/ChatAIMessages.js +148 -54
- package/lib/components/molecules/ChatAIMessages/newStyles.js +9 -19
- package/lib/components/molecules/ChatAIModal/ChatAIModal.js +42 -220
- package/lib/components/molecules/ChatAIModal/components/ChatAiAgentOptions/ChatAiAgentOptions.js +1 -4
- package/lib/components/molecules/ChatAIModal/components/ChatAiModalFooter/ChatAiModalFooter.js +1 -26
- package/lib/components/molecules/ChatAIModal/components/ChatAiModalHeader/ChatAiModalHeader.js +26 -21
- package/lib/components/molecules/ChatAIMyAgents/ChatAIMyAgents.js +8 -4
- package/lib/components/molecules/ChatAIMyAgents/ChatAIMyAgents.styles.js +11 -3
- package/lib/components/molecules/ChatFooter/ChatFooter.js +20 -81
- package/lib/components/molecules/ChatFooter/ChatFooterFaqs.js +7 -22
- package/lib/components/molecules/ChatFooter/styles.js +2 -11
- package/lib/components/molecules/Sidebar/Sidebar.js +7 -11
- package/lib/components/organisms/EditQuestionModal/EditQuestionModal.js +2 -2
- package/lib/constants/maiaTaskPanelAccess.js +5 -7
- package/lib/constants/taskUrls.js +2 -9
- package/lib/context/global-context.js +1 -8
- package/lib/hooks/index.js +1 -2
- package/lib/hooks/useChatManager/useChatManager.js +125 -149
- package/lib/hooks/useChatMessages/useChatMessages.js +2 -33
- package/lib/hooks/useEntitySearch.js +129 -74
- package/lib/hooks/useEvent.js +1 -2
- package/lib/hooks/useFrequentlyAskedQuestions.js +10 -12
- package/lib/hooks/useFrequentlyUsedActions.js +3 -5
- package/lib/hooks/useMentionAllowedTypes.js +1 -11
- package/lib/hooks/useMentionPopover.js +2 -3
- package/lib/hooks/useOrchestratorStream/useOrchestratorStream.interface.js +1 -1
- package/lib/hooks/useOrchestratorStream/useOrchestratorStream.js +18 -27
- package/lib/hooks/useProjectSearch.js +28 -4
- package/lib/hooks/useProjectSummaryConfig.js +4 -74
- package/lib/hooks/useRecentClientsSearch.js +34 -4
- package/lib/hooks/useSmoothStreamText/useSmoothStreamText.js +16 -24
- package/lib/lang/br/index.js +4 -29
- package/lib/lang/en/index.js +4 -29
- package/lib/lang/es/index.js +4 -29
- package/lib/lang/fr/index.js +4 -29
- package/lib/services/maia/Actions/getFrequentlyUsedActions.js +3 -6
- package/lib/services/maia/Agents/getAgents.js +175 -225
- package/lib/services/maia/Chats/getChatMessages.js +3 -13
- package/lib/services/maia/Chats/getChatsByUserId.js +2 -10
- package/lib/services/maia/Faqs/getFrequentlyAskedQuestions.js +4 -6
- package/lib/services/maia/Orchestrator/orchestrator.js +5 -21
- package/lib/services/maia/index.js +2 -4
- package/lib/services/utils/validateIsMaia.js +2 -2
- package/lib/types/agent.js +1 -1
- package/lib/utils/agentDisplayName.js +1 -9
- package/lib/utils/hitlAnalytics.js +3 -3
- package/lib/utils/renderContextMentions.js +1 -3
- package/package.json +1 -1
- package/lib/hooks/useContextPinPopover.js +0 -235
- package/lib/hooks/useRecentContexts.js +0 -86
- package/lib/services/maia/RecentContexts/getRecentContexts.js +0 -54
- package/lib/services/maia/RecentContexts/index.js +0 -6
- package/lib/utils/entityLinkRender.js +0 -135
|
@@ -1,54 +0,0 @@
|
|
|
1
|
-
import _asyncToGenerator from "@babel/runtime/helpers/asyncToGenerator";
|
|
2
|
-
import _regeneratorRuntime from "@babel/runtime/regenerator";
|
|
3
|
-
import { fetchMaia } from '../client';
|
|
4
|
-
var buildPath = function buildPath(opts) {
|
|
5
|
-
var params = new URLSearchParams();
|
|
6
|
-
if ((opts === null || opts === void 0 ? void 0 : opts.limit) != null) {
|
|
7
|
-
params.set('limit', String(opts.limit));
|
|
8
|
-
}
|
|
9
|
-
var qs = params.toString();
|
|
10
|
-
return qs ? "recent-contexts?".concat(qs) : 'recent-contexts';
|
|
11
|
-
};
|
|
12
|
-
export var getRecentContexts = /*#__PURE__*/function () {
|
|
13
|
-
var _ref = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee(opts) {
|
|
14
|
-
var _json$data;
|
|
15
|
-
var response, json, items;
|
|
16
|
-
return _regeneratorRuntime.wrap(function (_context) {
|
|
17
|
-
while (1) switch (_context.prev = _context.next) {
|
|
18
|
-
case 0:
|
|
19
|
-
_context.next = 1;
|
|
20
|
-
return fetchMaia({
|
|
21
|
-
path: buildPath(opts),
|
|
22
|
-
method: 'GET',
|
|
23
|
-
headers: opts !== null && opts !== void 0 && opts.agentId ? {
|
|
24
|
-
'X-Agent-Id': String(opts.agentId)
|
|
25
|
-
} : undefined
|
|
26
|
-
});
|
|
27
|
-
case 1:
|
|
28
|
-
response = _context.sent;
|
|
29
|
-
if (response.ok) {
|
|
30
|
-
_context.next = 2;
|
|
31
|
-
break;
|
|
32
|
-
}
|
|
33
|
-
throw new Error('Failed fetching recent contexts');
|
|
34
|
-
case 2:
|
|
35
|
-
_context.next = 3;
|
|
36
|
-
return response.json();
|
|
37
|
-
case 3:
|
|
38
|
-
json = _context.sent;
|
|
39
|
-
items = Array.isArray(json) ? json : (_json$data = json === null || json === void 0 ? void 0 : json.data) !== null && _json$data !== void 0 ? _json$data : [];
|
|
40
|
-
return _context.abrupt("return", items.filter(function (item) {
|
|
41
|
-
var context = item;
|
|
42
|
-
return (context === null || context === void 0 ? void 0 : context.id) != null && context.name != null && ['client', 'project', 'task'].includes(String(context.type));
|
|
43
|
-
}));
|
|
44
|
-
case 4:
|
|
45
|
-
case "end":
|
|
46
|
-
return _context.stop();
|
|
47
|
-
}
|
|
48
|
-
}, _callee);
|
|
49
|
-
}));
|
|
50
|
-
return function getRecentContexts(_x) {
|
|
51
|
-
return _ref.apply(this, arguments);
|
|
52
|
-
};
|
|
53
|
-
}();
|
|
54
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJmZXRjaE1haWEiLCJidWlsZFBhdGgiLCJvcHRzIiwicGFyYW1zIiwiVVJMU2VhcmNoUGFyYW1zIiwibGltaXQiLCJzZXQiLCJTdHJpbmciLCJxcyIsInRvU3RyaW5nIiwiY29uY2F0IiwiZ2V0UmVjZW50Q29udGV4dHMiLCJfcmVmIiwiX2FzeW5jVG9HZW5lcmF0b3IiLCJfcmVnZW5lcmF0b3JSdW50aW1lIiwibWFyayIsIl9jYWxsZWUiLCJfanNvbiRkYXRhIiwicmVzcG9uc2UiLCJqc29uIiwiaXRlbXMiLCJ3cmFwIiwiX2NvbnRleHQiLCJwcmV2IiwibmV4dCIsInBhdGgiLCJtZXRob2QiLCJoZWFkZXJzIiwiYWdlbnRJZCIsInVuZGVmaW5lZCIsInNlbnQiLCJvayIsIkVycm9yIiwiQXJyYXkiLCJpc0FycmF5IiwiZGF0YSIsImFicnVwdCIsImZpbHRlciIsIml0ZW0iLCJjb250ZXh0IiwiaWQiLCJuYW1lIiwiaW5jbHVkZXMiLCJ0eXBlIiwic3RvcCIsIl94IiwiYXBwbHkiLCJhcmd1bWVudHMiXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvc2VydmljZXMvbWFpYS9SZWNlbnRDb250ZXh0cy9nZXRSZWNlbnRDb250ZXh0cy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBmZXRjaE1haWEgfSBmcm9tICcuLi9jbGllbnQnXG5cbmV4cG9ydCB0eXBlIFJlY2VudENvbnRleHRUeXBlID0gJ2NsaWVudCcgfCAncHJvamVjdCcgfCAndGFzaydcblxuZXhwb3J0IHR5cGUgUmVjZW50Q29udGV4dFBhcmVudHMgPSB7XG4gIGNsaWVudF9pZD86IHN0cmluZyB8IG51bWJlciB8IG51bGxcbiAgY2xpZW50X25hbWU/OiBzdHJpbmcgfCBudWxsXG4gIHByb2plY3RfaWQ/OiBzdHJpbmcgfCBudW1iZXIgfCBudWxsXG4gIHByb2plY3RfbmFtZT86IHN0cmluZyB8IG51bGxcbn1cblxuZXhwb3J0IHR5cGUgUmVjZW50Q29udGV4dEl0ZW0gPSB7XG4gIHR5cGU6IFJlY2VudENvbnRleHRUeXBlXG4gIGlkOiBzdHJpbmcgfCBudW1iZXJcbiAgbmFtZTogc3RyaW5nXG4gIHBhcmVudHM/OiBSZWNlbnRDb250ZXh0UGFyZW50cyB8IG51bGxcbiAgbGFzdF9pbnRlcmFjdGlvbl9kYXRlPzogc3RyaW5nIHwgbnVsbFxufVxuXG5leHBvcnQgdHlwZSBHZXRSZWNlbnRDb250ZXh0c09wdGlvbnMgPSB7XG4gIGFnZW50SWQ/OiBzdHJpbmcgfCBudW1iZXJcbiAgbGltaXQ/OiBudW1iZXJcbn1cblxuY29uc3QgYnVpbGRQYXRoID0gKG9wdHM/OiBHZXRSZWNlbnRDb250ZXh0c09wdGlvbnMpID0+IHtcbiAgY29uc3QgcGFyYW1zID0gbmV3IFVSTFNlYXJjaFBhcmFtcygpXG4gIGlmIChvcHRzPy5saW1pdCAhPSBudWxsKSB7XG4gICAgcGFyYW1zLnNldCgnbGltaXQnLCBTdHJpbmcob3B0cy5saW1pdCkpXG4gIH1cbiAgY29uc3QgcXMgPSBwYXJhbXMudG9TdHJpbmcoKVxuICByZXR1cm4gcXMgPyBgcmVjZW50LWNvbnRleHRzPyR7cXN9YCA6ICdyZWNlbnQtY29udGV4dHMnXG59XG5cbmV4cG9ydCBjb25zdCBnZXRSZWNlbnRDb250ZXh0cyA9IGFzeW5jIChvcHRzPzogR2V0UmVjZW50Q29udGV4dHNPcHRpb25zKTogUHJvbWlzZTxSZWNlbnRDb250ZXh0SXRlbVtdPiA9PiB7XG4gIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZmV0Y2hNYWlhKHtcbiAgICBwYXRoOiBidWlsZFBhdGgob3B0cyksXG4gICAgbWV0aG9kOiAnR0VUJyxcbiAgICBoZWFkZXJzOiBvcHRzPy5hZ2VudElkID8geyAnWC1BZ2VudC1JZCc6IFN0cmluZyhvcHRzLmFnZW50SWQpIH0gOiB1bmRlZmluZWQsXG4gIH0pXG5cbiAgaWYgKCFyZXNwb25zZS5vaykge1xuICAgIHRocm93IG5ldyBFcnJvcignRmFpbGVkIGZldGNoaW5nIHJlY2VudCBjb250ZXh0cycpXG4gIH1cblxuICBjb25zdCBqc29uID0gYXdhaXQgcmVzcG9uc2UuanNvbigpXG4gIGNvbnN0IGl0ZW1zID0gQXJyYXkuaXNBcnJheShqc29uKSA/IGpzb24gOiAoanNvbj8uZGF0YSA/PyBbXSlcbiAgcmV0dXJuIGl0ZW1zLmZpbHRlcigoaXRlbTogdW5rbm93bik6IGl0ZW0gaXMgUmVjZW50Q29udGV4dEl0ZW0gPT4ge1xuICAgIGNvbnN0IGNvbnRleHQgPSBpdGVtIGFzIFBhcnRpYWw8UmVjZW50Q29udGV4dEl0ZW0+XG4gICAgcmV0dXJuIGNvbnRleHQ/LmlkICE9IG51bGwgJiYgY29udGV4dC5uYW1lICE9IG51bGwgJiYgWydjbGllbnQnLCAncHJvamVjdCcsICd0YXNrJ10uaW5jbHVkZXMoU3RyaW5nKGNvbnRleHQudHlwZSkpXG4gIH0pXG59XG4iXSwibWFwcGluZ3MiOiI7O0FBQUEsU0FBU0EsU0FBUyxRQUFRLFdBQVc7QUF3QnJDLElBQU1DLFNBQVMsR0FBRyxTQUFaQSxTQUFTQSxDQUFJQyxJQUErQixFQUFLO0VBQ3JELElBQU1DLE1BQU0sR0FBRyxJQUFJQyxlQUFlLENBQUMsQ0FBQztFQUNwQyxJQUFJLENBQUFGLElBQUksYUFBSkEsSUFBSSx1QkFBSkEsSUFBSSxDQUFFRyxLQUFLLEtBQUksSUFBSSxFQUFFO0lBQ3ZCRixNQUFNLENBQUNHLEdBQUcsQ0FBQyxPQUFPLEVBQUVDLE1BQU0sQ0FBQ0wsSUFBSSxDQUFDRyxLQUFLLENBQUMsQ0FBQztFQUN6QztFQUNBLElBQU1HLEVBQUUsR0FBR0wsTUFBTSxDQUFDTSxRQUFRLENBQUMsQ0FBQztFQUM1QixPQUFPRCxFQUFFLHNCQUFBRSxNQUFBLENBQXNCRixFQUFFLElBQUssaUJBQWlCO0FBQ3pELENBQUM7QUFFRCxPQUFPLElBQU1HLGlCQUFpQjtFQUFBLElBQUFDLElBQUEsR0FBQUMsaUJBQUEsY0FBQUMsbUJBQUEsQ0FBQUMsSUFBQSxDQUFHLFNBQUFDLFFBQU9kLElBQStCO0lBQUEsSUFBQWUsVUFBQTtJQUFBLElBQUFDLFFBQUEsRUFBQUMsSUFBQSxFQUFBQyxLQUFBO0lBQUEsT0FBQU4sbUJBQUEsQ0FBQU8sSUFBQSxXQUFBQyxRQUFBO01BQUEsa0JBQUFBLFFBQUEsQ0FBQUMsSUFBQSxHQUFBRCxRQUFBLENBQUFFLElBQUE7UUFBQTtVQUFBRixRQUFBLENBQUFFLElBQUE7VUFBQSxPQUM5Q3hCLFNBQVMsQ0FBQztZQUMvQnlCLElBQUksRUFBRXhCLFNBQVMsQ0FBQ0MsSUFBSSxDQUFDO1lBQ3JCd0IsTUFBTSxFQUFFLEtBQUs7WUFDYkMsT0FBTyxFQUFFekIsSUFBSSxhQUFKQSxJQUFJLGVBQUpBLElBQUksQ0FBRTBCLE9BQU8sR0FBRztjQUFFLFlBQVksRUFBRXJCLE1BQU0sQ0FBQ0wsSUFBSSxDQUFDMEIsT0FBTztZQUFFLENBQUMsR0FBR0M7VUFDcEUsQ0FBQyxDQUFDO1FBQUE7VUFKSVgsUUFBUSxHQUFBSSxRQUFBLENBQUFRLElBQUE7VUFBQSxJQU1UWixRQUFRLENBQUNhLEVBQUU7WUFBQVQsUUFBQSxDQUFBRSxJQUFBO1lBQUE7VUFBQTtVQUFBLE1BQ1IsSUFBSVEsS0FBSyxDQUFDLGlDQUFpQyxDQUFDO1FBQUE7VUFBQVYsUUFBQSxDQUFBRSxJQUFBO1VBQUEsT0FHakNOLFFBQVEsQ0FBQ0MsSUFBSSxDQUFDLENBQUM7UUFBQTtVQUE1QkEsSUFBSSxHQUFBRyxRQUFBLENBQUFRLElBQUE7VUFDSlYsS0FBSyxHQUFHYSxLQUFLLENBQUNDLE9BQU8sQ0FBQ2YsSUFBSSxDQUFDLEdBQUdBLElBQUksSUFBQUYsVUFBQSxHQUFJRSxJQUFJLGFBQUpBLElBQUksdUJBQUpBLElBQUksQ0FBRWdCLElBQUksY0FBQWxCLFVBQUEsY0FBQUEsVUFBQSxHQUFJLEVBQUc7VUFBQSxPQUFBSyxRQUFBLENBQUFjLE1BQUEsV0FDdERoQixLQUFLLENBQUNpQixNQUFNLENBQUMsVUFBQ0MsSUFBYSxFQUFnQztZQUNoRSxJQUFNQyxPQUFPLEdBQUdELElBQWtDO1lBQ2xELE9BQU8sQ0FBQUMsT0FBTyxhQUFQQSxPQUFPLHVCQUFQQSxPQUFPLENBQUVDLEVBQUUsS0FBSSxJQUFJLElBQUlELE9BQU8sQ0FBQ0UsSUFBSSxJQUFJLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRSxTQUFTLEVBQUUsTUFBTSxDQUFDLENBQUNDLFFBQVEsQ0FBQ25DLE1BQU0sQ0FBQ2dDLE9BQU8sQ0FBQ0ksSUFBSSxDQUFDLENBQUM7VUFDcEgsQ0FBQyxDQUFDO1FBQUE7UUFBQTtVQUFBLE9BQUFyQixRQUFBLENBQUFzQixJQUFBO01BQUE7SUFBQSxHQUFBNUIsT0FBQTtFQUFBLENBQ0g7RUFBQSxnQkFqQllMLGlCQUFpQkEsQ0FBQWtDLEVBQUE7SUFBQSxPQUFBakMsSUFBQSxDQUFBa0MsS0FBQSxPQUFBQyxTQUFBO0VBQUE7QUFBQSxHQWlCN0IiLCJpZ25vcmVMaXN0IjpbXX0=
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
import { getRecentContexts } from './getRecentContexts';
|
|
2
|
-
export { getRecentContexts } from './getRecentContexts';
|
|
3
|
-
export default {
|
|
4
|
-
getRecentContexts: getRecentContexts
|
|
5
|
-
};
|
|
6
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJnZXRSZWNlbnRDb250ZXh0cyJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9zZXJ2aWNlcy9tYWlhL1JlY2VudENvbnRleHRzL2luZGV4LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGdldFJlY2VudENvbnRleHRzIH0gZnJvbSAnLi9nZXRSZWNlbnRDb250ZXh0cydcblxuZXhwb3J0IHsgZ2V0UmVjZW50Q29udGV4dHMsIHR5cGUgUmVjZW50Q29udGV4dEl0ZW0sIHR5cGUgUmVjZW50Q29udGV4dFR5cGUgfSBmcm9tICcuL2dldFJlY2VudENvbnRleHRzJ1xuXG5leHBvcnQgZGVmYXVsdCB7XG4gIGdldFJlY2VudENvbnRleHRzLFxufVxuIl0sIm1hcHBpbmdzIjoiQUFBQSxTQUFTQSxpQkFBaUIsUUFBUSxxQkFBcUI7QUFFdkQsU0FBU0EsaUJBQWlCLFFBQXdELHFCQUFxQjtBQUV2RyxlQUFlO0VBQ2JBLGlCQUFpQixFQUFqQkE7QUFDRixDQUFDIiwiaWdub3JlTGlzdCI6W119
|
|
@@ -1,135 +0,0 @@
|
|
|
1
|
-
import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
|
2
|
-
import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
|
|
3
|
-
var _excluded = ["href", "children"];
|
|
4
|
-
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; }
|
|
5
|
-
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; }
|
|
6
|
-
import React from 'react';
|
|
7
|
-
import { TASK_URL_REGEX_PATTERN, PROJECT_URL_REGEX_PATTERN } from '../constants/taskUrls';
|
|
8
|
-
import { renderMentionLink } from './renderContextMentions';
|
|
9
|
-
import { useTaskPanel } from '../hooks/useTaskPanel';
|
|
10
|
-
import { getContextMentionIcon } from './contextMentionIcons';
|
|
11
|
-
import { SCTaskLink, SCProjectLink, SCProjectLinkIcon } from '../components/molecules/ChatAIMessages/newStyles';
|
|
12
|
-
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
13
|
-
var PROJECT_LINK_ICON_COLOR = '#202020';
|
|
14
|
-
var PROJECT_LINK_ICON_SIZE = 20;
|
|
15
|
-
var getTabSegmentFromHref = function getTabSegmentFromHref(href) {
|
|
16
|
-
var match = href.match(/\/tasks\/\d+\/([^/?]+)/);
|
|
17
|
-
return match && /^(detail|message|messages|files|history|hours)$/.test(match[1]) ? match[1] : 'detail';
|
|
18
|
-
};
|
|
19
|
-
|
|
20
|
-
/** Extrae las tareas enlazadas en el texto (URLs que coinciden con TASK_URL_REGEX_PATTERN). */
|
|
21
|
-
export var extractTasksFromMessage = function extractTasksFromMessage(message) {
|
|
22
|
-
if (!message) return [];
|
|
23
|
-
var taskUrlRegex = new RegExp(TASK_URL_REGEX_PATTERN, 'g');
|
|
24
|
-
var tasks = [];
|
|
25
|
-
var seenIds = new Set();
|
|
26
|
-
var match = null;
|
|
27
|
-
// eslint-disable-next-line no-cond-assign
|
|
28
|
-
while ((match = taskUrlRegex.exec(message)) !== null) {
|
|
29
|
-
var taskId = match[1];
|
|
30
|
-
var url = match[0];
|
|
31
|
-
if (!seenIds.has(taskId)) {
|
|
32
|
-
seenIds.add(taskId);
|
|
33
|
-
var escapedUrl = url.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
|
|
34
|
-
var markdownLinkRegex = new RegExp("\\[([^\\]]+)\\]\\(".concat(escapedUrl, "\\)"));
|
|
35
|
-
var linkMatch = message.match(markdownLinkRegex);
|
|
36
|
-
var title = linkMatch ? linkMatch[1] : "Tarea #".concat(taskId);
|
|
37
|
-
tasks.push({
|
|
38
|
-
id: taskId,
|
|
39
|
-
title: title,
|
|
40
|
-
url: url
|
|
41
|
-
});
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
|
-
return tasks;
|
|
45
|
-
};
|
|
46
|
-
var hasTaskLinks = function hasTaskLinks(text) {
|
|
47
|
-
return extractTasksFromMessage(text).length > 0;
|
|
48
|
-
};
|
|
49
|
-
var hasProjectLinks = function hasProjectLinks(text) {
|
|
50
|
-
return new RegExp(PROJECT_URL_REGEX_PATTERN).test(text);
|
|
51
|
-
};
|
|
52
|
-
var TASK_MENTION_MARKER_RE = /\[\[mention:task:/i;
|
|
53
|
-
var MAIA_TASK_MENTION_HREF_RE = /maia-mention:\/\/task\//i;
|
|
54
|
-
var hasTaskLinksOrTaskMentions = function hasTaskLinksOrTaskMentions(text) {
|
|
55
|
-
return hasTaskLinks(text) || TASK_MENTION_MARKER_RE.test(text) || MAIA_TASK_MENTION_HREF_RE.test(text);
|
|
56
|
-
};
|
|
57
|
-
export var getEntityLinkWrapperClassName = function getEntityLinkWrapperClassName(text) {
|
|
58
|
-
var classes = [];
|
|
59
|
-
if (hasTaskLinksOrTaskMentions(text)) classes.push('has-task-links');
|
|
60
|
-
if (hasProjectLinks(text)) classes.push('has-project-links');
|
|
61
|
-
return classes.join(' ');
|
|
62
|
-
};
|
|
63
|
-
var TaskLink = function TaskLink(_ref) {
|
|
64
|
-
var href = _ref.href,
|
|
65
|
-
taskId = _ref.taskId,
|
|
66
|
-
children = _ref.children;
|
|
67
|
-
var tabSegment = getTabSegmentFromHref(href);
|
|
68
|
-
var _useTaskPanel = useTaskPanel(taskId, tabSegment),
|
|
69
|
-
buildOpenTask = _useTaskPanel.buildOpenTask;
|
|
70
|
-
var openTask = buildOpenTask();
|
|
71
|
-
var handleClick = function handleClick(e) {
|
|
72
|
-
if (e.metaKey || e.ctrlKey) return;
|
|
73
|
-
e.preventDefault();
|
|
74
|
-
openTask();
|
|
75
|
-
};
|
|
76
|
-
return /*#__PURE__*/_jsx(SCTaskLink, {
|
|
77
|
-
href: href,
|
|
78
|
-
onClick: handleClick,
|
|
79
|
-
"data-cor-link": "task",
|
|
80
|
-
children: children
|
|
81
|
-
});
|
|
82
|
-
};
|
|
83
|
-
var ProjectLink = function ProjectLink(_ref2) {
|
|
84
|
-
var href = _ref2.href,
|
|
85
|
-
children = _ref2.children;
|
|
86
|
-
return /*#__PURE__*/_jsxs(SCProjectLink, {
|
|
87
|
-
href: href,
|
|
88
|
-
target: "_blank",
|
|
89
|
-
rel: "noopener noreferrer",
|
|
90
|
-
"data-cor-link": "project",
|
|
91
|
-
children: [/*#__PURE__*/_jsx(SCProjectLinkIcon, {
|
|
92
|
-
"aria-hidden": true,
|
|
93
|
-
children: getContextMentionIcon('project', PROJECT_LINK_ICON_COLOR, undefined, PROJECT_LINK_ICON_SIZE)
|
|
94
|
-
}), children]
|
|
95
|
-
});
|
|
96
|
-
};
|
|
97
|
-
export var EntityLinkCustomLink = function EntityLinkCustomLink(_ref3) {
|
|
98
|
-
var href = _ref3.href,
|
|
99
|
-
children = _ref3.children,
|
|
100
|
-
rest = _objectWithoutProperties(_ref3, _excluded);
|
|
101
|
-
if (!href || typeof href !== 'string') {
|
|
102
|
-
return /*#__PURE__*/_jsx("a", _objectSpread(_objectSpread({
|
|
103
|
-
href: href
|
|
104
|
-
}, rest), {}, {
|
|
105
|
-
children: children
|
|
106
|
-
}));
|
|
107
|
-
}
|
|
108
|
-
var mentionNode = renderMentionLink(href, children);
|
|
109
|
-
if (mentionNode) return mentionNode;
|
|
110
|
-
|
|
111
|
-
// La tarea se evalúa antes que el proyecto: una URL de tarea anidada en un proyecto
|
|
112
|
-
// (.../projects/{id}/dashboard/tasks/{taskId}) debe renderizarse como tarea, no como proyecto.
|
|
113
|
-
var taskMatch = href.match(new RegExp(TASK_URL_REGEX_PATTERN));
|
|
114
|
-
if (taskMatch) {
|
|
115
|
-
var taskId = taskMatch[1];
|
|
116
|
-
return /*#__PURE__*/_jsx(TaskLink, {
|
|
117
|
-
href: href,
|
|
118
|
-
taskId: taskId,
|
|
119
|
-
children: children
|
|
120
|
-
});
|
|
121
|
-
}
|
|
122
|
-
var projectMatch = href.match(new RegExp(PROJECT_URL_REGEX_PATTERN));
|
|
123
|
-
if (projectMatch) {
|
|
124
|
-
return /*#__PURE__*/_jsx(ProjectLink, {
|
|
125
|
-
href: href,
|
|
126
|
-
children: children
|
|
127
|
-
});
|
|
128
|
-
}
|
|
129
|
-
return /*#__PURE__*/_jsx("a", _objectSpread(_objectSpread({
|
|
130
|
-
href: href
|
|
131
|
-
}, rest), {}, {
|
|
132
|
-
children: children
|
|
133
|
-
}));
|
|
134
|
-
};
|
|
135
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsIlRBU0tfVVJMX1JFR0VYX1BBVFRFUk4iLCJQUk9KRUNUX1VSTF9SRUdFWF9QQVRURVJOIiwicmVuZGVyTWVudGlvbkxpbmsiLCJ1c2VUYXNrUGFuZWwiLCJnZXRDb250ZXh0TWVudGlvbkljb24iLCJTQ1Rhc2tMaW5rIiwiU0NQcm9qZWN0TGluayIsIlNDUHJvamVjdExpbmtJY29uIiwianN4IiwiX2pzeCIsImpzeHMiLCJfanN4cyIsIlBST0pFQ1RfTElOS19JQ09OX0NPTE9SIiwiUFJPSkVDVF9MSU5LX0lDT05fU0laRSIsImdldFRhYlNlZ21lbnRGcm9tSHJlZiIsImhyZWYiLCJtYXRjaCIsInRlc3QiLCJleHRyYWN0VGFza3NGcm9tTWVzc2FnZSIsIm1lc3NhZ2UiLCJ0YXNrVXJsUmVnZXgiLCJSZWdFeHAiLCJ0YXNrcyIsInNlZW5JZHMiLCJTZXQiLCJleGVjIiwidGFza0lkIiwidXJsIiwiaGFzIiwiYWRkIiwiZXNjYXBlZFVybCIsInJlcGxhY2UiLCJtYXJrZG93bkxpbmtSZWdleCIsImNvbmNhdCIsImxpbmtNYXRjaCIsInRpdGxlIiwicHVzaCIsImlkIiwiaGFzVGFza0xpbmtzIiwidGV4dCIsImxlbmd0aCIsImhhc1Byb2plY3RMaW5rcyIsIlRBU0tfTUVOVElPTl9NQVJLRVJfUkUiLCJNQUlBX1RBU0tfTUVOVElPTl9IUkVGX1JFIiwiaGFzVGFza0xpbmtzT3JUYXNrTWVudGlvbnMiLCJnZXRFbnRpdHlMaW5rV3JhcHBlckNsYXNzTmFtZSIsImNsYXNzZXMiLCJqb2luIiwiVGFza0xpbmsiLCJfcmVmIiwiY2hpbGRyZW4iLCJ0YWJTZWdtZW50IiwiX3VzZVRhc2tQYW5lbCIsImJ1aWxkT3BlblRhc2siLCJvcGVuVGFzayIsImhhbmRsZUNsaWNrIiwiZSIsIm1ldGFLZXkiLCJjdHJsS2V5IiwicHJldmVudERlZmF1bHQiLCJvbkNsaWNrIiwiUHJvamVjdExpbmsiLCJfcmVmMiIsInRhcmdldCIsInJlbCIsInVuZGVmaW5lZCIsIkVudGl0eUxpbmtDdXN0b21MaW5rIiwiX3JlZjMiLCJyZXN0IiwiX29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzIiwiX2V4Y2x1ZGVkIiwiX29iamVjdFNwcmVhZCIsIm1lbnRpb25Ob2RlIiwidGFza01hdGNoIiwicHJvamVjdE1hdGNoIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3V0aWxzL2VudGl0eUxpbmtSZW5kZXIudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCwgeyBGQywgUmVhY3ROb2RlIH0gZnJvbSAncmVhY3QnXG5pbXBvcnQgeyBUYXNrSW5mbyB9IGZyb20gJy4uL3R5cGVzL0NoYXQnXG5pbXBvcnQgeyBUQVNLX1VSTF9SRUdFWF9QQVRURVJOLCBQUk9KRUNUX1VSTF9SRUdFWF9QQVRURVJOIH0gZnJvbSAnLi4vY29uc3RhbnRzL3Rhc2tVcmxzJ1xuaW1wb3J0IHsgcmVuZGVyTWVudGlvbkxpbmsgfSBmcm9tICcuL3JlbmRlckNvbnRleHRNZW50aW9ucydcbmltcG9ydCB7IHVzZVRhc2tQYW5lbCB9IGZyb20gJy4uL2hvb2tzL3VzZVRhc2tQYW5lbCdcbmltcG9ydCB7IGdldENvbnRleHRNZW50aW9uSWNvbiB9IGZyb20gJy4vY29udGV4dE1lbnRpb25JY29ucydcbmltcG9ydCB7IFNDVGFza0xpbmssIFNDUHJvamVjdExpbmssIFNDUHJvamVjdExpbmtJY29uIH0gZnJvbSAnLi4vY29tcG9uZW50cy9tb2xlY3VsZXMvQ2hhdEFJTWVzc2FnZXMvbmV3U3R5bGVzJ1xuXG5jb25zdCBQUk9KRUNUX0xJTktfSUNPTl9DT0xPUiA9ICcjMjAyMDIwJ1xuY29uc3QgUFJPSkVDVF9MSU5LX0lDT05fU0laRSA9IDIwXG5cbmNvbnN0IGdldFRhYlNlZ21lbnRGcm9tSHJlZiA9IChocmVmOiBzdHJpbmcpOiBzdHJpbmcgPT4ge1xuICBjb25zdCBtYXRjaCA9IGhyZWYubWF0Y2goL1xcL3Rhc2tzXFwvXFxkK1xcLyhbXi8/XSspLylcbiAgcmV0dXJuIG1hdGNoICYmIC9eKGRldGFpbHxtZXNzYWdlfG1lc3NhZ2VzfGZpbGVzfGhpc3Rvcnl8aG91cnMpJC8udGVzdChtYXRjaFsxXSkgPyBtYXRjaFsxXSA6ICdkZXRhaWwnXG59XG5cbi8qKiBFeHRyYWUgbGFzIHRhcmVhcyBlbmxhemFkYXMgZW4gZWwgdGV4dG8gKFVSTHMgcXVlIGNvaW5jaWRlbiBjb24gVEFTS19VUkxfUkVHRVhfUEFUVEVSTikuICovXG5leHBvcnQgY29uc3QgZXh0cmFjdFRhc2tzRnJvbU1lc3NhZ2UgPSAobWVzc2FnZTogc3RyaW5nKTogVGFza0luZm9bXSA9PiB7XG4gIGlmICghbWVzc2FnZSkgcmV0dXJuIFtdXG4gIGNvbnN0IHRhc2tVcmxSZWdleCA9IG5ldyBSZWdFeHAoVEFTS19VUkxfUkVHRVhfUEFUVEVSTiwgJ2cnKVxuICBjb25zdCB0YXNrczogVGFza0luZm9bXSA9IFtdXG4gIGNvbnN0IHNlZW5JZHMgPSBuZXcgU2V0PHN0cmluZz4oKVxuICBsZXQgbWF0Y2g6IFJlZ0V4cEV4ZWNBcnJheSB8IG51bGwgPSBudWxsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1jb25kLWFzc2lnblxuICB3aGlsZSAoKG1hdGNoID0gdGFza1VybFJlZ2V4LmV4ZWMobWVzc2FnZSkpICE9PSBudWxsKSB7XG4gICAgY29uc3QgdGFza0lkID0gbWF0Y2hbMV1cbiAgICBjb25zdCB1cmwgPSBtYXRjaFswXVxuICAgIGlmICghc2Vlbklkcy5oYXModGFza0lkKSkge1xuICAgICAgc2Vlbklkcy5hZGQodGFza0lkKVxuICAgICAgY29uc3QgZXNjYXBlZFVybCA9IHVybC5yZXBsYWNlKC9bLiorP14ke30oKXxbXFxdXFxcXF0vZywgJ1xcXFwkJicpXG4gICAgICBjb25zdCBtYXJrZG93bkxpbmtSZWdleCA9IG5ldyBSZWdFeHAoYFxcXFxbKFteXFxcXF1dKylcXFxcXVxcXFwoJHtlc2NhcGVkVXJsfVxcXFwpYClcbiAgICAgIGNvbnN0IGxpbmtNYXRjaCA9IG1lc3NhZ2UubWF0Y2gobWFya2Rvd25MaW5rUmVnZXgpXG4gICAgICBjb25zdCB0aXRsZSA9IGxpbmtNYXRjaCA/IGxpbmtNYXRjaFsxXSA6IGBUYXJlYSAjJHt0YXNrSWR9YFxuICAgICAgdGFza3MucHVzaCh7IGlkOiB0YXNrSWQsIHRpdGxlLCB1cmwgfSlcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHRhc2tzXG59XG5cbmNvbnN0IGhhc1Rhc2tMaW5rcyA9ICh0ZXh0OiBzdHJpbmcpOiBib29sZWFuID0+IGV4dHJhY3RUYXNrc0Zyb21NZXNzYWdlKHRleHQpLmxlbmd0aCA+IDBcblxuY29uc3QgaGFzUHJvamVjdExpbmtzID0gKHRleHQ6IHN0cmluZyk6IGJvb2xlYW4gPT4gbmV3IFJlZ0V4cChQUk9KRUNUX1VSTF9SRUdFWF9QQVRURVJOKS50ZXN0KHRleHQpXG5cbmNvbnN0IFRBU0tfTUVOVElPTl9NQVJLRVJfUkUgPSAvXFxbXFxbbWVudGlvbjp0YXNrOi9pXG5jb25zdCBNQUlBX1RBU0tfTUVOVElPTl9IUkVGX1JFID0gL21haWEtbWVudGlvbjpcXC9cXC90YXNrXFwvL2lcblxuY29uc3QgaGFzVGFza0xpbmtzT3JUYXNrTWVudGlvbnMgPSAodGV4dDogc3RyaW5nKTogYm9vbGVhbiA9PlxuICBoYXNUYXNrTGlua3ModGV4dCkgfHwgVEFTS19NRU5USU9OX01BUktFUl9SRS50ZXN0KHRleHQpIHx8IE1BSUFfVEFTS19NRU5USU9OX0hSRUZfUkUudGVzdCh0ZXh0KVxuXG5leHBvcnQgY29uc3QgZ2V0RW50aXR5TGlua1dyYXBwZXJDbGFzc05hbWUgPSAodGV4dDogc3RyaW5nKTogc3RyaW5nID0+IHtcbiAgY29uc3QgY2xhc3Nlczogc3RyaW5nW10gPSBbXVxuICBpZiAoaGFzVGFza0xpbmtzT3JUYXNrTWVudGlvbnModGV4dCkpIGNsYXNzZXMucHVzaCgnaGFzLXRhc2stbGlua3MnKVxuICBpZiAoaGFzUHJvamVjdExpbmtzKHRleHQpKSBjbGFzc2VzLnB1c2goJ2hhcy1wcm9qZWN0LWxpbmtzJylcbiAgcmV0dXJuIGNsYXNzZXMuam9pbignICcpXG59XG5cbmNvbnN0IFRhc2tMaW5rOiBGQzx7IGhyZWY6IHN0cmluZzsgdGFza0lkOiBzdHJpbmc7IGNoaWxkcmVuOiBSZWFjdE5vZGUgfT4gPSAoeyBocmVmLCB0YXNrSWQsIGNoaWxkcmVuIH0pID0+IHtcbiAgY29uc3QgdGFiU2VnbWVudCA9IGdldFRhYlNlZ21lbnRGcm9tSHJlZihocmVmKVxuICBjb25zdCB7IGJ1aWxkT3BlblRhc2sgfSA9IHVzZVRhc2tQYW5lbCh0YXNrSWQsIHRhYlNlZ21lbnQpXG4gIGNvbnN0IG9wZW5UYXNrID0gYnVpbGRPcGVuVGFzaygpXG5cbiAgY29uc3QgaGFuZGxlQ2xpY2sgPSAoZTogUmVhY3QuTW91c2VFdmVudDxIVE1MQW5jaG9yRWxlbWVudD4pID0+IHtcbiAgICBpZiAoZS5tZXRhS2V5IHx8IGUuY3RybEtleSkgcmV0dXJuXG4gICAgZS5wcmV2ZW50RGVmYXVsdCgpXG4gICAgb3BlblRhc2soKVxuICB9XG5cbiAgcmV0dXJuIChcbiAgICA8U0NUYXNrTGluayBocmVmPXtocmVmfSBvbkNsaWNrPXtoYW5kbGVDbGlja30gZGF0YS1jb3ItbGluaz1cInRhc2tcIj5cbiAgICAgIHtjaGlsZHJlbn1cbiAgICA8L1NDVGFza0xpbms+XG4gIClcbn1cblxuY29uc3QgUHJvamVjdExpbms6IEZDPHsgaHJlZjogc3RyaW5nOyBjaGlsZHJlbjogUmVhY3ROb2RlIH0+ID0gKHsgaHJlZiwgY2hpbGRyZW4gfSkgPT4gKFxuICA8U0NQcm9qZWN0TGluayBocmVmPXtocmVmfSB0YXJnZXQ9XCJfYmxhbmtcIiByZWw9XCJub29wZW5lciBub3JlZmVycmVyXCIgZGF0YS1jb3ItbGluaz1cInByb2plY3RcIj5cbiAgICA8U0NQcm9qZWN0TGlua0ljb24gYXJpYS1oaWRkZW4+XG4gICAgICB7Z2V0Q29udGV4dE1lbnRpb25JY29uKCdwcm9qZWN0JywgUFJPSkVDVF9MSU5LX0lDT05fQ09MT1IsIHVuZGVmaW5lZCwgUFJPSkVDVF9MSU5LX0lDT05fU0laRSl9XG4gICAgPC9TQ1Byb2plY3RMaW5rSWNvbj5cbiAgICB7Y2hpbGRyZW59XG4gIDwvU0NQcm9qZWN0TGluaz5cbilcblxudHlwZSBFbnRpdHlMaW5rQ3VzdG9tTGlua1Byb3BzID0gUmVhY3QuQW5jaG9ySFRNTEF0dHJpYnV0ZXM8SFRNTEFuY2hvckVsZW1lbnQ+ICYgeyBub2RlPzogdW5rbm93biB9XG5cbmV4cG9ydCBjb25zdCBFbnRpdHlMaW5rQ3VzdG9tTGluazogRkM8RW50aXR5TGlua0N1c3RvbUxpbmtQcm9wcz4gPSAoeyBocmVmLCBjaGlsZHJlbiwgLi4ucmVzdCB9KSA9PiB7XG4gIGlmICghaHJlZiB8fCB0eXBlb2YgaHJlZiAhPT0gJ3N0cmluZycpIHtcbiAgICByZXR1cm4gKFxuICAgICAgPGEgaHJlZj17aHJlZn0gey4uLnJlc3R9PlxuICAgICAgICB7Y2hpbGRyZW59XG4gICAgICA8L2E+XG4gICAgKVxuICB9XG4gIGNvbnN0IG1lbnRpb25Ob2RlID0gcmVuZGVyTWVudGlvbkxpbmsoaHJlZiwgY2hpbGRyZW4pXG4gIGlmIChtZW50aW9uTm9kZSkgcmV0dXJuIG1lbnRpb25Ob2RlIGFzIFJlYWN0LlJlYWN0RWxlbWVudFxuXG4gIC8vIExhIHRhcmVhIHNlIGV2YWzDumEgYW50ZXMgcXVlIGVsIHByb3llY3RvOiB1bmEgVVJMIGRlIHRhcmVhIGFuaWRhZGEgZW4gdW4gcHJveWVjdG9cbiAgLy8gKC4uLi9wcm9qZWN0cy97aWR9L2Rhc2hib2FyZC90YXNrcy97dGFza0lkfSkgZGViZSByZW5kZXJpemFyc2UgY29tbyB0YXJlYSwgbm8gY29tbyBwcm95ZWN0by5cbiAgY29uc3QgdGFza01hdGNoID0gaHJlZi5tYXRjaChuZXcgUmVnRXhwKFRBU0tfVVJMX1JFR0VYX1BBVFRFUk4pKVxuICBpZiAodGFza01hdGNoKSB7XG4gICAgY29uc3QgdGFza0lkID0gdGFza01hdGNoWzFdXG4gICAgcmV0dXJuIChcbiAgICAgIDxUYXNrTGluayBocmVmPXtocmVmfSB0YXNrSWQ9e3Rhc2tJZH0+XG4gICAgICAgIHtjaGlsZHJlbn1cbiAgICAgIDwvVGFza0xpbms+XG4gICAgKVxuICB9XG5cbiAgY29uc3QgcHJvamVjdE1hdGNoID0gaHJlZi5tYXRjaChuZXcgUmVnRXhwKFBST0pFQ1RfVVJMX1JFR0VYX1BBVFRFUk4pKVxuICBpZiAocHJvamVjdE1hdGNoKSB7XG4gICAgcmV0dXJuIDxQcm9qZWN0TGluayBocmVmPXtocmVmfT57Y2hpbGRyZW59PC9Qcm9qZWN0TGluaz5cbiAgfVxuICByZXR1cm4gKFxuICAgIDxhIGhyZWY9e2hyZWZ9IHsuLi5yZXN0fT5cbiAgICAgIHtjaGlsZHJlbn1cbiAgICA8L2E+XG4gIClcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxPQUFPQSxLQUFLLE1BQXlCLE9BQU87QUFFNUMsU0FBU0Msc0JBQXNCLEVBQUVDLHlCQUF5QixRQUFRLHVCQUF1QjtBQUN6RixTQUFTQyxpQkFBaUIsUUFBUSx5QkFBeUI7QUFDM0QsU0FBU0MsWUFBWSxRQUFRLHVCQUF1QjtBQUNwRCxTQUFTQyxxQkFBcUIsUUFBUSx1QkFBdUI7QUFDN0QsU0FBU0MsVUFBVSxFQUFFQyxhQUFhLEVBQUVDLGlCQUFpQixRQUFRLGtEQUFrRDtBQUFBLFNBQUFDLEdBQUEsSUFBQUMsSUFBQSxFQUFBQyxJQUFBLElBQUFDLEtBQUE7QUFFL0csSUFBTUMsdUJBQXVCLEdBQUcsU0FBUztBQUN6QyxJQUFNQyxzQkFBc0IsR0FBRyxFQUFFO0FBRWpDLElBQU1DLHFCQUFxQixHQUFHLFNBQXhCQSxxQkFBcUJBLENBQUlDLElBQVksRUFBYTtFQUN0RCxJQUFNQyxLQUFLLEdBQUdELElBQUksQ0FBQ0MsS0FBSyxDQUFDLHdCQUF3QixDQUFDO0VBQ2xELE9BQU9BLEtBQUssSUFBSSxpREFBaUQsQ0FBQ0MsSUFBSSxDQUFDRCxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBR0EsS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLFFBQVE7QUFDeEcsQ0FBQzs7QUFFRDtBQUNBLE9BQU8sSUFBTUUsdUJBQXVCLEdBQUcsU0FBMUJBLHVCQUF1QkEs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
|