@projectcor/maia-components 2.11.19-0 → 2.11.19-2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/components/atoms/ApprovalBox/ApprovalBox.js +2 -3
- package/lib/components/atoms/ApprovalBox/ApprovalBox.styles.js +5 -6
- package/lib/components/atoms/icons/index.js +1 -3
- package/lib/components/molecules/ChatAIContent/ChatAIContent.js +5 -24
- package/lib/components/molecules/ChatAIHome/ChatAIHome.js +53 -17
- package/lib/components/molecules/ChatAIHome/styles.js +42 -34
- package/lib/components/molecules/ChatAIMessages/ChatAIMessages.js +6 -49
- package/lib/components/molecules/ChatAIMessages/newStyles.js +21 -24
- package/lib/components/molecules/ChatAIModal/ChatAIModal.js +8 -115
- package/lib/components/molecules/ChatAIModal/components/ChatAiModalHeader/ChatAiModalHeader.js +41 -16
- package/lib/components/molecules/ChatAIModal/components/ChatAiModalHeader/ChatAiModalHeader.styles.js +13 -5
- package/lib/components/molecules/ChatAIModal/constants.js +2 -6
- package/lib/components/molecules/Sidebar/Sidebar.js +197 -162
- package/lib/components/molecules/Sidebar/Sidebar.styles.js +1 -13
- package/lib/components/organisms/AbmAgentModal/AbmAgentModal.js +1 -10
- package/lib/hooks/useChatManager/useChatManager.js +103 -113
- package/lib/hooks/useOrchestratorStream/useOrchestratorStream.interface.js +1 -1
- package/lib/hooks/useOrchestratorStream/useOrchestratorStream.js +6 -14
- package/lib/lang/br/index.js +9 -68
- package/lib/lang/en/index.js +9 -68
- package/lib/lang/es/index.js +7 -66
- package/lib/lang/fr/index.js +4 -52
- package/lib/services/maia/Agents/getAgents.js +8 -5
- package/lib/services/maia/Orchestrator/orchestrator.js +25 -29
- package/lib/services/utils/mapChatMessages.js +149 -39
- package/lib/types/Chat.js +1 -1
- package/lib/types/agent.js +1 -1
- package/package.json +1 -1
- package/lib/components/atoms/icons/MaiaStoreIcon.js +0 -31
- package/lib/components/atoms/icons/MyAgentsNavIcon.js +0 -51
- package/lib/components/molecules/ChatAIHome/ChatAIHomeMaiaker.js +0 -50
- package/lib/components/molecules/ChatAIHome/ChatAIHomeMaiaker.styles.js +0 -62
- package/lib/components/molecules/ChatAIMessages/ChatAISuggestions.js +0 -43
- package/lib/components/molecules/ChatAIMessages/ChatAISuggestions.styles.js +0 -37
- package/lib/components/molecules/ChatAIMyAgents/ChatAIMyAgents.js +0 -351
- package/lib/components/molecules/ChatAIMyAgents/ChatAIMyAgents.styles.js +0 -165
- package/lib/components/molecules/Sidebar/Sidebar.layout.styles.js +0 -114
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
/* eslint-disable react/function-component-definition */
|
|
2
|
-
import { ArrowRight } from '@projectcor/icons/lib/components/ArrowRight';
|
|
3
|
-
import { useT } from '../../../hooks/useT';
|
|
4
|
-
import { SCSuggestionsWrapper, SCSuggestionsTitle, SCSuggestionsList, SCSuggestionButton, SCSuggestionText } from './ChatAISuggestions.styles';
|
|
5
|
-
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
6
|
-
export var ChatAISuggestions = function ChatAISuggestions(_ref) {
|
|
7
|
-
var suggestions = _ref.suggestions,
|
|
8
|
-
onSelectSuggestion = _ref.onSelectSuggestion,
|
|
9
|
-
_ref$disabled = _ref.disabled,
|
|
10
|
-
disabled = _ref$disabled === void 0 ? false : _ref$disabled,
|
|
11
|
-
_ref$hidden = _ref.hidden,
|
|
12
|
-
hidden = _ref$hidden === void 0 ? false : _ref$hidden;
|
|
13
|
-
var _useT = useT(),
|
|
14
|
-
t = _useT.t;
|
|
15
|
-
if (!(suggestions !== null && suggestions !== void 0 && suggestions.length)) return null;
|
|
16
|
-
var suggestionOccurrences = new Map();
|
|
17
|
-
return /*#__PURE__*/_jsxs(SCSuggestionsWrapper, {
|
|
18
|
-
$hidden: hidden,
|
|
19
|
-
children: [/*#__PURE__*/_jsx(SCSuggestionsTitle, {
|
|
20
|
-
children: t('chat.suggestionsTitle')
|
|
21
|
-
}), /*#__PURE__*/_jsx(SCSuggestionsList, {
|
|
22
|
-
children: suggestions.map(function (suggestion) {
|
|
23
|
-
var currentCount = (suggestionOccurrences.get(suggestion) || 0) + 1;
|
|
24
|
-
suggestionOccurrences.set(suggestion, currentCount);
|
|
25
|
-
return /*#__PURE__*/_jsxs(SCSuggestionButton, {
|
|
26
|
-
type: "button",
|
|
27
|
-
onClick: function onClick() {
|
|
28
|
-
return onSelectSuggestion(suggestion);
|
|
29
|
-
},
|
|
30
|
-
disabled: disabled || hidden,
|
|
31
|
-
children: [/*#__PURE__*/_jsx(ArrowRight, {
|
|
32
|
-
width: 12,
|
|
33
|
-
height: 12,
|
|
34
|
-
color: "#20201F"
|
|
35
|
-
}), /*#__PURE__*/_jsx(SCSuggestionText, {
|
|
36
|
-
children: suggestion
|
|
37
|
-
})]
|
|
38
|
-
}, "".concat(suggestion, "-").concat(currentCount));
|
|
39
|
-
})
|
|
40
|
-
})]
|
|
41
|
-
});
|
|
42
|
-
};
|
|
43
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJBcnJvd1JpZ2h0IiwidXNlVCIsIlNDU3VnZ2VzdGlvbnNXcmFwcGVyIiwiU0NTdWdnZXN0aW9uc1RpdGxlIiwiU0NTdWdnZXN0aW9uc0xpc3QiLCJTQ1N1Z2dlc3Rpb25CdXR0b24iLCJTQ1N1Z2dlc3Rpb25UZXh0IiwianN4IiwiX2pzeCIsImpzeHMiLCJfanN4cyIsIkNoYXRBSVN1Z2dlc3Rpb25zIiwiX3JlZiIsInN1Z2dlc3Rpb25zIiwib25TZWxlY3RTdWdnZXN0aW9uIiwiX3JlZiRkaXNhYmxlZCIsImRpc2FibGVkIiwiX3JlZiRoaWRkZW4iLCJoaWRkZW4iLCJfdXNlVCIsInQiLCJsZW5ndGgiLCJzdWdnZXN0aW9uT2NjdXJyZW5jZXMiLCJNYXAiLCIkaGlkZGVuIiwiY2hpbGRyZW4iLCJtYXAiLCJzdWdnZXN0aW9uIiwiY3VycmVudENvdW50IiwiZ2V0Iiwic2V0IiwidHlwZSIsIm9uQ2xpY2siLCJ3aWR0aCIsImhlaWdodCIsImNvbG9yIiwiY29uY2F0Il0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvbW9sZWN1bGVzL0NoYXRBSU1lc3NhZ2VzL0NoYXRBSVN1Z2dlc3Rpb25zLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSByZWFjdC9mdW5jdGlvbi1jb21wb25lbnQtZGVmaW5pdGlvbiAqL1xuaW1wb3J0IHsgQXJyb3dSaWdodCB9IGZyb20gJ0Bwcm9qZWN0Y29yL2ljb25zL2xpYi9jb21wb25lbnRzL0Fycm93UmlnaHQnXG5pbXBvcnQgeyB1c2VUIH0gZnJvbSAnLi4vLi4vLi4vaG9va3MvdXNlVCdcbmltcG9ydCB7XG4gIFNDU3VnZ2VzdGlvbnNXcmFwcGVyLFxuICBTQ1N1Z2dlc3Rpb25zVGl0bGUsXG4gIFNDU3VnZ2VzdGlvbnNMaXN0LFxuICBTQ1N1Z2dlc3Rpb25CdXR0b24sXG4gIFNDU3VnZ2VzdGlvblRleHQsXG59IGZyb20gJy4vQ2hhdEFJU3VnZ2VzdGlvbnMuc3R5bGVzJ1xuXG50eXBlIENoYXRBSVN1Z2dlc3Rpb25zUHJvcHMgPSB7XG4gIHN1Z2dlc3Rpb25zOiBzdHJpbmdbXVxuICBvblNlbGVjdFN1Z2dlc3Rpb246IChzdWdnZXN0aW9uOiBzdHJpbmcpID0+IHZvaWRcbiAgZGlzYWJsZWQ/OiBib29sZWFuXG4gIGhpZGRlbj86IGJvb2xlYW5cbn1cblxuZXhwb3J0IGNvbnN0IENoYXRBSVN1Z2dlc3Rpb25zID0gKHtcbiAgc3VnZ2VzdGlvbnMsXG4gIG9uU2VsZWN0U3VnZ2VzdGlvbixcbiAgZGlzYWJsZWQgPSBmYWxzZSxcbiAgaGlkZGVuID0gZmFsc2UsXG59OiBDaGF0QUlTdWdnZXN0aW9uc1Byb3BzKSA9PiB7XG4gIGNvbnN0IHsgdCB9ID0gdXNlVCgpXG4gIGlmICghc3VnZ2VzdGlvbnM/Lmxlbmd0aCkgcmV0dXJuIG51bGxcbiAgY29uc3Qgc3VnZ2VzdGlvbk9jY3VycmVuY2VzID0gbmV3IE1hcDxzdHJpbmcsIG51bWJlcj4oKVxuXG4gIHJldHVybiAoXG4gICAgPFNDU3VnZ2VzdGlvbnNXcmFwcGVyICRoaWRkZW49e2hpZGRlbn0+XG4gICAgICA8U0NTdWdnZXN0aW9uc1RpdGxlPnt0KCdjaGF0LnN1Z2dlc3Rpb25zVGl0bGUnKX08L1NDU3VnZ2VzdGlvbnNUaXRsZT5cbiAgICAgIDxTQ1N1Z2dlc3Rpb25zTGlzdD5cbiAgICAgICAge3N1Z2dlc3Rpb25zLm1hcChzdWdnZXN0aW9uID0+IHtcbiAgICAgICAgICBjb25zdCBjdXJyZW50Q291bnQgPSAoc3VnZ2VzdGlvbk9jY3VycmVuY2VzLmdldChzdWdnZXN0aW9uKSB8fCAwKSArIDFcbiAgICAgICAgICBzdWdnZXN0aW9uT2NjdXJyZW5jZXMuc2V0KHN1Z2dlc3Rpb24sIGN1cnJlbnRDb3VudClcblxuICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICA8U0NTdWdnZXN0aW9uQnV0dG9uXG4gICAgICAgICAgICAgIGtleT17YCR7c3VnZ2VzdGlvbn0tJHtjdXJyZW50Q291bnR9YH1cbiAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IG9uU2VsZWN0U3VnZ2VzdGlvbihzdWdnZXN0aW9uKX1cbiAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkIHx8IGhpZGRlbn1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPEFycm93UmlnaHQgd2lkdGg9ezEyfSBoZWlnaHQ9ezEyfSBjb2xvcj1cIiMyMDIwMUZcIiAvPlxuICAgICAgICAgICAgICA8U0NTdWdnZXN0aW9uVGV4dD57c3VnZ2VzdGlvbn08L1NDU3VnZ2VzdGlvblRleHQ+XG4gICAgICAgICAgICA8L1NDU3VnZ2VzdGlvbkJ1dHRvbj5cbiAgICAgICAgICApXG4gICAgICAgIH0pfVxuICAgICAgPC9TQ1N1Z2dlc3Rpb25zTGlzdD5cbiAgICA8L1NDU3VnZ2VzdGlvbnNXcmFwcGVyPlxuICApXG59XG4iXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0EsU0FBU0EsVUFBVSxRQUFRLDZDQUE2QztBQUN4RSxTQUFTQyxJQUFJLFFBQVEscUJBQXFCO0FBQzFDLFNBQ0VDLG9CQUFvQixFQUNwQkMsa0JBQWtCLEVBQ2xCQyxpQkFBaUIsRUFDakJDLGtCQUFrQixFQUNsQkMsZ0JBQWdCLFFBQ1gsNEJBQTRCO0FBQUEsU0FBQUMsR0FBQSxJQUFBQyxJQUFBLEVBQUFDLElBQUEsSUFBQUMsS0FBQTtBQVNuQyxPQUFPLElBQU1DLGlCQUFpQixHQUFHLFNBQXBCQSxpQkFBaUJBLENBQUFDLElBQUEsRUFLQTtFQUFBLElBSjVCQyxXQUFXLEdBQUFELElBQUEsQ0FBWEMsV0FBVztJQUNYQyxrQkFBa0IsR0FBQUYsSUFBQSxDQUFsQkUsa0JBQWtCO0lBQUFDLGFBQUEsR0FBQUgsSUFBQSxDQUNsQkksUUFBUTtJQUFSQSxRQUFRLEdBQUFELGFBQUEsY0FBRyxLQUFLLEdBQUFBLGFBQUE7SUFBQUUsV0FBQSxHQUFBTCxJQUFBLENBQ2hCTSxNQUFNO0lBQU5BLE1BQU0sR0FBQUQsV0FBQSxjQUFHLEtBQUssR0FBQUEsV0FBQTtFQUVkLElBQUFFLEtBQUEsR0FBY2xCLElBQUksQ0FBQyxDQUFDO0lBQVptQixDQUFDLEdBQUFELEtBQUEsQ0FBREMsQ0FBQztFQUNULElBQUksRUFBQ1AsV0FBVyxhQUFYQSxXQUFXLGVBQVhBLFdBQVcsQ0FBRVEsTUFBTSxHQUFFLE9BQU8sSUFBSTtFQUNyQyxJQUFNQyxxQkFBcUIsR0FBRyxJQUFJQyxHQUFHLENBQWlCLENBQUM7RUFFdkQsb0JBQ0ViLEtBQUEsQ0FBQ1Isb0JBQW9CO0lBQUNzQixPQUFPLEVBQUVOLE1BQU87SUFBQU8sUUFBQSxnQkFDcENqQixJQUFBLENBQUNMLGtCQUFrQjtNQUFBc0IsUUFBQSxFQUFFTCxDQUFDLENBQUMsdUJBQXVCO0lBQUMsQ0FBcUIsQ0FBQyxlQUNyRVosSUFBQSxDQUFDSixpQkFBaUI7TUFBQXFCLFFBQUEsRUFDZlosV0FBVyxDQUFDYSxHQUFHLENBQUMsVUFBQUMsVUFBVSxFQUFJO1FBQzdCLElBQU1DLFlBQVksR0FBRyxDQUFDTixxQkFBcUIsQ0FBQ08sR0FBRyxDQUFDRixVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQztRQUNyRUwscUJBQXFCLENBQUNRLEdBQUcsQ0FBQ0gsVUFBVSxFQUFFQyxZQUFZLENBQUM7UUFFbkQsb0JBQ0VsQixLQUFBLENBQUNMLGtCQUFrQjtVQUVqQjBCLElBQUksRUFBQyxRQUFRO1VBQ2JDLE9BQU8sRUFBRSxTQUFUQSxPQUFPQSxDQUFBO1lBQUEsT0FBUWxCLGtCQUFrQixDQUFDYSxVQUFVLENBQUM7VUFBQSxDQUFDO1VBQzlDWCxRQUFRLEVBQUVBLFFBQVEsSUFBSUUsTUFBTztVQUFBTyxRQUFBLGdCQUU3QmpCLElBQUEsQ0FBQ1IsVUFBVTtZQUFDaUMsS0FBSyxFQUFFLEVBQUc7WUFBQ0MsTUFBTSxFQUFFLEVBQUc7WUFBQ0MsS0FBSyxFQUFDO1VBQVMsQ0FBRSxDQUFDLGVBQ3JEM0IsSUFBQSxDQUFDRixnQkFBZ0I7WUFBQW1CLFFBQUEsRUFBRUU7VUFBVSxDQUFtQixDQUFDO1FBQUEsTUFBQVMsTUFBQSxDQU56Q1QsVUFBVSxPQUFBUyxNQUFBLENBQUlSLFlBQVksQ0FPaEIsQ0FBQztNQUV6QixDQUFDO0lBQUMsQ0FDZSxDQUFDO0VBQUEsQ0FDQSxDQUFDO0FBRTNCLENBQUMiLCJpZ25vcmVMaXN0IjpbXX0=
|
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
import styled from 'styled-components';
|
|
2
|
-
export var SCSuggestionsWrapper = styled.div.withConfig({
|
|
3
|
-
displayName: "ChatAISuggestionsstyles__SCSuggestionsWrapper",
|
|
4
|
-
componentId: "sc-1154q2v-0"
|
|
5
|
-
})(["display:flex;flex-direction:column;align-items:flex-start;gap:8px;align-self:stretch;overflow:hidden;max-height:", ";opacity:", ";transform:", ";margin-top:", ";transition:max-height 220ms ease,opacity 220ms ease,transform 220ms ease,margin-top 220ms ease;pointer-events:", ";"], function (_ref) {
|
|
6
|
-
var $hidden = _ref.$hidden;
|
|
7
|
-
return $hidden ? '0px' : '220px';
|
|
8
|
-
}, function (_ref2) {
|
|
9
|
-
var $hidden = _ref2.$hidden;
|
|
10
|
-
return $hidden ? 0 : 1;
|
|
11
|
-
}, function (_ref3) {
|
|
12
|
-
var $hidden = _ref3.$hidden;
|
|
13
|
-
return $hidden ? 'translateY(-6px)' : 'translateY(0)';
|
|
14
|
-
}, function (_ref4) {
|
|
15
|
-
var $hidden = _ref4.$hidden;
|
|
16
|
-
return $hidden ? '0px' : '2px';
|
|
17
|
-
}, function (_ref5) {
|
|
18
|
-
var $hidden = _ref5.$hidden;
|
|
19
|
-
return $hidden ? 'none' : 'auto';
|
|
20
|
-
});
|
|
21
|
-
export var SCSuggestionsTitle = styled.span.withConfig({
|
|
22
|
-
displayName: "ChatAISuggestionsstyles__SCSuggestionsTitle",
|
|
23
|
-
componentId: "sc-1154q2v-1"
|
|
24
|
-
})(["align-self:stretch;color:var(--Text-Primary,#20201f);font-family:'Work Sans';font-size:14px;font-style:normal;font-weight:400;line-height:26px;"]);
|
|
25
|
-
export var SCSuggestionsList = styled.div.withConfig({
|
|
26
|
-
displayName: "ChatAISuggestionsstyles__SCSuggestionsList",
|
|
27
|
-
componentId: "sc-1154q2v-2"
|
|
28
|
-
})(["display:flex;flex-direction:column;align-items:flex-start;gap:8px;align-self:stretch;"]);
|
|
29
|
-
export var SCSuggestionButton = styled.button.withConfig({
|
|
30
|
-
displayName: "ChatAISuggestionsstyles__SCSuggestionButton",
|
|
31
|
-
componentId: "sc-1154q2v-3"
|
|
32
|
-
})(["display:flex;width:fit-content;max-width:100%;padding:4px 8px;justify-content:center;align-items:center;gap:10px;border-radius:18px;border:1px solid var(--Gray-100,#d9d9d9);background:transparent;color:var(--Text-Primary,#20201f);font-family:'Work Sans';font-size:14px;font-style:normal;font-weight:500;line-height:140%;letter-spacing:-0.21px;cursor:pointer;text-align:left;&:disabled{opacity:0.6;cursor:not-allowed;}"]);
|
|
33
|
-
export var SCSuggestionText = styled.span.withConfig({
|
|
34
|
-
displayName: "ChatAISuggestionsstyles__SCSuggestionText",
|
|
35
|
-
componentId: "sc-1154q2v-4"
|
|
36
|
-
})(["min-width:0;overflow-wrap:anywhere;"]);
|
|
37
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJzdHlsZWQiLCJTQ1N1Z2dlc3Rpb25zV3JhcHBlciIsImRpdiIsIndpdGhDb25maWciLCJkaXNwbGF5TmFtZSIsImNvbXBvbmVudElkIiwiX3JlZiIsIiRoaWRkZW4iLCJfcmVmMiIsIl9yZWYzIiwiX3JlZjQiLCJfcmVmNSIsIlNDU3VnZ2VzdGlvbnNUaXRsZSIsInNwYW4iLCJTQ1N1Z2dlc3Rpb25zTGlzdCIsIlNDU3VnZ2VzdGlvbkJ1dHRvbiIsImJ1dHRvbiIsIlNDU3VnZ2VzdGlvblRleHQiXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50cy9tb2xlY3VsZXMvQ2hhdEFJTWVzc2FnZXMvQ2hhdEFJU3VnZ2VzdGlvbnMuc3R5bGVzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBzdHlsZWQgZnJvbSAnc3R5bGVkLWNvbXBvbmVudHMnXG5cbmV4cG9ydCBjb25zdCBTQ1N1Z2dlc3Rpb25zV3JhcHBlciA9IHN0eWxlZC5kaXY8eyAkaGlkZGVuPzogYm9vbGVhbiB9PmBcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gIGdhcDogOHB4O1xuICBhbGlnbi1zZWxmOiBzdHJldGNoO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBtYXgtaGVpZ2h0OiAkeyh7ICRoaWRkZW4gfSkgPT4gKCRoaWRkZW4gPyAnMHB4JyA6ICcyMjBweCcpfTtcbiAgb3BhY2l0eTogJHsoeyAkaGlkZGVuIH0pID0+ICgkaGlkZGVuID8gMCA6IDEpfTtcbiAgdHJhbnNmb3JtOiAkeyh7ICRoaWRkZW4gfSkgPT4gKCRoaWRkZW4gPyAndHJhbnNsYXRlWSgtNnB4KScgOiAndHJhbnNsYXRlWSgwKScpfTtcbiAgbWFyZ2luLXRvcDogJHsoeyAkaGlkZGVuIH0pID0+ICgkaGlkZGVuID8gJzBweCcgOiAnMnB4Jyl9O1xuICB0cmFuc2l0aW9uOlxuICAgIG1heC1oZWlnaHQgMjIwbXMgZWFzZSxcbiAgICBvcGFjaXR5IDIyMG1zIGVhc2UsXG4gICAgdHJhbnNmb3JtIDIyMG1zIGVhc2UsXG4gICAgbWFyZ2luLXRvcCAyMjBtcyBlYXNlO1xuICBwb2ludGVyLWV2ZW50czogJHsoeyAkaGlkZGVuIH0pID0+ICgkaGlkZGVuID8gJ25vbmUnIDogJ2F1dG8nKX07XG5gXG5cbmV4cG9ydCBjb25zdCBTQ1N1Z2dlc3Rpb25zVGl0bGUgPSBzdHlsZWQuc3BhbmBcbiAgYWxpZ24tc2VsZjogc3RyZXRjaDtcbiAgY29sb3I6IHZhcigtLVRleHQtUHJpbWFyeSwgIzIwMjAxZik7XG4gIGZvbnQtZmFtaWx5OiAnV29yayBTYW5zJztcbiAgZm9udC1zaXplOiAxNHB4O1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGxpbmUtaGVpZ2h0OiAyNnB4O1xuYFxuXG5leHBvcnQgY29uc3QgU0NTdWdnZXN0aW9uc0xpc3QgPSBzdHlsZWQuZGl2YFxuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgZ2FwOiA4cHg7XG4gIGFsaWduLXNlbGY6IHN0cmV0Y2g7XG5gXG5cbmV4cG9ydCBjb25zdCBTQ1N1Z2dlc3Rpb25CdXR0b24gPSBzdHlsZWQuYnV0dG9uYFxuICBkaXNwbGF5OiBmbGV4O1xuICB3aWR0aDogZml0LWNvbnRlbnQ7XG4gIG1heC13aWR0aDogMTAwJTtcbiAgcGFkZGluZzogNHB4IDhweDtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogMTBweDtcbiAgYm9yZGVyLXJhZGl1czogMThweDtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tR3JheS0xMDAsICNkOWQ5ZDkpO1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgY29sb3I6IHZhcigtLVRleHQtUHJpbWFyeSwgIzIwMjAxZik7XG4gIGZvbnQtZmFtaWx5OiAnV29yayBTYW5zJztcbiAgZm9udC1zaXplOiAxNHB4O1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIGxpbmUtaGVpZ2h0OiAxNDAlO1xuICBsZXR0ZXItc3BhY2luZzogLTAuMjFweDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuXG4gICY6ZGlzYWJsZWQge1xuICAgIG9wYWNpdHk6IDAuNjtcbiAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICB9XG5gXG5cbmV4cG9ydCBjb25zdCBTQ1N1Z2dlc3Rpb25UZXh0ID0gc3R5bGVkLnNwYW5gXG4gIG1pbi13aWR0aDogMDtcbiAgb3ZlcmZsb3ctd3JhcDogYW55d2hlcmU7XG5gXG4iXSwibWFwcGluZ3MiOiJBQUFBLE9BQU9BLE1BQU0sTUFBTSxtQkFBbUI7QUFFdEMsT0FBTyxJQUFNQyxvQkFBb0IsR0FBR0QsTUFBTSxDQUFDRSxHQUFHLENBQUFDLFVBQUE7RUFBQUMsV0FBQTtFQUFBQyxXQUFBO0FBQUEsNlJBTzlCLFVBQUFDLElBQUE7RUFBQSxJQUFHQyxPQUFPLEdBQUFELElBQUEsQ0FBUEMsT0FBTztFQUFBLE9BQVFBLE9BQU8sR0FBRyxLQUFLLEdBQUcsT0FBTztBQUFBLENBQUMsRUFDL0MsVUFBQUMsS0FBQTtFQUFBLElBQUdELE9BQU8sR0FBQUMsS0FBQSxDQUFQRCxPQUFPO0VBQUEsT0FBUUEsT0FBTyxHQUFHLENBQUMsR0FBRyxDQUFDO0FBQUEsQ0FBQyxFQUNoQyxVQUFBRSxLQUFBO0VBQUEsSUFBR0YsT0FBTyxHQUFBRSxLQUFBLENBQVBGLE9BQU87RUFBQSxPQUFRQSxPQUFPLEdBQUcsa0JBQWtCLEdBQUcsZUFBZTtBQUFBLENBQUMsRUFDaEUsVUFBQUcsS0FBQTtFQUFBLElBQUdILE9BQU8sR0FBQUcsS0FBQSxDQUFQSCxPQUFPO0VBQUEsT0FBUUEsT0FBTyxHQUFHLEtBQUssR0FBRyxLQUFLO0FBQUEsQ0FBQyxFQU10QyxVQUFBSSxLQUFBO0VBQUEsSUFBR0osT0FBTyxHQUFBSSxLQUFBLENBQVBKLE9BQU87RUFBQSxPQUFRQSxPQUFPLEdBQUcsTUFBTSxHQUFHLE1BQU07QUFBQSxDQUFDLENBQy9EO0FBRUQsT0FBTyxJQUFNSyxrQkFBa0IsR0FBR1osTUFBTSxDQUFDYSxJQUFJLENBQUFWLFVBQUE7RUFBQUMsV0FBQTtFQUFBQyxXQUFBO0FBQUEsdUpBUTVDO0FBRUQsT0FBTyxJQUFNUyxpQkFBaUIsR0FBR2QsTUFBTSxDQUFDRSxHQUFHLENBQUFDLFVBQUE7RUFBQUMsV0FBQTtFQUFBQyxXQUFBO0FBQUEsNkZBTTFDO0FBRUQsT0FBTyxJQUFNVSxrQkFBa0IsR0FBR2YsTUFBTSxDQUFDZ0IsTUFBTSxDQUFBYixVQUFBO0VBQUFDLFdBQUE7RUFBQUMsV0FBQTtBQUFBLHlhQXlCOUM7QUFFRCxPQUFPLElBQU1ZLGdCQUFnQixHQUFHakIsTUFBTSxDQUFDYSxJQUFJLENBQUFWLFVBQUE7RUFBQUMsV0FBQTtFQUFBQyxXQUFBO0FBQUEsMkNBRzFDIiwiaWdub3JlTGlzdCI6W119
|
|
@@ -1,351 +0,0 @@
|
|
|
1
|
-
import _asyncToGenerator from "@babel/runtime/helpers/asyncToGenerator";
|
|
2
|
-
import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
|
|
3
|
-
import _regeneratorRuntime from "@babel/runtime/regenerator";
|
|
4
|
-
import React, { useEffect, useMemo, useState } from 'react';
|
|
5
|
-
import { MenuDots } from '@projectcor/icons/lib/components/MenuDots';
|
|
6
|
-
import { Star } from '@projectcor/icons/lib/components/Star';
|
|
7
|
-
import { Tooltip } from '@projectcor/tooltipv2/lib/components/Tooltip';
|
|
8
|
-
import { useTranslation } from 'react-i18next';
|
|
9
|
-
import { useGlobalContext } from '../../../context/global-context';
|
|
10
|
-
import { useUser } from '../../../context/cor-user';
|
|
11
|
-
import { deleteAgent } from '../../../services/maia/Agents/deleteAgent';
|
|
12
|
-
import { useSnackBarManager } from '../../../hooks/useSnackBarManager/useSnackBarManager';
|
|
13
|
-
import { DeleteQuestionModal } from '../../organisms/DeleteQuestionModal/DeleteQuestionModal';
|
|
14
|
-
import { SECTIONS } from '../../../constants/config';
|
|
15
|
-
import { Loader } from '../../atoms/Loader';
|
|
16
|
-
import { useToggleFavorite } from '../../../hooks';
|
|
17
|
-
import { EVENTS, useEvent } from '../../../hooks/useEvent';
|
|
18
|
-
import { SCMAActionsRow, SCMABody, SCMACardBody, SCMACardButton, SCMACardFooter, SCMACardHeader, SCMACardIntroText, SCMACardMenu, SCMACardMenuItem, SCMACardMenuItems, SCMAFavoriteButton, SCMACardText, SCMACardTitle, SCMACardTitleEmoji, SCMACardTitleName, SCMACardsOuter, SCMACardsRow, SCMAEmptyStateRoot, SCMAEmptyStateColumn, SCMAEmptyStateTitleBlock, SCMAEmptyStateTitle, SCMAEmptyStateSubtitle, SCMAEmptyStateButton, SCMAKebabButton, SCMACreateManualButton, SCMACreateManualButtonText, SCMALoadMoreWrapper, SCMAMyAgentsContainer, SCMATitle, SCMATitleInner, SCMATitleWrap } from './ChatAIMyAgents.styles';
|
|
19
|
-
import { MAIAIsologo } from '../../atoms/icons';
|
|
20
|
-
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
21
|
-
export var ChatAIMyAgents = function ChatAIMyAgents(_ref) {
|
|
22
|
-
var _user$permissions;
|
|
23
|
-
var onBack = _ref.onBack,
|
|
24
|
-
agents = _ref.agents,
|
|
25
|
-
onDeleteAgent = _ref.onDeleteAgent,
|
|
26
|
-
onFavoriteAgentUpdate = _ref.onFavoriteAgentUpdate,
|
|
27
|
-
_ref$hasMoreAgents = _ref.hasMoreAgents,
|
|
28
|
-
hasMoreAgents = _ref$hasMoreAgents === void 0 ? false : _ref$hasMoreAgents,
|
|
29
|
-
_ref$loadingMoreAgent = _ref.loadingMoreAgents,
|
|
30
|
-
loadingMoreAgents = _ref$loadingMoreAgent === void 0 ? false : _ref$loadingMoreAgent,
|
|
31
|
-
onLoadMoreAgents = _ref.onLoadMoreAgents,
|
|
32
|
-
onGoToMaiaker = _ref.onGoToMaiaker;
|
|
33
|
-
var _useTranslation = useTranslation([SECTIONS.chatAI, SECTIONS.abmAgent]),
|
|
34
|
-
t = _useTranslation.t;
|
|
35
|
-
var user = useUser();
|
|
36
|
-
var _useGlobalContext = useGlobalContext(),
|
|
37
|
-
selectAgent = _useGlobalContext.selectAgent,
|
|
38
|
-
setProject = _useGlobalContext.setProject,
|
|
39
|
-
setClient = _useGlobalContext.setClient;
|
|
40
|
-
var _useSnackBarManager = useSnackBarManager(),
|
|
41
|
-
handleSnackbarSuccess = _useSnackBarManager.handleSnackbarSuccess,
|
|
42
|
-
handleSnackbarError = _useSnackBarManager.handleSnackbarError;
|
|
43
|
-
var customAgents = agents.filter(function (agent) {
|
|
44
|
-
return agent.type === 'custom' && !agent.is_deleted;
|
|
45
|
-
});
|
|
46
|
-
var _useState = useState(null),
|
|
47
|
-
_useState2 = _slicedToArray(_useState, 2),
|
|
48
|
-
menuOpenForAgentId = _useState2[0],
|
|
49
|
-
setMenuOpenForAgentId = _useState2[1];
|
|
50
|
-
var _useState3 = useState(null),
|
|
51
|
-
_useState4 = _slicedToArray(_useState3, 2),
|
|
52
|
-
agentToDelete = _useState4[0],
|
|
53
|
-
setAgentToDelete = _useState4[1];
|
|
54
|
-
var userPermissions = user === null || user === void 0 || (_user$permissions = user.permissions) === null || _user$permissions === void 0 ? void 0 : _user$permissions.ai_agents;
|
|
55
|
-
var canCreateAgent = !!(userPermissions !== null && userPermissions !== void 0 && userPermissions.create) && !!window.MAIA_CHAT_AI_FEATURE_ACCESS_MULTI_AGENTS;
|
|
56
|
-
var canEdit = !!(userPermissions !== null && userPermissions !== void 0 && userPermissions.edit) && !!window.MAIA_CHAT_AI_FEATURE_ACCESS_MULTI_AGENTS;
|
|
57
|
-
var canDelete = !!(userPermissions !== null && userPermissions !== void 0 && userPermissions["delete"]) && !!window.MAIA_CHAT_AI_FEATURE_ACCESS_MULTI_AGENTS;
|
|
58
|
-
var canShowMenu = canEdit || canDelete;
|
|
59
|
-
var _useToggleFavorite = useToggleFavorite(),
|
|
60
|
-
toggleFavorite = _useToggleFavorite.toggleFavorite;
|
|
61
|
-
var amplitudeEvent = useEvent();
|
|
62
|
-
var handleLoadMore = function handleLoadMore() {
|
|
63
|
-
if (!onLoadMoreAgents || !hasMoreAgents || loadingMoreAgents) {
|
|
64
|
-
return;
|
|
65
|
-
}
|
|
66
|
-
onLoadMoreAgents();
|
|
67
|
-
};
|
|
68
|
-
var deleteModalChat = useMemo(function () {
|
|
69
|
-
return agentToDelete ? {
|
|
70
|
-
title: agentToDelete.name,
|
|
71
|
-
id: agentToDelete.id
|
|
72
|
-
} : null;
|
|
73
|
-
}, [agentToDelete]);
|
|
74
|
-
var handleUseAgent = function handleUseAgent(agent) {
|
|
75
|
-
setProject(null);
|
|
76
|
-
setClient === null || setClient === void 0 || setClient(null);
|
|
77
|
-
selectAgent(agent);
|
|
78
|
-
onBack();
|
|
79
|
-
};
|
|
80
|
-
var normalizeText = function normalizeText(value) {
|
|
81
|
-
if (Array.isArray(value)) return value[0] || '';
|
|
82
|
-
return value || '';
|
|
83
|
-
};
|
|
84
|
-
var getCreatedAtLabel = function getCreatedAtLabel(agent) {
|
|
85
|
-
var createdAt = agent.created_at;
|
|
86
|
-
if (!createdAt) return '';
|
|
87
|
-
var createdAtDate = new Date(createdAt);
|
|
88
|
-
if (Number.isNaN(createdAtDate.getTime())) return '';
|
|
89
|
-
var diffMs = Date.now() - createdAtDate.getTime();
|
|
90
|
-
var dayMs = 1000 * 60 * 60 * 24;
|
|
91
|
-
var days = Math.max(0, Math.floor(diffMs / dayMs));
|
|
92
|
-
if (days === 0) return t('marketplace.myAgentsToday');
|
|
93
|
-
if (days === 1) return t('marketplace.myAgentsOneDayAgo');
|
|
94
|
-
return t('marketplace.myAgentsDaysAgo', {
|
|
95
|
-
days: days
|
|
96
|
-
});
|
|
97
|
-
};
|
|
98
|
-
var handleOpenEditAgent = function handleOpenEditAgent(agent) {
|
|
99
|
-
document.dispatchEvent(new CustomEvent('abm-agent-modal-set-values', {
|
|
100
|
-
detail: {
|
|
101
|
-
agentValues: {
|
|
102
|
-
values: {
|
|
103
|
-
isEditing: true,
|
|
104
|
-
knowledge: (agent === null || agent === void 0 ? void 0 : agent.knowledge) || [],
|
|
105
|
-
general: {
|
|
106
|
-
name: agent.name,
|
|
107
|
-
id: agent.id
|
|
108
|
-
}
|
|
109
|
-
},
|
|
110
|
-
isOpen: true
|
|
111
|
-
}
|
|
112
|
-
}
|
|
113
|
-
}));
|
|
114
|
-
setMenuOpenForAgentId(null);
|
|
115
|
-
};
|
|
116
|
-
var handleToggleFavorite = function handleToggleFavorite(event, agent, isFavorite) {
|
|
117
|
-
event.preventDefault();
|
|
118
|
-
event.stopPropagation();
|
|
119
|
-
toggleFavorite(agent.id, function (updatedAgent) {
|
|
120
|
-
onFavoriteAgentUpdate === null || onFavoriteAgentUpdate === void 0 || onFavoriteAgentUpdate(updatedAgent);
|
|
121
|
-
}, undefined, isFavorite);
|
|
122
|
-
};
|
|
123
|
-
var handleConfirmDelete = /*#__PURE__*/function () {
|
|
124
|
-
var _ref2 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee(chat) {
|
|
125
|
-
var _t;
|
|
126
|
-
return _regeneratorRuntime.wrap(function (_context) {
|
|
127
|
-
while (1) switch (_context.prev = _context.next) {
|
|
128
|
-
case 0:
|
|
129
|
-
_context.prev = 0;
|
|
130
|
-
_context.next = 1;
|
|
131
|
-
return deleteAgent(chat.id);
|
|
132
|
-
case 1:
|
|
133
|
-
handleSnackbarSuccess(t('confirmAgentDeleted', {
|
|
134
|
-
ns: SECTIONS.abmAgent
|
|
135
|
-
}));
|
|
136
|
-
onDeleteAgent === null || onDeleteAgent === void 0 || onDeleteAgent(chat.id);
|
|
137
|
-
setAgentToDelete(null);
|
|
138
|
-
setMenuOpenForAgentId(null);
|
|
139
|
-
_context.next = 3;
|
|
140
|
-
break;
|
|
141
|
-
case 2:
|
|
142
|
-
_context.prev = 2;
|
|
143
|
-
_t = _context["catch"](0);
|
|
144
|
-
handleSnackbarError(t('errorAgentCreated', {
|
|
145
|
-
ns: SECTIONS.abmAgent
|
|
146
|
-
}));
|
|
147
|
-
case 3:
|
|
148
|
-
case "end":
|
|
149
|
-
return _context.stop();
|
|
150
|
-
}
|
|
151
|
-
}, _callee, null, [[0, 2]]);
|
|
152
|
-
}));
|
|
153
|
-
return function handleConfirmDelete(_x) {
|
|
154
|
-
return _ref2.apply(this, arguments);
|
|
155
|
-
};
|
|
156
|
-
}();
|
|
157
|
-
var handleOpenCreateAgent = function handleOpenCreateAgent() {
|
|
158
|
-
amplitudeEvent(EVENTS.openModal, {
|
|
159
|
-
option: 'create_agent'
|
|
160
|
-
});
|
|
161
|
-
document.dispatchEvent(new CustomEvent('abm-agent-modal-set-values', {
|
|
162
|
-
detail: {
|
|
163
|
-
agentValues: {
|
|
164
|
-
values: {
|
|
165
|
-
isEditing: false
|
|
166
|
-
},
|
|
167
|
-
isOpen: true
|
|
168
|
-
}
|
|
169
|
-
}
|
|
170
|
-
}));
|
|
171
|
-
};
|
|
172
|
-
useEffect(function () {
|
|
173
|
-
var handleClickOutside = function handleClickOutside() {
|
|
174
|
-
if (menuOpenForAgentId) {
|
|
175
|
-
setMenuOpenForAgentId(null);
|
|
176
|
-
}
|
|
177
|
-
};
|
|
178
|
-
document.addEventListener('click', handleClickOutside);
|
|
179
|
-
return function () {
|
|
180
|
-
document.removeEventListener('click', handleClickOutside);
|
|
181
|
-
};
|
|
182
|
-
}, [menuOpenForAgentId]);
|
|
183
|
-
useEffect(function () {
|
|
184
|
-
var container = document.getElementById('my-agents-scroll-container');
|
|
185
|
-
if (!container) {
|
|
186
|
-
return undefined;
|
|
187
|
-
}
|
|
188
|
-
var onScroll = function onScroll() {
|
|
189
|
-
if (!hasMoreAgents || loadingMoreAgents) return;
|
|
190
|
-
var scrollTop = container.scrollTop,
|
|
191
|
-
clientHeight = container.clientHeight,
|
|
192
|
-
scrollHeight = container.scrollHeight;
|
|
193
|
-
var nearBottom = scrollTop + clientHeight >= scrollHeight - 40;
|
|
194
|
-
if (nearBottom) {
|
|
195
|
-
handleLoadMore();
|
|
196
|
-
}
|
|
197
|
-
};
|
|
198
|
-
container.addEventListener('scroll', onScroll);
|
|
199
|
-
return function () {
|
|
200
|
-
container.removeEventListener('scroll', onScroll);
|
|
201
|
-
};
|
|
202
|
-
}, [hasMoreAgents, loadingMoreAgents, onLoadMoreAgents]);
|
|
203
|
-
useEffect(function () {
|
|
204
|
-
var container = document.getElementById('my-agents-scroll-container');
|
|
205
|
-
if (!container || !hasMoreAgents || loadingMoreAgents) {
|
|
206
|
-
return undefined;
|
|
207
|
-
}
|
|
208
|
-
if (container.scrollHeight <= container.clientHeight + 1) {
|
|
209
|
-
handleLoadMore();
|
|
210
|
-
}
|
|
211
|
-
return undefined;
|
|
212
|
-
}, [customAgents.length, hasMoreAgents, loadingMoreAgents, onLoadMoreAgents]);
|
|
213
|
-
return /*#__PURE__*/_jsxs(SCMAMyAgentsContainer, {
|
|
214
|
-
id: "my-agents-scroll-container",
|
|
215
|
-
$hasAgents: !!customAgents.length,
|
|
216
|
-
children: [/*#__PURE__*/_jsx(MAIAIsologo, {}), /*#__PURE__*/_jsxs(SCMABody, {
|
|
217
|
-
children: [customAgents.length ? /*#__PURE__*/_jsxs(SCMATitleWrap, {
|
|
218
|
-
children: [/*#__PURE__*/_jsx(SCMATitleInner, {
|
|
219
|
-
children: /*#__PURE__*/_jsx(SCMATitle, {
|
|
220
|
-
children: t('marketplace.myAgentsReadyTitle')
|
|
221
|
-
})
|
|
222
|
-
}), canCreateAgent ? /*#__PURE__*/_jsx(SCMAActionsRow, {
|
|
223
|
-
children: /*#__PURE__*/_jsx(SCMACreateManualButton, {
|
|
224
|
-
type: "button",
|
|
225
|
-
onClick: handleOpenCreateAgent,
|
|
226
|
-
children: /*#__PURE__*/_jsx(SCMACreateManualButtonText, {
|
|
227
|
-
children: "Crear agente manualmente"
|
|
228
|
-
})
|
|
229
|
-
})
|
|
230
|
-
}) : null]
|
|
231
|
-
}) : null, customAgents.length ? /*#__PURE__*/_jsx(SCMACardsOuter, {
|
|
232
|
-
children: /*#__PURE__*/_jsx(SCMACardsRow, {
|
|
233
|
-
children: customAgents.map(function (agent) {
|
|
234
|
-
var _agent$emoji;
|
|
235
|
-
return /*#__PURE__*/_jsxs(SCMACardButton, {
|
|
236
|
-
type: "button",
|
|
237
|
-
onClick: function onClick() {
|
|
238
|
-
return handleUseAgent(agent);
|
|
239
|
-
},
|
|
240
|
-
children: [/*#__PURE__*/_jsxs(SCMACardHeader, {
|
|
241
|
-
children: [/*#__PURE__*/_jsxs(SCMACardTitle, {
|
|
242
|
-
children: [(_agent$emoji = agent.emoji) !== null && _agent$emoji !== void 0 && _agent$emoji.trim() ? /*#__PURE__*/_jsx(SCMACardTitleEmoji, {
|
|
243
|
-
"aria-hidden": true,
|
|
244
|
-
children: agent.emoji
|
|
245
|
-
}) : null, /*#__PURE__*/_jsx(SCMACardTitleName, {
|
|
246
|
-
children: agent.name
|
|
247
|
-
})]
|
|
248
|
-
}), canShowMenu ? /*#__PURE__*/_jsx(SCMAKebabButton, {
|
|
249
|
-
type: "button",
|
|
250
|
-
"aria-label": t('marketplace.cardMenuAriaLabel'),
|
|
251
|
-
onClick: function onClick(event) {
|
|
252
|
-
event.preventDefault();
|
|
253
|
-
event.stopPropagation();
|
|
254
|
-
setMenuOpenForAgentId(function (prev) {
|
|
255
|
-
return prev === agent.id ? null : agent.id;
|
|
256
|
-
});
|
|
257
|
-
},
|
|
258
|
-
children: /*#__PURE__*/_jsx(MenuDots, {
|
|
259
|
-
color: "#999",
|
|
260
|
-
width: 15,
|
|
261
|
-
height: 15
|
|
262
|
-
})
|
|
263
|
-
}) : null]
|
|
264
|
-
}), /*#__PURE__*/_jsxs(SCMACardBody, {
|
|
265
|
-
children: [/*#__PURE__*/_jsx(SCMACardIntroText, {
|
|
266
|
-
children: normalizeText(agent.introduction)
|
|
267
|
-
}), /*#__PURE__*/_jsxs(SCMACardFooter, {
|
|
268
|
-
children: [/*#__PURE__*/_jsx(SCMACardText, {
|
|
269
|
-
children: getCreatedAtLabel(agent) || t('marketplace.myAgentsFallbackDate')
|
|
270
|
-
}), /*#__PURE__*/_jsx(Tooltip, {
|
|
271
|
-
title: agent.is_favorite ? t('agents.removeFavorite') : t('agents.addFavorite'),
|
|
272
|
-
children: /*#__PURE__*/_jsx(SCMAFavoriteButton, {
|
|
273
|
-
type: "button",
|
|
274
|
-
"aria-label": agent.is_favorite ? t('agents.removeFavorite') : t('agents.addFavorite'),
|
|
275
|
-
$alwaysVisible: !!agent.is_favorite,
|
|
276
|
-
onClick: function onClick(event) {
|
|
277
|
-
return handleToggleFavorite(event, agent, !!agent.is_favorite);
|
|
278
|
-
},
|
|
279
|
-
children: /*#__PURE__*/_jsx(Star, {
|
|
280
|
-
width: 20,
|
|
281
|
-
height: 20,
|
|
282
|
-
color: agent.is_favorite ? '#FFC624' : '#a6a6a6',
|
|
283
|
-
fill: agent.is_favorite ? '#FFC624' : 'none',
|
|
284
|
-
variant: "solid",
|
|
285
|
-
className: agent.is_favorite ? '' : 'star-favorite-icon'
|
|
286
|
-
})
|
|
287
|
-
})
|
|
288
|
-
})]
|
|
289
|
-
})]
|
|
290
|
-
}), menuOpenForAgentId === agent.id && canShowMenu ? /*#__PURE__*/_jsx(SCMACardMenu, {
|
|
291
|
-
onClick: function onClick(event) {
|
|
292
|
-
event.preventDefault();
|
|
293
|
-
event.stopPropagation();
|
|
294
|
-
},
|
|
295
|
-
children: /*#__PURE__*/_jsxs(SCMACardMenuItems, {
|
|
296
|
-
children: [canDelete ? /*#__PURE__*/_jsx(SCMACardMenuItem, {
|
|
297
|
-
type: "button",
|
|
298
|
-
onClick: function onClick() {
|
|
299
|
-
setAgentToDelete(agent);
|
|
300
|
-
},
|
|
301
|
-
children: t('deleteAgent', {
|
|
302
|
-
ns: SECTIONS.abmAgent
|
|
303
|
-
})
|
|
304
|
-
}) : null, canEdit ? /*#__PURE__*/_jsx(SCMACardMenuItem, {
|
|
305
|
-
type: "button",
|
|
306
|
-
onClick: function onClick() {
|
|
307
|
-
handleOpenEditAgent(agent);
|
|
308
|
-
},
|
|
309
|
-
children: t('editAgent', {
|
|
310
|
-
ns: SECTIONS.abmAgent
|
|
311
|
-
})
|
|
312
|
-
}) : null]
|
|
313
|
-
})
|
|
314
|
-
}) : null]
|
|
315
|
-
}, agent.id);
|
|
316
|
-
})
|
|
317
|
-
})
|
|
318
|
-
}) : /*#__PURE__*/_jsxs(SCMAEmptyStateRoot, {
|
|
319
|
-
children: [/*#__PURE__*/_jsx(SCMAEmptyStateColumn, {
|
|
320
|
-
children: /*#__PURE__*/_jsxs(SCMAEmptyStateTitleBlock, {
|
|
321
|
-
children: [/*#__PURE__*/_jsx(SCMAEmptyStateTitle, {
|
|
322
|
-
children: t('marketplace.myAgentsEmptyStateTitle')
|
|
323
|
-
}), /*#__PURE__*/_jsx(SCMAEmptyStateSubtitle, {
|
|
324
|
-
children: canCreateAgent ? t('marketplace.myAgentsEmptyStateDescription') : t('marketplace.myAgentsEmptyStateDescriptionNoPerm')
|
|
325
|
-
})]
|
|
326
|
-
})
|
|
327
|
-
}), canCreateAgent && onGoToMaiaker ? /*#__PURE__*/_jsx(SCMAEmptyStateButton, {
|
|
328
|
-
type: "button",
|
|
329
|
-
onClick: function onClick() {
|
|
330
|
-
return onGoToMaiaker();
|
|
331
|
-
},
|
|
332
|
-
children: t('marketplace.myAgentsEmptyStateButton')
|
|
333
|
-
}) : null]
|
|
334
|
-
}), loadingMoreAgents ? /*#__PURE__*/_jsx(SCMALoadMoreWrapper, {
|
|
335
|
-
children: /*#__PURE__*/_jsx(Loader, {
|
|
336
|
-
size: "small"
|
|
337
|
-
})
|
|
338
|
-
}) : null]
|
|
339
|
-
}), deleteModalChat ? /*#__PURE__*/_jsx(DeleteQuestionModal, {
|
|
340
|
-
onClose: function onClose() {
|
|
341
|
-
return setAgentToDelete(null);
|
|
342
|
-
},
|
|
343
|
-
handlers: {
|
|
344
|
-
handleConfirmAction: handleConfirmDelete
|
|
345
|
-
},
|
|
346
|
-
chat: deleteModalChat,
|
|
347
|
-
action: "agent"
|
|
348
|
-
}) : null]
|
|
349
|
-
});
|
|
350
|
-
};
|
|
351
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsInVzZUVmZmVjdCIsInVzZU1lbW8iLCJ1c2VTdGF0ZSIsIk1lbnVEb3RzIiwiU3RhciIsIlRvb2x0aXAiLCJ1c2VUcmFuc2xhdGlvbiIsInVzZUdsb2JhbENvbnRleHQiLCJ1c2VVc2VyIiwiZGVsZXRlQWdlbnQiLCJ1c2VTbmFja0Jhck1hbmFnZXIiLCJEZWxldGVRdWVzdGlvbk1vZGFsIiwiU0VDVElPTlMiLCJMb2FkZXIiLCJ1c2VUb2dnbGVGYXZvcml0ZSIsIkVWRU5UUyIsInVzZUV2ZW50IiwiU0NNQUFjdGlvbnNSb3ciLCJTQ01BQm9keSIsIlNDTUFDYXJkQm9keSIsIlNDTUFDYXJkQnV0dG9uIiwiU0NNQUNhcmRGb290ZXIiLCJTQ01BQ2FyZEhlYWRlciIsIlNDTUFDYXJkSW50cm9UZXh0IiwiU0NNQUNhcmRNZW51IiwiU0NNQUNhcmRNZW51SXRlbSIsIlNDTUFDYXJkTWVudUl0ZW1zIiwiU0NNQUZhdm9yaXRlQnV0dG9uIiwiU0NNQUNhcmRUZXh0IiwiU0NNQUNhcmRUaXRsZSIsIlNDTUFDYXJkVGl0bGVFbW9qaSIsIlNDTUFDYXJkVGl0bGVOYW1lIiwiU0NNQUNhcmRzT3V0ZXIiLCJTQ01BQ2FyZHNSb3ciLCJTQ01BRW1wdHlTdGF0ZVJvb3QiLCJTQ01BRW1wdHlTdGF0ZUNvbHVtbiIsIlNDTUFFbXB0eVN0YXRlVGl0bGVCbG9jayIsIlNDTUFFbXB0eVN0YXRlVGl0bGUiLCJTQ01BRW1wdHlTdGF0ZVN1YnRpdGxlIiwiU0NNQUVtcHR5U3RhdGVCdXR0b24iLCJTQ01BS2ViYWJCdXR0b24iLCJTQ01BQ3JlYXRlTWFudWFsQnV0dG9uIiwiU0NNQUNyZWF0ZU1hbnVhbEJ1dHRvblRleHQiLCJTQ01BTG9hZE1vcmVXcmFwcGVyIiwiU0NNQU15QWdlbnRzQ29udGFpbmVyIiwiU0NNQVRpdGxlIiwiU0NNQVRpdGxlSW5uZXIiLCJTQ01BVGl0bGVXcmFwIiwiTUFJQUlzb2xvZ28iLCJqc3giLCJfanN4IiwianN4cyIsIl9qc3hzIiwiQ2hhdEFJTXlBZ2VudHMiLCJfcmVmIiwiX3VzZXIkcGVybWlzc2lvbnMiLCJvbkJhY2siLCJhZ2VudHMiLCJvbkRlbGV0ZUFnZW50Iiwib25GYXZvcml0ZUFnZW50VXBkYXRlIiwiX3JlZiRoYXNNb3JlQWdlbnRzIiwiaGFzTW9yZUFnZW50cyIsIl9yZWYkbG9hZGluZ01vcmVBZ2VudCIsImxvYWRpbmdNb3JlQWdlbnRzIiwib25Mb2FkTW9yZUFnZW50cyIsIm9uR29Ub01haWFrZXIiLCJfdXNlVHJhbnNsYXRpb24iLCJjaGF0QUkiLCJhYm1BZ2VudCIsInQiLCJ1c2VyIiwiX3VzZUdsb2JhbENvbnRleHQiLCJzZWxlY3RBZ2VudCIsInNldFByb2plY3QiLCJzZXRDbGllbnQiLCJfdXNlU25hY2tCYXJNYW5hZ2VyIiwiaGFuZGxlU25hY2tiYXJTdWNjZXNzIiwiaGFuZGxlU25hY2tiYXJFcnJvciIsImN1c3RvbUFnZW50cyIsImZpbHRlciIsImFnZW50IiwidHlwZSIsImlzX2RlbGV0ZWQiLCJfdXNlU3RhdGUiLCJfdXNlU3RhdGUyIiwiX3NsaWNlZFRvQXJyYXkiLCJtZW51T3BlbkZvckFnZW50SWQiLCJzZXRNZW51T3BlbkZvckFnZW50SWQiLCJfdXNlU3RhdGUzIiwiX3VzZVN0YXRlNCIsImFnZW50VG9EZWxldGUiLCJzZXRBZ2VudFRvRGVsZXRlIiwidXNlclBlcm1pc3Npb25zIiwicGVybWlzc2lvbnMiLCJhaV9hZ2VudHMiLCJjYW5DcmVhdGVBZ2VudCIsImNyZWF0ZSIsIndpbmRvdyIsIk1BSUFfQ0hBVF9BSV9GRUFUVVJFX0FDQ0VTU19NVUxUSV9BR0VOVFMiLCJjYW5FZGl0IiwiZWRpdCIsImNhbkRlbGV0ZSIsImNhblNob3dNZW51IiwiX3VzZVRvZ2dsZUZhdm9yaXRlIiwidG9nZ2xlRmF2b3JpdGUiLCJhbXBsaXR1ZGVFdmVudCIsImhhbmRsZUxvYWRNb3JlIiwiZGVsZXRlTW9kYWxDaGF0IiwidGl0bGUiLCJuYW1lIiwiaWQiLCJoYW5kbGVVc2VBZ2VudCIsIm5vcm1hbGl6ZVRleHQiLCJ2YWx1ZSIsIkFycmF5IiwiaXNBcnJheSIsImdldENyZWF0ZWRBdExhYmVsIiwiY3JlYXRlZEF0IiwiY3JlYXRlZF9hdCIsImNyZWF0ZWRBdERhdGUiLCJEYXRlIiwiTnVtYmVyIiwiaXNOYU4iLCJnZXRUaW1lIiwiZGlmZk1zIiwibm93IiwiZGF5TXMiLCJkYXlzIiwiTWF0aCIsIm1heCIsImZsb29yIiwiaGFuZGxlT3BlbkVkaXRBZ2VudCIsImRvY3VtZW50IiwiZGlzcGF0Y2hFdmVudCIsIkN1c3RvbUV2ZW50IiwiZGV0YWlsIiwiYWdlbnRWYWx1ZXMiLCJ2YWx1ZXMiLCJpc0VkaXRpbmciLCJrbm93bGVkZ2UiLCJnZW5lcmFsIiwiaXNPcGVuIiwiaGFuZGxlVG9nZ2xlRmF2b3JpdGUiLCJldmVudCIsImlzRmF2b3JpdGUiLCJwcmV2ZW50RGVmYXVsdCIsInN0b3BQcm9wYWdhdGlvbiIsInVwZGF0ZWRBZ2VudCIsInVuZGVmaW5lZCIsImhhbmRsZUNvbmZpcm1EZWxldGUiLCJfcmVmMiIsIl9hc3luY1RvR2VuZXJhdG9yIiwiX3JlZ2VuZXJhdG9yUnVudGltZSIsIm1hcmsiLCJfY2FsbGVlIiwiY2hhdCIsIl90Iiwid3JhcCIsIl9jb250ZXh0IiwicHJldiIsIm5leHQiLCJucyIsInN0b3AiLCJfeCIsImFwcGx5IiwiYXJndW1lbnRzIiwiaGFuZGxlT3BlbkNyZWF0ZUFnZW50Iiwib3Blbk1vZGFsIiwib3B0aW9uIiwiaGFuZGxlQ2xpY2tPdXRzaWRlIiwiYWRkRXZlbnRMaXN0ZW5lciIsInJlbW92ZUV2ZW50TGlzdGVuZXIiLCJjb250YWluZXIiLCJnZXRFbGVtZW50QnlJZCIsIm9uU2Nyb2xsIiwic2Nyb2xsVG9wIiwiY2xpZW50SGVpZ2h0Iiwic2Nyb2xsSGVpZ2h0IiwibmVhckJvdHRvbSIsImxlbmd0aCIsIiRoYXNBZ2VudHMiLCJjaGlsZHJlbiIsIm9uQ2xpY2siLCJtYXAiLCJfYWdlbnQkZW1vamkiLCJlbW9qaSIsInRyaW0iLCJjb2xvciIsIndpZHRoIiwiaGVpZ2h0IiwiaW50cm9kdWN0aW9uIiwiaXNfZmF2b3JpdGUiLCIkYWx3YXlzVmlzaWJsZSIsImZpbGwiLCJ2YXJpYW50IiwiY2xhc3NOYW1lIiwic2l6ZSIsIm9uQ2xvc2UiLCJoYW5kbGVycyIsImhhbmRsZUNvbmZpcm1BY3Rpb24iLCJhY3Rpb24iXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50cy9tb2xlY3VsZXMvQ2hhdEFJTXlBZ2VudHMvQ2hhdEFJTXlBZ2VudHMudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCwgeyB1c2VFZmZlY3QsIHVzZU1lbW8sIHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnXG5pbXBvcnQgeyBNZW51RG90cyB9IGZyb20gJ0Bwcm9qZWN0Y29yL2ljb25zL2xpYi9jb21wb25lbnRzL01lbnVEb3RzJ1xuaW1wb3J0IHsgU3RhciB9IGZyb20gJ0Bwcm9qZWN0Y29yL2ljb25zL2xpYi9jb21wb25lbnRzL1N0YXInXG5pbXBvcnQgeyBUb29sdGlwIH0gZnJvbSAnQHByb2plY3Rjb3IvdG9vbHRpcHYyL2xpYi9jb21wb25lbnRzL1Rvb2x0aXAnXG5pbXBvcnQgeyB1c2VUcmFuc2xhdGlvbiB9IGZyb20gJ3JlYWN0LWkxOG5leHQnXG5pbXBvcnQgeyB1c2VHbG9iYWxDb250ZXh0IH0gZnJvbSAnLi4vLi4vLi4vY29udGV4dC9nbG9iYWwtY29udGV4dCdcbmltcG9ydCB7IHVzZVVzZXIgfSBmcm9tICcuLi8uLi8uLi9jb250ZXh0L2Nvci11c2VyJ1xuaW1wb3J0IHsgQWdlbnQgfSBmcm9tICcuLi8uLi8uLi90eXBlcy9hZ2VudCdcbmltcG9ydCB7IGRlbGV0ZUFnZW50IH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvbWFpYS9BZ2VudHMvZGVsZXRlQWdlbnQnXG5pbXBvcnQgeyB1c2VTbmFja0Jhck1hbmFnZXIgfSBmcm9tICcuLi8uLi8uLi9ob29rcy91c2VTbmFja0Jhck1hbmFnZXIvdXNlU25hY2tCYXJNYW5hZ2VyJ1xuaW1wb3J0IHsgRGVsZXRlUXVlc3Rpb25Nb2RhbCB9IGZyb20gJy4uLy4uL29yZ2FuaXNtcy9EZWxldGVRdWVzdGlvbk1vZGFsL0RlbGV0ZVF1ZXN0aW9uTW9kYWwnXG5pbXBvcnQgeyBTRUNUSU9OUyB9IGZyb20gJy4uLy4uLy4uL2NvbnN0YW50cy9jb25maWcnXG5pbXBvcnQgeyBMb2FkZXIgfSBmcm9tICcuLi8uLi9hdG9tcy9Mb2FkZXInXG5pbXBvcnQgeyB1c2VUb2dnbGVGYXZvcml0ZSB9IGZyb20gJy4uLy4uLy4uL2hvb2tzJ1xuaW1wb3J0IHsgRVZFTlRTLCB1c2VFdmVudCB9IGZyb20gJy4uLy4uLy4uL2hvb2tzL3VzZUV2ZW50J1xuaW1wb3J0IHtcbiAgU0NNQUFjdGlvbnNSb3csXG4gIFNDTUFCb2R5LFxuICBTQ01BQ2FyZEJvZHksXG4gIFNDTUFDYXJkQnV0dG9uLFxuICBTQ01BQ2FyZEZvb3RlcixcbiAgU0NNQUNhcmRIZWFkZXIsXG4gIFNDTUFDYXJkSW50cm9UZXh0LFxuICBTQ01BQ2FyZE1lbnUsXG4gIFNDTUFDYXJkTWVudUl0ZW0sXG4gIFNDTUFDYXJkTWVudUl0ZW1zLFxuICBTQ01BRmF2b3JpdGVCdXR0b24sXG4gIFNDTUFDYXJkVGV4dCxcbiAgU0NNQUNhcmRUaXRsZSxcbiAgU0NNQUNhcmRUaXRsZUVtb2ppLFxuICBTQ01BQ2FyZFRpdGxlTmFtZSxcbiAgU0NNQUNhcmRzT3V0ZXIsXG4gIFNDTUFDYXJkc1JvdyxcbiAgU0NNQUVtcHR5U3RhdGVSb290LFxuICBTQ01BRW1wdHlTdGF0ZUNvbHVtbixcbiAgU0NNQUVtcHR5U3RhdGVUaXRsZUJsb2NrLFxuICBTQ01BRW1wdHlTdGF0ZVRpdGxlLFxuICBTQ01BRW1wdHlTdGF0ZVN1YnRpdGxlLFxuICBTQ01BRW1wdHlTdGF0ZUJ1dHRvbixcbiAgU0NNQUtlYmFiQnV0dG9uLFxuICBTQ01BQ3JlYXRlTWFudWFsQnV0dG9uLFxuICBTQ01BQ3JlYXRlTWFudWFsQnV0dG9uVGV4dCxcbiAgU0NNQUxvYWRNb3JlV3JhcHBlcixcbiAgU0NNQU15QWdlbnRzQ29udGFpbmVyLFxuICBTQ01BVGl0bGUsXG4gIFNDTUFUaXRsZUlubmVyLFxuICBTQ01BVGl0bGVXcmFwLFxufSBmcm9tICcuL0NoYXRBSU15QWdlbnRzLnN0eWxlcydcbmltcG9ydCB7IE1BSUFJc29sb2dvIH0gZnJvbSAnLi4vLi4vYXRvbXMvaWNvbnMnXG5cbnR5cGUgQ2hhdEFJTXlBZ2VudHNQcm9wcyA9IHtcbiAgb25CYWNrOiAoKSA9PiB2b2lkXG4gIGFnZW50czogQWdlbnRbXVxuICBvbkRlbGV0ZUFnZW50PzogKGFnZW50SWQ6IHN0cmluZykgPT4gdm9pZFxuICBvbkZhdm9yaXRlQWdlbnRVcGRhdGU/OiAoYWdlbnQ6IEFnZW50KSA9PiB2b2lkXG4gIGhhc01vcmVBZ2VudHM/OiBib29sZWFuXG4gIGxvYWRpbmdNb3JlQWdlbnRzPzogYm9vbGVhblxuICBvbkxvYWRNb3JlQWdlbnRzPzogKCkgPT4gdm9pZFxuICBvbkdvVG9NYWlha2VyPzogKCkgPT4gdm9pZCB8IFByb21pc2U8dm9pZD5cbn1cblxuZXhwb3J0IGNvbnN0IENoYXRBSU15QWdlbnRzID0gKHtcbiAgb25CYWNrLFxuICBhZ2VudHMsXG4gIG9uRGVsZXRlQWdlbnQsXG4gIG9uRmF2b3JpdGVBZ2VudFVwZGF0ZSxcbiAgaGFzTW9yZUFnZW50cyA9IGZhbHNlLFxuICBsb2FkaW5nTW9yZUFnZW50cyA9IGZhbHNlLFxuICBvbkxvYWRNb3JlQWdlbnRzLFxuICBvbkdvVG9NYWlha2VyLFxufTogQ2hhdEFJTXlBZ2VudHNQcm9wcykgPT4ge1xuICBjb25zdCB7IHQgfSA9IHVzZVRyYW5zbGF0aW9uKFtTRUNUSU9OUy5jaGF0QUksIFNFQ1RJT05TLmFibUFnZW50XSlcbiAgY29uc3QgdXNlciA9IHVzZVVzZXIoKVxuICBjb25zdCB7IHNlbGVjdEFnZW50LCBzZXRQcm9qZWN0LCBzZXRDbGllbnQgfSA9IHVzZUdsb2JhbENvbnRleHQoKVxuICBjb25zdCB7IGhhbmRsZVNuYWNrYmFyU3VjY2VzcywgaGFuZGxlU25hY2tiYXJFcnJvciB9ID0gdXNlU25hY2tCYXJNYW5hZ2VyKClcbiAgY29uc3QgY3VzdG9tQWdlbnRzID0gYWdlbnRzLmZpbHRlcihhZ2VudCA9PiBhZ2VudC50eXBlID09PSAnY3VzdG9tJyAmJiAhYWdlbnQuaXNfZGVsZXRlZClcbiAgY29uc3QgW21lbnVPcGVuRm9yQWdlbnRJZCwgc2V0TWVudU9wZW5Gb3JBZ2VudElkXSA9IHVzZVN0YXRlPHN0cmluZyB8IG51bGw+KG51bGwpXG4gIGNvbnN0IFthZ2VudFRvRGVsZXRlLCBzZXRBZ2VudFRvRGVsZXRlXSA9IHVzZVN0YXRlPEFnZW50IHwgbnVsbD4obnVsbClcbiAgY29uc3QgdXNlclBlcm1pc3Npb25zID0gdXNlcj8ucGVybWlzc2lvbnM/LmFpX2FnZW50c1xuICBjb25zdCBjYW5DcmVhdGVBZ2VudCA9ICEhdXNlclBlcm1pc3Npb25zPy5jcmVhdGUgJiYgISF3aW5kb3cuTUFJQV9DSEFUX0FJX0ZFQVRVUkVfQUNDRVNTX01VTFRJX0FHRU5UU1xuICBjb25zdCBjYW5FZGl0ID0gISF1c2VyUGVybWlzc2lvbnM/LmVkaXQgJiYgISF3aW5kb3cuTUFJQV9DSEFUX0FJX0ZFQVRVUkVfQUNDRVNTX01VTFRJX0FHRU5UU1xuICBjb25zdCBjYW5EZWxldGUgPSAhIXVzZXJQZXJtaXNzaW9ucz8uZGVsZXRlICYmICEhd2luZG93Lk1BSUFfQ0hBVF9BSV9GRUFUVVJFX0FDQ0VTU19NVUxUSV9BR0VOVFNcbiAgY29uc3QgY2FuU2hvd01lbnUgPSBjYW5FZGl0IHx8IGNhbkRlbGV0ZVxuICBjb25zdCB7IHRvZ2dsZUZhdm9yaXRlIH0gPSB1c2VUb2dnbGVGYXZvcml0ZSgpXG4gIGNvbnN0IGFtcGxpdHVkZUV2ZW50ID0gdXNlRXZlbnQoKVxuXG4gIGNvbnN0IGhhbmRsZUxvYWRNb3JlID0gKCkgPT4ge1xuICAgIGlmICghb25Mb2FkTW9yZUFnZW50cyB8fCAhaGFzTW9yZUFnZW50cyB8fCBsb2FkaW5nTW9yZUFnZW50cykge1xuICAgICAgcmV0dXJuXG4gICAgfVxuICAgIG9uTG9hZE1vcmVBZ2VudHMoKVxuICB9XG5cbiAgY29uc3QgZGVsZXRlTW9kYWxDaGF0ID0gdXNlTWVtbyhcbiAgICAoKSA9PiAoYWdlbnRUb0RlbGV0ZSA/IHsgdGl0bGU6IGFnZW50VG9EZWxldGUubmFtZSwgaWQ6IGFnZW50VG9EZWxldGUuaWQgfSA6IG51bGwpLFxuICAgIFthZ2VudFRvRGVsZXRlXVxuICApXG5cbiAgY29uc3QgaGFuZGxlVXNlQWdlbnQgPSAoYWdlbnQ6IEFnZW50KSA9PiB7XG4gICAgc2V0UHJvamVjdChudWxsKVxuICAgIHNldENsaWVudD8uKG51bGwpXG4gICAgc2VsZWN0QWdlbnQoYWdlbnQpXG4gICAgb25CYWNrKClcbiAgfVxuXG4gIGNvbnN0IG5vcm1hbGl6ZVRleHQgPSAodmFsdWU/OiBzdHJpbmcgfCBzdHJpbmdbXSB8IG51bGwpID0+IHtcbiAgICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHJldHVybiB2YWx1ZVswXSB8fCAnJ1xuICAgIHJldHVybiB2YWx1ZSB8fCAnJ1xuICB9XG5cbiAgY29uc3QgZ2V0Q3JlYXRlZEF0TGFiZWwgPSAoYWdlbnQ6IEFnZW50KSA9PiB7XG4gICAgY29uc3QgY3JlYXRlZEF0ID0gKGFnZW50IGFzIEFnZW50ICYgeyBjcmVhdGVkX2F0Pzogc3RyaW5nIH0pLmNyZWF0ZWRfYXRcbiAgICBpZiAoIWNyZWF0ZWRBdCkgcmV0dXJuICcnXG5cbiAgICBjb25zdCBjcmVhdGVkQXREYXRlID0gbmV3IERhdGUoY3JlYXRlZEF0KVxuICAgIGlmIChOdW1iZXIuaXNOYU4oY3JlYXRlZEF0RGF0ZS5nZXRUaW1lKCkpKSByZXR1cm4gJydcblxuICAgIGNvbnN0IGRpZmZNcyA9IERhdGUubm93KCkgLSBjcmVhdGVkQXREYXRlLmdldFRpbWUoKVxuICAgIGNvbnN0IGRheU1zID0gMTAwMCAqIDYwICogNjAgKiAyNFxuICAgIGNvbnN0IGRheXMgPSBNYXRoLm1heCgwLCBNYXRoLmZsb29yKGRpZmZNcyAvIGRheU1zKSlcblxuICAgIGlmIChkYXlzID09PSAwKSByZXR1cm4gdCgnbWFya2V0cGxhY2UubXlBZ2VudHNUb2RheScpXG4gICAgaWYgKGRheXMgPT09IDEpIHJldHVybiB0KCdtYXJrZXRwbGFjZS5teUFnZW50c09uZURheUFnbycpXG4gICAgcmV0dXJuIHQoJ21hcmtldHBsYWNlLm15QWdlbnRzRGF5c0FnbycsIHsgZGF5cyB9KVxuICB9XG5cbiAgY29uc3QgaGFuZGxlT3BlbkVkaXRBZ2VudCA9IChhZ2VudDogQWdlbnQpID0+IHtcbiAgICBkb2N1bWVudC5kaXNwYXRjaEV2ZW50KFxuICAgICAgbmV3IEN1c3RvbUV2ZW50KCdhYm0tYWdlbnQtbW9kYWwtc2V0LXZhbHVlcycsIHtcbiAgICAgICAgZGV0YWlsOiB7XG4gICAgICAgICAgYWdlbnRWYWx1ZXM6IHtcbiAgICAgICAgICAgIHZhbHVlczoge1xuICAgICAgICAgICAgICBpc0VkaXRpbmc6IHRydWUsXG4gICAgICAgICAgICAgIGtub3dsZWRnZTogYWdlbnQ/Lmtub3dsZWRnZSB8fCBbXSxcbiAgICAgICAgICAgICAgZ2VuZXJhbDoge1xuICAgICAgICAgICAgICAgIG5hbWU6IGFnZW50Lm5hbWUsXG4gICAgICAgICAgICAgICAgaWQ6IGFnZW50LmlkLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGlzT3BlbjogdHJ1ZSxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgfSlcbiAgICApXG4gICAgc2V0TWVudU9wZW5Gb3JBZ2VudElkKG51bGwpXG4gIH1cblxuICBjb25zdCBoYW5kbGVUb2dnbGVGYXZvcml0ZSA9IChldmVudDogUmVhY3QuTW91c2VFdmVudDxIVE1MQnV0dG9uRWxlbWVudD4sIGFnZW50OiBBZ2VudCwgaXNGYXZvcml0ZTogYm9vbGVhbikgPT4ge1xuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KClcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKVxuXG4gICAgdG9nZ2xlRmF2b3JpdGUoXG4gICAgICBhZ2VudC5pZCxcbiAgICAgIHVwZGF0ZWRBZ2VudCA9PiB7XG4gICAgICAgIG9uRmF2b3JpdGVBZ2VudFVwZGF0ZT8uKHVwZGF0ZWRBZ2VudClcbiAgICAgIH0sXG4gICAgICB1bmRlZmluZWQsXG4gICAgICBpc0Zhdm9yaXRlXG4gICAgKVxuICB9XG5cbiAgY29uc3QgaGFuZGxlQ29uZmlybURlbGV0ZSA9IGFzeW5jIChjaGF0OiB7IGlkOiBzdHJpbmcgfSkgPT4ge1xuICAgIHRyeSB7XG4gICAgICBhd2FpdCBkZWxldGVBZ2VudChjaGF0LmlkKVxuICAgICAgaGFuZGxlU25hY2tiYXJTdWNjZXNzKHQoJ2NvbmZpcm1BZ2VudERlbGV0ZWQnLCB7IG5zOiBTRUNUSU9OUy5hYm1BZ2VudCB9KSlcbiAgICAgIG9uRGVsZXRlQWdlbnQ/LihjaGF0LmlkKVxuICAgICAgc2V0QWdlbnRUb0RlbGV0ZShudWxsKVxuICAgICAgc2V0TWVudU9wZW5Gb3JBZ2VudElkKG51bGwpXG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGhhbmRsZVNuYWNrYmFyRXJyb3IodCgnZXJyb3JBZ2VudENyZWF0ZWQnLCB7IG5zOiBTRUNUSU9OUy5hYm1BZ2VudCB9KSlcbiAgICB9XG4gIH1cblxuICBjb25zdCBoYW5kbGVPcGVuQ3JlYXRlQWdlbnQgPSAoKSA9PiB7XG4gICAgYW1wbGl0dWRlRXZlbnQoRVZFTlRTLm9wZW5Nb2RhbCwgeyBvcHRpb246ICdjcmVhdGVfYWdlbnQnIH0pXG4gICAgZG9jdW1lbnQuZGlzcGF0Y2hFdmVudChcbiAgICAgIG5ldyBDdXN0b21FdmVudCgnYWJtLWFnZW50LW1vZGFsLXNldC12YWx1ZXMnLCB7XG4gICAgICAgIGRldGFpbDoge1xuICAgICAgICAgIGFnZW50VmFsdWVzOiB7XG4gICAgICAgICAgICB2YWx1ZXM6IHtcbiAgICAgICAgICAgICAgaXNFZGl0aW5nOiBmYWxzZSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBpc09wZW46IHRydWUsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIH0pXG4gICAgKVxuICB9XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBjb25zdCBoYW5kbGVDbGlja091dHNpZGUgPSAoKSA9PiB7XG4gICAgICBpZiAobWVudU9wZW5Gb3JBZ2VudElkKSB7XG4gICAgICAgIHNldE1lbnVPcGVuRm9yQWdlbnRJZChudWxsKVxuICAgICAgfVxuICAgIH1cblxuICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgaGFuZGxlQ2xpY2tPdXRzaWRlKVxuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdjbGljaycsIGhhbmRsZUNsaWNrT3V0c2lkZSlcbiAgICB9XG4gIH0sIFttZW51T3BlbkZvckFnZW50SWRdKVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgY29uc3QgY29udGFpbmVyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ215LWFnZW50cy1zY3JvbGwtY29udGFpbmVyJylcbiAgICBpZiAoIWNvbnRhaW5lcikge1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZFxuICAgIH1cblxuICAgIGNvbnN0IG9uU2Nyb2xsID0gKCkgPT4ge1xuICAgICAgaWYgKCFoYXNNb3JlQWdlbnRzIHx8IGxvYWRpbmdNb3JlQWdlbnRzKSByZXR1cm5cbiAgICAgIGNvbnN0IHsgc2Nyb2xsVG9wLCBjbGllbnRIZWlnaHQsIHNjcm9sbEhlaWdodCB9ID0gY29udGFpbmVyXG4gICAgICBjb25zdCBuZWFyQm90dG9tID0gc2Nyb2xsVG9wICsgY2xpZW50SGVpZ2h0ID49IHNjcm9sbEhlaWdodCAtIDQwXG4gICAgICBpZiAobmVhckJvdHRvbSkge1xuICAgICAgICBoYW5kbGVMb2FkTW9yZSgpXG4gICAgICB9XG4gICAgfVxuXG4gICAgY29udGFpbmVyLmFkZEV2ZW50TGlzdGVuZXIoJ3Njcm9sbCcsIG9uU2Nyb2xsKVxuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICBjb250YWluZXIucmVtb3ZlRXZlbnRMaXN0ZW5lcignc2Nyb2xsJywgb25TY3JvbGwpXG4gICAgfVxuICB9LCBbaGFzTW9yZUFnZW50cywgbG9hZGluZ01vcmVBZ2VudHMsIG9uTG9hZE1vcmVBZ2VudHNdKVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgY29uc3QgY29udGFpbmVyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ215LWFnZW50cy1zY3JvbGwtY29udGFpbmVyJylcbiAgICBpZiAoIWNvbnRhaW5lciB8fCAhaGFzTW9yZUFnZW50cyB8fCBsb2FkaW5nTW9yZUFnZW50cykge1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZFxuICAgIH1cblxuICAgIGlmIChjb250YWluZXIuc2Nyb2xsSGVpZ2h0IDw9IGNvbnRhaW5lci5jbGllbnRIZWlnaHQgKyAxKSB7XG4gICAgICBoYW5kbGVMb2FkTW9yZSgpXG4gICAgfVxuICAgIHJldHVybiB1bmRlZmluZWRcbiAgfSwgW2N1c3RvbUFnZW50cy5sZW5ndGgsIGhhc01vcmVBZ2VudHMsIGxvYWRpbmdNb3JlQWdlbnRzLCBvbkxvYWRNb3JlQWdlbnRzXSlcblxuICByZXR1cm4gKFxuICAgIDxTQ01BTXlBZ2VudHNDb250YWluZXIgaWQ9XCJteS1hZ2VudHMtc2Nyb2xsLWNvbnRhaW5lclwiICRoYXNBZ2VudHM9eyEhY3VzdG9tQWdlbnRzLmxlbmd0aH0+XG4gICAgICA8TUFJQUlzb2xvZ28gLz5cblxuICAgICAgPFNDTUFCb2R5PlxuICAgICAgICB7Y3VzdG9tQWdlbnRzLmxlbmd0aCA/IChcbiAgICAgICAgICA8U0NNQVRpdGxlV3JhcD5cbiAgICAgICAgICAgIDxTQ01BVGl0bGVJbm5lcj5cbiAgICAgICAgICAgICAgPFNDTUFUaXRsZT57dCgnbWFya2V0cGxhY2UubXlBZ2VudHNSZWFkeVRpdGxlJyl9PC9TQ01BVGl0bGU+XG4gICAgICAgICAgICA8L1NDTUFUaXRsZUlubmVyPlxuICAgICAgICAgICAge2NhbkNyZWF0ZUFnZW50ID8gKFxuICAgICAgICAgICAgICA8U0NNQUFjdGlvbnNSb3c+XG4gICAgICAgICAgICAgICAgPFNDTUFDcmVhdGVNYW51YWxCdXR0b24gdHlwZT1cImJ1dHRvblwiIG9uQ2xpY2s9e2hhbmRsZU9wZW5DcmVhdGVBZ2VudH0+XG4gICAgICAgICAgICAgICAgICA8U0NNQUNyZWF0ZU1hbnVhbEJ1dHRvblRleHQ+Q3JlYXIgYWdlbnRlIG1hbnVhbG1lbnRlPC9TQ01BQ3JlYXRlTWFudWFsQnV0dG9uVGV4dD5cbiAgICAgICAgICAgICAgICA8L1NDTUFDcmVhdGVNYW51YWxCdXR0b24+XG4gICAgICAgICAgICAgIDwvU0NNQUFjdGlvbnNSb3c+XG4gICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICA8L1NDTUFUaXRsZVdyYXA+XG4gICAgICAgICkgOiBudWxsfVxuXG4gICAgICAgIHtjdXN0b21BZ2VudHMubGVuZ3RoID8gKFxuICAgICAgICAgIDxTQ01BQ2FyZHNPdXRlcj5cbiAgICAgICAgICAgIDxTQ01BQ2FyZHNSb3c+XG4gICAgICAgICAgICAgIHtjdXN0b21BZ2VudHMubWFwKGFnZW50ID0+IChcbiAgICAgICAgICAgICAgICA8U0NNQUNhcmRCdXR0b24ga2V5PXthZ2VudC5pZH0gdHlwZT1cImJ1dHRvblwiIG9uQ2xpY2s9eygpID0+IGhhbmRsZVVzZUFnZW50KGFnZW50KX0+XG4gICAgICAgICAgICAgICAgICA8U0NNQUNhcmRIZWFkZXI+XG4gICAgICAgICAgICAgICAgICAgIDxTQ01BQ2FyZFRpdGxlPlxuICAgICAgICAgICAgICAgICAgICAgIHthZ2VudC5lbW9qaT8udHJpbSgpID8gPFNDTUFDYXJkVGl0bGVFbW9qaSBhcmlhLWhpZGRlbj57YWdlbnQuZW1vaml9PC9TQ01BQ2FyZFRpdGxlRW1vamk+IDogbnVsbH1cbiAgICAgICAgICAgICAgICAgICAgICA8U0NNQUNhcmRUaXRsZU5hbWU+e2FnZW50Lm5hbWV9PC9TQ01BQ2FyZFRpdGxlTmFtZT5cbiAgICAgICAgICAgICAgICAgICAgPC9TQ01BQ2FyZFRpdGxlPlxuICAgICAgICAgICAgICAgICAgICB7Y2FuU2hvd01lbnUgPyAoXG4gICAgICAgICAgICAgICAgICAgICAgPFNDTUFLZWJhYkJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPXt0KCdtYXJrZXRwbGFjZS5jYXJkTWVudUFyaWFMYWJlbCcpfVxuICAgICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17ZXZlbnQgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHNldE1lbnVPcGVuRm9yQWdlbnRJZChwcmV2ID0+IChwcmV2ID09PSBhZ2VudC5pZCA/IG51bGwgOiBhZ2VudC5pZCkpXG4gICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxNZW51RG90cyBjb2xvcj1cIiM5OTlcIiB3aWR0aD17MTV9IGhlaWdodD17MTV9IC8+XG4gICAgICAgICAgICAgICAgICAgICAgPC9TQ01BS2ViYWJCdXR0b24+XG4gICAgICAgICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICAgICAgPC9TQ01BQ2FyZEhlYWRlcj5cbiAgICAgICAgICAgICAgICAgIDxTQ01BQ2FyZEJvZHk+XG4gICAgICAgICAgICAgICAgICAgIDxTQ01BQ2FyZEludHJvVGV4dD57bm9ybWFsaXplVGV4dChhZ2VudC5pbnRyb2R1Y3Rpb24pfTwvU0NNQUNhcmRJbnRyb1RleHQ+XG4gICAgICAgICAgICAgICAgICAgIDxTQ01BQ2FyZEZvb3Rlcj5cbiAgICAgICAgICAgICAgICAgICAgICA8U0NNQUNhcmRUZXh0PntnZXRDcmVhdGVkQXRMYWJlbChhZ2VudCkgfHwgdCgnbWFya2V0cGxhY2UubXlBZ2VudHNGYWxsYmFja0RhdGUnKX08L1NDTUFDYXJkVGV4dD5cbiAgICAgICAgICAgICAgICAgICAgICA8VG9vbHRpcCB0aXRsZT17YWdlbnQuaXNfZmF2b3JpdGUgPyB0KCdhZ2VudHMucmVtb3ZlRmF2b3JpdGUnKSA6IHQoJ2FnZW50cy5hZGRGYXZvcml0ZScpfT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxTQ01BRmF2b3JpdGVCdXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9e2FnZW50LmlzX2Zhdm9yaXRlID8gdCgnYWdlbnRzLnJlbW92ZUZhdm9yaXRlJykgOiB0KCdhZ2VudHMuYWRkRmF2b3JpdGUnKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgJGFsd2F5c1Zpc2libGU9eyEhYWdlbnQuaXNfZmF2b3JpdGV9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9e2V2ZW50ID0+IGhhbmRsZVRvZ2dsZUZhdm9yaXRlKGV2ZW50LCBhZ2VudCwgISFhZ2VudC5pc19mYXZvcml0ZSl9XG4gICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxTdGFyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg9ezIwfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodD17MjB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I9e2FnZW50LmlzX2Zhdm9yaXRlID8gJyNGRkM2MjQnIDogJyNhNmE2YTYnfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGw9e2FnZW50LmlzX2Zhdm9yaXRlID8gJyNGRkM2MjQnIDogJ25vbmUnfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9XCJzb2xpZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPXthZ2VudC5pc19mYXZvcml0ZSA/ICcnIDogJ3N0YXItZmF2b3JpdGUtaWNvbid9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L1NDTUFGYXZvcml0ZUJ1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgICAgICAgICAgICAgIDwvU0NNQUNhcmRGb290ZXI+XG4gICAgICAgICAgICAgICAgICA8L1NDTUFDYXJkQm9keT5cbiAgICAgICAgICAgICAgICAgIHttZW51T3BlbkZvckFnZW50SWQgPT09IGFnZW50LmlkICYmIGNhblNob3dNZW51ID8gKFxuICAgICAgICAgICAgICAgICAgICA8U0NNQUNhcmRNZW51XG4gICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17ZXZlbnQgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKVxuICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcbiAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgPFNDTUFDYXJkTWVudUl0ZW1zPlxuICAgICAgICAgICAgICAgICAgICAgICAge2NhbkRlbGV0ZSA/IChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPFNDTUFDYXJkTWVudUl0ZW1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRBZ2VudFRvRGVsZXRlKGFnZW50KVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7dCgnZGVsZXRlQWdlbnQnLCB7IG5zOiBTRUNUSU9OUy5hYm1BZ2VudCB9KX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9TQ01BQ2FyZE1lbnVJdGVtPlxuICAgICAgICAgICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgICAgICAgICAgICB7Y2FuRWRpdCA/IChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPFNDTUFDYXJkTWVudUl0ZW1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVPcGVuRWRpdEFnZW50KGFnZW50KVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7dCgnZWRpdEFnZW50JywgeyBuczogU0VDVElPTlMuYWJtQWdlbnQgfSl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvU0NNQUNhcmRNZW51SXRlbT5cbiAgICAgICAgICAgICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICAgICAgICAgIDwvU0NNQUNhcmRNZW51SXRlbXM+XG4gICAgICAgICAgICAgICAgICAgIDwvU0NNQUNhcmRNZW51PlxuICAgICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgICAgPC9TQ01BQ2FyZEJ1dHRvbj5cbiAgICAgICAgICAgICAgKSl9XG4gICAgICAgICAgICA8L1NDTUFDYXJkc1Jvdz5cbiAgICAgICAgICA8L1NDTUFDYXJkc091dGVyPlxuICAgICAgICApIDogKFxuICAgICAgICAgIDxTQ01BRW1wdHlTdGF0ZVJvb3Q+XG4gICAgICAgICAgICA8U0NNQUVtcHR5U3RhdGVDb2x1bW4+XG4gICAgICAgICAgICAgIDxTQ01BRW1wdHlTdGF0ZVRpdGxlQmxvY2s+XG4gICAgICAgICAgICAgICAgPFNDTUFFbXB0eVN0YXRlVGl0bGU+e3QoJ21hcmtldHBsYWNlLm15QWdlbnRzRW1wdHlTdGF0ZVRpdGxlJyl9PC9TQ01BRW1wdHlTdGF0ZVRpdGxlPlxuICAgICAgICAgICAgICAgIDxTQ01BRW1wdHlTdGF0ZVN1YnRpdGxlPlxuICAgICAgICAgICAgICAgICAge2NhbkNyZWF0ZUFnZW50XG4gICAgICAgICAgICAgICAgICAgID8gdCgnbWFya2V0cGxhY2UubXlBZ2VudHNFbXB0eVN0YXRlRGVzY3JpcHRpb24nKVxuICAgICAgICAgICAgICAgICAgICA6IHQoJ21hcmtldHBsYWNlLm15QWdlbnRzRW1wdHlTdGF0ZURlc2NyaXB0aW9uTm9QZXJtJyl9XG4gICAgICAgICAgICAgICAgPC9TQ01BRW1wdHlTdGF0ZVN1YnRpdGxlPlxuICAgICAgICAgICAgICA8L1NDTUFFbXB0eVN0YXRlVGl0bGVCbG9jaz5cbiAgICAgICAgICAgIDwvU0NNQUVtcHR5U3RhdGVDb2x1bW4+XG4gICAgICAgICAgICB7Y2FuQ3JlYXRlQWdlbnQgJiYgb25Hb1RvTWFpYWtlciA/IChcbiAgICAgICAgICAgICAgPFNDTUFFbXB0eVN0YXRlQnV0dG9uIHR5cGU9XCJidXR0b25cIiBvbkNsaWNrPXsoKSA9PiBvbkdvVG9NYWlha2VyKCl9PlxuICAgICAgICAgICAgICAgIHt0KCdtYXJrZXRwbGFjZS5teUFnZW50c0VtcHR5U3RhdGVCdXR0b24nKX1cbiAgICAgICAgICAgICAgPC9TQ01BRW1wdHlTdGF0ZUJ1dHRvbj5cbiAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgIDwvU0NNQUVtcHR5U3RhdGVSb290PlxuICAgICAgICApfVxuICAgICAgICB7bG9hZGluZ01vcmVBZ2VudHMgPyAoXG4gICAgICAgICAgPFNDTUFMb2FkTW9yZVdyYXBwZXI+XG4gICAgICAgICAgICA8TG9hZGVyIHNpemU9XCJzbWFsbFwiIC8+XG4gICAgICAgICAgPC9TQ01BTG9hZE1vcmVXcmFwcGVyPlxuICAgICAgICApIDogbnVsbH1cbiAgICAgIDwvU0NNQUJvZHk+XG4gICAgICB7ZGVsZXRlTW9kYWxDaGF0ID8gKFxuICAgICAgICA8RGVsZXRlUXVlc3Rpb25Nb2RhbFxuICAgICAgICAgIG9uQ2xvc2U9eygpID0+IHNldEFnZW50VG9EZWxldGUobnVsbCl9XG4gICAgICAgICAgaGFuZGxlcnM9e3tcbiAgICAgICAgICAgIGhhbmRsZUNvbmZpcm1BY3Rpb246IGhhbmRsZUNvbmZpcm1EZWxldGUsXG4gICAgICAgICAgfX1cbiAgICAgICAgICBjaGF0PXtkZWxldGVNb2RhbENoYXR9XG4gICAgICAgICAgYWN0aW9uPVwiYWdlbnRcIlxuICAgICAgICAvPlxuICAgICAgKSA6IG51bGx9XG4gICAgPC9TQ01BTXlBZ2VudHNDb250YWluZXI+XG4gIClcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsT0FBT0EsS0FBSyxJQUFJQyxTQUFTLEVBQUVDLE9BQU8sRUFBRUMsUUFBUSxRQUFRLE9BQU87QUFDM0QsU0FBU0MsUUFBUSxRQUFRLDJDQUEyQztBQUNwRSxTQUFTQyxJQUFJLFFBQVEsdUNBQXVDO0FBQzVELFNBQVNDLE9BQU8sUUFBUSw4Q0FBOEM7QUFDdEUsU0FBU0MsY0FBYyxRQUFRLGVBQWU7QUFDOUMsU0FBU0MsZ0JBQWdCLFFBQVEsaUNBQWlDO0FBQ2xFLFNBQVNDLE9BQU8sUUFBUSwyQkFBMkI7QUFFbkQsU0FBU0MsV0FBVyxRQUFRLDJDQUEyQztBQUN2RSxTQUFTQyxrQkFBa0IsUUFBUSxzREFBc0Q7QUFDekYsU0FBU0MsbUJBQW1CLFFBQVEseURBQXlEO0FBQzdGLFNBQVNDLFFBQVEsUUFBUSwyQkFBMkI7QUFDcEQsU0FBU0MsTUFBTSxRQUFRLG9CQUFvQjtBQUMzQyxTQUFTQyxpQkFBaUIsUUFBUSxnQkFBZ0I7QUFDbEQsU0FBU0MsTUFBTSxFQUFFQyxRQUFRLFFBQVEseUJBQXlCO0FBQzFELFNBQ0VDLGNBQWMsRUFDZEMsUUFBUSxFQUNSQyxZQUFZLEVBQ1pDLGNBQWMsRUFDZEMsY0FB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
|