@projectcor/maia-components 2.11.41-7 → 2.11.41-9
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/App.js +11 -22
- package/lib/components/atoms/MAIAInput/MAIAInput.js +321 -246
- package/lib/components/atoms/MAIAInput/styles.js +46 -75
- package/lib/components/atoms/icons/index.js +1 -2
- package/lib/components/index.js +1 -2
- package/lib/components/molecules/ChatAIHistory/ChatAIHistory.js +4 -8
- package/lib/components/molecules/ChatAIMessages/ChatAIMessages.js +3 -31
- package/lib/components/molecules/ChatAIMessages/newStyles.js +2 -5
- package/lib/components/molecules/ChatAIModal/ChatAIModal.js +38 -9
- package/lib/components/molecules/ChatFooter/ChatFooter.js +4 -5
- package/lib/components/molecules/Sidebar/Sidebar.js +5 -9
- package/lib/components/molecules/Sidebar/Sidebar.layout.styles.js +2 -6
- package/lib/components/organisms/ChatAI/ChatAI.js +20 -4
- package/lib/components/organisms/DeleteQuestionModal/DeleteQuestionModal.js +2 -5
- package/lib/components/organisms/EditQuestionModal/EditQuestionModal.js +3 -6
- package/lib/constants/config.js +1 -3
- package/lib/context/cor-user.js +1 -1
- package/lib/context/global-context.js +5 -1
- package/lib/dev/Providers.js +6 -11
- package/lib/hooks/useChatManager/useChatManager.interface.js +1 -1
- package/lib/hooks/useChatManager/useChatManager.js +11 -21
- package/lib/hooks/useChatMessages/useChatMessages.interface.js +1 -1
- package/lib/hooks/useChatMessages/useChatMessages.js +14 -30
- package/lib/hooks/useClientSearch.js +2 -3
- package/lib/hooks/useEvent.js +1 -6
- package/lib/hooks/useOrchestratorStream/useOrchestratorStream.js +4 -6
- package/lib/hooks/useProjectSearch.js +2 -3
- package/lib/hooks/useRecentClientsSearch.js +2 -3
- package/lib/hooks/useTaskPanel.js +10 -3
- package/lib/lang/br/index.js +1 -24
- package/lib/lang/en/index.js +1 -24
- package/lib/lang/es/index.js +1 -24
- package/lib/lang/fr/index.js +1 -23
- package/lib/services/maia/Chats/getChatMessages.js +4 -29
- package/lib/services/maia/Faqs/getFrequentlyAskedQuestions.js +8 -4
- package/lib/services/maia/Orchestrator/orchestrator.js +5 -8
- package/lib/services/maia/RecentProjects/getRecentProjects.js +4 -12
- package/lib/services/utils/mapChatMessages.js +5 -12
- package/lib/types/Chat.js +1 -1
- package/lib/types/agent.js +1 -1
- package/package.json +1 -2
- package/lib/components/atoms/ContextMentionChip/ContextMentionChip.js +0 -38
- package/lib/components/atoms/ContextMentionChip/ContextMentionChip.styles.js +0 -184
- package/lib/components/atoms/ContextMentionChip/MentionOverflowLabel.js +0 -39
- package/lib/components/atoms/ContextMentionChip/buildChipElement.js +0 -432
- package/lib/components/atoms/ContextMentionChip/index.js +0 -4
- package/lib/components/atoms/ContextMentionEditor/ContextMentionEditor.js +0 -225
- package/lib/components/atoms/ContextMentionEditor/ContextMentionEditor.styles.js +0 -6
- package/lib/components/atoms/ContextMentionEditor/index.js +0 -2
- package/lib/components/atoms/ContextMentionItem/ContextMentionItem.js +0 -282
- package/lib/components/atoms/ContextMentionItem/ContextMentionItem.styles.js +0 -145
- package/lib/components/atoms/ContextMentionItem/index.js +0 -2
- package/lib/components/atoms/ContextMentionPopover/ContextMentionPopover.js +0 -160
- package/lib/components/atoms/ContextMentionPopover/ContextMentionPopover.styles.js +0 -79
- package/lib/components/atoms/ContextMentionPopover/index.js +0 -3
- package/lib/components/atoms/MAIAInput/MAIAInputEditor.js +0 -269
- package/lib/components/atoms/icons/NotionIcon.js +0 -36
- package/lib/components/atoms/icons/SubtaskIcon.js +0 -36
- package/lib/components/molecules/ContextMentionInput/ContextMentionInput.js +0 -68
- package/lib/components/molecules/ContextMentionInput/ContextMentionInput.styles.js +0 -6
- package/lib/components/molecules/ContextMentionInput/index.js +0 -2
- package/lib/constants/taskLinkIcon.js +0 -6
- package/lib/dev/DevContextMentionInput.js +0 -65
- package/lib/hooks/useCaretPosition.js +0 -35
- package/lib/hooks/useContextMentions.js +0 -270
- package/lib/hooks/useEntitySearch.js +0 -1097
- package/lib/hooks/useMentionAllowedTypes.js +0 -103
- package/lib/hooks/useMentionPopover.js +0 -334
- package/lib/hooks/useTextOverflowEllipsisTooltip.js +0 -34
- package/lib/services/maia/RecentTasks/getRecentTasks.js +0 -54
- package/lib/services/maia/RecentTasks/index.js +0 -6
- package/lib/services/maia/RecentUsers/getRecentUsers.js +0 -59
- package/lib/services/maia/RecentUsers/index.js +0 -6
- package/lib/services/query/entitySearchQuery.js +0 -18
- package/lib/services/query/usersDirectoryQuery.js +0 -19
- package/lib/types/contextMention.js +0 -37
- package/lib/utils/contextMentionIcons.js +0 -115
- package/lib/utils/contextMentionLabel.js +0 -4
- package/lib/utils/contextMentionTypeLabel.js +0 -17
- package/lib/utils/maiaStreamdownRehypePlugins.js +0 -27
- package/lib/utils/openTaskInCorPanel.js +0 -18
- package/lib/utils/renderContextMentions.js +0 -355
|
@@ -1,432 +0,0 @@
|
|
|
1
|
-
import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
|
2
|
-
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
3
|
-
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
4
|
-
import { createElement } from 'react';
|
|
5
|
-
import { flushSync } from 'react-dom';
|
|
6
|
-
import { createRoot } from 'react-dom/client';
|
|
7
|
-
import i18n from '../../../lang';
|
|
8
|
-
import { CONTEXT_MENTION_CHIP_CLASS } from '../../../types/contextMention';
|
|
9
|
-
import { getContextMentionIcon } from '../../../utils/contextMentionIcons';
|
|
10
|
-
import { normalizeContextMentionLabel } from '../../../utils/contextMentionLabel';
|
|
11
|
-
import { openTaskInCorPanel } from '../../../utils/openTaskInCorPanel';
|
|
12
|
-
import { applyMentionChipStyles, MENTION_CHIP_COLORS } from './ContextMentionChip.styles';
|
|
13
|
-
var EDITABLE_NON_TASK_LABEL_STYLE = {
|
|
14
|
-
display: 'inline',
|
|
15
|
-
lineHeight: '20px',
|
|
16
|
-
alignSelf: 'baseline',
|
|
17
|
-
minWidth: 0,
|
|
18
|
-
maxWidth: '100%',
|
|
19
|
-
whiteSpace: 'normal',
|
|
20
|
-
overflowWrap: 'break-word',
|
|
21
|
-
wordBreak: 'break-word'
|
|
22
|
-
};
|
|
23
|
-
|
|
24
|
-
/** Texto de tarea: sin borde inferior; el aspecto de enlace lo da el CSS global (::before + color). */
|
|
25
|
-
var EDITABLE_TASK_LABEL_STYLE = {
|
|
26
|
-
display: 'inline',
|
|
27
|
-
fontSize: '14px',
|
|
28
|
-
lineHeight: '20px',
|
|
29
|
-
fontWeight: '600',
|
|
30
|
-
color: 'inherit',
|
|
31
|
-
minWidth: 0,
|
|
32
|
-
maxWidth: '100%',
|
|
33
|
-
whiteSpace: 'normal',
|
|
34
|
-
overflowWrap: 'break-word',
|
|
35
|
-
wordBreak: 'break-word'
|
|
36
|
-
};
|
|
37
|
-
var createEditableMentionLabelEl = function createEditableMentionLabelEl(isTask, mentionLabel) {
|
|
38
|
-
if (!isTask) {
|
|
39
|
-
return /*#__PURE__*/createElement('span', {
|
|
40
|
-
style: EDITABLE_NON_TASK_LABEL_STYLE
|
|
41
|
-
}, mentionLabel);
|
|
42
|
-
}
|
|
43
|
-
return /*#__PURE__*/createElement('span', {
|
|
44
|
-
style: EDITABLE_TASK_LABEL_STYLE
|
|
45
|
-
}, mentionLabel);
|
|
46
|
-
};
|
|
47
|
-
var splitLabelFirstWord = function splitLabelFirstWord(label) {
|
|
48
|
-
var normalized = label.trim();
|
|
49
|
-
if (!normalized) return {
|
|
50
|
-
firstWord: '',
|
|
51
|
-
rest: ''
|
|
52
|
-
};
|
|
53
|
-
var firstWhitespaceIdx = normalized.search(/\s/);
|
|
54
|
-
if (firstWhitespaceIdx < 0) return {
|
|
55
|
-
firstWord: normalized,
|
|
56
|
-
rest: ''
|
|
57
|
-
};
|
|
58
|
-
return {
|
|
59
|
-
firstWord: normalized.slice(0, firstWhitespaceIdx),
|
|
60
|
-
rest: normalized.slice(firstWhitespaceIdx)
|
|
61
|
-
};
|
|
62
|
-
};
|
|
63
|
-
var EditableMentionChip = function EditableMentionChip(_ref) {
|
|
64
|
-
var mention = _ref.mention;
|
|
65
|
-
var mentionLabel = normalizeContextMentionLabel(mention.label);
|
|
66
|
-
var iconColor = MENTION_CHIP_COLORS[mention.type].fg;
|
|
67
|
-
var isTask = mention.type === 'task';
|
|
68
|
-
var isProject = mention.type === 'project';
|
|
69
|
-
var iconSize = isTask ? 16 : 14;
|
|
70
|
-
var labelEl = createEditableMentionLabelEl(isTask, mentionLabel);
|
|
71
|
-
var outerStyle = {
|
|
72
|
-
position: 'relative',
|
|
73
|
-
display: 'inline',
|
|
74
|
-
lineHeight: '20px',
|
|
75
|
-
boxSizing: 'border-box',
|
|
76
|
-
verticalAlign: 'baseline',
|
|
77
|
-
maxWidth: '100%'
|
|
78
|
-
};
|
|
79
|
-
if (isTask || isProject) {
|
|
80
|
-
return /*#__PURE__*/createElement('span', {
|
|
81
|
-
style: outerStyle
|
|
82
|
-
}, labelEl);
|
|
83
|
-
}
|
|
84
|
-
var _splitLabelFirstWord = splitLabelFirstWord(mentionLabel),
|
|
85
|
-
firstWord = _splitLabelFirstWord.firstWord,
|
|
86
|
-
rest = _splitLabelFirstWord.rest;
|
|
87
|
-
var leadingStyle = {
|
|
88
|
-
display: 'inline-flex',
|
|
89
|
-
alignItems: 'center',
|
|
90
|
-
whiteSpace: 'nowrap',
|
|
91
|
-
maxWidth: '100%'
|
|
92
|
-
};
|
|
93
|
-
var leadingWordStyle = _objectSpread(_objectSpread({}, EDITABLE_NON_TASK_LABEL_STYLE), {}, {
|
|
94
|
-
display: 'inline',
|
|
95
|
-
whiteSpace: 'nowrap'
|
|
96
|
-
});
|
|
97
|
-
var restStyle = _objectSpread(_objectSpread({}, EDITABLE_NON_TASK_LABEL_STYLE), {}, {
|
|
98
|
-
display: 'inline'
|
|
99
|
-
});
|
|
100
|
-
return /*#__PURE__*/createElement('span', {
|
|
101
|
-
style: outerStyle
|
|
102
|
-
}, /*#__PURE__*/createElement('span', {
|
|
103
|
-
style: leadingStyle
|
|
104
|
-
}, /*#__PURE__*/createElement('span', {
|
|
105
|
-
style: {
|
|
106
|
-
display: 'inline-block',
|
|
107
|
-
verticalAlign: 'middle',
|
|
108
|
-
marginRight: '2px',
|
|
109
|
-
lineHeight: '1',
|
|
110
|
-
width: '14px'
|
|
111
|
-
}
|
|
112
|
-
}, getContextMentionIcon(mention.type, iconColor, mention.id, iconSize)), /*#__PURE__*/createElement('span', {
|
|
113
|
-
style: leadingWordStyle
|
|
114
|
-
}, firstWord)), rest ? /*#__PURE__*/createElement('span', {
|
|
115
|
-
style: restStyle
|
|
116
|
-
}, rest) : null);
|
|
117
|
-
};
|
|
118
|
-
var initialsFromName = function initialsFromName(name) {
|
|
119
|
-
var _parts$2;
|
|
120
|
-
var trimmed = name.trim();
|
|
121
|
-
if (!trimmed) return '?';
|
|
122
|
-
var parts = trimmed.split(/\s+/).filter(Boolean);
|
|
123
|
-
if (parts.length >= 2) {
|
|
124
|
-
var _parts$0$charAt, _parts$, _parts$charAt, _parts;
|
|
125
|
-
var first = (_parts$0$charAt = (_parts$ = parts[0]) === null || _parts$ === void 0 ? void 0 : _parts$.charAt(0)) !== null && _parts$0$charAt !== void 0 ? _parts$0$charAt : '';
|
|
126
|
-
var last = (_parts$charAt = (_parts = parts[parts.length - 1]) === null || _parts === void 0 ? void 0 : _parts.charAt(0)) !== null && _parts$charAt !== void 0 ? _parts$charAt : '';
|
|
127
|
-
return "".concat(first).concat(last).toUpperCase();
|
|
128
|
-
}
|
|
129
|
-
var single = (_parts$2 = parts[0]) !== null && _parts$2 !== void 0 ? _parts$2 : '';
|
|
130
|
-
return single.length >= 2 ? single.slice(0, 2).toUpperCase() : (single.charAt(0) || '?').toUpperCase();
|
|
131
|
-
};
|
|
132
|
-
var TOOLTIP_FONT = "var(--cor-typography-font-family, 'Work Sans')";
|
|
133
|
-
var TOOLTIP_SECONDARY_COLOR = 'var(--Text-Secondary-Dark, #666)';
|
|
134
|
-
var TOOLTIP_SECONDARY_STYLE = {
|
|
135
|
-
fontFamily: TOOLTIP_FONT,
|
|
136
|
-
fontSize: '14px',
|
|
137
|
-
fontWeight: '400',
|
|
138
|
-
lineHeight: '20px',
|
|
139
|
-
color: TOOLTIP_SECONDARY_COLOR
|
|
140
|
-
};
|
|
141
|
-
var normalizeTrimmedString = function normalizeTrimmedString(value) {
|
|
142
|
-
if (typeof value !== 'string') return '';
|
|
143
|
-
return value.trim();
|
|
144
|
-
};
|
|
145
|
-
|
|
146
|
-
/** Ancho mínimo del tooltip (incl. padding horizontal 8+8). */
|
|
147
|
-
var USER_TOOLTIP_MIN_WIDTH_PX = 292;
|
|
148
|
-
/** Padding horizontal total del tooltip. */
|
|
149
|
-
var USER_TOOLTIP_PAD_X_PX = 16;
|
|
150
|
-
/** Avatar 24px + gap 8px respecto a la columna de texto. */
|
|
151
|
-
var USER_TOOLTIP_AVATAR_GAP_PX = 32;
|
|
152
|
-
/**
|
|
153
|
-
* Ancho máximo de la fila nombre | posición: mismo hueco que con tooltip fijo 292px,
|
|
154
|
-
* para que solo el email ensanche el contenedor.
|
|
155
|
-
*/
|
|
156
|
-
var USER_TOOLTIP_NAME_ROW_MAX_PX = USER_TOOLTIP_MIN_WIDTH_PX - USER_TOOLTIP_PAD_X_PX - USER_TOOLTIP_AVATAR_GAP_PX;
|
|
157
|
-
/**
|
|
158
|
-
* Tope de ancho del nombre en la fila: por debajo del máximo de fila para que el ellipsis
|
|
159
|
-
* del nombre aparezca antes y quede más espacio visible para posición/cargo.
|
|
160
|
-
*/
|
|
161
|
-
var USER_TOOLTIP_NAME_MAX_WIDTH_PX = Math.floor(USER_TOOLTIP_NAME_ROW_MAX_PX * 0.42);
|
|
162
|
-
var createUserTooltipEl = function createUserTooltipEl(mention) {
|
|
163
|
-
var label = mention.label,
|
|
164
|
-
metadata = mention.metadata;
|
|
165
|
-
var picture = typeof (metadata === null || metadata === void 0 ? void 0 : metadata.picture) === 'string' ? metadata.picture : null;
|
|
166
|
-
var positionName = normalizeTrimmedString(metadata === null || metadata === void 0 ? void 0 : metadata.positionName);
|
|
167
|
-
var positionLine = positionName || i18n.t('contextMention.userNoPosition', {
|
|
168
|
-
defaultValue: 'Sin posición'
|
|
169
|
-
});
|
|
170
|
-
var email = normalizeTrimmedString(metadata === null || metadata === void 0 ? void 0 : metadata.email);
|
|
171
|
-
/** Misma fuente que `ContextMentionItem` (avatar): nombre de query, no el label del chip (ej. "Yo"). */
|
|
172
|
-
var metadataName = normalizeTrimmedString(metadata === null || metadata === void 0 ? void 0 : metadata.name);
|
|
173
|
-
var nameForInitials = (metadataName || normalizeTrimmedString(label) || '?').trim();
|
|
174
|
-
var tooltip = document.createElement('div');
|
|
175
|
-
Object.assign(tooltip.style, {
|
|
176
|
-
position: 'fixed',
|
|
177
|
-
zIndex: '9999',
|
|
178
|
-
minWidth: "".concat(USER_TOOLTIP_MIN_WIDTH_PX, "px"),
|
|
179
|
-
width: 'max-content',
|
|
180
|
-
maxWidth: 'min(560px, calc(100vw - 24px))',
|
|
181
|
-
padding: '12px 8px',
|
|
182
|
-
display: 'flex',
|
|
183
|
-
flexDirection: 'column',
|
|
184
|
-
alignItems: 'flex-start',
|
|
185
|
-
borderRadius: '4px',
|
|
186
|
-
border: '1px solid var(--Color-Light-Gray, #E0E0E0)',
|
|
187
|
-
background: '#FFF',
|
|
188
|
-
boxShadow: '0 1px 4px 0 rgba(0,0,0,0.08), 0 1px 4px 0 rgba(0,0,0,0.04)',
|
|
189
|
-
boxSizing: 'border-box',
|
|
190
|
-
pointerEvents: 'none',
|
|
191
|
-
overflow: 'hidden'
|
|
192
|
-
});
|
|
193
|
-
var row = document.createElement('div');
|
|
194
|
-
Object.assign(row.style, {
|
|
195
|
-
display: 'flex',
|
|
196
|
-
alignItems: 'center',
|
|
197
|
-
gap: '8px',
|
|
198
|
-
width: 'max-content',
|
|
199
|
-
maxWidth: '100%',
|
|
200
|
-
minWidth: '0'
|
|
201
|
-
});
|
|
202
|
-
|
|
203
|
-
// Avatar circular (foto o iniciales)
|
|
204
|
-
var avatarWrap = document.createElement('div');
|
|
205
|
-
Object.assign(avatarWrap.style, {
|
|
206
|
-
width: '24px',
|
|
207
|
-
height: '24px',
|
|
208
|
-
minWidth: '24px',
|
|
209
|
-
borderRadius: '24px',
|
|
210
|
-
overflow: 'hidden',
|
|
211
|
-
display: 'flex',
|
|
212
|
-
alignItems: 'center',
|
|
213
|
-
justifyContent: 'center',
|
|
214
|
-
/** Mismo fondo que `SCMUserAvatarFallback` en la fila de usuario del modal. */
|
|
215
|
-
background: 'var(--cor-color-grey-200, #e0e0e0)',
|
|
216
|
-
flexShrink: '0'
|
|
217
|
-
});
|
|
218
|
-
var initials = initialsFromName(nameForInitials);
|
|
219
|
-
var createInitialsFallback = function createInitialsFallback() {
|
|
220
|
-
var fb = document.createElement('span');
|
|
221
|
-
fb.textContent = initials;
|
|
222
|
-
Object.assign(fb.style, {
|
|
223
|
-
fontSize: '10px',
|
|
224
|
-
fontWeight: '600',
|
|
225
|
-
/** Mismo color que `SCMUserAvatarFallback` en la fila de usuario del modal. */
|
|
226
|
-
color: 'var(--cor-color-text-secondary, #666)',
|
|
227
|
-
lineHeight: '1',
|
|
228
|
-
fontFamily: TOOLTIP_FONT
|
|
229
|
-
});
|
|
230
|
-
return fb;
|
|
231
|
-
};
|
|
232
|
-
if (picture) {
|
|
233
|
-
var img = document.createElement('img');
|
|
234
|
-
img.src = picture;
|
|
235
|
-
img.alt = '';
|
|
236
|
-
img.draggable = false;
|
|
237
|
-
Object.assign(img.style, {
|
|
238
|
-
width: '24px',
|
|
239
|
-
height: '24px',
|
|
240
|
-
objectFit: 'cover',
|
|
241
|
-
display: 'block',
|
|
242
|
-
borderRadius: '24px'
|
|
243
|
-
});
|
|
244
|
-
img.onerror = function () {
|
|
245
|
-
img.remove();
|
|
246
|
-
avatarWrap.appendChild(createInitialsFallback());
|
|
247
|
-
};
|
|
248
|
-
avatarWrap.appendChild(img);
|
|
249
|
-
} else {
|
|
250
|
-
avatarWrap.appendChild(createInitialsFallback());
|
|
251
|
-
}
|
|
252
|
-
|
|
253
|
-
// Columna de info: ancho = max(fila nombre, email); sin forzar 244px si el contenido es más corto.
|
|
254
|
-
var infoCol = document.createElement('div');
|
|
255
|
-
Object.assign(infoCol.style, {
|
|
256
|
-
display: 'flex',
|
|
257
|
-
flexDirection: 'column',
|
|
258
|
-
justifyContent: 'center',
|
|
259
|
-
alignItems: 'flex-start',
|
|
260
|
-
gap: '2px',
|
|
261
|
-
minWidth: '0',
|
|
262
|
-
width: 'max-content',
|
|
263
|
-
maxWidth: '100%'
|
|
264
|
-
});
|
|
265
|
-
|
|
266
|
-
// Fila: nombre | posición — max-content para no dejar hueco entre nombre corto y el pipe (evitar flex 50/50).
|
|
267
|
-
var nameRow = document.createElement('div');
|
|
268
|
-
Object.assign(nameRow.style, {
|
|
269
|
-
display: 'flex',
|
|
270
|
-
alignItems: 'flex-start',
|
|
271
|
-
gap: '4px',
|
|
272
|
-
minWidth: '0',
|
|
273
|
-
width: 'max-content',
|
|
274
|
-
maxWidth: "".concat(USER_TOOLTIP_NAME_ROW_MAX_PX, "px")
|
|
275
|
-
});
|
|
276
|
-
var nameSpan = document.createElement('span');
|
|
277
|
-
nameSpan.textContent = label;
|
|
278
|
-
Object.assign(nameSpan.style, {
|
|
279
|
-
flex: '0 1 auto',
|
|
280
|
-
minWidth: '0',
|
|
281
|
-
maxWidth: "".concat(USER_TOOLTIP_NAME_MAX_WIDTH_PX, "px"),
|
|
282
|
-
overflow: 'hidden',
|
|
283
|
-
textOverflow: 'ellipsis',
|
|
284
|
-
whiteSpace: 'nowrap',
|
|
285
|
-
color: 'var(--Text-Primary-Dark, #20201F)',
|
|
286
|
-
fontFamily: TOOLTIP_FONT,
|
|
287
|
-
fontSize: '14px',
|
|
288
|
-
fontWeight: '500',
|
|
289
|
-
lineHeight: '130%'
|
|
290
|
-
});
|
|
291
|
-
nameRow.appendChild(nameSpan);
|
|
292
|
-
var sep = document.createElement('span');
|
|
293
|
-
sep.textContent = '|';
|
|
294
|
-
Object.assign(sep.style, _objectSpread(_objectSpread({}, TOOLTIP_SECONDARY_STYLE), {}, {
|
|
295
|
-
flexShrink: '0'
|
|
296
|
-
}));
|
|
297
|
-
nameRow.appendChild(sep);
|
|
298
|
-
var posSpan = document.createElement('span');
|
|
299
|
-
posSpan.textContent = positionLine;
|
|
300
|
-
Object.assign(posSpan.style, _objectSpread(_objectSpread({}, TOOLTIP_SECONDARY_STYLE), {}, {
|
|
301
|
-
flex: '0 1 auto',
|
|
302
|
-
minWidth: '0',
|
|
303
|
-
overflow: 'hidden',
|
|
304
|
-
textOverflow: 'ellipsis',
|
|
305
|
-
whiteSpace: 'nowrap'
|
|
306
|
-
}));
|
|
307
|
-
nameRow.appendChild(posSpan);
|
|
308
|
-
infoCol.appendChild(nameRow);
|
|
309
|
-
if (email) {
|
|
310
|
-
var emailSpan = document.createElement('span');
|
|
311
|
-
emailSpan.textContent = email;
|
|
312
|
-
Object.assign(emailSpan.style, _objectSpread(_objectSpread({}, TOOLTIP_SECONDARY_STYLE), {}, {
|
|
313
|
-
whiteSpace: 'nowrap',
|
|
314
|
-
maxWidth: '100%',
|
|
315
|
-
overflow: 'hidden',
|
|
316
|
-
textOverflow: 'ellipsis'
|
|
317
|
-
}));
|
|
318
|
-
infoCol.appendChild(emailSpan);
|
|
319
|
-
}
|
|
320
|
-
row.appendChild(avatarWrap);
|
|
321
|
-
row.appendChild(infoCol);
|
|
322
|
-
tooltip.appendChild(row);
|
|
323
|
-
return tooltip;
|
|
324
|
-
};
|
|
325
|
-
|
|
326
|
-
/**
|
|
327
|
-
* Crea un `<span>` atómico listo para insertarse dentro del contenteditable
|
|
328
|
-
* del `ContextMentionEditor`. Se marca con los `data-mention*` necesarios para
|
|
329
|
-
* que `useContextMentions.serialize()` pueda volver a extraer la mention.
|
|
330
|
-
*
|
|
331
|
-
* Comparte los estilos con el componente `ContextMentionChip` via
|
|
332
|
-
* `applyMentionChipStyles`, asegurando una única fuente de verdad visual.
|
|
333
|
-
*/
|
|
334
|
-
export var buildChipElement = function buildChipElement(mention) {
|
|
335
|
-
var chip = document.createElement('span');
|
|
336
|
-
chip.setAttribute('contenteditable', 'false');
|
|
337
|
-
chip.setAttribute('data-mention-chip', 'true');
|
|
338
|
-
chip.className = CONTEXT_MENTION_CHIP_CLASS;
|
|
339
|
-
chip.setAttribute('data-mention-type', mention.type);
|
|
340
|
-
chip.setAttribute('data-mention-surface', 'editor');
|
|
341
|
-
applyMentionChipStyles(chip, mention.type);
|
|
342
|
-
var isTask = mention.type === 'task';
|
|
343
|
-
var common = {
|
|
344
|
-
boxSizing: 'border-box',
|
|
345
|
-
verticalAlign: 'baseline',
|
|
346
|
-
overflow: 'visible',
|
|
347
|
-
maxWidth: '100%'
|
|
348
|
-
};
|
|
349
|
-
if (isTask) {
|
|
350
|
-
Object.assign(chip.style, common, {
|
|
351
|
-
lineHeight: '20px',
|
|
352
|
-
height: 'auto',
|
|
353
|
-
minHeight: 'auto',
|
|
354
|
-
maxHeight: 'none'
|
|
355
|
-
});
|
|
356
|
-
} else {
|
|
357
|
-
Object.assign(chip.style, common, {
|
|
358
|
-
lineHeight: '20px',
|
|
359
|
-
height: 'auto',
|
|
360
|
-
minHeight: 'auto',
|
|
361
|
-
maxHeight: 'none'
|
|
362
|
-
});
|
|
363
|
-
}
|
|
364
|
-
var mountNode = document.createElement('span');
|
|
365
|
-
mountNode.style.display = 'inline';
|
|
366
|
-
mountNode.style.maxWidth = '100%';
|
|
367
|
-
mountNode.style.verticalAlign = 'baseline';
|
|
368
|
-
mountNode.style.boxSizing = 'border-box';
|
|
369
|
-
chip.appendChild(mountNode);
|
|
370
|
-
var root = createRoot(mountNode);
|
|
371
|
-
flushSync(function () {
|
|
372
|
-
root.render(/*#__PURE__*/createElement(EditableMentionChip, {
|
|
373
|
-
mention: mention
|
|
374
|
-
}));
|
|
375
|
-
});
|
|
376
|
-
if (mention.type === 'task') {
|
|
377
|
-
chip.style.cursor = 'pointer';
|
|
378
|
-
chip.onclick = function (e) {
|
|
379
|
-
e.preventDefault();
|
|
380
|
-
e.stopPropagation();
|
|
381
|
-
openTaskInCorPanel(mention.id, 'detail');
|
|
382
|
-
};
|
|
383
|
-
} else if (mention.type === 'project') {
|
|
384
|
-
chip.style.cursor = 'pointer';
|
|
385
|
-
chip.onclick = function (e) {
|
|
386
|
-
e.preventDefault();
|
|
387
|
-
e.stopPropagation();
|
|
388
|
-
window.open("/project/".concat(mention.id, "/dashboard"), '_blank');
|
|
389
|
-
};
|
|
390
|
-
} else if (mention.type === 'user') {
|
|
391
|
-
var tooltipEl = null;
|
|
392
|
-
var chipRemovedObserver = null;
|
|
393
|
-
var removeUserTooltip = function removeUserTooltip() {
|
|
394
|
-
var _chipRemovedObserver;
|
|
395
|
-
(_chipRemovedObserver = chipRemovedObserver) === null || _chipRemovedObserver === void 0 || _chipRemovedObserver.disconnect();
|
|
396
|
-
chipRemovedObserver = null;
|
|
397
|
-
if (tooltipEl) {
|
|
398
|
-
tooltipEl.remove();
|
|
399
|
-
tooltipEl = null;
|
|
400
|
-
}
|
|
401
|
-
};
|
|
402
|
-
|
|
403
|
-
/** Si el chip se borra del editor (Backspace, etc.) no siempre hay `mouseleave`; cerrar el tooltip. */
|
|
404
|
-
var watchChipRemovedFromDom = function watchChipRemovedFromDom() {
|
|
405
|
-
var _chipRemovedObserver2;
|
|
406
|
-
var parent = chip.parentNode;
|
|
407
|
-
if (!parent) return;
|
|
408
|
-
(_chipRemovedObserver2 = chipRemovedObserver) === null || _chipRemovedObserver2 === void 0 || _chipRemovedObserver2.disconnect();
|
|
409
|
-
chipRemovedObserver = new MutationObserver(function () {
|
|
410
|
-
if (!chip.isConnected) removeUserTooltip();
|
|
411
|
-
});
|
|
412
|
-
chipRemovedObserver.observe(parent, {
|
|
413
|
-
childList: true,
|
|
414
|
-
subtree: true
|
|
415
|
-
});
|
|
416
|
-
};
|
|
417
|
-
chip.addEventListener('mouseenter', function () {
|
|
418
|
-
if (tooltipEl) return;
|
|
419
|
-
tooltipEl = createUserTooltipEl(mention);
|
|
420
|
-
var rect = chip.getBoundingClientRect();
|
|
421
|
-
var left = Math.max(8, Math.min(window.innerWidth - 300, rect.left));
|
|
422
|
-
tooltipEl.style.top = "".concat(rect.top, "px");
|
|
423
|
-
tooltipEl.style.left = "".concat(left, "px");
|
|
424
|
-
tooltipEl.style.transform = 'translateY(calc(-100% - 4px))';
|
|
425
|
-
document.body.appendChild(tooltipEl);
|
|
426
|
-
watchChipRemovedFromDom();
|
|
427
|
-
});
|
|
428
|
-
chip.addEventListener('mouseleave', removeUserTooltip);
|
|
429
|
-
}
|
|
430
|
-
return chip;
|
|
431
|
-
};
|
|
432
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJjcmVhdGVFbGVtZW50IiwiZmx1c2hTeW5jIiwiY3JlYXRlUm9vdCIsImkxOG4iLCJDT05URVhUX01FTlRJT05fQ0hJUF9DTEFTUyIsImdldENvbnRleHRNZW50aW9uSWNvbiIsIm5vcm1hbGl6ZUNvbnRleHRNZW50aW9uTGFiZWwiLCJvcGVuVGFza0luQ29yUGFuZWwiLCJhcHBseU1lbnRpb25DaGlwU3R5bGVzIiwiTUVOVElPTl9DSElQX0NPTE9SUyIsIkVESVRBQkxFX05PTl9UQVNLX0xBQkVMX1NUWUxFIiwiZGlzcGxheSIsImxpbmVIZWlnaHQiLCJhbGlnblNlbGYiLCJtaW5XaWR0aCIsIm1heFdpZHRoIiwid2hpdGVTcGFjZSIsIm92ZXJmbG93V3JhcCIsIndvcmRCcmVhayIsIkVESVRBQkxFX1RBU0tfTEFCRUxfU1RZTEUiLCJmb250U2l6ZSIsImZvbnRXZWlnaHQiLCJjb2xvciIsImNyZWF0ZUVkaXRhYmxlTWVudGlvbkxhYmVsRWwiLCJpc1Rhc2siLCJtZW50aW9uTGFiZWwiLCJzdHlsZSIsInNwbGl0TGFiZWxGaXJzdFdvcmQiLCJsYWJlbCIsIm5vcm1hbGl6ZWQiLCJ0cmltIiwiZmlyc3RXb3JkIiwicmVzdCIsImZpcnN0V2hpdGVzcGFjZUlkeCIsInNlYXJjaCIsInNsaWNlIiwiRWRpdGFibGVNZW50aW9uQ2hpcCIsIl9yZWYiLCJtZW50aW9uIiwiaWNvbkNvbG9yIiwidHlwZSIsImZnIiwiaXNQcm9qZWN0IiwiaWNvblNpemUiLCJsYWJlbEVsIiwib3V0ZXJTdHlsZSIsInBvc2l0aW9uIiwiYm94U2l6aW5nIiwidmVydGljYWxBbGlnbiIsIl9zcGxpdExhYmVsRmlyc3RXb3JkIiwibGVhZGluZ1N0eWxlIiwiYWxpZ25JdGVtcyIsImxlYWRpbmdXb3JkU3R5bGUiLCJfb2JqZWN0U3ByZWFkIiwicmVzdFN0eWxlIiwibWFyZ2luUmlnaHQiLCJ3aWR0aCIsImlkIiwiaW5pdGlhbHNGcm9tTmFtZSIsIm5hbWUiLCJfcGFydHMkMiIsInRyaW1tZWQiLCJwYXJ0cyIsInNwbGl0IiwiZmlsdGVyIiwiQm9vbGVhbiIsImxlbmd0aCIsIl9wYXJ0cyQwJGNoYXJBdCIsIl9wYXJ0cyQiLCJfcGFydHMkY2hhckF0IiwiX3BhcnRzIiwiZmlyc3QiLCJjaGFyQXQiLCJsYXN0IiwiY29uY2F0IiwidG9VcHBlckNhc2UiLCJzaW5nbGUiLCJUT09MVElQX0ZPTlQiLCJUT09MVElQX1NFQ09OREFSWV9DT0xPUiIsIlRPT0xUSVBfU0VDT05EQVJZX1NUWUxFIiwiZm9udEZhbWlseSIsIm5vcm1hbGl6ZVRyaW1tZWRTdHJpbmciLCJ2YWx1ZSIsIlVTRVJfVE9PTFRJUF9NSU5fV0lEVEhfUFgiLCJVU0VSX1RPT0xUSVBfUEFEX1hfUFgiLCJVU0VSX1RPT0xUSVBfQVZBVEFSX0dBUF9QWCIsIlVTRVJfVE9PTFRJUF9OQU1FX1JPV19NQVhfUFgiLCJVU0VSX1RPT0xUSVBfTkFNRV9NQVhfV0lEVEhfUFgiLCJNYXRoIiwiZmxvb3IiLCJjcmVhdGVVc2VyVG9vbHRpcEVsIiwibWV0YWRhdGEiLCJwaWN0dXJlIiwicG9zaXRpb25OYW1lIiwicG9zaXRpb25MaW5lIiwidCIsImRlZmF1bHRWYWx1ZSIsImVtYWlsIiwibWV0YWRhdGFOYW1lIiwibmFtZUZvckluaXRpYWxzIiwidG9vbHRpcCIsImRvY3VtZW50IiwiT2JqZWN0IiwiYXNzaWduIiwiekluZGV4IiwicGFkZGluZyIsImZsZXhEaXJlY3Rpb24iLCJib3JkZXJSYWRpdXMiLCJib3JkZXIiLCJiYWNrZ3JvdW5kIiwiYm94U2hhZG93IiwicG9pbnRlckV2ZW50cyIsIm92ZXJmbG93Iiwicm93IiwiZ2FwIiwiYXZhdGFyV3JhcCIsImhlaWdodCIsImp1c3RpZnlDb250ZW50IiwiZmxleFNocmluayIsImluaXRpYWxzIiwiY3JlYXRlSW5pdGlhbHNGYWxsYmFjayIsImZiIiwidGV4dENvbnRlbnQiLCJpbWciLCJzcmMiLCJhbHQiLCJkcmFnZ2FibGUiLCJvYmplY3RGaXQiLCJvbmVycm9yIiwicmVtb3ZlIiwiYXBwZW5kQ2hpbGQiLCJpbmZvQ29sIiwibmFtZVJvdyIsIm5hbWVTcGFuIiwiZmxleCIsInRleHRPdmVyZmxvdyIsInNlcCIsInBvc1NwYW4iLCJlbWFpbFNwYW4iLCJidWlsZENoaXBFbGVtZW50IiwiY2hpcCIsInNldEF0dHJpYnV0ZSIsImNsYXNzTmFtZSIsImNvbW1vbiIsIm1pbkhlaWdodCIsIm1heEhlaWdodCIsIm1vdW50Tm9kZSIsInJvb3QiLCJyZW5kZXIiLCJjdXJzb3IiLCJvbmNsaWNrIiwiZSIsInByZXZlbnREZWZhdWx0Iiwic3RvcFByb3BhZ2F0aW9uIiwid2luZG93Iiwib3BlbiIsInRvb2x0aXBFbCIsImNoaXBSZW1vdmVkT2JzZXJ2ZXIiLCJyZW1vdmVVc2VyVG9vbHRpcCIsIl9jaGlwUmVtb3ZlZE9ic2VydmVyIiwiZGlzY29ubmVjdCIsIndhdGNoQ2hpcFJlbW92ZWRGcm9tRG9tIiwiX2NoaXBSZW1vdmVkT2JzZXJ2ZXIyIiwicGFyZW50IiwicGFyZW50Tm9kZSIsIk11dGF0aW9uT2JzZXJ2ZXIiLCJpc0Nvbm5lY3RlZCIsIm9ic2VydmUiLCJjaGlsZExpc3QiLCJzdWJ0cmVlIiwiYWRkRXZlbnRMaXN0ZW5lciIsInJlY3QiLCJnZXRCb3VuZGluZ0NsaWVudFJlY3QiLCJsZWZ0IiwibWF4IiwibWluIiwiaW5uZXJXaWR0aCIsInRvcCIsInRyYW5zZm9ybSIsImJvZHkiXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50cy9hdG9tcy9Db250ZXh0TWVudGlvbkNoaXAvYnVpbGRDaGlwRWxlbWVudC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjcmVhdGVFbGVtZW50LCB0eXBlIENTU1Byb3BlcnRpZXMgfSBmcm9tICdyZWFjdCdcbmltcG9ydCB7IGZsdXNoU3luYyB9IGZyb20gJ3JlYWN0LWRvbSdcbmltcG9ydCB7IGNyZWF0ZVJvb3QgfSBmcm9tICdyZWFjdC1kb20vY2xpZW50J1xuaW1wb3J0IGkxOG4gZnJvbSAnLi4vLi4vLi4vbGFuZydcbmltcG9ydCB7IENPTlRFWFRfTUVOVElPTl9DSElQX0NMQVNTLCBDb250ZXh0TWVudGlvbiB9IGZyb20gJy4uLy4uLy4uL3R5cGVzL2NvbnRleHRNZW50aW9uJ1xuaW1wb3J0IHsgZ2V0Q29udGV4dE1lbnRpb25JY29uIH0gZnJvbSAnLi4vLi4vLi4vdXRpbHMvY29udGV4dE1lbnRpb25JY29ucydcbmltcG9ydCB7IG5vcm1hbGl6ZUNvbnRleHRNZW50aW9uTGFiZWwgfSBmcm9tICcuLi8uLi8uLi91dGlscy9jb250ZXh0TWVudGlvbkxhYmVsJ1xuaW1wb3J0IHsgb3BlblRhc2tJbkNvclBhbmVsIH0gZnJvbSAnLi4vLi4vLi4vdXRpbHMvb3BlblRhc2tJbkNvclBhbmVsJ1xuaW1wb3J0IHsgYXBwbHlNZW50aW9uQ2hpcFN0eWxlcywgTUVOVElPTl9DSElQX0NPTE9SUyB9IGZyb20gJy4vQ29udGV4dE1lbnRpb25DaGlwLnN0eWxlcydcblxuY29uc3QgRURJVEFCTEVfTk9OX1RBU0tfTEFCRUxfU1RZTEU6IENTU1Byb3BlcnRpZXMgPSB7XG4gIGRpc3BsYXk6ICdpbmxpbmUnLFxuICBsaW5lSGVpZ2h0OiAnMjBweCcsXG4gIGFsaWduU2VsZjogJ2Jhc2VsaW5lJyxcbiAgbWluV2lkdGg6IDAsXG4gIG1heFdpZHRoOiAnMTAwJScsXG4gIHdoaXRlU3BhY2U6ICdub3JtYWwnLFxuICBvdmVyZmxvd1dyYXA6ICdicmVhay13b3JkJyxcbiAgd29yZEJyZWFrOiAnYnJlYWstd29yZCcsXG59XG5cbi8qKiBUZXh0byBkZSB0YXJlYTogc2luIGJvcmRlIGluZmVyaW9yOyBlbCBhc3BlY3RvIGRlIGVubGFjZSBsbyBkYSBlbCBDU1MgZ2xvYmFsICg6OmJlZm9yZSArIGNvbG9yKS4gKi9cbmNvbnN0IEVESVRBQkxFX1RBU0tfTEFCRUxfU1RZTEU6IENTU1Byb3BlcnRpZXMgPSB7XG4gIGRpc3BsYXk6ICdpbmxpbmUnLFxuICBmb250U2l6ZTogJzE0cHgnLFxuICBsaW5lSGVpZ2h0OiAnMjBweCcsXG4gIGZvbnRXZWlnaHQ6ICc2MDAnLFxuICBjb2xvcjogJ2luaGVyaXQnLFxuICBtaW5XaWR0aDogMCxcbiAgbWF4V2lkdGg6ICcxMDAlJyxcbiAgd2hpdGVTcGFjZTogJ25vcm1hbCcsXG4gIG92ZXJmbG93V3JhcDogJ2JyZWFrLXdvcmQnLFxuICB3b3JkQnJlYWs6ICdicmVhay13b3JkJyxcbn1cblxuY29uc3QgY3JlYXRlRWRpdGFibGVNZW50aW9uTGFiZWxFbCA9IChpc1Rhc2s6IGJvb2xlYW4sIG1lbnRpb25MYWJlbDogc3RyaW5nKSA9PiB7XG4gIGlmICghaXNUYXNrKSB7XG4gICAgcmV0dXJuIGNyZWF0ZUVsZW1lbnQoJ3NwYW4nLCB7IHN0eWxlOiBFRElUQUJMRV9OT05fVEFTS19MQUJFTF9TVFlMRSB9LCBtZW50aW9uTGFiZWwpXG4gIH1cbiAgcmV0dXJuIGNyZWF0ZUVsZW1lbnQoJ3NwYW4nLCB7IHN0eWxlOiBFRElUQUJMRV9UQVNLX0xBQkVMX1NUWUxFIH0sIG1lbnRpb25MYWJlbClcbn1cblxuY29uc3Qgc3BsaXRMYWJlbEZpcnN0V29yZCA9IChsYWJlbDogc3RyaW5nKTogeyBmaXJzdFdvcmQ6IHN0cmluZzsgcmVzdDogc3RyaW5nIH0gPT4ge1xuICBjb25zdCBub3JtYWxpemVkID0gbGFiZWwudHJpbSgpXG4gIGlmICghbm9ybWFsaXplZCkgcmV0dXJuIHsgZmlyc3RXb3JkOiAnJywgcmVzdDogJycgfVxuICBjb25zdCBmaXJzdFdoaXRlc3BhY2VJZHggPSBub3JtYWxpemVkLnNlYXJjaCgvXFxzLylcbiAgaWYgKGZpcnN0V2hpdGVzcGFjZUlkeCA8IDApIHJldHVybiB7IGZpcnN0V29yZDogbm9ybWFsaXplZCwgcmVzdDogJycgfVxuICByZXR1cm4ge1xuICAgIGZpcnN0V29yZDogbm9ybWFsaXplZC5zbGljZSgwLCBmaXJzdFdoaXRlc3BhY2VJZHgpLFxuICAgIHJlc3Q6IG5vcm1hbGl6ZWQuc2xpY2UoZmlyc3RXaGl0ZXNwYWNlSWR4KSxcbiAgfVxufVxuXG50eXBlIEVkaXRhYmxlTWVudGlvbkNoaXBQcm9wcyA9IHtcbiAgbWVudGlvbjogQ29udGV4dE1lbnRpb25cbn1cblxuY29uc3QgRWRpdGFibGVNZW50aW9uQ2hpcCA9ICh7IG1lbnRpb24gfTogRWRpdGFibGVNZW50aW9uQ2hpcFByb3BzKSA9PiB7XG4gIGNvbnN0IG1lbnRpb25MYWJlbCA9IG5vcm1hbGl6ZUNvbnRleHRNZW50aW9uTGFiZWwobWVudGlvbi5sYWJlbClcbiAgY29uc3QgaWNvbkNvbG9yID0gTUVOVElPTl9DSElQX0NPTE9SU1ttZW50aW9uLnR5cGVdLmZnXG4gIGNvbnN0IGlzVGFzayA9IG1lbnRpb24udHlwZSA9PT0gJ3Rhc2snXG4gIGNvbnN0IGlzUHJvamVjdCA9IG1lbnRpb24udHlwZSA9PT0gJ3Byb2plY3QnXG4gIGNvbnN0IGljb25TaXplID0gaXNUYXNrID8gMTYgOiAxNFxuICBjb25zdCBsYWJlbEVsID0gY3JlYXRlRWRpdGFibGVNZW50aW9uTGFiZWxFbChpc1Rhc2ssIG1lbnRpb25MYWJlbClcblxuICBjb25zdCBvdXRlclN0eWxlOiBDU1NQcm9wZXJ0aWVzID0ge1xuICAgIHBvc2l0aW9uOiAncmVsYXRpdmUnLFxuICAgIGRpc3BsYXk6ICdpbmxpbmUnLFxuICAgIGxpbmVIZWlnaHQ6ICcyMHB4JyxcbiAgICBib3hTaXppbmc6ICdib3JkZXItYm94JyxcbiAgICB2ZXJ0aWNhbEFsaWduOiAnYmFzZWxpbmUnLFxuICAgIG1heFdpZHRoOiAnMTAwJScsXG4gIH1cblxuICBpZiAoaXNUYXNrIHx8IGlzUHJvamVjdCkge1xuICAgIHJldHVybiBjcmVhdGVFbGVtZW50KCdzcGFuJywgeyBzdHlsZTogb3V0ZXJTdHlsZSB9LCBsYWJlbEVsKVxuICB9XG5cbiAgY29uc3QgeyBmaXJzdFdvcmQsIHJlc3QgfSA9IHNwbGl0TGFiZWxGaXJzdFdvcmQobWVudGlvbkxhYmVsKVxuICBjb25zdCBsZWFkaW5nU3R5bGU6IENTU1Byb3BlcnRpZXMgPSB7XG4gICAgZGlzcGxheTogJ2lubGluZS1mbGV4JyxcbiAgICBhbGlnbkl0ZW1zOiAnY2VudGVyJyxcbiAgICB3aGl0ZVNwYWNlOiAnbm93cmFwJyxcbiAgICBtYXhXaWR0aDogJzEwMCUnLFxuICB9XG4gIGNvbnN0IGxlYWRpbmdXb3JkU3R5bGU6IENTU1Byb3BlcnRpZXMgPSB7XG4gICAgLi4uRURJVEFCTEVfTk9OX1RBU0tfTEFCRUxfU1RZTEUsXG4gICAgZGlzcGxheTogJ2lubGluZScsXG4gICAgd2hpdGVTcGFjZTogJ25vd3JhcCcsXG4gIH1cbiAgY29uc3QgcmVzdFN0eWxlOiBDU1NQcm9wZXJ0aWVzID0ge1xuICAgIC4uLkVESVRBQkxFX05PTl9UQVNLX0xBQkVMX1NUWUxFLFxuICAgIGRpc3BsYXk6ICdpbmxpbmUnLFxuICB9XG5cbiAgcmV0dXJuIGNyZWF0ZUVsZW1lbnQoXG4gICAgJ3NwYW4nLFxuICAgIHsgc3R5bGU6IG91dGVyU3R5bGUgfSxcbiAgICBjcmVhdGVFbGVtZW50KFxuICAgICAgJ3NwYW4nLFxuICAgICAgeyBzdHlsZTogbGVhZGluZ1N0eWxlIH0sXG4gICAgICBjcmVhdGVFbGVtZW50KFxuICAgICAgICAnc3BhbicsXG4gICAgICAgIHtcbiAgICAgICAgICBzdHlsZToge1xuICAgICAgICAgICAgZGlzcGxheTogJ2lubGluZS1ibG9jaycsXG4gICAgICAgICAgICB2ZXJ0aWNhbEFsaWduOiAnbWlkZGxlJyxcbiAgICAgICAgICAgIG1hcmdpblJpZ2h0OiAnMnB4JyxcbiAgICAgICAgICAgIGxpbmVIZWlnaHQ6ICcxJyxcbiAgICAgICAgICAgIHdpZHRoOiAnMTRweCcsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgICAgZ2V0Q29udGV4dE1lbnRpb25JY29uKG1lbnRpb24udHlwZSwgaWNvbkNvbG9yLCBtZW50aW9uLmlkLCBpY29uU2l6ZSlcbiAgICAgICksXG4gICAgICBjcmVhdGVFbGVtZW50KCdzcGFuJywgeyBzdHlsZTogbGVhZGluZ1dvcmRTdHlsZSB9LCBmaXJzdFdvcmQpXG4gICAgKSxcbiAgICByZXN0ID8gY3JlYXRlRWxlbWVudCgnc3BhbicsIHsgc3R5bGU6IHJlc3RTdHlsZSB9LCByZXN0KSA6IG51bGxcbiAgKVxufVxuXG5jb25zdCBpbml0aWFsc0Zyb21OYW1lID0gKG5hbWU6IHN0cmluZyk6IHN0cmluZyA9PiB7XG4gIGNvbnN0IHRyaW1tZWQgPSBuYW1lLnRyaW0oKVxuICBpZiAoIXRyaW1tZWQpIHJldHVybiAnPydcbiAgY29uc3QgcGFydHMgPSB0cmltbWVkLnNwbGl0KC9cXHMrLykuZmlsdGVyKEJvb2xlYW4pXG4gIGlmIChwYXJ0cy5sZW5ndGggPj0gMikge1xuICAgIGNvbnN0IGZpcnN0ID0gcGFydHNbMF0/LmNoYXJBdCgwKSA/PyAnJ1xuICAgIGNvbnN0IGxhc3QgPSBwYXJ0c1twYXJ0cy5sZW5ndGggLSAxXT8uY2hhckF0KDApID8/ICcnXG4gICAgcmV0dXJuIGAke2ZpcnN0fSR7bGFzdH1gLnRvVXBwZXJDYXNlKClcbiAgfVxuICBjb25zdCBzaW5nbGUgPSBwYXJ0c1swXSA/PyAnJ1xuICByZXR1cm4gc2luZ2xlLmxlbmd0aCA+PSAyID8gc2luZ2xlLnNsaWNlKDAsIDIpLnRvVXBwZXJDYXNlKCkgOiAoc2luZ2xlLmNoYXJBdCgwKSB8fCAnPycpLnRvVXBwZXJDYXNlKClcbn1cblxuY29uc3QgVE9PTFRJUF9GT05UID0gYHZhcigtLWNvci10eXBvZ3JhcGh5LWZvbnQtZmFtaWx5LCAnV29yayBTYW5zJylgXG5jb25zdCBUT09MVElQX1NFQ09OREFSWV9DT0xPUiA9ICd2YXIoLS1UZXh0LVNlY29uZGFyeS1EYXJrLCAjNjY2KSdcbmNvbnN0IFRPT0xUSVBfU0VDT05EQVJZX1NUWUxFID0ge1xuICBmb250RmFtaWx5OiBUT09MVElQX0ZPTlQsXG4gIGZvbnRTaXplOiAnMTRweCcsXG4gIGZvbnRXZWlnaHQ6ICc0MDAnLFxuICBsaW5lSGVpZ2h0OiAnMjBweCcsXG4gIGNvbG9yOiBUT09MVElQX1NFQ09OREFSWV9DT0xPUixcbn1cblxuY29uc3Qgbm9ybWFsaXplVHJpbW1lZFN0cmluZyA9ICh2YWx1ZTogdW5rbm93bik6IHN0cmluZyA9PiB7XG4gIGlmICh0eXBlb2YgdmFsdWUgIT09ICdzdHJpbmcnKSByZXR1cm4gJydcbiAgcmV0dXJuIHZhbHVlLnRyaW0oKVxufVxuXG4vKiogQW5jaG8gbcOtbmltbyBkZWwgdG9vbHRpcCAoaW5jbC4gcGFkZGluZyBob3Jpem9udGFsIDgrOCkuICovXG5jb25zdCBVU0VSX1RPT0xUSVBfTUlOX1dJRFRIX1BYID0gMjkyXG4vKiogUGFkZGluZyBob3Jpem9udGFsIHRvdGFsIGRlbCB0b29sdGlwLiAqL1xuY29uc3QgVVNFUl9UT09MVElQX1BBRF9YX1BYID0gMTZcbi8qKiBBdmF0YXIgMjRweCArIGdhcCA4cHggcmVzcGVjdG8gYSBsYSBjb2x1bW5hIGRlIHRleHRvLiAqL1xuY29uc3QgVVNFUl9UT09MVElQX0FWQVRBUl9HQVBfUFggPSAzMlxuLyoqXG4gKiBBbmNobyBtw6F4aW1vIGRlIGxhIGZpbGEgbm9tYnJlIHwgcG9zaWNpw7NuOiBtaXNtbyBodWVjbyBxdWUgY29uIHRvb2x0aXAgZmlqbyAyOTJweCxcbiAqIHBhcmEgcXVlIHNvbG8gZWwgZW1haWwgZW5zYW5jaGUgZWwgY29udGVuZWRvci5cbiAqL1xuY29uc3QgVVNFUl9UT09MVElQX05BTUVfUk9XX01BWF9QWCA9IFVTRVJfVE9PTFRJUF9NSU5fV0lEVEhfUFggLSBVU0VSX1RPT0xUSVBfUEFEX1hfUFggLSBVU0VSX1RPT0xUSVBfQVZBVEFSX0dBUF9QWFxuLyoqXG4gKiBUb3BlIGRlIGFuY2hvIGRlbCBub21icmUgZW4gbGEgZmlsYTogcG9yIGRlYmFqbyBkZWwgbcOheGltbyBkZSBmaWxhIHBhcmEgcXVlIGVsIGVsbGlwc2lzXG4gKiBkZWwgbm9tYnJlIGFwYXJlemNhIGFudGVzIHkgcXVlZGUgbcOhcyBlc3BhY2lvIHZpc2libGUgcGFyYSBwb3NpY2nDs24vY2FyZ28uXG4gKi9cbmNvbnN0IFVTRVJfVE9PTFRJUF9OQU1FX01BWF9XSURUSF9QWCA9IE1hdGguZmxvb3IoVVNFUl9UT09MVElQX05BTUVfUk9XX01BWF9QWCAqIDAuNDIpXG5cbmNvbnN0IGNyZWF0ZVVzZXJUb29sdGlwRWwgPSAobWVudGlvbjogQ29udGV4dE1lbnRpb24pOiBIVE1MRWxlbWVudCA9PiB7XG4gIGNvbnN0IHsgbGFiZWwsIG1ldGFkYXRhIH0gPSBtZW50aW9uXG4gIGNvbnN0IHBpY3R1cmUgPSB0eXBlb2YgbWV0YWRhdGE/LnBpY3R1cmUgPT09ICdzdHJpbmcnID8gbWV0YWRhdGEucGljdHVyZSA6IG51bGxcbiAgY29uc3QgcG9zaXRpb25OYW1lID0gbm9ybWFsaXplVHJpbW1lZFN0cmluZyhtZXRhZGF0YT8ucG9zaXRpb25OYW1lKVxuICBjb25zdCBwb3NpdGlvbkxpbmUgPVxuICAgIHBvc2l0aW9uTmFtZSB8fFxuICAgIGkxOG4udCgnY29udGV4dE1lbnRpb24udXNlck5vUG9zaXRpb24nLCB7XG4gICAgICBkZWZhdWx0VmFsdWU6ICdTaW4gcG9zaWNpw7NuJyxcbiAgICB9KVxuICBjb25zdCBlbWFpbCA9IG5vcm1hbGl6ZVRyaW1tZWRTdHJpbmcobWV0YWRhdGE/LmVtYWlsKVxuICAvKiogTWlzbWEgZnVlbnRlIHF1ZSBgQ29udGV4dE1lbnRpb25JdGVtYCAoYXZhdGFyKTogbm9tYnJlIGRlIHF1ZXJ5LCBubyBlbCBsYWJlbCBkZWwgY2hpcCAoZWouIFwiWW9cIikuICovXG4gIGNvbnN0IG1ldGFkYXRhTmFtZSA9IG5vcm1hbGl6ZVRyaW1tZWRTdHJpbmcobWV0YWRhdGE/Lm5hbWUpXG4gIGNvbnN0IG5hbWVGb3JJbml0aWFscyA9IChtZXRhZGF0YU5hbWUgfHwgbm9ybWFsaXplVHJpbW1lZFN0cmluZyhsYWJlbCkgfHwgJz8nKS50cmltKClcblxuICBjb25zdCB0b29sdGlwID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2JylcbiAgT2JqZWN0LmFzc2lnbih0b29sdGlwLnN0eWxlLCB7XG4gICAgcG9zaXRpb246ICdmaXhlZCcsXG4gICAgekluZGV4OiAnOTk5OScsXG4gICAgbWluV2lkdGg6IGAke1VTRVJfVE9PTFRJUF9NSU5fV0lEVEhfUFh9cHhgLFxuICAgIHdpZHRoOiAnbWF4LWNvbnRlbnQnLFxuICAgIG1heFdpZHRoOiAnbWluKDU2MHB4LCBjYWxjKDEwMHZ3IC0gMjRweCkpJyxcbiAgICBwYWRkaW5nOiAnMTJweCA4cHgnLFxuICAgIGRpc3BsYXk6ICdmbGV4JyxcbiAgICBmbGV4RGlyZWN0aW9uOiAnY29sdW1uJyxcbiAgICBhbGlnbkl0ZW1zOiAnZmxleC1zdGFydCcsXG4gICAgYm9yZGVyUmFkaXVzOiAnNHB4JyxcbiAgICBib3JkZXI6ICcxcHggc29saWQgdmFyKC0tQ29sb3ItTGlnaHQtR3JheSwgI0UwRTBFMCknLFxuICAgIGJhY2tncm91bmQ6ICcjRkZGJyxcbiAgICBib3hTaGFkb3c6ICcwIDFweCA0cHggMCByZ2JhKDAsMCwwLDAuMDgpLCAwIDFweCA0cHggMCByZ2JhKDAsMCwwLDAuMDQpJyxcbiAgICBib3hTaXppbmc6ICdib3JkZXItYm94JyxcbiAgICBwb2ludGVyRXZlbnRzOiAnbm9uZScsXG4gICAgb3ZlcmZsb3c6ICdoaWRkZW4nLFxuICB9KVxuXG4gIGNvbnN0IHJvdyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpXG4gIE9iamVjdC5hc3NpZ24ocm93LnN0eWxlLCB7XG4gICAgZGlzcGxheTogJ2ZsZXgnLFxuICAgIGFsaWduSXRlbXM6ICdjZW50ZXInLFxuICAgIGdhcDogJzhweCcsXG4gICAgd2lkdGg6ICdtYXgtY29udGVudCcsXG4gICAgbWF4V2lkdGg6ICcxMDAlJyxcbiAgICBtaW5XaWR0aDogJzAnLFxuICB9KVxuXG4gIC8vIEF2YXRhciBjaXJjdWxhciAoZm90byBvIGluaWNpYWxlcylcbiAgY29uc3QgYXZhdGFyV3JhcCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpXG4gIE9iamVjdC5hc3NpZ24oYXZhdGFyV3JhcC5zdHlsZSwge1xuICAgIHdpZHRoOiAnMjRweCcsXG4gICAgaGVpZ2h0OiAnMjRweCcsXG4gICAgbWluV2lkdGg6ICcyNHB4JyxcbiAgICBib3JkZXJSYWRpdXM6ICcyNHB4JyxcbiAgICBvdmVyZmxvdzogJ2hpZGRlbicsXG4gICAgZGlzcGxheTogJ2ZsZXgnLFxuICAgIGFsaWduSXRlbXM6ICdjZW50ZXInLFxuICAgIGp1c3RpZnlDb250ZW50OiAnY2VudGVyJyxcbiAgICAvKiogTWlzbW8gZm9uZG8gcXVlIGBTQ01Vc2VyQXZhdGFyRmFsbGJhY2tgIGVuIGxhIGZpbGEgZGUgdXN1YXJpbyBkZWwgbW9kYWwuICovXG4gICAgYmFja2dyb3VuZDogJ3ZhcigtLWNvci1jb2xvci1ncmV5LTIwMCwgI2UwZTBlMCknLFxuICAgIGZsZXhTaHJpbms6ICcwJyxcbiAgfSlcblxuICBjb25zdCBpbml0aWFscyA9IGluaXRpYWxzRnJvbU5hbWUobmFtZUZvckluaXRpYWxzKVxuXG4gIGNvbnN0IGNyZWF0ZUluaXRpYWxzRmFsbGJhY2sgPSAoKTogSFRNTEVsZW1lbnQgPT4ge1xuICAgIGNvbnN0IGZiID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3BhbicpXG4gICAgZmIudGV4dENvbnRlbnQgPSBpbml0aWFsc1xuICAgIE9iamVjdC5hc3NpZ24oZmIuc3R5bGUsIHtcbiAgICAgIGZvbnRTaXplOiAnMTBweCcsXG4gICAgICBmb250V2VpZ2h0OiAnNjAwJyxcbiAgICAgIC8qKiBNaXNtbyBjb2xvciBxdWUgYFNDTVVzZXJBdmF0YXJGYWxsYmFja2AgZW4gbGEgZmlsYSBkZSB1c3VhcmlvIGRlbCBtb2RhbC4gKi9cbiAgICAgIGNvbG9yOiAndmFyKC0tY29yLWNvbG9yLXRleHQtc2Vjb25kYXJ5LCAjNjY2KScsXG4gICAgICBsaW5lSGVpZ2h0OiAnMScsXG4gICAgICBmb250RmFtaWx5OiBUT09MVElQX0ZPTlQsXG4gICAgfSlcbiAgICByZXR1cm4gZmJcbiAgfVxuXG4gIGlmIChwaWN0dXJlKSB7XG4gICAgY29uc3QgaW1nID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaW1nJylcbiAgICBpbWcuc3JjID0gcGljdHVyZVxuICAgIGltZy5hbHQgPSAnJ1xuICAgIGltZy5kcmFnZ2FibGUgPSBmYWxzZVxuICAgIE9iamVjdC5hc3NpZ24oaW1nLnN0eWxlLCB7XG4gICAgICB3aWR0aDogJzI0cHgnLFxuICAgICAgaGVpZ2h0OiAnMjRweCcsXG4gICAgICBvYmplY3RGaXQ6ICdjb3ZlcicsXG4gICAgICBkaXNwbGF5OiAnYmxvY2snLFxuICAgICAgYm9yZGVyUmFkaXVzOiAnMjRweCcsXG4gICAgfSlcbiAgICBpbWcub25lcnJvciA9ICgpID0+IHtcbiAgICAgIGltZy5yZW1vdmUoKVxuICAgICAgYXZhdGFyV3JhcC5hcHBlbmRDaGlsZChjcmVhdGVJbml0aWFsc0ZhbGxiYWNrKCkpXG4gICAgfVxuICAgIGF2YXRhcldyYXAuYXBwZW5kQ2hpbGQoaW1nKVxuICB9IGVsc2Uge1xuICAgIGF2YXRhcldyYXAuYXBwZW5kQ2hpbGQoY3JlYXRlSW5pdGlhbHNGYWxsYmFjaygpKVxuICB9XG5cbiAgLy8gQ29sdW1uYSBkZSBpbmZvOiBhbmNobyA9IG1heChmaWxhIG5vbWJyZSwgZW1haWwpOyBzaW4gZm9yemFyIDI0NHB4IHNpIGVsIGNvbnRlbmlkbyBlcyBtw6FzIGNvcnRvLlxuICBjb25zdCBpbmZvQ29sID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2JylcbiAgT2JqZWN0LmFzc2lnbihpbmZvQ29sLnN0eWxlLCB7XG4gICAgZGlzcGxheTogJ2ZsZXgnLFxuICAgIGZsZXhEaXJlY3Rpb246ICdjb2x1bW4nLFxuICAgIGp1c3RpZnlDb250ZW50OiAnY2VudGVyJyxcbiAgICBhbGlnbkl0ZW1zOiAnZmxleC1zdGFydCcsXG4gICAgZ2FwOiAnMnB4JyxcbiAgICBtaW5XaWR0aDogJzAnLFxuICAgIHdpZHRoOiAnbWF4LWNvbnRlbnQnLFxuICAgIG1heFdpZHRoOiAnMTAwJScsXG4gIH0pXG5cbiAgLy8gRmlsYTogbm9tYnJlIHwgcG9zaWNpw7NuIOKAlCBtYXgtY29udGVudCBwYXJhIG5vIGRlamFyIGh1ZWNvIGVudHJlIG5vbWJyZSBjb3J0byB5IGVsIHBpcGUgKGV2aXRhciBmbGV4IDUwLzUwKS5cbiAgY29uc3QgbmFtZVJvdyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpXG4gIE9iamVjdC5hc3NpZ24obmFtZVJvdy5zdHlsZSwge1xuICAgIGRpc3BsYXk6ICdmbGV4JyxcbiAgICBhbGlnbkl0ZW1zOiAnZmxleC1zdGFydCcsXG4gICAgZ2FwOiAnNHB4JyxcbiAgICBtaW5XaWR0aDogJzAnLFxuICAgIHdpZHRoOiAnbWF4LWNvbnRlbnQnLFxuICAgIG1heFdpZHRoOiBgJHtVU0VSX1RPT0xUSVBfTkFNRV9ST1dfTUFYX1BYfXB4YCxcbiAgfSlcblxuICBjb25zdCBuYW1lU3BhbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NwYW4nKVxuICBuYW1lU3Bhbi50ZXh0Q29udGVudCA9IGxhYmVsXG4gIE9iamVjdC5hc3NpZ24obmFtZVNwYW4uc3R5bGUsIHtcbiAgICBmbGV4OiAnMCAxIGF1dG8nLFxuICAgIG1pbldpZHRoOiAnMCcsXG4gICAgbWF4V2lkdGg6IGAke1VTRVJfVE9PTFRJUF9OQU1FX01BWF9XSURUSF9QWH1weGAsXG4gICAgb3ZlcmZsb3c6ICdoaWRkZW4nLFxuICAgIHRleHRPdmVyZmxvdzogJ2VsbGlwc2lzJyxcbiAgICB3aGl0ZVNwYWNlOiAnbm93cmFwJyxcbiAgICBjb2xvcjogJ3ZhcigtLVRleHQtUHJpbWFyeS1EYXJrLCAjMjAyMDFGKScsXG4gICAgZm9udEZhbWlseTogVE9PTFRJUF9GT05ULFxuICAgIGZvbnRTaXplOiAnMTRweCcsXG4gICAgZm9udFdlaWdodDogJzUwMCcsXG4gICAgbGluZUhlaWdodDogJzEzMCUnLFxuICB9KVxuICBuYW1lUm93LmFwcGVuZENoaWxkKG5hbWVTcGFuKVxuXG4gIGNvbnN0IHNlcCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NwYW4nKVxuICBzZXAudGV4dENvbnRlbnQgPSAnfCdcbiAgT2JqZWN0LmFzc2lnbihzZXAuc3R5bGUsIHsgLi4uVE9PTFRJUF9TRUNPTkRBUllfU1RZTEUsIGZsZXhTaHJpbms6ICcwJyB9KVxuICBuYW1lUm93LmFwcGVuZENoaWxkKHNlcClcblxuICBjb25zdCBwb3NTcGFuID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3BhbicpXG4gIHBvc1NwYW4udGV4dENvbnRlbnQgPSBwb3NpdGlvbkxpbmVcbiAgT2JqZWN0LmFzc2lnbihwb3NTcGFuLnN0eWxlLCB7XG4gICAgLi4uVE9PTFRJUF9TRUNPTkRBUllfU1RZTEUsXG4gICAgZmxleDogJzAgMSBhdXRvJyxcbiAgICBtaW5XaWR0aDogJzAnLFxuICAgIG92ZXJmbG93OiAnaGlkZGVuJyxcbiAgICB0ZXh0T3ZlcmZsb3c6ICdlbGxpcHNpcycsXG4gICAgd2hpdGVTcGFjZTogJ25vd3JhcCcsXG4gIH0pXG4gIG5hbWVSb3cuYXBwZW5kQ2hpbGQocG9zU3BhbilcblxuICBpbmZvQ29sLmFwcGVuZENoaWxkKG5hbWVSb3cpXG5cbiAgaWYgKGVtYWlsKSB7XG4gICAgY29uc3QgZW1haWxTcGFuID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3BhbicpXG4gICAgZW1haWxTcGFuLnRleHRDb250ZW50ID0gZW1haWxcbiAgICBPYmplY3QuYXNzaWduKGVtYWlsU3Bhbi5zdHlsZSwge1xuICAgICAgLi4uVE9PTFRJUF9TRUNPTkRBUllfU1RZTEUsXG4gICAgICB3aGl0ZVNwYWNlOiAnbm93cmFwJyxcbiAgICAgIG1heFdpZHRoOiAnMTAwJScsXG4gICAgICBvdmVyZmxvdzogJ2hpZGRlbicsXG4gICAgICB0ZXh0T3ZlcmZsb3c6ICdlbGxpcHNpcycsXG4gICAgfSlcbiAgICBpbmZvQ29sLmFwcGVuZENoaWxkKGVtYWlsU3BhbilcbiAgfVxuXG4gIHJvdy5hcHBlbmRDaGlsZChhdmF0YXJXcmFwKVxuICByb3cuYXBwZW5kQ2hpbGQoaW5mb0NvbClcbiAgdG9vbHRpcC5hcHBlbmRDaGlsZChyb3cpXG5cbiAgcmV0dXJuIHRvb2x0aXBcbn1cblxuLyoqXG4gKiBDcmVhIHVuIGA8c3Bhbj5gIGF0w7NtaWNvIGxpc3RvIHBhcmEgaW5zZXJ0YXJzZSBkZW50cm8gZGVsIGNvbnRlbnRlZGl0YWJsZVxuICogZGVsIGBDb250ZXh0TWVudGlvbkVkaXRvcmAuIFNlIG1hcmNhIGNvbiBsb3MgYGRhdGEtbWVudGlvbipgIG5lY2VzYXJpb3MgcGFyYVxuICogcXVlIGB1c2VDb250ZXh0TWVudGlvbnMuc2VyaWFsaXplKClgIHB1ZWRhIHZvbHZlciBhIGV4dHJhZXIgbGEgbWVudGlvbi5cbiAqXG4gKiBDb21wYXJ0ZSBsb3MgZXN0aWxvcyBjb24gZWwgY29tcG9uZW50ZSBgQ29udGV4dE1lbnRpb25DaGlwYCB2aWFcbiAqIGBhcHBseU1lbnRpb25DaGlwU3R5bGVzYCwgYXNlZ3VyYW5kbyB1bmEgw7puaWNhIGZ1ZW50ZSBkZSB2ZXJkYWQgdmlzdWFsLlxuICovXG5leHBvcnQgY29uc3QgYnVpbGRDaGlwRWxlbWVudCA9IChtZW50aW9uOiBDb250ZXh0TWVudGlvbik6IEhUTUxTcGFuRWxlbWVudCA9PiB7XG4gIGNvbnN0IGNoaXAgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzcGFuJylcbiAgY2hpcC5zZXRBdHRyaWJ1dGUoJ2NvbnRlbnRlZGl0YWJsZScsICdmYWxzZScpXG4gIGNoaXAuc2V0QXR0cmlidXRlKCdkYXRhLW1lbnRpb24tY2hpcCcsICd0cnVlJylcbiAgY2hpcC5jbGFzc05hbWUgPSBDT05URVhUX01FTlRJT05fQ0hJUF9DTEFTU1xuICBjaGlwLnNldEF0dHJpYnV0ZSgnZGF0YS1tZW50aW9uLXR5cGUnLCBtZW50aW9uLnR5cGUpXG4gIGNoaXAuc2V0QXR0cmlidXRlKCdkYXRhLW1lbnRpb24tc3VyZmFjZScsICdlZGl0b3InKVxuICBhcHBseU1lbnRpb25DaGlwU3R5bGVzKGNoaXAsIG1lbnRpb24udHlwZSlcbiAgY29uc3QgaXNUYXNrID0gbWVudGlvbi50eXBlID09PSAndGFzaydcbiAgY29uc3QgY29tbW9uID0ge1xuICAgIGJveFNpemluZzogJ2JvcmRlci1ib3gnLFxuICAgIHZlcnRpY2FsQWxpZ246ICdiYXNlbGluZScsXG4gICAgb3ZlcmZsb3c6ICd2aXNpYmxlJyxcbiAgICBtYXhXaWR0aDogJzEwMCUnLFxuICB9IGFzIGNvbnN0XG4gIGlmIChpc1Rhc2spIHtcbiAgICBPYmplY3QuYXNzaWduKGNoaXAuc3R5bGUsIGNvbW1vbiwge1xuICAgICAgbGluZUhlaWdodDogJzIwcHgnLFxuICAgICAgaGVpZ2h0OiAnYXV0bycsXG4gICAgICBtaW5IZWlnaHQ6ICdhdXRvJyxcbiAgICAgIG1heEhlaWdodDogJ25vbmUnLFxuICAgIH0pXG4gIH0gZWxzZSB7XG4gICAgT2JqZWN0LmFzc2lnbihjaGlwLnN0eWxlLCBjb21tb24sIHtcbiAgICAgIGxpbmVIZWlnaHQ6ICcyMHB4JyxcbiAgICAgIGhlaWdodDogJ2F1dG8nLFxuICAgICAgbWluSGVpZ2h0OiAnYXV0bycsXG4gICAgICBtYXhIZWlnaHQ6ICdub25lJyxcbiAgICB9KVxuICB9XG4gIGNvbnN0IG1vdW50Tm9kZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NwYW4nKVxuICBtb3VudE5vZGUuc3R5bGUuZGlzcGxheSA9ICdpbmxpbmUnXG4gIG1vdW50Tm9kZS5zdHlsZS5tYXhXaWR0aCA9ICcxMDAlJ1xuICBtb3VudE5vZGUuc3R5bGUudmVydGljYWxBbGlnbiA9ICdiYXNlbGluZSdcbiAgbW91bnROb2RlLnN0eWxlLmJveFNpemluZyA9ICdib3JkZXItYm94J1xuICBjaGlwLmFwcGVuZENoaWxkKG1vdW50Tm9kZSlcbiAgY29uc3Qgcm9vdCA9IGNyZWF0ZVJvb3QobW91bnROb2RlKVxuXG4gIGZsdXNoU3luYygoKSA9PiB7XG4gICAgcm9vdC5yZW5kZXIoY3JlYXRlRWxlbWVudChFZGl0YWJsZU1lbnRpb25DaGlwLCB7IG1lbnRpb24gfSkpXG4gIH0pXG5cbiAgaWYgKG1lbnRpb24udHlwZSA9PT0gJ3Rhc2snKSB7XG4gICAgY2hpcC5zdHlsZS5jdXJzb3IgPSAncG9pbnRlcidcbiAgICBjaGlwLm9uY2xpY2sgPSBlID0+IHtcbiAgICAgIGUucHJldmVudERlZmF1bHQoKVxuICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKVxuICAgICAgb3BlblRhc2tJbkNvclBhbmVsKG1lbnRpb24uaWQsICdkZXRhaWwnKVxuICAgIH1cbiAgfSBlbHNlIGlmIChtZW50aW9uLnR5cGUgPT09ICdwcm9qZWN0Jykge1xuICAgIGNoaXAuc3R5bGUuY3Vyc29yID0gJ3BvaW50ZXInXG4gICAgY2hpcC5vbmNsaWNrID0gZSA9PiB7XG4gICAgICBlLnByZXZlbnREZWZhdWx0KClcbiAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKClcbiAgICAgIHdpbmRvdy5vcGVuKGAvcHJvamVjdC8ke21lbnRpb24uaWR9L2Rhc2hib2FyZGAsICdfYmxhbmsnKVxuICAgIH1cbiAgfSBlbHNlIGlmIChtZW50aW9uLnR5cGUgPT09ICd1c2VyJykge1xuICAgIGxldCB0b29sdGlwRWw6IEhUTUxFbGVtZW50IHwgbnVsbCA9IG51bGxcbiAgICBsZXQgY2hpcFJlbW92ZWRPYnNlcnZlcjogTXV0YXRpb25PYnNlcnZlciB8IG51bGwgPSBudWxsXG5cbiAgICBjb25zdCByZW1vdmVVc2VyVG9vbHRpcCA9ICgpID0+IHtcbiAgICAgIGNoaXBSZW1vdmVkT2JzZXJ2ZXI/LmRpc2Nvbm5lY3QoKVxuICAgICAgY2hpcFJlbW92ZWRPYnNlcnZlciA9IG51bGxcbiAgICAgIGlmICh0b29sdGlwRWwpIHtcbiAgICAgICAgdG9vbHRpcEVsLnJlbW92ZSgpXG4gICAgICAgIHRvb2x0aXBFbCA9IG51bGxcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogU2kgZWwgY2hpcCBzZSBib3JyYSBkZWwgZWRpdG9yIChCYWNrc3BhY2UsIGV0Yy4pIG5vIHNpZW1wcmUgaGF5IGBtb3VzZWxlYXZlYDsgY2VycmFyIGVsIHRvb2x0aXAuICovXG4gICAgY29uc3Qgd2F0Y2hDaGlwUmVtb3ZlZEZyb21Eb20gPSAoKSA9PiB7XG4gICAgICBjb25zdCBwYXJlbnQgPSBjaGlwLnBhcmVudE5vZGVcbiAgICAgIGlmICghcGFyZW50KSByZXR1cm5cbiAgICAgIGNoaXBSZW1vdmVkT2JzZXJ2ZXI/LmRpc2Nvbm5lY3QoKVxuICAgICAgY2hpcFJlbW92ZWRPYnNlcnZlciA9IG5ldyBNdXRhdGlvbk9ic2VydmVyKCgpID0+IHtcbiAgICAgICAgaWYgKCFjaGlwLmlzQ29ubmVjdGVkKSByZW1vdmVVc2VyVG9vbHRpcCgpXG4gICAgICB9KVxuICAgICAgY2hpcFJlbW92ZWRPYnNlcnZlci5vYnNlcnZlKHBhcmVudCwgeyBjaGlsZExpc3Q6IHRydWUsIHN1YnRyZWU6IHRydWUgfSlcbiAgICB9XG5cbiAgICBjaGlwLmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlZW50ZXInLCAoKSA9PiB7XG4gICAgICBpZiAodG9vbHRpcEVsKSByZXR1cm5cbiAgICAgIHRvb2x0aXBFbCA9IGNyZWF0ZVVzZXJUb29sdGlwRWwobWVudGlvbilcbiAgICAgIGNvbnN0IHJlY3QgPSBjaGlwLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpXG4gICAgICBjb25zdCBsZWZ0ID0gTWF0aC5tYXgoOCwgTWF0aC5taW4od2luZG93LmlubmVyV2lkdGggLSAzMDAsIHJlY3QubGVmdCkpXG4gICAgICB0b29sdGlwRWwuc3R5bGUudG9wID0gYCR7cmVjdC50b3B9cHhgXG4gICAgICB0b29sdGlwRWwuc3R5bGUubGVmdCA9IGAke2xlZnR9cHhgXG4gICAgICB0b29sdGlwRWwuc3R5bGUudHJhbnNmb3JtID0gJ3RyYW5zbGF0ZVkoY2FsYygtMTAwJSAtIDRweCkpJ1xuICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZCh0b29sdGlwRWwpXG4gICAgICB3YXRjaENoaXBSZW1vdmVkRnJvbURvbSgpXG4gICAgfSlcblxuICAgIGNoaXAuYWRkRXZlbnRMaXN0ZW5lcignbW91c2VsZWF2ZScsIHJlbW92ZVVzZXJUb29sdGlwKVxuICB9XG5cbiAgcmV0dXJuIGNoaXBcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsU0FBU0EsYUFBYSxRQUE0QixPQUFPO0FBQ3pELFNBQVNDLFNBQVMs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
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
export { ContextMentionChip } from './ContextMentionChip';
|
|
2
|
-
export { buildChipElement } from './buildChipElement';
|
|
3
|
-
export { MENTION_CHIP_COLORS, applyMentionChipStyles, ContextMentionChipGlobalStyles, MENTION_CHIP_NON_TASK_HOVER_BG, MENTION_CHIP_TASK_HOVER_BG } from './ContextMentionChip.styles';
|
|
4
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJDb250ZXh0TWVudGlvbkNoaXAiLCJidWlsZENoaXBFbGVtZW50IiwiTUVOVElPTl9DSElQX0NPTE9SUyIsImFwcGx5TWVudGlvbkNoaXBTdHlsZXMiLCJDb250ZXh0TWVudGlvbkNoaXBHbG9iYWxTdHlsZXMiLCJNRU5USU9OX0NISVBfTk9OX1RBU0tfSE9WRVJfQkciLCJNRU5USU9OX0NISVBfVEFTS19IT1ZFUl9CRyJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL2F0b21zL0NvbnRleHRNZW50aW9uQ2hpcC9pbmRleC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgeyBDb250ZXh0TWVudGlvbkNoaXAgfSBmcm9tICcuL0NvbnRleHRNZW50aW9uQ2hpcCdcbmV4cG9ydCB7IGJ1aWxkQ2hpcEVsZW1lbnQgfSBmcm9tICcuL2J1aWxkQ2hpcEVsZW1lbnQnXG5leHBvcnQge1xuICBNRU5USU9OX0NISVBfQ09MT1JTLFxuICBhcHBseU1lbnRpb25DaGlwU3R5bGVzLFxuICBDb250ZXh0TWVudGlvbkNoaXBHbG9iYWxTdHlsZXMsXG4gIE1FTlRJT05fQ0hJUF9OT05fVEFTS19IT1ZFUl9CRyxcbiAgTUVOVElPTl9DSElQX1RBU0tfSE9WRVJfQkcsXG59IGZyb20gJy4vQ29udGV4dE1lbnRpb25DaGlwLnN0eWxlcydcbiJdLCJtYXBwaW5ncyI6IkFBQUEsU0FBU0Esa0JBQWtCLFFBQVEsc0JBQXNCO0FBQ3pELFNBQVNDLGdCQUFnQixRQUFRLG9CQUFvQjtBQUNyRCxTQUNFQyxtQkFBbUIsRUFDbkJDLHNCQUFzQixFQUN0QkMsOEJBQThCLEVBQzlCQyw4QkFBOEIsRUFDOUJDLDBCQUEwQixRQUNyQiw2QkFBNkIiLCJpZ25vcmVMaXN0IjpbXX0=
|