genassist-chat-react 1.0.38-rc.0 → 1.0.39
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 +26 -4
- package/dist/components/AudioPlayer.d.ts +11 -0
- package/dist/components/AudioPlayer.js +199 -0
- package/dist/components/ChatBubble.d.ts +1 -0
- package/dist/components/ChatBubble.js +4 -4
- package/dist/components/ChatMessage.d.ts +3 -0
- package/dist/components/ChatMessage.js +10 -5
- package/dist/components/GenAgentChat.js +279 -845
- package/dist/components/LiveCallControl.d.ts +25 -0
- package/dist/components/LiveCallControl.js +83 -0
- package/dist/components/MarkdownMessage.js +23 -1
- package/dist/components/VoiceInput.d.ts +1 -3
- package/dist/components/VoiceInput.js +262 -48
- package/dist/genassist-chat.es.js +16915 -0
- package/dist/genassist-chat.umd.js +91 -0
- package/dist/hooks/useAudioRecorder.d.ts +8 -0
- package/dist/hooks/useAudioRecorder.js +196 -0
- package/dist/hooks/useChat.d.ts +4 -0
- package/dist/hooks/useChat.js +60 -13
- package/dist/hooks/useFileAttachments.d.ts +16 -0
- package/dist/hooks/useFileAttachments.js +183 -0
- package/dist/hooks/useLiveVoice.d.ts +32 -0
- package/dist/hooks/useLiveVoice.js +292 -0
- package/dist/hooks/useScrollManagement.d.ts +15 -0
- package/dist/hooks/useScrollManagement.js +124 -0
- package/dist/hooks/useThinkingAnimation.d.ts +12 -0
- package/dist/hooks/useThinkingAnimation.js +53 -0
- package/dist/hooks/useViewportManager.d.ts +20 -0
- package/dist/hooks/useViewportManager.js +100 -0
- package/dist/services/chatService.d.ts +1 -0
- package/dist/services/chatService.js +76 -17
- package/dist/styles/genAgentChatStyles.d.ts +82 -0
- package/dist/styles/genAgentChatStyles.js +441 -0
- package/dist/types/index.d.ts +7 -0
- package/dist/types/index.js +1 -1
- package/package.json +2 -2
- package/dist/components/AttachmentPreview.d.ts +0 -8
- package/dist/components/AttachmentPreview.js +0 -77
- package/dist/utils/urlUtil.d.ts +0 -2
- package/dist/utils/urlUtil.js +0 -7
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import type { LiveVoiceStatus } from '../hooks/useLiveVoice';
|
|
3
|
+
interface LiveCallControlProps {
|
|
4
|
+
status: LiveVoiceStatus;
|
|
5
|
+
isActive: boolean;
|
|
6
|
+
onStart: () => void;
|
|
7
|
+
onStop: () => void;
|
|
8
|
+
theme?: {
|
|
9
|
+
primaryColor?: string;
|
|
10
|
+
};
|
|
11
|
+
disabled?: boolean;
|
|
12
|
+
labels?: {
|
|
13
|
+
start?: string;
|
|
14
|
+
listening?: string;
|
|
15
|
+
speaking?: string;
|
|
16
|
+
connecting?: string;
|
|
17
|
+
end?: string;
|
|
18
|
+
};
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Start/End control for a continuous live voice conversation. Presentational:
|
|
22
|
+
* the live session lifecycle lives in {@link useLiveVoice}, surfaced via props.
|
|
23
|
+
*/
|
|
24
|
+
export declare const LiveCallControl: React.FC<LiveCallControlProps>;
|
|
25
|
+
export {};
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { AudioLines, Loader2 } from 'lucide-react';
|
|
3
|
+
var BAR_COUNT = 5;
|
|
4
|
+
/**
|
|
5
|
+
* Start/End control for a continuous live voice conversation. Presentational:
|
|
6
|
+
* the live session lifecycle lives in {@link useLiveVoice}, surfaced via props.
|
|
7
|
+
*/
|
|
8
|
+
export var LiveCallControl = function (_a) {
|
|
9
|
+
var status = _a.status, isActive = _a.isActive, onStart = _a.onStart, onStop = _a.onStop, theme = _a.theme, _b = _a.disabled, disabled = _b === void 0 ? false : _b, labels = _a.labels;
|
|
10
|
+
var primaryColor = (theme === null || theme === void 0 ? void 0 : theme.primaryColor) || '#4f46e5';
|
|
11
|
+
if (!isActive && status !== 'connecting') {
|
|
12
|
+
return (_jsx("button", { type: "button", onClick: onStart, disabled: disabled, style: {
|
|
13
|
+
position: 'absolute',
|
|
14
|
+
right: 6,
|
|
15
|
+
top: '50%',
|
|
16
|
+
transform: 'translateY(-50%)',
|
|
17
|
+
backgroundColor: primaryColor,
|
|
18
|
+
color: '#ffffff',
|
|
19
|
+
border: 'none',
|
|
20
|
+
borderRadius: '50%',
|
|
21
|
+
width: 36,
|
|
22
|
+
height: 36,
|
|
23
|
+
display: 'flex',
|
|
24
|
+
alignItems: 'center',
|
|
25
|
+
justifyContent: 'center',
|
|
26
|
+
cursor: disabled ? 'not-allowed' : 'pointer',
|
|
27
|
+
flexShrink: 0,
|
|
28
|
+
boxShadow: '0 1px 3px rgba(0, 0, 0, 0.12)',
|
|
29
|
+
opacity: disabled ? 0.5 : 1,
|
|
30
|
+
zIndex: 5,
|
|
31
|
+
}, title: (labels === null || labels === void 0 ? void 0 : labels.start) || 'Start live conversation', children: _jsx(AudioLines, { size: 18, color: "#ffffff" }) }));
|
|
32
|
+
}
|
|
33
|
+
var connecting = status === 'connecting';
|
|
34
|
+
var speaking = status === 'speaking';
|
|
35
|
+
var statusLabel = connecting
|
|
36
|
+
? (labels === null || labels === void 0 ? void 0 : labels.connecting) || 'Connecting…'
|
|
37
|
+
: speaking
|
|
38
|
+
? (labels === null || labels === void 0 ? void 0 : labels.speaking) || 'Speaking…'
|
|
39
|
+
: (labels === null || labels === void 0 ? void 0 : labels.listening) || 'Listening…';
|
|
40
|
+
return (_jsxs("div", { style: {
|
|
41
|
+
position: 'absolute',
|
|
42
|
+
inset: 0,
|
|
43
|
+
display: 'flex',
|
|
44
|
+
alignItems: 'center',
|
|
45
|
+
gap: 8,
|
|
46
|
+
padding: '0 6px',
|
|
47
|
+
backgroundColor: '#fff',
|
|
48
|
+
borderRadius: 24,
|
|
49
|
+
zIndex: 10,
|
|
50
|
+
overflow: 'hidden',
|
|
51
|
+
}, children: [_jsxs("div", { style: { display: 'flex', alignItems: 'center', gap: 8, padding: '0 6px', flexShrink: 0 }, children: [connecting ? (_jsx(Loader2, { size: 14, color: primaryColor, style: { animation: 'ga-live-spin 0.9s linear infinite' } })) : (_jsx("span", { style: {
|
|
52
|
+
width: 8,
|
|
53
|
+
height: 8,
|
|
54
|
+
borderRadius: '50%',
|
|
55
|
+
backgroundColor: speaking ? primaryColor : '#10b981',
|
|
56
|
+
animation: 'ga-live-pulse 1.4s ease-in-out infinite',
|
|
57
|
+
flexShrink: 0,
|
|
58
|
+
} })), _jsx("span", { style: { fontSize: 13, fontWeight: 600, color: '#374151', fontFamily: 'inherit' }, children: statusLabel })] }), _jsx("div", { style: { flex: 1, display: 'flex', alignItems: 'center', justifyContent: 'center', gap: 3, height: '100%' }, children: Array.from({ length: BAR_COUNT }).map(function (_, i) { return (_jsx("div", { style: {
|
|
59
|
+
width: 3,
|
|
60
|
+
borderRadius: 3,
|
|
61
|
+
backgroundColor: speaking ? primaryColor : '#10b981',
|
|
62
|
+
opacity: connecting ? 0.3 : 0.8,
|
|
63
|
+
minHeight: 4,
|
|
64
|
+
maxHeight: 20,
|
|
65
|
+
animation: connecting
|
|
66
|
+
? 'none'
|
|
67
|
+
: "ga-live-wave ".concat(0.6 + (i % 3) * 0.18, "s ease-in-out ").concat(i * 0.08, "s infinite alternate"),
|
|
68
|
+
} }, i)); }) }), _jsx("button", { type: "button", onClick: onStop, style: {
|
|
69
|
+
backgroundColor: '#ef4444',
|
|
70
|
+
color: '#fff',
|
|
71
|
+
border: 'none',
|
|
72
|
+
borderRadius: '50%',
|
|
73
|
+
width: 36,
|
|
74
|
+
height: 36,
|
|
75
|
+
display: 'flex',
|
|
76
|
+
alignItems: 'center',
|
|
77
|
+
justifyContent: 'center',
|
|
78
|
+
cursor: 'pointer',
|
|
79
|
+
flexShrink: 0,
|
|
80
|
+
boxShadow: '0 1px 4px rgba(239, 68, 68, 0.3)',
|
|
81
|
+
}, title: (labels === null || labels === void 0 ? void 0 : labels.end) || 'End conversation', children: _jsx(AudioLines, { size: 16, color: "#fff" }) }), _jsx("style", { children: "\n @keyframes ga-live-pulse { 0%,100% { opacity: 1; } 50% { opacity: 0.35; } }\n @keyframes ga-live-spin { to { transform: rotate(360deg); } }\n @keyframes ga-live-wave { 0% { height: 4px; } 100% { height: 18px; } }\n " })] }));
|
|
82
|
+
};
|
|
83
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTGl2ZUNhbGxDb250cm9sLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbXBvbmVudHMvTGl2ZUNhbGxDb250cm9sLnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQ0EsT0FBTyxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFxQm5ELElBQU0sU0FBUyxHQUFHLENBQUMsQ0FBQztBQUVwQjs7O0dBR0c7QUFDSCxNQUFNLENBQUMsSUFBTSxlQUFlLEdBQW1DLFVBQUMsRUFRL0Q7UUFQQyxNQUFNLFlBQUEsRUFDTixRQUFRLGNBQUEsRUFDUixPQUFPLGFBQUEsRUFDUCxNQUFNLFlBQUEsRUFDTixLQUFLLFdBQUEsRUFDTCxnQkFBZ0IsRUFBaEIsUUFBUSxtQkFBRyxLQUFLLEtBQUEsRUFDaEIsTUFBTSxZQUFBO0lBRU4sSUFBTSxZQUFZLEdBQUcsQ0FBQSxLQUFLLGFBQUwsS0FBSyx1QkFBTCxLQUFLLENBQUUsWUFBWSxLQUFJLFNBQVMsQ0FBQztJQUV0RCxJQUFJLENBQUMsUUFBUSxJQUFJLE1BQU0sS0FBSyxZQUFZLEVBQUUsQ0FBQztRQUN6QyxPQUFPLENBQ0wsaUJBQ0UsSUFBSSxFQUFDLFFBQVEsRUFDYixPQUFPLEVBQUUsT0FBTyxFQUNoQixRQUFRLEVBQUUsUUFBUSxFQUNsQixLQUFLLEVBQUU7Z0JBQ0wsUUFBUSxFQUFFLFVBQVU7Z0JBQ3BCLEtBQUssRUFBRSxDQUFDO2dCQUNSLEdBQUcsRUFBRSxLQUFLO2dCQUNWLFNBQVMsRUFBRSxrQkFBa0I7Z0JBQzdCLGVBQWUsRUFBRSxZQUFZO2dCQUM3QixLQUFLLEVBQUUsU0FBUztnQkFDaEIsTUFBTSxFQUFFLE1BQU07Z0JBQ2QsWUFBWSxFQUFFLEtBQUs7Z0JBQ25CLEtBQUssRUFBRSxFQUFFO2dCQUNULE1BQU0sRUFBRSxFQUFFO2dCQUNWLE9BQU8sRUFBRSxNQUFNO2dCQUNmLFVBQVUsRUFBRSxRQUFRO2dCQUNwQixjQUFjLEVBQUUs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O0FBQ0osQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IEF1ZGlvTGluZXMsIExvYWRlcjIgfSBmcm9tICdsdWNpZGUtcmVhY3QnO1xuaW1wb3J0IHR5cGUgeyBMaXZlVm9pY2VTdGF0dXMgfSBmcm9tICcuLi9ob29rcy91c2VMaXZlVm9pY2UnO1xuXG5pbnRlcmZhY2UgTGl2ZUNhbGxDb250cm9sUHJvcHMge1xuICBzdGF0dXM6IExpdmVWb2ljZVN0YXR1cztcbiAgaXNBY3RpdmU6IGJvb2xlYW47XG4gIG9uU3RhcnQ6ICgpID0+IHZvaWQ7XG4gIG9uU3RvcDogKCkgPT4gdm9pZDtcbiAgdGhlbWU/OiB7XG4gICAgcHJpbWFyeUNvbG9yPzogc3RyaW5nO1xuICB9O1xuICBkaXNhYmxlZD86IGJvb2xlYW47XG4gIGxhYmVscz86IHtcbiAgICBzdGFydD86IHN0cmluZztcbiAgICBsaXN0ZW5pbmc/OiBzdHJpbmc7XG4gICAgc3BlYWtpbmc/OiBzdHJpbmc7XG4gICAgY29ubmVjdGluZz86IHN0cmluZztcbiAgICBlbmQ/OiBzdHJpbmc7XG4gIH07XG59XG5cbmNvbnN0IEJBUl9DT1VOVCA9IDU7XG5cbi8qKlxuICogU3RhcnQvRW5kIGNvbnRyb2wgZm9yIGEgY29udGludW91cyBsaXZlIHZvaWNlIGNvbnZlcnNhdGlvbi4gUHJlc2VudGF0aW9uYWw6XG4gKiB0aGUgbGl2ZSBzZXNzaW9uIGxpZmVjeWNsZSBsaXZlcyBpbiB7QGxpbmsgdXNlTGl2ZVZvaWNlfSwgc3VyZmFjZWQgdmlhIHByb3BzLlxuICovXG5leHBvcnQgY29uc3QgTGl2ZUNhbGxDb250cm9sOiBSZWFjdC5GQzxMaXZlQ2FsbENvbnRyb2xQcm9wcz4gPSAoe1xuICBzdGF0dXMsXG4gIGlzQWN0aXZlLFxuICBvblN0YXJ0LFxuICBvblN0b3AsXG4gIHRoZW1lLFxuICBkaXNhYmxlZCA9IGZhbHNlLFxuICBsYWJlbHMsXG59KSA9PiB7XG4gIGNvbnN0IHByaW1hcnlDb2xvciA9IHRoZW1lPy5wcmltYXJ5Q29sb3IgfHwgJyM0ZjQ2ZTUnO1xuXG4gIGlmICghaXNBY3RpdmUgJiYgc3RhdHVzICE9PSAnY29ubmVjdGluZycpIHtcbiAgICByZXR1cm4gKFxuICAgICAgPGJ1dHRvblxuICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgb25DbGljaz17b25TdGFydH1cbiAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICBzdHlsZT17e1xuICAgICAgICAgIHBvc2l0aW9uOiAnYWJzb2x1dGUnLFxuICAgICAgICAgIHJpZ2h0OiA2LFxuICAgICAgICAgIHRvcDogJzUwJScsXG4gICAgICAgICAgdHJhbnNmb3JtOiAndHJhbnNsYXRlWSgtNTAlKScsXG4gICAgICAgICAgYmFja2dyb3VuZENvbG9yOiBwcmltYXJ5Q29sb3IsXG4gICAgICAgICAgY29sb3I6ICcjZmZmZmZmJyxcbiAgICAgICAgICBib3JkZXI6ICdub25lJyxcbiAgICAgICAgICBib3JkZXJSYWRpdXM6ICc1MCUnLFxuICAgICAgICAgIHdpZHRoOiAzNixcbiAgICAgICAgICBoZWlnaHQ6IDM2LFxuICAgICAgICAgIGRpc3BsYXk6ICdmbGV4JyxcbiAgICAgICAgICBhbGlnbkl0ZW1zOiAnY2VudGVyJyxcbiAgICAgICAgICBqdXN0aWZ5Q29udGVudDogJ2NlbnRlcicsXG4gICAgICAgICAgY3Vyc29yOiBkaXNhYmxlZCA/ICdub3QtYWxsb3dlZCcgOiAncG9pbnRlcicsXG4gICAgICAgICAgZmxleFNocmluazogMCxcbiAgICAgICAgICBib3hTaGFkb3c6ICcwIDFweCAzcHggcmdiYSgwLCAwLCAwLCAwLjEyKScsXG4gICAgICAgICAgb3BhY2l0eTogZGlzYWJsZWQgPyAwLjUgOiAxLFxuICAgICAgICAgIHpJbmRleDogNSxcbiAgICAgICAgfX1cbiAgICAgICAgdGl0bGU9e2xhYmVscz8uc3RhcnQgfHwgJ1N0YXJ0IGxpdmUgY29udmVyc2F0aW9uJ31cbiAgICAgID5cbiAgICAgICAgPEF1ZGlvTGluZXMgc2l6ZT17MTh9IGNvbG9yPVwiI2ZmZmZmZlwiIC8+XG4gICAgICA8L2J1dHRvbj5cbiAgICApO1xuICB9XG5cbiAgY29uc3QgY29ubmVjdGluZyA9IHN0YXR1cyA9PT0gJ2Nvbm5lY3RpbmcnO1xuICBjb25zdCBzcGVha2luZyA9IHN0YXR1cyA9PT0gJ3NwZWFraW5nJztcbiAgY29uc3Qgc3RhdHVzTGFiZWwgPSBjb25uZWN0aW5nXG4gICAgPyBsYWJlbHM/LmNvbm5lY3RpbmcgfHwgJ0Nvbm5lY3RpbmfigKYnXG4gICAgOiBzcGVha2luZ1xuICAgID8gbGFiZWxzPy5zcGVha2luZyB8fCAnU3BlYWtpbmfigKYnXG4gICAgOiBsYWJlbHM/Lmxpc3RlbmluZyB8fCAnTGlzdGVuaW5n4oCmJztcblxuICByZXR1cm4gKFxuICAgIDxkaXZcbiAgICAgIHN0eWxlPXt7XG4gICAgICAgIHBvc2l0aW9uOiAnYWJzb2x1dGUnLFxuICAgICAgICBpbnNldDogMCxcbiAgICAgICAgZGlzcGxheTogJ2ZsZXgnLFxuICAgICAgICBhbGlnbkl0ZW1zOiAnY2VudGVyJyxcbiAgICAgICAgZ2FwOiA4LFxuICAgICAgICBwYWRkaW5nOiAnMCA2cHgnLFxuICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6ICcjZmZmJyxcbiAgICAgICAgYm9yZGVyUmFkaXVzOiAyNCxcbiAgICAgICAgekluZGV4OiAxMCxcbiAgICAgICAgb3ZlcmZsb3c6ICdoaWRkZW4nLFxuICAgICAgfX1cbiAgICA+XG4gICAgICB7LyogTGl2ZSBzdGF0dXMgZG90ICovfVxuICAgICAgPGRpdiBzdHlsZT17eyBkaXNwbGF5OiAnZmxleCcsIGFsaWduSXRlbXM6ICdjZW50ZXInLCBnYXA6IDgsIHBhZGRpbmc6ICcwIDZweCcsIGZsZXhTaHJpbms6IDAgfX0+XG4gICAgICAgIHtjb25uZWN0aW5nID8gKFxuICAgICAgICAgIDxMb2FkZXIyIHNpemU9ezE0fSBjb2xvcj17cHJpbWFyeUNvbG9yfSBzdHlsZT17eyBhbmltYXRpb246ICdnYS1saXZlLXNwaW4gMC45cyBsaW5lYXIgaW5maW5pdGUnIH19IC8+XG4gICAgICAgICkgOiAoXG4gICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgIHN0eWxlPXt7XG4gICAgICAgICAgICAgIHdpZHRoOiA4LFxuICAgICAgICAgICAgICBoZWlnaHQ6IDgsXG4gICAgICAgICAgICAgIGJvcmRlclJhZGl1czogJzUwJScsXG4gICAgICAgICAgICAgIGJhY2tncm91bmRDb2xvcjogc3BlYWtpbmcgPyBwcmltYXJ5Q29sb3IgOiAnIzEwYjk4MScsXG4gICAgICAgICAgICAgIGFuaW1hdGlvbjogJ2dhLWxpdmUtcHVsc2UgMS40cyBlYXNlLWluLW91dCBpbmZpbml0ZScsXG4gICAgICAgICAgICAgIGZsZXhTaHJpbms6IDAsXG4gICAgICAgICAgICB9fVxuICAgICAgICAgIC8+XG4gICAgICAgICl9XG4gICAgICAgIDxzcGFuIHN0eWxlPXt7IGZvbnRTaXplOiAxMywgZm9udFdlaWdodDogNjAwLCBjb2xvcjogJyMzNzQxNTEnLCBmb250RmFtaWx5OiAnaW5oZXJpdCcgfX0+XG4gICAgICAgICAge3N0YXR1c0xhYmVsfVxuICAgICAgICA8L3NwYW4+XG4gICAgICA8L2Rpdj5cblxuICAgICAgey8qIFdhdmUgYW5pbWF0aW9uIHdoaWxlIGFjdGl2ZSAqL31cbiAgICAgIDxkaXYgc3R5bGU9e3sgZmxleDogMSwgZGlzcGxheTogJ2ZsZXgnLCBhbGlnbkl0ZW1zOiAnY2VudGVyJywganVzdGlmeUNvbnRlbnQ6ICdjZW50ZXInLCBnYXA6IDMsIGhlaWdodDogJzEwMCUnIH19PlxuICAgICAgICB7QXJyYXkuZnJvbSh7IGxlbmd0aDogQkFSX0NPVU5UIH0pLm1hcCgoXywgaSkgPT4gKFxuICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgIGtleT17aX1cbiAgICAgICAgICAgIHN0eWxlPXt7XG4gICAgICAgICAgICAgIHdpZHRoOiAzLFxuICAgICAgICAgICAgICBib3JkZXJSYWRpdXM6IDMsXG4gICAgICAgICAgICAgIGJhY2tncm91bmRDb2xvcjogc3BlYWtpbmcgPyBwcmltYXJ5Q29sb3IgOiAnIzEwYjk4MScsXG4gICAgICAgICAgICAgIG9wYWNpdHk6IGNvbm5lY3RpbmcgPyAwLjMgOiAwLjgsXG4gICAgICAgICAgICAgIG1pbkhlaWdodDogNCxcbiAgICAgICAgICAgICAgbWF4SGVpZ2h0OiAyMCxcbiAgICAgICAgICAgICAgYW5pbWF0aW9uOiBjb25uZWN0aW5nXG4gICAgICAgICAgICAgICAgPyAnbm9uZSdcbiAgICAgICAgICAgICAgICA6IGBnYS1saXZlLXdhdmUgJHswLjYgKyAoaSAlIDMpICogMC4xOH1zIGVhc2UtaW4tb3V0ICR7aSAqIDAuMDh9cyBpbmZpbml0ZSBhbHRlcm5hdGVgLFxuICAgICAgICAgICAgfX1cbiAgICAgICAgICAvPlxuICAgICAgICApKX1cbiAgICAgIDwvZGl2PlxuXG4gICAgICB7LyogRW5kIGNhbGwgKi99XG4gICAgICA8YnV0dG9uXG4gICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICBvbkNsaWNrPXtvblN0b3B9XG4gICAgICAgIHN0eWxlPXt7XG4gICAgICAgICAgYmFja2dyb3VuZENvbG9yOiAnI2VmNDQ0NCcsXG4gICAgICAgICAgY29sb3I6ICcjZmZmJyxcbiAgICAgICAgICBib3JkZXI6ICdub25lJyxcbiAgICAgICAgICBib3JkZXJSYWRpdXM6ICc1MCUnLFxuICAgICAgICAgIHdpZHRoOiAzNixcbiAgICAgICAgICBoZWlnaHQ6IDM2LFxuICAgICAgICAgIGRpc3BsYXk6ICdmbGV4JyxcbiAgICAgICAgICBhbGlnbkl0ZW1zOiAnY2VudGVyJyxcbiAgICAgICAgICBqdXN0aWZ5Q29udGVudDogJ2NlbnRlcicsXG4gICAgICAgICAgY3Vyc29yOiAncG9pbnRlcicsXG4gICAgICAgICAgZmxleFNocmluazogMCxcbiAgICAgICAgICBib3hTaGFkb3c6ICcwIDFweCA0cHggcmdiYSgyMzksIDY4LCA2OCwgMC4zKScsXG4gICAgICAgIH19XG4gICAgICAgIHRpdGxlPXtsYWJlbHM/LmVuZCB8fCAnRW5kIGNvbnZlcnNhdGlvbid9XG4gICAgICA+XG4gICAgICAgIDxBdWRpb0xpbmVzIHNpemU9ezE2fSBjb2xvcj1cIiNmZmZcIiAvPlxuICAgICAgPC9idXR0b24+XG5cbiAgICAgIDxzdHlsZT57YFxuICAgICAgICBAa2V5ZnJhbWVzIGdhLWxpdmUtcHVsc2UgeyAwJSwxMDAlIHsgb3BhY2l0eTogMTsgfSA1MCUgeyBvcGFjaXR5OiAwLjM1OyB9IH1cbiAgICAgICAgQGtleWZyYW1lcyBnYS1saXZlLXNwaW4geyB0byB7IHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7IH0gfVxuICAgICAgICBAa2V5ZnJhbWVzIGdhLWxpdmUtd2F2ZSB7IDAlIHsgaGVpZ2h0OiA0cHg7IH0gMTAwJSB7IGhlaWdodDogMThweDsgfSB9XG4gICAgICBgfTwvc3R5bGU+XG4gICAgPC9kaXY+XG4gICk7XG59O1xuIl19
|
|
@@ -51,6 +51,28 @@ export var MarkdownMessage = function (_a) {
|
|
|
51
51
|
var href = _a.href, children = _a.children, props = __rest(_a, ["href", "children"]);
|
|
52
52
|
return (_jsx("a", __assign({ href: href, target: "_blank", rel: "noopener noreferrer" }, props, { style: { color: 'inherit', textDecoration: 'underline', cursor: 'pointer' }, children: children })));
|
|
53
53
|
},
|
|
54
|
+
ul: function (_a) {
|
|
55
|
+
var _node = _a.node, children = _a.children, props = __rest(_a, ["node", "children"]);
|
|
56
|
+
return (_jsx("ul", __assign({}, props, { style: {
|
|
57
|
+
margin: '0.25em 0',
|
|
58
|
+
paddingLeft: '1.5em',
|
|
59
|
+
listStylePosition: 'outside',
|
|
60
|
+
whiteSpace: 'normal',
|
|
61
|
+
}, children: children })));
|
|
62
|
+
},
|
|
63
|
+
ol: function (_a) {
|
|
64
|
+
var _node = _a.node, children = _a.children, props = __rest(_a, ["node", "children"]);
|
|
65
|
+
return (_jsx("ol", __assign({}, props, { style: {
|
|
66
|
+
margin: '0.25em 0',
|
|
67
|
+
paddingLeft: '1.5em',
|
|
68
|
+
listStylePosition: 'outside',
|
|
69
|
+
whiteSpace: 'normal',
|
|
70
|
+
}, children: children })));
|
|
71
|
+
},
|
|
72
|
+
li: function (_a) {
|
|
73
|
+
var _node = _a.node, children = _a.children, props = __rest(_a, ["node", "children"]);
|
|
74
|
+
return (_jsx("li", __assign({}, props, { style: { margin: '0.15em 0' }, children: children })));
|
|
75
|
+
},
|
|
54
76
|
}, children: text }) }));
|
|
55
77
|
};
|
|
56
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
78
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTWFya2Rvd25NZXNzYWdlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbXBvbmVudHMvTWFya2Rvd25NZXNzYWdlLnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFDQSxPQUFPLGFBQWEsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzQyxPQUFPLFNBQVMsTUFBTSxZQUFZLENBQUM7QUFDbkMsT0FBTyxjQUFjLEVBQUUsRUFBRSxhQUFhLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUVoRSxJQUFNLGNBQWMseUJBQ2YsYUFBYSxLQUNoQixVQUFVLHdCQUNMLGFBQWEsQ0FBQyxVQUFVLEtBQzNCLENBQUMsa0NBQ0ksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLE1BQUEsYUFBYSxDQUFDLFVBQVUsMENBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQ3ZGLFFBQVE7WUFDUixLQUFLO3VCQUdWLENBQUM7QUFPRjs7OztHQUlHO0FBQ0gsTUFBTSxDQUFDLElBQU0sZUFBZSxHQUFtQyxVQUFDLEVBQWU7UUFBYixJQUFJLFVBQUEsRUFBRSxLQUFLLFdBQUE7SUFDM0UsSUFBTSxTQUFTLGNBQ2IsVUFBVSxFQUFFLFVBQVUsRUFDdEIsVUFBVSxFQUFFLEdBQUcsRUFDZixNQUFNLEVBQUUsQ0FBQyxJQUNOLEtBQUssQ0FDVCxDQUFDO0lBRUYsT0FBTyxDQUNMLGNBQUssS0FBSyxFQUFFLFNBQVMsWUFDbkIsS0FBQyxhQUFhLElBQ1osYUFBYSxFQUFFLENBQUMsU0FBUyxDQUFDLEVBQzFCLGFBQWEsRUFBRSxDQUFDLGNBQWMsQ0FBQyxjQUFjLENBQWdDLENBQUMsRUFDOUUsVUFBVSxFQUFFO2dCQUNWLENBQUMsRUFBRSxVQUFDLEVBQTRCO29CQUExQixJQUFBLElBQUksVUFBQSxFQUFFLFFBQVEsY0FBQSxFQUFLLEtBQUssY0FBMUIsb0JBQTRCLENBQUY7b0JBQU8sT0FBQSxDQUNuQyxxQkFDRSxJQUFJLEVBQUUsSUFBSSxFQUNWLE1BQU0sRUFBQyxRQUFRLEVBQ2YsR0FBRyxFQUFDLHFCQUFxQixJQUNyQixLQUFLLElBQ1QsS0FBSyxFQUFFLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxjQUFjLEVBQUUsV0FBVyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsWUFFMUUsUUFBUSxJQUNQLENBQ0wsQ0FBQTtpQkFBQTtnQkFDRCxFQUFFLEVBQUUsVUFBQyxFQUFtQztvQkFBakMsSUFBTSxLQUFLLFVBQUEsRUFBRSxRQUFRLGNBQUEsRUFBSyxLQUFLLGNBQWpDLG9CQUFtQyxDQUFGO29CQUFPLE9BQUEsQ0FDM0Msd0JBQ00sS0FBSyxJQUNULEtBQUssRUFBRTs0QkFDTCxNQUFNLEVBQUUsVUFBVTs0QkFDbEIsV0FBVyxFQUFFLE9BQU87NEJBQ3BCLGlCQUFpQixFQUFFLFNBQVM7NEJBQzVCLFVBQVUsRUFBRSxRQUFRO3lCQUNyQixZQUVBLFFBQVEsSUFDTixDQUNOLENBQUE7aUJBQUE7Z0JBQ0QsRUFBRSxFQUFFLFVBQUMsRUFBbUM7b0JBQWpDLElBQU0sS0FBSyxVQUFBLEVBQUUsUUFBUSxjQUFBLEVBQUssS0FBSyxjQUFqQyxvQkFBbUMsQ0FBRjtvQkFBTyxPQUFBLENBQzNDLHdCQUNNLEtBQUssSUFDVCxLQUFLLEVBQUU7NEJBQ0wsTUFBTSxFQUFFLFVBQVU7NEJBQ2xCLFdBQVcsRUFBRSxPQUFPOzRCQUNwQixpQkFBaUIsRUFBRSxTQUFTOzRCQUM1QixVQUFVLEVBQUUsUUFBUTt5QkFDckIsWUFFQSxRQUFRLElBQ04sQ0FDTixDQUFBO2lCQUFBO2dCQUNELEVBQUUsRUFBRSxVQUFDLEVBQW1DO29CQUFqQyxJQUFNLEtBQUssVUFBQSxFQUFFLFFBQVEsY0FBQSxFQUFLLEtBQUssY0FBakMsb0JBQW1DLENBQUY7b0JBQU8sT0FBQSxDQUMzQyx3QkFBUSxLQUFLLElBQUUsS0FBSyxFQUFFLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxZQUN6QyxRQUFRLElBQ04sQ0FDTixDQUFBO2lCQUFBO2FBQ0YsWUFFQSxJQUFJLEdBQ1MsR0FDWixDQUNQLENBQUM7QUFDSixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IFJlYWN0TWFya2Rvd24gZnJvbSAncmVhY3QtbWFya2Rvd24nO1xuaW1wb3J0IHJlbWFya0dmbSBmcm9tICdyZW1hcmstZ2ZtJztcbmltcG9ydCByZWh5cGVTYW5pdGl6ZSwgeyBkZWZhdWx0U2NoZW1hIH0gZnJvbSAncmVoeXBlLXNhbml0aXplJztcblxuY29uc3Qgc2FuaXRpemVTY2hlbWEgPSB7XG4gIC4uLmRlZmF1bHRTY2hlbWEsXG4gIGF0dHJpYnV0ZXM6IHtcbiAgICAuLi5kZWZhdWx0U2NoZW1hLmF0dHJpYnV0ZXMsXG4gICAgYTogW1xuICAgICAgLi4uKEFycmF5LmlzQXJyYXkoZGVmYXVsdFNjaGVtYS5hdHRyaWJ1dGVzPy5hKSA/IGRlZmF1bHRTY2hlbWEuYXR0cmlidXRlcy5hIDogWydocmVmJ10pLFxuICAgICAgJ3RhcmdldCcsXG4gICAgICAncmVsJyxcbiAgICBdLFxuICB9LFxufTtcblxuZXhwb3J0IGludGVyZmFjZSBNYXJrZG93bk1lc3NhZ2VQcm9wcyB7XG4gIHRleHQ6IHN0cmluZztcbiAgc3R5bGU/OiBSZWFjdC5DU1NQcm9wZXJ0aWVzO1xufVxuXG4vKipcbiAqIC0gQXV0by1saW5raWZpZXMgYmFyZSBVUkxzIChodHRwczovLy4uLiwgaHR0cDovLy4uLiwgbWFpbHRvOi4uLikuXG4gKiAtIEFsbCBleHRlcm5hbCBsaW5rcyBvcGVuIGluIGEgbmV3IHRhYiB3aXRoIHRhcmdldD1cIl9ibGFua1wiIGFuZCByZWw9XCJub29wZW5lciBub3JlZmVycmVyXCIuXG4gKiAtIE5vIGRhbmdlcm91c2x5U2V0SW5uZXJIVE1MIHdpdGhvdXQgc2FuaXRpemF0aW9uOyB1c2VzIHJlaHlwZS1zYW5pdGl6ZS5cbiAqL1xuZXhwb3J0IGNvbnN0IE1hcmtkb3duTWVzc2FnZTogUmVhY3QuRkM8TWFya2Rvd25NZXNzYWdlUHJvcHM+ID0gKHsgdGV4dCwgc3R5bGUgfSkgPT4ge1xuICBjb25zdCBiYXNlU3R5bGU6IFJlYWN0LkNTU1Byb3BlcnRpZXMgPSB7XG4gICAgd2hpdGVTcGFjZTogJ3ByZS13cmFwJyxcbiAgICBsaW5lSGVpZ2h0OiAxLjUsXG4gICAgbWFyZ2luOiAwLFxuICAgIC4uLnN0eWxlLFxuICB9O1xuXG4gIHJldHVybiAoXG4gICAgPGRpdiBzdHlsZT17YmFzZVN0eWxlfT5cbiAgICAgIDxSZWFjdE1hcmtkb3duXG4gICAgICAgIHJlbWFya1BsdWdpbnM9e1tyZW1hcmtHZm1dfVxuICAgICAgICByZWh5cGVQbHVnaW5zPXtbcmVoeXBlU2FuaXRpemUoc2FuaXRpemVTY2hlbWEpIGFzIGltcG9ydCgndW5pZmllZCcpLlBsdWdnYWJsZV19XG4gICAgICAgIGNvbXBvbmVudHM9e3tcbiAgICAgICAgICBhOiAoeyBocmVmLCBjaGlsZHJlbiwgLi4ucHJvcHMgfSkgPT4gKFxuICAgICAgICAgICAgPGFcbiAgICAgICAgICAgICAgaHJlZj17aHJlZn1cbiAgICAgICAgICAgICAgdGFyZ2V0PVwiX2JsYW5rXCJcbiAgICAgICAgICAgICAgcmVsPVwibm9vcGVuZXIgbm9yZWZlcnJlclwiXG4gICAgICAgICAgICAgIHsuLi5wcm9wc31cbiAgICAgICAgICAgICAgc3R5bGU9e3sgY29sb3I6ICdpbmhlcml0JywgdGV4dERlY29yYXRpb246ICd1bmRlcmxpbmUnLCBjdXJzb3I6ICdwb2ludGVyJyB9fVxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICB7Y2hpbGRyZW59XG4gICAgICAgICAgICA8L2E+XG4gICAgICAgICAgKSxcbiAgICAgICAgICB1bDogKHsgbm9kZTogX25vZGUsIGNoaWxkcmVuLCAuLi5wcm9wcyB9KSA9PiAoXG4gICAgICAgICAgICA8dWxcbiAgICAgICAgICAgICAgey4uLnByb3BzfVxuICAgICAgICAgICAgICBzdHlsZT17e1xuICAgICAgICAgICAgICAgIG1hcmdpbjogJzAuMjVlbSAwJyxcbiAgICAgICAgICAgICAgICBwYWRkaW5nTGVmdDogJzEuNWVtJyxcbiAgICAgICAgICAgICAgICBsaXN0U3R5bGVQb3NpdGlvbjogJ291dHNpZGUnLFxuICAgICAgICAgICAgICAgIHdoaXRlU3BhY2U6ICdub3JtYWwnLFxuICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICB7Y2hpbGRyZW59XG4gICAgICAgICAgICA8L3VsPlxuICAgICAgICAgICksXG4gICAgICAgICAgb2w6ICh7IG5vZGU6IF9ub2RlLCBjaGlsZHJlbiwgLi4ucHJvcHMgfSkgPT4gKFxuICAgICAgICAgICAgPG9sXG4gICAgICAgICAgICAgIHsuLi5wcm9wc31cbiAgICAgICAgICAgICAgc3R5bGU9e3tcbiAgICAgICAgICAgICAgICBtYXJnaW46ICcwLjI1ZW0gMCcsXG4gICAgICAgICAgICAgICAgcGFkZGluZ0xlZnQ6ICcxLjVlbScsXG4gICAgICAgICAgICAgICAgbGlzdFN0eWxlUG9zaXRpb246ICdvdXRzaWRlJyxcbiAgICAgICAgICAgICAgICB3aGl0ZVNwYWNlOiAnbm9ybWFsJyxcbiAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAge2NoaWxkcmVufVxuICAgICAgICAgICAgPC9vbD5cbiAgICAgICAgICApLFxuICAgICAgICAgIGxpOiAoeyBub2RlOiBfbm9kZSwgY2hpbGRyZW4sIC4uLnByb3BzIH0pID0+IChcbiAgICAgICAgICAgIDxsaSB7Li4ucHJvcHN9IHN0eWxlPXt7IG1hcmdpbjogJzAuMTVlbSAwJyB9fT5cbiAgICAgICAgICAgICAge2NoaWxkcmVufVxuICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICApLFxuICAgICAgICB9fVxuICAgICAgPlxuICAgICAgICB7dGV4dH1cbiAgICAgIDwvUmVhY3RNYXJrZG93bj5cbiAgICA8L2Rpdj5cbiAgKTtcbn07XG4iXX0=
|
|
@@ -1,9 +1,7 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
interface VoiceInputProps {
|
|
3
|
-
|
|
3
|
+
onAudioReady: (blob: Blob, format: string) => void;
|
|
4
4
|
onError: (error: Error) => void;
|
|
5
|
-
baseUrl: string;
|
|
6
|
-
apiKey: string;
|
|
7
5
|
theme?: {
|
|
8
6
|
primaryColor?: string;
|
|
9
7
|
backgroundColor?: string;
|
|
@@ -1,52 +1,266 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
1
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
2
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
3
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
4
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
5
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
6
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
7
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
|
+
});
|
|
9
|
+
};
|
|
10
|
+
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
11
|
+
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
|
|
12
|
+
return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
13
|
+
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
14
|
+
function step(op) {
|
|
15
|
+
if (f) throw new TypeError("Generator is already executing.");
|
|
16
|
+
while (g && (g = 0, op[0] && (_ = 0)), _) try {
|
|
17
|
+
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
18
|
+
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
19
|
+
switch (op[0]) {
|
|
20
|
+
case 0: case 1: t = op; break;
|
|
21
|
+
case 4: _.label++; return { value: op[1], done: false };
|
|
22
|
+
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
23
|
+
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
24
|
+
default:
|
|
25
|
+
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
26
|
+
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
27
|
+
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
28
|
+
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
29
|
+
if (t[2]) _.ops.pop();
|
|
30
|
+
_.trys.pop(); continue;
|
|
31
|
+
}
|
|
32
|
+
op = body.call(thisArg, _);
|
|
33
|
+
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
34
|
+
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
35
|
+
}
|
|
36
|
+
};
|
|
37
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
38
|
+
import { useState, useRef, useCallback, useEffect } from 'react';
|
|
39
|
+
import { Mic, Square, Send, Trash2 } from 'lucide-react';
|
|
40
|
+
import { useAudioRecorder } from '../hooks/useAudioRecorder';
|
|
41
|
+
import { AudioPlayer } from './AudioPlayer';
|
|
42
|
+
var BAR_COUNT = 32;
|
|
43
|
+
var BAR_HEIGHTS = Array.from({ length: BAR_COUNT }, function (_, i) {
|
|
44
|
+
var center = BAR_COUNT / 2;
|
|
45
|
+
var dist = Math.abs(i - center) / center;
|
|
46
|
+
return 0.3 + 0.7 * (1 - dist * dist);
|
|
47
|
+
});
|
|
5
48
|
export var VoiceInput = function (_a) {
|
|
6
|
-
var
|
|
7
|
-
var _c =
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
var
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
var
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
49
|
+
var onAudioReady = _a.onAudioReady, onError = _a.onError, theme = _a.theme, _b = _a.disabled, disabled = _b === void 0 ? false : _b;
|
|
50
|
+
var _c = useState('idle'), voiceState = _c[0], setVoiceState = _c[1];
|
|
51
|
+
var _d = useState(null), pendingBlob = _d[0], setPendingBlob = _d[1];
|
|
52
|
+
var _e = useState('webm'), pendingFormat = _e[0], setPendingFormat = _e[1];
|
|
53
|
+
var _f = useState(null), blobUrl = _f[0], setBlobUrl = _f[1];
|
|
54
|
+
var _g = useState(0), recordingTime = _g[0], setRecordingTime = _g[1];
|
|
55
|
+
var timerRef = useRef(null);
|
|
56
|
+
var handleRecordingDone = useCallback(function (blob, format) {
|
|
57
|
+
setPendingBlob(blob);
|
|
58
|
+
setPendingFormat(format);
|
|
59
|
+
var url = URL.createObjectURL(blob);
|
|
60
|
+
setBlobUrl(url);
|
|
61
|
+
setVoiceState('preview');
|
|
62
|
+
if (timerRef.current) {
|
|
63
|
+
clearInterval(timerRef.current);
|
|
64
|
+
timerRef.current = null;
|
|
65
|
+
}
|
|
66
|
+
}, []);
|
|
67
|
+
var _h = useAudioRecorder(handleRecordingDone, onError), isRecording = _h.isRecording, startRecording = _h.startRecording, stopRecording = _h.stopRecording, cancelRecording = _h.cancelRecording;
|
|
68
|
+
var handleMicClick = useCallback(function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
69
|
+
return __generator(this, function (_a) {
|
|
70
|
+
switch (_a.label) {
|
|
71
|
+
case 0:
|
|
72
|
+
if (disabled)
|
|
73
|
+
return [2 /*return*/];
|
|
74
|
+
setRecordingTime(0);
|
|
75
|
+
return [4 /*yield*/, startRecording()];
|
|
76
|
+
case 1:
|
|
77
|
+
_a.sent();
|
|
78
|
+
setVoiceState('recording');
|
|
79
|
+
timerRef.current = window.setInterval(function () { return setRecordingTime(function (t) { return t + 1; }); }, 1000);
|
|
80
|
+
return [2 /*return*/];
|
|
81
|
+
}
|
|
82
|
+
});
|
|
83
|
+
}); }, [disabled, startRecording]);
|
|
84
|
+
var handleStop = useCallback(function () {
|
|
85
|
+
stopRecording();
|
|
86
|
+
}, [stopRecording]);
|
|
87
|
+
var handleSend = useCallback(function () {
|
|
88
|
+
if (pendingBlob) {
|
|
89
|
+
onAudioReady(pendingBlob, pendingFormat);
|
|
90
|
+
}
|
|
91
|
+
cleanup();
|
|
92
|
+
}, [pendingBlob, pendingFormat, onAudioReady]);
|
|
93
|
+
var handleDiscard = useCallback(function () {
|
|
94
|
+
cleanup();
|
|
95
|
+
}, []);
|
|
96
|
+
var cleanup = function () {
|
|
97
|
+
if (blobUrl)
|
|
98
|
+
URL.revokeObjectURL(blobUrl);
|
|
99
|
+
setBlobUrl(null);
|
|
100
|
+
setPendingBlob(null);
|
|
101
|
+
setVoiceState('idle');
|
|
102
|
+
setRecordingTime(0);
|
|
103
|
+
if (timerRef.current) {
|
|
104
|
+
clearInterval(timerRef.current);
|
|
105
|
+
timerRef.current = null;
|
|
106
|
+
}
|
|
29
107
|
};
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
cursor: isDisabled ? 'not-allowed' : 'pointer',
|
|
44
|
-
outline: 'none',
|
|
45
|
-
transition: 'all 0.2s ease',
|
|
46
|
-
flexShrink: 0,
|
|
47
|
-
boxShadow: '0 1px 3px rgba(0, 0, 0, 0.08)',
|
|
48
|
-
opacity: isDisabled ? 0.6 : 1,
|
|
108
|
+
useEffect(function () {
|
|
109
|
+
return function () {
|
|
110
|
+
if (timerRef.current)
|
|
111
|
+
clearInterval(timerRef.current);
|
|
112
|
+
if (blobUrl)
|
|
113
|
+
URL.revokeObjectURL(blobUrl);
|
|
114
|
+
};
|
|
115
|
+
}, []);
|
|
116
|
+
var primaryColor = (theme === null || theme === void 0 ? void 0 : theme.primaryColor) || '#4f46e5';
|
|
117
|
+
var formatTime = function (s) {
|
|
118
|
+
var m = Math.floor(s / 60);
|
|
119
|
+
var sec = s % 60;
|
|
120
|
+
return "".concat(m, ":").concat(sec.toString().padStart(2, '0'));
|
|
49
121
|
};
|
|
50
|
-
|
|
122
|
+
if (voiceState === 'idle') {
|
|
123
|
+
return (_jsx("button", { type: "button", onClick: handleMicClick, disabled: disabled, style: {
|
|
124
|
+
position: 'absolute',
|
|
125
|
+
right: 6,
|
|
126
|
+
top: '50%',
|
|
127
|
+
transform: 'translateY(-50%)',
|
|
128
|
+
backgroundColor: primaryColor,
|
|
129
|
+
color: '#ffffff',
|
|
130
|
+
border: 'none',
|
|
131
|
+
borderRadius: '50%',
|
|
132
|
+
width: 36,
|
|
133
|
+
height: 36,
|
|
134
|
+
display: 'flex',
|
|
135
|
+
alignItems: 'center',
|
|
136
|
+
justifyContent: 'center',
|
|
137
|
+
cursor: disabled ? 'not-allowed' : 'pointer',
|
|
138
|
+
flexShrink: 0,
|
|
139
|
+
boxShadow: '0 1px 3px rgba(0, 0, 0, 0.12)',
|
|
140
|
+
opacity: disabled ? 0.5 : 1,
|
|
141
|
+
zIndex: 5,
|
|
142
|
+
transition: 'opacity 0.15s ease',
|
|
143
|
+
}, title: "Start Recording", children: _jsx(Mic, { size: 18, color: "#ffffff" }) }));
|
|
144
|
+
}
|
|
145
|
+
if (voiceState === 'recording') {
|
|
146
|
+
return (_jsxs("div", { style: {
|
|
147
|
+
position: 'absolute',
|
|
148
|
+
inset: 0,
|
|
149
|
+
display: 'flex',
|
|
150
|
+
alignItems: 'center',
|
|
151
|
+
gap: 0,
|
|
152
|
+
padding: '0 6px',
|
|
153
|
+
backgroundColor: '#fff',
|
|
154
|
+
borderRadius: 24,
|
|
155
|
+
zIndex: 10,
|
|
156
|
+
overflow: 'hidden',
|
|
157
|
+
}, children: [_jsx("button", { type: "button", onClick: function () { cancelRecording(); cleanup(); }, style: {
|
|
158
|
+
background: 'none',
|
|
159
|
+
border: 'none',
|
|
160
|
+
cursor: 'pointer',
|
|
161
|
+
padding: 6,
|
|
162
|
+
display: 'flex',
|
|
163
|
+
alignItems: 'center',
|
|
164
|
+
justifyContent: 'center',
|
|
165
|
+
color: '#9ca3af',
|
|
166
|
+
borderRadius: '50%',
|
|
167
|
+
flexShrink: 0,
|
|
168
|
+
transition: 'color 0.15s ease',
|
|
169
|
+
}, title: "Cancel", onMouseEnter: function (e) { return (e.currentTarget.style.color = '#6b7280'); }, onMouseLeave: function (e) { return (e.currentTarget.style.color = '#9ca3af'); }, children: _jsx(Trash2, { size: 18 }) }), _jsxs("div", { style: {
|
|
170
|
+
display: 'flex',
|
|
171
|
+
alignItems: 'center',
|
|
172
|
+
gap: 6,
|
|
173
|
+
padding: '0 8px 0 4px',
|
|
174
|
+
flexShrink: 0,
|
|
175
|
+
}, children: [_jsx("div", { style: {
|
|
176
|
+
width: 8,
|
|
177
|
+
height: 8,
|
|
178
|
+
borderRadius: '50%',
|
|
179
|
+
backgroundColor: '#ef4444',
|
|
180
|
+
animation: 'ga-rec-pulse 1.5s ease-in-out infinite',
|
|
181
|
+
flexShrink: 0,
|
|
182
|
+
} }), _jsx("span", { style: {
|
|
183
|
+
fontSize: 13,
|
|
184
|
+
fontWeight: 600,
|
|
185
|
+
color: '#374151',
|
|
186
|
+
fontVariantNumeric: 'tabular-nums',
|
|
187
|
+
minWidth: 32,
|
|
188
|
+
fontFamily: 'inherit',
|
|
189
|
+
}, children: formatTime(recordingTime) })] }), _jsx("div", { style: {
|
|
190
|
+
flex: 1,
|
|
191
|
+
display: 'flex',
|
|
192
|
+
alignItems: 'center',
|
|
193
|
+
justifyContent: 'center',
|
|
194
|
+
gap: 2,
|
|
195
|
+
height: '100%',
|
|
196
|
+
padding: '0 4px',
|
|
197
|
+
overflow: 'hidden',
|
|
198
|
+
}, children: BAR_HEIGHTS.map(function (scale, i) { return (_jsx("div", { style: {
|
|
199
|
+
width: 2.5,
|
|
200
|
+
borderRadius: 3,
|
|
201
|
+
backgroundColor: primaryColor,
|
|
202
|
+
opacity: 0.55 + 0.45 * scale,
|
|
203
|
+
animation: "ga-wave ".concat(0.6 + (i % 5) * 0.15, "s ease-in-out ").concat(i * 0.04, "s infinite alternate"),
|
|
204
|
+
minHeight: 3,
|
|
205
|
+
maxHeight: Math.round(scale * 26),
|
|
206
|
+
flexShrink: 0,
|
|
207
|
+
} }, i)); }) }), _jsx("button", { type: "button", onClick: handleStop, style: {
|
|
208
|
+
backgroundColor: '#ef4444',
|
|
209
|
+
color: '#fff',
|
|
210
|
+
border: 'none',
|
|
211
|
+
borderRadius: '50%',
|
|
212
|
+
width: 36,
|
|
213
|
+
height: 36,
|
|
214
|
+
display: 'flex',
|
|
215
|
+
alignItems: 'center',
|
|
216
|
+
justifyContent: 'center',
|
|
217
|
+
cursor: 'pointer',
|
|
218
|
+
flexShrink: 0,
|
|
219
|
+
boxShadow: '0 1px 4px rgba(239, 68, 68, 0.3)',
|
|
220
|
+
transition: 'box-shadow 0.15s ease',
|
|
221
|
+
}, title: "Stop Recording", onMouseEnter: function (e) { return (e.currentTarget.style.boxShadow = '0 2px 8px rgba(239, 68, 68, 0.4)'); }, onMouseLeave: function (e) { return (e.currentTarget.style.boxShadow = '0 1px 4px rgba(239, 68, 68, 0.3)'); }, children: _jsx(Square, { size: 12, fill: "#fff" }) }), _jsx("style", { children: "\n @keyframes ga-wave {\n 0% { height: 3px; }\n 100% { height: var(--ga-wave-h, 22px); }\n }\n @keyframes ga-rec-pulse {\n 0%, 100% { opacity: 1; }\n 50% { opacity: 0.3; }\n }\n " })] }));
|
|
222
|
+
}
|
|
223
|
+
return (_jsxs("div", { style: {
|
|
224
|
+
position: 'absolute',
|
|
225
|
+
inset: 0,
|
|
226
|
+
display: 'flex',
|
|
227
|
+
alignItems: 'center',
|
|
228
|
+
gap: 0,
|
|
229
|
+
padding: '0 6px',
|
|
230
|
+
backgroundColor: '#fff',
|
|
231
|
+
borderRadius: 24,
|
|
232
|
+
zIndex: 10,
|
|
233
|
+
overflow: 'hidden',
|
|
234
|
+
}, children: [_jsx("button", { type: "button", onClick: handleDiscard, style: {
|
|
235
|
+
background: 'none',
|
|
236
|
+
border: 'none',
|
|
237
|
+
cursor: 'pointer',
|
|
238
|
+
padding: 6,
|
|
239
|
+
display: 'flex',
|
|
240
|
+
alignItems: 'center',
|
|
241
|
+
justifyContent: 'center',
|
|
242
|
+
color: '#9ca3af',
|
|
243
|
+
borderRadius: '50%',
|
|
244
|
+
flexShrink: 0,
|
|
245
|
+
transition: 'color 0.15s ease',
|
|
246
|
+
}, title: "Discard", onMouseEnter: function (e) { return (e.currentTarget.style.color = '#ef4444'); }, onMouseLeave: function (e) { return (e.currentTarget.style.color = '#9ca3af'); }, children: _jsx(Trash2, { size: 18 }) }), _jsx("div", { style: {
|
|
247
|
+
flex: 1,
|
|
248
|
+
minWidth: 0,
|
|
249
|
+
padding: '0 4px',
|
|
250
|
+
}, children: blobUrl && _jsx(AudioPlayer, { blobUrl: blobUrl, primaryColor: primaryColor, compact: true }) }), _jsx("button", { type: "button", onClick: handleSend, style: {
|
|
251
|
+
backgroundColor: primaryColor,
|
|
252
|
+
color: '#fff',
|
|
253
|
+
border: 'none',
|
|
254
|
+
borderRadius: '50%',
|
|
255
|
+
width: 36,
|
|
256
|
+
height: 36,
|
|
257
|
+
display: 'flex',
|
|
258
|
+
alignItems: 'center',
|
|
259
|
+
justifyContent: 'center',
|
|
260
|
+
cursor: 'pointer',
|
|
261
|
+
flexShrink: 0,
|
|
262
|
+
boxShadow: "0 1px 4px ".concat(primaryColor, "44"),
|
|
263
|
+
transition: 'box-shadow 0.15s ease',
|
|
264
|
+
}, title: "Send", onMouseEnter: function (e) { return (e.currentTarget.style.boxShadow = "0 2px 8px ".concat(primaryColor, "55")); }, onMouseLeave: function (e) { return (e.currentTarget.style.boxShadow = "0 1px 4px ".concat(primaryColor, "44")); }, children: _jsx(Send, { size: 16 }) })] }));
|
|
51
265
|
};
|
|
52
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVm9pY2VJbnB1dC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb21wb25lbnRzL1ZvaWNlSW5wdXQudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFDQSxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ25DLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDcEMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBZXZELE1BQU0sQ0FBQyxJQUFNLFVBQVUsR0FBOEIsVUFBQyxFQU9yRDtRQU5DLGVBQWUscUJBQUEsRUFDZixPQUFPLGFBQUEsRUFDUCxPQUFPLGFBQUEsRUFDUCxNQUFNLFlBQUEsRUFDTixLQUFLLFdBQUEsRUFDTCxnQkFBZ0IsRUFBaEIsUUFBUSxtQkFBRyxLQUFLLEtBQUE7SUFFVixJQUFBLEtBQThDLGFBQWEsQ0FBQztRQUNoRSxPQUFPLFNBQUE7UUFDUCxNQUFNLFFBQUE7UUFDTixlQUFlLGlCQUFBO1FBQ2YsT0FBTyxTQUFBO0tBQ1IsQ0FBQyxFQUxNLFdBQVcsaUJBQUEsRUFBRSxTQUFTLGVBQUEsRUFBRSxlQUFlLHFCQUs3QyxDQUFDO0lBRUgsSUFBTSxXQUFXLEdBQUcsVUFBQyxDQUFtQjtRQUN0QyxDQUFDLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDbkIsQ0FBQyxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQ3BCLElBQUksUUFBUTtZQUFFLE9BQU87UUFDckIsZUFBZSxFQUFFLENBQUM7SUFDcEIsQ0FBQyxDQUFDO0lBRUYsSUFBTSxnQkFBZ0IsR0FBRztRQUN2QixJQUFJLFNBQVM7WUFBRSxPQUFPLEtBQUMsT0FBTyxJQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsS0FBSyxFQUFDLFNBQVMsR0FBRyxDQUFDO1FBQzVELE9BQU8sS0FBQyxHQUFHLElBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxLQUFLLEVBQUMsU0FBUyxHQUFHLENBQUM7SUFDM0MsQ0FBQyxDQUFDO0lBRUYsSUFBTSxRQUFRLEdBQUc7UUFDZixJQUFJLFNBQVM7WUFBRSxPQUFPLGVBQWUsQ0FBQztRQUN0QyxPQUFPLFdBQVcsQ0FBQyxDQUFDLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLGlCQUFpQixDQUFDO0lBQzVELENBQUMsQ0FBQztJQUVGLElBQU0sTUFBTSxHQUFHLENBQUEsS0FBSyxhQUFMLEtBQUssdUJBQUwsS0FBSyxDQUFFLFlBQVksS0FBSSxTQUFTLENBQUM7SUFDaEQsSUFBTSxRQUFRLEdBQUcsU0FBUyxDQUFDLENBQUMscUJBQXFCO0lBQ2pELElBQU0sVUFBVSxHQUFHLFFBQVEsSUFBSSxTQUFTLENBQUM7SUFDekMsSUFBTSxXQUFXLEdBQXdCO1FBQ3ZDLGVBQWUsRUFBRSxXQUFXLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsTUFBTTtRQUNoRCxLQUFLLEVBQUUsU0FBUztRQUNoQixNQUFNLEVBQUUsTUFBTTtRQUNkLFlBQVksRUFBRSxLQUFLO1FBQ25CLEtBQUssRUFBRSxNQUFNO1FBQ2IsTUFBTSxFQUFFLE1BQU07UUFDZCxPQUFPLEVBQUUsTUFBTTtRQUNmLFVBQVUsRUFBRSxRQUFRO1FBQ3BCLGNBQWMsRUFBRSxRQUFRO1FBQ3hCLE1BQU0sRUFBRSxVQUFVLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsU0FBUztRQUM5QyxPQUFPLEVBQUUsTUFBTTtRQUNmLFVBQVUsRUFBRSxlQUFlO1FBQzNCLFVBQVUsRUFBRSxDQUFDO1FBQ2IsU0FBUyxFQUFFLCtCQUErQjtRQUMxQyxPQUFPLEVBQUUsVUFBVSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7S0FDOUIsQ0FBQztJQUVGLE9BQU8sQ0FDTCw0QkFDRSxpQkFDRSxJQUFJLEVBQUMsUUFBUSxFQUNiLEtBQUssRUFBRSxXQUFXLEVBQ2xCLE9BQU8sRUFBRSxXQUFXLEVBQ3BCLEtBQUssRUFBRSxRQUFRLEVBQUUsRUFDakIsUUFBUSxFQUFFLFVBQVUsWUFFbkIsZ0JBQWdCLEVBQUUsR0FDWixHQUNSLENBQ0osQ0FBQztBQUNKLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBNaWMgfSBmcm9tICdsdWNpZGUtcmVhY3QnO1xuaW1wb3J0IHsgU3Bpbm5lciB9IGZyb20gJy4vU3Bpbm5lcic7XG5pbXBvcnQgeyB1c2VWb2ljZUlucHV0IH0gZnJvbSAnLi4vaG9va3MvdXNlVm9pY2VJbnB1dCc7XG5cbmludGVyZmFjZSBWb2ljZUlucHV0UHJvcHMge1xuICBvblRyYW5zY3JpcHRpb246ICh0ZXh0OiBzdHJpbmcpID0+IHZvaWQ7XG4gIG9uRXJyb3I6IChlcnJvcjogRXJyb3IpID0+IHZvaWQ7XG4gIGJhc2VVcmw6IHN0cmluZztcbiAgYXBpS2V5OiBzdHJpbmc7XG4gIHRoZW1lPzoge1xuICAgIHByaW1hcnlDb2xvcj86IHN0cmluZztcbiAgICBiYWNrZ3JvdW5kQ29sb3I/OiBzdHJpbmc7XG4gICAgZm9udEZhbWlseT86IHN0cmluZztcbiAgfTtcbiAgZGlzYWJsZWQ/OiBib29sZWFuO1xufVxuXG5leHBvcnQgY29uc3QgVm9pY2VJbnB1dDogUmVhY3QuRkM8Vm9pY2VJbnB1dFByb3BzPiA9ICh7XG4gIG9uVHJhbnNjcmlwdGlvbixcbiAgb25FcnJvcixcbiAgYmFzZVVybCxcbiAgYXBpS2V5LFxuICB0aGVtZSxcbiAgZGlzYWJsZWQgPSBmYWxzZVxufSkgPT4ge1xuICBjb25zdCB7IGlzUmVjb3JkaW5nLCBpc0xvYWRpbmcsIHRvZ2dsZVJlY29yZGluZyB9ID0gdXNlVm9pY2VJbnB1dCh7XG4gICAgYmFzZVVybCxcbiAgICBhcGlLZXksXG4gICAgb25UcmFuc2NyaXB0aW9uLFxuICAgIG9uRXJyb3IsXG4gIH0pO1xuXG4gIGNvbnN0IGhhbmRsZUNsaWNrID0gKGU6IFJlYWN0Lk1vdXNlRXZlbnQpID0+IHtcbiAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICBpZiAoZGlzYWJsZWQpIHJldHVybjtcbiAgICB0b2dnbGVSZWNvcmRpbmcoKTtcbiAgfTtcblxuICBjb25zdCBnZXRCdXR0b25Db250ZW50ID0gKCkgPT4ge1xuICAgIGlmIChpc0xvYWRpbmcpIHJldHVybiA8U3Bpbm5lciBzaXplPXsxOH0gY29sb3I9XCIjZmZmZmZmXCIgLz47XG4gICAgcmV0dXJuIDxNaWMgc2l6ZT17MTh9IGNvbG9yPVwiI2ZmZmZmZlwiIC8+O1xuICB9O1xuXG4gIGNvbnN0IGdldFRpdGxlID0gKCkgPT4ge1xuICAgIGlmIChpc0xvYWRpbmcpIHJldHVybiAnQ29ubmVjdGluZy4uLic7XG4gICAgcmV0dXJuIGlzUmVjb3JkaW5nID8gJ1N0b3AgUmVjb3JkaW5nJyA6ICdTdGFydCBSZWNvcmRpbmcnO1xuICB9O1xuXG4gIGNvbnN0IGlkbGVCZyA9IHRoZW1lPy5wcmltYXJ5Q29sb3IgfHwgJyMyOTYyRkYnO1xuICBjb25zdCBhY3RpdmVCZyA9ICcjRkYzQjMwJzsgLy8gcmVkIHdoZW4gcmVjb3JkaW5nXG4gIGNvbnN0IGlzRGlzYWJsZWQgPSBkaXNhYmxlZCB8fCBpc0xvYWRpbmc7XG4gIGNvbnN0IGJ1dHRvblN0eWxlOiBSZWFjdC5DU1NQcm9wZXJ0aWVzID0ge1xuICAgIGJhY2tncm91bmRDb2xvcjogaXNSZWNvcmRpbmcgPyBhY3RpdmVCZyA6IGlkbGVCZyxcbiAgICBjb2xvcjogJyNmZmZmZmYnLFxuICAgIGJvcmRlcjogJ25vbmUnLFxuICAgIGJvcmRlclJhZGl1czogJzUwJScsXG4gICAgd2lkdGg6ICczNnB4JyxcbiAgICBoZWlnaHQ6ICczNnB4JyxcbiAgICBkaXNwbGF5OiAnZmxleCcsXG4gICAgYWxpZ25JdGVtczogJ2NlbnRlcicsXG4gICAganVzdGlmeUNvbnRlbnQ6ICdjZW50ZXInLFxuICAgIGN1cnNvcjogaXNEaXNhYmxlZCA/ICdub3QtYWxsb3dlZCcgOiAncG9pbnRlcicsXG4gICAgb3V0bGluZTogJ25vbmUnLFxuICAgIHRyYW5zaXRpb246ICdhbGwgMC4ycyBlYXNlJyxcbiAgICBmbGV4U2hyaW5rOiAwLFxuICAgIGJveFNoYWRvdzogJzAgMXB4IDNweCByZ2JhKDAsIDAsIDAsIDAuMDgpJyxcbiAgICBvcGFjaXR5OiBpc0Rpc2FibGVkID8gMC42IDogMSxcbiAgfTtcblxuICByZXR1cm4gKFxuICAgIDw+XG4gICAgICA8YnV0dG9uXG4gICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICBzdHlsZT17YnV0dG9uU3R5bGV9XG4gICAgICAgIG9uQ2xpY2s9e2hhbmRsZUNsaWNrfVxuICAgICAgICB0aXRsZT17Z2V0VGl0bGUoKX1cbiAgICAgICAgZGlzYWJsZWQ9e2lzRGlzYWJsZWR9XG4gICAgICA+XG4gICAgICAgIHtnZXRCdXR0b25Db250ZW50KCl9XG4gICAgICA8L2J1dHRvbj5cbiAgICA8Lz5cbiAgKTtcbn07XG4iXX0=
|
|
266
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVm9pY2VJbnB1dC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb21wb25lbnRzL1ZvaWNlSW5wdXQudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxPQUFjLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLE1BQU0sT0FBTyxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDekQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDN0QsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQWU1QyxJQUFNLFNBQVMsR0FBRyxFQUFFLENBQUM7QUFDckIsSUFBTSxXQUFXLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsRUFBRSxVQUFDLENBQUMsRUFBRSxDQUFDO0lBQ3pELElBQU0sTUFBTSxHQUFHLFNBQVMsR0FBRyxDQUFDLENBQUM7SUFDN0IsSUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsTUFBTSxDQUFDLEdBQUcsTUFBTSxDQUFDO0lBQzNDLE9BQU8sR0FBRyxHQUFHLEdBQUcsR0FBRyxDQUFDLENBQUMsR0FBRyxJQUFJLEdBQUcsSUFBSSxDQUFDLENBQUM7QUFDdkMsQ0FBQyxDQUFDLENBQUM7QUFFSCxNQUFNLENBQUMsSUFBTSxVQUFVLEdBQThCLFVBQUMsRUFLckQ7UUFKQyxZQUFZLGtCQUFBLEVBQ1osT0FBTyxhQUFBLEVBQ1AsS0FBSyxXQUFBLEVBQ0wsZ0JBQWdCLEVBQWhCLFFBQVEsbUJBQUcsS0FBSyxLQUFBO0lBRVYsSUFBQSxLQUE4QixRQUFRLENBQWEsTUFBTSxDQUFDLEVBQXpELFVBQVUsUUFBQSxF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b0JBQ2pCLFVBQVUsRUFBRSxDQUFDO29CQUNiLFNBQVMsRUFBRSxvQkFBYSxZQUFZLE9BQUk7b0JBQ3hDLFVBQVUsRUFBRSx1QkFBdUI7aUJBQ3BDLEVBQ0QsS0FBSyxFQUFDLE1BQU0sRUFDWixZQUFZLEVBQUUsVUFBQSxDQUFDLElBQUksT0FBQSxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLFNBQVMsR0FBRyxvQkFBYSxZQUFZLE9BQUksQ0FBQyxFQUFqRSxDQUFpRSxFQUNwRixZQUFZLEVBQUUsVUFBQSxDQUFDLElBQUksT0FBQSxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLFNBQVMsR0FBRyxvQkFBYSxZQUFZLE9BQUksQ0FBQyxFQUFqRSxDQUFpRSxZQUVwRixLQUFDLElBQUksSUFBQyxJQUFJLEVBQUUsRUFBRSxHQUFJLEdBQ1gsSUFDTCxDQUNQLENBQUM7QUFDSixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QsIHsgdXNlU3RhdGUsIHVzZVJlZiwgdXNlQ2FsbGJhY2ssIHVzZUVmZmVjdCB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IE1pYywgU3F1YXJlLCBTZW5kLCBUcmFzaDIgfSBmcm9tICdsdWNpZGUtcmVhY3QnO1xuaW1wb3J0IHsgdXNlQXVkaW9SZWNvcmRlciB9IGZyb20gJy4uL2hvb2tzL3VzZUF1ZGlvUmVjb3JkZXInO1xuaW1wb3J0IHsgQXVkaW9QbGF5ZXIgfSBmcm9tICcuL0F1ZGlvUGxheWVyJztcblxudHlwZSBWb2ljZVN0YXRlID0gJ2lkbGUnIHwgJ3JlY29yZGluZycgfCAncHJldmlldyc7XG5cbmludGVyZmFjZSBWb2ljZUlucHV0UHJvcHMge1xuICBvbkF1ZGlvUmVhZHk6IChibG9iOiBCbG9iLCBmb3JtYXQ6IHN0cmluZykgPT4gdm9pZDtcbiAgb25FcnJvcjogKGVycm9yOiBFcnJvcikgPT4gdm9pZDtcbiAgdGhlbWU/OiB7XG4gICAgcHJpbWFyeUNvbG9yPzogc3RyaW5nO1xuICAgIGJhY2tncm91bmRDb2xvcj86IHN0cmluZztcbiAgICBmb250RmFtaWx5Pzogc3RyaW5nO1xuICB9O1xuICBkaXNhYmxlZD86IGJvb2xlYW47XG59XG5cbmNvbnN0IEJBUl9DT1VOVCA9IDMyO1xuY29uc3QgQkFSX0hFSUdIVFMgPSBBcnJheS5mcm9tKHsgbGVuZ3RoOiBCQVJfQ09VTlQgfSwgKF8sIGkpID0+IHtcbiAgY29uc3QgY2VudGVyID0gQkFSX0NPVU5UIC8gMjtcbiAgY29uc3QgZGlzdCA9IE1hdGguYWJzKGkgLSBjZW50ZXIpIC8gY2VudGVyO1xuICByZXR1cm4gMC4zICsgMC43ICogKDEgLSBkaXN0ICogZGlzdCk7XG59KTtcblxuZXhwb3J0IGNvbnN0IFZvaWNlSW5wdXQ6IFJlYWN0LkZDPFZvaWNlSW5wdXRQcm9wcz4gPSAoe1xuICBvbkF1ZGlvUmVhZHksXG4gIG9uRXJyb3IsXG4gIHRoZW1lLFxuICBkaXNhYmxlZCA9IGZhbHNlLFxufSkgPT4ge1xuICBjb25zdCBbdm9pY2VTdGF0ZSwgc2V0Vm9pY2VTdGF0ZV0gPSB1c2VTdGF0ZTxWb2ljZVN0YXRlPignaWRsZScpO1xuICBjb25zdCBbcGVuZGluZ0Jsb2IsIHNldFBlbmRpbmdCbG9iXSA9IHVzZVN0YXRlPEJsb2IgfCBudWxsPihudWxsKTtcbiAgY29uc3QgW3BlbmRpbmdGb3JtYXQsIHNldFBlbmRpbmdGb3JtYXRdID0gdXNlU3RhdGU8c3RyaW5nPignd2VibScpO1xuICBjb25zdCBbYmxvYlVybCwgc2V0QmxvYlVybF0gPSB1c2VTdGF0ZTxzdHJpbmcgfCBudWxsPihudWxsKTtcbiAgY29uc3QgW3JlY29yZGluZ1RpbWUsIHNldFJlY29yZGluZ1RpbWVdID0gdXNlU3RhdGUoMCk7XG4gIGNvbnN0IHRpbWVyUmVmID0gdXNlUmVmPG51bWJlciB8IG51bGw+KG51bGwpO1xuXG4gIGNvbnN0IGhhbmRsZVJlY29yZGluZ0RvbmUgPSB1c2VDYWxsYmFjaygoYmxvYjogQmxvYiwgZm9ybWF0OiBzdHJpbmcpID0+IHtcbiAgICBzZXRQZW5kaW5nQmxvYihibG9iKTtcbiAgICBzZXRQZW5kaW5nRm9ybWF0KGZvcm1hdCk7XG4gICAgY29uc3QgdXJsID0gVVJMLmNyZWF0ZU9iamVjdFVSTChibG9iKTtcbiAgICBzZXRCbG9iVXJsKHVybCk7XG4gICAgc2V0Vm9pY2VTdGF0ZSgncHJldmlldycpO1xuICAgIGlmICh0aW1lclJlZi5jdXJyZW50KSB7IGNsZWFySW50ZXJ2YWwodGltZXJSZWYuY3VycmVudCk7IHRpbWVyUmVmLmN1cnJlbnQgPSBudWxsOyB9XG4gIH0sIFtdKTtcblxuICBjb25zdCB7IGlzUmVjb3JkaW5nLCBzdGFydFJlY29yZGluZywgc3RvcFJlY29yZGluZywgY2FuY2VsUmVjb3JkaW5nIH0gPSB1c2VBdWRpb1JlY29yZGVyKGhhbmRsZVJlY29yZGluZ0RvbmUsIG9uRXJyb3IpO1xuXG4gIGNvbnN0IGhhbmRsZU1pY0NsaWNrID0gdXNlQ2FsbGJhY2soYXN5bmMgKCkgPT4ge1xuICAgIGlmIChkaXNhYmxlZCkgcmV0dXJuO1xuICAgIHNldFJlY29yZGluZ1RpbWUoMCk7XG4gICAgYXdhaXQgc3RhcnRSZWNvcmRpbmcoKTtcbiAgICBzZXRWb2ljZVN0YXRlKCdyZWNvcmRpbmcnKTtcbiAgICB0aW1lclJlZi5jdXJyZW50ID0gd2luZG93LnNldEludGVydmFsKCgpID0+IHNldFJlY29yZGluZ1RpbWUoKHQpID0+IHQgKyAxKSwgMTAwMCk7XG4gIH0sIFtkaXNhYmxlZCwgc3RhcnRSZWNvcmRpbmddKTtcblxuICBjb25zdCBoYW5kbGVTdG9wID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIHN0b3BSZWNvcmRpbmcoKTtcbiAgfSwgW3N0b3BSZWNvcmRpbmddKTtcblxuICBjb25zdCBoYW5kbGVTZW5kID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIGlmIChwZW5kaW5nQmxvYikge1xuICAgICAgb25BdWRpb1JlYWR5KHBlbmRpbmdCbG9iLCBwZW5kaW5nRm9ybWF0KTtcbiAgICB9XG4gICAgY2xlYW51cCgpO1xuICB9LCBbcGVuZGluZ0Jsb2IsIHBlbmRpbmdGb3JtYXQsIG9uQXVkaW9SZWFkeV0pO1xuXG4gIGNvbnN0IGhhbmRsZURpc2NhcmQgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgY2xlYW51cCgpO1xuICB9LCBbXSk7XG5cbiAgY29uc3QgY2xlYW51cCA9ICgpID0+IHtcbiAgICBpZiAoYmxvYlVybCkgVVJMLnJldm9rZU9iamVjdFVSTChibG9iVXJsKTtcbiAgICBzZXRCbG9iVXJsKG51bGwpO1xuICAgIHNldFBlbmRpbmdCbG9iKG51bGwpO1xuICAgIHNldFZvaWNlU3RhdGUoJ2lkbGUnKTtcbiAgICBzZXRSZWNvcmRpbmdUaW1lKDApO1xuICAgIGlmICh0aW1lclJlZi5jdXJyZW50KSB7IGNsZWFySW50ZXJ2YWwodGltZXJSZWYuY3VycmVudCk7IHRpbWVyUmVmLmN1cnJlbnQgPSBudWxsOyB9XG4gIH07XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgaWYgKHRpbWVyUmVmLmN1cnJlbnQpIGNsZWFySW50ZXJ2YWwodGltZXJSZWYuY3VycmVudCk7XG4gICAgICBpZiAoYmxvYlVybCkgVVJMLnJldm9rZU9iamVjdFVSTChibG9iVXJsKTtcbiAgICB9O1xuICB9LCBbXSk7XG5cbiAgY29uc3QgcHJpbWFyeUNvbG9yID0gdGhlbWU/LnByaW1hcnlDb2xvciB8fCAnIzRmNDZlNSc7XG5cbiAgY29uc3QgZm9ybWF0VGltZSA9IChzOiBudW1iZXIpID0+IHtcbiAgICBjb25zdCBtID0gTWF0aC5mbG9vcihzIC8gNjApO1xuICAgIGNvbnN0IHNlYyA9IHMgJSA2MDtcbiAgICByZXR1cm4gYCR7bX06JHtzZWMudG9TdHJpbmcoKS5wYWRTdGFydCgyLCAnMCcpfWA7XG4gIH07XG5cbiAgaWYgKHZvaWNlU3RhdGUgPT09ICdpZGxlJykge1xuICAgIHJldHVybiAoXG4gICAgICA8YnV0dG9uXG4gICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICBvbkNsaWNrPXtoYW5kbGVNaWNDbGlja31cbiAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICBzdHlsZT17e1xuICAgICAgICAgIHBvc2l0aW9uOiAnYWJzb2x1dGUnLFxuICAgICAgICAgIHJpZ2h0OiA2LFxuICAgICAgICAgIHRvcDogJzUwJScsXG4gICAgICAgICAgdHJhbnNmb3JtOiAndHJhbnNsYXRlWSgtNTAlKScsXG4gICAgICAgICAgYmFja2dyb3VuZENvbG9yOiBwcmltYXJ5Q29sb3IsXG4gICAgICAgICAgY29sb3I6ICcjZmZmZmZmJyxcbiAgICAgICAgICBib3JkZXI6ICdub25lJyxcbiAgICAgICAgICBib3JkZXJSYWRpdXM6ICc1MCUnLFxuICAgICAgICAgIHdpZHRoOiAzNixcbiAgICAgICAgICBoZWlnaHQ6IDM2LFxuICAgICAgICAgIGRpc3BsYXk6ICdmbGV4JyxcbiAgICAgICAgICBhbGlnbkl0ZW1zOiAnY2VudGVyJyxcbiAgICAgICAgICBqdXN0aWZ5Q29udGVudDogJ2NlbnRlcicsXG4gICAgICAgICAgY3Vyc29yOiBkaXNhYmxlZCA/ICdub3QtYWxsb3dlZCcgOiAncG9pbnRlcicsXG4gICAgICAgICAgZmxleFNocmluazogMCxcbiAgICAgICAgICBib3hTaGFkb3c6ICcwIDFweCAzcHggcmdiYSgwLCAwLCAwLCAwLjEyKScsXG4gICAgICAgICAgb3BhY2l0eTogZGlzYWJsZWQgPyAwLjUgOiAxLFxuICAgICAgICAgIHpJbmRleDogNSxcbiAgICAgICAgICB0cmFuc2l0aW9uOiAnb3BhY2l0eSAwLjE1cyBlYXNlJyxcbiAgICAgICAgfX1cbiAgICAgICAgdGl0bGU9XCJTdGFydCBSZWNvcmRpbmdcIlxuICAgICAgPlxuICAgICAgICA8TWljIHNpemU9ezE4fSBjb2xvcj1cIiNmZmZmZmZcIiAvPlxuICAgICAgPC9idXR0b24+XG4gICAgKTtcbiAgfVxuXG4gIGlmICh2b2ljZVN0YXRlID09PSAncmVjb3JkaW5nJykge1xuICAgIHJldHVybiAoXG4gICAgICA8ZGl2IHN0eWxlPXt7XG4gICAgICAgIHBvc2l0aW9uOiAnYWJzb2x1dGUnLFxuICAgICAgICBpbnNldDogMCxcbiAgICAgICAgZGlzcGxheTogJ2ZsZXgnLFxuICAgICAgICBhbGlnbkl0ZW1zOiAnY2VudGVyJyxcbiAgICAgICAgZ2FwOiAwLFxuICAgICAgICBwYWRkaW5nOiAnMCA2cHgnLFxuICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6ICcjZmZmJyxcbiAgICAgICAgYm9yZGVyUmFkaXVzOiAyNCxcbiAgICAgICAgekluZGV4OiAxMCxcbiAgICAgICAgb3ZlcmZsb3c6ICdoaWRkZW4nLFxuICAgICAgfX0+XG4gICAgICAgIHsvKiBEaXNjYXJkICovfVxuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgb25DbGljaz17KCkgPT4geyBjYW5jZWxSZWNvcmRpbmcoKTsgY2xlYW51cCgpOyB9fVxuICAgICAgICAgIHN0eWxlPXt7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAnbm9uZScsXG4gICAgICAgICAgICBib3JkZXI6ICdub25lJyxcbiAgICAgICAgICAgIGN1cnNvcjogJ3BvaW50ZXInLFxuICAgICAgICAgICAgcGFkZGluZzogNixcbiAgICAgICAgICAgIGRpc3BsYXk6ICdmbGV4JyxcbiAgICAgICAgICAgIGFsaWduSXRlbXM6ICdjZW50ZXInLFxuICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ6ICdjZW50ZXInLFxuICAgICAgICAgICAgY29sb3I6ICcjOWNhM2FmJyxcbiAgICAgICAgICAgIGJvcmRlclJhZGl1czogJzUwJScsXG4gICAgICAgICAgICBmbGV4U2hyaW5rOiAwLFxuICAgICAgICAgICAgdHJhbnNpdGlvbjogJ2NvbG9yIDAuMTVzIGVhc2UnLFxuICAgICAgICAgIH19XG4gICAgICAgICAgdGl0bGU9XCJDYW5jZWxcIlxuICAgICAgICAgIG9uTW91c2VFbnRlcj17ZSA9PiAoZS5jdXJyZW50VGFyZ2V0LnN0eWxlLmNvbG9yID0gJyM2YjcyODAnKX1cbiAgICAgICAgICBvbk1vdXNlTGVhdmU9e2UgPT4gKGUuY3VycmVudFRhcmdldC5zdHlsZS5jb2xvciA9ICcjOWNhM2FmJyl9XG4gICAgICAgID5cbiAgICAgICAgICA8VHJhc2gyIHNpemU9ezE4fSAvPlxuICAgICAgICA8L2J1dHRvbj5cblxuICAgICAgICB7LyogUmVkIGRvdCArIFRpbWVyICovfVxuICAgICAgICA8ZGl2IHN0eWxlPXt7XG4gICAgICAgICAgZGlzcGxheTogJ2ZsZXgnLFxuICAgICAgICAgIGFsaWduSXRlbXM6ICdjZW50ZXInLFxuICAgICAgICAgIGdhcDogNixcbiAgICAgICAgICBwYWRkaW5nOiAnMCA4cHggMCA0cHgnLFxuICAgICAgICAgIGZsZXhTaHJpbms6IDAsXG4gICAgICAgIH19PlxuICAgICAgICAgIDxkaXYgc3R5bGU9e3tcbiAgICAgICAgICAgIHdpZHRoOiA4LFxuICAgICAgICAgICAgaGVpZ2h0OiA4LFxuICAgICAgICAgICAgYm9yZGVyUmFkaXVzOiAnNTAlJyxcbiAgICAgICAgICAgIGJhY2tncm91bmRDb2xvcjogJyNlZjQ0NDQnLFxuICAgICAgICAgICAgYW5pbWF0aW9uOiAnZ2EtcmVjLXB1bHNlIDEuNXMgZWFzZS1pbi1vdXQgaW5maW5pdGUnLFxuICAgICAgICAgICAgZmxleFNocmluazogMCxcbiAgICAgICAgICB9fSAvPlxuICAgICAgICAgIDxzcGFuIHN0eWxlPXt7XG4gICAgICAgICAgICBmb250U2l6ZTogMTMsXG4gICAgICAgICAgICBmb250V2VpZ2h0OiA2MDAsXG4gICAgICAgICAgICBjb2xvcjogJyMzNzQxNTEnLFxuICAgICAgICAgICAgZm9udFZhcmlhbnROdW1lcmljOiAndGFidWxhci1udW1zJyxcbiAgICAgICAgICAgIG1pbldpZHRoOiAzMixcbiAgICAgICAgICAgIGZvbnRGYW1pbHk6ICdpbmhlcml0JyxcbiAgICAgICAgICB9fT5cbiAgICAgICAgICAgIHtmb3JtYXRUaW1lKHJlY29yZGluZ1RpbWUpfVxuICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgey8qIFdhdmUgYW5pbWF0aW9uICovfVxuICAgICAgICA8ZGl2IHN0eWxlPXt7XG4gICAgICAgICAgZmxleDogMSxcbiAgICAgICAgICBkaXNwbGF5OiAnZmxleCcsXG4gICAgICAgICAgYWxpZ25JdGVtczogJ2NlbnRlcicsXG4gICAgICAgICAganVzdGlmeUNvbnRlbnQ6ICdjZW50ZXInLFxuICAgICAgICAgIGdhcDogMixcbiAgICAgICAgICBoZWlnaHQ6ICcxMDAlJyxcbiAgICAgICAgICBwYWRkaW5nOiAnMCA0cHgnLFxuICAgICAgICAgIG92ZXJmbG93OiAnaGlkZGVuJyxcbiAgICAgICAgfX0+XG4gICAgICAgICAge0JBUl9IRUlHSFRTLm1hcCgoc2NhbGUsIGkpID0+IChcbiAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAga2V5PXtpfVxuICAgICAgICAgICAgICBzdHlsZT17e1xuICAgICAgICAgICAgICAgIHdpZHRoOiAyLjUsXG4gICAgICAgICAgICAgICAgYm9yZGVyUmFkaXVzOiAzLFxuICAgICAgICAgICAgICAgIGJhY2tncm91bmRDb2xvcjogcHJpbWFyeUNvbG9yLFxuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDAuNTUgKyAwLjQ1ICogc2NhbGUsXG4gICAgICAgICAgICAgICAgYW5pbWF0aW9uOiBgZ2Etd2F2ZSAkezAuNiArIChpICUgNSkgKiAwLjE1fXMgZWFzZS1pbi1vdXQgJHtpICogMC4wNH1zIGluZmluaXRlIGFsdGVybmF0ZWAsXG4gICAgICAgICAgICAgICAgbWluSGVpZ2h0OiAzLFxuICAgICAgICAgICAgICAgIG1heEhlaWdodDogTWF0aC5yb3VuZChzY2FsZSAqIDI2KSxcbiAgICAgICAgICAgICAgICBmbGV4U2hyaW5rOiAwLFxuICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICApKX1cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgey8qIFN0b3AgYnV0dG9uICovfVxuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgb25DbGljaz17aGFuZGxlU3RvcH1cbiAgICAgICAgICBzdHlsZT17e1xuICAgICAgICAgICAgYmFja2dyb3VuZENvbG9yOiAnI2VmNDQ0NCcsXG4gICAgICAgICAgICBjb2xvcjogJyNmZmYnLFxuICAgICAgICAgICAgYm9yZGVyOiAnbm9uZScsXG4gICAgICAgICAgICBib3JkZXJSYWRpdXM6ICc1MCUnLFxuICAgICAgICAgICAgd2lkdGg6IDM2LFxuICAgICAgICAgICAgaGVpZ2h0OiAzNixcbiAgICAgICAgICAgIGRpc3BsYXk6ICdmbGV4JyxcbiAgICAgICAgICAgIGFsaWduSXRlbXM6ICdjZW50ZXInLFxuICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ6ICdjZW50ZXInLFxuICAgICAgICAgICAgY3Vyc29yOiAncG9pbnRlcicsXG4gICAgICAgICAgICBmbGV4U2hyaW5rOiAwLFxuICAgICAgICAgICAgYm94U2hhZG93OiAnMCAxcHggNHB4IHJnYmEoMjM5LCA2OCwgNjgsIDAuMyknLFxuICAgICAgICAgICAgdHJhbnNpdGlvbjogJ2JveC1zaGFkb3cgMC4xNXMgZWFzZScsXG4gICAgICAgICAgfX1cbiAgICAgICAgICB0aXRsZT1cIlN0b3AgUmVjb3JkaW5nXCJcbiAgICAgICAgICBvbk1vdXNlRW50ZXI9e2UgPT4gKGUuY3VycmVudFRhcmdldC5zdHlsZS5ib3hTaGFkb3cgPSAnMCAycHggOHB4IHJnYmEoMjM5LCA2OCwgNjgsIDAuNCknKX1cbiAgICAgICAgICBvbk1vdXNlTGVhdmU9e2UgPT4gKGUuY3VycmVudFRhcmdldC5zdHlsZS5ib3hTaGFkb3cgPSAnMCAxcHggNHB4IHJnYmEoMjM5LCA2OCwgNjgsIDAuMyknKX1cbiAgICAgICAgPlxuICAgICAgICAgIDxTcXVhcmUgc2l6ZT17MTJ9IGZpbGw9XCIjZmZmXCIgLz5cbiAgICAgICAgPC9idXR0b24+XG5cbiAgICAgICAgPHN0eWxlPntgXG4gICAgICAgICAgQGtleWZyYW1lcyBnYS13YXZlIHtcbiAgICAgICAgICAgIDAlIHsgaGVpZ2h0OiAzcHg7IH1cbiAgICAgICAgICAgIDEwMCUgeyBoZWlnaHQ6IHZhcigtLWdhLXdhdmUtaCwgMjJweCk7IH1cbiAgICAgICAgICB9XG4gICAgICAgICAgQGtleWZyYW1lcyBnYS1yZWMtcHVsc2Uge1xuICAgICAgICAgICAgMCUsIDEwMCUgeyBvcGFjaXR5OiAxOyB9XG4gICAgICAgICAgICA1MCUgeyBvcGFjaXR5OiAwLjM7IH1cbiAgICAgICAgICB9XG4gICAgICAgIGB9PC9zdHlsZT5cbiAgICAgIDwvZGl2PlxuICAgICk7XG4gIH1cblxuICByZXR1cm4gKFxuICAgIDxkaXYgc3R5bGU9e3tcbiAgICAgIHBvc2l0aW9uOiAnYWJzb2x1dGUnLFxuICAgICAgaW5zZXQ6IDAsXG4gICAgICBkaXNwbGF5OiAnZmxleCcsXG4gICAgICBhbGlnbkl0ZW1zOiAnY2VudGVyJyxcbiAgICAgIGdhcDogMCxcbiAgICAgIHBhZGRpbmc6ICcwIDZweCcsXG4gICAgICBiYWNrZ3JvdW5kQ29sb3I6ICcjZmZmJyxcbiAgICAgIGJvcmRlclJhZGl1czogMjQsXG4gICAgICB6SW5kZXg6IDEwLFxuICAgICAgb3ZlcmZsb3c6ICdoaWRkZW4nLFxuICAgIH19PlxuICAgICAgey8qIERpc2NhcmQgKi99XG4gICAgICA8YnV0dG9uXG4gICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICBvbkNsaWNrPXtoYW5kbGVEaXNjYXJkfVxuICAgICAgICBzdHlsZT17e1xuICAgICAgICAgIGJhY2tncm91bmQ6ICdub25lJyxcbiAgICAgICAgICBib3JkZXI6ICdub25lJyxcbiAgICAgICAgICBjdXJzb3I6ICdwb2ludGVyJyxcbiAgICAgICAgICBwYWRkaW5nOiA2LFxuICAgICAgICAgIGRpc3BsYXk6ICdmbGV4JyxcbiAgICAgICAgICBhbGlnbkl0ZW1zOiAnY2VudGVyJyxcbiAgICAgICAgICBqdXN0aWZ5Q29udGVudDogJ2NlbnRlcicsXG4gICAgICAgICAgY29sb3I6ICcjOWNhM2FmJyxcbiAgICAgICAgICBib3JkZXJSYWRpdXM6ICc1MCUnLFxuICAgICAgICAgIGZsZXhTaHJpbms6IDAsXG4gICAgICAgICAgdHJhbnNpdGlvbjogJ2NvbG9yIDAuMTVzIGVhc2UnLFxuICAgICAgICB9fVxuICAgICAgICB0aXRsZT1cIkRpc2NhcmRcIlxuICAgICAgICBvbk1vdXNlRW50ZXI9e2UgPT4gKGUuY3VycmVudFRhcmdldC5zdHlsZS5jb2xvciA9ICcjZWY0NDQ0Jyl9XG4gICAgICAgIG9uTW91c2VMZWF2ZT17ZSA9PiAoZS5jdXJyZW50VGFyZ2V0LnN0eWxlLmNvbG9yID0gJyM5Y2EzYWYnKX1cbiAgICAgID5cbiAgICAgICAgPFRyYXNoMiBzaXplPXsxOH0gLz5cbiAgICAgIDwvYnV0dG9uPlxuXG4gICAgICB7LyogQXVkaW8gcGxheWVyICovfVxuICAgICAgPGRpdiBzdHlsZT17e1xuICAgICAgICBmbGV4OiAxLFxuICAgICAgICBtaW5XaWR0aDogMCxcbiAgICAgICAgcGFkZGluZzogJzAgNHB4JyxcbiAgICAgIH19PlxuICAgICAgICB7YmxvYlVybCAmJiA8QXVkaW9QbGF5ZXIgYmxvYlVybD17YmxvYlVybH0gcHJpbWFyeUNvbG9yPXtwcmltYXJ5Q29sb3J9IGNvbXBhY3QgLz59XG4gICAgICA8L2Rpdj5cblxuICAgICAgey8qIFNlbmQgKi99XG4gICAgICA8YnV0dG9uXG4gICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICBvbkNsaWNrPXtoYW5kbGVTZW5kfVxuICAgICAgICBzdHlsZT17e1xuICAgICAgICAgIGJhY2tncm91bmRDb2xvcjogcHJpbWFyeUNvbG9yLFxuICAgICAgICAgIGNvbG9yOiAnI2ZmZicsXG4gICAgICAgICAgYm9yZGVyOiAnbm9uZScsXG4gICAgICAgICAgYm9yZGVyUmFkaXVzOiAnNTAlJyxcbiAgICAgICAgICB3aWR0aDogMzYsXG4gICAgICAgICAgaGVpZ2h0OiAzNixcbiAgICAgICAgICBkaXNwbGF5OiAnZmxleCcsXG4gICAgICAgICAgYWxpZ25JdGVtczogJ2NlbnRlcicsXG4gICAgICAgICAganVzdGlmeUNvbnRlbnQ6ICdjZW50ZXInLFxuICAgICAgICAgIGN1cnNvcjogJ3BvaW50ZXInLFxuICAgICAgICAgIGZsZXhTaHJpbms6IDAsXG4gICAgICAgICAgYm94U2hhZG93OiBgMCAxcHggNHB4ICR7cHJpbWFyeUNvbG9yfTQ0YCxcbiAgICAgICAgICB0cmFuc2l0aW9uOiAnYm94LXNoYWRvdyAwLjE1cyBlYXNlJyxcbiAgICAgICAgfX1cbiAgICAgICAgdGl0bGU9XCJTZW5kXCJcbiAgICAgICAgb25Nb3VzZUVudGVyPXtlID0+IChlLmN1cnJlbnRUYXJnZXQuc3R5bGUuYm94U2hhZG93ID0gYDAgMnB4IDhweCAke3ByaW1hcnlDb2xvcn01NWApfVxuICAgICAgICBvbk1vdXNlTGVhdmU9e2UgPT4gKGUuY3VycmVudFRhcmdldC5zdHlsZS5ib3hTaGFkb3cgPSBgMCAxcHggNHB4ICR7cHJpbWFyeUNvbG9yfTQ0YCl9XG4gICAgICA+XG4gICAgICAgIDxTZW5kIHNpemU9ezE2fSAvPlxuICAgICAgPC9idXR0b24+XG4gICAgPC9kaXY+XG4gICk7XG59O1xuIl19
|