@projectcor/maia-components 2.11.31-4 → 2.11.31
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/FeedbackButton/FeedbackButton.styles.js +2 -2
- package/lib/components/atoms/icons/index.js +1 -3
- package/lib/components/molecules/ChatAIClientSelector/ChatAIClientSelector.js +10 -41
- package/lib/components/molecules/ChatAIContent/ChatAIContent.js +4 -7
- package/lib/components/molecules/ChatAIHistory/ChatAIHistory.js +3 -16
- package/lib/components/molecules/ChatAIHome/ChatAIHome.js +44 -54
- package/lib/components/molecules/ChatAIHome/styles.js +35 -43
- package/lib/components/molecules/ChatAIMessages/ChatAIMessages.js +39 -55
- package/lib/components/molecules/ChatAIModal/ChatAIModal.js +91 -341
- package/lib/components/molecules/ChatAIModal/ChatAIModal.styles.js +15 -28
- package/lib/components/molecules/ChatAIModal/components/ChatAiModalHeader/ChatAiModalHeader.js +18 -91
- package/lib/components/molecules/ChatAIModal/components/ChatAiModalHeader/ChatAiModalHeader.styles.js +2 -17
- package/lib/components/molecules/ChatAIMyAgents/ChatAIMyAgents.js +9 -10
- package/lib/components/molecules/ChatAIProjectSelector/ChatAIProjectSelector.js +6 -37
- package/lib/components/molecules/Sidebar/Sidebar.js +323 -269
- package/lib/components/molecules/Sidebar/Sidebar.layout.styles.js +23 -18
- package/lib/components/molecules/Sidebar/Sidebar.styles.js +37 -54
- package/lib/dev/Providers.js +2 -2
- package/lib/hooks/useChatManager/useChatManager.js +8 -20
- package/lib/hooks/useChats/useChats.js +4 -12
- package/lib/hooks/useOrchestratorStream/useOrchestratorStream.js +5 -8
- package/lib/hooks/useProjectSearch.js +4 -11
- package/lib/lang/br/index.js +2 -19
- package/lib/lang/en/index.js +2 -19
- package/lib/lang/es/index.js +2 -19
- package/lib/lang/fr/index.js +2 -19
- package/lib/mocks/mockChats.js +395 -0
- package/lib/mocks/mockedUser.js +169 -0
- package/lib/services/maia/Chats/getChatsByUserId.js +8 -14
- package/lib/services/maia/Chats/index.js +1 -7
- package/lib/services/maia/Orchestrator/orchestrator.js +4 -6
- package/lib/services/maia/client.js +9 -44
- package/lib/services/query/projectSearchByValueQuery.js +2 -2
- package/lib/store/chatsStore.types.js +2 -10
- package/lib/store/useChatsStore.js +37 -75
- package/lib/types/Chat.js +1 -3
- package/lib/types/Project.js +1 -1
- package/package.json +1 -1
- package/lib/components/atoms/icons/ChatConversation.js +0 -40
- package/lib/components/atoms/icons/MaiaChatLayoutMenuIcon.js +0 -33
- package/lib/components/molecules/ChatAIMessages/ChatDaySeparator.js +0 -43
- package/lib/components/molecules/ChatAIMessages/ChatDaySeparator.styles.js +0 -11
- package/lib/components/molecules/ChatAIMessages/chatMessageUtils.js +0 -5
- package/lib/components/molecules/ChatAIModal/floatingPanelMotion/FloatingPanelMotion.js +0 -16
- package/lib/components/molecules/ChatAIModal/floatingPanelMotion/FloatingPanelMotion.styles.js +0 -12
- package/lib/components/molecules/ChatAIModal/floatingPanelMotion/constants.js +0 -13
- package/lib/components/molecules/ChatAIModal/floatingPanelMotion/index.js +0 -3
- package/lib/components/molecules/ChatAIModal/floatingPanelMotion/useFloatingPanelDragTilt.js +0 -57
- package/lib/components/molecules/ChatAIModal/layout.js +0 -35
- package/lib/components/molecules/Sidebar/SidebarChats.styles.js +0 -73
- package/lib/components/molecules/Sidebar/SidebarChatsSection.js +0 -69
- package/lib/components/molecules/Sidebar/SidebarChatsSectionModal.js +0 -150
- package/lib/components/molecules/Sidebar/SidebarHistoryChat.js +0 -238
- package/lib/components/molecules/Sidebar/sidebarChats.helpers.js +0 -70
- package/lib/components/molecules/Sidebar/sidebarChats.types.js +0 -14
- package/lib/dev/fixtures/devUser.js +0 -173
- package/lib/dev/fixtures/mockedUser.js +0 -169
- package/lib/services/maia/Chats/getChatMessagesV2.js +0 -114
- package/lib/services/maia/Chats/getSessionByAgent.js +0 -66
- package/lib/services/maia/Chats/getSessionsGroupedV2.js +0 -70
|
@@ -1,238 +0,0 @@
|
|
|
1
|
-
import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
|
|
2
|
-
import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
|
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
|
-
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
6
|
-
import { useLayoutEffect, useRef, useState } from 'react';
|
|
7
|
-
import { createPortal } from 'react-dom';
|
|
8
|
-
import { CUButton } from '@projectcor/button/lib/components/CUButton';
|
|
9
|
-
import { MenuDots } from '@projectcor/icons/lib/components/MenuDots';
|
|
10
|
-
import { Pencil } from '@projectcor/icons/lib/components/Pencil';
|
|
11
|
-
import { Trash } from '@projectcor/icons/lib/components/Trash';
|
|
12
|
-
import { Tooltip } from '@projectcor/tooltipv2/lib/components/Tooltip';
|
|
13
|
-
import { useResizeListener } from '../../../hooks/useResize';
|
|
14
|
-
import { EVENTS } from '../../../hooks/useEvent';
|
|
15
|
-
import { useT } from '../../../hooks/useT';
|
|
16
|
-
import { OptionItem } from '../../atoms/CardMenu/CardMenu';
|
|
17
|
-
import { EditQuestionModal } from '../../organisms/EditQuestionModal';
|
|
18
|
-
import { DeleteQuestionModal } from '../../organisms/DeleteQuestionModal';
|
|
19
|
-
import { ChatConversation, MAIAIcon } from '../../atoms/icons';
|
|
20
|
-
import { SCLHCChatMenuPopoverPortal, SCLHCConversationIconSlot, SCLHCConversationKebab, SCLHCConversationRoot, SCLHCConversationSubtitle, SCLHCConversationSubtitleEmoji, SCLHCConversationSubtitleRow, SCLHCConversationTitle, SCLHCConversationTopRow } from './Sidebar.styles';
|
|
21
|
-
import { getSidebarHistorySubtitle } from './sidebarChats.helpers';
|
|
22
|
-
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
23
|
-
var actions = {
|
|
24
|
-
edit: function edit(props) {
|
|
25
|
-
return /*#__PURE__*/_jsx(EditQuestionModal, _objectSpread({}, props));
|
|
26
|
-
},
|
|
27
|
-
"delete": function _delete(props) {
|
|
28
|
-
return /*#__PURE__*/_jsx(DeleteQuestionModal, _objectSpread({}, props));
|
|
29
|
-
}
|
|
30
|
-
};
|
|
31
|
-
export var SidebarHistoryChat = function SidebarHistoryChat(_ref) {
|
|
32
|
-
var chat = _ref.chat,
|
|
33
|
-
sectionKey = _ref.sectionKey,
|
|
34
|
-
_onClick = _ref.onClick,
|
|
35
|
-
isModalOpen = _ref.isModalOpen,
|
|
36
|
-
chatMenuSurface = _ref.chatMenuSurface,
|
|
37
|
-
onOpenModal = _ref.onOpenModal,
|
|
38
|
-
onCloseModal = _ref.onCloseModal,
|
|
39
|
-
handlers = _ref.handlers,
|
|
40
|
-
isSelected = _ref.isSelected;
|
|
41
|
-
var textRef = useRef(null);
|
|
42
|
-
var subtitleRef = useRef(null);
|
|
43
|
-
var kebabRef = useRef(null);
|
|
44
|
-
var menuPopoverRef = useRef(null);
|
|
45
|
-
var _useState = useState(null),
|
|
46
|
-
_useState2 = _slicedToArray(_useState, 2),
|
|
47
|
-
menuCoords = _useState2[0],
|
|
48
|
-
setMenuCoords = _useState2[1];
|
|
49
|
-
var _useT = useT(),
|
|
50
|
-
t = _useT.t;
|
|
51
|
-
var _useState3 = useState(null),
|
|
52
|
-
_useState4 = _slicedToArray(_useState3, 2),
|
|
53
|
-
action = _useState4[0],
|
|
54
|
-
setAction = _useState4[1];
|
|
55
|
-
var subtitle = getSidebarHistorySubtitle(chat, sectionKey);
|
|
56
|
-
var subtitleTrimmed = subtitle.trim();
|
|
57
|
-
var _useResizeListener = useResizeListener(textRef, [chat.title]),
|
|
58
|
-
showTooltip = _useResizeListener.showTooltip;
|
|
59
|
-
var agentSubtitleLine = sectionKey === 'agentsByCompany' && (subtitleTrimmed || chat.emoji != null && chat.emoji !== '' || chat.agentType === 'clone');
|
|
60
|
-
var _useResizeListener2 = useResizeListener(subtitleRef, [subtitleTrimmed, sectionKey, chat.emoji, chat.agentType]),
|
|
61
|
-
showTooltipSubtitle = _useResizeListener2.showTooltip;
|
|
62
|
-
var subtitleTooltipTitle = sectionKey === 'agentsByCompany' && chat.emoji && chat.agentType !== 'clone' ? "".concat(chat.emoji, " ").concat(subtitleTrimmed).trim() : subtitleTrimmed;
|
|
63
|
-
var menuItems = [{
|
|
64
|
-
label: t('history.menu.rename'),
|
|
65
|
-
onClickItem: function onClickItem(chatId) {
|
|
66
|
-
setAction('edit');
|
|
67
|
-
onOpenModal(chatId);
|
|
68
|
-
},
|
|
69
|
-
Icon: Pencil,
|
|
70
|
-
eventKey: EVENTS.pmAiMenuEdit
|
|
71
|
-
}, {
|
|
72
|
-
label: t('history.menu.delete'),
|
|
73
|
-
onClickItem: function onClickItem(chatId) {
|
|
74
|
-
setAction('delete');
|
|
75
|
-
onOpenModal(chatId);
|
|
76
|
-
},
|
|
77
|
-
Icon: Trash,
|
|
78
|
-
eventKey: EVENTS.pmAiMenuDelete
|
|
79
|
-
}];
|
|
80
|
-
var handleConfirmAction = function handleConfirmAction(chatData) {
|
|
81
|
-
if (action === 'edit') {
|
|
82
|
-
handlers.handleUpdateChat(chatData);
|
|
83
|
-
} else {
|
|
84
|
-
handlers.handleDeleteChat(chatData);
|
|
85
|
-
}
|
|
86
|
-
setAction(null);
|
|
87
|
-
onCloseModal();
|
|
88
|
-
};
|
|
89
|
-
useLayoutEffect(function () {
|
|
90
|
-
if (!isModalOpen || action) {
|
|
91
|
-
setMenuCoords(null);
|
|
92
|
-
return undefined;
|
|
93
|
-
}
|
|
94
|
-
var anchor = kebabRef.current;
|
|
95
|
-
if (!anchor) {
|
|
96
|
-
return undefined;
|
|
97
|
-
}
|
|
98
|
-
var place = function place() {
|
|
99
|
-
var _menuEl$offsetWidth, _menuEl$offsetHeight;
|
|
100
|
-
var r = anchor.getBoundingClientRect();
|
|
101
|
-
var menuEl = menuPopoverRef.current;
|
|
102
|
-
var w = Math.max((_menuEl$offsetWidth = menuEl === null || menuEl === void 0 ? void 0 : menuEl.offsetWidth) !== null && _menuEl$offsetWidth !== void 0 ? _menuEl$offsetWidth : 124, 124);
|
|
103
|
-
var h = (_menuEl$offsetHeight = menuEl === null || menuEl === void 0 ? void 0 : menuEl.offsetHeight) !== null && _menuEl$offsetHeight !== void 0 ? _menuEl$offsetHeight : 72;
|
|
104
|
-
var gap = 4;
|
|
105
|
-
var pad = 8;
|
|
106
|
-
var top = r.bottom + gap;
|
|
107
|
-
var left = r.right - w;
|
|
108
|
-
if (left < pad) left = pad;
|
|
109
|
-
if (left + w > window.innerWidth - pad) {
|
|
110
|
-
left = Math.max(pad, window.innerWidth - w - pad);
|
|
111
|
-
}
|
|
112
|
-
if (top + h > window.innerHeight - pad) {
|
|
113
|
-
top = r.top - h - gap;
|
|
114
|
-
}
|
|
115
|
-
if (top < pad) top = pad;
|
|
116
|
-
setMenuCoords({
|
|
117
|
-
top: top,
|
|
118
|
-
left: left
|
|
119
|
-
});
|
|
120
|
-
};
|
|
121
|
-
place();
|
|
122
|
-
var raf = requestAnimationFrame(place);
|
|
123
|
-
window.addEventListener('resize', place);
|
|
124
|
-
document.addEventListener('scroll', place, true);
|
|
125
|
-
return function () {
|
|
126
|
-
cancelAnimationFrame(raf);
|
|
127
|
-
window.removeEventListener('resize', place);
|
|
128
|
-
document.removeEventListener('scroll', place, true);
|
|
129
|
-
setMenuCoords(null);
|
|
130
|
-
};
|
|
131
|
-
}, [isModalOpen, action]);
|
|
132
|
-
var menuPortal = isModalOpen && !action && typeof document !== 'undefined' && /*#__PURE__*/createPortal(/*#__PURE__*/_jsx(SCLHCChatMenuPopoverPortal, _objectSpread(_objectSpread({
|
|
133
|
-
ref: menuPopoverRef,
|
|
134
|
-
"data-modal-container": true
|
|
135
|
-
}, chatMenuSurface === 'sectionModal' ? {
|
|
136
|
-
'data-section-modal-container': true
|
|
137
|
-
} : {}), {}, {
|
|
138
|
-
style: menuCoords ? {
|
|
139
|
-
top: menuCoords.top,
|
|
140
|
-
left: menuCoords.left
|
|
141
|
-
} : {
|
|
142
|
-
top: -9999,
|
|
143
|
-
left: -9999,
|
|
144
|
-
visibility: 'hidden'
|
|
145
|
-
},
|
|
146
|
-
children: menuItems.map(function (_ref2) {
|
|
147
|
-
var label = _ref2.label,
|
|
148
|
-
onClickItem = _ref2.onClickItem,
|
|
149
|
-
Icon = _ref2.Icon,
|
|
150
|
-
eventKey = _ref2.eventKey;
|
|
151
|
-
return /*#__PURE__*/_jsx(OptionItem, {
|
|
152
|
-
label: label,
|
|
153
|
-
onClick: function onClick() {
|
|
154
|
-
return onClickItem(chat.id);
|
|
155
|
-
},
|
|
156
|
-
Icon: Icon,
|
|
157
|
-
eventKey: eventKey
|
|
158
|
-
}, label);
|
|
159
|
-
})
|
|
160
|
-
})), document.body);
|
|
161
|
-
return /*#__PURE__*/_jsxs(_Fragment, {
|
|
162
|
-
children: [/*#__PURE__*/_jsxs(SCLHCConversationRoot, {
|
|
163
|
-
$isSelected: isSelected,
|
|
164
|
-
"data-menu-open": isModalOpen ? 'true' : undefined,
|
|
165
|
-
onClick: function onClick(e) {
|
|
166
|
-
e.stopPropagation();
|
|
167
|
-
_onClick(chat);
|
|
168
|
-
},
|
|
169
|
-
children: [/*#__PURE__*/_jsxs(SCLHCConversationTopRow, {
|
|
170
|
-
children: [/*#__PURE__*/_jsx(SCLHCConversationIconSlot, {
|
|
171
|
-
"aria-hidden": true,
|
|
172
|
-
children: /*#__PURE__*/_jsx(ChatConversation, {
|
|
173
|
-
width: 15,
|
|
174
|
-
height: 15,
|
|
175
|
-
color: "#20201f"
|
|
176
|
-
})
|
|
177
|
-
}), /*#__PURE__*/_jsx(Tooltip, {
|
|
178
|
-
title: showTooltip ? chat.title : '',
|
|
179
|
-
children: /*#__PURE__*/_jsx(SCLHCConversationTitle, {
|
|
180
|
-
ref: textRef,
|
|
181
|
-
children: chat.title || t('conversations.emptyLabel')
|
|
182
|
-
})
|
|
183
|
-
}), /*#__PURE__*/_jsx(SCLHCConversationKebab, {
|
|
184
|
-
ref: kebabRef,
|
|
185
|
-
"data-modal-container": true,
|
|
186
|
-
children: /*#__PURE__*/_jsx(CUButton, {
|
|
187
|
-
iconOnly: true,
|
|
188
|
-
size: "small",
|
|
189
|
-
variant: "text",
|
|
190
|
-
onClick: function onClick(event) {
|
|
191
|
-
event.stopPropagation();
|
|
192
|
-
onOpenModal(chat.id);
|
|
193
|
-
},
|
|
194
|
-
children: /*#__PURE__*/_jsx(MenuDots, {
|
|
195
|
-
width: 15,
|
|
196
|
-
height: 15
|
|
197
|
-
})
|
|
198
|
-
})
|
|
199
|
-
})]
|
|
200
|
-
}), agentSubtitleLine && /*#__PURE__*/_jsx(Tooltip, {
|
|
201
|
-
title: showTooltipSubtitle ? subtitleTooltipTitle : '',
|
|
202
|
-
children: /*#__PURE__*/_jsxs(SCLHCConversationSubtitleRow, {
|
|
203
|
-
children: [chat.agentType === 'clone' && /*#__PURE__*/_jsx(SCLHCConversationSubtitleEmoji, {
|
|
204
|
-
"aria-hidden": true,
|
|
205
|
-
children: /*#__PURE__*/_jsx(MAIAIcon, {
|
|
206
|
-
width: 12,
|
|
207
|
-
height: 12
|
|
208
|
-
})
|
|
209
|
-
}), chat.agentType !== 'clone' && chat.emoji && /*#__PURE__*/_jsx(SCLHCConversationSubtitleEmoji, {
|
|
210
|
-
"aria-hidden": true,
|
|
211
|
-
children: chat.emoji
|
|
212
|
-
}), subtitleTrimmed ? /*#__PURE__*/_jsx(SCLHCConversationSubtitle, {
|
|
213
|
-
ref: subtitleRef,
|
|
214
|
-
$inFlexRow: true,
|
|
215
|
-
children: subtitleTrimmed
|
|
216
|
-
}) : null]
|
|
217
|
-
})
|
|
218
|
-
}), !agentSubtitleLine && subtitleTrimmed && /*#__PURE__*/_jsx(Tooltip, {
|
|
219
|
-
title: showTooltipSubtitle ? subtitleTrimmed : '',
|
|
220
|
-
children: /*#__PURE__*/_jsx(SCLHCConversationSubtitle, {
|
|
221
|
-
ref: subtitleRef,
|
|
222
|
-
children: subtitleTrimmed
|
|
223
|
-
})
|
|
224
|
-
})]
|
|
225
|
-
}, "conversation-".concat(chat.sessionExternalId)), menuPortal, !!action && actions[action]({
|
|
226
|
-
onClose: function onClose() {
|
|
227
|
-
onCloseModal();
|
|
228
|
-
setAction(null);
|
|
229
|
-
},
|
|
230
|
-
chat: chat,
|
|
231
|
-
handlers: {
|
|
232
|
-
handleConfirmAction: handleConfirmAction,
|
|
233
|
-
handleSetIsOpenModal: onCloseModal
|
|
234
|
-
}
|
|
235
|
-
})]
|
|
236
|
-
});
|
|
237
|
-
};
|
|
238
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VMYXlvdXRFZmZlY3QiLCJ1c2VSZWYiLCJ1c2VTdGF0ZSIsImNyZWF0ZVBvcnRhbCIsIkNVQnV0dG9uIiwiTWVudURvdHMiLCJQZW5jaWwiLCJUcmFzaCIsIlRvb2x0aXAiLCJ1c2VSZXNpemVMaXN0ZW5lciIsIkVWRU5UUyIsInVzZVQiLCJPcHRpb25JdGVtIiwiRWRpdFF1ZXN0aW9uTW9kYWwiLCJEZWxldGVRdWVzdGlvbk1vZGFsIiwiQ2hhdENvbnZlcnNhdGlvbiIsIk1BSUFJY29uIiwiU0NMSENDaGF0TWVudVBvcG92ZXJQb3J0YWwiLCJTQ0xIQ0NvbnZlcnNhdGlvbkljb25TbG90IiwiU0NMSENDb252ZXJzYXRpb25LZWJhYiIsIlNDTEhDQ29udmVyc2F0aW9uUm9vdCIsIlNDTEhDQ29udmVyc2F0aW9uU3VidGl0bGUiLCJTQ0xIQ0NvbnZlcnNhdGlvblN1YnRpdGxlRW1vamkiLCJTQ0xIQ0NvbnZlcnNhdGlvblN1YnRpdGxlUm93IiwiU0NMSENDb252ZXJzYXRpb25UaXRsZSIsIlNDTEhDQ29udmVyc2F0aW9uVG9wUm93IiwiZ2V0U2lkZWJhckhpc3RvcnlTdWJ0aXRsZSIsImpzeCIsIl9qc3giLCJqc3hzIiwiX2pzeHMiLCJGcmFnbWVudCIsIl9GcmFnbWVudCIsImFjdGlvbnMiLCJlZGl0IiwicHJvcHMiLCJfb2JqZWN0U3ByZWFkIiwiZGVsZXRlIiwiU2lkZWJhckhpc3RvcnlDaGF0IiwiX3JlZiIsImNoYXQiLCJzZWN0aW9uS2V5Iiwib25DbGljayIsImlzTW9kYWxPcGVuIiwiY2hhdE1lbnVTdXJmYWNlIiwib25PcGVuTW9kYWwiLCJvbkNsb3NlTW9kYWwiLCJoYW5kbGVycyIsImlzU2VsZWN0ZWQiLCJ0ZXh0UmVmIiwic3VidGl0bGVSZWYiLCJrZWJhYlJlZiIsIm1lbnVQb3BvdmVyUmVmIiwiX3VzZVN0YXRlIiwiX3VzZVN0YXRlMiIsIl9zbGljZWRUb0FycmF5IiwibWVudUNvb3JkcyIsInNldE1lbnVDb29yZHMiLCJfdXNlVCIsInQiLCJfdXNlU3RhdGUzIiwiX3VzZVN0YXRlNCIsImFjdGlvbiIsInNldEFjdGlvbiIsInN1YnRpdGxlIiwic3VidGl0bGVUcmltbWVkIiwidHJpbSIsIl91c2VSZXNpemVMaXN0ZW5lciIsInRpdGxlIiwic2hvd1Rvb2x0aXAiLCJhZ2VudFN1YnRpdGxlTGluZSIsImVtb2ppIiwiYWdlbnRUeXBlIiwiX3VzZVJlc2l6ZUxpc3RlbmVyMiIsInNob3dUb29sdGlwU3VidGl0bGUiLCJzdWJ0aXRsZVRvb2x0aXBUaXRsZSIsImNvbmNhdCIsIm1lbnVJdGVtcyIsImxhYmVsIiwib25DbGlja0l0ZW0iLCJjaGF0SWQiLCJJY29uIiwiZXZlbnRLZXkiLCJwbUFpTWVudUVkaXQiLCJwbUFpTWVudURlbGV0ZSIsImhhbmRsZUNvbmZpcm1BY3Rpb24iLCJjaGF0RGF0YSIsImhhbmRsZVVwZGF0ZUNoYXQiLCJoYW5kbGVEZWxldGVDaGF0IiwidW5kZWZpbmVkIiwiYW5jaG9yIiwiY3VycmVudCIsInBsYWNlIiwiX21lbnVFbCRvZmZzZXRXaWR0aCIsIl9tZW51RWwkb2Zmc2V0SGVpZ2h0IiwiciIsImdldEJvdW5kaW5nQ2xpZW50UmVjdCIsIm1lbnVFbCIsInciLCJNYXRoIiwibWF4Iiwib2Zmc2V0V2lkdGgiLCJoIiwib2Zmc2V0SGVpZ2h0IiwiZ2FwIiwicGFkIiwidG9wIiwiYm90dG9tIiwibGVmdCIsInJpZ2h0Iiwid2luZG93IiwiaW5uZXJXaWR0aCIsImlubmVySGVpZ2h0IiwicmFmIiwicmVxdWVzdEFuaW1hdGlvbkZyYW1lIiwiYWRkRXZlbnRMaXN0ZW5lciIsImRvY3VtZW50IiwiY2FuY2VsQW5pbWF0aW9uRnJhbWUiLCJyZW1vdmVFdmVudExpc3RlbmVyIiwibWVudVBvcnRhbCIsInJlZiIsInN0eWxlIiwidmlzaWJpbGl0eSIsImNoaWxkcmVuIiwibWFwIiwiX3JlZjIiLCJpZCIsImJvZHkiLCIkaXNTZWxlY3RlZCIsImUiLCJzdG9wUHJvcGFnYXRpb24iLCJ3aWR0aCIsImhlaWdodCIsImNvbG9yIiwiaWNvbk9ubHkiLCJzaXplIiwidmFyaWFudCIsImV2ZW50IiwiJGluRmxleFJvdyIsInNlc3Npb25FeHRlcm5hbElkIiwib25DbG9zZSIsImhhbmRsZVNldElzT3Blbk1vZGFsIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvbW9sZWN1bGVzL1NpZGViYXIvU2lkZWJhckhpc3RvcnlDaGF0LnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55ICovXG5pbXBvcnQgeyB1c2VMYXlvdXRFZmZlY3QsIHVzZVJlZiwgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCdcbmltcG9ydCB7IGNyZWF0ZVBvcnRhbCB9IGZyb20gJ3JlYWN0LWRvbSdcbmltcG9ydCB7IENVQnV0dG9uIH0gZnJvbSAnQHByb2plY3Rjb3IvYnV0dG9uL2xpYi9jb21wb25lbnRzL0NVQnV0dG9uJ1xuaW1wb3J0IHsgTWVudURvdHMgfSBmcm9tICdAcHJvamVjdGNvci9pY29ucy9saWIvY29tcG9uZW50cy9NZW51RG90cydcbmltcG9ydCB7IFBlbmNpbCB9IGZyb20gJ0Bwcm9qZWN0Y29yL2ljb25zL2xpYi9jb21wb25lbnRzL1BlbmNpbCdcbmltcG9ydCB7IFRyYXNoIH0gZnJvbSAnQHByb2plY3Rjb3IvaWNvbnMvbGliL2NvbXBvbmVudHMvVHJhc2gnXG5pbXBvcnQgeyBUb29sdGlwIH0gZnJvbSAnQHByb2plY3Rjb3IvdG9vbHRpcHYyL2xpYi9jb21wb25lbnRzL1Rvb2x0aXAnXG5cbmltcG9ydCB7IHVzZVJlc2l6ZUxpc3RlbmVyIH0gZnJvbSAnLi4vLi4vLi4vaG9va3MvdXNlUmVzaXplJ1xuaW1wb3J0IHsgRVZFTlRTIH0gZnJvbSAnLi4vLi4vLi4vaG9va3MvdXNlRXZlbnQnXG5pbXBvcnQgeyB1c2VUIH0gZnJvbSAnLi4vLi4vLi4vaG9va3MvdXNlVCdcbmltcG9ydCB7IE9wdGlvbkl0ZW0gfSBmcm9tICcuLi8uLi9hdG9tcy9DYXJkTWVudS9DYXJkTWVudSdcbmltcG9ydCB7IEVkaXRRdWVzdGlvbk1vZGFsIH0gZnJvbSAnLi4vLi4vb3JnYW5pc21zL0VkaXRRdWVzdGlvbk1vZGFsJ1xuaW1wb3J0IHsgRGVsZXRlUXVlc3Rpb25Nb2RhbCB9IGZyb20gJy4uLy4uL29yZ2FuaXNtcy9EZWxldGVRdWVzdGlvbk1vZGFsJ1xuaW1wb3J0IHsgQ2hhdENvbnZlcnNhdGlvbiwgTUFJQUljb24gfSBmcm9tICcuLi8uLi9hdG9tcy9pY29ucydcbmltcG9ydCB7XG4gIFNDTEhDQ2hhdE1lbnVQb3BvdmVyUG9ydGFsLFxuICBTQ0xIQ0NvbnZlcnNhdGlvbkljb25TbG90LFxuICBTQ0xIQ0NvbnZlcnNhdGlvbktlYmFiLFxuICBTQ0xIQ0NvbnZlcnNhdGlvblJvb3QsXG4gIFNDTEhDQ29udmVyc2F0aW9uU3VidGl0bGUsXG4gIFNDTEhDQ29udmVyc2F0aW9uU3VidGl0bGVFbW9qaSxcbiAgU0NMSENDb252ZXJzYXRpb25TdWJ0aXRsZVJvdyxcbiAgU0NMSENDb252ZXJzYXRpb25UaXRsZSxcbiAgU0NMSENDb252ZXJzYXRpb25Ub3BSb3csXG59IGZyb20gJy4vU2lkZWJhci5zdHlsZXMnXG5pbXBvcnQgeyBnZXRTaWRlYmFySGlzdG9yeVN1YnRpdGxlIH0gZnJvbSAnLi9zaWRlYmFyQ2hhdHMuaGVscGVycydcbmltcG9ydCB0eXBlIHsgU2lkZWJhckNoYXRNZW51U3VyZmFjZSwgU2lkZWJhclNlY3Rpb25LZXkgfSBmcm9tICcuL3NpZGViYXJDaGF0cy50eXBlcydcblxuY29uc3QgYWN0aW9ucyA9IHtcbiAgZWRpdDogKHByb3BzOiBhbnkpID0+IDxFZGl0UXVlc3Rpb25Nb2RhbCB7Li4ucHJvcHN9IC8+LFxuICBkZWxldGU6IChwcm9wczogYW55KSA9PiA8RGVsZXRlUXVlc3Rpb25Nb2RhbCB7Li4ucHJvcHN9IC8+LFxufVxuXG5leHBvcnQgY29uc3QgU2lkZWJhckhpc3RvcnlDaGF0ID0gKHtcbiAgY2hhdCxcbiAgc2VjdGlvbktleSxcbiAgb25DbGljayxcbiAgaXNNb2RhbE9wZW4sXG4gIGNoYXRNZW51U3VyZmFjZSxcbiAgb25PcGVuTW9kYWwsXG4gIG9uQ2xvc2VNb2RhbCxcbiAgaGFuZGxlcnMsXG4gIGlzU2VsZWN0ZWQsXG59OiB7XG4gIGNoYXQ6IGFueVxuICBzZWN0aW9uS2V5OiBTaWRlYmFyU2VjdGlvbktleVxuICBvbkNsaWNrOiAoY2hhdDogYW55KSA9PiB2b2lkXG4gIGlzTW9kYWxPcGVuOiBib29sZWFuXG4gIGNoYXRNZW51U3VyZmFjZTogU2lkZWJhckNoYXRNZW51U3VyZmFjZVxuICBvbk9wZW5Nb2RhbDogKGNoYXRJZDogc3RyaW5nKSA9PiB2b2lkXG4gIG9uQ2xvc2VNb2RhbDogKCkgPT4gdm9pZFxuICBoYW5kbGVyczoge1xuICAgIGhhbmRsZURlbGV0ZUNoYXQ6IChjaGF0OiBhbnkpID0+IHZvaWRcbiAgICBoYW5kbGVVcGRhdGVDaGF0OiAoY2hhdDogYW55KSA9PiB2b2lkXG4gIH1cbiAgaXNTZWxlY3RlZDogYm9vbGVhblxufSkgPT4ge1xuICBjb25zdCB0ZXh0UmVmID0gdXNlUmVmPEhUTUxTcGFuRWxlbWVudD4obnVsbClcbiAgY29uc3Qgc3VidGl0bGVSZWYgPSB1c2VSZWY8SFRNTFNwYW5FbGVtZW50PihudWxsKVxuICBjb25zdCBrZWJhYlJlZiA9IHVzZVJlZjxIVE1MRGl2RWxlbWVudD4obnVsbClcbiAgY29uc3QgbWVudVBvcG92ZXJSZWYgPSB1c2VSZWY8SFRNTERpdkVsZW1lbnQ+KG51bGwpXG4gIGNvbnN0IFttZW51Q29vcmRzLCBzZXRNZW51Q29vcmRzXSA9IHVzZVN0YXRlPHsgdG9wOiBudW1iZXI7IGxlZnQ6IG51bWJlciB9IHwgbnVsbD4obnVsbClcbiAgY29uc3QgeyB0IH0gPSB1c2VUKClcbiAgY29uc3QgW2FjdGlvbiwgc2V0QWN0aW9uXSA9IHVzZVN0YXRlPHN0cmluZyB8IG51bGw+KG51bGwpXG5cbiAgY29uc3Qgc3VidGl0bGUgPSBnZXRTaWRlYmFySGlzdG9yeVN1YnRpdGxlKGNoYXQsIHNlY3Rpb25LZXkpXG4gIGNvbnN0IHN1YnRpdGxlVHJpbW1lZCA9IHN1YnRpdGxlLnRyaW0oKVxuXG4gIGNvbnN0IHsgc2hvd1Rvb2x0aXAgfSA9IHVzZVJlc2l6ZUxpc3RlbmVyKHRleHRSZWYsIFtjaGF0LnRpdGxlXSlcbiAgY29uc3QgYWdlbnRTdWJ0aXRsZUxpbmUgPVxuICAgIHNlY3Rpb25LZXkgPT09ICdhZ2VudHNCeUNvbXBhbnknICYmXG4gICAgKHN1YnRpdGxlVHJpbW1lZCB8fCAoY2hhdC5lbW9qaSAhPSBudWxsICYmIGNoYXQuZW1vamkgIT09ICcnKSB8fCBjaGF0LmFnZW50VHlwZSA9PT0gJ2Nsb25lJylcbiAgY29uc3QgeyBzaG93VG9vbHRpcDogc2hvd1Rvb2x0aXBTdWJ0aXRsZSB9ID0gdXNlUmVzaXplTGlzdGVuZXIoc3VidGl0bGVSZWYsIFtcbiAgICBzdWJ0aXRsZVRyaW1tZWQsXG4gICAgc2VjdGlvbktleSxcbiAgICBjaGF0LmVtb2ppLFxuICAgIGNoYXQuYWdlbnRUeXBlLFxuICBdKVxuXG4gIGNvbnN0IHN1YnRpdGxlVG9vbHRpcFRpdGxlID1cbiAgICBzZWN0aW9uS2V5ID09PSAnYWdlbnRzQnlDb21wYW55JyAmJiBjaGF0LmVtb2ppICYmIGNoYXQuYWdlbnRUeXBlICE9PSAnY2xvbmUnXG4gICAgICA/IGAke2NoYXQuZW1vaml9ICR7c3VidGl0bGVUcmltbWVkfWAudHJpbSgpXG4gICAgICA6IHN1YnRpdGxlVHJpbW1lZFxuXG4gIGNvbnN0IG1lbnVJdGVtcyA9IFtcbiAgICB7XG4gICAgICBsYWJlbDogdCgnaGlzdG9yeS5tZW51LnJlbmFtZScpLFxuICAgICAgb25DbGlja0l0ZW06IChjaGF0SWQ6IHN0cmluZykgPT4ge1xuICAgICAgICBzZXRBY3Rpb24oJ2VkaXQnKVxuICAgICAgICBvbk9wZW5Nb2RhbChjaGF0SWQpXG4gICAgICB9LFxuICAgICAgSWNvbjogUGVuY2lsLFxuICAgICAgZXZlbnRLZXk6IEVWRU5UUy5wbUFpTWVudUVkaXQsXG4gICAgfSxcbiAgICB7XG4gICAgICBsYWJlbDogdCgnaGlzdG9yeS5tZW51LmRlbGV0ZScpLFxuICAgICAgb25DbGlja0l0ZW06IChjaGF0SWQ6IHN0cmluZykgPT4ge1xuICAgICAgICBzZXRBY3Rpb24oJ2RlbGV0ZScpXG4gICAgICAgIG9uT3Blbk1vZGFsKGNoYXRJZClcbiAgICAgIH0sXG4gICAgICBJY29uOiBUcmFzaCxcbiAgICAgIGV2ZW50S2V5OiBFVkVOVFMucG1BaU1lbnVEZWxldGUsXG4gICAgfSxcbiAgXVxuXG4gIGNvbnN0IGhhbmRsZUNvbmZpcm1BY3Rpb24gPSAoY2hhdERhdGE6IGFueSkgPT4ge1xuICAgIGlmIChhY3Rpb24gPT09ICdlZGl0Jykge1xuICAgICAgaGFuZGxlcnMuaGFuZGxlVXBkYXRlQ2hhdChjaGF0RGF0YSlcbiAgICB9IGVsc2Uge1xuICAgICAgaGFuZGxlcnMuaGFuZGxlRGVsZXRlQ2hhdChjaGF0RGF0YSlcbiAgICB9XG4gICAgc2V0QWN0aW9uKG51bGwpXG4gICAgb25DbG9zZU1vZGFsKClcbiAgfVxuXG4gIHVzZUxheW91dEVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKCFpc01vZGFsT3BlbiB8fCBhY3Rpb24pIHtcbiAgICAgIHNldE1lbnVDb29yZHMobnVsbClcbiAgICAgIHJldHVybiB1bmRlZmluZWRcbiAgICB9XG4gICAgY29uc3QgYW5jaG9yID0ga2ViYWJSZWYuY3VycmVudFxuICAgIGlmICghYW5jaG9yKSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkXG4gICAgfVxuXG4gICAgY29uc3QgcGxhY2UgPSAoKSA9PiB7XG4gICAgICBjb25zdCByID0gYW5jaG9yLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpXG4gICAgICBjb25zdCBtZW51RWwgPSBtZW51UG9wb3ZlclJlZi5jdXJyZW50XG4gICAgICBjb25zdCB3ID0gTWF0aC5tYXgobWVudUVsPy5vZmZzZXRXaWR0aCA/PyAxMjQsIDEyNClcbiAgICAgIGNvbnN0IGggPSBtZW51RWw/Lm9mZnNldEhlaWdodCA/PyA3MlxuICAgICAgY29uc3QgZ2FwID0gNFxuICAgICAgY29uc3QgcGFkID0gOFxuICAgICAgbGV0IHRvcCA9IHIuYm90dG9tICsgZ2FwXG4gICAgICBsZXQgbGVmdCA9IHIucmlnaHQgLSB3XG4gICAgICBpZiAobGVmdCA8IHBhZCkgbGVmdCA9IHBhZFxuICAgICAgaWYgKGxlZnQgKyB3ID4gd2luZG93LmlubmVyV2lkdGggLSBwYWQpIHtcbiAgICAgICAgbGVmdCA9IE1hdGgubWF4KHBhZCwgd2luZG93LmlubmVyV2lkdGggLSB3IC0gcGFkKVxuICAgICAgfVxuICAgICAgaWYgKHRvcCArIGggPiB3aW5kb3cuaW5uZXJIZWlnaHQgLSBwYWQpIHtcbiAgICAgICAgdG9wID0gci50b3AgLSBoIC0gZ2FwXG4gICAgICB9XG4gICAgICBpZiAodG9wIDwgcGFkKSB0b3AgPSBwYWRcbiAgICAgIHNldE1lbnVDb29yZHMoeyB0b3AsIGxlZnQgfSlcbiAgICB9XG5cbiAgICBwbGFjZSgpXG4gICAgY29uc3QgcmFmID0gcmVxdWVzdEFuaW1hdGlvbkZyYW1lKHBsYWNlKVxuICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdyZXNpemUnLCBwbGFjZSlcbiAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdzY3JvbGwnLCBwbGFjZSwgdHJ1ZSlcbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgY2FuY2VsQW5pbWF0aW9uRnJhbWUocmFmKVxuICAgICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3Jlc2l6ZScsIHBsYWNlKVxuICAgICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignc2Nyb2xsJywgcGxhY2UsIHRydWUpXG4gICAgICBzZXRNZW51Q29vcmRzKG51bGwpXG4gICAgfVxuICB9LCBbaXNNb2RhbE9wZW4sIGFjdGlvbl0pXG5cbiAgY29uc3QgbWVudVBvcnRhbCA9XG4gICAgaXNNb2RhbE9wZW4gJiZcbiAgICAhYWN0aW9uICYmXG4gICAgdHlwZW9mIGRvY3VtZW50ICE9PSAndW5kZWZpbmVkJyAmJlxuICAgIGNyZWF0ZVBvcnRhbChcbiAgICAgIDxTQ0xIQ0NoYXRNZW51UG9wb3ZlclBvcnRhbFxuICAgICAgICByZWY9e21lbnVQb3BvdmVyUmVmfVxuICAgICAgICBkYXRhLW1vZGFsLWNvbnRhaW5lclxuICAgICAgICB7Li4uKGNoYXRNZW51U3VyZmFjZSA9PT0gJ3NlY3Rpb25Nb2RhbCcgPyB7ICdkYXRhLXNlY3Rpb24tbW9kYWwtY29udGFpbmVyJzogdHJ1ZSB9IDoge30pfVxuICAgICAgICBzdHlsZT17XG4gICAgICAgICAgbWVudUNvb3Jkc1xuICAgICAgICAgICAgPyB7IHRvcDogbWVudUNvb3Jkcy50b3AsIGxlZnQ6IG1lbnVDb29yZHMubGVmdCB9XG4gICAgICAgICAgICA6IHsgdG9wOiAtOTk5OSwgbGVmdDogLTk5OTksIHZpc2liaWxpdHk6ICdoaWRkZW4nIH1cbiAgICAgICAgfVxuICAgICAgPlxuICAgICAgICB7bWVudUl0ZW1zLm1hcCgoeyBsYWJlbCwgb25DbGlja0l0ZW0sIEljb24sIGV2ZW50S2V5IH0pID0+IChcbiAgICAgICAgICA8T3B0aW9uSXRlbSBrZXk9e2xhYmVsfSBsYWJlbD17bGFiZWx9IG9uQ2xpY2s9eygpID0+IG9uQ2xpY2tJdGVtKGNoYXQuaWQpfSBJY29uPXtJY29ufSBldmVudEtleT17ZXZlbnRLZXl9IC8+XG4gICAgICAgICkpfVxuICAgICAgPC9TQ0xIQ0NoYXRNZW51UG9wb3ZlclBvcnRhbD4sXG4gICAgICBkb2N1bWVudC5ib2R5XG4gICAgKVxuXG4gIHJldHVybiAoXG4gICAgPD5cbiAgICAgIDxTQ0xIQ0NvbnZlcnNhdGlvblJvb3RcbiAgICAgICAgJGlzU2VsZWN0ZWQ9e2lzU2VsZWN0ZWR9XG4gICAgICAgIGRhdGEtbWVudS1vcGVuPXtpc01vZGFsT3BlbiA/ICd0cnVlJyA6IHVuZGVmaW5lZH1cbiAgICAgICAgb25DbGljaz17ZSA9PiB7XG4gICAgICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKVxuICAgICAgICAgIG9uQ2xpY2soY2hhdClcbiAgICAgICAgfX1cbiAgICAgICAga2V5PXtgY29udmVyc2F0aW9uLSR7Y2hhdC5zZXNzaW9uRXh0ZXJuYWxJZH1gfVxuICAgICAgPlxuICAgICAgICA8U0NMSENDb252ZXJzYXRpb25Ub3BSb3c+XG4gICAgICAgICAgPFNDTEhDQ29udmVyc2F0aW9uSWNvblNsb3QgYXJpYS1oaWRkZW4+XG4gICAgICAgICAgICA8Q2hhdENvbnZlcnNhdGlvbiB3aWR0aD17MTV9IGhlaWdodD17MTV9IGNvbG9yPVwiIzIwMjAxZlwiIC8+XG4gICAgICAgICAgPC9TQ0xIQ0NvbnZlcnNhdGlvbkljb25TbG90PlxuICAgICAgICAgIDxUb29sdGlwIHRpdGxlPXtzaG93VG9vbHRpcCA/IGNoYXQudGl0bGUgOiAnJ30+XG4gICAgICAgICAgICA8U0NMSENDb252ZXJzYXRpb25UaXRsZSByZWY9e3RleHRSZWZ9PntjaGF0LnRpdGxlIHx8IHQoJ2NvbnZlcnNhdGlvbnMuZW1wdHlMYWJlbCcpfTwvU0NMSENDb252ZXJzYXRpb25UaXRsZT5cbiAgICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgICAgPFNDTEhDQ29udmVyc2F0aW9uS2ViYWIgcmVmPXtrZWJhYlJlZn0gZGF0YS1tb2RhbC1jb250YWluZXI+XG4gICAgICAgICAgICA8Q1VCdXR0b25cbiAgICAgICAgICAgICAgaWNvbk9ubHlcbiAgICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcbiAgICAgICAgICAgICAgdmFyaWFudD1cInRleHRcIlxuICAgICAgICAgICAgICBvbkNsaWNrPXtldmVudCA9PiB7XG4gICAgICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcbiAgICAgICAgICAgICAgICBvbk9wZW5Nb2RhbChjaGF0LmlkKVxuICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8TWVudURvdHMgd2lkdGg9ezE1fSBoZWlnaHQ9ezE1fSAvPlxuICAgICAgICAgICAgPC9DVUJ1dHRvbj5cbiAgICAgICAgICA8L1NDTEhDQ29udmVyc2F0aW9uS2ViYWI+XG4gICAgICAgIDwvU0NMSENDb252ZXJzYXRpb25Ub3BSb3c+XG4gICAgICAgIHthZ2VudFN1YnRpdGxlTGluZSAmJiAoXG4gICAgICAgICAgPFRvb2x0aXAgdGl0bGU9e3Nob3dUb29sdGlwU3VidGl0bGUgPyBzdWJ0aXRsZVRvb2x0aXBUaXRsZSA6ICcnfT5cbiAgICAgICAgICAgIDxTQ0xIQ0NvbnZlcnNhdGlvblN1YnRpdGxlUm93PlxuICAgICAgICAgICAgICB7Y2hhdC5hZ2VudFR5cGUgPT09ICdjbG9uZScgJiYgKFxuICAgICAgICAgICAgICAgIDxTQ0xIQ0NvbnZlcnNhdGlvblN1YnRpdGxlRW1vamkgYXJpYS1oaWRkZW4+XG4gICAgICAgICAgICAgICAgICA8TUFJQUljb24gd2lkdGg9ezEyfSBoZWlnaHQ9ezEyfSAvPlxuICAgICAgICAgICAgICAgIDwvU0NMSENDb252ZXJzYXRpb25TdWJ0aXRsZUVtb2ppPlxuICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICB7Y2hhdC5hZ2VudFR5cGUgIT09ICdjbG9uZScgJiYgY2hhdC5lbW9qaSAmJiAoXG4gICAgICAgICAgICAgICAgPFNDTEhDQ29udmVyc2F0aW9uU3VidGl0bGVFbW9qaSBhcmlhLWhpZGRlbj57Y2hhdC5lbW9qaX08L1NDTEhDQ29udmVyc2F0aW9uU3VidGl0bGVFbW9qaT5cbiAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAge3N1YnRpdGxlVHJpbW1lZCA/IChcbiAgICAgICAgICAgICAgICA8U0NMSENDb252ZXJzYXRpb25TdWJ0aXRsZSByZWY9e3N1YnRpdGxlUmVmfSAkaW5GbGV4Um93PlxuICAgICAgICAgICAgICAgICAge3N1YnRpdGxlVHJpbW1lZH1cbiAgICAgICAgICAgICAgICA8L1NDTEhDQ29udmVyc2F0aW9uU3VidGl0bGU+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgPC9TQ0xIQ0NvbnZlcnNhdGlvblN1YnRpdGxlUm93PlxuICAgICAgICAgIDwvVG9vbHRpcD5cbiAgICAgICAgKX1cbiAgICAgICAgeyFhZ2VudFN1YnRpdGxlTGluZSAmJiBzdWJ0aXRsZVRyaW1tZWQgJiYgKFxuICAgICAgICAgIDxUb29sdGlwIHRpdGxlPXtzaG93VG9vbHRpcFN1YnRpdGxlID8gc3VidGl0bGVUcmltbWVkIDogJyd9PlxuICAgICAgICAgICAgPFNDTEhDQ29udmVyc2F0aW9uU3VidGl0bGUgcmVmPXtzdWJ0aXRsZVJlZn0+e3N1YnRpdGxlVHJpbW1lZH08L1NDTEhDQ29udmVyc2F0aW9uU3VidGl0bGU+XG4gICAgICAgICAgPC9Ub29sdGlwPlxuICAgICAgICApfVxuICAgICAgPC9TQ0xIQ0NvbnZlcnNhdGlvblJvb3Q+XG4gICAgICB7bWVudVBvcnRhbH1cbiAgICAgIHshIWFjdGlvbiAmJlxuICAgICAgICBhY3Rpb25zW2FjdGlvbl0oe1xuICAgICAgICAgIG9uQ2xvc2U6ICgpID0+IHtcbiAgICAgICAgICAgIG9uQ2xvc2VNb2RhbCgpXG4gICAgICAgICAgICBzZXRBY3Rpb24obnVsbClcbiAgICAgICAgICB9LFxuICAgICAgICAgIGNoYXQsXG4gICAgICAgICAgaGFuZGxlcnM6IHtcbiAgICAgICAgICAgIGhhbmRsZUNvbmZpcm1BY3Rpb24sXG4gICAgICAgICAgICBoYW5kbGVTZXRJc09wZW5Nb2RhbDogb25DbG9zZU1vZGFsLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0pfVxuICAgIDwvPlxuICApXG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7QUFBQTtBQUNBLFNBQVNBLGVBQWUsRUFBRUMsTUFBTSxFQUFFQyxRQUFRLFFBQVEsT0FBTztBQUN6RCxTQUFTQyxZQUFZLFFBQVEsV0FBVztBQUN4QyxTQUFTQyxRQUFRLFFBQVEsNENBQTRDO0FBQ3JFLFNBQVNDLFFBQVEsUUFBUSwyQ0FBMkM7QUFDcEUsU0FBU0MsTUFBTSxRQUFRLHlDQUF5QztBQUNoRSxTQUFTQyxLQUFLLFFBQVEsd0NBQXdDO0FBQzlELFNBQVNDLE9BQU8sUUFBUSw4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
|
|
@@ -1,70 +0,0 @@
|
|
|
1
|
-
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
2
|
-
import { MAX_VISIBLE_CHATS_PER_SECTION, SIDEBAR_SECTION_ORDER } from './sidebarChats.types';
|
|
3
|
-
export function abbreviateSpecialistInAgentName(agentName) {
|
|
4
|
-
if (!agentName || typeof agentName !== 'string') return agentName;
|
|
5
|
-
return agentName.replace(/\b(especialista|especialist)\b/gi, 'Esp.').replace(/\bspecialist\b/gi, 'Spec.');
|
|
6
|
-
}
|
|
7
|
-
export function groupChatsBySidebarSection(chats) {
|
|
8
|
-
var initialGroups = {
|
|
9
|
-
clients: [],
|
|
10
|
-
projects: [],
|
|
11
|
-
agentsByCompany: []
|
|
12
|
-
};
|
|
13
|
-
chats.forEach(function (chat) {
|
|
14
|
-
var _chatData$agent;
|
|
15
|
-
var chatData = chat;
|
|
16
|
-
var hasClientMetadata = chat.clientId != null || !!chat.clientName;
|
|
17
|
-
var hasProjectMetadata = chat.projectId != null || !!chat.projectName;
|
|
18
|
-
var isCustomAgentSession = chatData.agentType === 'custom';
|
|
19
|
-
/** Temporal: clone cuyo nombre indica Maiaker/marketplace (mismo criterio que ChatAIMessages / ChatFooter). */
|
|
20
|
-
var isCloneMarketplaceSession = chatData.agentType === 'clone' && /(maiaker|marketplace)/i.test(String((_chatData$agent = chatData.agent) !== null && _chatData$agent !== void 0 ? _chatData$agent : ''));
|
|
21
|
-
if (hasProjectMetadata) {
|
|
22
|
-
initialGroups.projects.push(chat);
|
|
23
|
-
return;
|
|
24
|
-
}
|
|
25
|
-
if (hasClientMetadata && !hasProjectMetadata) {
|
|
26
|
-
initialGroups.clients.push(chat);
|
|
27
|
-
return;
|
|
28
|
-
}
|
|
29
|
-
if (isCustomAgentSession || isCloneMarketplaceSession) {
|
|
30
|
-
initialGroups.agentsByCompany.push(chat);
|
|
31
|
-
}
|
|
32
|
-
});
|
|
33
|
-
return initialGroups;
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
/** Subtítulo de la fila según la sección: proyecto, cliente o nombre del agente. */
|
|
37
|
-
export function getSidebarHistorySubtitle(chat, sectionKey) {
|
|
38
|
-
var _chat$projectName, _chat$clientName, _chat$agent2;
|
|
39
|
-
switch (sectionKey) {
|
|
40
|
-
case 'projects':
|
|
41
|
-
return (_chat$projectName = chat.projectName) !== null && _chat$projectName !== void 0 ? _chat$projectName : '';
|
|
42
|
-
case 'clients':
|
|
43
|
-
return (_chat$clientName = chat.clientName) !== null && _chat$clientName !== void 0 ? _chat$clientName : '';
|
|
44
|
-
case 'agentsByCompany':
|
|
45
|
-
if (chat.agentType === 'clone') {
|
|
46
|
-
var _chat$agent;
|
|
47
|
-
return abbreviateSpecialistInAgentName((_chat$agent = chat.agent) !== null && _chat$agent !== void 0 ? _chat$agent : '');
|
|
48
|
-
}
|
|
49
|
-
return (_chat$agent2 = chat.agent) !== null && _chat$agent2 !== void 0 ? _chat$agent2 : '';
|
|
50
|
-
default:
|
|
51
|
-
return '';
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
export function buildSidebarSections(groupedChats, getSectionLabel, /** `has_more` del API v2 por grupo; permite “Ver más” aunque solo haya 3 ítems en la primera página. */
|
|
55
|
-
sessionsGroupHasMore) {
|
|
56
|
-
return SIDEBAR_SECTION_ORDER.map(function (sectionKey) {
|
|
57
|
-
var sectionChats = groupedChats[sectionKey];
|
|
58
|
-
if (!sectionChats.length) {
|
|
59
|
-
return null;
|
|
60
|
-
}
|
|
61
|
-
return {
|
|
62
|
-
key: sectionKey,
|
|
63
|
-
label: getSectionLabel(sectionKey),
|
|
64
|
-
chats: sectionChats,
|
|
65
|
-
visibleChats: sectionChats.slice(0, MAX_VISIBLE_CHATS_PER_SECTION),
|
|
66
|
-
hasMore: sectionChats.length > MAX_VISIBLE_CHATS_PER_SECTION || sessionsGroupHasMore[sectionKey]
|
|
67
|
-
};
|
|
68
|
-
}).filter(Boolean);
|
|
69
|
-
}
|
|
70
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJNQVhfVklTSUJMRV9DSEFUU19QRVJfU0VDVElPTiIsIlNJREVCQVJfU0VDVElPTl9PUkRFUiIsImFiYnJldmlhdGVTcGVjaWFsaXN0SW5BZ2VudE5hbWUiLCJhZ2VudE5hbWUiLCJyZXBsYWNlIiwiZ3JvdXBDaGF0c0J5U2lkZWJhclNlY3Rpb24iLCJjaGF0cyIsImluaXRpYWxHcm91cHMiLCJjbGllbnRzIiwicHJvamVjdHMiLCJhZ2VudHNCeUNvbXBhbnkiLCJmb3JFYWNoIiwiY2hhdCIsIl9jaGF0RGF0YSRhZ2VudCIsImNoYXREYXRhIiwiaGFzQ2xpZW50TWV0YWRhdGEiLCJjbGllbnRJZCIsImNsaWVudE5hbWUiLCJoYXNQcm9qZWN0TWV0YWRhdGEiLCJwcm9qZWN0SWQiLCJwcm9qZWN0TmFtZSIsImlzQ3VzdG9tQWdlbnRTZXNzaW9uIiwiYWdlbnRUeXBlIiwiaXNDbG9uZU1hcmtldHBsYWNlU2Vzc2lvbiIsInRlc3QiLCJTdHJpbmciLCJhZ2VudCIsInB1c2giLCJnZXRTaWRlYmFySGlzdG9yeVN1YnRpdGxlIiwic2VjdGlvbktleSIsIl9jaGF0JHByb2plY3ROYW1lIiwiX2NoYXQkY2xpZW50TmFtZSIsIl9jaGF0JGFnZW50MiIsIl9jaGF0JGFnZW50IiwiYnVpbGRTaWRlYmFyU2VjdGlvbnMiLCJncm91cGVkQ2hhdHMiLCJnZXRTZWN0aW9uTGFiZWwiLCJzZXNzaW9uc0dyb3VwSGFzTW9yZSIsIm1hcCIsInNlY3Rpb25DaGF0cyIsImxlbmd0aCIsImtleSIsImxhYmVsIiwidmlzaWJsZUNoYXRzIiwic2xpY2UiLCJoYXNNb3JlIiwiZmlsdGVyIiwiQm9vbGVhbiJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL21vbGVjdWxlcy9TaWRlYmFyL3NpZGViYXJDaGF0cy5oZWxwZXJzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnkgKi9cbmltcG9ydCB7XG4gIE1BWF9WSVNJQkxFX0NIQVRTX1BFUl9TRUNUSU9OLFxuICBTSURFQkFSX1NFQ1RJT05fT1JERVIsXG4gIHR5cGUgU2lkZWJhckNoYXRzU2VjdGlvbk1vZGVsLFxuICB0eXBlIFNpZGViYXJTZWN0aW9uS2V5LFxufSBmcm9tICcuL3NpZGViYXJDaGF0cy50eXBlcydcblxuZXhwb3J0IGZ1bmN0aW9uIGFiYnJldmlhdGVTcGVjaWFsaXN0SW5BZ2VudE5hbWUoYWdlbnROYW1lOiBzdHJpbmcpOiBzdHJpbmcge1xuICBpZiAoIWFnZW50TmFtZSB8fCB0eXBlb2YgYWdlbnROYW1lICE9PSAnc3RyaW5nJykgcmV0dXJuIGFnZW50TmFtZVxuICByZXR1cm4gYWdlbnROYW1lLnJlcGxhY2UoL1xcYihlc3BlY2lhbGlzdGF8ZXNwZWNpYWxpc3QpXFxiL2dpLCAnRXNwLicpLnJlcGxhY2UoL1xcYnNwZWNpYWxpc3RcXGIvZ2ksICdTcGVjLicpXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBncm91cENoYXRzQnlTaWRlYmFyU2VjdGlvbihjaGF0czogYW55W10pOiBSZWNvcmQ8U2lkZWJhclNlY3Rpb25LZXksIGFueVtdPiB7XG4gIGNvbnN0IGluaXRpYWxHcm91cHM6IFJlY29yZDxTaWRlYmFyU2VjdGlvbktleSwgYW55W10+ID0ge1xuICAgIGNsaWVudHM6IFtdLFxuICAgIHByb2plY3RzOiBbXSxcbiAgICBhZ2VudHNCeUNvbXBhbnk6IFtdLFxuICB9XG5cbiAgY2hhdHMuZm9yRWFjaChjaGF0ID0+IHtcbiAgICBjb25zdCBjaGF0RGF0YSA9IGNoYXQgYXMgYW55XG4gICAgY29uc3QgaGFzQ2xpZW50TWV0YWRhdGEgPSBjaGF0LmNsaWVudElkICE9IG51bGwgfHwgISFjaGF0LmNsaWVudE5hbWVcbiAgICBjb25zdCBoYXNQcm9qZWN0TWV0YWRhdGEgPSBjaGF0LnByb2plY3RJZCAhPSBudWxsIHx8ICEhY2hhdC5wcm9qZWN0TmFtZVxuICAgIGNvbnN0IGlzQ3VzdG9tQWdlbnRTZXNzaW9uID0gY2hhdERhdGEuYWdlbnRUeXBlID09PSAnY3VzdG9tJ1xuICAgIC8qKiBUZW1wb3JhbDogY2xvbmUgY3V5byBub21icmUgaW5kaWNhIE1haWFrZXIvbWFya2V0cGxhY2UgKG1pc21vIGNyaXRlcmlvIHF1ZSBDaGF0QUlNZXNzYWdlcyAvIENoYXRGb290ZXIpLiAqL1xuICAgIGNvbnN0IGlzQ2xvbmVNYXJrZXRwbGFjZVNlc3Npb24gPVxuICAgICAgY2hhdERhdGEuYWdlbnRUeXBlID09PSAnY2xvbmUnICYmIC8obWFpYWtlcnxtYXJrZXRwbGFjZSkvaS50ZXN0KFN0cmluZyhjaGF0RGF0YS5hZ2VudCA/PyAnJykpXG5cbiAgICBpZiAoaGFzUHJvamVjdE1ldGFkYXRhKSB7XG4gICAgICBpbml0aWFsR3JvdXBzLnByb2plY3RzLnB1c2goY2hhdClcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIGlmIChoYXNDbGllbnRNZXRhZGF0YSAmJiAhaGFzUHJvamVjdE1ldGFkYXRhKSB7XG4gICAgICBpbml0aWFsR3JvdXBzLmNsaWVudHMucHVzaChjaGF0KVxuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgaWYgKGlzQ3VzdG9tQWdlbnRTZXNzaW9uIHx8IGlzQ2xvbmVNYXJrZXRwbGFjZVNlc3Npb24pIHtcbiAgICAgIGluaXRpYWxHcm91cHMuYWdlbnRzQnlDb21wYW55LnB1c2goY2hhdClcbiAgICB9XG4gIH0pXG5cbiAgcmV0dXJuIGluaXRpYWxHcm91cHNcbn1cblxuLyoqIFN1YnTDrXR1bG8gZGUgbGEgZmlsYSBzZWfDum4gbGEgc2VjY2nDs246IHByb3llY3RvLCBjbGllbnRlIG8gbm9tYnJlIGRlbCBhZ2VudGUuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0U2lkZWJhckhpc3RvcnlTdWJ0aXRsZShjaGF0OiBhbnksIHNlY3Rpb25LZXk6IFNpZGViYXJTZWN0aW9uS2V5KTogc3RyaW5nIHtcbiAgc3dpdGNoIChzZWN0aW9uS2V5KSB7XG4gICAgY2FzZSAncHJvamVjdHMnOlxuICAgICAgcmV0dXJuIGNoYXQucHJvamVjdE5hbWUgPz8gJydcbiAgICBjYXNlICdjbGllbnRzJzpcbiAgICAgIHJldHVybiBjaGF0LmNsaWVudE5hbWUgPz8gJydcbiAgICBjYXNlICdhZ2VudHNCeUNvbXBhbnknOlxuICAgICAgaWYgKGNoYXQuYWdlbnRUeXBlID09PSAnY2xvbmUnKSB7XG4gICAgICAgIHJldHVybiBhYmJyZXZpYXRlU3BlY2lhbGlzdEluQWdlbnROYW1lKGNoYXQuYWdlbnQgPz8gJycpXG4gICAgICB9XG4gICAgICByZXR1cm4gY2hhdC5hZ2VudCA/PyAnJ1xuICAgIGRlZmF1bHQ6XG4gICAgICByZXR1cm4gJydcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gYnVpbGRTaWRlYmFyU2VjdGlvbnMoXG4gIGdyb3VwZWRDaGF0czogUmVjb3JkPFNpZGViYXJTZWN0aW9uS2V5LCBhbnlbXT4sXG4gIGdldFNlY3Rpb25MYWJlbDogKHNlY3Rpb25LZXk6IFNpZGViYXJTZWN0aW9uS2V5KSA9PiBzdHJpbmcsXG4gIC8qKiBgaGFzX21vcmVgIGRlbCBBUEkgdjIgcG9yIGdydXBvOyBwZXJtaXRlIOKAnFZlciBtw6Fz4oCdIGF1bnF1ZSBzb2xvIGhheWEgMyDDrXRlbXMgZW4gbGEgcHJpbWVyYSBww6FnaW5hLiAqL1xuICBzZXNzaW9uc0dyb3VwSGFzTW9yZTogUmVjb3JkPFNpZGViYXJTZWN0aW9uS2V5LCBib29sZWFuPlxuKTogU2lkZWJhckNoYXRzU2VjdGlvbk1vZGVsW10ge1xuICByZXR1cm4gU0lERUJBUl9TRUNUSU9OX09SREVSLm1hcChzZWN0aW9uS2V5ID0+IHtcbiAgICBjb25zdCBzZWN0aW9uQ2hhdHMgPSBncm91cGVkQ2hhdHNbc2VjdGlvbktleV1cbiAgICBpZiAoIXNlY3Rpb25DaGF0cy5sZW5ndGgpIHtcbiAgICAgIHJldHVybiBudWxsXG4gICAgfVxuICAgIHJldHVybiB7XG4gICAgICBrZXk6IHNlY3Rpb25LZXksXG4gICAgICBsYWJlbDogZ2V0U2VjdGlvbkxhYmVsKHNlY3Rpb25LZXkpLFxuICAgICAgY2hhdHM6IHNlY3Rpb25DaGF0cyxcbiAgICAgIHZpc2libGVDaGF0czogc2VjdGlvbkNoYXRzLnNsaWNlKDAsIE1BWF9WSVNJQkxFX0NIQVRTX1BFUl9TRUNUSU9OKSxcbiAgICAgIGhhc01vcmU6IHNlY3Rpb25DaGF0cy5sZW5ndGggPiBNQVhfVklTSUJMRV9DSEFUU19QRVJfU0VDVElPTiB8fCBzZXNzaW9uc0dyb3VwSGFzTW9yZVtzZWN0aW9uS2V5XSxcbiAgICB9XG4gIH0pLmZpbHRlcihCb29sZWFuKSBhcyBTaWRlYmFyQ2hhdHNTZWN0aW9uTW9kZWxbXVxufVxuIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBLFNBQ0VBLDZCQUE2QixFQUM3QkMscUJBQXFCLFFBR2hCLHNCQUFzQjtBQUU3QixPQUFPLFNBQVNDLCtCQUErQkEsQ0FBQ0MsU0FBaUIsRUFBVTtFQUN6RSxJQUFJLENBQUNBLFNBQVMsSUFBSSxPQUFPQSxTQUFTLEtBQUssUUFBUSxFQUFFLE9BQU9BLFNBQVM7RUFDakUsT0FBT0EsU0FBUyxDQUFDQyxPQUFPLENBQUMsa0NBQWtDLEVBQUUsTUFBTSxDQUFDLENBQUNBLE9BQU8sQ0FBQyxrQkFBa0IsRUFBRSxPQUFPLENBQUM7QUFDM0c7QUFFQSxPQUFPLFNBQVNDLDBCQUEwQkEsQ0FBQ0MsS0FBWSxFQUFvQztFQUN6RixJQUFNQyxhQUErQyxHQUFHO0lBQ3REQyxPQUFPLEVBQUUsRUFBRTtJQUNYQyxRQUFRLEVBQUUsRUFBRTtJQUNaQyxlQUFlLEVBQUU7RUFDbkIsQ0FBQztFQUVESixLQUFLLENBQUNLLE9BQU8sQ0FBQyxVQUFBQyxJQUFJLEVBQUk7SUFBQSxJQUFBQyxlQUFBO0lBQ3BCLElBQU1DLFFBQVEsR0FBR0YsSUFBVztJQUM1QixJQUFNRyxpQkFBaUIsR0FBR0gsSUFBSSxDQUFDSSxRQUFRLElBQUksSUFBSSxJQUFJLENBQUMsQ0FBQ0osSUFBSSxDQUFDSyxVQUFVO0lBQ3BFLElBQU1DLGtCQUFrQixHQUFHTixJQUFJLENBQUNPLFNBQVMsSUFBSSxJQUFJLElB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
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
2
|
-
|
|
3
|
-
export var MAX_VISIBLE_CHATS_PER_SECTION = 3;
|
|
4
|
-
|
|
5
|
-
/** Orden fijo de secciones en el sidebar. */
|
|
6
|
-
export var SIDEBAR_SECTION_ORDER = ['clients', 'projects', 'agentsByCompany'];
|
|
7
|
-
|
|
8
|
-
/** Claves i18n bajo `conversations.sections.*` (namespace chat AI). */
|
|
9
|
-
export var SIDEBAR_SECTION_TRANSLATION_KEYS = {
|
|
10
|
-
clients: 'conversations.sections.clients',
|
|
11
|
-
projects: 'conversations.sections.projects',
|
|
12
|
-
agentsByCompany: 'conversations.sections.agentsByCompany'
|
|
13
|
-
};
|
|
14
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJNQVhfVklTSUJMRV9DSEFUU19QRVJfU0VDVElPTiIsIlNJREVCQVJfU0VDVElPTl9PUkRFUiIsIlNJREVCQVJfU0VDVElPTl9UUkFOU0xBVElPTl9LRVlTIiwiY2xpZW50cyIsInByb2plY3RzIiwiYWdlbnRzQnlDb21wYW55Il0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvbW9sZWN1bGVzL1NpZGViYXIvc2lkZWJhckNoYXRzLnR5cGVzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnkgKi9cblxuZXhwb3J0IHR5cGUgU2lkZWJhckNoYXRNZW51U3VyZmFjZSA9ICdzaWRlYmFyJyB8ICdzZWN0aW9uTW9kYWwnXG5cbmV4cG9ydCB0eXBlIFNpZGViYXJDaGF0TWVudVN0YXRlID0ge1xuICBjaGF0SWQ6IHN0cmluZ1xuICBzdXJmYWNlOiBTaWRlYmFyQ2hhdE1lbnVTdXJmYWNlXG59IHwgbnVsbFxuXG5leHBvcnQgdHlwZSBTaWRlYmFyU2VjdGlvbktleSA9ICdjbGllbnRzJyB8ICdwcm9qZWN0cycgfCAnYWdlbnRzQnlDb21wYW55J1xuXG5leHBvcnQgY29uc3QgTUFYX1ZJU0lCTEVfQ0hBVFNfUEVSX1NFQ1RJT04gPSAzXG5cbi8qKiBPcmRlbiBmaWpvIGRlIHNlY2Npb25lcyBlbiBlbCBzaWRlYmFyLiAqL1xuZXhwb3J0IGNvbnN0IFNJREVCQVJfU0VDVElPTl9PUkRFUjogU2lkZWJhclNlY3Rpb25LZXlbXSA9IFsnY2xpZW50cycsICdwcm9qZWN0cycsICdhZ2VudHNCeUNvbXBhbnknXVxuXG4vKiogQ2xhdmVzIGkxOG4gYmFqbyBgY29udmVyc2F0aW9ucy5zZWN0aW9ucy4qYCAobmFtZXNwYWNlIGNoYXQgQUkpLiAqL1xuZXhwb3J0IGNvbnN0IFNJREVCQVJfU0VDVElPTl9UUkFOU0xBVElPTl9LRVlTOiBSZWNvcmQ8U2lkZWJhclNlY3Rpb25LZXksIHN0cmluZz4gPSB7XG4gIGNsaWVudHM6ICdjb252ZXJzYXRpb25zLnNlY3Rpb25zLmNsaWVudHMnLFxuICBwcm9qZWN0czogJ2NvbnZlcnNhdGlvbnMuc2VjdGlvbnMucHJvamVjdHMnLFxuICBhZ2VudHNCeUNvbXBhbnk6ICdjb252ZXJzYXRpb25zLnNlY3Rpb25zLmFnZW50c0J5Q29tcGFueScsXG59XG5cbmV4cG9ydCB0eXBlIFNpZGViYXJDaGF0c1NlY3Rpb25Nb2RlbCA9IHtcbiAga2V5OiBTaWRlYmFyU2VjdGlvbktleVxuICBsYWJlbDogc3RyaW5nXG4gIGNoYXRzOiBhbnlbXVxuICB2aXNpYmxlQ2hhdHM6IGFueVtdXG4gIGhhc01vcmU6IGJvb2xlYW5cbn1cbiJdLCJtYXBwaW5ncyI6IkFBQUE7O0FBV0EsT0FBTyxJQUFNQSw2QkFBNkIsR0FBRyxDQUFDOztBQUU5QztBQUNBLE9BQU8sSUFBTUMscUJBQTBDLEdBQUcsQ0FBQyxTQUFTLEVBQUUsVUFBVSxFQUFFLGlCQUFpQixDQUFDOztBQUVwRztBQUNBLE9BQU8sSUFBTUMsZ0NBQW1FLEdBQUc7RUFDakZDLE9BQU8sRUFBRSxnQ0FBZ0M7RUFDekNDLFFBQVEsRUFBRSxpQ0FBaUM7RUFDM0NDLGVBQWUsRUFBRTtBQUNuQixDQUFDIiwiaWdub3JlTGlzdCI6W119
|
|
@@ -1,173 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Usuario mínimo para levantar la app local (`webpack-dev-server`) con `UserProvider`.
|
|
3
|
-
* No usar en producción ni en tests; el host real inyecta el usuario desde COR.
|
|
4
|
-
*/
|
|
5
|
-
|
|
6
|
-
export var devAppUser = {
|
|
7
|
-
info: {
|
|
8
|
-
id: 30573,
|
|
9
|
-
first_name: 'Charles',
|
|
10
|
-
last_name: 'Babbage',
|
|
11
|
-
picture: null,
|
|
12
|
-
remaining_hours: 16,
|
|
13
|
-
company: 'COR',
|
|
14
|
-
company_id: 10564,
|
|
15
|
-
lang: 'es',
|
|
16
|
-
email: 'cb@projectcor.com',
|
|
17
|
-
type: '1',
|
|
18
|
-
user_type: 'internal',
|
|
19
|
-
role: 'C-Level',
|
|
20
|
-
role_id: 1,
|
|
21
|
-
companies: [{
|
|
22
|
-
id: 2336,
|
|
23
|
-
name: 'DEV',
|
|
24
|
-
subdomain: 'dev',
|
|
25
|
-
user_id: 15,
|
|
26
|
-
picture: 'user.png',
|
|
27
|
-
users_q: 566
|
|
28
|
-
}, {
|
|
29
|
-
id: 60,
|
|
30
|
-
name: 'COR',
|
|
31
|
-
subdomain: 'cor',
|
|
32
|
-
user_id: 15,
|
|
33
|
-
picture: 'user.png',
|
|
34
|
-
users_q: 41
|
|
35
|
-
}],
|
|
36
|
-
company_segment: null,
|
|
37
|
-
daily_hours: 0,
|
|
38
|
-
monthly_hours: 0,
|
|
39
|
-
first_user: false,
|
|
40
|
-
leaves: null,
|
|
41
|
-
user_created_at: '2020-01-13T19:03:13+00:00',
|
|
42
|
-
company_created_at: '2016-04-03T00:00:00+00:00',
|
|
43
|
-
gmt: '-03:00',
|
|
44
|
-
timezone: 'America/Buenos_Aires',
|
|
45
|
-
implementer: false,
|
|
46
|
-
company_users_q_paid: 41,
|
|
47
|
-
company_users_q_available: 120,
|
|
48
|
-
has_metrics_view: true,
|
|
49
|
-
has_quotations_view: true,
|
|
50
|
-
has_quotations_create: true
|
|
51
|
-
},
|
|
52
|
-
permissions: {
|
|
53
|
-
quotations: {
|
|
54
|
-
view: true,
|
|
55
|
-
edit: false,
|
|
56
|
-
create: false,
|
|
57
|
-
"delete": true
|
|
58
|
-
},
|
|
59
|
-
proyectos: {
|
|
60
|
-
archive: true,
|
|
61
|
-
view: true,
|
|
62
|
-
edit: true,
|
|
63
|
-
create: true,
|
|
64
|
-
"delete": true,
|
|
65
|
-
deleteFile: true
|
|
66
|
-
},
|
|
67
|
-
tasks: {
|
|
68
|
-
archive: true,
|
|
69
|
-
view: true,
|
|
70
|
-
edit: true,
|
|
71
|
-
create: true,
|
|
72
|
-
"delete": true,
|
|
73
|
-
viewUserCapacity: true,
|
|
74
|
-
viewHours: true,
|
|
75
|
-
deleteFile: true
|
|
76
|
-
},
|
|
77
|
-
tasks_deadline: {
|
|
78
|
-
view: false,
|
|
79
|
-
edit: true,
|
|
80
|
-
create: true,
|
|
81
|
-
"delete": true
|
|
82
|
-
},
|
|
83
|
-
clients: {
|
|
84
|
-
view: true,
|
|
85
|
-
edit: true,
|
|
86
|
-
create: true,
|
|
87
|
-
"delete": true
|
|
88
|
-
},
|
|
89
|
-
users: {
|
|
90
|
-
view: true,
|
|
91
|
-
edit: true,
|
|
92
|
-
create: true,
|
|
93
|
-
"delete": true
|
|
94
|
-
},
|
|
95
|
-
leaves: {
|
|
96
|
-
view: true,
|
|
97
|
-
edit: true,
|
|
98
|
-
create: true,
|
|
99
|
-
"delete": true
|
|
100
|
-
},
|
|
101
|
-
project_gantt: {
|
|
102
|
-
view: true,
|
|
103
|
-
edit: false,
|
|
104
|
-
create: false,
|
|
105
|
-
"delete": false
|
|
106
|
-
},
|
|
107
|
-
settings: {
|
|
108
|
-
view: true,
|
|
109
|
-
edit: true,
|
|
110
|
-
create: false,
|
|
111
|
-
"delete": false
|
|
112
|
-
},
|
|
113
|
-
passwords: {
|
|
114
|
-
view: true,
|
|
115
|
-
edit: true,
|
|
116
|
-
create: true,
|
|
117
|
-
"delete": true
|
|
118
|
-
},
|
|
119
|
-
notifications: {
|
|
120
|
-
view: true,
|
|
121
|
-
edit: true,
|
|
122
|
-
create: false,
|
|
123
|
-
"delete": false
|
|
124
|
-
},
|
|
125
|
-
hours: {
|
|
126
|
-
view: true,
|
|
127
|
-
edit: true,
|
|
128
|
-
create: true,
|
|
129
|
-
"delete": true
|
|
130
|
-
},
|
|
131
|
-
project_templates: {
|
|
132
|
-
view: true,
|
|
133
|
-
edit: true,
|
|
134
|
-
create: true,
|
|
135
|
-
"delete": true
|
|
136
|
-
},
|
|
137
|
-
metrics: {
|
|
138
|
-
view: true,
|
|
139
|
-
edit: false,
|
|
140
|
-
create: false,
|
|
141
|
-
"delete": false
|
|
142
|
-
},
|
|
143
|
-
dashboards: {
|
|
144
|
-
view: true,
|
|
145
|
-
edit: false,
|
|
146
|
-
create: false,
|
|
147
|
-
"delete": false
|
|
148
|
-
},
|
|
149
|
-
gantt: {
|
|
150
|
-
view: true,
|
|
151
|
-
edit: true,
|
|
152
|
-
create: true,
|
|
153
|
-
"delete": false
|
|
154
|
-
},
|
|
155
|
-
salary: {
|
|
156
|
-
view: true,
|
|
157
|
-
edit: false,
|
|
158
|
-
create: true,
|
|
159
|
-
"delete": false
|
|
160
|
-
},
|
|
161
|
-
ai_agents: {
|
|
162
|
-
view: true,
|
|
163
|
-
create: true,
|
|
164
|
-
edit: true,
|
|
165
|
-
"delete": true
|
|
166
|
-
}
|
|
167
|
-
},
|
|
168
|
-
settings: {
|
|
169
|
-
allow_in_design_status: false,
|
|
170
|
-
allow_in_review_status: false
|
|
171
|
-
}
|
|
172
|
-
};
|
|
173
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJkZXZBcHBVc2VyIiwiaW5mbyIsImlkIiwiZmlyc3RfbmFtZSIsImxhc3RfbmFtZSIsInBpY3R1cmUiLCJyZW1haW5pbmdfaG91cnMiLCJjb21wYW55IiwiY29tcGFueV9pZCIsImxhbmciLCJlbWFpbCIsInR5cGUiLCJ1c2VyX3R5cGUiLCJyb2xlIiwicm9sZV9pZCIsImNvbXBhbmllcyIsIm5hbWUiLCJzdWJkb21haW4iLCJ1c2VyX2lkIiwidXNlcnNfcSIsImNvbXBhbnlfc2VnbWVudCIsImRhaWx5X2hvdXJzIiwibW9udGhseV9ob3VycyIsImZpcnN0X3VzZXIiLCJsZWF2ZXMiLCJ1c2VyX2NyZWF0ZWRfYXQiLCJjb21wYW55X2NyZWF0ZWRfYXQiLCJnbXQiLCJ0aW1lem9uZSIsImltcGxlbWVudGVyIiwiY29tcGFueV91c2Vyc19xX3BhaWQiLCJjb21wYW55X3VzZXJzX3FfYXZhaWxhYmxlIiwiaGFzX21ldHJpY3NfdmlldyIsImhhc19xdW90YXRpb25zX3ZpZXciLCJoYXNfcXVvdGF0aW9uc19jcmVhdGUiLCJwZXJtaXNzaW9ucyIsInF1b3RhdGlvbnMiLCJ2aWV3IiwiZWRpdCIsImNyZWF0ZSIsInByb3llY3RvcyIsImFyY2hpdmUiLCJkZWxldGVGaWxlIiwidGFza3MiLCJ2aWV3VXNlckNhcGFjaXR5Iiwidmlld0hvdXJzIiwidGFza3NfZGVhZGxpbmUiLCJjbGllbnRzIiwidXNlcnMiLCJwcm9qZWN0X2dhbnR0Iiwic2V0dGluZ3MiLCJwYXNzd29yZHMiLCJub3RpZmljYXRpb25zIiwiaG91cnMiLCJwcm9qZWN0X3RlbXBsYXRlcyIsIm1ldHJpY3MiLCJkYXNoYm9hcmRzIiwiZ2FudHQiLCJzYWxhcnkiLCJhaV9hZ2VudHMiLCJhbGxvd19pbl9kZXNpZ25fc3RhdHVzIiwiYWxsb3dfaW5fcmV2aWV3X3N0YXR1cyJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9kZXYvZml4dHVyZXMvZGV2VXNlci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFVzdWFyaW8gbcOtbmltbyBwYXJhIGxldmFudGFyIGxhIGFwcCBsb2NhbCAoYHdlYnBhY2stZGV2LXNlcnZlcmApIGNvbiBgVXNlclByb3ZpZGVyYC5cbiAqIE5vIHVzYXIgZW4gcHJvZHVjY2nDs24gbmkgZW4gdGVzdHM7IGVsIGhvc3QgcmVhbCBpbnllY3RhIGVsIHVzdWFyaW8gZGVzZGUgQ09SLlxuICovXG5pbXBvcnQgeyBVc2VyUHJvcHMgfSBmcm9tICcuLi8uLi90eXBlcy91c2VyVHlwZS5kJ1xuXG5leHBvcnQgY29uc3QgZGV2QXBwVXNlcjogVXNlclByb3BzID0ge1xuICBpbmZvOiB7XG4gICAgaWQ6IDMwNTczLFxuICAgIGZpcnN0X25hbWU6ICdDaGFybGVzJyxcbiAgICBsYXN0X25hbWU6ICdCYWJiYWdlJyxcbiAgICBwaWN0dXJlOiBudWxsLFxuICAgIHJlbWFpbmluZ19ob3VyczogMTYsXG4gICAgY29tcGFueTogJ0NPUicsXG4gICAgY29tcGFueV9pZDogMTA1NjQsXG4gICAgbGFuZzogJ2VzJyxcbiAgICBlbWFpbDogJ2NiQHByb2plY3Rjb3IuY29tJyxcbiAgICB0eXBlOiAnMScsXG4gICAgdXNlcl90eXBlOiAnaW50ZXJuYWwnLFxuICAgIHJvbGU6ICdDLUxldmVsJyxcbiAgICByb2xlX2lkOiAxLFxuICAgIGNvbXBhbmllczogW1xuICAgICAge1xuICAgICAgICBpZDogMjMzNixcbiAgICAgICAgbmFtZTogJ0RFVicsXG4gICAgICAgIHN1YmRvbWFpbjogJ2RldicsXG4gICAgICAgIHVzZXJfaWQ6IDE1LFxuICAgICAgICBwaWN0dXJlOiAndXNlci5wbmcnLFxuICAgICAgICB1c2Vyc19xOiA1NjYsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBpZDogNjAsXG4gICAgICAgIG5hbWU6ICdDT1InLFxuICAgICAgICBzdWJkb21haW46ICdjb3InLFxuICAgICAgICB1c2VyX2lkOiAxNSxcbiAgICAgICAgcGljdHVyZTogJ3VzZXIucG5nJyxcbiAgICAgICAgdXNlcnNfcTogNDEsXG4gICAgICB9LFxuICAgIF0sXG4gICAgY29tcGFueV9zZWdtZW50OiBudWxsLFxuICAgIGRhaWx5X2hvdXJzOiAwLFxuICAgIG1vbnRobHlfaG91cnM6IDAsXG4gICAgZmlyc3RfdXNlcjogZmFsc2UsXG4gICAgbGVhdmVzOiBudWxsLFxuICAgIHVzZXJfY3JlYXRlZF9hdDogJzIwMjAtMDEtMTNUMTk6MDM6MTMrMDA6MDAnLFxuICAgIGNvbXBhbnlfY3JlYXRlZF9hdDogJzIwMTYtMDQtMDNUMDA6MDA6MDArMDA6MDAnLFxuICAgIGdtdDogJy0wMzowMCcsXG4gICAgdGltZXpvbmU6ICdBbWVyaWNhL0J1ZW5vc19BaXJlcycsXG4gICAgaW1wbGVtZW50ZXI6IGZhbHNlLFxuICAgIGNvbXBhbnlfdXNlcnNfcV9wYWlkOiA0MSxcbiAgICBjb21wYW55X3VzZXJzX3FfYXZhaWxhYmxlOiAxMjAsXG4gICAgaGFzX21ldHJpY3NfdmlldzogdHJ1ZSxcbiAgICBoYXNfcXVvdGF0aW9uc192aWV3OiB0cnVlLFxuICAgIGhhc19xdW90YXRpb25zX2NyZWF0ZTogdHJ1ZSxcbiAgfSxcbiAgcGVybWlzc2lvbnM6IHtcbiAgICBxdW90YXRpb25zOiB7XG4gICAgICB2aWV3OiB0cnVlLFxuICAgICAgZWRpdDogZmFsc2UsXG4gICAgICBjcmVhdGU6IGZhbHNlLFxuICAgICAgZGVsZXRlOiB0cnVlLFxuICAgIH0sXG4gICAgcHJveWVjdG9zOiB7XG4gICAgICBhcmNoaXZlOiB0cnVlLFxuICAgICAgdmlldzogdHJ1ZSxcbiAgICAgIGVkaXQ6IHRydWUsXG4gICAgICBjcmVhdGU6IHRydWUsXG4gICAgICBkZWxldGU6IHRydWUsXG4gICAgICBkZWxldGVGaWxlOiB0cnVlLFxuICAgIH0sXG4gICAgdGFza3M6IHtcbiAgICAgIGFyY2hpdmU6IHRydWUsXG4gICAgICB2aWV3OiB0cnVlLFxuICAgICAgZWRpdDogdHJ1ZSxcbiAgICAgIGNyZWF0ZTogdHJ1ZSxcbiAgICAgIGRlbGV0ZTogdHJ1ZSxcbiAgICAgIHZpZXdVc2VyQ2FwYWNpdHk6IHRydWUsXG4gICAgICB2aWV3SG91cnM6IHRydWUsXG4gICAgICBkZWxldGVGaWxlOiB0cnVlLFxuICAgIH0sXG4gICAgdGFza3NfZGVhZGxpbmU6IHtcbiAgICAgIHZpZXc6IGZhbHNlLFxuICAgICAgZWRpdDogdHJ1ZSxcbiAgICAgIGNyZWF0ZTogdHJ1ZSxcbiAgICAgIGRlbGV0ZTogdHJ1ZSxcbiAgICB9LFxuICAgIGNsaWVudHM6IHtcbiAgICAgIHZpZXc6IHRydWUsXG4gICAgICBlZGl0OiB0cnVlLFxuICAgICAgY3JlYXRlOiB0cnVlLFxuICAgICAgZGVsZXRlOiB0cnVlLFxuICAgIH0sXG4gICAgdXNlcnM6IHtcbiAgICAgIHZpZXc6IHRydWUsXG4gICAgICBlZGl0OiB0cnVlLFxuICAgICAgY3JlYXRlOiB0cnVlLFxuICAgICAgZGVsZXRlOiB0cnVlLFxuICAgIH0sXG4gICAgbGVhdmVzOiB7XG4gICAgICB2aWV3OiB0cnVlLFxuICAgICAgZWRpdDogdHJ1ZSxcbiAgICAgIGNyZWF0ZTogdHJ1ZSxcbiAgICAgIGRlbGV0ZTogdHJ1ZSxcbiAgICB9LFxuICAgIHByb2plY3RfZ2FudHQ6IHtcbiAgICAgIHZpZXc6IHRydWUsXG4gICAgICBlZGl0OiBmYWxzZSxcbiAgICAgIGNyZWF0ZTogZmFsc2UsXG4gICAgICBkZWxldGU6IGZhbHNlLFxuICAgIH0sXG4gICAgc2V0dGluZ3M6IHtcbiAgICAgIHZpZXc6IHRydWUsXG4gICAgICBlZGl0OiB0cnVlLFxuICAgICAgY3JlYXRlOiBmYWxzZSxcbiAgICAgIGRlbGV0ZTogZmFsc2UsXG4gICAgfSxcbiAgICBwYXNzd29yZHM6IHtcbiAgICAgIHZpZXc6IHRydWUsXG4gICAgICBlZGl0OiB0cnVlLFxuICAgICAgY3JlYXRlOiB0cnVlLFxuICAgICAgZGVsZXRlOiB0cnVlLFxuICAgIH0sXG4gICAgbm90aWZpY2F0aW9uczoge1xuICAgICAgdmlldzogdHJ1ZSxcbiAgICAgIGVkaXQ6IHRydWUsXG4gICAgICBjcmVhdGU6IGZhbHNlLFxuICAgICAgZGVsZXRlOiBmYWxzZSxcbiAgICB9LFxuICAgIGhvdXJzOiB7XG4gICAgICB2aWV3OiB0cnVlLFxuICAgICAgZWRpdDogdHJ1ZSxcbiAgICAgIGNyZWF0ZTogdHJ1ZSxcbiAgICAgIGRlbGV0ZTogdHJ1ZSxcbiAgICB9LFxuICAgIHByb2plY3RfdGVtcGxhdGVzOiB7XG4gICAgICB2aWV3OiB0cnVlLFxuICAgICAgZWRpdDogdHJ1ZSxcbiAgICAgIGNyZWF0ZTogdHJ1ZSxcbiAgICAgIGRlbGV0ZTogdHJ1ZSxcbiAgICB9LFxuICAgIG1ldHJpY3M6IHtcbiAgICAgIHZpZXc6IHRydWUsXG4gICAgICBlZGl0OiBmYWxzZSxcbiAgICAgIGNyZWF0ZTogZmFsc2UsXG4gICAgICBkZWxldGU6IGZhbHNlLFxuICAgIH0sXG4gICAgZGFzaGJvYXJkczoge1xuICAgICAgdmlldzogdHJ1ZSxcbiAgICAgIGVkaXQ6IGZhbHNlLFxuICAgICAgY3JlYXRlOiBmYWxzZSxcbiAgICAgIGRlbGV0ZTogZmFsc2UsXG4gICAgfSxcbiAgICBnYW50dDoge1xuICAgICAgdmlldzogdHJ1ZSxcbiAgICAgIGVkaXQ6IHRydWUsXG4gICAgICBjcmVhdGU6IHRydWUsXG4gICAgICBkZWxldGU6IGZhbHNlLFxuICAgIH0sXG4gICAgc2FsYXJ5OiB7XG4gICAgICB2aWV3OiB0cnVlLFxuICAgICAgZWRpdDogZmFsc2UsXG4gICAgICBjcmVhdGU6IHRydWUsXG4gICAgICBkZWxldGU6IGZhbHNlLFxuICAgIH0sXG4gICAgYWlfYWdlbnRzOiB7XG4gICAgICB2aWV3OiB0cnVlLFxuICAgICAgY3JlYXRlOiB0cnVlLFxuICAgICAgZWRpdDogdHJ1ZSxcbiAgICAgIGRlbGV0ZTogdHJ1ZSxcbiAgICB9LFxuICB9LFxuICBzZXR0aW5nczoge1xuICAgIGFsbG93X2luX2Rlc2lnbl9zdGF0dXM6IGZhbHNlLFxuICAgIGFsbG93X2luX3Jldmlld19zdGF0dXM6IGZhbHNlLFxuICB9LFxufVxuIl0sIm1hcHBp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
|