genassist-chat-react 1.0.26 → 1.0.27
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/README.md +2 -0
- package/dist/components/GenAgentChat.js +39 -31
- package/dist/components/InteractiveContent.js +3 -2
- package/dist/components/MarkdownMessage.d.ts +11 -0
- package/dist/components/MarkdownMessage.js +56 -0
- package/dist/components/WelcomeCard.js +3 -3
- package/dist/hooks/useChat.d.ts +4 -1
- package/dist/hooks/useChat.js +24 -17
- package/dist/types/index.d.ts +4 -0
- package/dist/types/index.js +1 -1
- package/package.json +5 -2
|
@@ -13,6 +13,7 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
|
13
13
|
import React from 'react';
|
|
14
14
|
import { getFileIcon } from './FileTypeIcon';
|
|
15
15
|
import { X } from 'lucide-react';
|
|
16
|
+
import { MarkdownMessage } from './MarkdownMessage';
|
|
16
17
|
// Utility function to parse markdown bold syntax (**text**) and convert to React elements
|
|
17
18
|
export var parseBoldText = function (input) {
|
|
18
19
|
var parts = [];
|
|
@@ -65,7 +66,7 @@ export var InteractiveContent = function (_a) {
|
|
|
65
66
|
};
|
|
66
67
|
var TextBlock = function (_a) {
|
|
67
68
|
var text = _a.text;
|
|
68
|
-
return
|
|
69
|
+
return _jsx(MarkdownMessage, { text: text });
|
|
69
70
|
};
|
|
70
71
|
var QuickOptions = function (_a) {
|
|
71
72
|
var options = _a.options, primaryColor = _a.primaryColor, isActionable = _a.isActionable, onQuickAction = _a.onQuickAction;
|
|
@@ -202,4 +203,4 @@ var FileBlock = function (_a) {
|
|
|
202
203
|
var fileData = _a.fileData;
|
|
203
204
|
return (_jsxs("div", { style: { display: 'flex', alignItems: 'center', gap: 8, cursor: 'pointer' }, onClick: function () { return window.open(fileData.url, '_blank'); }, children: [getFileIcon(fileData.type), _jsx("span", { className: "text-xs text-muted-foreground", children: fileData.name })] }));
|
|
204
205
|
};
|
|
205
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSW50ZXJhY3RpdmVDb250ZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbXBvbmVudHMvSW50ZXJhY3RpdmVDb250ZW50LnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7QUFBQSxPQUFPLEtBQUssTUFBTSxPQUFPLENBQUM7QUFFMUIsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxDQUFDLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFFakMsMEZBQTBGO0FBQzFGLE1BQU0sQ0FBQyxJQUFNLGFBQWEsR0FBRyxVQUFDLEtBQWE7SUFDekMsSUFBTSxLQUFLLEdBQXNCLEVBQUUsQ0FBQztJQUNwQyxJQUFNLFNBQVMsR0FBRyxnQkFBZ0IsQ0FBQztJQUNuQyxJQUFJLFNBQVMsR0FBRyxDQUFDLENBQUM7SUFDbEIsSUFBSSxLQUFLLENBQUM7SUFDVixJQUFJLEdBQUcsR0FBRyxDQUFDLENBQUM7SUFFWixPQUFPLENBQUMsS0FBSyxHQUFHLFNBQVMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsS0FBSyxJQUFJLEVBQUUsQ0FBQztRQUNoRCw0QkFBNEI7UUFDNUIsSUFBSSxLQUFLLENBQUMsS0FBSyxHQUFHLFNBQVMsRUFBRSxDQUFDO1lBQzVCLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxTQUFTLEVBQUUsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDbEQsQ0FBQztRQUVELGdCQUFnQjtRQUNoQixLQUFLLENBQUMsSUFBSSxDQUNSLGlCQUFvQixLQUFLLEVBQUUsRUFBRSxVQUFVLEVBQUUsR0FBRyxFQUFFLFlBQzNDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFERSxHQUFHLEVBQUUsQ0FFVCxDQUNWLENBQUM7UUFFRixTQUFTLEdBQUcsS0FBSyxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMs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RUFBRSxFQUFFLE9BQU8sRUFBRSxjQUFNLE9BQUEsTUFBTSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFLFFBQVEsQ0FBQyxFQUFwQyxDQUFvQyxZQUNuSSxjQUFLLEdBQUcsRUFBRSxTQUFTLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBQyxPQUFPLEVBQUMsS0FBSyxFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUUsRUFBRSxFQUFFLFlBQVksRUFBRSxDQUFDLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxHQUFJLEdBQzFHLENBQ1AsQ0FBQztBQUNKLENBQUMsQ0FBQztBQUVGLElBQU0sU0FBUyxHQUFxQyxVQUFDLEVBQVk7UUFBVixRQUFRLGNBQUE7SUFDN0QsT0FBTyxDQUNMLGVBQUssS0FBSyxFQUFFLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxFQUFFLE9BQU8sRUFBRSxjQUFNLE9BQUEsTUFBTSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxFQUFFLFFBQVEsQ0FBQyxFQUFuQyxDQUFtQyxhQUNqSSxXQUFXLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxFQUMzQixlQUFNLFNBQVMsRUFBQywrQkFBK0IsWUFBRSxRQUFRLENBQUMsSUFBSSxHQUFRLElBQ2xFLENBQ1AsQ0FBQztBQUNKLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBDaGF0Q29udGVudEJsb2NrLCBEeW5hbWljQ2hhdEl0ZW0sIEZpbGVJdGVtLCBTY2hlZHVsZUl0ZW0gfSBmcm9tICcuLi90eXBlcyc7XG5pbXBvcnQgeyBnZXRGaWxlSWNvbiB9IGZyb20gJy4vRmlsZVR5cGVJY29uJztcbmltcG9ydCB7IFggfSBmcm9tICdsdWNpZGUtcmVhY3QnO1xuXG4vLyBVdGlsaXR5IGZ1bmN0aW9uIHRvIHBhcnNlIG1hcmtkb3duIGJvbGQgc3ludGF4ICgqKnRleHQqKikgYW5kIGNvbnZlcnQgdG8gUmVhY3QgZWxlbWVudHNcbmV4cG9ydCBjb25zdCBwYXJzZUJvbGRUZXh0ID0gKGlucHV0OiBzdHJpbmcpOiBSZWFjdC5SZWFjdE5vZGVbXSA9PiB7XG4gIGNvbnN0IHBhcnRzOiBSZWFjdC5SZWFjdE5vZGVbXSA9IFtdO1xuICBjb25zdCBib2xkUmVnZXggPSAvXFwqXFwqKC4qPylcXCpcXCovZztcbiAgbGV0IGxhc3RJbmRleCA9IDA7XG4gIGxldCBtYXRjaDtcbiAgbGV0IGtleSA9IDA7XG5cbiAgd2hpbGUgKChtYXRjaCA9IGJvbGRSZWdleC5leGVjKGlucHV0KSkgIT09IG51bGwpIHtcbiAgICAvLyBBZGQgdGV4dCBiZWZvcmUgdGhlIG1hdGNoXG4gICAgaWYgKG1hdGNoLmluZGV4ID4gbGFzdEluZGV4KSB7XG4gICAgICBwYXJ0cy5wdXNoKGlucHV0LnNsaWNlKGxhc3RJbmRleCwgbWF0Y2guaW5kZXgpKTtcbiAgICB9XG4gICAgXG4gICAgLy8gQWRkIGJvbGQgdGV4dFxuICAgIHBhcnRzLnB1c2goXG4gICAgICA8c3Ryb25nIGtleT17a2V5Kyt9IHN0eWxlPXt7IGZvbnRXZWlnaHQ6IDcwMCB9fT5cbiAgICAgICAge21hdGNoWzFdfVxuICAgICAgPC9zdHJvbmc+XG4gICAgKTtcbiAgICBcbiAgICBsYXN0SW5kZXggPSBtYXRjaC5pbmRleCArIG1hdGNoWzBdLmxlbmd0aDtcbiAgfVxuXG4gIC8vIEFkZCByZW1haW5pbmcgdGV4dCBhZnRlciB0aGUgbGFzdCBtYXRjaFxuICBpZiAobGFzdEluZGV4IDwgaW5wdXQubGVuZ3RoKSB7XG4gICAgcGFydHMucHVzaChpbnB1dC5zbGljZShsYXN0SW5kZXgpKTtcbiAgfVxuXG4gIC8vIElmIG5vIG1hdGNoZXMgZm91bmQsIHJldHVybiB0aGUgb3JpZ2luYWwgdGV4dFxuICByZXR1cm4gcGFydHMubGVuZ3RoID4gMCA/IHBhcnRzIDogW2lucHV0XTtcbn07XG5cbmludGVyZmFjZSBJbnRlcmFjdGl2ZUNvbnRlbnRQcm9wcyB7XG4gIGJsb2NrczogQ2hhdENvbnRlbnRCbG9ja1tdO1xuICBwcmltYXJ5Q29sb3I6IHN0cmluZztcbiAgdGV4dENvbG9yOiBzdHJpbmc7XG4gIGlzQWN0aW9uYWJsZTogYm9vbGVhbjtcbiAgb25RdWlja0FjdGlvbj86ICh0ZXh0OiBzdHJpbmcpID0+IHZvaWQ7XG4gIG9uU2NoZWR1bGVDb25maXJtPzogKHNjaGVkdWxlOiBTY2hlZHVsZUl0ZW0pID0+IHZvaWQ7XG59XG5cbmV4cG9ydCBjb25zdCBJbnRlcmFjdGl2ZUNvbnRlbnQ6IFJlYWN0LkZDPEludGVyYWN0aXZlQ29udGVudFByb3BzPiA9ICh7XG4gIGJsb2NrcyxcbiAgcHJpbWFyeUNvbG9yLFxuICB0ZXh0Q29sb3IsXG4gIGlzQWN0aW9uYWJsZSxcbiAgb25RdWlja0FjdGlvbixcbiAgb25TY2hlZHVsZUNvbmZpcm0sXG59KSA9PiB7XG4gIGlmICghYmxvY2tzLmxlbmd0aCkgcmV0dXJuIG51bGw7XG5cbiAgcmV0dXJuIChcbiAgICA8ZGl2IHN0eWxlPXt7IGRpc3BsYXk6ICdmbGV4JywgZmxleERpcmVjdGlvbjogJ2NvbHVtbicsIGdhcDogMTIgfX0+XG4gICAgICB7YmxvY2tzLm1hcCgoYmxvY2ssIGluZGV4KSA9PiB7XG4gICAgICAgIFxuICAgICAgICBzd2l0Y2ggKGJsb2NrLmtpbmQpIHtcbiAgICAgICAgICBjYXNlICdmaWxlJzpcbiAgICAgICAgICAgIGNvbnN0IGZpbGVEYXRhID0gYmxvY2suZGF0YTtcbiAgICAgICAgICAgIGlmIChmaWxlRGF0YSAmJiBmaWxlRGF0YS50eXBlICYmIGZpbGVEYXRhLnR5cGUuc3RhcnRzV2l0aCgnaW1hZ2UnKSkge1xuICAgICAgICAgICAgICByZXR1cm4gPEltYWdlQmxvY2sga2V5PXtpbmRleH0gaW1hZ2VEYXRhPXtmaWxlRGF0YX0gLz47XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICByZXR1cm4gPEZpbGVCbG9jayBrZXk9e2luZGV4fSBmaWxlRGF0YT17ZmlsZURhdGF9IC8+O1xuICAgICAgICAgICAgfVxuICAgICAgICAgIGNhc2UgJ3RleHQnOlxuICAgICAgICAgICAgcmV0dXJuIDxUZXh0QmxvY2sga2V5PXtpbmRleH0gdGV4dD17YmxvY2sudGV4dH0gLz47XG4gICAgICAgICAgY2FzZSAnb3B0aW9ucyc6XG4gICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICA8UXVpY2tPcHRpb25zXG4gICAgICAgICAgICAgICAga2V5PXtpbmRleH1cbiAgICAgICAgICAgICAgICBvcHRpb25zPXtibG9jay5vcHRpb25zfVxuICAgICAgICAgICAgICAgIHByaW1hcnlDb2xvcj17cHJpbWFyeUNvbG9yfVxuICAgICAgICAgICAgICAgIGlzQWN0aW9uYWJsZT17aXNBY3Rpb25hYmxlfVxuICAgICAgICAgICAgICAgIG9uUXVpY2tBY3Rpb249e29uUXVpY2tBY3Rpb259XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICApO1xuICAgICAgICAgIGNhc2UgJ2l0ZW1zJzpcbiAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgIDxEeW5hbWljSXRlbXNMaXN0XG4gICAgICAgICAgICAgICAga2V5PXtpbmRleH1cbiAgICAgICAgICAgICAgICBpdGVtcz17YmxvY2suaXRlbXN9XG4gICAgICAgICAgICAgICAgcHJpbWFyeUNvbG9yPXtwcmltYXJ5Q29sb3J9XG4gICAgICAgICAgICAgICAgdGV4dENvbG9yPXt0ZXh0Q29sb3J9XG4gICAgICAgICAgICAgICAgaXNBY3Rpb25hYmxlPXtpc0FjdGlvbmFibGV9XG4gICAgICAgICAgICAgICAgb25TZWxlY3Q9e29uUXVpY2tBY3Rpb259XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICApO1xuICAgICAgICAgIGNhc2UgJ3NjaGVkdWxlJzpcbiAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgIDxTY2hlZHVsZUJsb2NrXG4gICAgICAgICAgICAgICAga2V5PXtpbmRleH1cbiAgICAgICAgICAgICAgICBzY2hlZHVsZT17YmxvY2suc2NoZWR1bGV9XG4gICAgICAgICAgICAgICAgcHJpbWFyeUNvbG9yPXtwcmltYXJ5Q29sb3J9XG4gICAgICAgICAgICAgICAgdGV4dENvbG9yPXt0ZXh0Q29sb3J9XG4gICAgICAgICAgICAgICAgaXNBY3Rpb25hYmxlPXtpc0FjdGlvbmFibGV9XG4gICAgICAgICAgICAgICAgb25RdWlja0FjdGlvbj17b25RdWlja0FjdGlvbn1cbiAgICAgICAgICAgICAgICBvbkNvbmZpcm09e29uU2NoZWR1bGVDb25maXJtfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgKTtcbiAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cbiAgICAgIH0pfVxuICAgIDwvZGl2PlxuICApO1xufTtcblxuY29uc3QgVGV4dEJsb2NrOiBSZWFjdC5GQzx7IHRleHQ6IHN0cmluZyB9PiA9ICh7IHRleHQgfSkgPT4ge1xuICByZXR1cm4gKFxuICAgIDxkaXYgc3R5bGU9e3sgd2hpdGVTcGFjZTogJ3ByZS13cmFwJywgbGluZUhlaWdodDogMS41IH19PlxuICAgICAge3BhcnNlQm9sZFRleHQodGV4dCl9XG4gICAgPC9kaXY+XG4gICk7XG59O1xuXG5pbnRlcmZhY2UgUXVpY2tPcHRpb25zUHJvcHMge1xuICBvcHRpb25zOiBzdHJpbmdbXTtcbiAgcHJpbWFyeUNvbG9yOiBzdHJpbmc7XG4gIGlzQWN0aW9uYWJsZTogYm9vbGVhbjtcbiAgb25RdWlja0FjdGlvbj86ICh0ZXh0OiBzdHJpbmcpID0+IHZvaWQ7XG59XG5cbmNvbnN0IFF1aWNrT3B0aW9uczogUmVhY3QuRkM8UXVpY2tPcHRpb25zUHJvcHM+ID0gKHtcbiAgb3B0aW9ucyxcbiAgcHJpbWFyeUNvbG9yLFxuICBpc0FjdGlvbmFibGUsXG4gIG9uUXVpY2tBY3Rpb24sXG59KSA9PiB7XG4gIGNvbnN0IFt2aXNpYmxlT3B0aW9ucywgc2V0VmlzaWJsZU9wdGlvbnNdID0gUmVhY3QudXNlU3RhdGUob3B0aW9ucyk7XG5cbiAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcbiAgICBzZXRWaXNpYmxlT3B0aW9ucyhvcHRpb25zKTtcbiAgfSwgW29wdGlvbnNdKTtcblxuICBpZiAoIXZpc2libGVPcHRpb25zLmxlbmd0aCkgcmV0dXJuIG51bGw7XG5cbiAgcmV0dXJuIChcbiAgICA8ZGl2XG4gICAgICBzdHlsZT17e1xuICAgICAgICBkaXNwbGF5OiAnZmxleCcsXG4gICAgICAgIGdhcDogOCxcbiAgICAgICAgZmxleFdyYXA6ICd3cmFwJyxcbiAgICAgIH19XG4gICAgPlxuICAgICAge3Zpc2libGVPcHRpb25zLm1hcCgob3B0aW9uLCBpZHgpID0+IChcbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgIGtleT17YCR7b3B0aW9ufS0ke2lkeH1gfVxuICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgIGRpc2FibGVkPXshaXNBY3Rpb25hYmxlfVxuICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICAgIGlmICghaXNBY3Rpb25hYmxlKSByZXR1cm47XG4gICAgICAgICAgICBzZXRWaXNpYmxlT3B0aW9ucyhbXSk7XG4gICAgICAgICAgICBvblF1aWNrQWN0aW9uPy4ob3B0aW9uKTtcbiAgICAgICAgICB9fVxuICAgICAgICAgIHN0eWxlPXt7XG4gICAgICAgICAgICBib3JkZXJSYWRpdXM6IDk5LFxuICAgICAgICAgICAgYm9yZGVyOiAnbm9uZScsXG4gICAgICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6IHByaW1hcnlDb2xvcixcbiAgICAgICAgICAgIHBhZGRpbmc6ICcxMnB4IDEycHgnLFxuICAgICAgICAgICAgY3Vyc29yOiBpc0FjdGlvbmFibGUgPyAncG9pbnRlcicgOiAnbm90LWFsbG93ZWQnLFxuICAgICAgICAgICAgZm9udFdlaWdodDogNTAwLFxuICAgICAgICAgICAgZm9udFNpemU6IDE0LFxuICAgICAgICAgICAgY29sb3I6ICcjZmZmZmZmJyxcbiAgICAgICAgICAgIHdoaXRlU3BhY2U6ICdub3dyYXAnLFxuICAgICAgICAgICAgdHJhbnNpdGlvbjogJ3RyYW5zZm9ybSAwLjEycyBlYXNlLCBvcGFjaXR5IDAuMTJzIGVhc2UnLFxuICAgICAgICAgICAgb3BhY2l0eTogaXNBY3Rpb25hYmxlID8gMSA6IDAuNixcbiAgICAgICAgICAgIGJveFNoYWRvdzogJzAgMnB4IDZweCByZ2JhKDAsMCwwLDAuMTIpJyxcbiAgICAgICAgICB9fVxuICAgICAgICA+XG4gICAgICAgICAge29wdGlvbn1cbiAgICAgICAgPC9idXR0b24+XG4gICAgICApKX1cbiAgICA8L2Rpdj5cbiAgKTtcbn07XG5cbmludGVyZmFjZSBEeW5hbWljSXRlbXNMaXN0UHJvcHMge1xuICBpdGVtczogRHluYW1pY0NoYXRJdGVtW107XG4gIHByaW1hcnlDb2xvcjogc3RyaW5nO1xuICB0ZXh0Q29sb3I6IHN0cmluZztcbiAgaXNBY3Rpb25hYmxlOiBib29sZWFuO1xuICBvblNlbGVjdD86ICh0ZXh0OiBzdHJpbmcpID0+IHZvaWQ7XG59XG5cbmNvbnN0IER5bmFtaWNJdGVtc0xpc3Q6IFJlYWN0LkZDPER5bmFtaWNJdGVtc0xpc3RQcm9wcz4gPSAoe1xuICBpdGVtcyxcbiAgcHJpbWFyeUNvbG9yLFxuICB0ZXh0Q29sb3IsXG4gIGlzQWN0aW9uYWJsZSxcbiAgb25TZWxlY3QsXG59KSA9PiB7XG4gIHJldHVybiAoXG4gICAgPGRpdiBzdHlsZT17eyBkaXNwbGF5OiAnZmxleCcsIGZsZXhEaXJlY3Rpb246ICdjb2x1bW4nLCBnYXA6IDEwIH19PlxuICAgICAge2l0ZW1zLm1hcCgoaXRlbSkgPT4gKFxuICAgICAgICA8RHluYW1pY0l0ZW1DYXJkXG4gICAgICAgICAga2V5PXtpdGVtLmlkfVxuICAgICAgICAgIGl0ZW09e2l0ZW19XG4gICAgICAgICAgcHJpbWFyeUNvbG9yPXtwcmltYXJ5Q29sb3J9XG4gICAgICAgICAgdGV4dENvbG9yPXt0ZXh0Q29sb3J9XG4gICAgICAgICAgaXNBY3Rpb25hYmxlPXtpc0FjdGlvbmFibGV9XG4gICAgICAgICAgb25TZWxlY3Q9eygpID0+IGlzQWN0aW9uYWJsZSAmJiBvblNlbGVjdD8uKGl0ZW0ubmFtZSl9XG4gICAgICAgIC8+XG4gICAgICApKX1cbiAgICA8L2Rpdj5cbiAgKTtcbn07XG5cbmludGVyZmFjZSBEeW5hbWljSXRlbUNhcmRQcm9wcyB7XG4gIGl0ZW06IER5bmFtaWNDaGF0SXRlbTtcbiAgcHJpbWFyeUNvbG9yOiBzdHJpbmc7XG4gIHRleHRDb2xvcjogc3RyaW5nO1xuICBpc0FjdGlvbmFibGU6IGJvb2xlYW47XG4gIG9uU2VsZWN0PzogKCkgPT4gdm9pZDtcbiAgb25TbG90U2VsZWN0PzogKHNsb3Q6IHN0cmluZykgPT4gdm9pZDtcbiAgb25SZW1vdmU/OiAoKSA9PiB2b2lkO1xufVxuXG5jb25zdCBEeW5hbWljSXRlbUNhcmQ6IFJlYWN0LkZDPER5bmFtaWNJdGVtQ2FyZFByb3BzPiA9ICh7XG4gIGl0ZW0sXG4gIHByaW1hcnlDb2xvcixcbiAgdGV4dENvbG9yLFxuICBpc0FjdGlvbmFibGUsXG4gIG9uU2VsZWN0LFxuICBvblNsb3RTZWxlY3QsXG4gIG9uUmVtb3ZlLFxufSkgPT4ge1xuICBjb25zdCBbZXhwYW5kZWQsIHNldEV4cGFuZGVkXSA9IFJlYWN0LnVzZVN0YXRlKGZhbHNlKTtcbiAgY29uc3QgaGFzU2xvdHMgPSBBcnJheS5pc0FycmF5KGl0ZW0uc2xvdHMpICYmIGl0ZW0uc2xvdHMubGVuZ3RoID4gMDtcblxuICBjb25zdCBoYW5kbGVDYXJkQ2xpY2sgPSAoKSA9PiB7XG4gICAgc2V0RXhwYW5kZWQoKHByZXYpID0+ICFwcmV2KTtcbiAgICBvblNlbGVjdD8uKCk7XG4gIH07XG5cbiAgcmV0dXJuIChcbiAgICA8ZGl2XG4gICAgICBvbkNsaWNrPXtoYW5kbGVDYXJkQ2xpY2t9XG4gICAgICBzdHlsZT17e1xuICAgICAgICBkaXNwbGF5OiAnZmxleCcsXG4gICAgICAgIGdhcDogMTIsXG4gICAgICAgIHBhZGRpbmc6IDEyLFxuICAgICAgICBib3JkZXJSYWRpdXM6IDEyLFxuICAgICAgICBib3JkZXI6ICcxcHggc29saWQgI2U1ZTdlYicsXG4gICAgICAgIGJhY2tncm91bmRDb2xvcjogJyNmOGZhZmMnLFxuICAgICAgICBjdXJzb3I6IGlzQWN0aW9uYWJsZSA/ICdwb2ludGVyJyA6ICdkZWZhdWx0JyxcbiAgICAgICAgYm94U2hhZG93OiAnMCAxcHggMnB4IHJnYmEoMCwwLDAsMC4wNSknLFxuICAgICAgfX1cbiAgICA+XG4gICAgICB7aXRlbS5pbWFnZSAmJiAoXG4gICAgICAgIDxpbWdcbiAgICAgICAgICBzcmM9e2l0ZW0uaW1hZ2V9XG4gICAgICAgICAgYWx0PXtpdGVtLm5hbWV9XG4gICAgICAgICAgc3R5bGU9e3sgd2lkdGg6IDY0LCBoZWlnaHQ6IDY0LCBib3JkZXJSYWRpdXM6IDgsIG9iamVjdEZpdDogJ2NvdmVyJyB9fVxuICAgICAgICAvPlxuICAgICAgKX1cbiAgICAgIDxkaXYgc3R5bGU9e3sgZmxleDogMSwgbWluV2lkdGg6IDAsIGRpc3BsYXk6ICdmbGV4JywgZmxleERpcmVjdGlvbjogJ2NvbHVtbicsIGdhcDogNCB9fT5cbiAgICAgICAgPGRpdiBzdHlsZT17eyBkaXNwbGF5OiAnZmxleCcsIGFsaWduSXRlbXM6ICdmbGV4LXN0YXJ0JywgZ2FwOiA4IH19PlxuICAgICAgICAgIDxkaXYgc3R5bGU9e3sgZm9udFdlaWdodDogNzAwLCBjb2xvcjogdGV4dENvbG9yLCBmb250U2l6ZTogMTUsIGZsZXg6IDEgfX0+XG4gICAgICAgICAgICB7aXRlbS5uYW1lfVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIHtvblJlbW92ZSAmJiAoXG4gICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICBvbkNsaWNrPXsoZSkgPT4ge1xuICAgICAgICAgICAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgICAgICAgICAgb25SZW1vdmUoKTtcbiAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgc3R5bGU9e3tcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAnI2YxZjVmOScsXG4gICAgICAgICAgICAgICAgYm9yZGVyUmFkaXVzOiA5OTk5LFxuICAgICAgICAgICAgICAgIGJvcmRlcjogJzFweCBzb2xpZCAjZTJlOGYwJyxcbiAgICAgICAgICAgICAgICB3aWR0aDogMjgsXG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAyOCxcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiAnZmxleCcsXG4gICAgICAgICAgICAgICAgYWxpZ25JdGVtczogJ2NlbnRlcicsXG4gICAgICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ6ICdjZW50ZXInLFxuICAgICAgICAgICAgICAgIGN1cnNvcjogJ3BvaW50ZXInLFxuICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8WCBzaXplPXsxNn0gLz5cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICl9XG4gICAgICAgIDwvZGl2PlxuICAgICAgICB7aXRlbS5jYXRlZ29yeSAmJiAoXG4gICAgICAgICAgPGRpdiBzdHlsZT17eyBjb2xvcjogJyM2YjcyODAnLCBmb250U2l6ZTogMTMsIGZvbnRXZWlnaHQ6IDUwMCB9fT5cbiAgICAgICAgICAgIHtpdGVtLmNhdGVnb3J5fVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICApfVxuICAgICAgICB7aXRlbS5kZXNjcmlwdGlvbiAmJiAoXG4gICAgICAgICAgPGRpdlxuICAgICAgICAgICAgc3R5bGU9e3tcbiAgICAgICAgICAgICAgY29sb3I6ICcjMzc0MTUxJyxcbiAgICAgICAgICAgICAgZm9udFNpemU6IDEzLFxuICAgICAgICAgICAgICBsaW5lSGVpZ2h0OiAxLjUsXG4gICAgICAgICAgICAgIGRpc3BsYXk6ICctd2Via2l0LWJveCcsXG4gICAgICAgICAgICAgIFdlYmtpdExpbmVDbGFtcDogZXhwYW5kZWQgPyAndW5zZXQnIDogMyxcbiAgICAgICAgICAgICAgV2Via2l0Qm94T3JpZW50OiAndmVydGljYWwnLFxuICAgICAgICAgICAgICBvdmVyZmxvdzogZXhwYW5kZWQgPyAndmlzaWJsZScgOiAnaGlkZGVuJyxcbiAgICAgICAgICAgIH19XG4gICAgICAgICAgPlxuICAgICAgICAgICAge2l0ZW0uZGVzY3JpcHRpb259XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICl9XG4gICAgICAgIHtoYXNTbG90cyAmJiAoXG4gICAgICAgICAgPGRpdiBzdHlsZT17eyBkaXNwbGF5OiAnZmxleCcsIGdhcDogOCwgZmxleFdyYXA6ICd3cmFwJywgbWFyZ2luVG9wOiA0IH19PlxuICAgICAgICAgICAge2l0ZW0uc2xvdHMhLm1hcCgoc2xvdCkgPT4ge1xuICAgICAgICAgICAgICBjb25zdCBpc1NlbGVjdGVkID0gaXRlbS5zZWxlY3RlZFNsb3QgPT09IHNsb3Q7XG4gICAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAga2V5PXtzbG90fVxuICAgICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICBkaXNhYmxlZD17IWlzQWN0aW9uYWJsZX1cbiAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eyhlKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgICAgICAgICAgICAgIGlmICghaXNBY3Rpb25hYmxlKSByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgIG9uU2xvdFNlbGVjdD8uKHNsb3QpO1xuICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgIHN0eWxlPXt7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlclJhZGl1czogOTk5OSxcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyOiBgMXB4IHNvbGlkICR7aXNTZWxlY3RlZCA/IHByaW1hcnlDb2xvciA6ICcjZTVlN2ViJ31gLFxuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6IGlzU2VsZWN0ZWQgPyBwcmltYXJ5Q29sb3IgOiAnI2ZmZmZmZicsXG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiBpc1NlbGVjdGVkID8gJyNmZmZmZmYnIDogJyMxMTE4MjcnLFxuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiAnNnB4IDEycHgnLFxuICAgICAgICAgICAgICAgICAgICBjdXJzb3I6IGlzQWN0aW9uYWJsZSA/ICdwb2ludGVyJyA6ICdub3QtYWxsb3dlZCcsXG4gICAgICAgICAgICAgICAgICAgIGZvbnRTaXplOiAxMyxcbiAgICAgICAgICAgICAgICAgICAgZm9udFdlaWdodDogNjAwLFxuICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICB7c2xvdH1cbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH0pfVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICApfVxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICk7XG59O1xuXG5pbnRlcmZhY2UgU2NoZWR1bGVCbG9ja1Byb3BzIHtcbiAgc2NoZWR1bGU6IFNjaGVkdWxlSXRlbTtcbiAgcHJpbWFyeUNvbG9yOiBzdHJpbmc7XG4gIHRleHRDb2xvcjogc3RyaW5nO1xuICBpc0FjdGlvbmFibGU6IGJvb2xlYW47XG4gIG9uUXVpY2tBY3Rpb24/OiAodGV4dDogc3RyaW5nKSA9PiB2b2lkO1xuICBvbkNvbmZpcm0/OiAoc2NoZWR1bGU6IFNjaGVkdWxlSXRlbSkgPT4gdm9pZDtcbn1cblxuY29uc3QgU2NoZWR1bGVCbG9jazogUmVhY3QuRkM8U2NoZWR1bGVCbG9ja1Byb3BzPiA9ICh7XG4gIHNjaGVkdWxlLFxuICBwcmltYXJ5Q29sb3IsXG4gIHRleHRDb2xvcixcbiAgaXNBY3Rpb25hYmxlLFxuICBvblF1aWNrQWN0aW9uLFxuICBvbkNvbmZpcm0sXG59KSA9PiB7XG4gIGNvbnN0IFtjdXJyZW50U2NoZWR1bGUsIHNldEN1cnJlbnRTY2hlZHVsZV0gPSBSZWFjdC51c2VTdGF0ZTxTY2hlZHVsZUl0ZW0+KHNjaGVkdWxlKTtcblxuICBSZWFjdC51c2VFZmZlY3QoKCkgPT4ge1xuICAgIHNldEN1cnJlbnRTY2hlZHVsZShzY2hlZHVsZSk7XG4gIH0sIFtzY2hlZHVsZV0pO1xuXG4gIGNvbnN0IHVwZGF0ZVJlc3RhdXJhbnQgPSAoaWQ6IHN0cmluZywgdXBkYXRlcjogKGl0ZW06IER5bmFtaWNDaGF0SXRlbSkgPT4gRHluYW1pY0NoYXRJdGVtKSA9PiB7XG4gICAgc2V0Q3VycmVudFNjaGVkdWxlKChwcmV2KSA9PiAoe1xuICAgICAgLi4ucHJldixcbiAgICAgIHJlc3RhdXJhbnRzOiBwcmV2LnJlc3RhdXJhbnRzLm1hcCgocmVzdGF1cmFudCkgPT5cbiAgICAgICAgcmVzdGF1cmFudC5pZCA9PT0gaWQgPyB1cGRhdGVyKHJlc3RhdXJhbnQpIDogcmVzdGF1cmFudFxuICAgICAgKSxcbiAgICB9KSk7XG4gIH07XG5cbiAgY29uc3QgcmVtb3ZlUmVzdGF1cmFudCA9IChpZDogc3RyaW5nKSA9PiB7XG4gICAgc2V0Q3VycmVudFNjaGVkdWxlKChwcmV2KSA9PiAoe1xuICAgICAgLi4ucHJldixcbiAgICAgIHJlc3RhdXJhbnRzOiBwcmV2LnJlc3RhdXJhbnRzLmZpbHRlcigocmVzdGF1cmFudCkgPT4gcmVzdGF1cmFudC5pZCAhPT0gaWQpLFxuICAgIH0pKTtcbiAgfTtcblxuICByZXR1cm4gKFxuICAgIDxkaXYgc3R5bGU9e3sgZGlzcGxheTogJ2ZsZXgnLCBmbGV4RGlyZWN0aW9uOiAnY29sdW1uJywgZ2FwOiAxMCB9fT5cbiAgICAgIDxkaXZcbiAgICAgICAgc3R5bGU9e3tcbiAgICAgICAgICBwYWRkaW5nOiAxMixcbiAgICAgICAgICBib3JkZXJSYWRpdXM6IDEyLFxuICAgICAgICAgIGJhY2tncm91bmRDb2xvcjogJyNmOGZhZmMnLFxuICAgICAgICAgIGJvcmRlcjogJzFweCBzb2xpZCAjZTVlN2ViJyxcbiAgICAgICAgICBmb250V2VpZ2h0OiA3MDAsXG4gICAgICAgICAgY29sb3I6IHRleHRDb2xvcixcbiAgICAgICAgfX1cbiAgICAgID5cbiAgICAgICAge2N1cnJlbnRTY2hlZHVsZS50aXRsZSB8fCAnU2NoZWR1bGUnfVxuICAgICAgPC9kaXY+XG5cbiAgICAgIDxkaXYgc3R5bGU9e3sgZGlzcGxheTogJ2ZsZXgnLCBmbGV4RGlyZWN0aW9uOiAnY29sdW1uJywgZ2FwOiAxMCB9fT5cbiAgICAgICAge2N1cnJlbnRTY2hlZHVsZS5yZXN0YXVyYW50cy5tYXAoKHJlc3RhdXJhbnQpID0+IChcbiAgICAgICAgICA8RHluYW1pY0l0ZW1DYXJkXG4gICAgICAgICAgICBrZXk9e3Jlc3RhdXJhbnQuaWR9XG4gICAgICAgICAgICBpdGVtPXtyZXN0YXVyYW50fVxuICAgICAgICAgICAgcHJpbWFyeUNvbG9yPXtwcmltYXJ5Q29sb3J9XG4gICAgICAgICAgICB0ZXh0Q29sb3I9e3RleHRDb2xvcn1cbiAgICAgICAgICAgIGlzQWN0aW9uYWJsZT17aXNBY3Rpb25hYmxlfVxuICAgICAgICAgICAgb25TZWxlY3Q9eygpID0+IGlzQWN0aW9uYWJsZSAmJiBvblF1aWNrQWN0aW9uPy4ocmVzdGF1cmFudC5uYW1lKX1cbiAgICAgICAgICAgIG9uU2xvdFNlbGVjdD17KHNsb3QpID0+XG4gICAgICAgICAgICAgIHVwZGF0ZVJlc3RhdXJhbnQocmVzdGF1cmFudC5pZCwgKGl0ZW0pID0+ICh7IC4uLml0ZW0sIHNlbGVjdGVkU2xvdDogc2xvdCB9KSlcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIG9uUmVtb3ZlPXtpc0FjdGlvbmFibGUgPyAoKSA9PiByZW1vdmVSZXN0YXVyYW50KHJlc3RhdXJhbnQuaWQpIDogdW5kZWZpbmVkfVxuICAgICAgICAgIC8+XG4gICAgICAgICkpfVxuICAgICAgPC9kaXY+XG5cbiAgICAgIHtpc0FjdGlvbmFibGUgJiYgY3VycmVudFNjaGVkdWxlLnJlc3RhdXJhbnRzLmxlbmd0aCA+IDAgJiYgKFxuICAgICAgICA8ZGl2IHN0eWxlPXt7IGRpc3BsYXk6ICdmbGV4JywganVzdGlmeUNvbnRlbnQ6ICdmbGV4LXN0YXJ0JyB9fT5cbiAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IG9uQ29uZmlybT8uKGN1cnJlbnRTY2hlZHVsZSl9XG4gICAgICAgICAgICBzdHlsZT17e1xuICAgICAgICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6IHByaW1hcnlDb2xvcixcbiAgICAgICAgICAgICAgY29sb3I6ICcjZmZmZmZmJyxcbiAgICAgICAgICAgICAgYm9yZGVyOiAnbm9uZScsXG4gICAgICAgICAgICAgIGJvcmRlclJhZGl1czogMTAsXG4gICAgICAgICAgICAgIHBhZGRpbmc6ICcxMHB4IDE2cHgnLFxuICAgICAgICAgICAgICBmb250V2VpZ2h0OiA3MDAsXG4gICAgICAgICAgICAgIGN1cnNvcjogJ3BvaW50ZXInLFxuICAgICAgICAgICAgICBib3hTaGFkb3c6ICcwIDFweCA0cHggcmdiYSgwLDAsMCwwLjEyKScsXG4gICAgICAgICAgICB9fVxuICAgICAgICAgID5cbiAgICAgICAgICAgIENvbmZpcm1cbiAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICApfVxuICAgIDwvZGl2PlxuICApO1xufTtcblxuY29uc3QgSW1hZ2VCbG9jazogUmVhY3QuRkM8eyBpbWFnZURhdGE6IEZpbGVJdGVtIH0+ID0gKHsgaW1hZ2VEYXRhIH0pID0+IHtcbiAgcmV0dXJuIChcbiAgICA8ZGl2IHN0eWxlPXt7IGRpc3BsYXk6ICdmbGV4JywgYWxpZ25JdGVtczogJ2NlbnRlcicsIGdhcDogOCwgY3Vyc29yOiAncG9pbnRlcicgfX0gb25DbGljaz17KCkgPT4gd2luZG93Lm9wZW4oaW1hZ2VEYXRhLnVybCwgJ19ibGFuaycpfT5cbiAgICAgIDxpbWcgc3JjPXtpbWFnZURhdGEudXJsfSBhbHQ9XCJJbWFnZVwiIHN0eWxlPXt7IHdpZHRoOiA4MCwgaGVpZ2h0OiA2NCwgYm9yZGVyUmFkaXVzOiA4LCBvYmplY3RGaXQ6ICdjb3ZlcicgfX0gLz5cbiAgICA8L2Rpdj5cbiAgKTtcbn07XG5cbmNvbnN0IEZpbGVCbG9jazogUmVhY3QuRkM8eyBmaWxlRGF0YTogRmlsZUl0ZW0gfT4gPSAoeyBmaWxlRGF0YSB9KSA9PiB7XG4gIHJldHVybiAoXG4gICAgPGRpdiBzdHlsZT17eyBkaXNwbGF5OiAnZmxleCcsIGFsaWduSXRlbXM6ICdjZW50ZXInLCBnYXA6IDgsIGN1cnNvcjogJ3BvaW50ZXInIH19IG9uQ2xpY2s9eygpID0+IHdpbmRvdy5vcGVuKGZpbGVEYXRhLnVybCwgJ19ibGFuaycpfT5cbiAgICAgIHtnZXRGaWxlSWNvbihmaWxlRGF0YS50eXBlKX1cbiAgICAgIDxzcGFuIGNsYXNzTmFtZT1cInRleHQteHMgdGV4dC1tdXRlZC1mb3JlZ3JvdW5kXCI+e2ZpbGVEYXRhLm5hbWV9PC9zcGFuPlxuICAgIDwvZGl2PlxuICApO1xufTsiXX0=
|
|
206
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSW50ZXJhY3RpdmVDb250ZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbXBvbmVudHMvSW50ZXJhY3RpdmVDb250ZW50LnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7QUFBQSxPQUFPLEtBQUssTUFBTSxPQUFPLENBQUM7QUFFMUIsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxDQUFDLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDakMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRXBELDBGQUEwRjtBQUMxRixNQUFNLENBQUMsSUFBTSxhQUFhLEdBQUcsVUFBQyxLQUFhO0lBQ3pDLElBQU0sS0FBSyxHQUFzQixFQUFFLENBQUM7SUFDcEMsSUFBTSxTQUFTLEdBQUcsZ0JBQWdCLENBQUM7SUFDbkMsSUFBSSxTQUFTLEdBQUcsQ0FBQyxDQUFDO0lBQ2xCLElBQUksS0FBSyxDQUFDO0lBQ1YsSUFBSSxHQUFHLEdBQUcsQ0FBQyxDQUFDO0lBRVosT0FBTyxDQUFDLEtBQUssR0FBRyxTQUFTLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLEtBQUssSUFBSSxFQUFFLENBQUM7UUFDaEQsNEJBQTRCO1FBQzVCLElBQUksS0FBSyxDQUFDLEtBQUssR0FBRyxTQUFTLEVBQUUsQ0FBQztZQUM1QixLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsU0FBUyxFQUFFLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQ2xELENBQUM7UUFFRCxnQkFBZ0I7UUFDaEIsS0FBSyxDQUFDLElBQUksQ0FDUixpQkFBb0IsS0FBSyxFQUFFLEVBQUUsVUFBVSxFQUFFLEdBQUcsRUFBRSxZQUMzQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBREUsR0FBRyxFQUFFLENBRVQsQ0FDVixDQUFDO1FBRUYsU0FBUyxHQUFHLEtB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TSxPQUFBLE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRSxRQUFRLENBQUMsRUFBcEMsQ0FBb0MsWUFDbkksY0FBSyxHQUFHLEVBQUUsU0FBUyxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUMsT0FBTyxFQUFDLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsTUFBTSxFQUFFLEVBQUUsRUFBRSxZQUFZLEVBQUUsQ0FBQyxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsR0FBSSxHQUMxRyxDQUNQLENBQUM7QUFDSixDQUFDLENBQUM7QUFFRixJQUFNLFNBQVMsR0FBcUMsVUFBQyxFQUFZO1FBQVYsUUFBUSxjQUFBO0lBQzdELE9BQU8sQ0FDTCxlQUFLLEtBQUssRUFBRSxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsRUFBRSxPQUFPLEVBQUUsY0FBTSxPQUFBLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsRUFBRSxRQUFRLENBQUMsRUFBbkMsQ0FBbUMsYUFDakksV0FBVyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsRUFDM0IsZUFBTSxTQUFTLEVBQUMsK0JBQStCLFlBQUUsUUFBUSxDQUFDLElBQUksR0FBUSxJQUNsRSxDQUNQLENBQUM7QUFDSixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgQ2hhdENvbnRlbnRCbG9jaywgRHluYW1pY0NoYXRJdGVtLCBGaWxlSXRlbSwgU2NoZWR1bGVJdGVtIH0gZnJvbSAnLi4vdHlwZXMnO1xuaW1wb3J0IHsgZ2V0RmlsZUljb24gfSBmcm9tICcuL0ZpbGVUeXBlSWNvbic7XG5pbXBvcnQgeyBYIH0gZnJvbSAnbHVjaWRlLXJlYWN0JztcbmltcG9ydCB7IE1hcmtkb3duTWVzc2FnZSB9IGZyb20gJy4vTWFya2Rvd25NZXNzYWdlJztcblxuLy8gVXRpbGl0eSBmdW5jdGlvbiB0byBwYXJzZSBtYXJrZG93biBib2xkIHN5bnRheCAoKip0ZXh0KiopIGFuZCBjb252ZXJ0IHRvIFJlYWN0IGVsZW1lbnRzXG5leHBvcnQgY29uc3QgcGFyc2VCb2xkVGV4dCA9IChpbnB1dDogc3RyaW5nKTogUmVhY3QuUmVhY3ROb2RlW10gPT4ge1xuICBjb25zdCBwYXJ0czogUmVhY3QuUmVhY3ROb2RlW10gPSBbXTtcbiAgY29uc3QgYm9sZFJlZ2V4ID0gL1xcKlxcKiguKj8pXFwqXFwqL2c7XG4gIGxldCBsYXN0SW5kZXggPSAwO1xuICBsZXQgbWF0Y2g7XG4gIGxldCBrZXkgPSAwO1xuXG4gIHdoaWxlICgobWF0Y2ggPSBib2xkUmVnZXguZXhlYyhpbnB1dCkpICE9PSBudWxsKSB7XG4gICAgLy8gQWRkIHRleHQgYmVmb3JlIHRoZSBtYXRjaFxuICAgIGlmIChtYXRjaC5pbmRleCA+IGxhc3RJbmRleCkge1xuICAgICAgcGFydHMucHVzaChpbnB1dC5zbGljZShsYXN0SW5kZXgsIG1hdGNoLmluZGV4KSk7XG4gICAgfVxuICAgIFxuICAgIC8vIEFkZCBib2xkIHRleHRcbiAgICBwYXJ0cy5wdXNoKFxuICAgICAgPHN0cm9uZyBrZXk9e2tleSsrfSBzdHlsZT17eyBmb250V2VpZ2h0OiA3MDAgfX0+XG4gICAgICAgIHttYXRjaFsxXX1cbiAgICAgIDwvc3Ryb25nPlxuICAgICk7XG4gICAgXG4gICAgbGFzdEluZGV4ID0gbWF0Y2guaW5kZXggKyBtYXRjaFswXS5sZW5ndGg7XG4gIH1cblxuICAvLyBBZGQgcmVtYWluaW5nIHRleHQgYWZ0ZXIgdGhlIGxhc3QgbWF0Y2hcbiAgaWYgKGxhc3RJbmRleCA8IGlucHV0Lmxlbmd0aCkge1xuICAgIHBhcnRzLnB1c2goaW5wdXQuc2xpY2UobGFzdEluZGV4KSk7XG4gIH1cblxuICAvLyBJZiBubyBtYXRjaGVzIGZvdW5kLCByZXR1cm4gdGhlIG9yaWdpbmFsIHRleHRcbiAgcmV0dXJuIHBhcnRzLmxlbmd0aCA+IDAgPyBwYXJ0cyA6IFtpbnB1dF07XG59O1xuXG5pbnRlcmZhY2UgSW50ZXJhY3RpdmVDb250ZW50UHJvcHMge1xuICBibG9ja3M6IENoYXRDb250ZW50QmxvY2tbXTtcbiAgcHJpbWFyeUNvbG9yOiBzdHJpbmc7XG4gIHRleHRDb2xvcjogc3RyaW5nO1xuICBpc0FjdGlvbmFibGU6IGJvb2xlYW47XG4gIG9uUXVpY2tBY3Rpb24/OiAodGV4dDogc3RyaW5nKSA9PiB2b2lkO1xuICBvblNjaGVkdWxlQ29uZmlybT86IChzY2hlZHVsZTogU2NoZWR1bGVJdGVtKSA9PiB2b2lkO1xufVxuXG5leHBvcnQgY29uc3QgSW50ZXJhY3RpdmVDb250ZW50OiBSZWFjdC5GQzxJbnRlcmFjdGl2ZUNvbnRlbnRQcm9wcz4gPSAoe1xuICBibG9ja3MsXG4gIHByaW1hcnlDb2xvcixcbiAgdGV4dENvbG9yLFxuICBpc0FjdGlvbmFibGUsXG4gIG9uUXVpY2tBY3Rpb24sXG4gIG9uU2NoZWR1bGVDb25maXJtLFxufSkgPT4ge1xuICBpZiAoIWJsb2Nrcy5sZW5ndGgpIHJldHVybiBudWxsO1xuXG4gIHJldHVybiAoXG4gICAgPGRpdiBzdHlsZT17eyBkaXNwbGF5OiAnZmxleCcsIGZsZXhEaXJlY3Rpb246ICdjb2x1bW4nLCBnYXA6IDEyIH19PlxuICAgICAge2Jsb2Nrcy5tYXAoKGJsb2NrLCBpbmRleCkgPT4ge1xuICAgICAgICBcbiAgICAgICAgc3dpdGNoIChibG9jay5raW5kKSB7XG4gICAgICAgICAgY2FzZSAnZmlsZSc6XG4gICAgICAgICAgICBjb25zdCBmaWxlRGF0YSA9IGJsb2NrLmRhdGE7XG4gICAgICAgICAgICBpZiAoZmlsZURhdGEgJiYgZmlsZURhdGEudHlwZSAmJiBmaWxlRGF0YS50eXBlLnN0YXJ0c1dpdGgoJ2ltYWdlJykpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIDxJbWFnZUJsb2NrIGtleT17aW5kZXh9IGltYWdlRGF0YT17ZmlsZURhdGF9IC8+O1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgcmV0dXJuIDxGaWxlQmxvY2sga2V5PXtpbmRleH0gZmlsZURhdGE9e2ZpbGVEYXRhfSAvPjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICBjYXNlICd0ZXh0JzpcbiAgICAgICAgICAgIHJldHVybiA8VGV4dEJsb2NrIGtleT17aW5kZXh9IHRleHQ9e2Jsb2NrLnRleHR9IC8+O1xuICAgICAgICAgIGNhc2UgJ29wdGlvbnMnOlxuICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgPFF1aWNrT3B0aW9uc1xuICAgICAgICAgICAgICAgIGtleT17aW5kZXh9XG4gICAgICAgICAgICAgICAgb3B0aW9ucz17YmxvY2sub3B0aW9uc31cbiAgICAgICAgICAgICAgICBwcmltYXJ5Q29sb3I9e3ByaW1hcnlDb2xvcn1cbiAgICAgICAgICAgICAgICBpc0FjdGlvbmFibGU9e2lzQWN0aW9uYWJsZX1cbiAgICAgICAgICAgICAgICBvblF1aWNrQWN0aW9uPXtvblF1aWNrQWN0aW9ufVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgKTtcbiAgICAgICAgICBjYXNlICdpdGVtcyc6XG4gICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICA8RHluYW1pY0l0ZW1zTGlzdFxuICAgICAgICAgICAgICAgIGtleT17aW5kZXh9XG4gICAgICAgICAgICAgICAgaXRlbXM9e2Jsb2NrLml0ZW1zfVxuICAgICAgICAgICAgICAgIHByaW1hcnlDb2xvcj17cHJpbWFyeUNvbG9yfVxuICAgICAgICAgICAgICAgIHRleHRDb2xvcj17dGV4dENvbG9yfVxuICAgICAgICAgICAgICAgIGlzQWN0aW9uYWJsZT17aXNBY3Rpb25hYmxlfVxuICAgICAgICAgICAgICAgIG9uU2VsZWN0PXtvblF1aWNrQWN0aW9ufVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgKTtcbiAgICAgICAgICBjYXNlICdzY2hlZHVsZSc6XG4gICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICA8U2NoZWR1bGVCbG9ja1xuICAgICAgICAgICAgICAgIGtleT17aW5kZXh9XG4gICAgICAgICAgICAgICAgc2NoZWR1bGU9e2Jsb2NrLnNjaGVkdWxlfVxuICAgICAgICAgICAgICAgIHByaW1hcnlDb2xvcj17cHJpbWFyeUNvbG9yfVxuICAgICAgICAgICAgICAgIHRleHRDb2xvcj17dGV4dENvbG9yfVxuICAgICAgICAgICAgICAgIGlzQWN0aW9uYWJsZT17aXNBY3Rpb25hYmxlfVxuICAgICAgICAgICAgICAgIG9uUXVpY2tBY3Rpb249e29uUXVpY2tBY3Rpb259XG4gICAgICAgICAgICAgICAgb25Db25maXJtPXtvblNjaGVkdWxlQ29uZmlybX1cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICk7XG4gICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG4gICAgICB9KX1cbiAgICA8L2Rpdj5cbiAgKTtcbn07XG5cbmNvbnN0IFRleHRCbG9jazogUmVhY3QuRkM8eyB0ZXh0OiBzdHJpbmcgfT4gPSAoeyB0ZXh0IH0pID0+IHtcbiAgcmV0dXJuIDxNYXJrZG93bk1lc3NhZ2UgdGV4dD17dGV4dH0gLz47XG59O1xuXG5pbnRlcmZhY2UgUXVpY2tPcHRpb25zUHJvcHMge1xuICBvcHRpb25zOiBzdHJpbmdbXTtcbiAgcHJpbWFyeUNvbG9yOiBzdHJpbmc7XG4gIGlzQWN0aW9uYWJsZTogYm9vbGVhbjtcbiAgb25RdWlja0FjdGlvbj86ICh0ZXh0OiBzdHJpbmcpID0+IHZvaWQ7XG59XG5cbmNvbnN0IFF1aWNrT3B0aW9uczogUmVhY3QuRkM8UXVpY2tPcHRpb25zUHJvcHM+ID0gKHtcbiAgb3B0aW9ucyxcbiAgcHJpbWFyeUNvbG9yLFxuICBpc0FjdGlvbmFibGUsXG4gIG9uUXVpY2tBY3Rpb24sXG59KSA9PiB7XG4gIGNvbnN0IFt2aXNpYmxlT3B0aW9ucywgc2V0VmlzaWJsZU9wdGlvbnNdID0gUmVhY3QudXNlU3RhdGUob3B0aW9ucyk7XG5cbiAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcbiAgICBzZXRWaXNpYmxlT3B0aW9ucyhvcHRpb25zKTtcbiAgfSwgW29wdGlvbnNdKTtcblxuICBpZiAoIXZpc2libGVPcHRpb25zLmxlbmd0aCkgcmV0dXJuIG51bGw7XG5cbiAgcmV0dXJuIChcbiAgICA8ZGl2XG4gICAgICBzdHlsZT17e1xuICAgICAgICBkaXNwbGF5OiAnZmxleCcsXG4gICAgICAgIGdhcDogOCxcbiAgICAgICAgZmxleFdyYXA6ICd3cmFwJyxcbiAgICAgIH19XG4gICAgPlxuICAgICAge3Zpc2libGVPcHRpb25zLm1hcCgob3B0aW9uLCBpZHgpID0+IChcbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgIGtleT17YCR7b3B0aW9ufS0ke2lkeH1gfVxuICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgIGRpc2FibGVkPXshaXNBY3Rpb25hYmxlfVxuICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICAgIGlmICghaXNBY3Rpb25hYmxlKSByZXR1cm47XG4gICAgICAgICAgICBzZXRWaXNpYmxlT3B0aW9ucyhbXSk7XG4gICAgICAgICAgICBvblF1aWNrQWN0aW9uPy4ob3B0aW9uKTtcbiAgICAgICAgICB9fVxuICAgICAgICAgIHN0eWxlPXt7XG4gICAgICAgICAgICBib3JkZXJSYWRpdXM6IDk5LFxuICAgICAgICAgICAgYm9yZGVyOiAnbm9uZScsXG4gICAgICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6IHByaW1hcnlDb2xvcixcbiAgICAgICAgICAgIHBhZGRpbmc6ICcxMnB4IDEycHgnLFxuICAgICAgICAgICAgY3Vyc29yOiBpc0FjdGlvbmFibGUgPyAncG9pbnRlcicgOiAnbm90LWFsbG93ZWQnLFxuICAgICAgICAgICAgZm9udFdlaWdodDogNTAwLFxuICAgICAgICAgICAgZm9udFNpemU6IDE0LFxuICAgICAgICAgICAgY29sb3I6ICcjZmZmZmZmJyxcbiAgICAgICAgICAgIHdoaXRlU3BhY2U6ICdub3dyYXAnLFxuICAgICAgICAgICAgdHJhbnNpdGlvbjogJ3RyYW5zZm9ybSAwLjEycyBlYXNlLCBvcGFjaXR5IDAuMTJzIGVhc2UnLFxuICAgICAgICAgICAgb3BhY2l0eTogaXNBY3Rpb25hYmxlID8gMSA6IDAuNixcbiAgICAgICAgICAgIGJveFNoYWRvdzogJzAgMnB4IDZweCByZ2JhKDAsMCwwLDAuMTIpJyxcbiAgICAgICAgICB9fVxuICAgICAgICA+XG4gICAgICAgICAge29wdGlvbn1cbiAgICAgICAgPC9idXR0b24+XG4gICAgICApKX1cbiAgICA8L2Rpdj5cbiAgKTtcbn07XG5cbmludGVyZmFjZSBEeW5hbWljSXRlbXNMaXN0UHJvcHMge1xuICBpdGVtczogRHluYW1pY0NoYXRJdGVtW107XG4gIHByaW1hcnlDb2xvcjogc3RyaW5nO1xuICB0ZXh0Q29sb3I6IHN0cmluZztcbiAgaXNBY3Rpb25hYmxlOiBib29sZWFuO1xuICBvblNlbGVjdD86ICh0ZXh0OiBzdHJpbmcpID0+IHZvaWQ7XG59XG5cbmNvbnN0IER5bmFtaWNJdGVtc0xpc3Q6IFJlYWN0LkZDPER5bmFtaWNJdGVtc0xpc3RQcm9wcz4gPSAoe1xuICBpdGVtcyxcbiAgcHJpbWFyeUNvbG9yLFxuICB0ZXh0Q29sb3IsXG4gIGlzQWN0aW9uYWJsZSxcbiAgb25TZWxlY3QsXG59KSA9PiB7XG4gIHJldHVybiAoXG4gICAgPGRpdiBzdHlsZT17eyBkaXNwbGF5OiAnZmxleCcsIGZsZXhEaXJlY3Rpb246ICdjb2x1bW4nLCBnYXA6IDEwIH19PlxuICAgICAge2l0ZW1zLm1hcCgoaXRlbSkgPT4gKFxuICAgICAgICA8RHluYW1pY0l0ZW1DYXJkXG4gICAgICAgICAga2V5PXtpdGVtLmlkfVxuICAgICAgICAgIGl0ZW09e2l0ZW19XG4gICAgICAgICAgcHJpbWFyeUNvbG9yPXtwcmltYXJ5Q29sb3J9XG4gICAgICAgICAgdGV4dENvbG9yPXt0ZXh0Q29sb3J9XG4gICAgICAgICAgaXNBY3Rpb25hYmxlPXtpc0FjdGlvbmFibGV9XG4gICAgICAgICAgb25TZWxlY3Q9eygpID0+IGlzQWN0aW9uYWJsZSAmJiBvblNlbGVjdD8uKGl0ZW0ubmFtZSl9XG4gICAgICAgIC8+XG4gICAgICApKX1cbiAgICA8L2Rpdj5cbiAgKTtcbn07XG5cbmludGVyZmFjZSBEeW5hbWljSXRlbUNhcmRQcm9wcyB7XG4gIGl0ZW06IER5bmFtaWNDaGF0SXRlbTtcbiAgcHJpbWFyeUNvbG9yOiBzdHJpbmc7XG4gIHRleHRDb2xvcjogc3RyaW5nO1xuICBpc0FjdGlvbmFibGU6IGJvb2xlYW47XG4gIG9uU2VsZWN0PzogKCkgPT4gdm9pZDtcbiAgb25TbG90U2VsZWN0PzogKHNsb3Q6IHN0cmluZykgPT4gdm9pZDtcbiAgb25SZW1vdmU/OiAoKSA9PiB2b2lkO1xufVxuXG5jb25zdCBEeW5hbWljSXRlbUNhcmQ6IFJlYWN0LkZDPER5bmFtaWNJdGVtQ2FyZFByb3BzPiA9ICh7XG4gIGl0ZW0sXG4gIHByaW1hcnlDb2xvcixcbiAgdGV4dENvbG9yLFxuICBpc0FjdGlvbmFibGUsXG4gIG9uU2VsZWN0LFxuICBvblNsb3RTZWxlY3QsXG4gIG9uUmVtb3ZlLFxufSkgPT4ge1xuICBjb25zdCBbZXhwYW5kZWQsIHNldEV4cGFuZGVkXSA9IFJlYWN0LnVzZVN0YXRlKGZhbHNlKTtcbiAgY29uc3QgaGFzU2xvdHMgPSBBcnJheS5pc0FycmF5KGl0ZW0uc2xvdHMpICYmIGl0ZW0uc2xvdHMubGVuZ3RoID4gMDtcblxuICBjb25zdCBoYW5kbGVDYXJkQ2xpY2sgPSAoKSA9PiB7XG4gICAgc2V0RXhwYW5kZWQoKHByZXYpID0+ICFwcmV2KTtcbiAgICBvblNlbGVjdD8uKCk7XG4gIH07XG5cbiAgcmV0dXJuIChcbiAgICA8ZGl2XG4gICAgICBvbkNsaWNrPXtoYW5kbGVDYXJkQ2xpY2t9XG4gICAgICBzdHlsZT17e1xuICAgICAgICBkaXNwbGF5OiAnZmxleCcsXG4gICAgICAgIGdhcDogMTIsXG4gICAgICAgIHBhZGRpbmc6IDEyLFxuICAgICAgICBib3JkZXJSYWRpdXM6IDEyLFxuICAgICAgICBib3JkZXI6ICcxcHggc29saWQgI2U1ZTdlYicsXG4gICAgICAgIGJhY2tncm91bmRDb2xvcjogJyNmOGZhZmMnLFxuICAgICAgICBjdXJzb3I6IGlzQWN0aW9uYWJsZSA/ICdwb2ludGVyJyA6ICdkZWZhdWx0JyxcbiAgICAgICAgYm94U2hhZG93OiAnMCAxcHggMnB4IHJnYmEoMCwwLDAsMC4wNSknLFxuICAgICAgfX1cbiAgICA+XG4gICAgICB7aXRlbS5pbWFnZSAmJiAoXG4gICAgICAgIDxpbWdcbiAgICAgICAgICBzcmM9e2l0ZW0uaW1hZ2V9XG4gICAgICAgICAgYWx0PXtpdGVtLm5hbWV9XG4gICAgICAgICAgc3R5bGU9e3sgd2lkdGg6IDY0LCBoZWlnaHQ6IDY0LCBib3JkZXJSYWRpdXM6IDgsIG9iamVjdEZpdDogJ2NvdmVyJyB9fVxuICAgICAgICAvPlxuICAgICAgKX1cbiAgICAgIDxkaXYgc3R5bGU9e3sgZmxleDogMSwgbWluV2lkdGg6IDAsIGRpc3BsYXk6ICdmbGV4JywgZmxleERpcmVjdGlvbjogJ2NvbHVtbicsIGdhcDogNCB9fT5cbiAgICAgICAgPGRpdiBzdHlsZT17eyBkaXNwbGF5OiAnZmxleCcsIGFsaWduSXRlbXM6ICdmbGV4LXN0YXJ0JywgZ2FwOiA4IH19PlxuICAgICAgICAgIDxkaXYgc3R5bGU9e3sgZm9udFdlaWdodDogNzAwLCBjb2xvcjogdGV4dENvbG9yLCBmb250U2l6ZTogMTUsIGZsZXg6IDEgfX0+XG4gICAgICAgICAgICB7aXRlbS5uYW1lfVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIHtvblJlbW92ZSAmJiAoXG4gICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICBvbkNsaWNrPXsoZSkgPT4ge1xuICAgICAgICAgICAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgICAgICAgICAgb25SZW1vdmUoKTtcbiAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgc3R5bGU9e3tcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAnI2YxZjVmOScsXG4gICAgICAgICAgICAgICAgYm9yZGVyUmFkaXVzOiA5OTk5LFxuICAgICAgICAgICAgICAgIGJvcmRlcjogJzFweCBzb2xpZCAjZTJlOGYwJyxcbiAgICAgICAgICAgICAgICB3aWR0aDogMjgsXG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAyOCxcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiAnZmxleCcsXG4gICAgICAgICAgICAgICAgYWxpZ25JdGVtczogJ2NlbnRlcicsXG4gICAgICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ6ICdjZW50ZXInLFxuICAgICAgICAgICAgICAgIGN1cnNvcjogJ3BvaW50ZXInLFxuICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8WCBzaXplPXsxNn0gLz5cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICl9XG4gICAgICAgIDwvZGl2PlxuICAgICAgICB7aXRlbS5jYXRlZ29yeSAmJiAoXG4gICAgICAgICAgPGRpdiBzdHlsZT17eyBjb2xvcjogJyM2YjcyODAnLCBmb250U2l6ZTogMTMsIGZvbnRXZWlnaHQ6IDUwMCB9fT5cbiAgICAgICAgICAgIHtpdGVtLmNhdGVnb3J5fVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICApfVxuICAgICAgICB7aXRlbS5kZXNjcmlwdGlvbiAmJiAoXG4gICAgICAgICAgPGRpdlxuICAgICAgICAgICAgc3R5bGU9e3tcbiAgICAgICAgICAgICAgY29sb3I6ICcjMzc0MTUxJyxcbiAgICAgICAgICAgICAgZm9udFNpemU6IDEzLFxuICAgICAgICAgICAgICBsaW5lSGVpZ2h0OiAxLjUsXG4gICAgICAgICAgICAgIGRpc3BsYXk6ICctd2Via2l0LWJveCcsXG4gICAgICAgICAgICAgIFdlYmtpdExpbmVDbGFtcDogZXhwYW5kZWQgPyAndW5zZXQnIDogMyxcbiAgICAgICAgICAgICAgV2Via2l0Qm94T3JpZW50OiAndmVydGljYWwnLFxuICAgICAgICAgICAgICBvdmVyZmxvdzogZXhwYW5kZWQgPyAndmlzaWJsZScgOiAnaGlkZGVuJyxcbiAgICAgICAgICAgIH19XG4gICAgICAgICAgPlxuICAgICAgICAgICAge2l0ZW0uZGVzY3JpcHRpb259XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICl9XG4gICAgICAgIHtoYXNTbG90cyAmJiAoXG4gICAgICAgICAgPGRpdiBzdHlsZT17eyBkaXNwbGF5OiAnZmxleCcsIGdhcDogOCwgZmxleFdyYXA6ICd3cmFwJywgbWFyZ2luVG9wOiA0IH19PlxuICAgICAgICAgICAge2l0ZW0uc2xvdHMhLm1hcCgoc2xvdCkgPT4ge1xuICAgICAgICAgICAgICBjb25zdCBpc1NlbGVjdGVkID0gaXRlbS5zZWxlY3RlZFNsb3QgPT09IHNsb3Q7XG4gICAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAga2V5PXtzbG90fVxuICAgICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICBkaXNhYmxlZD17IWlzQWN0aW9uYWJsZX1cbiAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eyhlKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgICAgICAgICAgICAgIGlmICghaXNBY3Rpb25hYmxlKSByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgIG9uU2xvdFNlbGVjdD8uKHNsb3QpO1xuICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgIHN0eWxlPXt7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlclJhZGl1czogOTk5OSxcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyOiBgMXB4IHNvbGlkICR7aXNTZWxlY3RlZCA/IHByaW1hcnlDb2xvciA6ICcjZTVlN2ViJ31gLFxuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6IGlzU2VsZWN0ZWQgPyBwcmltYXJ5Q29sb3IgOiAnI2ZmZmZmZicsXG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiBpc1NlbGVjdGVkID8gJyNmZmZmZmYnIDogJyMxMTE4MjcnLFxuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiAnNnB4IDEycHgnLFxuICAgICAgICAgICAgICAgICAgICBjdXJzb3I6IGlzQWN0aW9uYWJsZSA/ICdwb2ludGVyJyA6ICdub3QtYWxsb3dlZCcsXG4gICAgICAgICAgICAgICAgICAgIGZvbnRTaXplOiAxMyxcbiAgICAgICAgICAgICAgICAgICAgZm9udFdlaWdodDogNjAwLFxuICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICB7c2xvdH1cbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH0pfVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICApfVxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICk7XG59O1xuXG5pbnRlcmZhY2UgU2NoZWR1bGVCbG9ja1Byb3BzIHtcbiAgc2NoZWR1bGU6IFNjaGVkdWxlSXRlbTtcbiAgcHJpbWFyeUNvbG9yOiBzdHJpbmc7XG4gIHRleHRDb2xvcjogc3RyaW5nO1xuICBpc0FjdGlvbmFibGU6IGJvb2xlYW47XG4gIG9uUXVpY2tBY3Rpb24/OiAodGV4dDogc3RyaW5nKSA9PiB2b2lkO1xuICBvbkNvbmZpcm0/OiAoc2NoZWR1bGU6IFNjaGVkdWxlSXRlbSkgPT4gdm9pZDtcbn1cblxuY29uc3QgU2NoZWR1bGVCbG9jazogUmVhY3QuRkM8U2NoZWR1bGVCbG9ja1Byb3BzPiA9ICh7XG4gIHNjaGVkdWxlLFxuICBwcmltYXJ5Q29sb3IsXG4gIHRleHRDb2xvcixcbiAgaXNBY3Rpb25hYmxlLFxuICBvblF1aWNrQWN0aW9uLFxuICBvbkNvbmZpcm0sXG59KSA9PiB7XG4gIGNvbnN0IFtjdXJyZW50U2NoZWR1bGUsIHNldEN1cnJlbnRTY2hlZHVsZV0gPSBSZWFjdC51c2VTdGF0ZTxTY2hlZHVsZUl0ZW0+KHNjaGVkdWxlKTtcblxuICBSZWFjdC51c2VFZmZlY3QoKCkgPT4ge1xuICAgIHNldEN1cnJlbnRTY2hlZHVsZShzY2hlZHVsZSk7XG4gIH0sIFtzY2hlZHVsZV0pO1xuXG4gIGNvbnN0IHVwZGF0ZVJlc3RhdXJhbnQgPSAoaWQ6IHN0cmluZywgdXBkYXRlcjogKGl0ZW06IER5bmFtaWNDaGF0SXRlbSkgPT4gRHluYW1pY0NoYXRJdGVtKSA9PiB7XG4gICAgc2V0Q3VycmVudFNjaGVkdWxlKChwcmV2KSA9PiAoe1xuICAgICAgLi4ucHJldixcbiAgICAgIHJlc3RhdXJhbnRzOiBwcmV2LnJlc3RhdXJhbnRzLm1hcCgocmVzdGF1cmFudCkgPT5cbiAgICAgICAgcmVzdGF1cmFudC5pZCA9PT0gaWQgPyB1cGRhdGVyKHJlc3RhdXJhbnQpIDogcmVzdGF1cmFudFxuICAgICAgKSxcbiAgICB9KSk7XG4gIH07XG5cbiAgY29uc3QgcmVtb3ZlUmVzdGF1cmFudCA9IChpZDogc3RyaW5nKSA9PiB7XG4gICAgc2V0Q3VycmVudFNjaGVkdWxlKChwcmV2KSA9PiAoe1xuICAgICAgLi4ucHJldixcbiAgICAgIHJlc3RhdXJhbnRzOiBwcmV2LnJlc3RhdXJhbnRzLmZpbHRlcigocmVzdGF1cmFudCkgPT4gcmVzdGF1cmFudC5pZCAhPT0gaWQpLFxuICAgIH0pKTtcbiAgfTtcblxuICByZXR1cm4gKFxuICAgIDxkaXYgc3R5bGU9e3sgZGlzcGxheTogJ2ZsZXgnLCBmbGV4RGlyZWN0aW9uOiAnY29sdW1uJywgZ2FwOiAxMCB9fT5cbiAgICAgIDxkaXZcbiAgICAgICAgc3R5bGU9e3tcbiAgICAgICAgICBwYWRkaW5nOiAxMixcbiAgICAgICAgICBib3JkZXJSYWRpdXM6IDEyLFxuICAgICAgICAgIGJhY2tncm91bmRDb2xvcjogJyNmOGZhZmMnLFxuICAgICAgICAgIGJvcmRlcjogJzFweCBzb2xpZCAjZTVlN2ViJyxcbiAgICAgICAgICBmb250V2VpZ2h0OiA3MDAsXG4gICAgICAgICAgY29sb3I6IHRleHRDb2xvcixcbiAgICAgICAgfX1cbiAgICAgID5cbiAgICAgICAge2N1cnJlbnRTY2hlZHVsZS50aXRsZSB8fCAnU2NoZWR1bGUnfVxuICAgICAgPC9kaXY+XG5cbiAgICAgIDxkaXYgc3R5bGU9e3sgZGlzcGxheTogJ2ZsZXgnLCBmbGV4RGlyZWN0aW9uOiAnY29sdW1uJywgZ2FwOiAxMCB9fT5cbiAgICAgICAge2N1cnJlbnRTY2hlZHVsZS5yZXN0YXVyYW50cy5tYXAoKHJlc3RhdXJhbnQpID0+IChcbiAgICAgICAgICA8RHluYW1pY0l0ZW1DYXJkXG4gICAgICAgICAgICBrZXk9e3Jlc3RhdXJhbnQuaWR9XG4gICAgICAgICAgICBpdGVtPXtyZXN0YXVyYW50fVxuICAgICAgICAgICAgcHJpbWFyeUNvbG9yPXtwcmltYXJ5Q29sb3J9XG4gICAgICAgICAgICB0ZXh0Q29sb3I9e3RleHRDb2xvcn1cbiAgICAgICAgICAgIGlzQWN0aW9uYWJsZT17aXNBY3Rpb25hYmxlfVxuICAgICAgICAgICAgb25TZWxlY3Q9eygpID0+IGlzQWN0aW9uYWJsZSAmJiBvblF1aWNrQWN0aW9uPy4ocmVzdGF1cmFudC5uYW1lKX1cbiAgICAgICAgICAgIG9uU2xvdFNlbGVjdD17KHNsb3QpID0+XG4gICAgICAgICAgICAgIHVwZGF0ZVJlc3RhdXJhbnQocmVzdGF1cmFudC5pZCwgKGl0ZW0pID0+ICh7IC4uLml0ZW0sIHNlbGVjdGVkU2xvdDogc2xvdCB9KSlcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIG9uUmVtb3ZlPXtpc0FjdGlvbmFibGUgPyAoKSA9PiByZW1vdmVSZXN0YXVyYW50KHJlc3RhdXJhbnQuaWQpIDogdW5kZWZpbmVkfVxuICAgICAgICAgIC8+XG4gICAgICAgICkpfVxuICAgICAgPC9kaXY+XG5cbiAgICAgIHtpc0FjdGlvbmFibGUgJiYgY3VycmVudFNjaGVkdWxlLnJlc3RhdXJhbnRzLmxlbmd0aCA+IDAgJiYgKFxuICAgICAgICA8ZGl2IHN0eWxlPXt7IGRpc3BsYXk6ICdmbGV4JywganVzdGlmeUNvbnRlbnQ6ICdmbGV4LXN0YXJ0JyB9fT5cbiAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IG9uQ29uZmlybT8uKGN1cnJlbnRTY2hlZHVsZSl9XG4gICAgICAgICAgICBzdHlsZT17e1xuICAgICAgICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6IHByaW1hcnlDb2xvcixcbiAgICAgICAgICAgICAgY29sb3I6ICcjZmZmZmZmJyxcbiAgICAgICAgICAgICAgYm9yZGVyOiAnbm9uZScsXG4gICAgICAgICAgICAgIGJvcmRlclJhZGl1czogMTAsXG4gICAgICAgICAgICAgIHBhZGRpbmc6ICcxMHB4IDE2cHgnLFxuICAgICAgICAgICAgICBmb250V2VpZ2h0OiA3MDAsXG4gICAgICAgICAgICAgIGN1cnNvcjogJ3BvaW50ZXInLFxuICAgICAgICAgICAgICBib3hTaGFkb3c6ICcwIDFweCA0cHggcmdiYSgwLDAsMCwwLjEyKScsXG4gICAgICAgICAgICB9fVxuICAgICAgICAgID5cbiAgICAgICAgICAgIENvbmZpcm1cbiAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICApfVxuICAgIDwvZGl2PlxuICApO1xufTtcblxuY29uc3QgSW1hZ2VCbG9jazogUmVhY3QuRkM8eyBpbWFnZURhdGE6IEZpbGVJdGVtIH0+ID0gKHsgaW1hZ2VEYXRhIH0pID0+IHtcbiAgcmV0dXJuIChcbiAgICA8ZGl2IHN0eWxlPXt7IGRpc3BsYXk6ICdmbGV4JywgYWxpZ25JdGVtczogJ2NlbnRlcicsIGdhcDogOCwgY3Vyc29yOiAncG9pbnRlcicgfX0gb25DbGljaz17KCkgPT4gd2luZG93Lm9wZW4oaW1hZ2VEYXRhLnVybCwgJ19ibGFuaycpfT5cbiAgICAgIDxpbWcgc3JjPXtpbWFnZURhdGEudXJsfSBhbHQ9XCJJbWFnZVwiIHN0eWxlPXt7IHdpZHRoOiA4MCwgaGVpZ2h0OiA2NCwgYm9yZGVyUmFkaXVzOiA4LCBvYmplY3RGaXQ6ICdjb3ZlcicgfX0gLz5cbiAgICA8L2Rpdj5cbiAgKTtcbn07XG5cbmNvbnN0IEZpbGVCbG9jazogUmVhY3QuRkM8eyBmaWxlRGF0YTogRmlsZUl0ZW0gfT4gPSAoeyBmaWxlRGF0YSB9KSA9PiB7XG4gIHJldHVybiAoXG4gICAgPGRpdiBzdHlsZT17eyBkaXNwbGF5OiAnZmxleCcsIGFsaWduSXRlbXM6ICdjZW50ZXInLCBnYXA6IDgsIGN1cnNvcjogJ3BvaW50ZXInIH19IG9uQ2xpY2s9eygpID0+IHdpbmRvdy5vcGVuKGZpbGVEYXRhLnVybCwgJ19ibGFuaycpfT5cbiAgICAgIHtnZXRGaWxlSWNvbihmaWxlRGF0YS50eXBlKX1cbiAgICAgIDxzcGFuIGNsYXNzTmFtZT1cInRleHQteHMgdGV4dC1tdXRlZC1mb3JlZ3JvdW5kXCI+e2ZpbGVEYXRhLm5hbWV9PC9zcGFuPlxuICAgIDwvZGl2PlxuICApO1xufTsiXX0=
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
export interface MarkdownMessageProps {
|
|
3
|
+
text: string;
|
|
4
|
+
style?: React.CSSProperties;
|
|
5
|
+
}
|
|
6
|
+
/**
|
|
7
|
+
* - Auto-linkifies bare URLs (https://..., http://..., mailto:...).
|
|
8
|
+
* - All external links open in a new tab with target="_blank" and rel="noopener noreferrer".
|
|
9
|
+
* - No dangerouslySetInnerHTML without sanitization; uses rehype-sanitize.
|
|
10
|
+
*/
|
|
11
|
+
export declare const MarkdownMessage: React.FC<MarkdownMessageProps>;
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
var __assign = (this && this.__assign) || function () {
|
|
2
|
+
__assign = Object.assign || function(t) {
|
|
3
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
4
|
+
s = arguments[i];
|
|
5
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
6
|
+
t[p] = s[p];
|
|
7
|
+
}
|
|
8
|
+
return t;
|
|
9
|
+
};
|
|
10
|
+
return __assign.apply(this, arguments);
|
|
11
|
+
};
|
|
12
|
+
var __rest = (this && this.__rest) || function (s, e) {
|
|
13
|
+
var t = {};
|
|
14
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
15
|
+
t[p] = s[p];
|
|
16
|
+
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
|
17
|
+
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
18
|
+
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
|
19
|
+
t[p[i]] = s[p[i]];
|
|
20
|
+
}
|
|
21
|
+
return t;
|
|
22
|
+
};
|
|
23
|
+
var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
|
|
24
|
+
if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
|
|
25
|
+
if (ar || !(i in from)) {
|
|
26
|
+
if (!ar) ar = Array.prototype.slice.call(from, 0, i);
|
|
27
|
+
ar[i] = from[i];
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
return to.concat(ar || Array.prototype.slice.call(from));
|
|
31
|
+
};
|
|
32
|
+
var _a;
|
|
33
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
34
|
+
import ReactMarkdown from 'react-markdown';
|
|
35
|
+
import remarkGfm from 'remark-gfm';
|
|
36
|
+
import rehypeSanitize, { defaultSchema } from 'rehype-sanitize';
|
|
37
|
+
var sanitizeSchema = __assign(__assign({}, defaultSchema), { attributes: __assign(__assign({}, defaultSchema.attributes), { a: __spreadArray(__spreadArray([], (Array.isArray((_a = defaultSchema.attributes) === null || _a === void 0 ? void 0 : _a.a) ? defaultSchema.attributes.a : ['href']), true), [
|
|
38
|
+
'target',
|
|
39
|
+
'rel',
|
|
40
|
+
], false) }) });
|
|
41
|
+
/**
|
|
42
|
+
* - Auto-linkifies bare URLs (https://..., http://..., mailto:...).
|
|
43
|
+
* - All external links open in a new tab with target="_blank" and rel="noopener noreferrer".
|
|
44
|
+
* - No dangerouslySetInnerHTML without sanitization; uses rehype-sanitize.
|
|
45
|
+
*/
|
|
46
|
+
export var MarkdownMessage = function (_a) {
|
|
47
|
+
var text = _a.text, style = _a.style;
|
|
48
|
+
var baseStyle = __assign({ whiteSpace: 'pre-wrap', lineHeight: 1.5, margin: 0 }, style);
|
|
49
|
+
return (_jsx("div", { style: baseStyle, children: _jsx(ReactMarkdown, { remarkPlugins: [remarkGfm], rehypePlugins: [rehypeSanitize(sanitizeSchema)], components: {
|
|
50
|
+
a: function (_a) {
|
|
51
|
+
var href = _a.href, children = _a.children, props = __rest(_a, ["href", "children"]);
|
|
52
|
+
return (_jsx("a", __assign({ href: href, target: "_blank", rel: "noopener noreferrer" }, props, { style: { color: 'inherit', textDecoration: 'underline', cursor: 'pointer' }, children: children })));
|
|
53
|
+
},
|
|
54
|
+
}, children: text }) }));
|
|
55
|
+
};
|
|
56
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTWFya2Rvd25NZXNzYWdlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbXBvbmVudHMvTWFya2Rvd25NZXNzYWdlLnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFDQSxPQUFPLGFBQWEsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzQyxPQUFPLFNBQVMsTUFBTSxZQUFZLENBQUM7QUFDbkMsT0FBTyxjQUFjLEVBQUUsRUFBRSxhQUFhLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUVoRSxJQUFNLGNBQWMseUJBQ2YsYUFBYSxLQUNoQixVQUFVLHdCQUNMLGFBQWEsQ0FBQyxVQUFVLEtBQzNCLENBQUMsa0NBQ0ksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLE1BQUEsYUFBYSxDQUFDLFVBQVUsMENBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQ3ZGLFFBQVE7WUFDUixLQUFLO3VCQUdWLENBQUM7QUFPRjs7OztHQUlHO0FBQ0gsTUFBTSxDQUFDLElBQU0sZUFBZSxHQUFtQyxVQUFDLEVBQWU7UUFBYixJQUFJLFVBQUEsRUFBRSxLQUFLLFdBQUE7SUFDM0UsSUFBTSxTQUFTLGNBQ2IsVUFBVSxFQUFFLFVBQVUsRUFDdEIsVUFBVSxFQUFFLEdBQUcsRUFDZixNQUFNLEVBQUUsQ0FBQyxJQUNOLEtBQUssQ0FDVCxDQUFDO0lBRUYsT0FBTyxDQUNMLGNBQUssS0FBSyxFQUFFLFNBQVMsWUFDbkIsS0FBQyxhQUFhLElBQ1osYUFBYSxFQUFFLENBQUMsU0FBUyxDQUFDLEVBQzFCLGFBQWEsRUFBRSxDQUFDLGNBQWMsQ0FBQyxjQUFjLENBQWdDLENBQUMsRUFDOUUsVUFBVSxFQUFFO2dCQUNWLENBQUMsRUFBRSxVQUFDLEVBQTRCO29CQUExQixJQUFBLElBQUksVUFBQSxFQUFFLFFBQVEsY0FBQSxFQUFLLEtBQUssY0FBMUIsb0JBQTRCLENBQUY7b0JBQU8sT0FBQSxDQUNuQyxxQkFDRSxJQUFJLEVBQUUsSUFBSSxFQUNWLE1BQU0sRUFBQyxRQUFRLEVBQ2YsR0FBRyxFQUFDLHFCQUFxQixJQUNyQixLQUFLLElBQ1QsS0FBSyxFQUFFLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxjQUFjLEVBQUUsV0FBVyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsWUFFMUUsUUFBUSxJQUNQLENBQ0wsQ0FBQTtpQkFBQTthQUNGLFlBRUEsSUFBSSxHQUNTLEdBQ1osQ0FDUCxDQUFDO0FBQ0osQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCBSZWFjdE1hcmtkb3duIGZyb20gJ3JlYWN0LW1hcmtkb3duJztcbmltcG9ydCByZW1hcmtHZm0gZnJvbSAncmVtYXJrLWdmbSc7XG5pbXBvcnQgcmVoeXBlU2FuaXRpemUsIHsgZGVmYXVsdFNjaGVtYSB9IGZyb20gJ3JlaHlwZS1zYW5pdGl6ZSc7XG5cbmNvbnN0IHNhbml0aXplU2NoZW1hID0ge1xuICAuLi5kZWZhdWx0U2NoZW1hLFxuICBhdHRyaWJ1dGVzOiB7XG4gICAgLi4uZGVmYXVsdFNjaGVtYS5hdHRyaWJ1dGVzLFxuICAgIGE6IFtcbiAgICAgIC4uLihBcnJheS5pc0FycmF5KGRlZmF1bHRTY2hlbWEuYXR0cmlidXRlcz8uYSkgPyBkZWZhdWx0U2NoZW1hLmF0dHJpYnV0ZXMuYSA6IFsnaHJlZiddKSxcbiAgICAgICd0YXJnZXQnLFxuICAgICAgJ3JlbCcsXG4gICAgXSxcbiAgfSxcbn07XG5cbmV4cG9ydCBpbnRlcmZhY2UgTWFya2Rvd25NZXNzYWdlUHJvcHMge1xuICB0ZXh0OiBzdHJpbmc7XG4gIHN0eWxlPzogUmVhY3QuQ1NTUHJvcGVydGllcztcbn1cblxuLyoqXG4gKiAtIEF1dG8tbGlua2lmaWVzIGJhcmUgVVJMcyAoaHR0cHM6Ly8uLi4sIGh0dHA6Ly8uLi4sIG1haWx0bzouLi4pLlxuICogLSBBbGwgZXh0ZXJuYWwgbGlua3Mgb3BlbiBpbiBhIG5ldyB0YWIgd2l0aCB0YXJnZXQ9XCJfYmxhbmtcIiBhbmQgcmVsPVwibm9vcGVuZXIgbm9yZWZlcnJlclwiLlxuICogLSBObyBkYW5nZXJvdXNseVNldElubmVySFRNTCB3aXRob3V0IHNhbml0aXphdGlvbjsgdXNlcyByZWh5cGUtc2FuaXRpemUuXG4gKi9cbmV4cG9ydCBjb25zdCBNYXJrZG93bk1lc3NhZ2U6IFJlYWN0LkZDPE1hcmtkb3duTWVzc2FnZVByb3BzPiA9ICh7IHRleHQsIHN0eWxlIH0pID0+IHtcbiAgY29uc3QgYmFzZVN0eWxlOiBSZWFjdC5DU1NQcm9wZXJ0aWVzID0ge1xuICAgIHdoaXRlU3BhY2U6ICdwcmUtd3JhcCcsXG4gICAgbGluZUhlaWdodDogMS41LFxuICAgIG1hcmdpbjogMCxcbiAgICAuLi5zdHlsZSxcbiAgfTtcblxuICByZXR1cm4gKFxuICAgIDxkaXYgc3R5bGU9e2Jhc2VTdHlsZX0+XG4gICAgICA8UmVhY3RNYXJrZG93blxuICAgICAgICByZW1hcmtQbHVnaW5zPXtbcmVtYXJrR2ZtXX1cbiAgICAgICAgcmVoeXBlUGx1Z2lucz17W3JlaHlwZVNhbml0aXplKHNhbml0aXplU2NoZW1hKSBhcyBpbXBvcnQoJ3VuaWZpZWQnKS5QbHVnZ2FibGVdfVxuICAgICAgICBjb21wb25lbnRzPXt7XG4gICAgICAgICAgYTogKHsgaHJlZiwgY2hpbGRyZW4sIC4uLnByb3BzIH0pID0+IChcbiAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgIGhyZWY9e2hyZWZ9XG4gICAgICAgICAgICAgIHRhcmdldD1cIl9ibGFua1wiXG4gICAgICAgICAgICAgIHJlbD1cIm5vb3BlbmVyIG5vcmVmZXJyZXJcIlxuICAgICAgICAgICAgICB7Li4ucHJvcHN9XG4gICAgICAgICAgICAgIHN0eWxlPXt7IGNvbG9yOiAnaW5oZXJpdCcsIHRleHREZWNvcmF0aW9uOiAndW5kZXJsaW5lJywgY3Vyc29yOiAncG9pbnRlcicgfX1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAge2NoaWxkcmVufVxuICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICksXG4gICAgICAgIH19XG4gICAgICA+XG4gICAgICAgIHt0ZXh0fVxuICAgICAgPC9SZWFjdE1hcmtkb3duPlxuICAgIDwvZGl2PlxuICApO1xufTtcbiJdfQ==
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
import {
|
|
2
|
+
import { MarkdownMessage } from './MarkdownMessage';
|
|
3
3
|
export var WelcomeCard = function (_a) {
|
|
4
4
|
var theme = _a.theme, imageUrl = _a.imageUrl, title = _a.title, content = _a.content, possibleQueries = _a.possibleQueries, onQuickQuery = _a.onQuickQuery, _b = _a.isAgentTyping, isAgentTyping = _b === void 0 ? false : _b;
|
|
5
5
|
var agentTextColor = '#000000';
|
|
@@ -36,10 +36,10 @@ export var WelcomeCard = function (_a) {
|
|
|
36
36
|
margin: 0,
|
|
37
37
|
fontFamily: fontFamily,
|
|
38
38
|
};
|
|
39
|
-
return (_jsxs("div", { style: { display: 'flex', flexDirection: 'column', gap: 8, alignItems: 'flex-start', textAlign: 'left' }, children: [imageUrl && (_jsx("div", { style: { display: 'flex', gap: 16 }, children: _jsx("img", { src: imageUrl, style: { width: 160, height: 160, objectFit: 'contain', borderRadius: 12, display: 'block' } }) })), title && _jsx("div", { style: welcomeTitleStyle, children: title }), content && _jsx("div", { style: welcomeSubtitleStyle, children:
|
|
39
|
+
return (_jsxs("div", { style: { display: 'flex', flexDirection: 'column', gap: 8, alignItems: 'flex-start', textAlign: 'left' }, children: [imageUrl && (_jsx("div", { style: { display: 'flex', gap: 16 }, children: _jsx("img", { src: imageUrl, style: { width: 160, height: 160, objectFit: 'contain', borderRadius: 12, display: 'block' } }) })), title && _jsx("div", { style: welcomeTitleStyle, children: title }), content && _jsx("div", { style: welcomeSubtitleStyle, children: _jsx(MarkdownMessage, { text: content }) }), possibleQueries && possibleQueries.length > 0 && (_jsx("div", { style: chipContainerStyle, children: possibleQueries.map(function (q, idx) { return (_jsx("span", { style: chipStyle, onClick: function () {
|
|
40
40
|
if (isAgentTyping)
|
|
41
41
|
return;
|
|
42
42
|
onQuickQuery && onQuickQuery(q);
|
|
43
43
|
}, children: q }, idx)); }) }))] }));
|
|
44
44
|
};
|
|
45
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
45
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiV2VsY29tZUNhcmQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29tcG9uZW50cy9XZWxjb21lQ2FyZC50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUNBLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQXFCcEQsTUFBTSxDQUFDLElBQU0sV0FBVyxHQUErQixVQUFDLEVBUXZEO1FBUEMsS0FBSyxXQUFBLEVBQ0wsUUFBUSxjQUFBLEVBQ1IsS0FBSyxXQUFBLEVBQ0wsT0FBTyxhQUFBLEVBQ1AsZUFBZSxxQkFBQSxFQUNmLFlBQVksa0JBQUEsRUFDWixxQkFBcUIsRUFBckIsYUFBYSxtQkFBRyxLQUFLLEtBQUE7SUFFckIsSUFBTSxjQUFjLEdBQUcsU0FBUyxDQUFDO0lBQ2pDLElBQU0sVUFBVSxHQUFHLENBQUEsS0FBSyxhQUFMLEtBQUssdUJBQUwsS0FBSyxDQUFFLFVBQVUsS0FBSSwyQkFBMkIsQ0FBQztJQUVwRSxJQUFNLFdBQVcsR0FBRyxZQUFZLElBQUksQ0FBQyxhQUFhLENBQUM7SUFDbkQsSUFBTSxTQUFTLEdBQXdCO1FBQ3JDLE9BQU8sRUFBRSxjQUFjO1FBQ3ZCLGVBQWUsRUFBRSxDQUFBLEtBQUssYUFBTCxLQUFLLHVCQUFMLEtBQUssQ0FBRSxZQUFZLEtBQUksU0FBUztRQUNqRCxLQUFLLEVBQUUsTUFBTTtRQUNiLE9BQU8sRUFBRSxVQUFVO1FBQ25CLFlBQVksRUFBRSxFQUFFO1FBQ2hCLFFBQVEsRUFBRSxNQUFNO1FBQ2hCLFdBQVcsRUFBRSxDQUFDO1FBQ2QsWUFBWSxFQUFFLENBQUM7UUFDZixNQUFNLEVBQUUsV0FBVyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLFNBQVM7UUFDM0MsVUFBVSxFQUFFLE1BQU07UUFDbEIsT0FBTyxFQUFFLGFBQWEsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO0tBQ2pDLENBQUM7SUFFRixJQUFNLGtCQUFrQixHQUF3QjtRQUM5QyxPQUFPLEVBQUUsTUFBTTtRQUNmLFFBQVEsRUFBRSxNQUFNO1FBQ2hCLFNBQVMsRUFBRSxDQUFDO0tBQ2IsQ0FBQztJQUVGLElBQU0saUJBQWlCLEdBQXdCO1FBQzdDLFFBQVEsRUFBRSxNQUFNO1FBQ2hCLFVBQVUsRUFBRSxHQUFHO1FBQ2YsTUFBTSxFQUFFLGFBQWE7UUFDckIsS0FBSyxFQUFFLGNBQWM7UUFDckIsVUFBVSxZQUFBO0tBQ1gsQ0FBQztJQUVGLElBQU0sb0JBQW9CLEdBQXdCO1FBQ2hELFFBQVEsRUFBRSxNQUFNO1FBQ2hCLEtBQUssRUFBRSxTQUFTO1FBQ2hCLE1BQU0sRUFBRSxDQUFDO1FBQ1QsVUFBVSxZQUFBO0tBQ1gsQ0FBQztJQUVGLE9BQU8sQ0FDTCxlQUFLLEtBQUssRUFBRSxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsYUFBYSxFQUFFLFFBQVEsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLFVBQVUsRUFBRSxZQUFZLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxhQUMxRyxRQUFRLElBQUksQ0FDWCxjQUFLLEtBQUssRUFBRSxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxZQUN0QyxjQUNFLEdBQUcsRUFBRSxRQUFRLEVBQ2IsS0FBSyxFQUFFLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLEdBQzVGLEdBQ0UsQ0FDUCxFQUNBLEtBQUssSUFBSSxjQUFLLEtBQUssRUFBRSxpQkFBaUIsWUFBRyxLQUFLLEdBQU8sRUFDckQsT0FBTyxJQUFJLGNBQUssS0FBSyxFQUFFLG9CQUFvQixZQUFFLEtBQUMsZUFBZSxJQUFDLElBQUksRUFBRSxPQUFPLEdBQUksR0FBTSxFQUNyRixlQUFlLElBQUksZUFBZSxDQUFDLE1BQU0sR0FBRyxDQUFDLElBQUksQ0FDaEQsY0FBSyxLQUFLLEVBQUUsa0JBQWtCLFlBQzNCLGVBQWUsQ0FBQyxHQUFHLENBQUMsVUFBQyxDQUFDLEVBQUUsR0FBRyxJQUFLLE9BQUEsQ0FDL0IsZUFFRSxLQUFLLEVBQUUsU0FBUyxFQUNoQixPQUFPLEVBQUU7d0JBQ1AsSUFBSSxhQUFhOzRCQUFFLE9BQU87d0JBQzFCLFlBQVksSUFBSSxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUM7b0JBQ2xDLENBQUMsWUFFQSxDQUFDLElBUEcsR0FBRyxDQVFILENBQ1IsRUFYZ0MsQ0FXaEMsQ0FBQyxHQUNFLENBQ1AsSUFDRyxDQUNQLENBQUM7QUFDSixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgTWFya2Rvd25NZXNzYWdlIH0gZnJvbSAnLi9NYXJrZG93bk1lc3NhZ2UnO1xuXG5pbnRlcmZhY2UgVGhlbWVMaWtlIHtcbiAgcHJpbWFyeUNvbG9yPzogc3RyaW5nO1xuICBzZWNvbmRhcnlDb2xvcj86IHN0cmluZztcbiAgZm9udEZhbWlseT86IHN0cmluZztcbiAgZm9udFNpemU/OiBzdHJpbmc7XG4gIGJhY2tncm91bmRDb2xvcj86IHN0cmluZztcbiAgdGV4dENvbG9yPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFdlbGNvbWVDYXJkUHJvcHMge1xuICB0aGVtZT86IFRoZW1lTGlrZTtcbiAgaW1hZ2VVcmw/OiBzdHJpbmc7XG4gIHRpdGxlPzogc3RyaW5nO1xuICBjb250ZW50Pzogc3RyaW5nO1xuICBwb3NzaWJsZVF1ZXJpZXM/OiBzdHJpbmdbXTtcbiAgb25RdWlja1F1ZXJ5PzogKHF1ZXJ5OiBzdHJpbmcpID0+IHZvaWQ7XG4gIGlzQWdlbnRUeXBpbmc/OiBib29sZWFuO1xufVxuXG5leHBvcnQgY29uc3QgV2VsY29tZUNhcmQ6IFJlYWN0LkZDPFdlbGNvbWVDYXJkUHJvcHM+ID0gKHtcbiAgdGhlbWUsXG4gIGltYWdlVXJsLFxuICB0aXRsZSxcbiAgY29udGVudCxcbiAgcG9zc2libGVRdWVyaWVzLFxuICBvblF1aWNrUXVlcnksXG4gIGlzQWdlbnRUeXBpbmcgPSBmYWxzZSxcbn0pID0+IHtcbiAgY29uc3QgYWdlbnRUZXh0Q29sb3IgPSAnIzAwMDAwMCc7XG4gIGNvbnN0IGZvbnRGYW1pbHkgPSB0aGVtZT8uZm9udEZhbWlseSB8fCAnUm9ib3RvLCBBcmlhbCwgc2Fucy1zZXJpZic7XG5cbiAgY29uc3QgaXNDbGlja2FibGUgPSBvblF1aWNrUXVlcnkgJiYgIWlzQWdlbnRUeXBpbmc7XG4gIGNvbnN0IGNoaXBTdHlsZTogUmVhY3QuQ1NTUHJvcGVydGllcyA9IHtcbiAgICBkaXNwbGF5OiAnaW5saW5lLWJsb2NrJyxcbiAgICBiYWNrZ3JvdW5kQ29sb3I6IHRoZW1lPy5wcmltYXJ5Q29sb3IgfHwgJyM1QjNERjUnLFxuICAgIGNvbG9yOiAnI2ZmZicsXG4gICAgcGFkZGluZzogJzhweCAxMnB4JyxcbiAgICBib3JkZXJSYWRpdXM6IDEyLFxuICAgIGZvbnRTaXplOiAnMTRweCcsXG4gICAgbWFyZ2luUmlnaHQ6IDgsXG4gICAgbWFyZ2luQm90dG9tOiA4LFxuICAgIGN1cnNvcjogaXNDbGlja2FibGUgPyAncG9pbnRlcicgOiAnZGVmYXVsdCcsXG4gICAgdXNlclNlbGVjdDogJ25vbmUnLFxuICAgIG9wYWNpdHk6IGlzQWdlbnRUeXBpbmcgPyAwLjYgOiAxLFxuICB9O1xuXG4gIGNvbnN0IGNoaXBDb250YWluZXJTdHlsZTogUmVhY3QuQ1NTUHJvcGVydGllcyA9IHtcbiAgICBkaXNwbGF5OiAnZmxleCcsXG4gICAgZmxleFdyYXA6ICd3cmFwJyxcbiAgICBtYXJnaW5Ub3A6IDgsXG4gIH07XG5cbiAgY29uc3Qgd2VsY29tZVRpdGxlU3R5bGU6IFJlYWN0LkNTU1Byb3BlcnRpZXMgPSB7XG4gICAgZm9udFNpemU6ICcyMnB4JyxcbiAgICBmb250V2VpZ2h0OiA3MDAsXG4gICAgbWFyZ2luOiAnOHB4IDAgNHB4IDAnLFxuICAgIGNvbG9yOiBhZ2VudFRleHRDb2xvcixcbiAgICBmb250RmFtaWx5LFxuICB9O1xuXG4gIGNvbnN0IHdlbGNvbWVTdWJ0aXRsZVN0eWxlOiBSZWFjdC5DU1NQcm9wZXJ0aWVzID0ge1xuICAgIGZvbnRTaXplOiAnMTRweCcsXG4gICAgY29sb3I6ICcjNmI3MjgwJyxcbiAgICBtYXJnaW46IDAsXG4gICAgZm9udEZhbWlseSxcbiAgfTtcblxuICByZXR1cm4gKFxuICAgIDxkaXYgc3R5bGU9e3sgZGlzcGxheTogJ2ZsZXgnLCBmbGV4RGlyZWN0aW9uOiAnY29sdW1uJywgZ2FwOiA4LCBhbGlnbkl0ZW1zOiAnZmxleC1zdGFydCcsIHRleHRBbGlnbjogJ2xlZnQnIH19PlxuICAgICAge2ltYWdlVXJsICYmIChcbiAgICAgICAgPGRpdiBzdHlsZT17eyBkaXNwbGF5OiAnZmxleCcsIGdhcDogMTYgfX0+XG4gICAgICAgICAgPGltZ1xuICAgICAgICAgICAgc3JjPXtpbWFnZVVybH1cbiAgICAgICAgICAgIHN0eWxlPXt7IHdpZHRoOiAxNjAsIGhlaWdodDogMTYwLCBvYmplY3RGaXQ6ICdjb250YWluJywgYm9yZGVyUmFkaXVzOiAxMiwgZGlzcGxheTogJ2Jsb2NrJyB9fVxuICAgICAgICAgIC8+XG4gICAgICAgIDwvZGl2PlxuICAgICAgKX1cbiAgICAgIHt0aXRsZSAmJiA8ZGl2IHN0eWxlPXt3ZWxjb21lVGl0bGVTdHlsZX0+e3RpdGxlfTwvZGl2Pn1cbiAgICAgIHtjb250ZW50ICYmIDxkaXYgc3R5bGU9e3dlbGNvbWVTdWJ0aXRsZVN0eWxlfT48TWFya2Rvd25NZXNzYWdlIHRleHQ9e2NvbnRlbnR9IC8+PC9kaXY+fVxuICAgICAge3Bvc3NpYmxlUXVlcmllcyAmJiBwb3NzaWJsZVF1ZXJpZXMubGVuZ3RoID4gMCAmJiAoXG4gICAgICAgIDxkaXYgc3R5bGU9e2NoaXBDb250YWluZXJTdHlsZX0+XG4gICAgICAgICAge3Bvc3NpYmxlUXVlcmllcy5tYXAoKHEsIGlkeCkgPT4gKFxuICAgICAgICAgICAgPHNwYW4gXG4gICAgICAgICAgICAgIGtleT17aWR4fSBcbiAgICAgICAgICAgICAgc3R5bGU9e2NoaXBTdHlsZX0gXG4gICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoaXNBZ2VudFR5cGluZykgcmV0dXJuO1xuICAgICAgICAgICAgICAgIG9uUXVpY2tRdWVyeSAmJiBvblF1aWNrUXVlcnkocSk7XG4gICAgICAgICAgICAgIH19XG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIHtxfVxuICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICkpfVxuICAgICAgICA8L2Rpdj5cbiAgICAgICl9XG4gICAgPC9kaXY+XG4gICk7XG59O1xuXG4iXX0=
|
package/dist/hooks/useChat.d.ts
CHANGED
|
@@ -12,8 +12,11 @@ export interface UseChatProps {
|
|
|
12
12
|
serverUnavailableMessage?: string;
|
|
13
13
|
serverUnavailableContactUrl?: string;
|
|
14
14
|
serverUnavailableContactLabel?: string;
|
|
15
|
+
onConfigLoaded?: (props: {
|
|
16
|
+
chatInputMetadata?: Record<string, any>;
|
|
17
|
+
}) => void;
|
|
15
18
|
}
|
|
16
|
-
export declare const useChat: ({ baseUrl, apiKey, tenant, metadata, useWs, language, onError, onTakeover, onFinalize, serverUnavailableMessage, serverUnavailableContactUrl, serverUnavailableContactLabel }: UseChatProps) => {
|
|
19
|
+
export declare const useChat: ({ baseUrl, apiKey, tenant, metadata, useWs, language, onError, onTakeover, onFinalize, serverUnavailableMessage, serverUnavailableContactUrl, serverUnavailableContactLabel, onConfigLoaded }: UseChatProps) => {
|
|
17
20
|
messages: ChatMessage[];
|
|
18
21
|
isLoading: boolean;
|
|
19
22
|
sendMessage: (text: string, files?: File[], extraMetadata?: Record<string, any>, reCaptchaToken?: string) => Promise<void>;
|