@projectcor/maia-components 2.11.40-4 → 2.11.40-5

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.
Files changed (82) hide show
  1. package/lib/App.js +11 -22
  2. package/lib/components/atoms/MAIAInput/MAIAInput.js +321 -238
  3. package/lib/components/atoms/MAIAInput/styles.js +46 -75
  4. package/lib/components/atoms/icons/index.js +1 -2
  5. package/lib/components/index.js +1 -2
  6. package/lib/components/molecules/ChatAIHistory/ChatAIHistory.js +4 -8
  7. package/lib/components/molecules/ChatAIMessages/ChatAIMessages.js +3 -31
  8. package/lib/components/molecules/ChatAIMessages/newStyles.js +2 -5
  9. package/lib/components/molecules/ChatAIModal/ChatAIModal.js +71 -9
  10. package/lib/components/molecules/ChatFooter/ChatFooter.js +4 -5
  11. package/lib/components/molecules/Sidebar/Sidebar.js +5 -9
  12. package/lib/components/molecules/Sidebar/Sidebar.layout.styles.js +2 -6
  13. package/lib/components/organisms/ChatAI/ChatAI.js +37 -4
  14. package/lib/components/organisms/DeleteQuestionModal/DeleteQuestionModal.js +2 -5
  15. package/lib/components/organisms/EditQuestionModal/EditQuestionModal.js +3 -6
  16. package/lib/constants/config.js +1 -3
  17. package/lib/context/cor-user.js +1 -1
  18. package/lib/context/global-context.js +5 -1
  19. package/lib/dev/Providers.js +6 -11
  20. package/lib/hooks/useChatManager/useChatManager.interface.js +1 -1
  21. package/lib/hooks/useChatManager/useChatManager.js +24 -22
  22. package/lib/hooks/useChatMessages/useChatMessages.interface.js +1 -1
  23. package/lib/hooks/useChatMessages/useChatMessages.js +14 -30
  24. package/lib/hooks/useClientSearch.js +2 -3
  25. package/lib/hooks/useEvent.js +1 -6
  26. package/lib/hooks/useOrchestratorStream/useOrchestratorStream.js +4 -6
  27. package/lib/hooks/useProjectSearch.js +2 -3
  28. package/lib/hooks/useRecentClientsSearch.js +2 -3
  29. package/lib/hooks/useTaskPanel.js +10 -3
  30. package/lib/lang/br/index.js +1 -24
  31. package/lib/lang/en/index.js +1 -24
  32. package/lib/lang/es/index.js +1 -24
  33. package/lib/lang/fr/index.js +1 -23
  34. package/lib/services/maia/Chats/getChatMessages.js +4 -29
  35. package/lib/services/maia/Faqs/getFrequentlyAskedQuestions.js +8 -4
  36. package/lib/services/maia/Orchestrator/orchestrator.js +11 -8
  37. package/lib/services/maia/RecentProjects/getRecentProjects.js +4 -12
  38. package/lib/services/utils/mapChatMessages.js +5 -12
  39. package/lib/types/Chat.js +1 -1
  40. package/lib/types/agent.js +1 -1
  41. package/package.json +1 -1
  42. package/lib/components/atoms/ContextMentionChip/ContextMentionChip.js +0 -36
  43. package/lib/components/atoms/ContextMentionChip/ContextMentionChip.styles.js +0 -181
  44. package/lib/components/atoms/ContextMentionChip/MentionOverflowLabel.js +0 -39
  45. package/lib/components/atoms/ContextMentionChip/buildChipElement.js +0 -324
  46. package/lib/components/atoms/ContextMentionChip/index.js +0 -4
  47. package/lib/components/atoms/ContextMentionEditor/ContextMentionEditor.js +0 -195
  48. package/lib/components/atoms/ContextMentionEditor/ContextMentionEditor.styles.js +0 -6
  49. package/lib/components/atoms/ContextMentionEditor/index.js +0 -2
  50. package/lib/components/atoms/ContextMentionItem/ContextMentionItem.js +0 -283
  51. package/lib/components/atoms/ContextMentionItem/ContextMentionItem.styles.js +0 -111
  52. package/lib/components/atoms/ContextMentionItem/index.js +0 -2
  53. package/lib/components/atoms/ContextMentionPopover/ContextMentionPopover.js +0 -142
  54. package/lib/components/atoms/ContextMentionPopover/ContextMentionPopover.styles.js +0 -75
  55. package/lib/components/atoms/ContextMentionPopover/index.js +0 -3
  56. package/lib/components/atoms/MAIAInput/MAIAInputEditor.js +0 -269
  57. package/lib/components/atoms/icons/NotionIcon.js +0 -36
  58. package/lib/components/atoms/icons/SubtaskIcon.js +0 -36
  59. package/lib/components/molecules/ContextMentionInput/ContextMentionInput.js +0 -68
  60. package/lib/components/molecules/ContextMentionInput/ContextMentionInput.styles.js +0 -6
  61. package/lib/components/molecules/ContextMentionInput/index.js +0 -2
  62. package/lib/constants/taskLinkIcon.js +0 -6
  63. package/lib/dev/DevContextMentionInput.js +0 -65
  64. package/lib/hooks/useCaretPosition.js +0 -35
  65. package/lib/hooks/useContextMentions.js +0 -270
  66. package/lib/hooks/useEntitySearch.js +0 -545
  67. package/lib/hooks/useMentionAllowedTypes.js +0 -103
  68. package/lib/hooks/useMentionPopover.js +0 -320
  69. package/lib/hooks/useTextOverflowEllipsisTooltip.js +0 -35
  70. package/lib/services/maia/RecentTasks/getRecentTasks.js +0 -54
  71. package/lib/services/maia/RecentTasks/index.js +0 -6
  72. package/lib/services/maia/RecentUsers/getRecentUsers.js +0 -59
  73. package/lib/services/maia/RecentUsers/index.js +0 -6
  74. package/lib/services/query/entitySearchQuery.js +0 -16
  75. package/lib/services/query/usersDirectoryQuery.js +0 -19
  76. package/lib/types/contextMention.js +0 -37
  77. package/lib/utils/contextMentionIcons.js +0 -115
  78. package/lib/utils/contextMentionLabel.js +0 -4
  79. package/lib/utils/contextMentionTypeLabel.js +0 -17
  80. package/lib/utils/maiaStreamdownRehypePlugins.js +0 -27
  81. package/lib/utils/openTaskInCorPanel.js +0 -18
  82. package/lib/utils/renderContextMentions.js +0 -293
@@ -1,324 +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 { CONTEXT_MENTION_CHIP_CLASS } from '../../../types/contextMention';
8
- import { getContextMentionIcon } from '../../../utils/contextMentionIcons';
9
- import { normalizeContextMentionLabel } from '../../../utils/contextMentionLabel';
10
- import { openTaskInCorPanel } from '../../../utils/openTaskInCorPanel';
11
- import { applyMentionChipStyles, MENTION_CHIP_COLORS } from './ContextMentionChip.styles';
12
- var EDITABLE_NON_TASK_LABEL_STYLE = {
13
- display: 'inline',
14
- lineHeight: '20px',
15
- alignSelf: 'baseline',
16
- minWidth: 0,
17
- maxWidth: '100%',
18
- whiteSpace: 'normal',
19
- overflowWrap: 'break-word',
20
- wordBreak: 'break-word'
21
- };
22
-
23
- /** Texto de tarea: sin borde inferior; el aspecto de enlace lo da el CSS global (::before + color). */
24
- var EDITABLE_TASK_LABEL_STYLE = {
25
- display: 'inline',
26
- fontSize: '14px',
27
- lineHeight: '20px',
28
- fontWeight: '600',
29
- color: 'inherit',
30
- minWidth: 0,
31
- maxWidth: '100%',
32
- whiteSpace: 'normal',
33
- overflowWrap: 'break-word',
34
- wordBreak: 'break-word'
35
- };
36
- var createEditableMentionLabelEl = function createEditableMentionLabelEl(isTask, mentionLabel) {
37
- if (!isTask) {
38
- return /*#__PURE__*/createElement('span', {
39
- style: EDITABLE_NON_TASK_LABEL_STYLE
40
- }, mentionLabel);
41
- }
42
- return /*#__PURE__*/createElement('span', {
43
- style: EDITABLE_TASK_LABEL_STYLE
44
- }, mentionLabel);
45
- };
46
- var EditableMentionChip = function EditableMentionChip(_ref) {
47
- var mention = _ref.mention;
48
- var mentionLabel = normalizeContextMentionLabel(mention.label);
49
- var iconColor = MENTION_CHIP_COLORS[mention.type].fg;
50
- var isTask = mention.type === 'task';
51
- var iconSize = isTask ? 16 : 14;
52
- var labelEl = createEditableMentionLabelEl(isTask, mentionLabel);
53
- var outerStyle = {
54
- position: 'relative',
55
- display: 'inline',
56
- lineHeight: '20px',
57
- boxSizing: 'border-box',
58
- verticalAlign: 'baseline',
59
- maxWidth: '100%'
60
- };
61
- if (isTask) {
62
- return /*#__PURE__*/createElement('span', {
63
- style: outerStyle
64
- }, labelEl);
65
- }
66
- return /*#__PURE__*/createElement('span', {
67
- style: outerStyle
68
- }, /*#__PURE__*/createElement('span', {
69
- style: {
70
- display: 'inline-block',
71
- verticalAlign: 'middle',
72
- marginRight: '2px',
73
- lineHeight: '1',
74
- width: '14px'
75
- }
76
- }, getContextMentionIcon(mention.type, iconColor, mention.id, iconSize)), labelEl);
77
- };
78
- var initialsFromName = function initialsFromName(name) {
79
- var _parts$2;
80
- var trimmed = name.trim();
81
- if (!trimmed) return '?';
82
- var parts = trimmed.split(/\s+/).filter(Boolean);
83
- if (parts.length >= 2) {
84
- var _parts$0$charAt, _parts$, _parts$charAt, _parts;
85
- 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 : '';
86
- 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 : '';
87
- return "".concat(first).concat(last).toUpperCase();
88
- }
89
- var single = (_parts$2 = parts[0]) !== null && _parts$2 !== void 0 ? _parts$2 : '';
90
- return single.length >= 2 ? single.slice(0, 2).toUpperCase() : (single.charAt(0) || '?').toUpperCase();
91
- };
92
- var TOOLTIP_FONT = "var(--cor-typography-font-family, 'Work Sans')";
93
- var TOOLTIP_SECONDARY_COLOR = 'var(--Text-Secondary-Dark, #666)';
94
- var TOOLTIP_SECONDARY_STYLE = {
95
- fontFamily: TOOLTIP_FONT,
96
- fontSize: '14px',
97
- fontWeight: '400',
98
- lineHeight: '20px',
99
- color: TOOLTIP_SECONDARY_COLOR
100
- };
101
- var createUserTooltipEl = function createUserTooltipEl(mention) {
102
- var _metadata$picture, _metadata$positionNam, _metadata$positionNam2, _metadata$email$trim, _metadata$email, _metadata$name;
103
- var label = mention.label,
104
- metadata = mention.metadata;
105
- var picture = (_metadata$picture = metadata === null || metadata === void 0 ? void 0 : metadata.picture) !== null && _metadata$picture !== void 0 ? _metadata$picture : null;
106
- 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 : '';
107
- 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 : '';
108
- /** Misma fuente que `ContextMentionItem` (avatar): nombre de query, no el label del chip (ej. "Yo"). */
109
- var nameForInitials = (metadata !== null && metadata !== void 0 && (_metadata$name = metadata.name) !== null && _metadata$name !== void 0 && _metadata$name.trim() ? metadata.name : label).trim();
110
- var tooltip = document.createElement('div');
111
- Object.assign(tooltip.style, {
112
- position: 'fixed',
113
- zIndex: '9999',
114
- width: '292px',
115
- padding: '12px 8px',
116
- display: 'flex',
117
- flexDirection: 'column',
118
- alignItems: 'flex-start',
119
- borderRadius: '4px',
120
- border: '1px solid var(--Color-Light-Gray, #E0E0E0)',
121
- background: '#FFF',
122
- boxShadow: '0 1px 4px 0 rgba(0,0,0,0.08), 0 1px 4px 0 rgba(0,0,0,0.04)',
123
- boxSizing: 'border-box',
124
- pointerEvents: 'none'
125
- });
126
- var row = document.createElement('div');
127
- Object.assign(row.style, {
128
- display: 'flex',
129
- alignItems: 'center',
130
- gap: '8px',
131
- width: '100%'
132
- });
133
-
134
- // Avatar circular (foto o iniciales)
135
- var avatarWrap = document.createElement('div');
136
- Object.assign(avatarWrap.style, {
137
- width: '24px',
138
- height: '24px',
139
- minWidth: '24px',
140
- borderRadius: '24px',
141
- overflow: 'hidden',
142
- display: 'flex',
143
- alignItems: 'center',
144
- justifyContent: 'center',
145
- background: '#e8f4ff',
146
- flexShrink: '0'
147
- });
148
- var initials = initialsFromName(nameForInitials);
149
- var createInitialsFallback = function createInitialsFallback() {
150
- var fb = document.createElement('span');
151
- fb.textContent = initials;
152
- Object.assign(fb.style, {
153
- fontSize: '10px',
154
- fontWeight: '600',
155
- color: '#2d77bd',
156
- lineHeight: '1',
157
- fontFamily: TOOLTIP_FONT
158
- });
159
- return fb;
160
- };
161
- if (picture) {
162
- var img = document.createElement('img');
163
- img.src = picture;
164
- img.alt = '';
165
- img.draggable = false;
166
- Object.assign(img.style, {
167
- width: '24px',
168
- height: '24px',
169
- objectFit: 'cover',
170
- display: 'block',
171
- borderRadius: '24px'
172
- });
173
- img.onerror = function () {
174
- img.remove();
175
- avatarWrap.appendChild(createInitialsFallback());
176
- };
177
- avatarWrap.appendChild(img);
178
- } else {
179
- avatarWrap.appendChild(createInitialsFallback());
180
- }
181
-
182
- // Columna de info
183
- var infoCol = document.createElement('div');
184
- Object.assign(infoCol.style, {
185
- display: 'flex',
186
- flexDirection: 'column',
187
- justifyContent: 'center',
188
- alignItems: 'flex-start',
189
- gap: '2px',
190
- minWidth: '0',
191
- flex: '1'
192
- });
193
-
194
- // Fila: nombre + separador + posición
195
- var nameRow = document.createElement('div');
196
- Object.assign(nameRow.style, {
197
- display: 'flex',
198
- alignItems: 'flex-start',
199
- gap: '4px'
200
- });
201
- var nameSpan = document.createElement('span');
202
- nameSpan.textContent = label;
203
- Object.assign(nameSpan.style, {
204
- overflow: 'hidden',
205
- textOverflow: 'ellipsis',
206
- whiteSpace: 'nowrap',
207
- color: 'var(--Text-Primary-Dark, #20201F)',
208
- fontFamily: TOOLTIP_FONT,
209
- fontSize: '14px',
210
- fontWeight: '500',
211
- lineHeight: '130%'
212
- });
213
- nameRow.appendChild(nameSpan);
214
- if (positionName) {
215
- var sep = document.createElement('span');
216
- sep.textContent = '|';
217
- Object.assign(sep.style, _objectSpread(_objectSpread({}, TOOLTIP_SECONDARY_STYLE), {}, {
218
- flexShrink: '0'
219
- }));
220
- nameRow.appendChild(sep);
221
- var posSpan = document.createElement('span');
222
- posSpan.textContent = positionName;
223
- Object.assign(posSpan.style, TOOLTIP_SECONDARY_STYLE);
224
- nameRow.appendChild(posSpan);
225
- }
226
- infoCol.appendChild(nameRow);
227
- if (email) {
228
- var emailSpan = document.createElement('span');
229
- emailSpan.textContent = email;
230
- Object.assign(emailSpan.style, TOOLTIP_SECONDARY_STYLE);
231
- infoCol.appendChild(emailSpan);
232
- }
233
- row.appendChild(avatarWrap);
234
- row.appendChild(infoCol);
235
- tooltip.appendChild(row);
236
- return tooltip;
237
- };
238
-
239
- /**
240
- * Crea un `<span>` atómico listo para insertarse dentro del contenteditable
241
- * del `ContextMentionEditor`. Se marca con los `data-mention*` necesarios para
242
- * que `useContextMentions.serialize()` pueda volver a extraer la mention.
243
- *
244
- * Comparte los estilos con el componente `ContextMentionChip` via
245
- * `applyMentionChipStyles`, asegurando una única fuente de verdad visual.
246
- */
247
- export var buildChipElement = function buildChipElement(mention) {
248
- var chip = document.createElement('span');
249
- chip.setAttribute('contenteditable', 'false');
250
- chip.setAttribute('data-mention-chip', 'true');
251
- chip.className = CONTEXT_MENTION_CHIP_CLASS;
252
- chip.setAttribute('data-mention-type', mention.type);
253
- chip.setAttribute('data-mention-surface', 'editor');
254
- applyMentionChipStyles(chip, mention.type);
255
- var isTask = mention.type === 'task';
256
- var common = {
257
- boxSizing: 'border-box',
258
- verticalAlign: 'baseline',
259
- overflow: 'visible',
260
- maxWidth: '100%'
261
- };
262
- if (isTask) {
263
- Object.assign(chip.style, common, {
264
- lineHeight: '20px',
265
- height: 'auto',
266
- minHeight: 'auto',
267
- maxHeight: 'none'
268
- });
269
- } else {
270
- Object.assign(chip.style, common, {
271
- lineHeight: '20px',
272
- height: 'auto',
273
- minHeight: 'auto',
274
- maxHeight: 'none'
275
- });
276
- }
277
- var mountNode = document.createElement('span');
278
- mountNode.style.display = 'inline';
279
- mountNode.style.maxWidth = '100%';
280
- mountNode.style.verticalAlign = 'baseline';
281
- mountNode.style.boxSizing = 'border-box';
282
- chip.appendChild(mountNode);
283
- var root = createRoot(mountNode);
284
- flushSync(function () {
285
- root.render(/*#__PURE__*/createElement(EditableMentionChip, {
286
- mention: mention
287
- }));
288
- });
289
- if (mention.type === 'task') {
290
- chip.style.cursor = 'pointer';
291
- chip.onclick = function (e) {
292
- e.preventDefault();
293
- e.stopPropagation();
294
- openTaskInCorPanel(mention.id, 'detail');
295
- };
296
- } else if (mention.type === 'project') {
297
- chip.style.cursor = 'pointer';
298
- chip.onclick = function (e) {
299
- e.preventDefault();
300
- e.stopPropagation();
301
- window.open("/project/".concat(mention.id, "/dashboard"), '_blank');
302
- };
303
- } else if (mention.type === 'user') {
304
- var tooltipEl = null;
305
- chip.addEventListener('mouseenter', function () {
306
- if (tooltipEl) return;
307
- tooltipEl = createUserTooltipEl(mention);
308
- var rect = chip.getBoundingClientRect();
309
- var left = Math.max(8, Math.min(window.innerWidth - 300, rect.left));
310
- tooltipEl.style.top = "".concat(rect.top, "px");
311
- tooltipEl.style.left = "".concat(left, "px");
312
- tooltipEl.style.transform = 'translateY(calc(-100% - 4px))';
313
- document.body.appendChild(tooltipEl);
314
- });
315
- chip.addEventListener('mouseleave', function () {
316
- if (tooltipEl) {
317
- tooltipEl.remove();
318
- tooltipEl = null;
319
- }
320
- });
321
- }
322
- return chip;
323
- };
324
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJjcmVhdGVFbGVtZW50IiwiZmx1c2hTeW5jIiwiY3JlYXRlUm9vdCIsIkNPTlRFWFRfTUVOVElPTl9DSElQX0NMQVNTIiwiZ2V0Q29udGV4dE1lbnRpb25JY29uIiwibm9ybWFsaXplQ29udGV4dE1lbnRpb25MYWJlbCIsIm9wZW5UYXNrSW5Db3JQYW5lbCIsImFwcGx5TWVudGlvbkNoaXBTdHlsZXMiLCJNRU5USU9OX0NISVBfQ09MT1JTIiwiRURJVEFCTEVfTk9OX1RBU0tfTEFCRUxfU1RZTEUiLCJkaXNwbGF5IiwibGluZUhlaWdodCIsImFsaWduU2VsZiIsIm1pbldpZHRoIiwibWF4V2lkdGgiLCJ3aGl0ZVNwYWNlIiwib3ZlcmZsb3dXcmFwIiwid29yZEJyZWFrIiwiRURJVEFCTEVfVEFTS19MQUJFTF9TVFlMRSIsImZvbnRTaXplIiwiZm9udFdlaWdodCIsImNvbG9yIiwiY3JlYXRlRWRpdGFibGVNZW50aW9uTGFiZWxFbCIsImlzVGFzayIsIm1lbnRpb25MYWJlbCIsInN0eWxlIiwiRWRpdGFibGVNZW50aW9uQ2hpcCIsIl9yZWYiLCJtZW50aW9uIiwibGFiZWwiLCJpY29uQ29sb3IiLCJ0eXBlIiwiZmciLCJpY29uU2l6ZSIsImxhYmVsRWwiLCJvdXRlclN0eWxlIiwicG9zaXRpb24iLCJib3hTaXppbmciLCJ2ZXJ0aWNhbEFsaWduIiwibWFyZ2luUmlnaHQiLCJ3aWR0aCIsImlkIiwiaW5pdGlhbHNGcm9tTmFtZSIsIm5hbWUiLCJfcGFydHMkMiIsInRyaW1tZWQiLCJ0cmltIiwicGFydHMiLCJzcGxpdCIsImZpbHRlciIsIkJvb2xlYW4iLCJsZW5ndGgiLCJfcGFydHMkMCRjaGFyQXQiLCJfcGFydHMkIiwiX3BhcnRzJGNoYXJBdCIsIl9wYXJ0cyIsImZpcnN0IiwiY2hhckF0IiwibGFzdCIsImNvbmNhdCIsInRvVXBwZXJDYXNlIiwic2luZ2xlIiwic2xpY2UiLCJUT09MVElQX0ZPTlQiLCJUT09MVElQX1NFQ09OREFSWV9DT0xPUiIsIlRPT0xUSVBfU0VDT05EQVJZX1NUWUxFIiwiZm9udEZhbWlseSIsImNyZWF0ZVVzZXJUb29sdGlwRWwiLCJfbWV0YWRhdGEkcGljdHVyZSIsIl9tZXRhZGF0YSRwb3NpdGlvbk5hbSIsIl9tZXRhZGF0YSRwb3NpdGlvbk5hbTIiLCJfbWV0YWRhdGEkZW1haWwkdHJpbSIsIl9tZXRhZGF0YSRlbWFpbCIsIl9tZXRhZGF0YSRuYW1lIiwibWV0YWRhdGEiLCJwaWN0dXJlIiwicG9zaXRpb25OYW1lIiwiZW1haWwiLCJuYW1lRm9ySW5pdGlhbHMiLCJ0b29sdGlwIiwiZG9jdW1lbnQiLCJPYmplY3QiLCJhc3NpZ24iLCJ6SW5kZXgiLCJwYWRkaW5nIiwiZmxleERpcmVjdGlvbiIsImFsaWduSXRlbXMiLCJib3JkZXJSYWRpdXMiLCJib3JkZXIiLCJiYWNrZ3JvdW5kIiwiYm94U2hhZG93IiwicG9pbnRlckV2ZW50cyIsInJvdyIsImdhcCIsImF2YXRhcldyYXAiLCJoZWlnaHQiLCJvdmVyZmxvdyIsImp1c3RpZnlDb250ZW50IiwiZmxleFNocmluayIsImluaXRpYWxzIiwiY3JlYXRlSW5pdGlhbHNGYWxsYmFjayIsImZiIiwidGV4dENvbnRlbnQiLCJpbWciLCJzcmMiLCJhbHQiLCJkcmFnZ2FibGUiLCJvYmplY3RGaXQiLCJvbmVycm9yIiwicmVtb3ZlIiwiYXBwZW5kQ2hpbGQiLCJpbmZvQ29sIiwiZmxleCIsIm5hbWVSb3ciLCJuYW1lU3BhbiIsInRleHRPdmVyZmxvdyIsInNlcCIsIl9vYmplY3RTcHJlYWQiLCJwb3NTcGFuIiwiZW1haWxTcGFuIiwiYnVpbGRDaGlwRWxlbWVudCIsImNoaXAiLCJzZXRBdHRyaWJ1dGUiLCJjbGFzc05hbWUiLCJjb21tb24iLCJtaW5IZWlnaHQiLCJtYXhIZWlnaHQiLCJtb3VudE5vZGUiLCJyb290IiwicmVuZGVyIiwiY3Vyc29yIiwib25jbGljayIsImUiLCJwcmV2ZW50RGVmYXVsdCIsInN0b3BQcm9wYWdhdGlvbiIsIndpbmRvdyIsIm9wZW4iLCJ0b29sdGlwRWwiLCJhZGRFdmVudExpc3RlbmVyIiwicmVjdCIsImdldEJvdW5kaW5nQ2xpZW50UmVjdCIsImxlZnQiLCJNYXRoIiwibWF4IiwibWluIiwiaW5uZXJXaWR0aCIsInRvcCIsInRyYW5zZm9ybSIsImJvZHkiXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50cy9hdG9tcy9Db250ZXh0TWVudGlvbkNoaXAvYnVpbGRDaGlwRWxlbWVudC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjcmVhdGVFbGVtZW50LCB0eXBlIENTU1Byb3BlcnRpZXMgfSBmcm9tICdyZWFjdCdcbmltcG9ydCB7IGZsdXNoU3luYyB9IGZyb20gJ3JlYWN0LWRvbSdcbmltcG9ydCB7IGNyZWF0ZVJvb3QgfSBmcm9tICdyZWFjdC1kb20vY2xpZW50J1xuaW1wb3J0IHsgQ09OVEVYVF9NRU5USU9OX0NISVBfQ0xBU1MsIENvbnRleHRNZW50aW9uIH0gZnJvbSAnLi4vLi4vLi4vdHlwZXMvY29udGV4dE1lbnRpb24nXG5pbXBvcnQgeyBnZXRDb250ZXh0TWVudGlvbkljb24gfSBmcm9tICcuLi8uLi8uLi91dGlscy9jb250ZXh0TWVudGlvbkljb25zJ1xuaW1wb3J0IHsgbm9ybWFsaXplQ29udGV4dE1lbnRpb25MYWJlbCB9IGZyb20gJy4uLy4uLy4uL3V0aWxzL2NvbnRleHRNZW50aW9uTGFiZWwnXG5pbXBvcnQgeyBvcGVuVGFza0luQ29yUGFuZWwgfSBmcm9tICcuLi8uLi8uLi91dGlscy9vcGVuVGFza0luQ29yUGFuZWwnXG5pbXBvcnQgeyBhcHBseU1lbnRpb25DaGlwU3R5bGVzLCBNRU5USU9OX0NISVBfQ09MT1JTIH0gZnJvbSAnLi9Db250ZXh0TWVudGlvbkNoaXAuc3R5bGVzJ1xuXG5jb25zdCBFRElUQUJMRV9OT05fVEFTS19MQUJFTF9TVFlMRTogQ1NTUHJvcGVydGllcyA9IHtcbiAgZGlzcGxheTogJ2lubGluZScsXG4gIGxpbmVIZWlnaHQ6ICcyMHB4JyxcbiAgYWxpZ25TZWxmOiAnYmFzZWxpbmUnLFxuICBtaW5XaWR0aDogMCxcbiAgbWF4V2lkdGg6ICcxMDAlJyxcbiAgd2hpdGVTcGFjZTogJ25vcm1hbCcsXG4gIG92ZXJmbG93V3JhcDogJ2JyZWFrLXdvcmQnLFxuICB3b3JkQnJlYWs6ICdicmVhay13b3JkJyxcbn1cblxuLyoqIFRleHRvIGRlIHRhcmVhOiBzaW4gYm9yZGUgaW5mZXJpb3I7IGVsIGFzcGVjdG8gZGUgZW5sYWNlIGxvIGRhIGVsIENTUyBnbG9iYWwgKDo6YmVmb3JlICsgY29sb3IpLiAqL1xuY29uc3QgRURJVEFCTEVfVEFTS19MQUJFTF9TVFlMRTogQ1NTUHJvcGVydGllcyA9IHtcbiAgZGlzcGxheTogJ2lubGluZScsXG4gIGZvbnRTaXplOiAnMTRweCcsXG4gIGxpbmVIZWlnaHQ6ICcyMHB4JyxcbiAgZm9udFdlaWdodDogJzYwMCcsXG4gIGNvbG9yOiAnaW5oZXJpdCcsXG4gIG1pbldpZHRoOiAwLFxuICBtYXhXaWR0aDogJzEwMCUnLFxuICB3aGl0ZVNwYWNlOiAnbm9ybWFsJyxcbiAgb3ZlcmZsb3dXcmFwOiAnYnJlYWstd29yZCcsXG4gIHdvcmRCcmVhazogJ2JyZWFrLXdvcmQnLFxufVxuXG5jb25zdCBjcmVhdGVFZGl0YWJsZU1lbnRpb25MYWJlbEVsID0gKGlzVGFzazogYm9vbGVhbiwgbWVudGlvbkxhYmVsOiBzdHJpbmcpID0+IHtcbiAgaWYgKCFpc1Rhc2spIHtcbiAgICByZXR1cm4gY3JlYXRlRWxlbWVudCgnc3BhbicsIHsgc3R5bGU6IEVESVRBQkxFX05PTl9UQVNLX0xBQkVMX1NUWUxFIH0sIG1lbnRpb25MYWJlbClcbiAgfVxuICByZXR1cm4gY3JlYXRlRWxlbWVudCgnc3BhbicsIHsgc3R5bGU6IEVESVRBQkxFX1RBU0tfTEFCRUxfU1RZTEUgfSwgbWVudGlvbkxhYmVsKVxufVxuXG50eXBlIEVkaXRhYmxlTWVudGlvbkNoaXBQcm9wcyA9IHtcbiAgbWVudGlvbjogQ29udGV4dE1lbnRpb25cbn1cblxuY29uc3QgRWRpdGFibGVNZW50aW9uQ2hpcCA9ICh7IG1lbnRpb24gfTogRWRpdGFibGVNZW50aW9uQ2hpcFByb3BzKSA9PiB7XG4gIGNvbnN0IG1lbnRpb25MYWJlbCA9IG5vcm1hbGl6ZUNvbnRleHRNZW50aW9uTGFiZWwobWVudGlvbi5sYWJlbClcbiAgY29uc3QgaWNvbkNvbG9yID0gTUVOVElPTl9DSElQX0NPTE9SU1ttZW50aW9uLnR5cGVdLmZnXG4gIGNvbnN0IGlzVGFzayA9IG1lbnRpb24udHlwZSA9PT0gJ3Rhc2snXG4gIGNvbnN0IGljb25TaXplID0gaXNUYXNrID8gMTYgOiAxNFxuICBjb25zdCBsYWJlbEVsID0gY3JlYXRlRWRpdGFibGVNZW50aW9uTGFiZWxFbChpc1Rhc2ssIG1lbnRpb25MYWJlbClcblxuICBjb25zdCBvdXRlclN0eWxlOiBDU1NQcm9wZXJ0aWVzID0ge1xuICAgIHBvc2l0aW9uOiAncmVsYXRpdmUnLFxuICAgIGRpc3BsYXk6ICdpbmxpbmUnLFxuICAgIGxpbmVIZWlnaHQ6ICcyMHB4JyxcbiAgICBib3hTaXppbmc6ICdib3JkZXItYm94JyxcbiAgICB2ZXJ0aWNhbEFsaWduOiAnYmFzZWxpbmUnLFxuICAgIG1heFdpZHRoOiAnMTAwJScsXG4gIH1cblxuICBpZiAoaXNUYXNrKSB7XG4gICAgcmV0dXJuIGNyZWF0ZUVsZW1lbnQoJ3NwYW4nLCB7IHN0eWxlOiBvdXRlclN0eWxlIH0sIGxhYmVsRWwpXG4gIH1cblxuICByZXR1cm4gY3JlYXRlRWxlbWVudChcbiAgICAnc3BhbicsXG4gICAgeyBzdHlsZTogb3V0ZXJTdHlsZSB9LFxuICAgIGNyZWF0ZUVsZW1lbnQoXG4gICAgICAnc3BhbicsXG4gICAgICB7XG4gICAgICAgIHN0eWxlOiB7XG4gICAgICAgICAgZGlzcGxheTogJ2lubGluZS1ibG9jaycsXG4gICAgICAgICAgdmVydGljYWxBbGlnbjogJ21pZGRsZScsXG4gICAgICAgICAgbWFyZ2luUmlnaHQ6ICcycHgnLFxuICAgICAgICAgIGxpbmVIZWlnaHQ6ICcxJyxcbiAgICAgICAgICB3aWR0aDogJzE0cHgnLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIGdldENvbnRleHRNZW50aW9uSWNvbihtZW50aW9uLnR5cGUsIGljb25Db2xvciwgbWVudGlvbi5pZCwgaWNvblNpemUpXG4gICAgKSxcbiAgICBsYWJlbEVsXG4gIClcbn1cblxuY29uc3QgaW5pdGlhbHNGcm9tTmFtZSA9IChuYW1lOiBzdHJpbmcpOiBzdHJpbmcgPT4ge1xuICBjb25zdCB0cmltbWVkID0gbmFtZS50cmltKClcbiAgaWYgKCF0cmltbWVkKSByZXR1cm4gJz8nXG4gIGNvbnN0IHBhcnRzID0gdHJpbW1lZC5zcGxpdCgvXFxzKy8pLmZpbHRlcihCb29sZWFuKVxuICBpZiAocGFydHMubGVuZ3RoID49IDIpIHtcbiAgICBjb25zdCBmaXJzdCA9IHBhcnRzWzBdPy5jaGFyQXQoMCkgPz8gJydcbiAgICBjb25zdCBsYXN0ID0gcGFydHNbcGFydHMubGVuZ3RoIC0gMV0/LmNoYXJBdCgwKSA/PyAnJ1xuICAgIHJldHVybiBgJHtmaXJzdH0ke2xhc3R9YC50b1VwcGVyQ2FzZSgpXG4gIH1cbiAgY29uc3Qgc2luZ2xlID0gcGFydHNbMF0gPz8gJydcbiAgcmV0dXJuIHNpbmdsZS5sZW5ndGggPj0gMiA/IHNpbmdsZS5zbGljZSgwLCAyKS50b1VwcGVyQ2FzZSgpIDogKHNpbmdsZS5jaGFyQXQoMCkgfHwgJz8nKS50b1VwcGVyQ2FzZSgpXG59XG5cbmNvbnN0IFRPT0xUSVBfRk9OVCA9IGB2YXIoLS1jb3ItdHlwb2dyYXBoeS1mb250LWZhbWlseSwgJ1dvcmsgU2FucycpYFxuY29uc3QgVE9PTFRJUF9TRUNPTkRBUllfQ09MT1IgPSAndmFyKC0tVGV4dC1TZWNvbmRhcnktRGFyaywgIzY2NiknXG5jb25zdCBUT09MVElQX1NFQ09OREFSWV9TVFlMRSA9IHtcbiAgZm9udEZhbWlseTogVE9PTFRJUF9GT05ULFxuICBmb250U2l6ZTogJzE0cHgnLFxuICBmb250V2VpZ2h0OiAnNDAwJyxcbiAgbGluZUhlaWdodDogJzIwcHgnLFxuICBjb2xvcjogVE9PTFRJUF9TRUNPTkRBUllfQ09MT1IsXG59XG5cbmNvbnN0IGNyZWF0ZVVzZXJUb29sdGlwRWwgPSAobWVudGlvbjogQ29udGV4dE1lbnRpb24pOiBIVE1MRWxlbWVudCA9PiB7XG4gIGNvbnN0IHsgbGFiZWwsIG1ldGFkYXRhIH0gPSBtZW50aW9uXG4gIGNvbnN0IHBpY3R1cmUgPSBtZXRhZGF0YT8ucGljdHVyZSA/PyBudWxsXG4gIGNvbnN0IHBvc2l0aW9uTmFtZSA9IG1ldGFkYXRhPy5wb3NpdGlvbk5hbWU/LnRyaW0oKSA/PyAnJ1xuICBjb25zdCBlbWFpbCA9IG1ldGFkYXRhPy5lbWFpbD8udHJpbSgpID8/ICcnXG4gIC8qKiBNaXNtYSBmdWVudGUgcXVlIGBDb250ZXh0TWVudGlvbkl0ZW1gIChhdmF0YXIpOiBub21icmUgZGUgcXVlcnksIG5vIGVsIGxhYmVsIGRlbCBjaGlwIChlai4gXCJZb1wiKS4gKi9cbiAgY29uc3QgbmFtZUZvckluaXRpYWxzID0gKG1ldGFkYXRhPy5uYW1lPy50cmltKCkgPyBtZXRhZGF0YS5uYW1lIDogbGFiZWwpLnRyaW0oKVxuXG4gIGNvbnN0IHRvb2x0aXAgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKVxuICBPYmplY3QuYXNzaWduKHRvb2x0aXAuc3R5bGUsIHtcbiAgICBwb3NpdGlvbjogJ2ZpeGVkJyxcbiAgICB6SW5kZXg6ICc5OTk5JyxcbiAgICB3aWR0aDogJzI5MnB4JyxcbiAgICBwYWRkaW5nOiAnMTJweCA4cHgnLFxuICAgIGRpc3BsYXk6ICdmbGV4JyxcbiAgICBmbGV4RGlyZWN0aW9uOiAnY29sdW1uJyxcbiAgICBhbGlnbkl0ZW1zOiAnZmxleC1zdGFydCcsXG4gICAgYm9yZGVyUmFkaXVzOiAnNHB4JyxcbiAgICBib3JkZXI6ICcxcHggc29saWQgdmFyKC0tQ29sb3ItTGlnaHQtR3JheSwgI0UwRTBFMCknLFxuICAgIGJhY2tncm91bmQ6ICcjRkZGJyxcbiAgICBib3hTaGFkb3c6ICcwIDFweCA0cHggMCByZ2JhKDAsMCwwLDAuMDgpLCAwIDFweCA0cHggMCByZ2JhKDAsMCwwLDAuMDQpJyxcbiAgICBib3hTaXppbmc6ICdib3JkZXItYm94JyxcbiAgICBwb2ludGVyRXZlbnRzOiAnbm9uZScsXG4gIH0pXG5cbiAgY29uc3Qgcm93ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2JylcbiAgT2JqZWN0LmFzc2lnbihyb3cuc3R5bGUsIHtcbiAgICBkaXNwbGF5OiAnZmxleCcsXG4gICAgYWxpZ25JdGVtczogJ2NlbnRlcicsXG4gICAgZ2FwOiAnOHB4JyxcbiAgICB3aWR0aDogJzEwMCUnLFxuICB9KVxuXG4gIC8vIEF2YXRhciBjaXJjdWxhciAoZm90byBvIGluaWNpYWxlcylcbiAgY29uc3QgYXZhdGFyV3JhcCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpXG4gIE9iamVjdC5hc3NpZ24oYXZhdGFyV3JhcC5zdHlsZSwge1xuICAgIHdpZHRoOiAnMjRweCcsXG4gICAgaGVpZ2h0OiAnMjRweCcsXG4gICAgbWluV2lkdGg6ICcyNHB4JyxcbiAgICBib3JkZXJSYWRpdXM6ICcyNHB4JyxcbiAgICBvdmVyZmxvdzogJ2hpZGRlbicsXG4gICAgZGlzcGxheTogJ2ZsZXgnLFxuICAgIGFsaWduSXRlbXM6ICdjZW50ZXInLFxuICAgIGp1c3RpZnlDb250ZW50OiAnY2VudGVyJyxcbiAgICBiYWNrZ3JvdW5kOiAnI2U4ZjRmZicsXG4gICAgZmxleFNocmluazogJzAnLFxuICB9KVxuXG4gIGNvbnN0IGluaXRpYWxzID0gaW5pdGlhbHNGcm9tTmFtZShuYW1lRm9ySW5pdGlhbHMpXG5cbiAgY29uc3QgY3JlYXRlSW5pdGlhbHNGYWxsYmFjayA9ICgpOiBIVE1MRWxlbWVudCA9PiB7XG4gICAgY29uc3QgZmIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzcGFuJylcbiAgICBmYi50ZXh0Q29udGVudCA9IGluaXRpYWxzXG4gICAgT2JqZWN0LmFzc2lnbihmYi5zdHlsZSwge1xuICAgICAgZm9udFNpemU6ICcxMHB4JyxcbiAgICAgIGZvbnRXZWlnaHQ6ICc2MDAnLFxuICAgICAgY29sb3I6ICcjMmQ3N2JkJyxcbiAgICAgIGxpbmVIZWlnaHQ6ICcxJyxcbiAgICAgIGZvbnRGYW1pbHk6IFRPT0xUSVBfRk9OVCxcbiAgICB9KVxuICAgIHJldHVybiBmYlxuICB9XG5cbiAgaWYgKHBpY3R1cmUpIHtcbiAgICBjb25zdCBpbWcgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdpbWcnKVxuICAgIGltZy5zcmMgPSBwaWN0dXJlXG4gICAgaW1nLmFsdCA9ICcnXG4gICAgaW1nLmRyYWdnYWJsZSA9IGZhbHNlXG4gICAgT2JqZWN0LmFzc2lnbihpbWcuc3R5bGUsIHtcbiAgICAgIHdpZHRoOiAnMjRweCcsXG4gICAgICBoZWlnaHQ6ICcyNHB4JyxcbiAgICAgIG9iamVjdEZpdDogJ2NvdmVyJyxcbiAgICAgIGRpc3BsYXk6ICdibG9jaycsXG4gICAgICBib3JkZXJSYWRpdXM6ICcyNHB4JyxcbiAgICB9KVxuICAgIGltZy5vbmVycm9yID0gKCkgPT4ge1xuICAgICAgaW1nLnJlbW92ZSgpXG4gICAgICBhdmF0YXJXcmFwLmFwcGVuZENoaWxkKGNyZWF0ZUluaXRpYWxzRmFsbGJhY2soKSlcbiAgICB9XG4gICAgYXZhdGFyV3JhcC5hcHBlbmRDaGlsZChpbWcpXG4gIH0gZWxzZSB7XG4gICAgYXZhdGFyV3JhcC5hcHBlbmRDaGlsZChjcmVhdGVJbml0aWFsc0ZhbGxiYWNrKCkpXG4gIH1cblxuICAvLyBDb2x1bW5hIGRlIGluZm9cbiAgY29uc3QgaW5mb0NvbCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpXG4gIE9iamVjdC5hc3NpZ24oaW5mb0NvbC5zdHlsZSwge1xuICAgIGRpc3BsYXk6ICdmbGV4JyxcbiAgICBmbGV4RGlyZWN0aW9uOiAnY29sdW1uJyxcbiAgICBqdXN0aWZ5Q29udGVudDogJ2NlbnRlcicsXG4gICAgYWxpZ25JdGVtczogJ2ZsZXgtc3RhcnQnLFxuICAgIGdhcDogJzJweCcsXG4gICAgbWluV2lkdGg6ICcwJyxcbiAgICBmbGV4OiAnMScsXG4gIH0pXG5cbiAgLy8gRmlsYTogbm9tYnJlICsgc2VwYXJhZG9yICsgcG9zaWNpw7NuXG4gIGNvbnN0IG5hbWVSb3cgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKVxuICBPYmplY3QuYXNzaWduKG5hbWVSb3cuc3R5bGUsIHtcbiAgICBkaXNwbGF5OiAnZmxleCcsXG4gICAgYWxpZ25JdGVtczogJ2ZsZXgtc3RhcnQnLFxuICAgIGdhcDogJzRweCcsXG4gIH0pXG5cbiAgY29uc3QgbmFtZVNwYW4gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzcGFuJylcbiAgbmFtZVNwYW4udGV4dENvbnRlbnQgPSBsYWJlbFxuICBPYmplY3QuYXNzaWduKG5hbWVTcGFuLnN0eWxlLCB7XG4gICAgb3ZlcmZsb3c6ICdoaWRkZW4nLFxuICAgIHRleHRPdmVyZmxvdzogJ2VsbGlwc2lzJyxcbiAgICB3aGl0ZVNwYWNlOiAnbm93cmFwJyxcbiAgICBjb2xvcjogJ3ZhcigtLVRleHQtUHJpbWFyeS1EYXJrLCAjMjAyMDFGKScsXG4gICAgZm9udEZhbWlseTogVE9PTFRJUF9GT05ULFxuICAgIGZvbnRTaXplOiAnMTRweCcsXG4gICAgZm9udFdlaWdodDogJzUwMCcsXG4gICAgbGluZUhlaWdodDogJzEzMCUnLFxuICB9KVxuICBuYW1lUm93LmFwcGVuZENoaWxkKG5hbWVTcGFuKVxuXG4gIGlmIChwb3NpdGlvbk5hbWUpIHtcbiAgICBjb25zdCBzZXAgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzcGFuJylcbiAgICBzZXAudGV4dENvbnRlbnQgPSAnfCdcbiAgICBPYmplY3QuYXNzaWduKHNlcC5zdHlsZSwgeyAuLi5UT09MVElQX1NFQ09OREFSWV9TVFlMRSwgZmxleFNocmluazogJzAnIH0pXG4gICAgbmFtZVJvdy5hcHBlbmRDaGlsZChzZXApXG5cbiAgICBjb25zdCBwb3NTcGFuID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3BhbicpXG4gICAgcG9zU3Bhbi50ZXh0Q29udGVudCA9IHBvc2l0aW9uTmFtZVxuICAgIE9iamVjdC5hc3NpZ24ocG9zU3Bhbi5zdHlsZSwgVE9PTFRJUF9TRUNPTkRBUllfU1RZTEUpXG4gICAgbmFtZVJvdy5hcHBlbmRDaGlsZChwb3NTcGFuKVxuICB9XG5cbiAgaW5mb0NvbC5hcHBlbmRDaGlsZChuYW1lUm93KVxuXG4gIGlmIChlbWFpbCkge1xuICAgIGNvbnN0IGVtYWlsU3BhbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NwYW4nKVxuICAgIGVtYWlsU3Bhbi50ZXh0Q29udGVudCA9IGVtYWlsXG4gICAgT2JqZWN0LmFzc2lnbihlbWFpbFNwYW4uc3R5bGUsIFRPT0xUSVBfU0VDT05EQVJZX1NUWUxFKVxuICAgIGluZm9Db2wuYXBwZW5kQ2hpbGQoZW1haWxTcGFuKVxuICB9XG5cbiAgcm93LmFwcGVuZENoaWxkKGF2YXRhcldyYXApXG4gIHJvdy5hcHBlbmRDaGlsZChpbmZvQ29sKVxuICB0b29sdGlwLmFwcGVuZENoaWxkKHJvdylcblxuICByZXR1cm4gdG9vbHRpcFxufVxuXG4vKipcbiAqIENyZWEgdW4gYDxzcGFuPmAgYXTDs21pY28gbGlzdG8gcGFyYSBpbnNlcnRhcnNlIGRlbnRybyBkZWwgY29udGVudGVkaXRhYmxlXG4gKiBkZWwgYENvbnRleHRNZW50aW9uRWRpdG9yYC4gU2UgbWFyY2EgY29uIGxvcyBgZGF0YS1tZW50aW9uKmAgbmVjZXNhcmlvcyBwYXJhXG4gKiBxdWUgYHVzZUNvbnRleHRNZW50aW9ucy5zZXJpYWxpemUoKWAgcHVlZGEgdm9sdmVyIGEgZXh0cmFlciBsYSBtZW50aW9uLlxuICpcbiAqIENvbXBhcnRlIGxvcyBlc3RpbG9zIGNvbiBlbCBjb21wb25lbnRlIGBDb250ZXh0TWVudGlvbkNoaXBgIHZpYVxuICogYGFwcGx5TWVudGlvbkNoaXBTdHlsZXNgLCBhc2VndXJhbmRvIHVuYSDDum5pY2EgZnVlbnRlIGRlIHZlcmRhZCB2aXN1YWwuXG4gKi9cbmV4cG9ydCBjb25zdCBidWlsZENoaXBFbGVtZW50ID0gKG1lbnRpb246IENvbnRleHRNZW50aW9uKTogSFRNTFNwYW5FbGVtZW50ID0+IHtcbiAgY29uc3QgY2hpcCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NwYW4nKVxuICBjaGlwLnNldEF0dHJpYnV0ZSgnY29udGVudGVkaXRhYmxlJywgJ2ZhbHNlJylcbiAgY2hpcC5zZXRBdHRyaWJ1dGUoJ2RhdGEtbWVudGlvbi1jaGlwJywgJ3RydWUnKVxuICBjaGlwLmNsYXNzTmFtZSA9IENPTlRFWFRfTUVOVElPTl9DSElQX0NMQVNTXG4gIGNoaXAuc2V0QXR0cmlidXRlKCdkYXRhLW1lbnRpb24tdHlwZScsIG1lbnRpb24udHlwZSlcbiAgY2hpcC5zZXRBdHRyaWJ1dGUoJ2RhdGEtbWVudGlvbi1zdXJmYWNlJywgJ2VkaXRvcicpXG4gIGFwcGx5TWVudGlvbkNoaXBTdHlsZXMoY2hpcCwgbWVudGlvbi50eXBlKVxuICBjb25zdCBpc1Rhc2sgPSBtZW50aW9uLnR5cGUgPT09ICd0YXNrJ1xuICBjb25zdCBjb21tb24gPSB7XG4gICAgYm94U2l6aW5nOiAnYm9yZGVyLWJveCcsXG4gICAgdmVydGljYWxBbGlnbjogJ2Jhc2VsaW5lJyxcbiAgICBvdmVyZmxvdzogJ3Zpc2libGUnLFxuICAgIG1heFdpZHRoOiAnMTAwJScsXG4gIH0gYXMgY29uc3RcbiAgaWYgKGlzVGFzaykge1xuICAgIE9iamVjdC5hc3NpZ24oY2hpcC5zdHlsZSwgY29tbW9uLCB7XG4gICAgICBsaW5lSGVpZ2h0OiAnMjBweCcsXG4gICAgICBoZWlnaHQ6ICdhdXRvJyxcbiAgICAgIG1pbkhlaWdodDogJ2F1dG8nLFxuICAgICAgbWF4SGVpZ2h0OiAnbm9uZScsXG4gICAgfSlcbiAgfSBlbHNlIHtcbiAgICBPYmplY3QuYXNzaWduKGNoaXAuc3R5bGUsIGNvbW1vbiwge1xuICAgICAgbGluZUhlaWdodDogJzIwcHgnLFxuICAgICAgaGVpZ2h0OiAnYXV0bycsXG4gICAgICBtaW5IZWlnaHQ6ICdhdXRvJyxcbiAgICAgIG1heEhlaWdodDogJ25vbmUnLFxuICAgIH0pXG4gIH1cbiAgY29uc3QgbW91bnROb2RlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3BhbicpXG4gIG1vdW50Tm9kZS5zdHlsZS5kaXNwbGF5ID0gJ2lubGluZSdcbiAgbW91bnROb2RlLnN0eWxlLm1heFdpZHRoID0gJzEwMCUnXG4gIG1vdW50Tm9kZS5zdHlsZS52ZXJ0aWNhbEFsaWduID0gJ2Jhc2VsaW5lJ1xuICBtb3VudE5vZGUuc3R5bGUuYm94U2l6aW5nID0gJ2JvcmRlci1ib3gnXG4gIGNoaXAuYXBwZW5kQ2hpbGQobW91bnROb2RlKVxuICBjb25zdCByb290ID0gY3JlYXRlUm9vdChtb3VudE5vZGUpXG5cbiAgZmx1c2hTeW5jKCgpID0+IHtcbiAgICByb290LnJlbmRlcihjcmVhdGVFbGVtZW50KEVkaXRhYmxlTWVudGlvbkNoaXAsIHsgbWVudGlvbiB9KSlcbiAgfSlcblxuICBpZiAobWVudGlvbi50eXBlID09PSAndGFzaycpIHtcbiAgICBjaGlwLnN0eWxlLmN1cnNvciA9ICdwb2ludGVyJ1xuICAgIGNoaXAub25jbGljayA9IGUgPT4ge1xuICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpXG4gICAgICBlLnN0b3BQcm9wYWdhdGlvbigpXG4gICAgICBvcGVuVGFza0luQ29yUGFuZWwobWVudGlvbi5pZCwgJ2RldGFpbCcpXG4gICAgfVxuICB9IGVsc2UgaWYgKG1lbnRpb24udHlwZSA9PT0gJ3Byb2plY3QnKSB7XG4gICAgY2hpcC5zdHlsZS5jdXJzb3IgPSAncG9pbnRlcidcbiAgICBjaGlwLm9uY2xpY2sgPSBlID0+IHtcbiAgICAgIGUucHJldmVudERlZmF1bHQoKVxuICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKVxuICAgICAgd2luZG93Lm9wZW4oYC9wcm9qZWN0LyR7bWVudGlvbi5pZH0vZGFzaGJvYXJkYCwgJ19ibGFuaycpXG4gICAgfVxuICB9IGVsc2UgaWYgKG1lbnRpb24udHlwZSA9PT0gJ3VzZXInKSB7XG4gICAgbGV0IHRvb2x0aXBFbDogSFRNTEVsZW1lbnQgfCBudWxsID0gbnVsbFxuXG4gICAgY2hpcC5hZGRFdmVudExpc3RlbmVyKCdtb3VzZWVudGVyJywgKCkgPT4ge1xuICAgICAgaWYgKHRvb2x0aXBFbCkgcmV0dXJuXG4gICAgICB0b29sdGlwRWwgPSBjcmVhdGVVc2VyVG9vbHRpcEVsKG1lbnRpb24pXG4gICAgICBjb25zdCByZWN0ID0gY2hpcC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKVxuICAgICAgY29uc3QgbGVmdCA9IE1hdGgubWF4KDgsIE1hdGgubWluKHdpbmRvdy5pbm5lcldpZHRoIC0gMzAwLCByZWN0LmxlZnQpKVxuICAgICAgdG9vbHRpcEVsLnN0eWxlLnRvcCA9IGAke3JlY3QudG9wfXB4YFxuICAgICAgdG9vbHRpcEVsLnN0eWxlLmxlZnQgPSBgJHtsZWZ0fXB4YFxuICAgICAgdG9vbHRpcEVsLnN0eWxlLnRyYW5zZm9ybSA9ICd0cmFuc2xhdGVZKGNhbGMoLTEwMCUgLSA0cHgpKSdcbiAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQodG9vbHRpcEVsKVxuICAgIH0pXG5cbiAgICBjaGlwLmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlbGVhdmUnLCAoKSA9PiB7XG4gICAgICBpZiAodG9vbHRpcEVsKSB7XG4gICAgICAgIHRvb2x0aXBFbC5yZW1vdmUoKVxuICAgICAgICB0b29sdGlwRWwgPSBudWxsXG4gICAgICB9XG4gICAgfSlcbiAgfVxuXG4gIHJldHVybiBjaGlwXG59XG4iXSwibWFwcGluZ3MiOiI7OztBQUFBLFNBQVNBLGFBQWEsUUFBNEIsT0FBTztBQUN6RCxTQUFTQyxTQUFTLFFBQVEsV0FBVztBQUNyQyxTQUFTQyxVQUFVLFFBQVEsa0JBQWtCO0FBQzdDLFNBQVNDLDBCQUEwQixRQUF3QiwrQkFBK0I7QUFDMUYsU0FBU0MscUJBQXFCLFFBQVEsb0NBQW9DO0FBQzFFLFNBQVNDLDRCQUE0QixRQUFRLG9DQUFvQztBQUNqRixTQUFTQyxrQkFBa0IsUUFB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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=
@@ -1,195 +0,0 @@
1
- import _defineProperty from "@babel/runtime/helpers/defineProperty";
2
- import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
3
- function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
4
- function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
5
- import { forwardRef, useCallback, useImperativeHandle, useLayoutEffect, useRef, useState } from 'react';
6
- import { Tooltip } from '@projectcor/tooltipv2/lib/components/Tooltip';
7
- import { useContextMentions } from '../../../hooks/useContextMentions';
8
- import { buildChipElement } from '../ContextMentionChip';
9
- import { ContextMentionChipGlobalStyles } from '../ContextMentionChip/ContextMentionChip.styles';
10
- import { SCMEEditable } from './ContextMentionEditor.styles';
11
- import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
12
- var isPlaceholderTruncatedInEditor = function isPlaceholderTruncatedInEditor(editor, placeholder) {
13
- var trimmed = placeholder.trim();
14
- if (!trimmed) {
15
- return false;
16
- }
17
- var clientWidth = editor.clientWidth;
18
- if (clientWidth <= 4) {
19
- return false;
20
- }
21
- var styles = window.getComputedStyle(editor);
22
- var ctx = document.createElement('canvas').getContext('2d');
23
- if (!ctx) {
24
- return false;
25
- }
26
- ctx.font = "".concat(styles.fontWeight, " ").concat(styles.fontSize, " ").concat(styles.fontFamily);
27
- var measured = ctx.measureText(trimmed).width;
28
- var paddingLeft = parseFloat(styles.paddingLeft) || 0;
29
- var paddingRight = parseFloat(styles.paddingRight) || 0;
30
- var borderLeft = parseFloat(styles.borderLeftWidth) || 0;
31
- var borderRight = parseFloat(styles.borderRightWidth) || 0;
32
- var available = Math.max(0, clientWidth - paddingLeft - paddingRight - borderLeft - borderRight);
33
- return measured > available + 1;
34
- };
35
- export var ContextMentionEditor = /*#__PURE__*/forwardRef(function (_ref, ref) {
36
- var _placeholder$trim2;
37
- var placeholder = _ref.placeholder,
38
- disabled = _ref.disabled,
39
- className = _ref.className,
40
- onInput = _ref.onInput,
41
- onKeyDown = _ref.onKeyDown,
42
- onFocus = _ref.onFocus,
43
- onBlur = _ref.onBlur;
44
- var _useContextMentions = useContextMentions(),
45
- editorRef = _useContextMentions.editorRef,
46
- updateTrigger = _useContextMentions.updateTrigger,
47
- replaceTriggerWithChip = _useContextMentions.replaceTriggerWithChip,
48
- syncTriggerAtRunLength = _useContextMentions.syncTriggerAtRunLength,
49
- serialize = _useContextMentions.serialize,
50
- clearEditorDom = _useContextMentions.clear,
51
- focus = _useContextMentions.focus;
52
- var skipNextInput = useRef(false);
53
- var _useState = useState(false),
54
- _useState2 = _slicedToArray(_useState, 2),
55
- placeholderTruncated = _useState2[0],
56
- setPlaceholderTruncated = _useState2[1];
57
- var _useState3 = useState(true),
58
- _useState4 = _slicedToArray(_useState3, 2),
59
- logicalEmpty = _useState4[0],
60
- setLogicalEmpty = _useState4[1];
61
- var recomputePlaceholderTruncation = useCallback(function () {
62
- var _placeholder$trim;
63
- var el = editorRef.current;
64
- var ph = (_placeholder$trim = placeholder === null || placeholder === void 0 ? void 0 : placeholder.trim()) !== null && _placeholder$trim !== void 0 ? _placeholder$trim : '';
65
- var isEditorLogicallyEmpty = serialize().text.trim() === '';
66
- if (!el || !ph || !isEditorLogicallyEmpty) {
67
- setPlaceholderTruncated(false);
68
- return;
69
- }
70
- setPlaceholderTruncated(isPlaceholderTruncatedInEditor(el, ph));
71
- }, [placeholder, serialize]);
72
- useLayoutEffect(function () {
73
- recomputePlaceholderTruncation();
74
- var el = editorRef.current;
75
- if (!el) {
76
- return undefined;
77
- }
78
- var ro = new ResizeObserver(function () {
79
- queueMicrotask(recomputePlaceholderTruncation);
80
- });
81
- ro.observe(el);
82
- return function () {
83
- return ro.disconnect();
84
- };
85
- }, [placeholder, disabled, recomputePlaceholderTruncation]);
86
- useImperativeHandle(ref, function () {
87
- return {
88
- focus: focus,
89
- clear: function clear() {
90
- clearEditorDom();
91
- setLogicalEmpty(true);
92
- queueMicrotask(recomputePlaceholderTruncation);
93
- },
94
- serialize: serialize,
95
- syncTriggerAtRunLength: syncTriggerAtRunLength,
96
- hasVisualMultiline: function hasVisualMultiline() {
97
- var _editor$textContent$t, _editor$textContent;
98
- var editor = editorRef.current;
99
- if (!editor) {
100
- return false;
101
- }
102
- var text = (_editor$textContent$t = (_editor$textContent = editor.textContent) === null || _editor$textContent === void 0 ? void 0 : _editor$textContent.trim()) !== null && _editor$textContent$t !== void 0 ? _editor$textContent$t : '';
103
- if (!text) {
104
- return false;
105
- }
106
- var styles = window.getComputedStyle(editor);
107
- var lineHeight = parseFloat(styles.lineHeight) || 20;
108
- var editorHeight = editor.getBoundingClientRect().height;
109
- var isMultiline = editorHeight > lineHeight * 1.5;
110
- return isMultiline;
111
- },
112
- getEditorClientRect: function getEditorClientRect() {
113
- var _editorRef$current$ge, _editorRef$current;
114
- return (_editorRef$current$ge = (_editorRef$current = editorRef.current) === null || _editorRef$current === void 0 ? void 0 : _editorRef$current.getBoundingClientRect()) !== null && _editorRef$current$ge !== void 0 ? _editorRef$current$ge : null;
115
- },
116
- insertMention: function insertMention(mention) {
117
- var chip = buildChipElement(mention);
118
- replaceTriggerWithChip(chip, mention);
119
- skipNextInput.current = true;
120
- var state = serialize();
121
- onInput === null || onInput === void 0 || onInput(_objectSpread(_objectSpread({}, state), {}, {
122
- trigger: {
123
- active: false,
124
- query: '',
125
- atRunLength: 0
126
- }
127
- }));
128
- setLogicalEmpty(state.text.trim() === '');
129
- queueMicrotask(function () {
130
- // Si el navegador no dispara `input` tras el chip, el flag quedaba en true y el próximo @ del usuario se ignoraba.
131
- skipNextInput.current = false;
132
- recomputePlaceholderTruncation();
133
- });
134
- }
135
- };
136
- }, [focus, clearEditorDom, serialize, syncTriggerAtRunLength, replaceTriggerWithChip, onInput, recomputePlaceholderTruncation]);
137
- var handleInput = function handleInput() {
138
- if (skipNextInput.current) {
139
- skipNextInput.current = false;
140
- return;
141
- }
142
- var trig = updateTrigger();
143
- var state = serialize();
144
- onInput === null || onInput === void 0 || onInput(_objectSpread(_objectSpread({}, state), {}, {
145
- trigger: {
146
- active: trig.active,
147
- query: trig.query,
148
- atRunLength: trig.atRunLength
149
- }
150
- }));
151
- setLogicalEmpty(state.text.trim() === '');
152
- queueMicrotask(recomputePlaceholderTruncation);
153
- };
154
- var handlePaste = function handlePaste(e) {
155
- e.preventDefault();
156
- var text = e.clipboardData.getData('text/plain');
157
- var selection = window.getSelection();
158
- if (!selection || selection.rangeCount === 0) return;
159
- selection.deleteFromDocument();
160
- selection.getRangeAt(0).insertNode(document.createTextNode(text));
161
- selection.collapseToEnd();
162
- handleInput();
163
- };
164
- var trimmedPlaceholder = (_placeholder$trim2 = placeholder === null || placeholder === void 0 ? void 0 : placeholder.trim()) !== null && _placeholder$trim2 !== void 0 ? _placeholder$trim2 : '';
165
- var placeholderTooltipTitle = logicalEmpty && placeholderTruncated && trimmedPlaceholder ? trimmedPlaceholder : '';
166
- return /*#__PURE__*/_jsxs(_Fragment, {
167
- children: [/*#__PURE__*/_jsx(ContextMentionChipGlobalStyles, {}), /*#__PURE__*/_jsx(Tooltip, {
168
- title: placeholderTooltipTitle,
169
- children: /*#__PURE__*/_jsx("span", {
170
- style: {
171
- display: 'block',
172
- width: '100%',
173
- minWidth: 0
174
- },
175
- children: /*#__PURE__*/_jsx(SCMEEditable, {
176
- ref: editorRef,
177
- className: className,
178
- "data-placeholder": placeholder,
179
- contentEditable: !disabled,
180
- "data-disabled": String(!!disabled),
181
- suppressContentEditableWarning: true,
182
- role: "textbox",
183
- "aria-multiline": "true",
184
- onInput: handleInput,
185
- onKeyDown: onKeyDown,
186
- onPaste: handlePaste,
187
- onFocus: onFocus,
188
- onBlur: onBlur
189
- })
190
- })
191
- })]
192
- });
193
- });
194
- ContextMentionEditor.displayName = 'ContextMentionEditor';
195
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJmb3J3YXJkUmVmIiwidXNlQ2FsbGJhY2siLCJ1c2VJbXBlcmF0aXZlSGFuZGxlIiwidXNlTGF5b3V0RWZmZWN0IiwidXNlUmVmIiwidXNlU3RhdGUiLCJUb29sdGlwIiwidXNlQ29udGV4dE1lbnRpb25zIiwiYnVpbGRDaGlwRWxlbWVudCIsIkNvbnRleHRNZW50aW9uQ2hpcEdsb2JhbFN0eWxlcyIsIlNDTUVFZGl0YWJsZSIsImpzeCIsIl9qc3giLCJGcmFnbWVudCIsIl9GcmFnbWVudCIsImpzeHMiLCJfanN4cyIsImlzUGxhY2Vob2xkZXJUcnVuY2F0ZWRJbkVkaXRvciIsImVkaXRvciIsInBsYWNlaG9sZGVyIiwidHJpbW1lZCIsInRyaW0iLCJjbGllbnRXaWR0aCIsInN0eWxlcyIsIndpbmRvdyIsImdldENvbXB1dGVkU3R5bGUiLCJjdHgiLCJkb2N1bWVudCIsImNyZWF0ZUVsZW1lbnQiLCJnZXRDb250ZXh0IiwiZm9udCIsImNvbmNhdCIsImZvbnRXZWlnaHQiLCJmb250U2l6ZSIsImZvbnRGYW1pbHkiLCJtZWFzdXJlZCIsIm1lYXN1cmVUZXh0Iiwid2lkdGgiLCJwYWRkaW5nTGVmdCIsInBhcnNlRmxvYXQiLCJwYWRkaW5nUmlnaHQiLCJib3JkZXJMZWZ0IiwiYm9yZGVyTGVmdFdpZHRoIiwiYm9yZGVyUmlnaHQiLCJib3JkZXJSaWdodFdpZHRoIiwiYXZhaWxhYmxlIiwiTWF0aCIsIm1heCIsIkNvbnRleHRNZW50aW9uRWRpdG9yIiwiX3JlZiIsInJlZiIsIl9wbGFjZWhvbGRlciR0cmltMiIsImRpc2FibGVkIiwiY2xhc3NOYW1lIiwib25JbnB1dCIsIm9uS2V5RG93biIsIm9uRm9jdXMiLCJvbkJsdXIiLCJfdXNlQ29udGV4dE1lbnRpb25zIiwiZWRpdG9yUmVmIiwidXBkYXRlVHJpZ2dlciIsInJlcGxhY2VUcmlnZ2VyV2l0aENoaXAiLCJzeW5jVHJpZ2dlckF0UnVuTGVuZ3RoIiwic2VyaWFsaXplIiwiY2xlYXJFZGl0b3JEb20iLCJjbGVhciIsImZvY3VzIiwic2tpcE5leHRJbnB1dCIsIl91c2VTdGF0ZSIsIl91c2VTdGF0ZTIiLCJfc2xpY2VkVG9BcnJheSIsInBsYWNlaG9sZGVyVHJ1bmNhdGVkIiwic2V0UGxhY2Vob2xkZXJUcnVuY2F0ZWQiLCJfdXNlU3RhdGUzIiwiX3VzZVN0YXRlNCIsImxvZ2ljYWxFbXB0eSIsInNldExvZ2ljYWxFbXB0eSIsInJlY29tcHV0ZVBsYWNlaG9sZGVyVHJ1bmNhdGlvbiIsIl9wbGFjZWhvbGRlciR0cmltIiwiZWwiLCJjdXJyZW50IiwicGgiLCJpc0VkaXRvckxvZ2ljYWxseUVtcHR5IiwidGV4dCIsInVuZGVmaW5lZCIsInJvIiwiUmVzaXplT2JzZXJ2ZXIiLCJxdWV1ZU1pY3JvdGFzayIsIm9ic2VydmUiLCJkaXNjb25uZWN0IiwiaGFzVmlzdWFsTXVsdGlsaW5lIiwiX2VkaXRvciR0ZXh0Q29udGVudCR0IiwiX2VkaXRvciR0ZXh0Q29udGVudCIsInRleHRDb250ZW50IiwibGluZUhlaWdodCIsImVkaXRvckhlaWdodCIsImdldEJvdW5kaW5nQ2xpZW50UmVjdCIsImhlaWdodCIsImlzTXVsdGlsaW5lIiwiZ2V0RWRpdG9yQ2xpZW50UmVjdCIsIl9lZGl0b3JSZWYkY3VycmVudCRnZSIsIl9lZGl0b3JSZWYkY3VycmVudCIsImluc2VydE1lbnRpb24iLCJtZW50aW9uIiwiY2hpcCIsInN0YXRlIiwiX29iamVjdFNwcmVhZCIsInRyaWdnZXIiLCJhY3RpdmUiLCJxdWVyeSIsImF0UnVuTGVuZ3RoIiwiaGFuZGxlSW5wdXQiLCJ0cmlnIiwiaGFuZGxlUGFzdGUiLCJlIiwicHJldmVudERlZmF1bHQiLCJjbGlwYm9hcmREYXRhIiwiZ2V0RGF0YSIsInNlbGVjdGlvbiIsImdldFNlbGVjdGlvbiIsInJhbmdlQ291bnQiLCJkZWxldGVGcm9tRG9jdW1lbnQiLCJnZXRSYW5nZUF0IiwiaW5zZXJ0Tm9kZSIsImNyZWF0ZVRleHROb2RlIiwiY29sbGFwc2VUb0VuZCIsInRyaW1tZWRQbGFjZWhvbGRlciIsInBsYWNlaG9sZGVyVG9vbHRpcFRpdGxlIiwiY2hpbGRyZW4iLCJ0aXRsZSIsInN0eWxlIiwiZGlzcGxheSIsIm1pbldpZHRoIiwiY29udGVudEVkaXRhYmxlIiwiU3RyaW5nIiwic3VwcHJlc3NDb250ZW50RWRpdGFibGVXYXJuaW5nIiwicm9sZSIsIm9uUGFzdGUiLCJkaXNwbGF5TmFtZSJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL2F0b21zL0NvbnRleHRNZW50aW9uRWRpdG9yL0NvbnRleHRNZW50aW9uRWRpdG9yLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDbGlwYm9hcmRFdmVudCxcbiAgZm9yd2FyZFJlZixcbiAgS2V5Ym9hcmRFdmVudCxcbiAgdXNlQ2FsbGJhY2ssXG4gIHVzZUltcGVyYXRpdmVIYW5kbGUsXG4gIHVzZUxheW91dEVmZmVjdCxcbiAgdXNlUmVmLFxuICB1c2VTdGF0ZSxcbn0gZnJvbSAncmVhY3QnXG5pbXBvcnQgeyBUb29sdGlwIH0gZnJvbSAnQHByb2plY3Rjb3IvdG9vbHRpcHYyL2xpYi9jb21wb25lbnRzL1Rvb2x0aXAnXG5pbXBvcnQgeyB1c2VDb250ZXh0TWVudGlvbnMgfSBmcm9tICcuLi8uLi8uLi9ob29rcy91c2VDb250ZXh0TWVudGlvbnMnXG5pbXBvcnQgeyBDb250ZXh0TWVudGlvbiB9IGZyb20gJy4uLy4uLy4uL3R5cGVzL2NvbnRleHRNZW50aW9uJ1xuaW1wb3J0IHsgYnVpbGRDaGlwRWxlbWVudCB9IGZyb20gJy4uL0NvbnRleHRNZW50aW9uQ2hpcCdcbmltcG9ydCB7IENvbnRleHRNZW50aW9uQ2hpcEdsb2JhbFN0eWxlcyB9IGZyb20gJy4uL0NvbnRleHRNZW50aW9uQ2hpcC9Db250ZXh0TWVudGlvbkNoaXAuc3R5bGVzJ1xuaW1wb3J0IHsgU0NNRUVkaXRhYmxlIH0gZnJvbSAnLi9Db250ZXh0TWVudGlvbkVkaXRvci5zdHlsZXMnXG5cbmNvbnN0IGlzUGxhY2Vob2xkZXJUcnVuY2F0ZWRJbkVkaXRvciA9IChlZGl0b3I6IEhUTUxFbGVtZW50LCBwbGFjZWhvbGRlcjogc3RyaW5nKTogYm9vbGVhbiA9PiB7XG4gIGNvbnN0IHRyaW1tZWQgPSBwbGFjZWhvbGRlci50cmltKClcbiAgaWYgKCF0cmltbWVkKSB7XG4gICAgcmV0dXJuIGZhbHNlXG4gIH1cbiAgY29uc3QgeyBjbGllbnRXaWR0aCB9ID0gZWRpdG9yXG4gIGlmIChjbGllbnRXaWR0aCA8PSA0KSB7XG4gICAgcmV0dXJuIGZhbHNlXG4gIH1cblxuICBjb25zdCBzdHlsZXMgPSB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShlZGl0b3IpXG4gIGNvbnN0IGN0eCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2NhbnZhcycpLmdldENvbnRleHQoJzJkJylcbiAgaWYgKCFjdHgpIHtcbiAgICByZXR1cm4gZmFsc2VcbiAgfVxuICBjdHguZm9udCA9IGAke3N0eWxlcy5mb250V2VpZ2h0fSAke3N0eWxlcy5mb250U2l6ZX0gJHtzdHlsZXMuZm9udEZhbWlseX1gXG4gIGNvbnN0IG1lYXN1cmVkID0gY3R4Lm1lYXN1cmVUZXh0KHRyaW1tZWQpLndpZHRoXG5cbiAgY29uc3QgcGFkZGluZ0xlZnQgPSBwYXJzZUZsb2F0KHN0eWxlcy5wYWRkaW5nTGVmdCkgfHwgMFxuICBjb25zdCBwYWRkaW5nUmlnaHQgPSBwYXJzZUZsb2F0KHN0eWxlcy5wYWRkaW5nUmlnaHQpIHx8IDBcbiAgY29uc3QgYm9yZGVyTGVmdCA9IHBhcnNlRmxvYXQoc3R5bGVzLmJvcmRlckxlZnRXaWR0aCkgfHwgMFxuICBjb25zdCBib3JkZXJSaWdodCA9IHBhcnNlRmxvYXQoc3R5bGVzLmJvcmRlclJpZ2h0V2lkdGgpIHx8IDBcbiAgY29uc3QgYXZhaWxhYmxlID0gTWF0aC5tYXgoMCwgY2xpZW50V2lkdGggLSBwYWRkaW5nTGVmdCAtIHBhZGRpbmdSaWdodCAtIGJvcmRlckxlZnQgLSBib3JkZXJSaWdodClcblxuICByZXR1cm4gbWVhc3VyZWQgPiBhdmFpbGFibGUgKyAxXG59XG5cbmV4cG9ydCB0eXBlIENvbnRleHRNZW50aW9uRWRpdG9ySGFuZGxlID0ge1xuICBmb2N1czogKCkgPT4gdm9pZFxuICBjbGVhcjogKCkgPT4gdm9pZFxuICBpbnNlcnRNZW50aW9uOiAobWVudGlvbjogQ29udGV4dE1lbnRpb24pID0+IHZvaWRcbiAgc3luY1RyaWdnZXJBdFJ1bkxlbmd0aDogKGF0UnVuTGVuZ3RoOiBudW1iZXIpID0+IHZvaWRcbiAgc2VyaWFsaXplOiAoKSA9PiB7IHRleHQ6IHN0cmluZzsgbWVudGlvbnM6IENvbnRleHRNZW50aW9uW10gfVxuICBoYXNWaXN1YWxNdWx0aWxpbmU6ICgpID0+IGJvb2xlYW5cbiAgLyoqIFJlY3QgZGVsIMOhcmVhIGVkaXRhYmxlICh2aWV3cG9ydCk7IGxvIHVzYSBlbCBwb3BvdmVyIGRlIEAgcGFyYSBhbGluZWFyIGFuY2hvL29yaWdlbi4gKi9cbiAgZ2V0RWRpdG9yQ2xpZW50UmVjdDogKCkgPT4gRE9NUmVjdCB8IG51bGxcbn1cblxuZXhwb3J0IHR5cGUgQ29udGV4dE1lbnRpb25FZGl0b3JQcm9wcyA9IHtcbiAgcGxhY2Vob2xkZXI/OiBzdHJpbmdcbiAgZGlzYWJsZWQ/OiBib29sZWFuXG4gIGNsYXNzTmFtZT86IHN0cmluZ1xuICBvbklucHV0PzogKHN0YXRlOiB7XG4gICAgdGV4dDogc3RyaW5nXG4gICAgbWVudGlvbnM6IENvbnRleHRNZW50aW9uW11cbiAgICB0cmlnZ2VyOiB7IGFjdGl2ZTogYm9vbGVhbjsgcXVlcnk6IHN0cmluZzsgYXRSdW5MZW5ndGg6IG51bWJlciB9XG4gIH0pID0+IHZvaWRcbiAgb25LZXlEb3duPzogKGU6IEtleWJvYXJkRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PiB2b2lkXG4gIG9uRm9jdXM/OiAoKSA9PiB2b2lkXG4gIG9uQmx1cj86ICgpID0+IHZvaWRcbn1cblxuZXhwb3J0IGNvbnN0IENvbnRleHRNZW50aW9uRWRpdG9yID0gZm9yd2FyZFJlZjxDb250ZXh0TWVudGlvbkVkaXRvckhhbmRsZSwgQ29udGV4dE1lbnRpb25FZGl0b3JQcm9wcz4oXG4gICh7IHBsYWNlaG9sZGVyLCBkaXNhYmxlZCwgY2xhc3NOYW1lLCBvbklucHV0LCBvbktleURvd24sIG9uRm9jdXMsIG9uQmx1ciB9LCByZWYpID0+IHtcbiAgICBjb25zdCB7XG4gICAgICBlZGl0b3JSZWYsXG4gICAgICB1cGRhdGVUcmlnZ2VyLFxuICAgICAgcmVwbGFjZVRyaWdnZXJXaXRoQ2hpcCxcbiAgICAgIHN5bmNUcmlnZ2VyQXRSdW5MZW5ndGgsXG4gICAgICBzZXJpYWxpemUsXG4gICAgICBjbGVhcjogY2xlYXJFZGl0b3JEb20sXG4gICAgICBmb2N1cyxcbiAgICB9ID0gdXNlQ29udGV4dE1lbnRpb25zKClcbiAgICBjb25zdCBza2lwTmV4dElucHV0ID0gdXNlUmVmKGZhbHNlKVxuICAgIGNvbnN0IFtwbGFjZWhvbGRlclRydW5jYXRlZCwgc2V0UGxhY2Vob2xkZXJUcnVuY2F0ZWRdID0gdXNlU3RhdGUoZmFsc2UpXG4gICAgY29uc3QgW2xvZ2ljYWxFbXB0eSwgc2V0TG9naWNhbEVtcHR5XSA9IHVzZVN0YXRlKHRydWUpXG5cbiAgICBjb25zdCByZWNvbXB1dGVQbGFjZWhvbGRlclRydW5jYXRpb24gPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgICBjb25zdCBlbCA9IGVkaXRvclJlZi5jdXJyZW50XG4gICAgICBjb25zdCBwaCA9IHBsYWNlaG9sZGVyPy50cmltKCkgPz8gJydcbiAgICAgIGNvbnN0IGlzRWRpdG9yTG9naWNhbGx5RW1wdHkgPSBzZXJpYWxpemUoKS50ZXh0LnRyaW0oKSA9PT0gJydcblxuICAgICAgaWYgKCFlbCB8fCAhcGggfHwgIWlzRWRpdG9yTG9naWNhbGx5RW1wdHkpIHtcbiAgICAgICAgc2V0UGxhY2Vob2xkZXJUcnVuY2F0ZWQoZmFsc2UpXG4gICAgICAgIHJldHVyblxuICAgICAgfVxuXG4gICAgICBzZXRQbGFjZWhvbGRlclRydW5jYXRlZChpc1BsYWNlaG9sZGVyVHJ1bmNhdGVkSW5FZGl0b3IoZWwsIHBoKSlcbiAgICB9LCBbcGxhY2Vob2xkZXIsIHNlcmlhbGl6ZV0pXG5cbiAgICB1c2VMYXlvdXRFZmZlY3QoKCkgPT4ge1xuICAgICAgcmVjb21wdXRlUGxhY2Vob2xkZXJUcnVuY2F0aW9uKClcbiAgICAgIGNvbnN0IGVsID0gZWRpdG9yUmVmLmN1cnJlbnRcbiAgICAgIGlmICghZWwpIHtcbiAgICAgICAgcmV0dXJuIHVuZGVmaW5lZFxuICAgICAgfVxuICAgICAgY29uc3Qgcm8gPSBuZXcgUmVzaXplT2JzZXJ2ZXIoKCkgPT4ge1xuICAgICAgICBxdWV1ZU1pY3JvdGFzayhyZWNvbXB1dGVQbGFjZWhvbGRlclRydW5jYXRpb24pXG4gICAgICB9KVxuICAgICAgcm8ub2JzZXJ2ZShlbClcbiAgICAgIHJldHVybiAoKSA9PiByby5kaXNjb25uZWN0KClcbiAgICB9LCBbcGxhY2Vob2xkZXIsIGRpc2FibGVkLCByZWNvbXB1dGVQbGFjZWhvbGRlclRydW5jYXRpb25dKVxuXG4gICAgdXNlSW1wZXJhdGl2ZUhhbmRsZShcbiAgICAgIHJlZixcbiAgICAgICgpID0+ICh7XG4gICAgICAgIGZvY3VzLFxuICAgICAgICBjbGVhcjogKCkgPT4ge1xuICAgICAgICAgIGNsZWFyRWRpdG9yRG9tKClcbiAgICAgICAgICBzZXRMb2dpY2FsRW1wdHkodHJ1ZSlcbiAgICAgICAgICBxdWV1ZU1pY3JvdGFzayhyZWNvbXB1dGVQbGFjZWhvbGRlclRydW5jYXRpb24pXG4gICAgICAgIH0sXG4gICAgICAgIHNlcmlhbGl6ZSxcbiAgICAgICAgc3luY1RyaWdnZXJBdFJ1bkxlbmd0aCxcbiAgICAgICAgaGFzVmlzdWFsTXVsdGlsaW5lOiAoKSA9PiB7XG4gICAgICAgICAgY29uc3QgZWRpdG9yID0gZWRpdG9yUmVmLmN1cnJlbnRcbiAgICAgICAgICBpZiAoIWVkaXRvcikge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlXG4gICAgICAgICAgfVxuXG4gICAgICAgICAgY29uc3QgdGV4dCA9IGVkaXRvci50ZXh0Q29udGVudD8udHJpbSgpID8/ICcnXG4gICAgICAgICAgaWYgKCF0ZXh0KSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2VcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBjb25zdCBzdHlsZXMgPSB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShlZGl0b3IpXG4gICAgICAgICAgY29uc3QgbGluZUhlaWdodCA9IHBhcnNlRmxvYXQoc3R5bGVzLmxpbmVIZWlnaHQpIHx8IDIwXG4gICAgICAgICAgY29uc3QgZWRpdG9ySGVpZ2h0ID0gZWRpdG9yLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmhlaWdodFxuICAgICAgICAgIGNvbnN0IGlzTXVsdGlsaW5lID0gZWRpdG9ySGVpZ2h0ID4gbGluZUhlaWdodCAqIDEuNVxuXG4gICAgICAgICAgcmV0dXJuIGlzTXVsdGlsaW5lXG4gICAgICAgIH0sXG4gICAgICAgIGdldEVkaXRvckNsaWVudFJlY3Q6ICgpID0+IGVkaXRvclJlZi5jdXJyZW50Py5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSA/PyBudWxsLFxuICAgICAgICBpbnNlcnRNZW50aW9uOiAobWVudGlvbjogQ29udGV4dE1lbnRpb24pID0+IHtcbiAgICAgICAgICBjb25zdCBjaGlwID0gYnVpbGRDaGlwRWxlbWVudChtZW50aW9uKVxuICAgICAgICAgIHJlcGxhY2VUcmlnZ2VyV2l0aENoaXAoY2hpcCwgbWVudGlvbilcbiAgICAgICAgICBza2lwTmV4dElucHV0LmN1cnJlbnQgPSB0cnVlXG4gICAgICAgICAgY29uc3Qgc3RhdGUgPSBzZXJpYWxpemUoKVxuICAgICAgICAgIG9uSW5wdXQ/Lih7IC4uLnN0YXRlLCB0cmlnZ2VyOiB7IGFjdGl2ZTogZmFsc2UsIHF1ZXJ5OiAnJywgYXRSdW5MZW5ndGg6IDAgfSB9KVxuICAgICAgICAgIHNldExvZ2ljYWxFbXB0eShzdGF0ZS50ZXh0LnRyaW0oKSA9PT0gJycpXG4gICAgICAgICAgcXVldWVNaWNyb3Rhc2soKCkgPT4ge1xuICAgICAgICAgICAgLy8gU2kgZWwgbmF2ZWdhZG9yIG5vIGRpc3BhcmEgYGlucHV0YCB0cmFzIGVsIGNoaXAsIGVsIGZsYWcgcXVlZGFiYSBlbiB0cnVlIHkgZWwgcHLDs3hpbW8gQCBkZWwgdXN1YXJpbyBzZSBpZ25vcmFiYS5cbiAgICAgICAgICAgIHNraXBOZXh0SW5wdXQuY3VycmVudCA9IGZhbHNlXG4gICAgICAgICAgICByZWNvbXB1dGVQbGFjZWhvbGRlclRydW5jYXRpb24oKVxuICAgICAgICAgIH0pXG4gICAgICAgIH0sXG4gICAgICB9KSxcbiAgICAgIFtcbiAgICAgICAgZm9jdXMsXG4gICAgICAgIGNsZWFyRWRpdG9yRG9tLFxuICAgICAgICBzZXJpYWxpemUsXG4gICAgICAgIHN5bmNUcmlnZ2VyQXRSdW5MZW5ndGgsXG4gICAgICAgIHJlcGxhY2VUcmlnZ2VyV2l0aENoaXAsXG4gICAgICAgIG9uSW5wdXQsXG4gICAgICAgIHJlY29tcHV0ZVBsYWNlaG9sZGVyVHJ1bmNhdGlvbixcbiAgICAgIF1cbiAgICApXG5cbiAgICBjb25zdCBoYW5kbGVJbnB1dCA9ICgpID0+IHtcbiAgICAgIGlmIChza2lwTmV4dElucHV0LmN1cnJlbnQpIHtcbiAgICAgICAgc2tpcE5leHRJbnB1dC5jdXJyZW50ID0gZmFsc2VcbiAgICAgICAgcmV0dXJuXG4gICAgICB9XG4gICAgICBjb25zdCB0cmlnID0gdXBkYXRlVHJpZ2dlcigpXG4gICAgICBjb25zdCBzdGF0ZSA9IHNlcmlhbGl6ZSgpXG4gICAgICBvbklucHV0Py4oeyAuLi5zdGF0ZSwgdHJpZ2dlcjogeyBhY3RpdmU6IHRyaWcuYWN0aXZlLCBxdWVyeTogdHJpZy5xdWVyeSwgYXRSdW5MZW5ndGg6IHRyaWcuYXRSdW5MZW5ndGggfSB9KVxuICAgICAgc2V0TG9naWNhbEVtcHR5KHN0YXRlLnRleHQudHJpbSgpID09PSAnJylcbiAgICAgIHF1ZXVlTWljcm90YXNrKHJlY29tcHV0ZVBsYWNlaG9sZGVyVHJ1bmNhdGlvbilcbiAgICB9XG5cbiAgICBjb25zdCBoYW5kbGVQYXN0ZSA9IChlOiBDbGlwYm9hcmRFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+IHtcbiAgICAgIGUucHJldmVudERlZmF1bHQoKVxuICAgICAgY29uc3QgdGV4dCA9IGUuY2xpcGJvYXJkRGF0YS5nZXREYXRhKCd0ZXh0L3BsYWluJylcbiAgICAgIGNvbnN0IHNlbGVjdGlvbiA9IHdpbmRvdy5nZXRTZWxlY3Rpb24oKVxuICAgICAgaWYgKCFzZWxlY3Rpb24gfHwgc2VsZWN0aW9uLnJhbmdlQ291bnQgPT09IDApIHJldHVyblxuICAgICAgc2VsZWN0aW9uLmRlbGV0ZUZyb21Eb2N1bWVudCgpXG4gICAgICBzZWxlY3Rpb24uZ2V0UmFuZ2VBdCgwKS5pbnNlcnROb2RlKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKHRleHQpKVxuICAgICAgc2VsZWN0aW9uLmNvbGxhcHNlVG9FbmQoKVxuICAgICAgaGFuZGxlSW5wdXQoKVxuICAgIH1cblxuICAgIGNvbnN0IHRyaW1tZWRQbGFjZWhvbGRlciA9IHBsYWNlaG9sZGVyPy50cmltKCkgPz8gJydcbiAgICBjb25zdCBwbGFjZWhvbGRlclRvb2x0aXBUaXRsZSA9IGxvZ2ljYWxFbXB0eSAmJiBwbGFjZWhvbGRlclRydW5jYXRlZCAmJiB0cmltbWVkUGxhY2Vob2xkZXIgPyB0cmltbWVkUGxhY2Vob2xkZXIgOiAnJ1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDw+XG4gICAgICAgIDxDb250ZXh0TWVudGlvbkNoaXBHbG9iYWxTdHlsZXMgLz5cbiAgICAgICAgPFRvb2x0aXAgdGl0bGU9e3BsYWNlaG9sZGVyVG9vbHRpcFRpdGxlfT5cbiAgICAgICAgICA8c3BhbiBzdHlsZT17eyBkaXNwbGF5OiAnYmxvY2snLCB3aWR0aDogJzEwMCUnLCBtaW5XaWR0aDogMCB9fT5cbiAgICAgICAgICAgIDxTQ01FRWRpdGFibGVcbiAgICAgICAgICAgICAgcmVmPXtlZGl0b3JSZWZ9XG4gICAgICAgICAgICAgIGNsYXNzTmFtZT17Y2xhc3NOYW1lfVxuICAgICAgICAgICAgICBkYXRhLXBsYWNlaG9sZGVyPXtwbGFjZWhvbGRlcn1cbiAgICAgICAgICAgICAgY29udGVudEVkaXRhYmxlPXshZGlzYWJsZWR9XG4gICAgICAgICAgICAgIGRhdGEtZGlzYWJsZWQ9e1N0cmluZyghIWRpc2FibGVkKX1cbiAgICAgICAgICAgICAgc3VwcHJlc3NDb250ZW50RWRpdGFibGVXYXJuaW5nXG4gICAgICAgICAgICAgIHJvbGU9XCJ0ZXh0Ym94XCJcbiAgICAgICAgICAgICAgYXJpYS1tdWx0aWxpbmU9XCJ0cnVlXCJcbiAgICAgICAgICAgICAgb25JbnB1dD17aGFuZGxlSW5wdXR9XG4gICAgICAgICAgICAgIG9uS2V5RG93bj17b25LZXlEb3dufVxuICAgICAgICAgICAgICBvblBhc3RlPXtoYW5kbGVQYXN0ZX1cbiAgICAgICAgICAgICAgb25Gb2N1cz17b25Gb2N1c31cbiAgICAgICAgICAgICAgb25CbHVyPXtvbkJsdXJ9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgPC9Ub29sdGlwPlxuICAgICAgPC8+XG4gICAgKVxuICB9XG4pXG5cbkNvbnRleHRNZW50aW9uRWRpdG9yLmRpc3BsYXlOYW1lID0gJ0NvbnRleHRNZW50aW9uRWRpdG9yJ1xuIl0sIm1hcHBpbmdzIjoiOzs7O0FBQUEsU0FFRUEsVUFBVSxFQUVWQyxXQUFXLEVBQ1hDLG1CQUFtQixFQUNuQkMsZUFBZSxFQUNmQyxNQUFNLEVBQ05DLFFBQVEsUUFDSCxPQUFPO0FBQ2QsU0FBU0MsT0FBTyxRQUFRLDhDQUE4QztBQUN0RSxTQUFTQyxrQkFBa0IsUUFBUSxtQ0FBbUM7QUFFdEUsU0FBU0MsZ0JBQWdCLFFBQVEsdUJBQXVCO0FBQ3hELFNBQVNDLDhCQUE4QixRQUFRLGlEQUFpRDtBQUNoRyxTQUFTQyxZQUFZLFFBQVEsK0JBQStCO0FBQUEsU0FBQUMsR0FBQSxJQUFBQyxJQUFBLEVBQUFDLFFBQUEsSUFBQUMsU0FBQSxFQUFBQyxJQUFBLElBQUFDLEtBQUE7QUFFNUQsSUFBTUMsOEJBQThC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U0FBUyxDQUFDRyxrQkFBa0IsQ0FBQyxDQUFDO0lBQzlCSCxTQUFTLENBQUNJLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQ0MsVUFBVSxDQUFDaEcsUUFBUSxDQUFDaUcsY0FBYyxDQUFDekMsSUFBSSxDQUFDLENBQUM7SUFDakVtQyxTQUFTLENBQUNPLGFBQWEsQ0FBQyxDQUFDO0lBQ3pCZCxXQUFXLENBQUMsQ0FBQztFQUNmLENBQUM7RUFFRCxJQUFNZSxrQkFBa0IsSUFBQTNFLGtCQUFBLEdBQUdoQyxXQUFXLGFBQVhBLFdBQVcsdUJBQVhBLFdBQVcsQ0FBRUUsSUFBSSxDQUFDLENBQUMsY0FBQThCLGtCQUFBLGNBQUFBLGtCQUFBLEdBQUksRUFBRTtFQUNwRCxJQUFNNEUsdUJBQXVCLEdBQUdwRCxZQUFZLElBQUlKLG9CQUFvQixJQUFJdUQsa0JBQWtCLEdBQUdBLGtCQUFrQixHQUFHLEVBQUU7RUFFcEgsb0JBQ0U5RyxLQUFBLENBQUFGLFNBQUE7SUFBQWtILFFBQUEsZ0JBQ0VwSCxJQUFBLENBQUNILDhCQUE4QixJQUFFLENBQUMsZUFDbENHLElBQUEsQ0FBQ04sT0FBTztNQUFDMkgsS0FBSyxFQUFFRix1QkFBd0I7TUFBQUMsUUFBQSxlQUN0Q3BILElBQUE7UUFBTXNILEtBQUssRUFBRTtVQUFFQyxPQUFPLEVBQUUsT0FBTztVQUFFOUYsS0FBSyxFQUFFLE1BQU07VUFBRStGLFFBQVEsRUFBRTtRQUFFLENBQUU7UUFBQUosUUFBQSxlQUM1RHBILElBQUEsQ0FBQ0YsWUFBWTtVQUNYd0MsR0FBRyxFQUFFUyxTQUFVO1VBQ2ZOLFNBQVMsRUFBRUEsU0FBVTtVQUNyQixvQkFBa0JsQyxXQUFZO1VBQzlCa0gsZUFBZSxFQUFFLENBQUNqRixRQUFTO1VBQzNCLGlCQUFla0YsTUFBTSxDQUFDLENBQUMsQ0FBQ2xGLFFBQVEsQ0FBRTtVQUNsQ21GLDhCQUE4QjtVQUM5QkMsSUFBSSxFQUFDLFNBQVM7VUFDZCxrQkFBZSxNQUFNO1VBQ3JCbEYsT0FBTyxFQUFFeUQsV0FBWTtVQUNyQnhELFNBQVMsRUFBRUEsU0FBVTtVQUNyQmtGLE9BQU8sRUFBRXhCLFdBQVk7VUFDckJ6RCxPQUFPLEVBQUVBLE9BQVE7VUFDakJDLE1BQU0sRUFBRUE7UUFBTyxDQUNoQjtNQUFDLENBQ0U7SUFBQyxDQUNBLENBQUM7RUFBQSxDQUNWLENBQUM7QUFFUCxDQUNGLENBQUM7QUFFRFQsb0JBQW9CLENBQUMwRixXQUFXLEdBQUcsc0JBQXNCIiwiaWdub3JlTGlzdCI6W119
@@ -1,6 +0,0 @@
1
- import styled from 'styled-components';
2
- export var SCMEEditable = styled.div.withConfig({
3
- displayName: "ContextMentionEditorstyles__SCMEEditable",
4
- componentId: "sc-vz0osf-0"
5
- })(["box-sizing:border-box;min-width:0;width:100%;min-height:24px;max-height:200px;overflow-y:auto;color:var(--Text-Primary-Dark,#20201f);font-family:var(--cor-typography-font-family,'Work Sans');font-size:14px;font-style:normal;font-weight:400;line-height:20px;letter-spacing:0;outline:none;word-break:break-word;&:empty{overflow-x:hidden;}&:empty::before{content:attr(data-placeholder);display:block;max-width:100%;color:var(--Text-Secondary-Dark,#666);pointer-events:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}&[data-disabled='true']{opacity:0.5;pointer-events:none;}&::-webkit-scrollbar{width:6px;}&::-webkit-scrollbar-thumb{background:#d0d0d0;border-radius:3px;}"]);
6
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJzdHlsZWQiLCJTQ01FRWRpdGFibGUiLCJkaXYiLCJ3aXRoQ29uZmlnIiwiZGlzcGxheU5hbWUiLCJjb21wb25lbnRJZCJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL2F0b21zL0NvbnRleHRNZW50aW9uRWRpdG9yL0NvbnRleHRNZW50aW9uRWRpdG9yLnN0eWxlcy50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHN0eWxlZCBmcm9tICdzdHlsZWQtY29tcG9uZW50cydcblxuZXhwb3J0IGNvbnN0IFNDTUVFZGl0YWJsZSA9IHN0eWxlZC5kaXZgXG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIG1pbi13aWR0aDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIG1pbi1oZWlnaHQ6IDI0cHg7XG4gIG1heC1oZWlnaHQ6IDIwMHB4O1xuICBvdmVyZmxvdy15OiBhdXRvO1xuICBjb2xvcjogdmFyKC0tVGV4dC1QcmltYXJ5LURhcmssICMyMDIwMWYpO1xuICBmb250LWZhbWlseTogdmFyKC0tY29yLXR5cG9ncmFwaHktZm9udC1mYW1pbHksICdXb3JrIFNhbnMnKTtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGxpbmUtaGVpZ2h0OiAyMHB4O1xuICBsZXR0ZXItc3BhY2luZzogMDtcbiAgb3V0bGluZTogbm9uZTtcbiAgd29yZC1icmVhazogYnJlYWstd29yZDtcblxuICAmOmVtcHR5IHtcbiAgICBvdmVyZmxvdy14OiBoaWRkZW47XG4gIH1cblxuICAmOmVtcHR5OjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1wbGFjZWhvbGRlcik7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIGNvbG9yOiB2YXIoLS1UZXh0LVNlY29uZGFyeS1EYXJrLCAjNjY2KTtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gIH1cblxuICAmW2RhdGEtZGlzYWJsZWQ9J3RydWUnXSB7XG4gICAgb3BhY2l0eTogMC41O1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICB9XG5cbiAgJjo6LXdlYmtpdC1zY3JvbGxiYXIge1xuICAgIHdpZHRoOiA2cHg7XG4gIH1cbiAgJjo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIge1xuICAgIGJhY2tncm91bmQ6ICNkMGQwZDA7XG4gICAgYm9yZGVyLXJhZGl1czogM3B4O1xuICB9XG5gXG4iXSwibWFwcGluZ3MiOiJBQUFBLE9BQU9BLE1BQU0sTUFBTSxtQkFBbUI7QUFFdEMsT0FBTyxJQUFNQyxZQUFZLEdBQUdELE1BQU0sQ0FBQ0UsR0FBRyxDQUFBQyxVQUFBO0VBQUFDLFdBQUE7RUFBQUMsV0FBQTtBQUFBLG1yQkE0Q3JDIiwiaWdub3JlTGlzdCI6W119
@@ -1,2 +0,0 @@
1
- export { ContextMentionEditor } from './ContextMentionEditor';
2
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJDb250ZXh0TWVudGlvbkVkaXRvciJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL2F0b21zL0NvbnRleHRNZW50aW9uRWRpdG9yL2luZGV4LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB7IENvbnRleHRNZW50aW9uRWRpdG9yIH0gZnJvbSAnLi9Db250ZXh0TWVudGlvbkVkaXRvcidcbmV4cG9ydCB0eXBlIHsgQ29udGV4dE1lbnRpb25FZGl0b3JIYW5kbGUsIENvbnRleHRNZW50aW9uRWRpdG9yUHJvcHMgfSBmcm9tICcuL0NvbnRleHRNZW50aW9uRWRpdG9yJ1xuIl0sIm1hcHBpbmdzIjoiQUFBQSxTQUFTQSxvQkFBb0IsUUFBUSx3QkFBd0IiLCJpZ25vcmVMaXN0IjpbXX0=