@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,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=
|
|
@@ -1,280 +0,0 @@
|
|
|
1
|
-
import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
|
|
2
|
-
import { useLayoutEffect, useRef, useState } from 'react';
|
|
3
|
-
import { ChevronRight } from '@projectcor/icons/lib/components/ChevronRight';
|
|
4
|
-
import { Tooltip } from '@projectcor/tooltipv2/lib/components/Tooltip';
|
|
5
|
-
import { useT } from '../../../hooks/useT';
|
|
6
|
-
import { TASK_LINK_ICON_DATA_URL } from '../../../constants/taskLinkIcon';
|
|
7
|
-
import { NotionIcon } from '../icons/NotionIcon';
|
|
8
|
-
import { SubtaskIcon } from '../icons/SubtaskIcon';
|
|
9
|
-
import { getContextMentionIcon, isNotionMcpSlug } from '../../../utils/contextMentionIcons';
|
|
10
|
-
import { SCMIRow, SCMIProjectRow, SCMIProjectContent, SCMIName, SCMITitle, SCMIProjectTitle, SCMITitleHighlight, SCMIBreadcrumb, SCMIBreadcrumbParent, SCMIRowUser, SCMUserAvatarWrap, SCMUserAvatarImg, SCMUserAvatarFallback, SCMUserInfo, SCMUserNamePositionRow, SCMUserNameCell, SCMUserNameText, SCMUserPositionText, SCMITaskRowInner, SCMITaskTitleRow, SCMITaskSubtaskIconWrap, SCMITaskProjectName, SCMITaskIconImg, SCMITaskTitle } from './ContextMentionItem.styles';
|
|
11
|
-
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
|
|
12
|
-
var TASK_PROJECT_NAME_MAX_CHARS = 40;
|
|
13
|
-
var truncateWithEllipsis = function truncateWithEllipsis(value, maxChars) {
|
|
14
|
-
if (value.length <= maxChars) return value;
|
|
15
|
-
return "".concat(value.slice(0, Math.max(0, maxChars - 1)).trimEnd(), "\u2026");
|
|
16
|
-
};
|
|
17
|
-
var renderTitle = function renderTitle(primary, highlight) {
|
|
18
|
-
if (!highlight || highlight.length <= 0) return primary;
|
|
19
|
-
var start = highlight.start,
|
|
20
|
-
length = highlight.length;
|
|
21
|
-
var end = start + length;
|
|
22
|
-
if (start < 0 || start > primary.length || end > primary.length) return primary;
|
|
23
|
-
return /*#__PURE__*/_jsxs(_Fragment, {
|
|
24
|
-
children: [primary.slice(0, start), /*#__PURE__*/_jsx(SCMITitleHighlight, {
|
|
25
|
-
children: primary.slice(start, end)
|
|
26
|
-
}), primary.slice(end)]
|
|
27
|
-
});
|
|
28
|
-
};
|
|
29
|
-
function useOverflowTooltip(ref, deps) {
|
|
30
|
-
var _useState = useState(false),
|
|
31
|
-
_useState2 = _slicedToArray(_useState, 2),
|
|
32
|
-
showTooltip = _useState2[0],
|
|
33
|
-
setShowTooltip = _useState2[1];
|
|
34
|
-
useLayoutEffect(function () {
|
|
35
|
-
var el = ref.current;
|
|
36
|
-
if (!el) {
|
|
37
|
-
setShowTooltip(false);
|
|
38
|
-
return undefined;
|
|
39
|
-
}
|
|
40
|
-
var measure = function measure() {
|
|
41
|
-
setShowTooltip(el.scrollWidth > el.clientWidth);
|
|
42
|
-
};
|
|
43
|
-
measure();
|
|
44
|
-
var ro = new ResizeObserver(measure);
|
|
45
|
-
ro.observe(el);
|
|
46
|
-
window.addEventListener('resize', measure);
|
|
47
|
-
return function () {
|
|
48
|
-
ro.disconnect();
|
|
49
|
-
window.removeEventListener('resize', measure);
|
|
50
|
-
};
|
|
51
|
-
}, deps);
|
|
52
|
-
return showTooltip;
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
/** Iniciales para avatar (nombre legal), no el texto visible de la fila (ej. "Yo"). */
|
|
56
|
-
var initialsFromDisplayName = function initialsFromDisplayName(name) {
|
|
57
|
-
var _parts$2;
|
|
58
|
-
var trimmed = name.trim();
|
|
59
|
-
if (!trimmed) return '?';
|
|
60
|
-
var parts = trimmed.split(/\s+/).filter(Boolean);
|
|
61
|
-
if (parts.length >= 2) {
|
|
62
|
-
var _parts$0$charAt, _parts$, _parts$charAt, _parts;
|
|
63
|
-
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 : '';
|
|
64
|
-
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 : '';
|
|
65
|
-
return "".concat(first).concat(last).toUpperCase();
|
|
66
|
-
}
|
|
67
|
-
var single = (_parts$2 = parts[0]) !== null && _parts$2 !== void 0 ? _parts$2 : '';
|
|
68
|
-
if (single.length >= 2) return single.slice(0, 2).toUpperCase();
|
|
69
|
-
return (single.charAt(0) || '?').toUpperCase();
|
|
70
|
-
};
|
|
71
|
-
var UserRowAvatar = function UserRowAvatar(_ref) {
|
|
72
|
-
var picture = _ref.picture,
|
|
73
|
-
nameForInitials = _ref.nameForInitials;
|
|
74
|
-
var _useState3 = useState(false),
|
|
75
|
-
_useState4 = _slicedToArray(_useState3, 2),
|
|
76
|
-
broken = _useState4[0],
|
|
77
|
-
setBroken = _useState4[1];
|
|
78
|
-
var initials = initialsFromDisplayName(nameForInitials);
|
|
79
|
-
return /*#__PURE__*/_jsx(SCMUserAvatarWrap, {
|
|
80
|
-
children: picture && !broken ? /*#__PURE__*/_jsx(SCMUserAvatarImg, {
|
|
81
|
-
src: picture,
|
|
82
|
-
alt: "",
|
|
83
|
-
onError: function onError() {
|
|
84
|
-
return setBroken(true);
|
|
85
|
-
},
|
|
86
|
-
loading: "lazy",
|
|
87
|
-
decoding: "async"
|
|
88
|
-
}) : /*#__PURE__*/_jsx(SCMUserAvatarFallback, {
|
|
89
|
-
"aria-hidden": true,
|
|
90
|
-
children: initials
|
|
91
|
-
})
|
|
92
|
-
});
|
|
93
|
-
};
|
|
94
|
-
var ContextMentionTaskRow = function ContextMentionTaskRow(_ref2) {
|
|
95
|
-
var _raw$projectName, _breadcrumb$parent, _primaryHighlight$sta, _primaryHighlight$len;
|
|
96
|
-
var item = _ref2.item,
|
|
97
|
-
active = _ref2.active,
|
|
98
|
-
onMouseDown = _ref2.onMouseDown,
|
|
99
|
-
onHover = _ref2.onHover;
|
|
100
|
-
var primary = item.primary,
|
|
101
|
-
primaryHighlight = item.primaryHighlight,
|
|
102
|
-
breadcrumb = item.breadcrumb,
|
|
103
|
-
raw = item.raw;
|
|
104
|
-
var projectName = ((_raw$projectName = raw.projectName) === null || _raw$projectName === void 0 ? void 0 : _raw$projectName.trim()) || (breadcrumb === null || breadcrumb === void 0 || (_breadcrumb$parent = breadcrumb.parent) === null || _breadcrumb$parent === void 0 ? void 0 : _breadcrumb$parent.trim()) || '';
|
|
105
|
-
var projectNameDisplay = truncateWithEllipsis(projectName, TASK_PROJECT_NAME_MAX_CHARS);
|
|
106
|
-
var isProjectNameTruncatedByChars = projectNameDisplay !== projectName;
|
|
107
|
-
var hasFather = raw.fatherId != null;
|
|
108
|
-
var titleRef = useRef(null);
|
|
109
|
-
var projectRef = useRef(null);
|
|
110
|
-
var showTitleTooltip = useOverflowTooltip(titleRef, [primary, projectName, (_primaryHighlight$sta = primaryHighlight === null || primaryHighlight === void 0 ? void 0 : primaryHighlight.start) !== null && _primaryHighlight$sta !== void 0 ? _primaryHighlight$sta : -1, (_primaryHighlight$len = primaryHighlight === null || primaryHighlight === void 0 ? void 0 : primaryHighlight.length) !== null && _primaryHighlight$len !== void 0 ? _primaryHighlight$len : 0, hasFather]);
|
|
111
|
-
var showProjectTooltip = useOverflowTooltip(projectRef, [projectNameDisplay, primary]);
|
|
112
|
-
var shouldShowProjectTooltip = isProjectNameTruncatedByChars || showProjectTooltip;
|
|
113
|
-
return /*#__PURE__*/_jsx(SCMIRow, {
|
|
114
|
-
$active: active,
|
|
115
|
-
onMouseDown: onMouseDown,
|
|
116
|
-
onMouseEnter: onHover,
|
|
117
|
-
children: /*#__PURE__*/_jsxs(SCMITaskRowInner, {
|
|
118
|
-
children: [/*#__PURE__*/_jsx(SCMITaskIconImg, {
|
|
119
|
-
src: TASK_LINK_ICON_DATA_URL,
|
|
120
|
-
alt: "",
|
|
121
|
-
draggable: false,
|
|
122
|
-
"aria-hidden": true
|
|
123
|
-
}), /*#__PURE__*/_jsxs(SCMITaskTitleRow, {
|
|
124
|
-
children: [hasFather ? /*#__PURE__*/_jsx(SCMITaskSubtaskIconWrap, {
|
|
125
|
-
children: /*#__PURE__*/_jsx(SubtaskIcon, {
|
|
126
|
-
width: "16px",
|
|
127
|
-
height: "16px",
|
|
128
|
-
color: "#000",
|
|
129
|
-
variant: "regular"
|
|
130
|
-
})
|
|
131
|
-
}) : null, /*#__PURE__*/_jsx(Tooltip, {
|
|
132
|
-
title: showTitleTooltip ? primary : '',
|
|
133
|
-
children: /*#__PURE__*/_jsx(SCMITaskTitle, {
|
|
134
|
-
ref: titleRef,
|
|
135
|
-
children: renderTitle(primary, primaryHighlight)
|
|
136
|
-
})
|
|
137
|
-
}), projectName ? /*#__PURE__*/_jsx(Tooltip, {
|
|
138
|
-
title: shouldShowProjectTooltip ? projectName : '',
|
|
139
|
-
children: /*#__PURE__*/_jsx(SCMITaskProjectName, {
|
|
140
|
-
ref: projectRef,
|
|
141
|
-
children: projectNameDisplay
|
|
142
|
-
})
|
|
143
|
-
}) : null]
|
|
144
|
-
})]
|
|
145
|
-
})
|
|
146
|
-
});
|
|
147
|
-
};
|
|
148
|
-
export var ContextMentionItem = function ContextMentionItem(_ref3) {
|
|
149
|
-
var item = _ref3.item,
|
|
150
|
-
active = _ref3.active,
|
|
151
|
-
onSelect = _ref3.onSelect,
|
|
152
|
-
_onHover = _ref3.onHover;
|
|
153
|
-
var _useT = useT(),
|
|
154
|
-
t = _useT.t;
|
|
155
|
-
var primary = item.primary,
|
|
156
|
-
primaryHighlight = item.primaryHighlight,
|
|
157
|
-
breadcrumb = item.breadcrumb,
|
|
158
|
-
type = item.type,
|
|
159
|
-
raw = item.raw;
|
|
160
|
-
var handleClick = function handleClick(e) {
|
|
161
|
-
e.preventDefault();
|
|
162
|
-
e.stopPropagation();
|
|
163
|
-
onSelect(item);
|
|
164
|
-
};
|
|
165
|
-
var hasCount = typeof (breadcrumb === null || breadcrumb === void 0 ? void 0 : breadcrumb.count) === 'number';
|
|
166
|
-
var hasParent = !!(breadcrumb !== null && breadcrumb !== void 0 && breadcrumb.parent);
|
|
167
|
-
var countLabel = (breadcrumb === null || breadcrumb === void 0 ? void 0 : breadcrumb.countLabel) && t("contextMention.counters.".concat(breadcrumb.countLabel), {
|
|
168
|
-
defaultValue: breadcrumb.countLabel
|
|
169
|
-
});
|
|
170
|
-
if (type === 'user') {
|
|
171
|
-
var _raw$positionName$tri, _raw$positionName;
|
|
172
|
-
var positionNameTrimmed = (_raw$positionName$tri = (_raw$positionName = raw.positionName) === null || _raw$positionName === void 0 ? void 0 : _raw$positionName.trim()) !== null && _raw$positionName$tri !== void 0 ? _raw$positionName$tri : '';
|
|
173
|
-
var positionLine = positionNameTrimmed || t('contextMention.userNoPosition', {
|
|
174
|
-
defaultValue: 'Sin posición'
|
|
175
|
-
});
|
|
176
|
-
return /*#__PURE__*/_jsxs(SCMIRowUser, {
|
|
177
|
-
$active: active,
|
|
178
|
-
onMouseDown: handleClick,
|
|
179
|
-
onMouseEnter: function onMouseEnter() {
|
|
180
|
-
return _onHover === null || _onHover === void 0 ? void 0 : _onHover(item);
|
|
181
|
-
},
|
|
182
|
-
children: [/*#__PURE__*/_jsx(UserRowAvatar, {
|
|
183
|
-
picture: raw.picture,
|
|
184
|
-
nameForInitials: raw.name.trim() ? raw.name : primary
|
|
185
|
-
}), /*#__PURE__*/_jsx(SCMUserInfo, {
|
|
186
|
-
children: /*#__PURE__*/_jsxs(SCMUserNamePositionRow, {
|
|
187
|
-
children: [/*#__PURE__*/_jsx(SCMUserNameCell, {
|
|
188
|
-
$withDivider: true,
|
|
189
|
-
children: /*#__PURE__*/_jsx(SCMUserNameText, {
|
|
190
|
-
children: renderTitle(primary, primaryHighlight)
|
|
191
|
-
})
|
|
192
|
-
}), /*#__PURE__*/_jsx(SCMUserPositionText, {
|
|
193
|
-
title: positionLine,
|
|
194
|
-
children: positionLine
|
|
195
|
-
})]
|
|
196
|
-
})
|
|
197
|
-
})]
|
|
198
|
-
});
|
|
199
|
-
}
|
|
200
|
-
if (type === 'project') {
|
|
201
|
-
return /*#__PURE__*/_jsx(SCMIProjectRow, {
|
|
202
|
-
onMouseDown: handleClick,
|
|
203
|
-
onMouseEnter: function onMouseEnter() {
|
|
204
|
-
return _onHover === null || _onHover === void 0 ? void 0 : _onHover(item);
|
|
205
|
-
},
|
|
206
|
-
children: /*#__PURE__*/_jsx(SCMIProjectContent, {
|
|
207
|
-
$active: active,
|
|
208
|
-
children: /*#__PURE__*/_jsx(SCMIName, {
|
|
209
|
-
children: /*#__PURE__*/_jsx(SCMIProjectTitle, {
|
|
210
|
-
title: primary,
|
|
211
|
-
children: renderTitle(primary, primaryHighlight)
|
|
212
|
-
})
|
|
213
|
-
})
|
|
214
|
-
})
|
|
215
|
-
});
|
|
216
|
-
}
|
|
217
|
-
if (type === 'task') {
|
|
218
|
-
return /*#__PURE__*/_jsx(ContextMentionTaskRow, {
|
|
219
|
-
item: item,
|
|
220
|
-
active: active,
|
|
221
|
-
onMouseDown: handleClick,
|
|
222
|
-
onHover: function onHover() {
|
|
223
|
-
return _onHover === null || _onHover === void 0 ? void 0 : _onHover(item);
|
|
224
|
-
}
|
|
225
|
-
});
|
|
226
|
-
}
|
|
227
|
-
if (type === 'mcp') {
|
|
228
|
-
return /*#__PURE__*/_jsx(SCMIRow, {
|
|
229
|
-
$active: active,
|
|
230
|
-
onMouseDown: handleClick,
|
|
231
|
-
onMouseEnter: function onMouseEnter() {
|
|
232
|
-
return _onHover === null || _onHover === void 0 ? void 0 : _onHover(item);
|
|
233
|
-
},
|
|
234
|
-
children: /*#__PURE__*/_jsxs(SCMITaskRowInner, {
|
|
235
|
-
children: [/*#__PURE__*/_jsx("span", {
|
|
236
|
-
style: {
|
|
237
|
-
display: 'inline-flex',
|
|
238
|
-
alignItems: 'center',
|
|
239
|
-
justifyContent: 'center',
|
|
240
|
-
width: 16,
|
|
241
|
-
height: 16,
|
|
242
|
-
flex: '0 0 16px'
|
|
243
|
-
},
|
|
244
|
-
children: isNotionMcpSlug(raw.id) ? /*#__PURE__*/_jsx(NotionIcon, {
|
|
245
|
-
width: 16,
|
|
246
|
-
height: 16
|
|
247
|
-
}) : getContextMentionIcon('mcp', '#2d77bd', raw.id, 16)
|
|
248
|
-
}), /*#__PURE__*/_jsx(SCMITaskTitle, {
|
|
249
|
-
title: primary,
|
|
250
|
-
children: renderTitle(primary, primaryHighlight)
|
|
251
|
-
})]
|
|
252
|
-
})
|
|
253
|
-
});
|
|
254
|
-
}
|
|
255
|
-
return /*#__PURE__*/_jsx(SCMIRow, {
|
|
256
|
-
$active: active,
|
|
257
|
-
onMouseDown: handleClick,
|
|
258
|
-
onMouseEnter: function onMouseEnter() {
|
|
259
|
-
return _onHover === null || _onHover === void 0 ? void 0 : _onHover(item);
|
|
260
|
-
},
|
|
261
|
-
children: /*#__PURE__*/_jsxs(SCMIName, {
|
|
262
|
-
children: [/*#__PURE__*/_jsx(SCMITitle, {
|
|
263
|
-
children: renderTitle(primary, primaryHighlight)
|
|
264
|
-
}), (hasCount || hasParent) && /*#__PURE__*/_jsxs(SCMIBreadcrumb, {
|
|
265
|
-
children: [hasCount && /*#__PURE__*/_jsxs("span", {
|
|
266
|
-
children: [breadcrumb === null || breadcrumb === void 0 ? void 0 : breadcrumb.count, " ", countLabel]
|
|
267
|
-
}), hasParent && /*#__PURE__*/_jsxs(SCMIBreadcrumbParent, {
|
|
268
|
-
children: [/*#__PURE__*/_jsx(ChevronRight, {
|
|
269
|
-
width: "12px",
|
|
270
|
-
height: "12px",
|
|
271
|
-
color: "#808080"
|
|
272
|
-
}), /*#__PURE__*/_jsx("span", {
|
|
273
|
-
children: breadcrumb === null || breadcrumb === void 0 ? void 0 : breadcrumb.parent
|
|
274
|
-
})]
|
|
275
|
-
})]
|
|
276
|
-
})]
|
|
277
|
-
})
|
|
278
|
-
});
|
|
279
|
-
};
|
|
280
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VMYXlvdXRFZmZlY3QiLCJ1c2VSZWYiLCJ1c2VTdGF0ZSIsIkNoZXZyb25SaWdodCIsIlRvb2x0aXAiLCJ1c2VUIiwiVEFTS19MSU5LX0lDT05fREFUQV9VUkwiLCJOb3Rpb25JY29uIiwiU3VidGFza0ljb24iLCJnZXRDb250ZXh0TWVudGlvbkljb24iLCJpc05vdGlvbk1jcFNsdWciLCJTQ01JUm93IiwiU0NNSVByb2plY3RSb3ciLCJTQ01JUHJvamVjdENvbnRlbnQiLCJTQ01JTmFtZSIsIlNDTUlUaXRsZSIsIlNDTUlQcm9qZWN0VGl0bGUiLCJTQ01JVGl0bGVIaWdobGlnaHQiLCJTQ01JQnJlYWRjcnVtYiIsIlNDTUlCcmVhZGNydW1iUGFyZW50IiwiU0NNSVJvd1VzZXIiLCJTQ01Vc2VyQXZhdGFyV3JhcCIsIlNDTVVzZXJBdmF0YXJJbWciLCJTQ01Vc2VyQXZhdGFyRmFsbGJhY2siLCJTQ01Vc2VySW5mbyIsIlNDTVVzZXJOYW1lUG9zaXRpb25Sb3ciLCJTQ01Vc2VyTmFtZUNlbGwiLCJTQ01Vc2VyTmFtZVRleHQiLCJTQ01Vc2VyUG9zaXRpb25UZXh0IiwiU0NNSVRhc2tSb3dJbm5lciIsIlNDTUlUYXNrVGl0bGVSb3ciLCJTQ01JVGFza1N1YnRhc2tJY29uV3JhcCIsIlNDTUlUYXNrUHJvamVjdE5hbWUiLCJTQ01JVGFza0ljb25JbWciLCJTQ01JVGFza1RpdGxlIiwianN4IiwiX2pzeCIsIkZyYWdtZW50IiwiX0ZyYWdtZW50IiwianN4cyIsIl9qc3hzIiwiVEFTS19QUk9KRUNUX05BTUVfTUFYX0NIQVJTIiwidHJ1bmNhdGVXaXRoRWxsaXBzaXMiLCJ2YWx1ZSIsIm1heENoYXJzIiwibGVuZ3RoIiwiY29uY2F0Iiwic2xpY2UiLCJNYXRoIiwibWF4IiwidHJpbUVuZCIsInJlbmRlclRpdGxlIiwicHJpbWFyeSIsImhpZ2hsaWdodCIsInN0YXJ0IiwiZW5kIiwiY2hpbGRyZW4iLCJ1c2VPdmVyZmxvd1Rvb2x0aXAiLCJyZWYiLCJkZXBzIiwiX3VzZVN0YXRlIiwiX3VzZVN0YXRlMiIsIl9zbGljZWRUb0FycmF5Iiwic2hvd1Rvb2x0aXAiLCJzZXRTaG93VG9vbHRpcCIsImVsIiwiY3VycmVudCIsInVuZGVmaW5lZCIsIm1lYXN1cmUiLCJzY3JvbGxXaWR0aCIsImNsaWVudFdpZHRoIiwicm8iLCJSZXNpemVPYnNlcnZlciIsIm9ic2VydmUiLCJ3aW5kb3ciLCJhZGRFdmVudExpc3RlbmVyIiwiZGlzY29ubmVjdCIsInJlbW92ZUV2ZW50TGlzdGVuZXIiLCJpbml0aWFsc0Zyb21EaXNwbGF5TmFtZSIsIm5hbWUiLCJfcGFydHMkMiIsInRyaW1tZWQiLCJ0cmltIiwicGFydHMiLCJzcGxpdCIsImZpbHRlciIsIkJvb2xlYW4iLCJfcGFydHMkMCRjaGFyQXQiLCJfcGFydHMkIiwiX3BhcnRzJGNoYXJBdCIsIl9wYXJ0cyIsImZpcnN0IiwiY2hhckF0IiwibGFzdCIsInRvVXBwZXJDYXNlIiwic2luZ2xlIiwiVXNlclJvd0F2YXRhciIsIl9yZWYiLCJwaWN0dXJlIiwibmFtZUZvckluaXRpYWxzIiwiX3VzZVN0YXRlMyIsIl91c2VTdGF0ZTQiLCJicm9rZW4iLCJzZXRCcm9rZW4iLCJpbml0aWFscyIsInNyYyIsImFsdCIsIm9uRXJyb3IiLCJsb2FkaW5nIiwiZGVjb2RpbmciLCJDb250ZXh0TWVudGlvblRhc2tSb3ciLCJfcmVmMiIsIl9yYXckcHJvamVjdE5hbWUiLCJfYnJlYWRjcnVtYiRwYXJlbnQiLCJfcHJpbWFyeUhpZ2hsaWdodCRzdGEiLCJfcHJpbWFyeUhpZ2hsaWdodCRsZW4iLCJpdGVtIiwiYWN0aXZlIiwib25Nb3VzZURvd24iLCJvbkhvdmVyIiwicHJpbWFyeUhpZ2hsaWdodCIsImJyZWFkY3J1bWIiLCJyYXciLCJwcm9qZWN0TmFtZSIsInBhcmVudCIsInByb2plY3ROYW1lRGlzcGxheSIsImlzUHJvamVjdE5hbWVUcnVuY2F0ZWRCeUNoYXJzIiwiaGFzRmF0aGVyIiwiZmF0aGVySWQiLCJ0aXRsZVJlZiIsInByb2plY3RSZWYiLCJzaG93VGl0bGVUb29sdGlwIiwic2hvd1Byb2plY3RUb29sdGlwIiwic2hvdWxkU2hvd1Byb2plY3RUb29sdGlwIiwiJGFjdGl2ZSIsIm9uTW91c2VFbnRlciIsImRyYWdnYWJsZSIsIndpZHRoIiwiaGVpZ2h0IiwiY29sb3IiLCJ2YXJpYW50IiwidGl0bGUiLCJDb250ZXh0TWVudGlvbkl0ZW0iLCJfcmVmMyIsIm9uU2VsZWN0IiwiX3VzZVQiLCJ0IiwidHlwZSIsImhhbmRsZUNsaWNrIiwiZSIsInByZXZlbnREZWZhdWx0Iiwic3RvcFByb3BhZ2F0aW9uIiwiaGFzQ291bnQiLCJjb3VudCIsImhhc1BhcmVudCIsImNvdW50TGFiZWwiLCJkZWZhdWx0VmFsdWUiLCJfcmF3JHBvc2l0aW9uTmFtZSR0cmkiLCJfcmF3JHBvc2l0aW9uTmFtZSIsInBvc2l0aW9uTmFtZVRyaW1tZWQiLCJwb3NpdGlvbk5hbWUiLCJwb3NpdGlvbkxpbmUiLCIkd2l0aERpdmlkZXIiLCJzdHlsZSIsImRpc3BsYXkiLCJhbGlnbkl0ZW1zIiwianVzdGlmeUNvbnRlbnQiLCJmbGV4IiwiaWQiXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50cy9hdG9tcy9Db250ZXh0TWVudGlvbkl0ZW0vQ29udGV4dE1lbnRpb25JdGVtLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGQywgTW91c2VFdmVudCwgdXNlTGF5b3V0RWZmZWN0LCB1c2VSZWYsIHVzZVN0YXRlLCB0eXBlIFJlZk9iamVjdCB9IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHsgQ2hldnJvblJpZ2h0IH0gZnJvbSAnQHByb2plY3Rjb3IvaWNvbnMvbGliL2NvbXBvbmVudHMvQ2hldnJvblJpZ2h0J1xuaW1wb3J0IHsgVG9vbHRpcCB9IGZyb20gJ0Bwcm9qZWN0Y29yL3Rvb2x0aXB2Mi9saWIvY29tcG9uZW50cy9Ub29sdGlwJ1xuaW1wb3J0IHsgdXNlVCB9IGZyb20gJy4uLy4uLy4uL2hvb2tzL3VzZVQnXG5pbXBvcnQgeyBUQVNLX0xJTktfSUNPTl9EQVRBX1VSTCB9IGZyb20gJy4uLy4uLy4uL2NvbnN0YW50cy90YXNrTGlua0ljb24nXG5pbXBvcnQgeyBDb250ZXh0TWVudGlvbkl0ZW0gYXMgQ29udGV4dE1lbnRpb25JdGVtVHlwZSB9IGZyb20gJy4uLy4uLy4uL3R5cGVzL2NvbnRleHRNZW50aW9uJ1xuaW1wb3J0IHsgTm90aW9uSWNvbiB9IGZyb20gJy4uL2ljb25zL05vdGlvbkljb24nXG5pbXBvcnQgeyBTdWJ0YXNrSWNvbiB9IGZyb20gJy4uL2ljb25zL1N1YnRhc2tJY29uJ1xuaW1wb3J0IHsgZ2V0Q29udGV4dE1lbnRpb25JY29uLCBpc05vdGlvbk1jcFNsdWcgfSBmcm9tICcuLi8uLi8uLi91dGlscy9jb250ZXh0TWVudGlvbkljb25zJ1xuaW1wb3J0IHtcbiAgU0NNSVJvdyxcbiAgU0NNSVByb2plY3RSb3csXG4gIFNDTUlQcm9qZWN0Q29udGVudCxcbiAgU0NNSU5hbWUsXG4gIFNDTUlUaXRsZSxcbiAgU0NNSVByb2plY3RUaXRsZSxcbiAgU0NNSVRpdGxlSGlnaGxpZ2h0LFxuICBTQ01JQnJlYWRjcnVtYixcbiAgU0NNSUJyZWFkY3J1bWJQYXJlbnQsXG4gIFNDTUlSb3dVc2VyLFxuICBTQ01Vc2VyQXZhdGFyV3JhcCxcbiAgU0NNVXNlckF2YXRhckltZyxcbiAgU0NNVXNlckF2YXRhckZhbGxiYWNrLFxuICBTQ01Vc2VySW5mbyxcbiAgU0NNVXNlck5hbWVQb3NpdGlvblJvdyxcbiAgU0NNVXNlck5hbWVDZWxsLFxuICBTQ01Vc2VyTmFtZVRleHQsXG4gIFNDTVVzZXJQb3NpdGlvblRleHQsXG4gIFNDTUlUYXNrUm93SW5uZXIsXG4gIFNDTUlUYXNrVGl0bGVSb3csXG4gIFNDTUlUYXNrU3VidGFza0ljb25XcmFwLFxuICBTQ01JVGFza1Byb2plY3ROYW1lLFxuICBTQ01JVGFza0ljb25JbWcsXG4gIFNDTUlUYXNrVGl0bGUsXG59IGZyb20gJy4vQ29udGV4dE1lbnRpb25JdGVtLnN0eWxlcydcblxudHlwZSBDb250ZXh0TWVudGlvbkl0ZW1Qcm9wcyA9IHtcbiAgaXRlbTogQ29udGV4dE1lbnRpb25JdGVtVHlwZVxuICBhY3RpdmU/OiBib29sZWFuXG4gIG9uU2VsZWN0OiAoaXRlbTogQ29udGV4dE1lbnRpb25JdGVtVHlwZSkgPT4gdm9pZFxuICBvbkhvdmVyPzogKGl0ZW06IENvbnRleHRNZW50aW9uSXRlbVR5cGUpID0+IHZvaWRcbn1cblxuY29uc3QgVEFTS19QUk9KRUNUX05BTUVfTUFYX0NIQVJTID0gNDBcblxuY29uc3QgdHJ1bmNhdGVXaXRoRWxsaXBzaXMgPSAodmFsdWU6IHN0cmluZywgbWF4Q2hhcnM6IG51bWJlcik6IHN0cmluZyA9PiB7XG4gIGlmICh2YWx1ZS5sZW5ndGggPD0gbWF4Q2hhcnMpIHJldHVybiB2YWx1ZVxuICByZXR1cm4gYCR7dmFsdWUuc2xpY2UoMCwgTWF0aC5tYXgoMCwgbWF4Q2hhcnMgLSAxKSkudHJpbUVuZCgpfeKApmBcbn1cblxuY29uc3QgcmVuZGVyVGl0bGUgPSAocHJpbWFyeTogc3RyaW5nLCBoaWdobGlnaHQ/OiB7IHN0YXJ0OiBudW1iZXI7IGxlbmd0aDogbnVtYmVyIH0pID0+IHtcbiAgaWYgKCFoaWdobGlnaHQgfHwgaGlnaGxpZ2h0Lmxlbmd0aCA8PSAwKSByZXR1cm4gcHJpbWFyeVxuICBjb25zdCB7IHN0YXJ0LCBsZW5ndGggfSA9IGhpZ2hsaWdodFxuICBjb25zdCBlbmQgPSBzdGFydCArIGxlbmd0aFxuICBpZiAoc3RhcnQgPCAwIHx8IHN0YXJ0ID4gcHJpbWFyeS5sZW5ndGggfHwgZW5kID4gcHJpbWFyeS5sZW5ndGgpIHJldHVybiBwcmltYXJ5XG4gIHJldHVybiAoXG4gICAgPD5cbiAgICAgIHtwcmltYXJ5LnNsaWNlKDAsIHN0YXJ0KX1cbiAgICAgIDxTQ01JVGl0bGVIaWdobGlnaHQ+e3ByaW1hcnkuc2xpY2Uoc3RhcnQsIGVuZCl9PC9TQ01JVGl0bGVIaWdobGlnaHQ+XG4gICAgICB7cHJpbWFyeS5zbGljZShlbmQpfVxuICAgIDwvPlxuICApXG59XG5cbmZ1bmN0aW9uIHVzZU92ZXJmbG93VG9vbHRpcDxUIGV4dGVuZHMgSFRNTEVsZW1lbnQ+KHJlZjogUmVmT2JqZWN0PFQgfCBudWxsPiwgZGVwczogcmVhZG9ubHkgdW5rbm93bltdKSB7XG4gIGNvbnN0IFtzaG93VG9vbHRpcCwgc2V0U2hvd1Rvb2x0aXBdID0gdXNlU3RhdGUoZmFsc2UpXG5cbiAgdXNlTGF5b3V0RWZmZWN0KCgpID0+IHtcbiAgICBjb25zdCBlbCA9IHJlZi5jdXJyZW50XG4gICAgaWYgKCFlbCkge1xuICAgICAgc2V0U2hvd1Rvb2x0aXAoZmFsc2UpXG4gICAgICByZXR1cm4gdW5kZWZpbmVkXG4gICAgfVxuXG4gICAgY29uc3QgbWVhc3VyZSA9ICgpID0+IHtcbiAgICAgIHNldFNob3dUb29sdGlwKGVsLnNjcm9sbFdpZHRoID4gZWwuY2xpZW50V2lkdGgpXG4gICAgfVxuXG4gICAgbWVhc3VyZSgpXG4gICAgY29uc3Qgcm8gPSBuZXcgUmVzaXplT2JzZXJ2ZXIobWVhc3VyZSlcbiAgICByby5vYnNlcnZlKGVsKVxuICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdyZXNpemUnLCBtZWFzdXJlKVxuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICByby5kaXNjb25uZWN0KClcbiAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCdyZXNpemUnLCBtZWFzdXJlKVxuICAgIH1cbiAgfSwgZGVwcylcblxuICByZXR1cm4gc2hvd1Rvb2x0aXBcbn1cblxuLyoqIEluaWNpYWxlcyBwYXJhIGF2YXRhciAobm9tYnJlIGxlZ2FsKSwgbm8gZWwgdGV4dG8gdmlzaWJsZSBkZSBsYSBmaWxhIChlai4gXCJZb1wiKS4gKi9cbmNvbnN0IGluaXRpYWxzRnJvbURpc3BsYXlOYW1lID0gKG5hbWU6IHN0cmluZyk6IHN0cmluZyA9PiB7XG4gIGNvbnN0IHRyaW1tZWQgPSBuYW1lLnRyaW0oKVxuICBpZiAoIXRyaW1tZWQpIHJldHVybiAnPydcbiAgY29uc3QgcGFydHMgPSB0cmltbWVkLnNwbGl0KC9cXHMrLykuZmlsdGVyKEJvb2xlYW4pXG4gIGlmIChwYXJ0cy5sZW5ndGggPj0gMikge1xuICAgIGNvbnN0IGZpcnN0ID0gcGFydHNbMF0/LmNoYXJBdCgwKSA/PyAnJ1xuICAgIGNvbnN0IGxhc3QgPSBwYXJ0c1twYXJ0cy5sZW5ndGggLSAxXT8uY2hhckF0KDApID8/ICcnXG4gICAgcmV0dXJuIGAke2ZpcnN0fSR7bGFzdH1gLnRvVXBwZXJDYXNlKClcbiAgfVxuICBjb25zdCBzaW5nbGUgPSBwYXJ0c1swXSA/PyAnJ1xuICBpZiAoc2luZ2xlLmxlbmd0aCA+PSAyKSByZXR1cm4gc2luZ2xlLnNsaWNlKDAsIDIpLnRvVXBwZXJDYXNlKClcbiAgcmV0dXJuIChzaW5nbGUuY2hhckF0KDApIHx8ICc/JykudG9VcHBlckNhc2UoKVxufVxuXG5jb25zdCBVc2VyUm93QXZhdGFyOiBGQzx7IHBpY3R1cmU/OiBzdHJpbmcgfCBudWxsOyBuYW1lRm9ySW5pdGlhbHM6IHN0cmluZyB9PiA9ICh7IHBpY3R1cmUsIG5hbWVGb3JJbml0aWFscyB9KSA9PiB7XG4gIGNvbnN0IFticm9rZW4sIHNldEJyb2tlbl0gPSB1c2VTdGF0ZShmYWxzZSlcbiAgY29uc3QgaW5pdGlhbHMgPSBpbml0aWFsc0Zyb21EaXNwbGF5TmFtZShuYW1lRm9ySW5pdGlhbHMpXG5cbiAgcmV0dXJuIChcbiAgICA8U0NNVXNlckF2YXRhcldyYXA+XG4gICAgICB7cGljdHVyZSAmJiAhYnJva2VuID8gKFxuICAgICAgICA8U0NNVXNlckF2YXRhckltZyBzcmM9e3BpY3R1cmV9IGFsdD1cIlwiIG9uRXJyb3I9eygpID0+IHNldEJyb2tlbih0cnVlKX0gbG9hZGluZz1cImxhenlcIiBkZWNvZGluZz1cImFzeW5jXCIgLz5cbiAgICAgICkgOiAoXG4gICAgICAgIDxTQ01Vc2VyQXZhdGFyRmFsbGJhY2sgYXJpYS1oaWRkZW4+e2luaXRpYWxzfTwvU0NNVXNlckF2YXRhckZhbGxiYWNrPlxuICAgICAgKX1cbiAgICA8L1NDTVVzZXJBdmF0YXJXcmFwPlxuICApXG59XG5cbmNvbnN0IENvbnRleHRNZW50aW9uVGFza1JvdzogRkM8e1xuICBpdGVtOiBDb250ZXh0TWVudGlvbkl0ZW1UeXBlXG4gIGFjdGl2ZT86IGJvb2xlYW5cbiAgb25Nb3VzZURvd246IChlOiBNb3VzZUV2ZW50KSA9PiB2b2lkXG4gIG9uSG92ZXI/OiAoKSA9PiB2b2lkXG59PiA9ICh7IGl0ZW0sIGFjdGl2ZSwgb25Nb3VzZURvd24sIG9uSG92ZXIgfSkgPT4ge1xuICBjb25zdCB7IHByaW1hcnksIHByaW1hcnlIaWdobGlnaHQsIGJyZWFkY3J1bWIsIHJhdyB9ID0gaXRlbVxuICBjb25zdCBwcm9qZWN0TmFtZSA9IHJhdy5wcm9qZWN0TmFtZT8udHJpbSgpIHx8IGJyZWFkY3J1bWI/LnBhcmVudD8udHJpbSgpIHx8ICcnXG4gIGNvbnN0IHByb2plY3ROYW1lRGlzcGxheSA9IHRydW5jYXRlV2l0aEVsbGlwc2lzKHByb2plY3ROYW1lLCBUQVNLX1BST0pFQ1RfTkFNRV9NQVhfQ0hBUlMpXG4gIGNvbnN0IGlzUHJvamVjdE5hbWVUcnVuY2F0ZWRCeUNoYXJzID0gcHJvamVjdE5hbWVEaXNwbGF5ICE9PSBwcm9qZWN0TmFtZVxuICBjb25zdCBoYXNGYXRoZXIgPSByYXcuZmF0aGVySWQgIT0gbnVsbFxuICBjb25zdCB0aXRsZVJlZiA9IHVzZVJlZjxIVE1MRGl2RWxlbWVudD4obnVsbClcbiAgY29uc3QgcHJvamVjdFJlZiA9IHVzZVJlZjxIVE1MU3BhbkVsZW1lbnQ+KG51bGwpXG4gIGNvbnN0IHNob3dUaXRsZVRvb2x0aXAgPSB1c2VPdmVyZmxvd1Rvb2x0aXAodGl0bGVSZWYsIFtcbiAgICBwcmltYXJ5LFxuICAgIHByb2plY3ROYW1lLFxuICAgIHByaW1hcnlIaWdobGlnaHQ/LnN0YXJ0ID8/IC0xLFxuICAgIHByaW1hcnlIaWdobGlnaHQ/Lmxlbmd0aCA/PyAwLFxuICAgIGhhc0ZhdGhlcixcbiAgXSlcbiAgY29uc3Qgc2hvd1Byb2plY3RUb29sdGlwID0gdXNlT3ZlcmZsb3dUb29sdGlwKHByb2plY3RSZWYsIFtwcm9qZWN0TmFtZURpc3BsYXksIHByaW1hcnldKVxuICBjb25zdCBzaG91bGRTaG93UHJvamVjdFRvb2x0aXAgPSBpc1Byb2plY3ROYW1lVHJ1bmNhdGVkQnlDaGFycyB8fCBzaG93UHJvamVjdFRvb2x0aXBcblxuICByZXR1cm4gKFxuICAgIDxTQ01JUm93ICRhY3RpdmU9e2FjdGl2ZX0gb25Nb3VzZURvd249e29uTW91c2VEb3dufSBvbk1vdXNlRW50ZXI9e29uSG92ZXJ9PlxuICAgICAgPFNDTUlUYXNrUm93SW5uZXI+XG4gICAgICAgIDxTQ01JVGFza0ljb25JbWcgc3JjPXtUQVNLX0xJTktfSUNPTl9EQVRBX1VSTH0gYWx0PVwiXCIgZHJhZ2dhYmxlPXtmYWxzZX0gYXJpYS1oaWRkZW4gLz5cbiAgICAgICAgPFNDTUlUYXNrVGl0bGVSb3c+XG4gICAgICAgICAge2hhc0ZhdGhlciA/IChcbiAgICAgICAgICAgIDxTQ01JVGFza1N1YnRhc2tJY29uV3JhcD5cbiAgICAgICAgICAgICAgPFN1YnRhc2tJY29uIHdpZHRoPVwiMTZweFwiIGhlaWdodD1cIjE2cHhcIiBjb2xvcj1cIiMwMDBcIiB2YXJpYW50PVwicmVndWxhclwiIC8+XG4gICAgICAgICAgICA8L1NDTUlUYXNrU3VidGFza0ljb25XcmFwPlxuICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgIDxUb29sdGlwIHRpdGxlPXtzaG93VGl0bGVUb29sdGlwID8gcHJpbWFyeSA6ICcnfT5cbiAgICAgICAgICAgIDxTQ01JVGFza1RpdGxlIHJlZj17dGl0bGVSZWZ9PntyZW5kZXJUaXRsZShwcmltYXJ5LCBwcmltYXJ5SGlnaGxpZ2h0KX08L1NDTUlUYXNrVGl0bGU+XG4gICAgICAgICAgPC9Ub29sdGlwPlxuICAgICAgICAgIHtwcm9qZWN0TmFtZSA/IChcbiAgICAgICAgICAgIDxUb29sdGlwIHRpdGxlPXtzaG91bGRTaG93UHJvamVjdFRvb2x0aXAgPyBwcm9qZWN0TmFtZSA6ICcnfT5cbiAgICAgICAgICAgICAgPFNDTUlUYXNrUHJvamVjdE5hbWUgcmVmPXtwcm9qZWN0UmVmfT57cHJvamVjdE5hbWVEaXNwbGF5fTwvU0NNSVRhc2tQcm9qZWN0TmFtZT5cbiAgICAgICAgICAgIDwvVG9vbHRpcD5cbiAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgPC9TQ01JVGFza1RpdGxlUm93PlxuICAgICAgPC9TQ01JVGFza1Jvd0lubmVyPlxuICAgIDwvU0NNSVJvdz5cbiAgKVxufVxuXG5leHBvcnQgY29uc3QgQ29udGV4dE1lbnRpb25JdGVtOiBGQzxDb250ZXh0TWVudGlvbkl0ZW1Qcm9wcz4gPSAoeyBpdGVtLCBhY3RpdmUsIG9uU2VsZWN0LCBvbkhvdmVyIH0pID0+IHtcbiAgY29uc3QgeyB0IH0gPSB1c2VUKClcbiAgY29uc3QgeyBwcmltYXJ5LCBwcmltYXJ5SGlnaGxpZ2h0LCBicmVhZGNydW1iLCB0eXBlLCByYXcgfSA9IGl0ZW1cblxuICBjb25zdCBoYW5kbGVDbGljayA9IChlOiBNb3VzZUV2ZW50KSA9PiB7XG4gICAgZS5wcmV2ZW50RGVmYXVsdCgpXG4gICAgZS5zdG9wUHJvcGFnYXRpb24oKVxuICAgIG9uU2VsZWN0KGl0ZW0pXG4gIH1cblxuICBjb25zdCBoYXNDb3VudCA9IHR5cGVvZiBicmVhZGNydW1iPy5jb3VudCA9PT0gJ251bWJlcidcbiAgY29uc3QgaGFzUGFyZW50ID0gISFicmVhZGNydW1iPy5wYXJlbnRcbiAgY29uc3QgY291bnRMYWJlbCA9XG4gICAgYnJlYWRjcnVtYj8uY291bnRMYWJlbCAmJlxuICAgIHQoYGNvbnRleHRNZW50aW9uLmNvdW50ZXJzLiR7YnJlYWRjcnVtYi5jb3VudExhYmVsfWAsIHsgZGVmYXVsdFZhbHVlOiBicmVhZGNydW1iLmNvdW50TGFiZWwgfSlcblxuICBpZiAodHlwZSA9PT0gJ3VzZXInKSB7XG4gICAgY29uc3QgcG9zaXRpb25OYW1lVHJpbW1lZCA9IHJhdy5wb3NpdGlvbk5hbWU/LnRyaW0oKSA/PyAnJ1xuICAgIGNvbnN0IHBvc2l0aW9uTGluZSA9IHBvc2l0aW9uTmFtZVRyaW1tZWQgfHwgdCgnY29udGV4dE1lbnRpb24udXNlck5vUG9zaXRpb24nLCB7IGRlZmF1bHRWYWx1ZTogJ1NpbiBwb3NpY2nDs24nIH0pXG5cbiAgICByZXR1cm4gKFxuICAgICAgPFNDTUlSb3dVc2VyICRhY3RpdmU9e2FjdGl2ZX0gb25Nb3VzZURvd249e2hhbmRsZUNsaWNrfSBvbk1vdXNlRW50ZXI9eygpID0+IG9uSG92ZXI/LihpdGVtKX0+XG4gICAgICAgIDxVc2VyUm93QXZhdGFyIHBpY3R1cmU9e3Jhdy5waWN0dXJlfSBuYW1lRm9ySW5pdGlhbHM9e3Jhdy5uYW1lLnRyaW0oKSA/IHJhdy5uYW1lIDogcHJpbWFyeX0gLz5cbiAgICAgICAgPFNDTVVzZXJJbmZvPlxuICAgICAgICAgIDxTQ01Vc2VyTmFtZVBvc2l0aW9uUm93PlxuICAgICAgICAgICAgPFNDTVVzZXJOYW1lQ2VsbCAkd2l0aERpdmlkZXI+XG4gICAgICAgICAgICAgIDxTQ01Vc2VyTmFtZVRleHQ+e3JlbmRlclRpdGxlKHByaW1hcnksIHByaW1hcnlIaWdobGlnaHQpfTwvU0NNVXNlck5hbWVUZXh0PlxuICAgICAgICAgICAgPC9TQ01Vc2VyTmFtZUNlbGw+XG4gICAgICAgICAgICA8U0NNVXNlclBvc2l0aW9uVGV4dCB0aXRsZT17cG9zaXRpb25MaW5lfT57cG9zaXRpb25MaW5lfTwvU0NNVXNlclBvc2l0aW9uVGV4dD5cbiAgICAgICAgICA8L1NDTVVzZXJOYW1lUG9zaXRpb25Sb3c+XG4gICAgICAgIDwvU0NNVXNlckluZm8+XG4gICAgICA8L1NDTUlSb3dVc2VyPlxuICAgIClcbiAgfVxuXG4gIGlmICh0eXBlID09PSAncHJvamVjdCcpIHtcbiAgICByZXR1cm4gKFxuICAgICAgPFNDTUlQcm9qZWN0Um93IG9uTW91c2VEb3duPXtoYW5kbGVDbGlja30gb25Nb3VzZUVudGVyPXsoKSA9PiBvbkhvdmVyPy4oaXRlbSl9PlxuICAgICAgICA8U0NNSVByb2plY3RDb250ZW50ICRhY3RpdmU9e2FjdGl2ZX0+XG4gICAgICAgICAgPFNDTUlOYW1lPlxuICAgICAgICAgICAgPFNDTUlQcm9qZWN0VGl0bGUgdGl0bGU9e3ByaW1hcnl9PntyZW5kZXJUaXRsZShwcmltYXJ5LCBwcmltYXJ5SGlnaGxpZ2h0KX08L1NDTUlQcm9qZWN0VGl0bGU+XG4gICAgICAgICAgPC9TQ01JTmFtZT5cbiAgICAgICAgPC9TQ01JUHJvamVjdENvbnRlbnQ+XG4gICAgICA8L1NDTUlQcm9qZWN0Um93PlxuICAgIClcbiAgfVxuXG4gIGlmICh0eXBlID09PSAndGFzaycpIHtcbiAgICByZXR1cm4gKFxuICAgICAgPENvbnRleHRNZW50aW9uVGFza1JvdyBpdGVtPXtpdGVtfSBhY3RpdmU9e2FjdGl2ZX0gb25Nb3VzZURvd249e2hhbmRsZUNsaWNrfSBvbkhvdmVyPXsoKSA9PiBvbkhvdmVyPy4oaXRlbSl9IC8+XG4gICAgKVxuICB9XG5cbiAgaWYgKHR5cGUgPT09ICdtY3AnKSB7XG4gICAgcmV0dXJuIChcbiAgICAgIDxTQ01JUm93ICRhY3RpdmU9e2FjdGl2ZX0gb25Nb3VzZURvd249e2hhbmRsZUNsaWNrfSBvbk1vdXNlRW50ZXI9eygpID0+IG9uSG92ZXI/LihpdGVtKX0+XG4gICAgICAgIDxTQ01JVGFza1Jvd0lubmVyPlxuICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICBzdHlsZT17e1xuICAgICAgICAgICAgICBkaXNwbGF5OiAnaW5saW5lLWZsZXgnLFxuICAgICAgICAgICAgICBhbGlnbkl0ZW1zOiAnY2VudGVyJyxcbiAgICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ6ICdjZW50ZXInLFxuICAgICAgICAgICAgICB3aWR0aDogMTYsXG4gICAgICAgICAgICAgIGhlaWdodDogMTYsXG4gICAgICAgICAgICAgIGZsZXg6ICcwIDAgMTZweCcsXG4gICAgICAgICAgICB9fVxuICAgICAgICAgID5cbiAgICAgICAgICAgIHtpc05vdGlvbk1jcFNsdWcocmF3LmlkKSA/IChcbiAgICAgICAgICAgICAgPE5vdGlvbkljb24gd2lkdGg9ezE2fSBoZWlnaHQ9ezE2fSAvPlxuICAgICAgICAgICAgKSA6IChcbiAgICAgICAgICAgICAgZ2V0Q29udGV4dE1lbnRpb25JY29uKCdtY3AnLCAnIzJkNzdiZCcsIHJhdy5pZCwgMTYpXG4gICAgICAgICAgICApfVxuICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICA8U0NNSVRhc2tUaXRsZSB0aXRsZT17cHJpbWFyeX0+e3JlbmRlclRpdGxlKHByaW1hcnksIHByaW1hcnlIaWdobGlnaHQpfTwvU0NNSVRhc2tUaXRsZT5cbiAgICAgICAgPC9TQ01JVGFza1Jvd0lubmVyPlxuICAgICAgPC9TQ01JUm93PlxuICAgIClcbiAgfVxuXG4gIHJldHVybiAoXG4gICAgPFNDTUlSb3cgJGFjdGl2ZT17YWN0aXZlfSBvbk1vdXNlRG93bj17aGFuZGxlQ2xpY2t9IG9uTW91c2VFbnRlcj17KCkgPT4gb25Ib3Zlcj8uKGl0ZW0pfT5cbiAgICAgIDxTQ01JTmFtZT5cbiAgICAgICAgPFNDTUlUaXRsZT57cmVuZGVyVGl0bGUocHJpbWFyeSwgcHJpbWFyeUhpZ2hsaWdodCl9PC9TQ01JVGl0bGU+XG4gICAgICAgIHsoaGFzQ291bnQgfHwgaGFzUGFyZW50KSAmJiAoXG4gICAgICAgICAgPFNDTUlCcmVhZGNydW1iPlxuICAgICAgICAgICAge2hhc0NvdW50ICYmIChcbiAgICAgICAgICAgICAgPHNwYW4+XG4gICAgICAgICAgICAgICAge2JyZWFkY3J1bWI/LmNvdW50fSB7Y291bnRMYWJlbH1cbiAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgKX1cbiAgICAgICAgICAgIHtoYXNQYXJlbnQgJiYgKFxuICAgICAgICAgICAgICA8U0NNSUJyZWFkY3J1bWJQYXJlbnQ+XG4gICAgICAgICAgICAgICAgPENoZXZyb25SaWdodCB3aWR0aD1cIjEycHhcIiBoZWlnaHQ9XCIxMnB4XCIgY29sb3I9XCIjODA4MDgwXCIgLz5cbiAgICAgICAgICAgICAgICA8c3Bhbj57YnJlYWRjcnVtYj8ucGFyZW50fTwvc3Bhbj5cbiAgICAgICAgICAgICAgPC9TQ01JQnJlYWRjcnVtYlBhcmVudD5cbiAgICAgICAgICAgICl9XG4gICAgICAgICAgPC9TQ01JQnJlYWRjcnVtYj5cbiAgICAgICAgKX1cbiAgICAgIDwvU0NNSU5hbWU+XG4gICAgPC9TQ01JUm93PlxuICApXG59XG4iXSwibWFwcGluZ3MiOiI7QUFBQSxTQUF5QkEsZUFBZSxFQUFFQyxNQUFNLEVBQUVDLFFBQVEsUUFBd0IsT0FBTztBQUN6RixTQUFTQyxZQUFZLFFBQVEsK0NBQStDO0FBQzVFLFNBQVNDLE9BQU8sUUFBUSw4Q0FBOEM7QUFDdEUsU0FBU0MsSUFBSSxRQUFRLHFCQUFxQjtBQUMxQyxTQUFTQyx1QkFBdUIsUUFBUSxpQ0FBaUM7QUFFekUsU0FBU0MsVUFBVSxRQUFRLHFCQUFxQjtBQUNoRCxTQUFTQyxXQUFXLFFBQVEsc0JBQXNCO0FBQ2xELFNBQVNDLHFCQUFxQixFQUFFQyxlQUFlLFFBQVEsb0NBQW9DO0FBQzNGLFNBQ0VDLE9BQU8sRUFDUEMsY0FBYyxFQUNkQyxrQkFBa0IsRUFDbEJDLFFBQVEsRUFDUkMsU0FBUyxFQUNUQyxnQkFBZ0IsRUFDaEJDLGtCQUFrQixFQUNsQkMsY0FBYyxFQUNkQyxvQkFBb0IsRUFDcEJDLFdBQVcsRUFDWEMsaUJBQWlCLEVBQ2pCQyxnQkFBZ0IsRUFDaEJDLHFCQUFxQixFQUNyQkMsV0FBVyxFQUNYQyxzQkFBc0IsRUFDdEJDLGVBQWUsRUFDZkMsZUFBZSxFQUNmQyxtQkFBbUIsRUFDbkJDLGdCQUFnQixFQUNoQkMsZ0JBQWdCLEVBQ2hCQyx1QkFBdUIsRUFDdkJDLG1CQUFtQixFQUNuQkMsZUFBZSxFQUNmQyxhQUFhLFFBQ1IsNkJBQTZCO0FBQUEsU0FBQUMsR0FBQSxJQUFBQyxJQUFBLEVBQUFDLFFBQUEsSUFBQUMsU0FBQSxFQUFBQyxJQUFBLElBQUFDLEtBQUE7QUFTcEMsSUFBTUMsMkJBQTJCLEdBQUcsRUFBRTtBQUV0QyxJQUFNQyxvQkFBb0Is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
|