@projectcor/maia-components 2.11.40-9 → 2.11.40
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 -238
- 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 +6 -8
- package/lib/components/molecules/ChatFooter/ChatFooter.js +4 -5
- package/lib/components/molecules/ChatFooter/ChatFooterFaqs.js +3 -2
- package/lib/components/molecules/Sidebar/Sidebar.js +5 -9
- package/lib/components/molecules/Sidebar/Sidebar.layout.styles.js +2 -6
- 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/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/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 -384
- package/lib/components/atoms/ContextMentionChip/index.js +0 -4
- package/lib/components/atoms/ContextMentionEditor/ContextMentionEditor.js +0 -195
- 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 -280
- package/lib/components/atoms/ContextMentionItem/ContextMentionItem.styles.js +0 -130
- package/lib/components/atoms/ContextMentionItem/index.js +0 -2
- package/lib/components/atoms/ContextMentionPopover/ContextMentionPopover.js +0 -168
- 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 -1006
- package/lib/hooks/useMentionAllowedTypes.js +0 -103
- package/lib/hooks/useMentionPopover.js +0 -333
- 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 -299
|
@@ -1,384 +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 EditableMentionChip = function EditableMentionChip(_ref) {
|
|
48
|
-
var mention = _ref.mention;
|
|
49
|
-
var mentionLabel = normalizeContextMentionLabel(mention.label);
|
|
50
|
-
var iconColor = MENTION_CHIP_COLORS[mention.type].fg;
|
|
51
|
-
var isTask = mention.type === 'task';
|
|
52
|
-
var isProject = mention.type === 'project';
|
|
53
|
-
var iconSize = isTask ? 16 : 14;
|
|
54
|
-
var labelEl = createEditableMentionLabelEl(isTask, mentionLabel);
|
|
55
|
-
var outerStyle = {
|
|
56
|
-
position: 'relative',
|
|
57
|
-
display: 'inline',
|
|
58
|
-
lineHeight: '20px',
|
|
59
|
-
boxSizing: 'border-box',
|
|
60
|
-
verticalAlign: 'baseline',
|
|
61
|
-
maxWidth: '100%'
|
|
62
|
-
};
|
|
63
|
-
if (isTask || isProject) {
|
|
64
|
-
return /*#__PURE__*/createElement('span', {
|
|
65
|
-
style: outerStyle
|
|
66
|
-
}, labelEl);
|
|
67
|
-
}
|
|
68
|
-
return /*#__PURE__*/createElement('span', {
|
|
69
|
-
style: outerStyle
|
|
70
|
-
}, /*#__PURE__*/createElement('span', {
|
|
71
|
-
style: {
|
|
72
|
-
display: 'inline-block',
|
|
73
|
-
verticalAlign: 'middle',
|
|
74
|
-
marginRight: '2px',
|
|
75
|
-
lineHeight: '1',
|
|
76
|
-
width: '14px'
|
|
77
|
-
}
|
|
78
|
-
}, getContextMentionIcon(mention.type, iconColor, mention.id, iconSize)), labelEl);
|
|
79
|
-
};
|
|
80
|
-
var initialsFromName = function initialsFromName(name) {
|
|
81
|
-
var _parts$2;
|
|
82
|
-
var trimmed = name.trim();
|
|
83
|
-
if (!trimmed) return '?';
|
|
84
|
-
var parts = trimmed.split(/\s+/).filter(Boolean);
|
|
85
|
-
if (parts.length >= 2) {
|
|
86
|
-
var _parts$0$charAt, _parts$, _parts$charAt, _parts;
|
|
87
|
-
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 : '';
|
|
88
|
-
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 : '';
|
|
89
|
-
return "".concat(first).concat(last).toUpperCase();
|
|
90
|
-
}
|
|
91
|
-
var single = (_parts$2 = parts[0]) !== null && _parts$2 !== void 0 ? _parts$2 : '';
|
|
92
|
-
return single.length >= 2 ? single.slice(0, 2).toUpperCase() : (single.charAt(0) || '?').toUpperCase();
|
|
93
|
-
};
|
|
94
|
-
var TOOLTIP_FONT = "var(--cor-typography-font-family, 'Work Sans')";
|
|
95
|
-
var TOOLTIP_SECONDARY_COLOR = 'var(--Text-Secondary-Dark, #666)';
|
|
96
|
-
var TOOLTIP_SECONDARY_STYLE = {
|
|
97
|
-
fontFamily: TOOLTIP_FONT,
|
|
98
|
-
fontSize: '14px',
|
|
99
|
-
fontWeight: '400',
|
|
100
|
-
lineHeight: '20px',
|
|
101
|
-
color: TOOLTIP_SECONDARY_COLOR
|
|
102
|
-
};
|
|
103
|
-
|
|
104
|
-
/** Ancho mínimo del tooltip (incl. padding horizontal 8+8). */
|
|
105
|
-
var USER_TOOLTIP_MIN_WIDTH_PX = 292;
|
|
106
|
-
/** Padding horizontal total del tooltip. */
|
|
107
|
-
var USER_TOOLTIP_PAD_X_PX = 16;
|
|
108
|
-
/** Avatar 24px + gap 8px respecto a la columna de texto. */
|
|
109
|
-
var USER_TOOLTIP_AVATAR_GAP_PX = 32;
|
|
110
|
-
/**
|
|
111
|
-
* Ancho máximo de la fila nombre | posición: mismo hueco que con tooltip fijo 292px,
|
|
112
|
-
* para que solo el email ensanche el contenedor.
|
|
113
|
-
*/
|
|
114
|
-
var USER_TOOLTIP_NAME_ROW_MAX_PX = USER_TOOLTIP_MIN_WIDTH_PX - USER_TOOLTIP_PAD_X_PX - USER_TOOLTIP_AVATAR_GAP_PX;
|
|
115
|
-
var createUserTooltipEl = function createUserTooltipEl(mention) {
|
|
116
|
-
var _metadata$picture, _metadata$positionNam, _metadata$positionNam2, _metadata$email$trim, _metadata$email, _metadata$name;
|
|
117
|
-
var label = mention.label,
|
|
118
|
-
metadata = mention.metadata;
|
|
119
|
-
var picture = (_metadata$picture = metadata === null || metadata === void 0 ? void 0 : metadata.picture) !== null && _metadata$picture !== void 0 ? _metadata$picture : null;
|
|
120
|
-
var positionName = (_metadata$positionNam = metadata === null || metadata === void 0 || (_metadata$positionNam2 = metadata.positionName) === null || _metadata$positionNam2 === void 0 ? void 0 : _metadata$positionNam2.trim()) !== null && _metadata$positionNam !== void 0 ? _metadata$positionNam : '';
|
|
121
|
-
var positionLine = positionName || i18n.t('contextMention.userNoPosition', {
|
|
122
|
-
defaultValue: 'Sin posición'
|
|
123
|
-
});
|
|
124
|
-
var email = (_metadata$email$trim = metadata === null || metadata === void 0 || (_metadata$email = metadata.email) === null || _metadata$email === void 0 ? void 0 : _metadata$email.trim()) !== null && _metadata$email$trim !== void 0 ? _metadata$email$trim : '';
|
|
125
|
-
/** Misma fuente que `ContextMentionItem` (avatar): nombre de query, no el label del chip (ej. "Yo"). */
|
|
126
|
-
var nameForInitials = (metadata !== null && metadata !== void 0 && (_metadata$name = metadata.name) !== null && _metadata$name !== void 0 && _metadata$name.trim() ? metadata.name : label).trim();
|
|
127
|
-
var tooltip = document.createElement('div');
|
|
128
|
-
Object.assign(tooltip.style, {
|
|
129
|
-
position: 'fixed',
|
|
130
|
-
zIndex: '9999',
|
|
131
|
-
minWidth: "".concat(USER_TOOLTIP_MIN_WIDTH_PX, "px"),
|
|
132
|
-
width: 'max-content',
|
|
133
|
-
maxWidth: 'min(560px, calc(100vw - 24px))',
|
|
134
|
-
padding: '12px 8px',
|
|
135
|
-
display: 'flex',
|
|
136
|
-
flexDirection: 'column',
|
|
137
|
-
alignItems: 'flex-start',
|
|
138
|
-
borderRadius: '4px',
|
|
139
|
-
border: '1px solid var(--Color-Light-Gray, #E0E0E0)',
|
|
140
|
-
background: '#FFF',
|
|
141
|
-
boxShadow: '0 1px 4px 0 rgba(0,0,0,0.08), 0 1px 4px 0 rgba(0,0,0,0.04)',
|
|
142
|
-
boxSizing: 'border-box',
|
|
143
|
-
pointerEvents: 'none',
|
|
144
|
-
overflow: 'hidden'
|
|
145
|
-
});
|
|
146
|
-
var row = document.createElement('div');
|
|
147
|
-
Object.assign(row.style, {
|
|
148
|
-
display: 'flex',
|
|
149
|
-
alignItems: 'center',
|
|
150
|
-
gap: '8px',
|
|
151
|
-
width: 'max-content',
|
|
152
|
-
maxWidth: '100%',
|
|
153
|
-
minWidth: '0'
|
|
154
|
-
});
|
|
155
|
-
|
|
156
|
-
// Avatar circular (foto o iniciales)
|
|
157
|
-
var avatarWrap = document.createElement('div');
|
|
158
|
-
Object.assign(avatarWrap.style, {
|
|
159
|
-
width: '24px',
|
|
160
|
-
height: '24px',
|
|
161
|
-
minWidth: '24px',
|
|
162
|
-
borderRadius: '24px',
|
|
163
|
-
overflow: 'hidden',
|
|
164
|
-
display: 'flex',
|
|
165
|
-
alignItems: 'center',
|
|
166
|
-
justifyContent: 'center',
|
|
167
|
-
/** Mismo fondo que `SCMUserAvatarFallback` en la fila de usuario del modal. */
|
|
168
|
-
background: 'var(--cor-color-grey-200, #e0e0e0)',
|
|
169
|
-
flexShrink: '0'
|
|
170
|
-
});
|
|
171
|
-
var initials = initialsFromName(nameForInitials);
|
|
172
|
-
var createInitialsFallback = function createInitialsFallback() {
|
|
173
|
-
var fb = document.createElement('span');
|
|
174
|
-
fb.textContent = initials;
|
|
175
|
-
Object.assign(fb.style, {
|
|
176
|
-
fontSize: '10px',
|
|
177
|
-
fontWeight: '600',
|
|
178
|
-
/** Mismo color que `SCMUserAvatarFallback` en la fila de usuario del modal. */
|
|
179
|
-
color: 'var(--cor-color-text-secondary, #666)',
|
|
180
|
-
lineHeight: '1',
|
|
181
|
-
fontFamily: TOOLTIP_FONT
|
|
182
|
-
});
|
|
183
|
-
return fb;
|
|
184
|
-
};
|
|
185
|
-
if (picture) {
|
|
186
|
-
var img = document.createElement('img');
|
|
187
|
-
img.src = picture;
|
|
188
|
-
img.alt = '';
|
|
189
|
-
img.draggable = false;
|
|
190
|
-
Object.assign(img.style, {
|
|
191
|
-
width: '24px',
|
|
192
|
-
height: '24px',
|
|
193
|
-
objectFit: 'cover',
|
|
194
|
-
display: 'block',
|
|
195
|
-
borderRadius: '24px'
|
|
196
|
-
});
|
|
197
|
-
img.onerror = function () {
|
|
198
|
-
img.remove();
|
|
199
|
-
avatarWrap.appendChild(createInitialsFallback());
|
|
200
|
-
};
|
|
201
|
-
avatarWrap.appendChild(img);
|
|
202
|
-
} else {
|
|
203
|
-
avatarWrap.appendChild(createInitialsFallback());
|
|
204
|
-
}
|
|
205
|
-
|
|
206
|
-
// Columna de info: crece con el email (una línea); la fila nombre mantiene ancho base.
|
|
207
|
-
var infoCol = document.createElement('div');
|
|
208
|
-
Object.assign(infoCol.style, {
|
|
209
|
-
display: 'flex',
|
|
210
|
-
flexDirection: 'column',
|
|
211
|
-
justifyContent: 'center',
|
|
212
|
-
alignItems: 'flex-start',
|
|
213
|
-
gap: '2px',
|
|
214
|
-
minWidth: "".concat(USER_TOOLTIP_NAME_ROW_MAX_PX, "px"),
|
|
215
|
-
width: 'max-content',
|
|
216
|
-
maxWidth: '100%'
|
|
217
|
-
});
|
|
218
|
-
|
|
219
|
-
// Fila: nombre + separador + posición (ancho fijo como antes; no ensancha el tooltip)
|
|
220
|
-
var nameRow = document.createElement('div');
|
|
221
|
-
Object.assign(nameRow.style, {
|
|
222
|
-
display: 'flex',
|
|
223
|
-
alignItems: 'flex-start',
|
|
224
|
-
gap: '4px',
|
|
225
|
-
minWidth: '0',
|
|
226
|
-
width: "".concat(USER_TOOLTIP_NAME_ROW_MAX_PX, "px"),
|
|
227
|
-
maxWidth: "".concat(USER_TOOLTIP_NAME_ROW_MAX_PX, "px")
|
|
228
|
-
});
|
|
229
|
-
var nameSpan = document.createElement('span');
|
|
230
|
-
nameSpan.textContent = label;
|
|
231
|
-
Object.assign(nameSpan.style, {
|
|
232
|
-
flex: '1 1 0',
|
|
233
|
-
minWidth: '0',
|
|
234
|
-
overflow: 'hidden',
|
|
235
|
-
textOverflow: 'ellipsis',
|
|
236
|
-
whiteSpace: 'nowrap',
|
|
237
|
-
color: 'var(--Text-Primary-Dark, #20201F)',
|
|
238
|
-
fontFamily: TOOLTIP_FONT,
|
|
239
|
-
fontSize: '14px',
|
|
240
|
-
fontWeight: '500',
|
|
241
|
-
lineHeight: '130%'
|
|
242
|
-
});
|
|
243
|
-
nameRow.appendChild(nameSpan);
|
|
244
|
-
var sep = document.createElement('span');
|
|
245
|
-
sep.textContent = '|';
|
|
246
|
-
Object.assign(sep.style, _objectSpread(_objectSpread({}, TOOLTIP_SECONDARY_STYLE), {}, {
|
|
247
|
-
flexShrink: '0'
|
|
248
|
-
}));
|
|
249
|
-
nameRow.appendChild(sep);
|
|
250
|
-
var posSpan = document.createElement('span');
|
|
251
|
-
posSpan.textContent = positionLine;
|
|
252
|
-
Object.assign(posSpan.style, _objectSpread(_objectSpread({}, TOOLTIP_SECONDARY_STYLE), {}, {
|
|
253
|
-
flex: '1 1 0',
|
|
254
|
-
minWidth: '0',
|
|
255
|
-
overflow: 'hidden',
|
|
256
|
-
textOverflow: 'ellipsis',
|
|
257
|
-
whiteSpace: 'nowrap'
|
|
258
|
-
}));
|
|
259
|
-
nameRow.appendChild(posSpan);
|
|
260
|
-
infoCol.appendChild(nameRow);
|
|
261
|
-
if (email) {
|
|
262
|
-
var emailSpan = document.createElement('span');
|
|
263
|
-
emailSpan.textContent = email;
|
|
264
|
-
Object.assign(emailSpan.style, _objectSpread(_objectSpread({}, TOOLTIP_SECONDARY_STYLE), {}, {
|
|
265
|
-
whiteSpace: 'nowrap',
|
|
266
|
-
maxWidth: '100%',
|
|
267
|
-
overflow: 'hidden',
|
|
268
|
-
textOverflow: 'ellipsis'
|
|
269
|
-
}));
|
|
270
|
-
infoCol.appendChild(emailSpan);
|
|
271
|
-
}
|
|
272
|
-
row.appendChild(avatarWrap);
|
|
273
|
-
row.appendChild(infoCol);
|
|
274
|
-
tooltip.appendChild(row);
|
|
275
|
-
return tooltip;
|
|
276
|
-
};
|
|
277
|
-
|
|
278
|
-
/**
|
|
279
|
-
* Crea un `<span>` atómico listo para insertarse dentro del contenteditable
|
|
280
|
-
* del `ContextMentionEditor`. Se marca con los `data-mention*` necesarios para
|
|
281
|
-
* que `useContextMentions.serialize()` pueda volver a extraer la mention.
|
|
282
|
-
*
|
|
283
|
-
* Comparte los estilos con el componente `ContextMentionChip` via
|
|
284
|
-
* `applyMentionChipStyles`, asegurando una única fuente de verdad visual.
|
|
285
|
-
*/
|
|
286
|
-
export var buildChipElement = function buildChipElement(mention) {
|
|
287
|
-
var chip = document.createElement('span');
|
|
288
|
-
chip.setAttribute('contenteditable', 'false');
|
|
289
|
-
chip.setAttribute('data-mention-chip', 'true');
|
|
290
|
-
chip.className = CONTEXT_MENTION_CHIP_CLASS;
|
|
291
|
-
chip.setAttribute('data-mention-type', mention.type);
|
|
292
|
-
chip.setAttribute('data-mention-surface', 'editor');
|
|
293
|
-
applyMentionChipStyles(chip, mention.type);
|
|
294
|
-
var isTask = mention.type === 'task';
|
|
295
|
-
var common = {
|
|
296
|
-
boxSizing: 'border-box',
|
|
297
|
-
verticalAlign: 'baseline',
|
|
298
|
-
overflow: 'visible',
|
|
299
|
-
maxWidth: '100%'
|
|
300
|
-
};
|
|
301
|
-
if (isTask) {
|
|
302
|
-
Object.assign(chip.style, common, {
|
|
303
|
-
lineHeight: '20px',
|
|
304
|
-
height: 'auto',
|
|
305
|
-
minHeight: 'auto',
|
|
306
|
-
maxHeight: 'none'
|
|
307
|
-
});
|
|
308
|
-
} else {
|
|
309
|
-
Object.assign(chip.style, common, {
|
|
310
|
-
lineHeight: '20px',
|
|
311
|
-
height: 'auto',
|
|
312
|
-
minHeight: 'auto',
|
|
313
|
-
maxHeight: 'none'
|
|
314
|
-
});
|
|
315
|
-
}
|
|
316
|
-
var mountNode = document.createElement('span');
|
|
317
|
-
mountNode.style.display = 'inline';
|
|
318
|
-
mountNode.style.maxWidth = '100%';
|
|
319
|
-
mountNode.style.verticalAlign = 'baseline';
|
|
320
|
-
mountNode.style.boxSizing = 'border-box';
|
|
321
|
-
chip.appendChild(mountNode);
|
|
322
|
-
var root = createRoot(mountNode);
|
|
323
|
-
flushSync(function () {
|
|
324
|
-
root.render(/*#__PURE__*/createElement(EditableMentionChip, {
|
|
325
|
-
mention: mention
|
|
326
|
-
}));
|
|
327
|
-
});
|
|
328
|
-
if (mention.type === 'task') {
|
|
329
|
-
chip.style.cursor = 'pointer';
|
|
330
|
-
chip.onclick = function (e) {
|
|
331
|
-
e.preventDefault();
|
|
332
|
-
e.stopPropagation();
|
|
333
|
-
openTaskInCorPanel(mention.id, 'detail');
|
|
334
|
-
};
|
|
335
|
-
} else if (mention.type === 'project') {
|
|
336
|
-
chip.style.cursor = 'pointer';
|
|
337
|
-
chip.onclick = function (e) {
|
|
338
|
-
e.preventDefault();
|
|
339
|
-
e.stopPropagation();
|
|
340
|
-
window.open("/project/".concat(mention.id, "/dashboard"), '_blank');
|
|
341
|
-
};
|
|
342
|
-
} else if (mention.type === 'user') {
|
|
343
|
-
var tooltipEl = null;
|
|
344
|
-
var chipRemovedObserver = null;
|
|
345
|
-
var removeUserTooltip = function removeUserTooltip() {
|
|
346
|
-
var _chipRemovedObserver;
|
|
347
|
-
(_chipRemovedObserver = chipRemovedObserver) === null || _chipRemovedObserver === void 0 || _chipRemovedObserver.disconnect();
|
|
348
|
-
chipRemovedObserver = null;
|
|
349
|
-
if (tooltipEl) {
|
|
350
|
-
tooltipEl.remove();
|
|
351
|
-
tooltipEl = null;
|
|
352
|
-
}
|
|
353
|
-
};
|
|
354
|
-
|
|
355
|
-
/** Si el chip se borra del editor (Backspace, etc.) no siempre hay `mouseleave`; cerrar el tooltip. */
|
|
356
|
-
var watchChipRemovedFromDom = function watchChipRemovedFromDom() {
|
|
357
|
-
var _chipRemovedObserver2;
|
|
358
|
-
var parent = chip.parentNode;
|
|
359
|
-
if (!parent) return;
|
|
360
|
-
(_chipRemovedObserver2 = chipRemovedObserver) === null || _chipRemovedObserver2 === void 0 || _chipRemovedObserver2.disconnect();
|
|
361
|
-
chipRemovedObserver = new MutationObserver(function () {
|
|
362
|
-
if (!chip.isConnected) removeUserTooltip();
|
|
363
|
-
});
|
|
364
|
-
chipRemovedObserver.observe(parent, {
|
|
365
|
-
childList: true,
|
|
366
|
-
subtree: true
|
|
367
|
-
});
|
|
368
|
-
};
|
|
369
|
-
chip.addEventListener('mouseenter', function () {
|
|
370
|
-
if (tooltipEl) return;
|
|
371
|
-
tooltipEl = createUserTooltipEl(mention);
|
|
372
|
-
var rect = chip.getBoundingClientRect();
|
|
373
|
-
var left = Math.max(8, Math.min(window.innerWidth - 300, rect.left));
|
|
374
|
-
tooltipEl.style.top = "".concat(rect.top, "px");
|
|
375
|
-
tooltipEl.style.left = "".concat(left, "px");
|
|
376
|
-
tooltipEl.style.transform = 'translateY(calc(-100% - 4px))';
|
|
377
|
-
document.body.appendChild(tooltipEl);
|
|
378
|
-
watchChipRemovedFromDom();
|
|
379
|
-
});
|
|
380
|
-
chip.addEventListener('mouseleave', removeUserTooltip);
|
|
381
|
-
}
|
|
382
|
-
return chip;
|
|
383
|
-
};
|
|
384
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJjcmVhdGVFbGVtZW50IiwiZmx1c2hTeW5jIiwiY3JlYXRlUm9vdCIsImkxOG4iLCJDT05URVhUX01FTlRJT05fQ0hJUF9DTEFTUyIsImdldENvbnRleHRNZW50aW9uSWNvbiIsIm5vcm1hbGl6ZUNvbnRleHRNZW50aW9uTGFiZWwiLCJvcGVuVGFza0luQ29yUGFuZWwiLCJhcHBseU1lbnRpb25DaGlwU3R5bGVzIiwiTUVOVElPTl9DSElQX0NPTE9SUyIsIkVESVRBQkxFX05PTl9UQVNLX0xBQkVMX1NUWUxFIiwiZGlzcGxheSIsImxpbmVIZWlnaHQiLCJhbGlnblNlbGYiLCJtaW5XaWR0aCIsIm1heFdpZHRoIiwid2hpdGVTcGFjZSIsIm92ZXJmbG93V3JhcCIsIndvcmRCcmVhayIsIkVESVRBQkxFX1RBU0tfTEFCRUxfU1RZTEUiLCJmb250U2l6ZSIsImZvbnRXZWlnaHQiLCJjb2xvciIsImNyZWF0ZUVkaXRhYmxlTWVudGlvbkxhYmVsRWwiLCJpc1Rhc2siLCJtZW50aW9uTGFiZWwiLCJzdHlsZSIsIkVkaXRhYmxlTWVudGlvbkNoaXAiLCJfcmVmIiwibWVudGlvbiIsImxhYmVsIiwiaWNvbkNvbG9yIiwidHlwZSIsImZnIiwiaXNQcm9qZWN0IiwiaWNvblNpemUiLCJsYWJlbEVsIiwib3V0ZXJTdHlsZSIsInBvc2l0aW9uIiwiYm94U2l6aW5nIiwidmVydGljYWxBbGlnbiIsIm1hcmdpblJpZ2h0Iiwid2lkdGgiLCJpZCIsImluaXRpYWxzRnJvbU5hbWUiLCJuYW1lIiwiX3BhcnRzJDIiLCJ0cmltbWVkIiwidHJpbSIsInBhcnRzIiwic3BsaXQiLCJmaWx0ZXIiLCJCb29sZWFuIiwibGVuZ3RoIiwiX3BhcnRzJDAkY2hhckF0IiwiX3BhcnRzJCIsIl9wYXJ0cyRjaGFyQXQiLCJfcGFydHMiLCJmaXJzdCIsImNoYXJBdCIsImxhc3QiLCJjb25jYXQiLCJ0b1VwcGVyQ2FzZSIsInNpbmdsZSIsInNsaWNlIiwiVE9PTFRJUF9GT05UIiwiVE9PTFRJUF9TRUNPTkRBUllfQ09MT1IiLCJUT09MVElQX1NFQ09OREFSWV9TVFlMRSIsImZvbnRGYW1pbHkiLCJVU0VSX1RPT0xUSVBfTUlOX1dJRFRIX1BYIiwiVVNFUl9UT09MVElQX1BBRF9YX1BYIiwiVVNFUl9UT09MVElQX0FWQVRBUl9HQVBfUFgiLCJVU0VSX1RPT0xUSVBfTkFNRV9ST1dfTUFYX1BYIiwiY3JlYXRlVXNlclRvb2x0aXBFbCIsIl9tZXRhZGF0YSRwaWN0dXJlIiwiX21ldGFkYXRhJHBvc2l0aW9uTmFtIiwiX21ldGFkYXRhJHBvc2l0aW9uTmFtMiIsIl9tZXRhZGF0YSRlbWFpbCR0cmltIiwiX21ldGFkYXRhJGVtYWlsIiwiX21ldGFkYXRhJG5hbWUiLCJtZXRhZGF0YSIsInBpY3R1cmUiLCJwb3NpdGlvbk5hbWUiLCJwb3NpdGlvbkxpbmUiLCJ0IiwiZGVmYXVsdFZhbHVlIiwiZW1haWwiLCJuYW1lRm9ySW5pdGlhbHMiLCJ0b29sdGlwIiwiZG9jdW1lbnQiLCJPYmplY3QiLCJhc3NpZ24iLCJ6SW5kZXgiLCJwYWRkaW5nIiwiZmxleERpcmVjdGlvbiIsImFsaWduSXRlbXMiLCJib3JkZXJSYWRpdXMiLCJib3JkZXIiLCJiYWNrZ3JvdW5kIiwiYm94U2hhZG93IiwicG9pbnRlckV2ZW50cyIsIm92ZXJmbG93Iiwicm93IiwiZ2FwIiwiYXZhdGFyV3JhcCIsImhlaWdodCIsImp1c3RpZnlDb250ZW50IiwiZmxleFNocmluayIsImluaXRpYWxzIiwiY3JlYXRlSW5pdGlhbHNGYWxsYmFjayIsImZiIiwidGV4dENvbnRlbnQiLCJpbWciLCJzcmMiLCJhbHQiLCJkcmFnZ2FibGUiLCJvYmplY3RGaXQiLCJvbmVycm9yIiwicmVtb3ZlIiwiYXBwZW5kQ2hpbGQiLCJpbmZvQ29sIiwibmFtZVJvdyIsIm5hbWVTcGFuIiwiZmxleCIsInRleHRPdmVyZmxvdyIsInNlcCIsIl9vYmplY3RTcHJlYWQiLCJwb3NTcGFuIiwiZW1haWxTcGFuIiwiYnVpbGRDaGlwRWxlbWVudCIsImNoaXAiLCJzZXRBdHRyaWJ1dGUiLCJjbGFzc05hbWUiLCJjb21tb24iLCJtaW5IZWlnaHQiLCJtYXhIZWlnaHQiLCJtb3VudE5vZGUiLCJyb290IiwicmVuZGVyIiwiY3Vyc29yIiwib25jbGljayIsImUiLCJwcmV2ZW50RGVmYXVsdCIsInN0b3BQcm9wYWdhdGlvbiIsIndpbmRvdyIsIm9wZW4iLCJ0b29sdGlwRWwiLCJjaGlwUmVtb3ZlZE9ic2VydmVyIiwicmVtb3ZlVXNlclRvb2x0aXAiLCJfY2hpcFJlbW92ZWRPYnNlcnZlciIsImRpc2Nvbm5lY3QiLCJ3YXRjaENoaXBSZW1vdmVkRnJvbURvbSIsIl9jaGlwUmVtb3ZlZE9ic2VydmVyMiIsInBhcmVudCIsInBhcmVudE5vZGUiLCJNdXRhdGlvbk9ic2VydmVyIiwiaXNDb25uZWN0ZWQiLCJvYnNlcnZlIiwiY2hpbGRMaXN0Iiwic3VidHJlZSIsImFkZEV2ZW50TGlzdGVuZXIiLCJyZWN0IiwiZ2V0Qm91bmRpbmdDbGllbnRSZWN0IiwibGVmdCIsIk1hdGgiLCJtYXgiLCJtaW4iLCJpbm5lcldpZHRoIiwidG9wIiwidHJhbnNmb3JtIiwiYm9keSJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL2F0b21zL0NvbnRleHRNZW50aW9uQ2hpcC9idWlsZENoaXBFbGVtZW50LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNyZWF0ZUVsZW1lbnQsIHR5cGUgQ1NTUHJvcGVydGllcyB9IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHsgZmx1c2hTeW5jIH0gZnJvbSAncmVhY3QtZG9tJ1xuaW1wb3J0IHsgY3JlYXRlUm9vdCB9IGZyb20gJ3JlYWN0LWRvbS9jbGllbnQnXG5pbXBvcnQgaTE4biBmcm9tICcuLi8uLi8uLi9sYW5nJ1xuaW1wb3J0IHsgQ09OVEVYVF9NRU5USU9OX0NISVBfQ0xBU1MsIENvbnRleHRNZW50aW9uIH0gZnJvbSAnLi4vLi4vLi4vdHlwZXMvY29udGV4dE1lbnRpb24nXG5pbXBvcnQgeyBnZXRDb250ZXh0TWVudGlvbkljb24gfSBmcm9tICcuLi8uLi8uLi91dGlscy9jb250ZXh0TWVudGlvbkljb25zJ1xuaW1wb3J0IHsgbm9ybWFsaXplQ29udGV4dE1lbnRpb25MYWJlbCB9IGZyb20gJy4uLy4uLy4uL3V0aWxzL2NvbnRleHRNZW50aW9uTGFiZWwnXG5pbXBvcnQgeyBvcGVuVGFza0luQ29yUGFuZWwgfSBmcm9tICcuLi8uLi8uLi91dGlscy9vcGVuVGFza0luQ29yUGFuZWwnXG5pbXBvcnQgeyBhcHBseU1lbnRpb25DaGlwU3R5bGVzLCBNRU5USU9OX0NISVBfQ09MT1JTIH0gZnJvbSAnLi9Db250ZXh0TWVudGlvbkNoaXAuc3R5bGVzJ1xuXG5jb25zdCBFRElUQUJMRV9OT05fVEFTS19MQUJFTF9TVFlMRTogQ1NTUHJvcGVydGllcyA9IHtcbiAgZGlzcGxheTogJ2lubGluZScsXG4gIGxpbmVIZWlnaHQ6ICcyMHB4JyxcbiAgYWxpZ25TZWxmOiAnYmFzZWxpbmUnLFxuICBtaW5XaWR0aDogMCxcbiAgbWF4V2lkdGg6ICcxMDAlJyxcbiAgd2hpdGVTcGFjZTogJ25vcm1hbCcsXG4gIG92ZXJmbG93V3JhcDogJ2JyZWFrLXdvcmQnLFxuICB3b3JkQnJlYWs6ICdicmVhay13b3JkJyxcbn1cblxuLyoqIFRleHRvIGRlIHRhcmVhOiBzaW4gYm9yZGUgaW5mZXJpb3I7IGVsIGFzcGVjdG8gZGUgZW5sYWNlIGxvIGRhIGVsIENTUyBnbG9iYWwgKDo6YmVmb3JlICsgY29sb3IpLiAqL1xuY29uc3QgRURJVEFCTEVfVEFTS19MQUJFTF9TVFlMRTogQ1NTUHJvcGVydGllcyA9IHtcbiAgZGlzcGxheTogJ2lubGluZScsXG4gIGZvbnRTaXplOiAnMTRweCcsXG4gIGxpbmVIZWlnaHQ6ICcyMHB4JyxcbiAgZm9udFdlaWdodDogJzYwMCcsXG4gIGNvbG9yOiAnaW5oZXJpdCcsXG4gIG1pbldpZHRoOiAwLFxuICBtYXhXaWR0aDogJzEwMCUnLFxuICB3aGl0ZVNwYWNlOiAnbm9ybWFsJyxcbiAgb3ZlcmZsb3dXcmFwOiAnYnJlYWstd29yZCcsXG4gIHdvcmRCcmVhazogJ2JyZWFrLXdvcmQnLFxufVxuXG5jb25zdCBjcmVhdGVFZGl0YWJsZU1lbnRpb25MYWJlbEVsID0gKGlzVGFzazogYm9vbGVhbiwgbWVudGlvbkxhYmVsOiBzdHJpbmcpID0+IHtcbiAgaWYgKCFpc1Rhc2spIHtcbiAgICByZXR1cm4gY3JlYXRlRWxlbWVudCgnc3BhbicsIHsgc3R5bGU6IEVESVRBQkxFX05PTl9UQVNLX0xBQkVMX1NUWUxFIH0sIG1lbnRpb25MYWJlbClcbiAgfVxuICByZXR1cm4gY3JlYXRlRWxlbWVudCgnc3BhbicsIHsgc3R5bGU6IEVESVRBQkxFX1RBU0tfTEFCRUxfU1RZTEUgfSwgbWVudGlvbkxhYmVsKVxufVxuXG50eXBlIEVkaXRhYmxlTWVudGlvbkNoaXBQcm9wcyA9IHtcbiAgbWVudGlvbjogQ29udGV4dE1lbnRpb25cbn1cblxuY29uc3QgRWRpdGFibGVNZW50aW9uQ2hpcCA9ICh7IG1lbnRpb24gfTogRWRpdGFibGVNZW50aW9uQ2hpcFByb3BzKSA9PiB7XG4gIGNvbnN0IG1lbnRpb25MYWJlbCA9IG5vcm1hbGl6ZUNvbnRleHRNZW50aW9uTGFiZWwobWVudGlvbi5sYWJlbClcbiAgY29uc3QgaWNvbkNvbG9yID0gTUVOVElPTl9DSElQX0NPTE9SU1ttZW50aW9uLnR5cGVdLmZnXG4gIGNvbnN0IGlzVGFzayA9IG1lbnRpb24udHlwZSA9PT0gJ3Rhc2snXG4gIGNvbnN0IGlzUHJvamVjdCA9IG1lbnRpb24udHlwZSA9PT0gJ3Byb2plY3QnXG4gIGNvbnN0IGljb25TaXplID0gaXNUYXNrID8gMTYgOiAxNFxuICBjb25zdCBsYWJlbEVsID0gY3JlYXRlRWRpdGFibGVNZW50aW9uTGFiZWxFbChpc1Rhc2ssIG1lbnRpb25MYWJlbClcblxuICBjb25zdCBvdXRlclN0eWxlOiBDU1NQcm9wZXJ0aWVzID0ge1xuICAgIHBvc2l0aW9uOiAncmVsYXRpdmUnLFxuICAgIGRpc3BsYXk6ICdpbmxpbmUnLFxuICAgIGxpbmVIZWlnaHQ6ICcyMHB4JyxcbiAgICBib3hTaXppbmc6ICdib3JkZXItYm94JyxcbiAgICB2ZXJ0aWNhbEFsaWduOiAnYmFzZWxpbmUnLFxuICAgIG1heFdpZHRoOiAnMTAwJScsXG4gIH1cblxuICBpZiAoaXNUYXNrIHx8IGlzUHJvamVjdCkge1xuICAgIHJldHVybiBjcmVhdGVFbGVtZW50KCdzcGFuJywgeyBzdHlsZTogb3V0ZXJTdHlsZSB9LCBsYWJlbEVsKVxuICB9XG5cbiAgcmV0dXJuIGNyZWF0ZUVsZW1lbnQoXG4gICAgJ3NwYW4nLFxuICAgIHsgc3R5bGU6IG91dGVyU3R5bGUgfSxcbiAgICBjcmVhdGVFbGVtZW50KFxuICAgICAgJ3NwYW4nLFxuICAgICAge1xuICAgICAgICBzdHlsZToge1xuICAgICAgICAgIGRpc3BsYXk6ICdpbmxpbmUtYmxvY2snLFxuICAgICAgICAgIHZlcnRpY2FsQWxpZ246ICdtaWRkbGUnLFxuICAgICAgICAgIG1hcmdpblJpZ2h0OiAnMnB4JyxcbiAgICAgICAgICBsaW5lSGVpZ2h0OiAnMScsXG4gICAgICAgICAgd2lkdGg6ICcxNHB4JyxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICBnZXRDb250ZXh0TWVudGlvbkljb24obWVudGlvbi50eXBlLCBpY29uQ29sb3IsIG1lbnRpb24uaWQsIGljb25TaXplKVxuICAgICksXG4gICAgbGFiZWxFbFxuICApXG59XG5cbmNvbnN0IGluaXRpYWxzRnJvbU5hbWUgPSAobmFtZTogc3RyaW5nKTogc3RyaW5nID0+IHtcbiAgY29uc3QgdHJpbW1lZCA9IG5hbWUudHJpbSgpXG4gIGlmICghdHJpbW1lZCkgcmV0dXJuICc/J1xuICBjb25zdCBwYXJ0cyA9IHRyaW1tZWQuc3BsaXQoL1xccysvKS5maWx0ZXIoQm9vbGVhbilcbiAgaWYgKHBhcnRzLmxlbmd0aCA+PSAyKSB7XG4gICAgY29uc3QgZmlyc3QgPSBwYXJ0c1swXT8uY2hhckF0KDApID8/ICcnXG4gICAgY29uc3QgbGFzdCA9IHBhcnRzW3BhcnRzLmxlbmd0aCAtIDFdPy5jaGFyQXQoMCkgPz8gJydcbiAgICByZXR1cm4gYCR7Zmlyc3R9JHtsYXN0fWAudG9VcHBlckNhc2UoKVxuICB9XG4gIGNvbnN0IHNpbmdsZSA9IHBhcnRzWzBdID8/ICcnXG4gIHJldHVybiBzaW5nbGUubGVuZ3RoID49IDIgPyBzaW5nbGUuc2xpY2UoMCwgMikudG9VcHBlckNhc2UoKSA6IChzaW5nbGUuY2hhckF0KDApIHx8ICc/JykudG9VcHBlckNhc2UoKVxufVxuXG5jb25zdCBUT09MVElQX0ZPTlQgPSBgdmFyKC0tY29yLXR5cG9ncmFwaHktZm9udC1mYW1pbHksICdXb3JrIFNhbnMnKWBcbmNvbnN0IFRPT0xUSVBfU0VDT05EQVJZX0NPTE9SID0gJ3ZhcigtLVRleHQtU2Vjb25kYXJ5LURhcmssICM2NjYpJ1xuY29uc3QgVE9PTFRJUF9TRUNPTkRBUllfU1RZTEUgPSB7XG4gIGZvbnRGYW1pbHk6IFRPT0xUSVBfRk9OVCxcbiAgZm9udFNpemU6ICcxNHB4JyxcbiAgZm9udFdlaWdodDogJzQwMCcsXG4gIGxpbmVIZWlnaHQ6ICcyMHB4JyxcbiAgY29sb3I6IFRPT0xUSVBfU0VDT05EQVJZX0NPTE9SLFxufVxuXG4vKiogQW5jaG8gbcOtbmltbyBkZWwgdG9vbHRpcCAoaW5jbC4gcGFkZGluZyBob3Jpem9udGFsIDgrOCkuICovXG5jb25zdCBVU0VSX1RPT0xUSVBfTUlOX1dJRFRIX1BYID0gMjkyXG4vKiogUGFkZGluZyBob3Jpem9udGFsIHRvdGFsIGRlbCB0b29sdGlwLiAqL1xuY29uc3QgVVNFUl9UT09MVElQX1BBRF9YX1BYID0gMTZcbi8qKiBBdmF0YXIgMjRweCArIGdhcCA4cHggcmVzcGVjdG8gYSBsYSBjb2x1bW5hIGRlIHRleHRvLiAqL1xuY29uc3QgVVNFUl9UT09MVElQX0FWQVRBUl9HQVBfUFggPSAzMlxuLyoqXG4gKiBBbmNobyBtw6F4aW1vIGRlIGxhIGZpbGEgbm9tYnJlIHwgcG9zaWNpw7NuOiBtaXNtbyBodWVjbyBxdWUgY29uIHRvb2x0aXAgZmlqbyAyOTJweCxcbiAqIHBhcmEgcXVlIHNvbG8gZWwgZW1haWwgZW5zYW5jaGUgZWwgY29udGVuZWRvci5cbiAqL1xuY29uc3QgVVNFUl9UT09MVElQX05BTUVfUk9XX01BWF9QWCA9IFVTRVJfVE9PTFRJUF9NSU5fV0lEVEhfUFggLSBVU0VSX1RPT0xUSVBfUEFEX1hfUFggLSBVU0VSX1RPT0xUSVBfQVZBVEFSX0dBUF9QWFxuXG5jb25zdCBjcmVhdGVVc2VyVG9vbHRpcEVsID0gKG1lbnRpb246IENvbnRleHRNZW50aW9uKTogSFRNTEVsZW1lbnQgPT4ge1xuICBjb25zdCB7IGxhYmVsLCBtZXRhZGF0YSB9ID0gbWVudGlvblxuICBjb25zdCBwaWN0dXJlID0gbWV0YWRhdGE/LnBpY3R1cmUgPz8gbnVsbFxuICBjb25zdCBwb3NpdGlvbk5hbWUgPSBtZXRhZGF0YT8ucG9zaXRpb25OYW1lPy50cmltKCkgPz8gJydcbiAgY29uc3QgcG9zaXRpb25MaW5lID1cbiAgICBwb3NpdGlvbk5hbWUgfHxcbiAgICBpMThuLnQoJ2NvbnRleHRNZW50aW9uLnVzZXJOb1Bvc2l0aW9uJywge1xuICAgICAgZGVmYXVsdFZhbHVlOiAnU2luIHBvc2ljacOzbicsXG4gICAgfSlcbiAgY29uc3QgZW1haWwgPSBtZXRhZGF0YT8uZW1haWw/LnRyaW0oKSA/PyAnJ1xuICAvKiogTWlzbWEgZnVlbnRlIHF1ZSBgQ29udGV4dE1lbnRpb25JdGVtYCAoYXZhdGFyKTogbm9tYnJlIGRlIHF1ZXJ5LCBubyBlbCBsYWJlbCBkZWwgY2hpcCAoZWouIFwiWW9cIikuICovXG4gIGNvbnN0IG5hbWVGb3JJbml0aWFscyA9IChtZXRhZGF0YT8ubmFtZT8udHJpbSgpID8gbWV0YWRhdGEubmFtZSA6IGxhYmVsKS50cmltKClcblxuICBjb25zdCB0b29sdGlwID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2JylcbiAgT2JqZWN0LmFzc2lnbih0b29sdGlwLnN0eWxlLCB7XG4gICAgcG9zaXRpb246ICdmaXhlZCcsXG4gICAgekluZGV4OiAnOTk5OScsXG4gICAgbWluV2lkdGg6IGAke1VTRVJfVE9PTFRJUF9NSU5fV0lEVEhfUFh9cHhgLFxuICAgIHdpZHRoOiAnbWF4LWNvbnRlbnQnLFxuICAgIG1heFdpZHRoOiAnbWluKDU2MHB4LCBjYWxjKDEwMHZ3IC0gMjRweCkpJyxcbiAgICBwYWRkaW5nOiAnMTJweCA4cHgnLFxuICAgIGRpc3BsYXk6ICdmbGV4JyxcbiAgICBmbGV4RGlyZWN0aW9uOiAnY29sdW1uJyxcbiAgICBhbGlnbkl0ZW1zOiAnZmxleC1zdGFydCcsXG4gICAgYm9yZGVyUmFkaXVzOiAnNHB4JyxcbiAgICBib3JkZXI6ICcxcHggc29saWQgdmFyKC0tQ29sb3ItTGlnaHQtR3JheSwgI0UwRTBFMCknLFxuICAgIGJhY2tncm91bmQ6ICcjRkZGJyxcbiAgICBib3hTaGFkb3c6ICcwIDFweCA0cHggMCByZ2JhKDAsMCwwLDAuMDgpLCAwIDFweCA0cHggMCByZ2JhKDAsMCwwLDAuMDQpJyxcbiAgICBib3hTaXppbmc6ICdib3JkZXItYm94JyxcbiAgICBwb2ludGVyRXZlbnRzOiAnbm9uZScsXG4gICAgb3ZlcmZsb3c6ICdoaWRkZW4nLFxuICB9KVxuXG4gIGNvbnN0IHJvdyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpXG4gIE9iamVjdC5hc3NpZ24ocm93LnN0eWxlLCB7XG4gICAgZGlzcGxheTogJ2ZsZXgnLFxuICAgIGFsaWduSXRlbXM6ICdjZW50ZXInLFxuICAgIGdhcDogJzhweCcsXG4gICAgd2lkdGg6ICdtYXgtY29udGVudCcsXG4gICAgbWF4V2lkdGg6ICcxMDAlJyxcbiAgICBtaW5XaWR0aDogJzAnLFxuICB9KVxuXG4gIC8vIEF2YXRhciBjaXJjdWxhciAoZm90byBvIGluaWNpYWxlcylcbiAgY29uc3QgYXZhdGFyV3JhcCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpXG4gIE9iamVjdC5hc3NpZ24oYXZhdGFyV3JhcC5zdHlsZSwge1xuICAgIHdpZHRoOiAnMjRweCcsXG4gICAgaGVpZ2h0OiAnMjRweCcsXG4gICAgbWluV2lkdGg6ICcyNHB4JyxcbiAgICBib3JkZXJSYWRpdXM6ICcyNHB4JyxcbiAgICBvdmVyZmxvdzogJ2hpZGRlbicsXG4gICAgZGlzcGxheTogJ2ZsZXgnLFxuICAgIGFsaWduSXRlbXM6ICdjZW50ZXInLFxuICAgIGp1c3RpZnlDb250ZW50OiAnY2VudGVyJyxcbiAgICAvKiogTWlzbW8gZm9uZG8gcXVlIGBTQ01Vc2VyQXZhdGFyRmFsbGJhY2tgIGVuIGxhIGZpbGEgZGUgdXN1YXJpbyBkZWwgbW9kYWwuICovXG4gICAgYmFja2dyb3VuZDogJ3ZhcigtLWNvci1jb2xvci1ncmV5LTIwMCwgI2UwZTBlMCknLFxuICAgIGZsZXhTaHJpbms6ICcwJyxcbiAgfSlcblxuICBjb25zdCBpbml0aWFscyA9IGluaXRpYWxzRnJvbU5hbWUobmFtZUZvckluaXRpYWxzKVxuXG4gIGNvbnN0IGNyZWF0ZUluaXRpYWxzRmFsbGJhY2sgPSAoKTogSFRNTEVsZW1lbnQgPT4ge1xuICAgIGNvbnN0IGZiID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3BhbicpXG4gICAgZmIudGV4dENvbnRlbnQgPSBpbml0aWFsc1xuICAgIE9iamVjdC5hc3NpZ24oZmIuc3R5bGUsIHtcbiAgICAgIGZvbnRTaXplOiAnMTBweCcsXG4gICAgICBmb250V2VpZ2h0OiAnNjAwJyxcbiAgICAgIC8qKiBNaXNtbyBjb2xvciBxdWUgYFNDTVVzZXJBdmF0YXJGYWxsYmFja2AgZW4gbGEgZmlsYSBkZSB1c3VhcmlvIGRlbCBtb2RhbC4gKi9cbiAgICAgIGNvbG9yOiAndmFyKC0tY29yLWNvbG9yLXRleHQtc2Vjb25kYXJ5LCAjNjY2KScsXG4gICAgICBsaW5lSGVpZ2h0OiAnMScsXG4gICAgICBmb250RmFtaWx5OiBUT09MVElQX0ZPTlQsXG4gICAgfSlcbiAgICByZXR1cm4gZmJcbiAgfVxuXG4gIGlmIChwaWN0dXJlKSB7XG4gICAgY29uc3QgaW1nID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaW1nJylcbiAgICBpbWcuc3JjID0gcGljdHVyZVxuICAgIGltZy5hbHQgPSAnJ1xuICAgIGltZy5kcmFnZ2FibGUgPSBmYWxzZVxuICAgIE9iamVjdC5hc3NpZ24oaW1nLnN0eWxlLCB7XG4gICAgICB3aWR0aDogJzI0cHgnLFxuICAgICAgaGVpZ2h0OiAnMjRweCcsXG4gICAgICBvYmplY3RGaXQ6ICdjb3ZlcicsXG4gICAgICBkaXNwbGF5OiAnYmxvY2snLFxuICAgICAgYm9yZGVyUmFkaXVzOiAnMjRweCcsXG4gICAgfSlcbiAgICBpbWcub25lcnJvciA9ICgpID0+IHtcbiAgICAgIGltZy5yZW1vdmUoKVxuICAgICAgYXZhdGFyV3JhcC5hcHBlbmRDaGlsZChjcmVhdGVJbml0aWFsc0ZhbGxiYWNrKCkpXG4gICAgfVxuICAgIGF2YXRhcldyYXAuYXBwZW5kQ2hpbGQoaW1nKVxuICB9IGVsc2Uge1xuICAgIGF2YXRhcldyYXAuYXBwZW5kQ2hpbGQoY3JlYXRlSW5pdGlhbHNGYWxsYmFjaygpKVxuICB9XG5cbiAgLy8gQ29sdW1uYSBkZSBpbmZvOiBjcmVjZSBjb24gZWwgZW1haWwgKHVuYSBsw61uZWEpOyBsYSBmaWxhIG5vbWJyZSBtYW50aWVuZSBhbmNobyBiYXNlLlxuICBjb25zdCBpbmZvQ29sID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2JylcbiAgT2JqZWN0LmFzc2lnbihpbmZvQ29sLnN0eWxlLCB7XG4gICAgZGlzcGxheTogJ2ZsZXgnLFxuICAgIGZsZXhEaXJlY3Rpb246ICdjb2x1bW4nLFxuICAgIGp1c3RpZnlDb250ZW50OiAnY2VudGVyJyxcbiAgICBhbGlnbkl0ZW1zOiAnZmxleC1zdGFydCcsXG4gICAgZ2FwOiAnMnB4JyxcbiAgICBtaW5XaWR0aDogYCR7VVNFUl9UT09MVElQX05BTUVfUk9XX01BWF9QWH1weGAsXG4gICAgd2lkdGg6ICdtYXgtY29udGVudCcsXG4gICAgbWF4V2lkdGg6ICcxMDAlJyxcbiAgfSlcblxuICAvLyBGaWxhOiBub21icmUgKyBzZXBhcmFkb3IgKyBwb3NpY2nDs24gKGFuY2hvIGZpam8gY29tbyBhbnRlczsgbm8gZW5zYW5jaGEgZWwgdG9vbHRpcClcbiAgY29uc3QgbmFtZVJvdyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpXG4gIE9iamVjdC5hc3NpZ24obmFtZVJvdy5zdHlsZSwge1xuICAgIGRpc3BsYXk6ICdmbGV4JyxcbiAgICBhbGlnbkl0ZW1zOiAnZmxleC1zdGFydCcsXG4gICAgZ2FwOiAnNHB4JyxcbiAgICBtaW5XaWR0aDogJzAnLFxuICAgIHdpZHRoOiBgJHtVU0VSX1RPT0xUSVBfTkFNRV9ST1dfTUFYX1BYfXB4YCxcbiAgICBtYXhXaWR0aDogYCR7VVNFUl9UT09MVElQX05BTUVfUk9XX01BWF9QWH1weGAsXG4gIH0pXG5cbiAgY29uc3QgbmFtZVNwYW4gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzcGFuJylcbiAgbmFtZVNwYW4udGV4dENvbnRlbnQgPSBsYWJlbFxuICBPYmplY3QuYXNzaWduKG5hbWVTcGFuLnN0eWxlLCB7XG4gICAgZmxleDogJzEgMSAwJyxcbiAgICBtaW5XaWR0aDogJzAnLFxuICAgIG92ZXJmbG93OiAnaGlkZGVuJyxcbiAgICB0ZXh0T3ZlcmZsb3c6ICdlbGxpcHNpcycsXG4gICAgd2hpdGVTcGFjZTogJ25vd3JhcCcsXG4gICAgY29sb3I6ICd2YXIoLS1UZXh0LVByaW1hcnktRGFyaywgIzIwMjAxRiknLFxuICAgIGZvbnRGYW1pbHk6IFRPT0xUSVBfRk9OVCxcbiAgICBmb250U2l6ZTogJzE0cHgnLFxuICAgIGZvbnRXZWlnaHQ6ICc1MDAnLFxuICAgIGxpbmVIZWlnaHQ6ICcxMzAlJyxcbiAgfSlcbiAgbmFtZVJvdy5hcHBlbmRDaGlsZChuYW1lU3BhbilcblxuICBjb25zdCBzZXAgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzcGFuJylcbiAgc2VwLnRleHRDb250ZW50ID0gJ3wnXG4gIE9iamVjdC5hc3NpZ24oc2VwLnN0eWxlLCB7IC4uLlRPT0xUSVBfU0VDT05EQVJZX1NUWUxFLCBmbGV4U2hyaW5rOiAnMCcgfSlcbiAgbmFtZVJvdy5hcHBlbmRDaGlsZChzZXApXG5cbiAgY29uc3QgcG9zU3BhbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NwYW4nKVxuICBwb3NTcGFuLnRleHRDb250ZW50ID0gcG9zaXRpb25MaW5lXG4gIE9iamVjdC5hc3NpZ24ocG9zU3Bhbi5zdHlsZSwge1xuICAgIC4uLlRPT0xUSVBfU0VDT05EQVJZX1NUWUxFLFxuICAgIGZsZXg6ICcxIDEgMCcsXG4gICAgbWluV2lkdGg6ICcwJyxcbiAgICBvdmVyZmxvdzogJ2hpZGRlbicsXG4gICAgdGV4dE92ZXJmbG93OiAnZWxsaXBzaXMnLFxuICAgIHdoaXRlU3BhY2U6ICdub3dyYXAnLFxuICB9KVxuICBuYW1lUm93LmFwcGVuZENoaWxkKHBvc1NwYW4pXG5cbiAgaW5mb0NvbC5hcHBlbmRDaGlsZChuYW1lUm93KVxuXG4gIGlmIChlbWFpbCkge1xuICAgIGNvbnN0IGVtYWlsU3BhbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NwYW4nKVxuICAgIGVtYWlsU3Bhbi50ZXh0Q29udGVudCA9IGVtYWlsXG4gICAgT2JqZWN0LmFzc2lnbihlbWFpbFNwYW4uc3R5bGUsIHtcbiAgICAgIC4uLlRPT0xUSVBfU0VDT05EQVJZX1NUWUxFLFxuICAgICAgd2hpdGVTcGFjZTogJ25vd3JhcCcsXG4gICAgICBtYXhXaWR0aDogJzEwMCUnLFxuICAgICAgb3ZlcmZsb3c6ICdoaWRkZW4nLFxuICAgICAgdGV4dE92ZXJmbG93OiAnZWxsaXBzaXMnLFxuICAgIH0pXG4gICAgaW5mb0NvbC5hcHBlbmRDaGlsZChlbWFpbFNwYW4pXG4gIH1cblxuICByb3cuYXBwZW5kQ2hpbGQoYXZhdGFyV3JhcClcbiAgcm93LmFwcGVuZENoaWxkKGluZm9Db2wpXG4gIHRvb2x0aXAuYXBwZW5kQ2hpbGQocm93KVxuXG4gIHJldHVybiB0b29sdGlwXG59XG5cbi8qKlxuICogQ3JlYSB1biBgPHNwYW4+YCBhdMOzbWljbyBsaXN0byBwYXJhIGluc2VydGFyc2UgZGVudHJvIGRlbCBjb250ZW50ZWRpdGFibGVcbiAqIGRlbCBgQ29udGV4dE1lbnRpb25FZGl0b3JgLiBTZSBtYXJjYSBjb24gbG9zIGBkYXRhLW1lbnRpb24qYCBuZWNlc2FyaW9zIHBhcmFcbiAqIHF1ZSBgdXNlQ29udGV4dE1lbnRpb25zLnNlcmlhbGl6ZSgpYCBwdWVkYSB2b2x2ZXIgYSBleHRyYWVyIGxhIG1lbnRpb24uXG4gKlxuICogQ29tcGFydGUgbG9zIGVzdGlsb3MgY29uIGVsIGNvbXBvbmVudGUgYENvbnRleHRNZW50aW9uQ2hpcGAgdmlhXG4gKiBgYXBwbHlNZW50aW9uQ2hpcFN0eWxlc2AsIGFzZWd1cmFuZG8gdW5hIMO6bmljYSBmdWVudGUgZGUgdmVyZGFkIHZpc3VhbC5cbiAqL1xuZXhwb3J0IGNvbnN0IGJ1aWxkQ2hpcEVsZW1lbnQgPSAobWVudGlvbjogQ29udGV4dE1lbnRpb24pOiBIVE1MU3BhbkVsZW1lbnQgPT4ge1xuICBjb25zdCBjaGlwID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3BhbicpXG4gIGNoaXAuc2V0QXR0cmlidXRlKCdjb250ZW50ZWRpdGFibGUnLCAnZmFsc2UnKVxuICBjaGlwLnNldEF0dHJpYnV0ZSgnZGF0YS1tZW50aW9uLWNoaXAnLCAndHJ1ZScpXG4gIGNoaXAuY2xhc3NOYW1lID0gQ09OVEVYVF9NRU5USU9OX0NISVBfQ0xBU1NcbiAgY2hpcC5zZXRBdHRyaWJ1dGUoJ2RhdGEtbWVudGlvbi10eXBlJywgbWVudGlvbi50eXBlKVxuICBjaGlwLnNldEF0dHJpYnV0ZSgnZGF0YS1tZW50aW9uLXN1cmZhY2UnLCAnZWRpdG9yJylcbiAgYXBwbHlNZW50aW9uQ2hpcFN0eWxlcyhjaGlwLCBtZW50aW9uLnR5cGUpXG4gIGNvbnN0IGlzVGFzayA9IG1lbnRpb24udHlwZSA9PT0gJ3Rhc2snXG4gIGNvbnN0IGNvbW1vbiA9IHtcbiAgICBib3hTaXppbmc6ICdib3JkZXItYm94JyxcbiAgICB2ZXJ0aWNhbEFsaWduOiAnYmFzZWxpbmUnLFxuICAgIG92ZXJmbG93OiAndmlzaWJsZScsXG4gICAgbWF4V2lkdGg6ICcxMDAlJyxcbiAgfSBhcyBjb25zdFxuICBpZiAoaXNUYXNrKSB7XG4gICAgT2JqZWN0LmFzc2lnbihjaGlwLnN0eWxlLCBjb21tb24sIHtcbiAgICAgIGxpbmVIZWlnaHQ6ICcyMHB4JyxcbiAgICAgIGhlaWdodDogJ2F1dG8nLFxuICAgICAgbWluSGVpZ2h0OiAnYXV0bycsXG4gICAgICBtYXhIZWlnaHQ6ICdub25lJyxcbiAgICB9KVxuICB9IGVsc2Uge1xuICAgIE9iamVjdC5hc3NpZ24oY2hpcC5zdHlsZSwgY29tbW9uLCB7XG4gICAgICBsaW5lSGVpZ2h0OiAnMjBweCcsXG4gICAgICBoZWlnaHQ6ICdhdXRvJyxcbiAgICAgIG1pbkhlaWdodDogJ2F1dG8nLFxuICAgICAgbWF4SGVpZ2h0OiAnbm9uZScsXG4gICAgfSlcbiAgfVxuICBjb25zdCBtb3VudE5vZGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzcGFuJylcbiAgbW91bnROb2RlLnN0eWxlLmRpc3BsYXkgPSAnaW5saW5lJ1xuICBtb3VudE5vZGUuc3R5bGUubWF4V2lkdGggPSAnMTAwJSdcbiAgbW91bnROb2RlLnN0eWxlLnZlcnRpY2FsQWxpZ24gPSAnYmFzZWxpbmUnXG4gIG1vdW50Tm9kZS5zdHlsZS5ib3hTaXppbmcgPSAnYm9yZGVyLWJveCdcbiAgY2hpcC5hcHBlbmRDaGlsZChtb3VudE5vZGUpXG4gIGNvbnN0IHJvb3QgPSBjcmVhdGVSb290KG1vdW50Tm9kZSlcblxuICBmbHVzaFN5bmMoKCkgPT4ge1xuICAgIHJvb3QucmVuZGVyKGNyZWF0ZUVsZW1lbnQoRWRpdGFibGVNZW50aW9uQ2hpcCwgeyBtZW50aW9uIH0pKVxuICB9KVxuXG4gIGlmIChtZW50aW9uLnR5cGUgPT09ICd0YXNrJykge1xuICAgIGNoaXAuc3R5bGUuY3Vyc29yID0gJ3BvaW50ZXInXG4gICAgY2hpcC5vbmNsaWNrID0gZSA9PiB7XG4gICAgICBlLnByZXZlbnREZWZhdWx0KClcbiAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKClcbiAgICAgIG9wZW5UYXNrSW5Db3JQYW5lbChtZW50aW9uLmlkLCAnZGV0YWlsJylcbiAgICB9XG4gIH0gZWxzZSBpZiAobWVudGlvbi50eXBlID09PSAncHJvamVjdCcpIHtcbiAgICBjaGlwLnN0eWxlLmN1cnNvciA9ICdwb2ludGVyJ1xuICAgIGNoaXAub25jbGljayA9IGUgPT4ge1xuICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpXG4gICAgICBlLnN0b3BQcm9wYWdhdGlvbigpXG4gICAgICB3aW5kb3cub3BlbihgL3Byb2plY3QvJHttZW50aW9uLmlkfS9kYXNoYm9hcmRgLCAnX2JsYW5rJylcbiAgICB9XG4gIH0gZWxzZSBpZiAobWVudGlvbi50eXBlID09PSAndXNlcicpIHtcbiAgICBsZXQgdG9vbHRpcEVsOiBIVE1MRWxlbWVudCB8IG51bGwgPSBudWxsXG4gICAgbGV0IGNoaXBSZW1vdmVkT2JzZXJ2ZXI6IE11dGF0aW9uT2JzZXJ2ZXIgfCBudWxsID0gbnVsbFxuXG4gICAgY29uc3QgcmVtb3ZlVXNlclRvb2x0aXAgPSAoKSA9PiB7XG4gICAgICBjaGlwUmVtb3ZlZE9ic2VydmVyPy5kaXNjb25uZWN0KClcbiAgICAgIGNoaXBSZW1vdmVkT2JzZXJ2ZXIgPSBudWxsXG4gICAgICBpZiAodG9vbHRpcEVsKSB7XG4gICAgICAgIHRvb2x0aXBFbC5yZW1vdmUoKVxuICAgICAgICB0b29sdGlwRWwgPSBudWxsXG4gICAgICB9XG4gICAgfVxuXG4gICAgLyoqIFNpIGVsIGNoaXAgc2UgYm9ycmEgZGVsIGVkaXRvciAoQmFja3NwYWNlLCBldGMuKSBubyBzaWVtcHJlIGhheSBgbW91c2VsZWF2ZWA7IGNlcnJhciBlbCB0b29sdGlwLiAqL1xuICAgIGNvbnN0IHdhdGNoQ2hpcFJlbW92ZWRGcm9tRG9tID0gKCkgPT4ge1xuICAgICAgY29uc3QgcGFyZW50ID0gY2hpcC5wYXJlbnROb2RlXG4gICAgICBpZiAoIXBhcmVudCkgcmV0dXJuXG4gICAgICBjaGlwUmVtb3ZlZE9ic2VydmVyPy5kaXNjb25uZWN0KClcbiAgICAgIGNoaXBSZW1vdmVkT2JzZXJ2ZXIgPSBuZXcgTXV0YXRpb25PYnNlcnZlcigoKSA9PiB7XG4gICAgICAgIGlmICghY2hpcC5pc0Nvbm5lY3RlZCkgcmVtb3ZlVXNlclRvb2x0aXAoKVxuICAgICAgfSlcbiAgICAgIGNoaXBSZW1vdmVkT2JzZXJ2ZXIub2JzZXJ2ZShwYXJlbnQsIHsgY2hpbGRMaXN0OiB0cnVlLCBzdWJ0cmVlOiB0cnVlIH0pXG4gICAgfVxuXG4gICAgY2hpcC5hZGRFdmVudExpc3RlbmVyKCdtb3VzZWVudGVyJywgKCkgPT4ge1xuICAgICAgaWYgKHRvb2x0aXBFbCkgcmV0dXJuXG4gICAgICB0b29sdGlwRWwgPSBjcmVhdGVVc2VyVG9vbHRpcEVsKG1lbnRpb24pXG4gICAgICBjb25zdCByZWN0ID0gY2hpcC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKVxuICAgICAgY29uc3QgbGVmdCA9IE1hdGgubWF4KDgsIE1hdGgubWluKHdpbmRvdy5pbm5lcldpZHRoIC0gMzAwLCByZWN0LmxlZnQpKVxuICAgICAgdG9vbHRpcEVsLnN0eWxlLnRvcCA9IGAke3JlY3QudG9wfXB4YFxuICAgICAgdG9vbHRpcEVsLnN0eWxlLmxlZnQgPSBgJHtsZWZ0fXB4YFxuICAgICAgdG9vbHRpcEVsLnN0eWxlLnRyYW5zZm9ybSA9ICd0cmFuc2xhdGVZKGNhbGMoLTEwMCUgLSA0cHgpKSdcbiAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQodG9vbHRpcEVsKVxuICAgICAgd2F0Y2hDaGlwUmVtb3ZlZEZyb21Eb20oKVxuICAgIH0pXG5cbiAgICBjaGlwLmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlbGVhdmUnLCByZW1vdmVVc2VyVG9vbHRpcClcbiAgfVxuXG4gIHJldHVybiBjaGlwXG59XG4iXSwibWFwcGluZ3MiOiI7OztBQUFBLFNBQVNBLGFBQWEsUUFBNEIsT0FBTztBQUN6RCxTQUFTQyxTQUFTLFFBQVEsV0FBVztBQUNyQyxT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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=
|