@projectcor/maia-components 2.11.66-8 → 2.11.66
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/ContextMentionChip/ContextMentionChip.styles.js +4 -4
- package/lib/components/atoms/ContextMentionItem/ContextMentionItem.js +8 -8
- package/lib/components/atoms/ContextMentionItem/ContextMentionItem.styles.js +5 -5
- 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 +29 -24
- package/lib/components/atoms/icons/MAIAIsologo.js +5 -2
- package/lib/components/atoms/icons/TaskLinkIcon.js +27 -0
- package/lib/components/molecules/ChatAIContent/ChatAIContent.js +6 -2
- package/lib/components/molecules/ChatAIHome/ChatAIHome.js +48 -298
- package/lib/components/molecules/ChatAIHome/styles.js +26 -63
- package/lib/components/molecules/ChatAIMessages/ChatAIMessages.js +150 -57
- package/lib/components/molecules/ChatAIMessages/newStyles.js +12 -21
- package/lib/components/molecules/ChatAIModal/ChatAIModal.js +47 -220
- package/lib/components/molecules/ChatAIModal/components/ChatAiModalFooter/ChatAiModalFooter.js +4 -27
- package/lib/components/molecules/ChatAIModal/components/ChatAiModalHeader/ChatAiModalHeader.js +45 -18
- package/lib/components/molecules/ChatAIMyAgents/ChatAIMyAgents.js +123 -28
- package/lib/components/molecules/ChatAIMyAgents/ChatAIMyAgents.styles.js +66 -41
- package/lib/components/molecules/ChatFooter/ChatFooter.js +24 -78
- 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 +51 -18
- package/lib/components/molecules/Sidebar/Sidebar.layout.styles.js +40 -26
- package/lib/components/molecules/Sidebar/Sidebar.styles.js +10 -7
- package/lib/components/organisms/EditQuestionModal/EditQuestionModal.js +2 -2
- package/lib/constants/maiaTaskPanelAccess.js +5 -7
- package/lib/constants/taskLinkIcon.js +15 -6
- package/lib/constants/taskUrls.js +1 -3
- 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 +4 -3
- 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 +7 -30
- package/lib/lang/en/index.js +7 -30
- package/lib/lang/es/index.js +7 -30
- package/lib/lang/fr/index.js +7 -30
- package/lib/services/maia/Actions/getFrequentlyUsedActions.js +3 -6
- package/lib/services/maia/Agents/getAgents.js +215 -193
- 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 +19 -11
- package/lib/utils/contextMentionIcons.js +7 -16
- package/lib/utils/hitlAnalytics.js +6 -5
- 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 -132
|
@@ -1,235 +0,0 @@
|
|
|
1
|
-
import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
|
2
|
-
import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
|
|
3
|
-
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
4
|
-
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
5
|
-
import { useCallback, useEffect, useMemo, useState } from 'react';
|
|
6
|
-
import { ContextMentionPopover, MAIA_TASK_PANEL_OVERLAY_ATTR, SCMPAnchor } from '../components/atoms/ContextMentionPopover';
|
|
7
|
-
import { useMaiaTaskPanelZIndex } from './useMaiaTaskPanelZIndex';
|
|
8
|
-
import { useGlobalContext } from '../context/global-context';
|
|
9
|
-
import { useT } from './useT';
|
|
10
|
-
// eslint-disable-next-line import/no-cycle
|
|
11
|
-
import { useEntitySearch } from './useEntitySearch';
|
|
12
|
-
import { jsx as _jsx } from "react/jsx-runtime";
|
|
13
|
-
/** Tipos pineables como contexto persistente (RFC §6: no incluye `user`, que es solo mención). */
|
|
14
|
-
var PIN_ALLOWED_TYPES = ['client', 'project', 'task'];
|
|
15
|
-
var PIN_DEFAULT_TYPE = 'project';
|
|
16
|
-
/**
|
|
17
|
-
* Segundo punto de entrada del buscador de contexto (RFC §6): el mismo motor
|
|
18
|
-
* (`useEntitySearch` + `ContextMentionPopover`) pero el commit fija un **pin**
|
|
19
|
-
* persistente en el contexto global en vez de insertar una mención.
|
|
20
|
-
*
|
|
21
|
-
* Jerarquía mono-contexto (RFC §5.1): un pin a la vez; fijar uno reemplaza al
|
|
22
|
-
* anterior y arrastra su scope hacia arriba (tarea ⇒ proyecto+cliente, etc.).
|
|
23
|
-
*/
|
|
24
|
-
export var useContextPinPopover = function useContextPinPopover(_ref) {
|
|
25
|
-
var popoverAnchorRef = _ref.popoverAnchorRef,
|
|
26
|
-
topAnchorRef = _ref.topAnchorRef,
|
|
27
|
-
triggerRef = _ref.triggerRef,
|
|
28
|
-
enabledTypes = _ref.enabledTypes,
|
|
29
|
-
onPinned = _ref.onPinned;
|
|
30
|
-
var _useT = useT(),
|
|
31
|
-
t = _useT.t;
|
|
32
|
-
var _useGlobalContext = useGlobalContext(),
|
|
33
|
-
setProject = _useGlobalContext.setProject,
|
|
34
|
-
setClient = _useGlobalContext.setClient,
|
|
35
|
-
setTask = _useGlobalContext.setTask,
|
|
36
|
-
setChipsProject = _useGlobalContext.setChipsProject;
|
|
37
|
-
var zIndex = useMaiaTaskPanelZIndex(1200, 'overlay');
|
|
38
|
-
var allowedTypes = enabledTypes && enabledTypes.length > 0 ? enabledTypes : PIN_ALLOWED_TYPES;
|
|
39
|
-
var _useState = useState(allowedTypes.includes(PIN_DEFAULT_TYPE) ? PIN_DEFAULT_TYPE : allowedTypes[0]),
|
|
40
|
-
_useState2 = _slicedToArray(_useState, 2),
|
|
41
|
-
activeType = _useState2[0],
|
|
42
|
-
setActiveType = _useState2[1];
|
|
43
|
-
var _useState3 = useState(false),
|
|
44
|
-
_useState4 = _slicedToArray(_useState3, 2),
|
|
45
|
-
open = _useState4[0],
|
|
46
|
-
setOpen = _useState4[1];
|
|
47
|
-
var _useState5 = useState({
|
|
48
|
-
bottom: 0,
|
|
49
|
-
left: 0,
|
|
50
|
-
width: 0
|
|
51
|
-
}),
|
|
52
|
-
_useState6 = _slicedToArray(_useState5, 2),
|
|
53
|
-
pos = _useState6[0],
|
|
54
|
-
setPos = _useState6[1];
|
|
55
|
-
|
|
56
|
-
// Scope sin restricción: desde el botón se busca libremente cualquier entidad (modo global).
|
|
57
|
-
var _useEntitySearch = useEntitySearch(activeType),
|
|
58
|
-
items = _useEntitySearch.items,
|
|
59
|
-
loading = _useEntitySearch.loading,
|
|
60
|
-
error = _useEntitySearch.error,
|
|
61
|
-
hideRecentsLabel = _useEntitySearch.hideRecentsLabel,
|
|
62
|
-
hasMore = _useEntitySearch.hasMore,
|
|
63
|
-
isLoadingMore = _useEntitySearch.isLoadingMore,
|
|
64
|
-
loadMore = _useEntitySearch.loadMore,
|
|
65
|
-
searchValue = _useEntitySearch.searchValue,
|
|
66
|
-
updateSearchValue = _useEntitySearch.updateSearchValue;
|
|
67
|
-
var positionPopover = useCallback(function () {
|
|
68
|
-
var _popoverAnchorRef$cur, _topAnchorRef$current, _topRect$top;
|
|
69
|
-
var inputRect = (_popoverAnchorRef$cur = popoverAnchorRef.current) === null || _popoverAnchorRef$cur === void 0 ? void 0 : _popoverAnchorRef$cur.getBoundingClientRect();
|
|
70
|
-
if (!inputRect || inputRect.width <= 0) return;
|
|
71
|
-
var topRect = topAnchorRef === null || topAnchorRef === void 0 || (_topAnchorRef$current = topAnchorRef.current) === null || _topAnchorRef$current === void 0 ? void 0 : _topAnchorRef$current.getBoundingClientRect();
|
|
72
|
-
var anchorTop = (_topRect$top = topRect === null || topRect === void 0 ? void 0 : topRect.top) !== null && _topRect$top !== void 0 ? _topRect$top : inputRect.top;
|
|
73
|
-
var viewportW = window.innerWidth;
|
|
74
|
-
var viewportH = window.innerHeight;
|
|
75
|
-
var width = inputRect.width;
|
|
76
|
-
var left = Math.max(8, Math.min(viewportW - width - 8, inputRect.left));
|
|
77
|
-
/** ~4px sobre el borde superior de la barra de contexto (chip), no del input. */
|
|
78
|
-
setPos({
|
|
79
|
-
width: width,
|
|
80
|
-
left: left,
|
|
81
|
-
bottom: viewportH - anchorTop + 4
|
|
82
|
-
});
|
|
83
|
-
}, [popoverAnchorRef, topAnchorRef]);
|
|
84
|
-
var close = useCallback(function () {
|
|
85
|
-
setOpen(false);
|
|
86
|
-
updateSearchValue('');
|
|
87
|
-
}, [updateSearchValue]);
|
|
88
|
-
var toggle = useCallback(function () {
|
|
89
|
-
setOpen(function (prev) {
|
|
90
|
-
if (prev) {
|
|
91
|
-
updateSearchValue('');
|
|
92
|
-
return false;
|
|
93
|
-
}
|
|
94
|
-
positionPopover();
|
|
95
|
-
return true;
|
|
96
|
-
});
|
|
97
|
-
}, [positionPopover, updateSearchValue]);
|
|
98
|
-
var commitPin = useCallback(function (item) {
|
|
99
|
-
var _raw$clientName;
|
|
100
|
-
var raw = item.raw;
|
|
101
|
-
var clientId = raw.clientId != null ? Number(raw.clientId) : undefined;
|
|
102
|
-
var clientName = (_raw$clientName = raw.clientName) !== null && _raw$clientName !== void 0 ? _raw$clientName : undefined;
|
|
103
|
-
console.info('[useContextPinPopover] commitPin — ASIGNANDO contexto:', {
|
|
104
|
-
type: item.type,
|
|
105
|
-
rawId: raw.id,
|
|
106
|
-
rawName: raw.name,
|
|
107
|
-
projectName: raw.projectName,
|
|
108
|
-
clientId: clientId
|
|
109
|
-
});
|
|
110
|
-
if (item.type === 'client') {
|
|
111
|
-
var _raw$totalProyectos;
|
|
112
|
-
setProject(null);
|
|
113
|
-
setTask(null);
|
|
114
|
-
setChipsProject(null);
|
|
115
|
-
setClient({
|
|
116
|
-
id: Number(raw.id),
|
|
117
|
-
name: raw.name,
|
|
118
|
-
totalProyectos: (_raw$totalProyectos = raw.totalProyectos) !== null && _raw$totalProyectos !== void 0 ? _raw$totalProyectos : undefined
|
|
119
|
-
});
|
|
120
|
-
} else if (item.type === 'project') {
|
|
121
|
-
setTask(null);
|
|
122
|
-
setProject(_objectSpread(_objectSpread(_objectSpread({
|
|
123
|
-
id: Number(raw.id),
|
|
124
|
-
name: raw.name
|
|
125
|
-
}, clientId != null ? {
|
|
126
|
-
clientId: clientId
|
|
127
|
-
} : {}), raw.feeId != null ? {
|
|
128
|
-
feeId: raw.feeId
|
|
129
|
-
} : {}), clientId != null ? {
|
|
130
|
-
client: {
|
|
131
|
-
id: clientId,
|
|
132
|
-
name: clientName !== null && clientName !== void 0 ? clientName : ''
|
|
133
|
-
}
|
|
134
|
-
} : {}));
|
|
135
|
-
// chipsProject hace visible el pin en el chip del orquestador (RFC §7).
|
|
136
|
-
setChipsProject({
|
|
137
|
-
projectId: String(raw.id),
|
|
138
|
-
projectName: raw.name,
|
|
139
|
-
clientName: clientName !== null && clientName !== void 0 ? clientName : ''
|
|
140
|
-
});
|
|
141
|
-
setClient(clientId != null ? {
|
|
142
|
-
id: clientId,
|
|
143
|
-
name: clientName !== null && clientName !== void 0 ? clientName : ''
|
|
144
|
-
} : null);
|
|
145
|
-
} else if (item.type === 'task') {
|
|
146
|
-
// El item de tarea no trae projectId fiable; subimos lo disponible (proyecto por nombre, cliente por id).
|
|
147
|
-
setTask(_objectSpread({
|
|
148
|
-
id: raw.id,
|
|
149
|
-
name: raw.name
|
|
150
|
-
}, clientId != null ? {
|
|
151
|
-
clientId: clientId
|
|
152
|
-
} : {}));
|
|
153
|
-
setChipsProject(raw.projectName ? {
|
|
154
|
-
projectId: '',
|
|
155
|
-
projectName: raw.projectName,
|
|
156
|
-
clientName: clientName !== null && clientName !== void 0 ? clientName : ''
|
|
157
|
-
} : null);
|
|
158
|
-
if (clientId != null) setClient({
|
|
159
|
-
id: clientId,
|
|
160
|
-
name: clientName !== null && clientName !== void 0 ? clientName : ''
|
|
161
|
-
});
|
|
162
|
-
}
|
|
163
|
-
onPinned === null || onPinned === void 0 || onPinned(item);
|
|
164
|
-
close();
|
|
165
|
-
}, [setProject, setClient, setTask, setChipsProject, onPinned, close]);
|
|
166
|
-
useEffect(function () {
|
|
167
|
-
if (!open) return undefined;
|
|
168
|
-
var handler = function handler() {
|
|
169
|
-
return positionPopover();
|
|
170
|
-
};
|
|
171
|
-
window.addEventListener('scroll', handler, true);
|
|
172
|
-
window.addEventListener('resize', handler);
|
|
173
|
-
return function () {
|
|
174
|
-
window.removeEventListener('scroll', handler, true);
|
|
175
|
-
window.removeEventListener('resize', handler);
|
|
176
|
-
};
|
|
177
|
-
}, [open, positionPopover]);
|
|
178
|
-
useEffect(function () {
|
|
179
|
-
if (!open) return undefined;
|
|
180
|
-
var handlePointerDownOutside = function handlePointerDownOutside(mouseEvent) {
|
|
181
|
-
var _popoverAnchorRef$cur2, _triggerRef$current, _closest, _ref2;
|
|
182
|
-
var target = mouseEvent.target;
|
|
183
|
-
if (!target) return;
|
|
184
|
-
if ((_popoverAnchorRef$cur2 = popoverAnchorRef.current) !== null && _popoverAnchorRef$cur2 !== void 0 && _popoverAnchorRef$cur2.contains(target)) return;
|
|
185
|
-
if (triggerRef !== null && triggerRef !== void 0 && (_triggerRef$current = triggerRef.current) !== null && _triggerRef$current !== void 0 && _triggerRef$current.contains(target)) return;
|
|
186
|
-
var overlay = target === null || target === void 0 || (_closest = (_ref2 = target).closest) === null || _closest === void 0 ? void 0 : _closest.call(_ref2, "[".concat(MAIA_TASK_PANEL_OVERLAY_ATTR, "]"));
|
|
187
|
-
if (overlay) return;
|
|
188
|
-
close();
|
|
189
|
-
};
|
|
190
|
-
document.addEventListener('mousedown', handlePointerDownOutside);
|
|
191
|
-
return function () {
|
|
192
|
-
return document.removeEventListener('mousedown', handlePointerDownOutside);
|
|
193
|
-
};
|
|
194
|
-
}, [open, close, popoverAnchorRef, triggerRef]);
|
|
195
|
-
var popoverNode = useMemo(function () {
|
|
196
|
-
if (!open) return null;
|
|
197
|
-
return /*#__PURE__*/_jsx(SCMPAnchor, _objectSpread(_objectSpread({}, _defineProperty({}, MAIA_TASK_PANEL_OVERLAY_ATTR, '')), {}, {
|
|
198
|
-
$bottom: pos.bottom,
|
|
199
|
-
$left: pos.left,
|
|
200
|
-
$width: pos.width,
|
|
201
|
-
$zIndex: zIndex,
|
|
202
|
-
onMouseDown: function onMouseDown(e) {
|
|
203
|
-
return e.stopPropagation();
|
|
204
|
-
},
|
|
205
|
-
children: /*#__PURE__*/_jsx(ContextMentionPopover, {
|
|
206
|
-
allowedTypes: allowedTypes,
|
|
207
|
-
activeType: activeType,
|
|
208
|
-
onTypeChange: setActiveType,
|
|
209
|
-
items: items,
|
|
210
|
-
loading: loading,
|
|
211
|
-
error: error,
|
|
212
|
-
hideRecentsLabel: hideRecentsLabel,
|
|
213
|
-
hasMore: hasMore,
|
|
214
|
-
isLoadingMore: isLoadingMore,
|
|
215
|
-
onReachListEnd: loadMore,
|
|
216
|
-
searchValue: searchValue,
|
|
217
|
-
onItemSelected: commitPin,
|
|
218
|
-
showSearchInput: true,
|
|
219
|
-
hideTabPrefix: true,
|
|
220
|
-
searchPlaceholder: t('contextPin.searchPlaceholder', {
|
|
221
|
-
defaultValue: 'Buscar contexto…'
|
|
222
|
-
}),
|
|
223
|
-
onSearchChange: updateSearchValue,
|
|
224
|
-
onRequestClose: close
|
|
225
|
-
})
|
|
226
|
-
}));
|
|
227
|
-
}, [open, pos, zIndex, allowedTypes, activeType, items, loading, error, hideRecentsLabel, hasMore, isLoadingMore, loadMore, searchValue, commitPin, updateSearchValue, close, t]);
|
|
228
|
-
return {
|
|
229
|
-
open: open,
|
|
230
|
-
toggle: toggle,
|
|
231
|
-
close: close,
|
|
232
|
-
popoverNode: popoverNode
|
|
233
|
-
};
|
|
234
|
-
};
|
|
235
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VDYWxsYmFjayIsInVzZUVmZmVjdCIsInVzZU1lbW8iLCJ1c2VTdGF0ZSIsIkNvbnRleHRNZW50aW9uUG9wb3ZlciIsIk1BSUFfVEFTS19QQU5FTF9PVkVSTEFZX0FUVFIiLCJTQ01QQW5jaG9yIiwidXNlTWFpYVRhc2tQYW5lbFpJbmRleCIsInVzZUdsb2JhbENvbnRleHQiLCJ1c2VUIiwidXNlRW50aXR5U2VhcmNoIiwianN4IiwiX2pzeCIsIlBJTl9BTExPV0VEX1RZUEVTIiwiUElOX0RFRkFVTFRfVFlQRSIsInVzZUNvbnRleHRQaW5Qb3BvdmVyIiwiX3JlZiIsInBvcG92ZXJBbmNob3JSZWYiLCJ0b3BBbmNob3JSZWYiLCJ0cmlnZ2VyUmVmIiwiZW5hYmxlZFR5cGVzIiwib25QaW5uZWQiLCJfdXNlVCIsInQiLCJfdXNlR2xvYmFsQ29udGV4dCIsInNldFByb2plY3QiLCJzZXRDbGllbnQiLCJzZXRUYXNrIiwic2V0Q2hpcHNQcm9qZWN0IiwiekluZGV4IiwiYWxsb3dlZFR5cGVzIiwibGVuZ3RoIiwiX3VzZVN0YXRlIiwiaW5jbHVkZXMiLCJfdXNlU3RhdGUyIiwiX3NsaWNlZFRvQXJyYXkiLCJhY3RpdmVUeXBlIiwic2V0QWN0aXZlVHlwZSIsIl91c2VTdGF0ZTMiLCJfdXNlU3RhdGU0Iiwib3BlbiIsInNldE9wZW4iLCJfdXNlU3RhdGU1IiwiYm90dG9tIiwibGVmdCIsIndpZHRoIiwiX3VzZVN0YXRlNiIsInBvcyIsInNldFBvcyIsIl91c2VFbnRpdHlTZWFyY2giLCJpdGVtcyIsImxvYWRpbmciLCJlcnJvciIsImhpZGVSZWNlbnRzTGFiZWwiLCJoYXNNb3JlIiwiaXNMb2FkaW5nTW9yZSIsImxvYWRNb3JlIiwic2VhcmNoVmFsdWUiLCJ1cGRhdGVTZWFyY2hWYWx1ZSIsInBvc2l0aW9uUG9wb3ZlciIsIl9wb3BvdmVyQW5jaG9yUmVmJGN1ciIsIl90b3BBbmNob3JSZWYkY3VycmVudCIsIl90b3BSZWN0JHRvcCIsImlucHV0UmVjdCIsImN1cnJlbnQiLCJnZXRCb3VuZGluZ0NsaWVudFJlY3QiLCJ0b3BSZWN0IiwiYW5jaG9yVG9wIiwidG9wIiwidmlld3BvcnRXIiwid2luZG93IiwiaW5uZXJXaWR0aCIsInZpZXdwb3J0SCIsImlubmVySGVpZ2h0IiwiTWF0aCIsIm1heCIsIm1pbiIsImNsb3NlIiwidG9nZ2xlIiwicHJldiIsImNvbW1pdFBpbiIsIml0ZW0iLCJfcmF3JGNsaWVudE5hbWUiLCJyYXciLCJjbGllbnRJZCIsIk51bWJlciIsInVuZGVmaW5lZCIsImNsaWVudE5hbWUiLCJjb25zb2xlIiwiaW5mbyIsInR5cGUiLCJyYXdJZCIsImlkIiwicmF3TmFtZSIsIm5hbWUiLCJwcm9qZWN0TmFtZSIsIl9yYXckdG90YWxQcm95ZWN0b3MiLCJ0b3RhbFByb3llY3RvcyIsIl9vYmplY3RTcHJlYWQiLCJmZWVJZCIsImNsaWVudCIsInByb2plY3RJZCIsIlN0cmluZyIsImhhbmRsZXIiLCJhZGRFdmVudExpc3RlbmVyIiwicmVtb3ZlRXZlbnRMaXN0ZW5lciIsImhhbmRsZVBvaW50ZXJEb3duT3V0c2lkZSIsIm1vdXNlRXZlbnQiLCJfcG9wb3ZlckFuY2hvclJlZiRjdXIyIiwiX3RyaWdnZXJSZWYkY3VycmVudCIsIl9jbG9zZXN0IiwiX3JlZjIiLCJ0YXJnZXQiLCJjb250YWlucyIsIm92ZXJsYXkiLCJjbG9zZXN0IiwiY2FsbCIsImNvbmNhdCIsImRvY3VtZW50IiwicG9wb3Zlck5vZGUiLCJfZGVmaW5lUHJvcGVydHkiLCIkYm90dG9tIiwiJGxlZnQiLCIkd2lkdGgiLCIkekluZGV4Iiwib25Nb3VzZURvd24iLCJlIiwic3RvcFByb3BhZ2F0aW9uIiwiY2hpbGRyZW4iLCJvblR5cGVDaGFuZ2UiLCJvblJlYWNoTGlzdEVuZCIsIm9uSXRlbVNlbGVjdGVkIiwic2hvd1NlYXJjaElucHV0IiwiaGlkZVRhYlByZWZpeCIsInNlYXJjaFBsYWNlaG9sZGVyIiwiZGVmYXVsdFZhbHVlIiwib25TZWFyY2hDaGFuZ2UiLCJvblJlcXVlc3RDbG9zZSJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ob29rcy91c2VDb250ZXh0UGluUG9wb3Zlci50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUmVhY3ROb2RlLCBSZWZPYmplY3QsIHVzZUNhbGxiYWNrLCB1c2VFZmZlY3QsIHVzZU1lbW8sIHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnXG5pbXBvcnQge1xuICBDb250ZXh0TWVudGlvblBvcG92ZXIsXG4gIE1BSUFfVEFTS19QQU5FTF9PVkVSTEFZX0FUVFIsXG4gIFNDTVBBbmNob3IsXG59IGZyb20gJy4uL2NvbXBvbmVudHMvYXRvbXMvQ29udGV4dE1lbnRpb25Qb3BvdmVyJ1xuaW1wb3J0IHsgdXNlTWFpYVRhc2tQYW5lbFpJbmRleCB9IGZyb20gJy4vdXNlTWFpYVRhc2tQYW5lbFpJbmRleCdcbmltcG9ydCB7IHVzZUdsb2JhbENvbnRleHQgfSBmcm9tICcuLi9jb250ZXh0L2dsb2JhbC1jb250ZXh0J1xuaW1wb3J0IHsgdXNlVCB9IGZyb20gJy4vdXNlVCdcbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBpbXBvcnQvbm8tY3ljbGVcbmltcG9ydCB7IHVzZUVudGl0eVNlYXJjaCB9IGZyb20gJy4vdXNlRW50aXR5U2VhcmNoJ1xuaW1wb3J0IHsgQ29udGV4dEVudGl0eVR5cGUsIENvbnRleHRNZW50aW9uSXRlbSB9IGZyb20gJy4uL3R5cGVzL2NvbnRleHRNZW50aW9uJ1xuXG4vKiogVGlwb3MgcGluZWFibGVzIGNvbW8gY29udGV4dG8gcGVyc2lzdGVudGUgKFJGQyDCpzY6IG5vIGluY2x1eWUgYHVzZXJgLCBxdWUgZXMgc29sbyBtZW5jacOzbikuICovXG5jb25zdCBQSU5fQUxMT1dFRF9UWVBFUzogQ29udGV4dEVudGl0eVR5cGVbXSA9IFsnY2xpZW50JywgJ3Byb2plY3QnLCAndGFzayddXG5jb25zdCBQSU5fREVGQVVMVF9UWVBFOiBDb250ZXh0RW50aXR5VHlwZSA9ICdwcm9qZWN0J1xuXG5leHBvcnQgdHlwZSBVc2VDb250ZXh0UGluUG9wb3Zlck9wdGlvbnMgPSB7XG4gIC8qKiBXcmFwcGVyIGRlbCBNQUlBSW5wdXQ6IGRlZmluZSBhbmNobyB5IGFsaW5lYWNpw7NuIGhvcml6b250YWwgKGlndWFsIHF1ZSBALW1lbnRpb25zKS4gKi9cbiAgcG9wb3ZlckFuY2hvclJlZjogUmVmT2JqZWN0PEhUTUxFbGVtZW50IHwgbnVsbD5cbiAgLyoqIEZpbGEgZGVsIGNoaXAgLyBiYXJyYSBkZSBjb250ZXh0bzogZGVmaW5lIGVsIGJvcmRlIHN1cGVyaW9yIHZlcnRpY2FsIGRlbCBwb3BvdmVyLiAqL1xuICB0b3BBbmNob3JSZWY/OiBSZWZPYmplY3Q8SFRNTEVsZW1lbnQgfCBudWxsPlxuICAvKiogQm90w7NuIFwiKyBDb250ZXh0b1wiOyBubyBjZXJyYXIgYWwgaGFjZXIgY2xpY2sgZW4gZWwgdHJpZ2dlci4gKi9cbiAgdHJpZ2dlclJlZj86IFJlZk9iamVjdDxIVE1MRWxlbWVudCB8IG51bGw+XG4gIC8qKiBPdmVycmlkZSBkZWwgc2V0IGRlIHRhYnMgcGluZWFibGVzOyBwb3IgZGVmZWN0byBjbGllbnRlL3Byb3llY3RvL3RhcmVhLiAqL1xuICBlbmFibGVkVHlwZXM/OiBDb250ZXh0RW50aXR5VHlwZVtdXG4gIC8qKiBDYWxsYmFjayB0cmFzIGZpamFyIHVuIGNvbnRleHRvIChhbmFseXRpY3MgLyBjaWVycmUgZXh0ZXJubykuICovXG4gIG9uUGlubmVkPzogKGl0ZW06IENvbnRleHRNZW50aW9uSXRlbSkgPT4gdm9pZFxufVxuXG5leHBvcnQgdHlwZSBVc2VDb250ZXh0UGluUG9wb3ZlclJldHVybiA9IHtcbiAgb3BlbjogYm9vbGVhblxuICAvKiogQWJyZS9jaWVycmEgZWwgcG9wb3ZlciAoaGFuZGxlciBkZWwgYm90w7NuIFwiKyBDb250ZXh0b1wiKS4gKi9cbiAgdG9nZ2xlOiAoKSA9PiB2b2lkXG4gIGNsb3NlOiAoKSA9PiB2b2lkXG4gIC8qKiBOb2RvIGRlbCBwb3BvdmVyOyBlbCBjb25zdW1lciBkZWJlIHBvcnRhcmxvIGNvbiBgY3JlYXRlUG9ydGFsYC4gKi9cbiAgcG9wb3Zlck5vZGU6IFJlYWN0Tm9kZSB8IG51bGxcbn1cblxuLyoqXG4gKiBTZWd1bmRvIHB1bnRvIGRlIGVudHJhZGEgZGVsIGJ1c2NhZG9yIGRlIGNvbnRleHRvIChSRkMgwqc2KTogZWwgbWlzbW8gbW90b3JcbiAqIChgdXNlRW50aXR5U2VhcmNoYCArIGBDb250ZXh0TWVudGlvblBvcG92ZXJgKSBwZXJvIGVsIGNvbW1pdCBmaWphIHVuICoqcGluKipcbiAqIHBlcnNpc3RlbnRlIGVuIGVsIGNvbnRleHRvIGdsb2JhbCBlbiB2ZXogZGUgaW5zZXJ0YXIgdW5hIG1lbmNpw7NuLlxuICpcbiAqIEplcmFycXXDrWEgbW9uby1jb250ZXh0byAoUkZDIMKnNS4xKTogdW4gcGluIGEgbGEgdmV6OyBmaWphciB1bm8gcmVlbXBsYXphIGFsXG4gKiBhbnRlcmlvciB5IGFycmFzdHJhIHN1IHNjb3BlIGhhY2lhIGFycmliYSAodGFyZWEg4oeSIHByb3llY3RvK2NsaWVudGUsIGV0Yy4pLlxuICovXG5leHBvcnQgY29uc3QgdXNlQ29udGV4dFBpblBvcG92ZXIgPSAoe1xuICBwb3BvdmVyQW5jaG9yUmVmLFxuICB0b3BBbmNob3JSZWYsXG4gIHRyaWdnZXJSZWYsXG4gIGVuYWJsZWRUeXBlcyxcbiAgb25QaW5uZWQsXG59OiBVc2VDb250ZXh0UGluUG9wb3Zlck9wdGlvbnMpOiBVc2VDb250ZXh0UGluUG9wb3ZlclJldHVybiA9PiB7XG4gIGNvbnN0IHsgdCB9ID0gdXNlVCgpXG4gIGNvbnN0IHsgc2V0UHJvamVjdCwgc2V0Q2xpZW50LCBzZXRUYXNrLCBzZXRDaGlwc1Byb2plY3QgfSA9IHVzZUdsb2JhbENvbnRleHQoKVxuICBjb25zdCB6SW5kZXggPSB1c2VNYWlhVGFza1BhbmVsWkluZGV4KDEyMDAsICdvdmVybGF5JylcblxuICBjb25zdCBhbGxvd2VkVHlwZXMgPSBlbmFibGVkVHlwZXMgJiYgZW5hYmxlZFR5cGVzLmxlbmd0aCA+IDAgPyBlbmFibGVkVHlwZXMgOiBQSU5fQUxMT1dFRF9UWVBFU1xuICBjb25zdCBbYWN0aXZlVHlwZSwgc2V0QWN0aXZlVHlwZV0gPSB1c2VTdGF0ZTxDb250ZXh0RW50aXR5VHlwZT4oXG4gICAgYWxsb3dlZFR5cGVzLmluY2x1ZGVzKFBJTl9ERUZBVUxUX1RZUEUpID8gUElOX0RFRkFVTFRfVFlQRSA6IGFsbG93ZWRUeXBlc1swXVxuICApXG4gIGNvbnN0IFtvcGVuLCBzZXRPcGVuXSA9IHVzZVN0YXRlKGZhbHNlKVxuICBjb25zdCBbcG9zLCBzZXRQb3NdID0gdXNlU3RhdGU8eyBib3R0b206IG51bWJlcjsgbGVmdDogbnVtYmVyOyB3aWR0aDogbnVtYmVyIH0+KHsgYm90dG9tOiAwLCBsZWZ0OiAwLCB3aWR0aDogMCB9KVxuXG4gIC8vIFNjb3BlIHNpbiByZXN0cmljY2nDs246IGRlc2RlIGVsIGJvdMOzbiBzZSBidXNjYSBsaWJyZW1lbnRlIGN1YWxxdWllciBlbnRpZGFkIChtb2RvIGdsb2JhbCkuXG4gIGNvbnN0IHsgaXRlbXMsIGxvYWRpbmcsIGVycm9yLCBoaWRlUmVjZW50c0xhYmVsLCBoYXNNb3JlLCBpc0xvYWRpbmdNb3JlLCBsb2FkTW9yZSwgc2VhcmNoVmFsdWUsIHVwZGF0ZVNlYXJjaFZhbHVlIH0gPVxuICAgIHVzZUVudGl0eVNlYXJjaChhY3RpdmVUeXBlKVxuXG4gIGNvbnN0IHBvc2l0aW9uUG9wb3ZlciA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICBjb25zdCBpbnB1dFJlY3QgPSBwb3BvdmVyQW5jaG9yUmVmLmN1cnJlbnQ/LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpXG4gICAgaWYgKCFpbnB1dFJlY3QgfHwgaW5wdXRSZWN0LndpZHRoIDw9IDApIHJldHVyblxuICAgIGNvbnN0IHRvcFJlY3QgPSB0b3BBbmNob3JSZWY/LmN1cnJlbnQ/LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpXG4gICAgY29uc3QgYW5jaG9yVG9wID0gdG9wUmVjdD8udG9wID8/IGlucHV0UmVjdC50b3BcbiAgICBjb25zdCB2aWV3cG9ydFcgPSB3aW5kb3cuaW5uZXJXaWR0aFxuICAgIGNvbnN0IHZpZXdwb3J0SCA9IHdpbmRvdy5pbm5lckhlaWdodFxuICAgIGNvbnN0IHsgd2lkdGggfSA9IGlucHV0UmVjdFxuICAgIGNvbnN0IGxlZnQgPSBNYXRoLm1heCg4LCBNYXRoLm1pbih2aWV3cG9ydFcgLSB3aWR0aCAtIDgsIGlucHV0UmVjdC5sZWZ0KSlcbiAgICAvKiogfjRweCBzb2JyZSBlbCBib3JkZSBzdXBlcmlvciBkZSBsYSBiYXJyYSBkZSBjb250ZXh0byAoY2hpcCksIG5vIGRlbCBpbnB1dC4gKi9cbiAgICBzZXRQb3MoeyB3aWR0aCwgbGVmdCwgYm90dG9tOiB2aWV3cG9ydEggLSBhbmNob3JUb3AgKyA0IH0pXG4gIH0sIFtwb3BvdmVyQW5jaG9yUmVmLCB0b3BBbmNob3JSZWZdKVxuXG4gIGNvbnN0IGNsb3NlID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIHNldE9wZW4oZmFsc2UpXG4gICAgdXBkYXRlU2VhcmNoVmFsdWUoJycpXG4gIH0sIFt1cGRhdGVTZWFyY2hWYWx1ZV0pXG5cbiAgY29uc3QgdG9nZ2xlID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIHNldE9wZW4ocHJldiA9PiB7XG4gICAgICBpZiAocHJldikge1xuICAgICAgICB1cGRhdGVTZWFyY2hWYWx1ZSgnJylcbiAgICAgICAgcmV0dXJuIGZhbHNlXG4gICAgICB9XG4gICAgICBwb3NpdGlvblBvcG92ZXIoKVxuICAgICAgcmV0dXJuIHRydWVcbiAgICB9KVxuICB9LCBbcG9zaXRpb25Qb3BvdmVyLCB1cGRhdGVTZWFyY2hWYWx1ZV0pXG5cbiAgY29uc3QgY29tbWl0UGluID0gdXNlQ2FsbGJhY2soXG4gICAgKGl0ZW06IENvbnRleHRNZW50aW9uSXRlbSkgPT4ge1xuICAgICAgY29uc3QgeyByYXcgfSA9IGl0ZW1cbiAgICAgIGNvbnN0IGNsaWVudElkID0gcmF3LmNsaWVudElkICE9IG51bGwgPyBOdW1iZXIocmF3LmNsaWVudElkKSA6IHVuZGVmaW5lZFxuICAgICAgY29uc3QgY2xpZW50TmFtZSA9IHJhdy5jbGllbnROYW1lID8/IHVuZGVmaW5lZFxuXG4gICAgICBjb25zb2xlLmluZm8oJ1t1c2VDb250ZXh0UGluUG9wb3Zlcl0gY29tbWl0UGluIOKAlCBBU0lHTkFORE8gY29udGV4dG86Jywge1xuICAgICAgICB0eXBlOiBpdGVtLnR5cGUsXG4gICAgICAgIHJhd0lkOiByYXcuaWQsXG4gICAgICAgIHJhd05hbWU6IHJhdy5uYW1lLFxuICAgICAgICBwcm9qZWN0TmFtZTogcmF3LnByb2plY3ROYW1lLFxuICAgICAgICBjbGllbnRJZCxcbiAgICAgIH0pXG5cbiAgICAgIGlmIChpdGVtLnR5cGUgPT09ICdjbGllbnQnKSB7XG4gICAgICAgIHNldFByb2plY3QobnVsbClcbiAgICAgICAgc2V0VGFzayhudWxsKVxuICAgICAgICBzZXRDaGlwc1Byb2plY3QobnVsbClcbiAgICAgICAgc2V0Q2xpZW50KHsgaWQ6IE51bWJlcihyYXcuaWQpLCBuYW1lOiByYXcubmFtZSwgdG90YWxQcm95ZWN0b3M6IHJhdy50b3RhbFByb3llY3RvcyA/PyB1bmRlZmluZWQgfSlcbiAgICAgIH0gZWxzZSBpZiAoaXRlbS50eXBlID09PSAncHJvamVjdCcpIHtcbiAgICAgICAgc2V0VGFzayhudWxsKVxuICAgICAgICBzZXRQcm9qZWN0KHtcbiAgICAgICAgICBpZDogTnVtYmVyKHJhdy5pZCksXG4gICAgICAgICAgbmFtZTogcmF3Lm5hbWUsXG4gICAgICAgICAgLi4uKGNsaWVudElkICE9IG51bGwgPyB7IGNsaWVudElkIH0gOiB7fSksXG4gICAgICAgICAgLi4uKHJhdy5mZWVJZCAhPSBudWxsID8geyBmZWVJZDogcmF3LmZlZUlkIH0gOiB7fSksXG4gICAgICAgICAgLi4uKGNsaWVudElkICE9IG51bGwgPyB7IGNsaWVudDogeyBpZDogY2xpZW50SWQsIG5hbWU6IGNsaWVudE5hbWUgPz8gJycgfSB9IDoge30pLFxuICAgICAgICB9KVxuICAgICAgICAvLyBjaGlwc1Byb2plY3QgaGFjZSB2aXNpYmxlIGVsIHBpbiBlbiBlbCBjaGlwIGRlbCBvcnF1ZXN0YWRvciAoUkZDIMKnNykuXG4gICAgICAgIHNldENoaXBzUHJvamVjdCh7IHByb2plY3RJZDogU3RyaW5nKHJhdy5pZCksIHByb2plY3ROYW1lOiByYXcubmFtZSwgY2xpZW50TmFtZTogY2xpZW50TmFtZSA/PyAnJyB9KVxuICAgICAgICBzZXRDbGllbnQoY2xpZW50SWQgIT0gbnVsbCA/IHsgaWQ6IGNsaWVudElkLCBuYW1lOiBjbGllbnROYW1lID8/ICcnIH0gOiBudWxsKVxuICAgICAgfSBlbHNlIGlmIChpdGVtLnR5cGUgPT09ICd0YXNrJykge1xuICAgICAgICAvLyBFbCBpdGVtIGRlIHRhcmVhIG5vIHRyYWUgcHJvamVjdElkIGZpYWJsZTsgc3ViaW1vcyBsbyBkaXNwb25pYmxlIChwcm95ZWN0byBwb3Igbm9tYnJlLCBjbGllbnRlIHBvciBpZCkuXG4gICAgICAgIHNldFRhc2soeyBpZDogcmF3LmlkLCBuYW1lOiByYXcubmFtZSwgLi4uKGNsaWVudElkICE9IG51bGwgPyB7IGNsaWVudElkIH0gOiB7fSkgfSlcbiAgICAgICAgc2V0Q2hpcHNQcm9qZWN0KFxuICAgICAgICAgIHJhdy5wcm9qZWN0TmFtZSA/IHsgcHJvamVjdElkOiAnJywgcHJvamVjdE5hbWU6IHJhdy5wcm9qZWN0TmFtZSwgY2xpZW50TmFtZTogY2xpZW50TmFtZSA/PyAnJyB9IDogbnVsbFxuICAgICAgICApXG4gICAgICAgIGlmIChjbGllbnRJZCAhPSBudWxsKSBzZXRDbGllbnQoeyBpZDogY2xpZW50SWQsIG5hbWU6IGNsaWVudE5hbWUgPz8gJycgfSlcbiAgICAgIH1cblxuICAgICAgb25QaW5uZWQ/LihpdGVtKVxuICAgICAgY2xvc2UoKVxuICAgIH0sXG4gICAgW3NldFByb2plY3QsIHNldENsaWVudCwgc2V0VGFzaywgc2V0Q2hpcHNQcm9qZWN0LCBvblBpbm5lZCwgY2xvc2VdXG4gIClcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmICghb3BlbikgcmV0dXJuIHVuZGVmaW5lZFxuICAgIGNvbnN0IGhhbmRsZXIgPSAoKSA9PiBwb3NpdGlvblBvcG92ZXIoKVxuICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdzY3JvbGwnLCBoYW5kbGVyLCB0cnVlKVxuICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdyZXNpemUnLCBoYW5kbGVyKVxuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcignc2Nyb2xsJywgaGFuZGxlciwgdHJ1ZSlcbiAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCdyZXNpemUnLCBoYW5kbGVyKVxuICAgIH1cbiAgfSwgW29wZW4sIHBvc2l0aW9uUG9wb3Zlcl0pXG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoIW9wZW4pIHJldHVybiB1bmRlZmluZWRcbiAgICBjb25zdCBoYW5kbGVQb2ludGVyRG93bk91dHNpZGUgPSAobW91c2VFdmVudDogTW91c2VFdmVudCkgPT4ge1xuICAgICAgY29uc3QgdGFyZ2V0ID0gbW91c2VFdmVudC50YXJnZXQgYXMgTm9kZSB8IG51bGxcbiAgICAgIGlmICghdGFyZ2V0KSByZXR1cm5cbiAgICAgIGlmIChwb3BvdmVyQW5jaG9yUmVmLmN1cnJlbnQ/LmNvbnRhaW5zKHRhcmdldCkpIHJldHVyblxuICAgICAgaWYgKHRyaWdnZXJSZWY/LmN1cnJlbnQ/LmNvbnRhaW5zKHRhcmdldCkpIHJldHVyblxuICAgICAgY29uc3Qgb3ZlcmxheSA9ICh0YXJnZXQgYXMgRWxlbWVudCk/LmNsb3Nlc3Q/LihgWyR7TUFJQV9UQVNLX1BBTkVMX09WRVJMQVlfQVRUUn1dYClcbiAgICAgIGlmIChvdmVybGF5KSByZXR1cm5cbiAgICAgIGNsb3NlKClcbiAgICB9XG4gICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignbW91c2Vkb3duJywgaGFuZGxlUG9pbnRlckRvd25PdXRzaWRlKVxuICAgIHJldHVybiAoKSA9PiBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdtb3VzZWRvd24nLCBoYW5kbGVQb2ludGVyRG93bk91dHNpZGUpXG4gIH0sIFtvcGVuLCBjbG9zZSwgcG9wb3ZlckFuY2hvclJlZiwgdHJpZ2dlclJlZl0pXG5cbiAgY29uc3QgcG9wb3Zlck5vZGUgPSB1c2VNZW1vPFJlYWN0Tm9kZSB8IG51bGw+KCgpID0+IHtcbiAgICBpZiAoIW9wZW4pIHJldHVybiBudWxsXG4gICAgcmV0dXJuIChcbiAgICAgIDxTQ01QQW5jaG9yXG4gICAgICAgIHsuLi57IFtNQUlBX1RBU0tfUEFORUxfT1ZFUkxBWV9BVFRSXTogJycgfX1cbiAgICAgICAgJGJvdHRvbT17cG9zLmJvdHRvbX1cbiAgICAgICAgJGxlZnQ9e3Bvcy5sZWZ0fVxuICAgICAgICAkd2lkdGg9e3Bvcy53aWR0aH1cbiAgICAgICAgJHpJbmRleD17ekluZGV4fVxuICAgICAgICBvbk1vdXNlRG93bj17ZSA9PiBlLnN0b3BQcm9wYWdhdGlvbigpfVxuICAgICAgPlxuICAgICAgICA8Q29udGV4dE1lbnRpb25Qb3BvdmVyXG4gICAgICAgICAgYWxsb3dlZFR5cGVzPXthbGxvd2VkVHlwZXN9XG4gICAgICAgICAgYWN0aXZlVHlwZT17YWN0aXZlVHlwZX1cbiAgICAgICAgICBvblR5cGVDaGFuZ2U9e3NldEFjdGl2ZVR5cGV9XG4gICAgICAgICAgaXRlbXM9e2l0ZW1zfVxuICAgICAgICAgIGxvYWRpbmc9e2xvYWRpbmd9XG4gICAgICAgICAgZXJyb3I9e2Vycm9yfVxuICAgICAgICAgIGhpZGVSZWNlbnRzTGFiZWw9e2hpZGVSZWNlbnRzTGFiZWx9XG4gICAgICAgICAgaGFzTW9yZT17aGFzTW9yZX1cbiAgICAgICAgICBpc0xvYWRpbmdNb3JlPXtpc0xvYWRpbmdNb3JlfVxuICAgICAgICAgIG9uUmVhY2hMaXN0RW5kPXtsb2FkTW9yZX1cbiAgICAgICAgICBzZWFyY2hWYWx1ZT17c2VhcmNoVmFsdWV9XG4gICAgICAgICAgb25JdGVtU2VsZWN0ZWQ9e2NvbW1pdFBpbn1cbiAgICAgICAgICBzaG93U2VhcmNoSW5wdXRcbiAgICAgICAgICBoaWRlVGFiUHJlZml4XG4gICAgICAgICAgc2VhcmNoUGxhY2Vob2xkZXI9e3QoJ2NvbnRleHRQaW4uc2VhcmNoUGxhY2Vob2xkZXInLCB7IGRlZmF1bHRWYWx1ZTogJ0J1c2NhciBjb250ZXh0b+KApicgfSl9XG4gICAgICAgICAgb25TZWFyY2hDaGFuZ2U9e3VwZGF0ZVNlYXJjaFZhbHVlfVxuICAgICAgICAgIG9uUmVxdWVzdENsb3NlPXtjbG9zZX1cbiAgICAgICAgLz5cbiAgICAgIDwvU0NNUEFuY2hvcj5cbiAgICApXG4gIH0sIFtcbiAgICBvcGVuLFxuICAgIHBvcyxcbiAgICB6SW5kZXgsXG4gICAgYWxsb3dlZFR5cGVzLFxuICAgIGFjdGl2ZVR5cGUsXG4gICAgaXRlbXMsXG4gICAgbG9hZGluZyxcbiAgICBlcnJvcixcbiAgICBoaWRlUmVjZW50c0xhYmVsLFxuICAgIGhhc01vcmUsXG4gICAgaXNMb2FkaW5nTW9yZSxcbiAgICBsb2FkTW9yZSxcbiAgICBzZWFyY2hWYWx1ZSxcbiAgICBjb21taXRQaW4sXG4gICAgdXBkYXRlU2VhcmNoVmFsdWUsXG4gICAgY2xvc2UsXG4gICAgdCxcbiAgXSlcblxuICByZXR1cm4geyBvcGVuLCB0b2dnbGUsIGNsb3NlLCBwb3BvdmVyTm9kZSB9XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxTQUErQkEsV0FBVyxFQUFFQyxTQUFTLEVBQUVDLE9BQU8sRUFBRUMsUUFBUSxRQUFRLE9BQU87QUFDdkYsU0FDRUMscUJBQXFCLEVBQ3JCQyw0QkFBNEIsRUFDNUJDLFVBQVUsUUFDTCwyQ0FBMkM7QUFDbEQsU0FBU0Msc0JBQXNCLFFBQVEsMEJBQTBCO0FBQ2pFLFNBQVNDLGdCQUFnQixRQUFRLDJCQUEyQjtBQUM1RCxTQUFTQyxJQUFJLFFBQVEsUUFBUTtBQUM3QjtBQUNBLFNBQVNDLGVBQWUsUUFBUSxtQkFBbUI7QUFBQSxTQUFB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
|
|
@@ -1,86 +0,0 @@
|
|
|
1
|
-
import _asyncToGenerator from "@babel/runtime/helpers/asyncToGenerator";
|
|
2
|
-
import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
|
|
3
|
-
import _regeneratorRuntime from "@babel/runtime/regenerator";
|
|
4
|
-
import { useCallback, useEffect, useState } from 'react';
|
|
5
|
-
import { getRecentContexts } from '../services/maia/RecentContexts';
|
|
6
|
-
export var useRecentContexts = function useRecentContexts() {
|
|
7
|
-
var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
|
|
8
|
-
agentId = _ref.agentId,
|
|
9
|
-
_ref$enabled = _ref.enabled,
|
|
10
|
-
enabled = _ref$enabled === void 0 ? true : _ref$enabled,
|
|
11
|
-
_ref$limit = _ref.limit,
|
|
12
|
-
limit = _ref$limit === void 0 ? 9 : _ref$limit;
|
|
13
|
-
var _useState = useState([]),
|
|
14
|
-
_useState2 = _slicedToArray(_useState, 2),
|
|
15
|
-
contexts = _useState2[0],
|
|
16
|
-
setContexts = _useState2[1];
|
|
17
|
-
var _useState3 = useState(false),
|
|
18
|
-
_useState4 = _slicedToArray(_useState3, 2),
|
|
19
|
-
loading = _useState4[0],
|
|
20
|
-
setLoading = _useState4[1];
|
|
21
|
-
var _useState5 = useState(null),
|
|
22
|
-
_useState6 = _slicedToArray(_useState5, 2),
|
|
23
|
-
error = _useState6[0],
|
|
24
|
-
setError = _useState6[1];
|
|
25
|
-
var _useState7 = useState(false),
|
|
26
|
-
_useState8 = _slicedToArray(_useState7, 2),
|
|
27
|
-
loaded = _useState8[0],
|
|
28
|
-
setLoaded = _useState8[1];
|
|
29
|
-
var fetchRecentContexts = useCallback(/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee() {
|
|
30
|
-
var data, message, _t;
|
|
31
|
-
return _regeneratorRuntime.wrap(function (_context) {
|
|
32
|
-
while (1) switch (_context.prev = _context.next) {
|
|
33
|
-
case 0:
|
|
34
|
-
if (enabled) {
|
|
35
|
-
_context.next = 1;
|
|
36
|
-
break;
|
|
37
|
-
}
|
|
38
|
-
setContexts([]);
|
|
39
|
-
setLoading(false);
|
|
40
|
-
setError(null);
|
|
41
|
-
setLoaded(false);
|
|
42
|
-
return _context.abrupt("return");
|
|
43
|
-
case 1:
|
|
44
|
-
setLoading(true);
|
|
45
|
-
setError(null);
|
|
46
|
-
_context.prev = 2;
|
|
47
|
-
_context.next = 3;
|
|
48
|
-
return getRecentContexts({
|
|
49
|
-
agentId: agentId,
|
|
50
|
-
limit: limit
|
|
51
|
-
});
|
|
52
|
-
case 3:
|
|
53
|
-
data = _context.sent;
|
|
54
|
-
setContexts(data);
|
|
55
|
-
_context.next = 5;
|
|
56
|
-
break;
|
|
57
|
-
case 4:
|
|
58
|
-
_context.prev = 4;
|
|
59
|
-
_t = _context["catch"](2);
|
|
60
|
-
message = _t instanceof Error ? _t.message : 'An unknown error occurred';
|
|
61
|
-
setError(message);
|
|
62
|
-
setContexts([]);
|
|
63
|
-
console.error('Error fetching recent contexts:', _t);
|
|
64
|
-
case 5:
|
|
65
|
-
_context.prev = 5;
|
|
66
|
-
setLoading(false);
|
|
67
|
-
setLoaded(true);
|
|
68
|
-
return _context.finish(5);
|
|
69
|
-
case 6:
|
|
70
|
-
case "end":
|
|
71
|
-
return _context.stop();
|
|
72
|
-
}
|
|
73
|
-
}, _callee, null, [[2, 4, 5, 6]]);
|
|
74
|
-
})), [agentId, enabled, limit]);
|
|
75
|
-
useEffect(function () {
|
|
76
|
-
fetchRecentContexts();
|
|
77
|
-
}, [fetchRecentContexts]);
|
|
78
|
-
return {
|
|
79
|
-
contexts: contexts,
|
|
80
|
-
loading: loading,
|
|
81
|
-
loaded: loaded,
|
|
82
|
-
error: error,
|
|
83
|
-
fetchRecentContexts: fetchRecentContexts
|
|
84
|
-
};
|
|
85
|
-
};
|
|
86
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VDYWxsYmFjayIsInVzZUVmZmVjdCIsInVzZVN0YXRlIiwiZ2V0UmVjZW50Q29udGV4dHMiLCJ1c2VSZWNlbnRDb250ZXh0cyIsIl9yZWYiLCJhcmd1bWVudHMiLCJsZW5ndGgiLCJ1bmRlZmluZWQiLCJhZ2VudElkIiwiX3JlZiRlbmFibGVkIiwiZW5hYmxlZCIsIl9yZWYkbGltaXQiLCJsaW1pdCIsIl91c2VTdGF0ZSIsIl91c2VTdGF0ZTIiLCJfc2xpY2VkVG9BcnJheSIsImNvbnRleHRzIiwic2V0Q29udGV4dHMiLCJfdXNlU3RhdGUzIiwiX3VzZVN0YXRlNCIsImxvYWRpbmciLCJzZXRMb2FkaW5nIiwiX3VzZVN0YXRlNSIsIl91c2VTdGF0ZTYiLCJlcnJvciIsInNldEVycm9yIiwiX3VzZVN0YXRlNyIsIl91c2VTdGF0ZTgiLCJsb2FkZWQiLCJzZXRMb2FkZWQiLCJmZXRjaFJlY2VudENvbnRleHRzIiwiX2FzeW5jVG9HZW5lcmF0b3IiLCJfcmVnZW5lcmF0b3JSdW50aW1lIiwibWFyayIsIl9jYWxsZWUiLCJkYXRhIiwibWVzc2FnZSIsIl90Iiwid3JhcCIsIl9jb250ZXh0IiwicHJldiIsIm5leHQiLCJhYnJ1cHQiLCJzZW50IiwiRXJyb3IiLCJjb25zb2xlIiwiZmluaXNoIiwic3RvcCJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ob29rcy91c2VSZWNlbnRDb250ZXh0cy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB1c2VDYWxsYmFjaywgdXNlRWZmZWN0LCB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHsgZ2V0UmVjZW50Q29udGV4dHMsIHR5cGUgUmVjZW50Q29udGV4dEl0ZW0gfSBmcm9tICcuLi9zZXJ2aWNlcy9tYWlhL1JlY2VudENvbnRleHRzJ1xuXG50eXBlIFVzZVJlY2VudENvbnRleHRzT3B0aW9ucyA9IHtcbiAgYWdlbnRJZD86IHN0cmluZyB8IG51bWJlclxuICBlbmFibGVkPzogYm9vbGVhblxuICBsaW1pdD86IG51bWJlclxufVxuXG5leHBvcnQgY29uc3QgdXNlUmVjZW50Q29udGV4dHMgPSAoeyBhZ2VudElkLCBlbmFibGVkID0gdHJ1ZSwgbGltaXQgPSA5IH06IFVzZVJlY2VudENvbnRleHRzT3B0aW9ucyA9IHt9KSA9PiB7XG4gIGNvbnN0IFtjb250ZXh0cywgc2V0Q29udGV4dHNdID0gdXNlU3RhdGU8UmVjZW50Q29udGV4dEl0ZW1bXT4oW10pXG4gIGNvbnN0IFtsb2FkaW5nLCBzZXRMb2FkaW5nXSA9IHVzZVN0YXRlKGZhbHNlKVxuICBjb25zdCBbZXJyb3IsIHNldEVycm9yXSA9IHVzZVN0YXRlPHN0cmluZyB8IG51bGw+KG51bGwpXG4gIGNvbnN0IFtsb2FkZWQsIHNldExvYWRlZF0gPSB1c2VTdGF0ZShmYWxzZSlcblxuICBjb25zdCBmZXRjaFJlY2VudENvbnRleHRzID0gdXNlQ2FsbGJhY2soYXN5bmMgKCkgPT4ge1xuICAgIGlmICghZW5hYmxlZCkge1xuICAgICAgc2V0Q29udGV4dHMoW10pXG4gICAgICBzZXRMb2FkaW5nKGZhbHNlKVxuICAgICAgc2V0RXJyb3IobnVsbClcbiAgICAgIHNldExvYWRlZChmYWxzZSlcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIHNldExvYWRpbmcodHJ1ZSlcbiAgICBzZXRFcnJvcihudWxsKVxuXG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IGRhdGEgPSBhd2FpdCBnZXRSZWNlbnRDb250ZXh0cyh7IGFnZW50SWQsIGxpbWl0IH0pXG4gICAgICBzZXRDb250ZXh0cyhkYXRhKVxuICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgY29uc3QgbWVzc2FnZSA9IGVyciBpbnN0YW5jZW9mIEVycm9yID8gZXJyLm1lc3NhZ2UgOiAnQW4gdW5rbm93biBlcnJvciBvY2N1cnJlZCdcbiAgICAgIHNldEVycm9yKG1lc3NhZ2UpXG4gICAgICBzZXRDb250ZXh0cyhbXSlcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yIGZldGNoaW5nIHJlY2VudCBjb250ZXh0czonLCBlcnIpXG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIHNldExvYWRpbmcoZmFsc2UpXG4gICAgICBzZXRMb2FkZWQodHJ1ZSlcbiAgICB9XG4gIH0sIFthZ2VudElkLCBlbmFibGVkLCBsaW1pdF0pXG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBmZXRjaFJlY2VudENvbnRleHRzKClcbiAgfSwgW2ZldGNoUmVjZW50Q29udGV4dHNdKVxuXG4gIHJldHVybiB7XG4gICAgY29udGV4dHMsXG4gICAgbG9hZGluZyxcbiAgICBsb2FkZWQsXG4gICAgZXJyb3IsXG4gICAgZmV0Y2hSZWNlbnRDb250ZXh0cyxcbiAgfVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7QUFBQSxTQUFTQSxXQUFXLEVBQUVDLFNBQVMsRUFBRUMsUUFBUSxRQUFRLE9BQU87QUFDeEQsU0FBU0MsaUJBQWlCLFFBQWdDLGlDQUFpQztBQVEzRixPQUFPLElBQU1DLGlCQUFpQixHQUFHLFNBQXBCQSxpQkFBaUJBLENBQUEsRUFBOEU7RUFBQSxJQUFBQyxJQUFBLEdBQUFDLFNBQUEsQ0FBQUMsTUFBQSxRQUFBRCxTQUFBLFFBQUFFLFNBQUEsR0FBQUYsU0FBQSxNQUFQLENBQUMsQ0FBQztJQUFuRUcsT0FBTyxHQUFBSixJQUFBLENBQVBJLE9BQU87SUFBQUMsWUFBQSxHQUFBTCxJQUFBLENBQUVNLE9BQU87SUFBUEEsT0FBTyxHQUFBRCxZQUFBLGNBQUcsSUFBSSxHQUFBQSxZQUFBO0lBQUFFLFVBQUEsR0FBQVAsSUFBQSxDQUFFUSxLQUFLO0lBQUxBLEtBQUssR0FBQUQsVUFBQSxjQUFHLENBQUMsR0FBQUEsVUFBQTtFQUNwRSxJQUFBRSxTQUFBLEdBQWdDWixRQUFRLENBQXNCLEVBQUUsQ0FBQztJQUFBYSxVQUFBLEdBQUFDLGNBQUEsQ0FBQUYsU0FBQTtJQUExREcsUUFBUSxHQUFBRixVQUFBO0lBQUVHLFdBQVcsR0FBQUgsVUFBQTtFQUM1QixJQUFBSSxVQUFBLEdBQThCakIsUUFBUSxDQUFDLEtBQUssQ0FBQztJQUFBa0Is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
|
|
@@ -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,132 +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
|
-
var projectMatch = href.match(new RegExp(PROJECT_URL_REGEX_PATTERN));
|
|
111
|
-
if (projectMatch) {
|
|
112
|
-
return /*#__PURE__*/_jsx(ProjectLink, {
|
|
113
|
-
href: href,
|
|
114
|
-
children: children
|
|
115
|
-
});
|
|
116
|
-
}
|
|
117
|
-
var taskMatch = href.match(new RegExp(TASK_URL_REGEX_PATTERN));
|
|
118
|
-
if (taskMatch) {
|
|
119
|
-
var taskId = taskMatch[1];
|
|
120
|
-
return /*#__PURE__*/_jsx(TaskLink, {
|
|
121
|
-
href: href,
|
|
122
|
-
taskId: taskId,
|
|
123
|
-
children: children
|
|
124
|
-
});
|
|
125
|
-
}
|
|
126
|
-
return /*#__PURE__*/_jsx("a", _objectSpread(_objectSpread({
|
|
127
|
-
href: href
|
|
128
|
-
}, rest), {}, {
|
|
129
|
-
children: children
|
|
130
|
-
}));
|
|
131
|
-
};
|
|
132
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsIlRBU0tfVVJMX1JFR0VYX1BBVFRFUk4iLCJQUk9KRUNUX1VSTF9SRUdFWF9QQVRURVJOIiwicmVuZGVyTWVudGlvbkxpbmsiLCJ1c2VUYXNrUGFuZWwiLCJnZXRDb250ZXh0TWVudGlvbkljb24iLCJTQ1Rhc2tMaW5rIiwiU0NQcm9qZWN0TGluayIsIlNDUHJvamVjdExpbmtJY29uIiwianN4IiwiX2pzeCIsImpzeHMiLCJfanN4cyIsIlBST0pFQ1RfTElOS19JQ09OX0NPTE9SIiwiUFJPSkVDVF9MSU5LX0lDT05fU0laRSIsImdldFRhYlNlZ21lbnRGcm9tSHJlZiIsImhyZWYiLCJtYXRjaCIsInRlc3QiLCJleHRyYWN0VGFza3NGcm9tTWVzc2FnZSIsIm1lc3NhZ2UiLCJ0YXNrVXJsUmVnZXgiLCJSZWdFeHAiLCJ0YXNrcyIsInNlZW5JZHMiLCJTZXQiLCJleGVjIiwidGFza0lkIiwidXJsIiwiaGFzIiwiYWRkIiwiZXNjYXBlZFVybCIsInJlcGxhY2UiLCJtYXJrZG93bkxpbmtSZWdleCIsImNvbmNhdCIsImxpbmtNYXRjaCIsInRpdGxlIiwicHVzaCIsImlkIiwiaGFzVGFza0xpbmtzIiwidGV4dCIsImxlbmd0aCIsImhhc1Byb2plY3RMaW5rcyIsIlRBU0tfTUVOVElPTl9NQVJLRVJfUkUiLCJNQUlBX1RBU0tfTUVOVElPTl9IUkVGX1JFIiwiaGFzVGFza0xpbmtzT3JUYXNrTWVudGlvbnMiLCJnZXRFbnRpdHlMaW5rV3JhcHBlckNsYXNzTmFtZSIsImNsYXNzZXMiLCJqb2luIiwiVGFza0xpbmsiLCJfcmVmIiwiY2hpbGRyZW4iLCJ0YWJTZWdtZW50IiwiX3VzZVRhc2tQYW5lbCIsImJ1aWxkT3BlblRhc2siLCJvcGVuVGFzayIsImhhbmRsZUNsaWNrIiwiZSIsIm1ldGFLZXkiLCJjdHJsS2V5IiwicHJldmVudERlZmF1bHQiLCJvbkNsaWNrIiwiUHJvamVjdExpbmsiLCJfcmVmMiIsInRhcmdldCIsInJlbCIsInVuZGVmaW5lZCIsIkVudGl0eUxpbmtDdXN0b21MaW5rIiwiX3JlZjMiLCJyZXN0IiwiX29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzIiwiX2V4Y2x1ZGVkIiwiX29iamVjdFNwcmVhZCIsIm1lbnRpb25Ob2RlIiwicHJvamVjdE1hdGNoIiwidGFza01hdGNoIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3V0aWxzL2VudGl0eUxpbmtSZW5kZXIudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCwgeyBGQywgUmVhY3ROb2RlIH0gZnJvbSAncmVhY3QnXG5pbXBvcnQgeyBUYXNrSW5mbyB9IGZyb20gJy4uL3R5cGVzL0NoYXQnXG5pbXBvcnQgeyBUQVNLX1VSTF9SRUdFWF9QQVRURVJOLCBQUk9KRUNUX1VSTF9SRUdFWF9QQVRURVJOIH0gZnJvbSAnLi4vY29uc3RhbnRzL3Rhc2tVcmxzJ1xuaW1wb3J0IHsgcmVuZGVyTWVudGlvbkxpbmsgfSBmcm9tICcuL3JlbmRlckNvbnRleHRNZW50aW9ucydcbmltcG9ydCB7IHVzZVRhc2tQYW5lbCB9IGZyb20gJy4uL2hvb2tzL3VzZVRhc2tQYW5lbCdcbmltcG9ydCB7IGdldENvbnRleHRNZW50aW9uSWNvbiB9IGZyb20gJy4vY29udGV4dE1lbnRpb25JY29ucydcbmltcG9ydCB7IFNDVGFza0xpbmssIFNDUHJvamVjdExpbmssIFNDUHJvamVjdExpbmtJY29uIH0gZnJvbSAnLi4vY29tcG9uZW50cy9tb2xlY3VsZXMvQ2hhdEFJTWVzc2FnZXMvbmV3U3R5bGVzJ1xuXG5jb25zdCBQUk9KRUNUX0xJTktfSUNPTl9DT0xPUiA9ICcjMjAyMDIwJ1xuY29uc3QgUFJPSkVDVF9MSU5LX0lDT05fU0laRSA9IDIwXG5cbmNvbnN0IGdldFRhYlNlZ21lbnRGcm9tSHJlZiA9IChocmVmOiBzdHJpbmcpOiBzdHJpbmcgPT4ge1xuICBjb25zdCBtYXRjaCA9IGhyZWYubWF0Y2goL1xcL3Rhc2tzXFwvXFxkK1xcLyhbXi8/XSspLylcbiAgcmV0dXJuIG1hdGNoICYmIC9eKGRldGFpbHxtZXNzYWdlfG1lc3NhZ2VzfGZpbGVzfGhpc3Rvcnl8aG91cnMpJC8udGVzdChtYXRjaFsxXSkgPyBtYXRjaFsxXSA6ICdkZXRhaWwnXG59XG5cbi8qKiBFeHRyYWUgbGFzIHRhcmVhcyBlbmxhemFkYXMgZW4gZWwgdGV4dG8gKFVSTHMgcXVlIGNvaW5jaWRlbiBjb24gVEFTS19VUkxfUkVHRVhfUEFUVEVSTikuICovXG5leHBvcnQgY29uc3QgZXh0cmFjdFRhc2tzRnJvbU1lc3NhZ2UgPSAobWVzc2FnZTogc3RyaW5nKTogVGFza0luZm9bXSA9PiB7XG4gIGlmICghbWVzc2FnZSkgcmV0dXJuIFtdXG4gIGNvbnN0IHRhc2tVcmxSZWdleCA9IG5ldyBSZWdFeHAoVEFTS19VUkxfUkVHRVhfUEFUVEVSTiwgJ2cnKVxuICBjb25zdCB0YXNrczogVGFza0luZm9bXSA9IFtdXG4gIGNvbnN0IHNlZW5JZHMgPSBuZXcgU2V0PHN0cmluZz4oKVxuICBsZXQgbWF0Y2g6IFJlZ0V4cEV4ZWNBcnJheSB8IG51bGwgPSBudWxsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1jb25kLWFzc2lnblxuICB3aGlsZSAoKG1hdGNoID0gdGFza1VybFJlZ2V4LmV4ZWMobWVzc2FnZSkpICE9PSBudWxsKSB7XG4gICAgY29uc3QgdGFza0lkID0gbWF0Y2hbMV1cbiAgICBjb25zdCB1cmwgPSBtYXRjaFswXVxuICAgIGlmICghc2Vlbklkcy5oYXModGFza0lkKSkge1xuICAgICAgc2Vlbklkcy5hZGQodGFza0lkKVxuICAgICAgY29uc3QgZXNjYXBlZFVybCA9IHVybC5yZXBsYWNlKC9bLiorP14ke30oKXxbXFxdXFxcXF0vZywgJ1xcXFwkJicpXG4gICAgICBjb25zdCBtYXJrZG93bkxpbmtSZWdleCA9IG5ldyBSZWdFeHAoYFxcXFxbKFteXFxcXF1dKylcXFxcXVxcXFwoJHtlc2NhcGVkVXJsfVxcXFwpYClcbiAgICAgIGNvbnN0IGxpbmtNYXRjaCA9IG1lc3NhZ2UubWF0Y2gobWFya2Rvd25MaW5rUmVnZXgpXG4gICAgICBjb25zdCB0aXRsZSA9IGxpbmtNYXRjaCA/IGxpbmtNYXRjaFsxXSA6IGBUYXJlYSAjJHt0YXNrSWR9YFxuICAgICAgdGFza3MucHVzaCh7IGlkOiB0YXNrSWQsIHRpdGxlLCB1cmwgfSlcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHRhc2tzXG59XG5cbmNvbnN0IGhhc1Rhc2tMaW5rcyA9ICh0ZXh0OiBzdHJpbmcpOiBib29sZWFuID0+IGV4dHJhY3RUYXNrc0Zyb21NZXNzYWdlKHRleHQpLmxlbmd0aCA+IDBcblxuY29uc3QgaGFzUHJvamVjdExpbmtzID0gKHRleHQ6IHN0cmluZyk6IGJvb2xlYW4gPT4gbmV3IFJlZ0V4cChQUk9KRUNUX1VSTF9SRUdFWF9QQVRURVJOKS50ZXN0KHRleHQpXG5cbmNvbnN0IFRBU0tfTUVOVElPTl9NQVJLRVJfUkUgPSAvXFxbXFxbbWVudGlvbjp0YXNrOi9pXG5jb25zdCBNQUlBX1RBU0tfTUVOVElPTl9IUkVGX1JFID0gL21haWEtbWVudGlvbjpcXC9cXC90YXNrXFwvL2lcblxuY29uc3QgaGFzVGFza0xpbmtzT3JUYXNrTWVudGlvbnMgPSAodGV4dDogc3RyaW5nKTogYm9vbGVhbiA9PlxuICBoYXNUYXNrTGlua3ModGV4dCkgfHwgVEFTS19NRU5USU9OX01BUktFUl9SRS50ZXN0KHRleHQpIHx8IE1BSUFfVEFTS19NRU5USU9OX0hSRUZfUkUudGVzdCh0ZXh0KVxuXG5leHBvcnQgY29uc3QgZ2V0RW50aXR5TGlua1dyYXBwZXJDbGFzc05hbWUgPSAodGV4dDogc3RyaW5nKTogc3RyaW5nID0+IHtcbiAgY29uc3QgY2xhc3Nlczogc3RyaW5nW10gPSBbXVxuICBpZiAoaGFzVGFza0xpbmtzT3JUYXNrTWVudGlvbnModGV4dCkpIGNsYXNzZXMucHVzaCgnaGFzLXRhc2stbGlua3MnKVxuICBpZiAoaGFzUHJvamVjdExpbmtzKHRleHQpKSBjbGFzc2VzLnB1c2goJ2hhcy1wcm9qZWN0LWxpbmtzJylcbiAgcmV0dXJuIGNsYXNzZXMuam9pbignICcpXG59XG5cbmNvbnN0IFRhc2tMaW5rOiBGQzx7IGhyZWY6IHN0cmluZzsgdGFza0lkOiBzdHJpbmc7IGNoaWxkcmVuOiBSZWFjdE5vZGUgfT4gPSAoeyBocmVmLCB0YXNrSWQsIGNoaWxkcmVuIH0pID0+IHtcbiAgY29uc3QgdGFiU2VnbWVudCA9IGdldFRhYlNlZ21lbnRGcm9tSHJlZihocmVmKVxuICBjb25zdCB7IGJ1aWxkT3BlblRhc2sgfSA9IHVzZVRhc2tQYW5lbCh0YXNrSWQsIHRhYlNlZ21lbnQpXG4gIGNvbnN0IG9wZW5UYXNrID0gYnVpbGRPcGVuVGFzaygpXG5cbiAgY29uc3QgaGFuZGxlQ2xpY2sgPSAoZTogUmVhY3QuTW91c2VFdmVudDxIVE1MQW5jaG9yRWxlbWVudD4pID0+IHtcbiAgICBpZiAoZS5tZXRhS2V5IHx8IGUuY3RybEtleSkgcmV0dXJuXG4gICAgZS5wcmV2ZW50RGVmYXVsdCgpXG4gICAgb3BlblRhc2soKVxuICB9XG5cbiAgcmV0dXJuIChcbiAgICA8U0NUYXNrTGluayBocmVmPXtocmVmfSBvbkNsaWNrPXtoYW5kbGVDbGlja30gZGF0YS1jb3ItbGluaz1cInRhc2tcIj5cbiAgICAgIHtjaGlsZHJlbn1cbiAgICA8L1NDVGFza0xpbms+XG4gIClcbn1cblxuY29uc3QgUHJvamVjdExpbms6IEZDPHsgaHJlZjogc3RyaW5nOyBjaGlsZHJlbjogUmVhY3ROb2RlIH0+ID0gKHsgaHJlZiwgY2hpbGRyZW4gfSkgPT4gKFxuICA8U0NQcm9qZWN0TGluayBocmVmPXtocmVmfSB0YXJnZXQ9XCJfYmxhbmtcIiByZWw9XCJub29wZW5lciBub3JlZmVycmVyXCIgZGF0YS1jb3ItbGluaz1cInByb2plY3RcIj5cbiAgICA8U0NQcm9qZWN0TGlua0ljb24gYXJpYS1oaWRkZW4+XG4gICAgICB7Z2V0Q29udGV4dE1lbnRpb25JY29uKCdwcm9qZWN0JywgUFJPSkVDVF9MSU5LX0lDT05fQ09MT1IsIHVuZGVmaW5lZCwgUFJPSkVDVF9MSU5LX0lDT05fU0laRSl9XG4gICAgPC9TQ1Byb2plY3RMaW5rSWNvbj5cbiAgICB7Y2hpbGRyZW59XG4gIDwvU0NQcm9qZWN0TGluaz5cbilcblxudHlwZSBFbnRpdHlMaW5rQ3VzdG9tTGlua1Byb3BzID0gUmVhY3QuQW5jaG9ySFRNTEF0dHJpYnV0ZXM8SFRNTEFuY2hvckVsZW1lbnQ+ICYgeyBub2RlPzogdW5rbm93biB9XG5cbmV4cG9ydCBjb25zdCBFbnRpdHlMaW5rQ3VzdG9tTGluazogRkM8RW50aXR5TGlua0N1c3RvbUxpbmtQcm9wcz4gPSAoeyBocmVmLCBjaGlsZHJlbiwgLi4ucmVzdCB9KSA9PiB7XG4gIGlmICghaHJlZiB8fCB0eXBlb2YgaHJlZiAhPT0gJ3N0cmluZycpIHtcbiAgICByZXR1cm4gKFxuICAgICAgPGEgaHJlZj17aHJlZn0gey4uLnJlc3R9PlxuICAgICAgICB7Y2hpbGRyZW59XG4gICAgICA8L2E+XG4gICAgKVxuICB9XG4gIGNvbnN0IG1lbnRpb25Ob2RlID0gcmVuZGVyTWVudGlvbkxpbmsoaHJlZiwgY2hpbGRyZW4pXG4gIGlmIChtZW50aW9uTm9kZSkgcmV0dXJuIG1lbnRpb25Ob2RlIGFzIFJlYWN0LlJlYWN0RWxlbWVudFxuXG4gIGNvbnN0IHByb2plY3RNYXRjaCA9IGhyZWYubWF0Y2gobmV3IFJlZ0V4cChQUk9KRUNUX1VSTF9SRUdFWF9QQVRURVJOKSlcbiAgaWYgKHByb2plY3RNYXRjaCkge1xuICAgIHJldHVybiA8UHJvamVjdExpbmsgaHJlZj17aHJlZn0+e2NoaWxkcmVufTwvUHJvamVjdExpbms+XG4gIH1cblxuICBjb25zdCB0YXNrTWF0Y2ggPSBocmVmLm1hdGNoKG5ldyBSZWdFeHAoVEFTS19VUkxfUkVHRVhfUEFUVEVSTikpXG4gIGlmICh0YXNrTWF0Y2gpIHtcbiAgICBjb25zdCB0YXNrSWQgPSB0YXNrTWF0Y2hbMV1cbiAgICByZXR1cm4gKFxuICAgICAgPFRhc2tMaW5rIGhyZWY9e2hyZWZ9IHRhc2tJZD17dGFza0lkfT5cbiAgICAgICAge2NoaWxkcmVufVxuICAgICAgPC9UYXNrTGluaz5cbiAgICApXG4gIH1cbiAgcmV0dXJuIChcbiAgICA8YSBocmVmPXtocmVmfSB7Li4ucmVzdH0+XG4gICAgICB7Y2hpbGRyZW59XG4gICAgPC9hPlxuICApXG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsT0FBT0EsS0FBSyxNQUF5QixPQUFPO0FBRTVDLFNBQVNDLHNCQUFzQixFQUFFQyx5QkFBeUIsUUFBUSx1QkFBdUI7QUFDekYsU0FBU0MsaUJBQWlCLFFBQVEseUJBQXlCO0FBQzNELFNBQVNDLFlBQVksUUFBUSx1QkFBdUI7QUFDcEQsU0FBU0MscUJBQXFCLFFBQVEsdUJBQXVCO0FBQzdELFNBQVNDLFVBQVUsRUFBRUMsYUFBYSxFQUFFQyxpQkFBaUIsUUFBUSxrREFBa0Q7QUFBQSxTQUFBQyxHQUFBLElBQUFDLElBQUEsRUFBQUMsSUFBQSxJQUFBQyxLQUFBO0FBRS9HLElBQU1DLHVCQUF1QixHQUFHLFNBQVM7QUFDekMsSUFBTUMsc0JBQXNCLEdBQUcsRUFBRTtBQUVqQyxJQUFNQyxxQkFBcUIsR0FBRyxTQUF4QkEscUJBQXFCQSxDQUFJQyxJQUFZLEVBQWE7RUFDdEQsSUFBTUMsS0FBSyxHQUFHRCxJQUFJLENBQUNDLEtBQUssQ0FBQyx3QkFBd0IsQ0FBQztFQUNsRCxPQUFPQSxLQUFLLElBQUksaURBQWlELENBQUNDLElBQUksQ0FBQ0QsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUdBLEtBQUssQ0FBQyxDQUFDLENBQUMsR0FBRyxRQUFRO0FBQ3hHLENBQUM7O0FBRUQ7QUFDQSxPQUFPLElBQU1FLHVCQUF1QixHQUFHLFNBQTFCQSx1QkFBdUJBLENBQUlDLE9BQWUsRUFBaUI7RUFDdEUsSUFBSSxDQUFDQSxPQUFPLEVBQUUsT0FBTyxFQUFFO0VBQ3ZCLElBQU1DLFlBQVksR0FBRyxJQUFJQyxNQUFNLENBQUNyQixzQkFBc0IsRUFBRSxHQUFHLENBQUM7RUFDNUQsSUFBTXNCLEtBQWlCLEdBQUcsRUFBRTtFQUM1QixJQUFNQyxPQUFPLEdBQUcsSUFBSUMsR0FBRyxDQUFTLENBQUM7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
|