@parlr/react-native 0.1.0
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/LICENSE +21 -0
- package/README.md +918 -0
- package/lib/commonjs/components/AttachmentPicker.js +292 -0
- package/lib/commonjs/components/AttachmentPicker.js.map +1 -0
- package/lib/commonjs/components/AttachmentPreview.js +200 -0
- package/lib/commonjs/components/AttachmentPreview.js.map +1 -0
- package/lib/commonjs/components/ChatBubble.js +391 -0
- package/lib/commonjs/components/ChatBubble.js.map +1 -0
- package/lib/commonjs/components/EmptyState.js +115 -0
- package/lib/commonjs/components/EmptyState.js.map +1 -0
- package/lib/commonjs/components/ParlrChat.js +745 -0
- package/lib/commonjs/components/ParlrChat.js.map +1 -0
- package/lib/commonjs/components/ParlrConversationList.js +509 -0
- package/lib/commonjs/components/ParlrConversationList.js.map +1 -0
- package/lib/commonjs/components/PreChatForm.js +263 -0
- package/lib/commonjs/components/PreChatForm.js.map +1 -0
- package/lib/commonjs/components/RichMessage.js +284 -0
- package/lib/commonjs/components/RichMessage.js.map +1 -0
- package/lib/commonjs/components/SatisfactionSurvey.js +292 -0
- package/lib/commonjs/components/SatisfactionSurvey.js.map +1 -0
- package/lib/commonjs/components/TypingIndicator.js +86 -0
- package/lib/commonjs/components/TypingIndicator.js.map +1 -0
- package/lib/commonjs/core/api.js +310 -0
- package/lib/commonjs/core/api.js.map +1 -0
- package/lib/commonjs/core/config.js +40 -0
- package/lib/commonjs/core/config.js.map +1 -0
- package/lib/commonjs/core/errors.js +73 -0
- package/lib/commonjs/core/errors.js.map +1 -0
- package/lib/commonjs/core/offlineQueue.js +89 -0
- package/lib/commonjs/core/offlineQueue.js.map +1 -0
- package/lib/commonjs/core/pushNotifications.js +21 -0
- package/lib/commonjs/core/pushNotifications.js.map +1 -0
- package/lib/commonjs/core/session.js +130 -0
- package/lib/commonjs/core/session.js.map +1 -0
- package/lib/commonjs/core/theme.js +110 -0
- package/lib/commonjs/core/theme.js.map +1 -0
- package/lib/commonjs/core/types.js +6 -0
- package/lib/commonjs/core/types.js.map +1 -0
- package/lib/commonjs/core/websocket.js +245 -0
- package/lib/commonjs/core/websocket.js.map +1 -0
- package/lib/commonjs/hooks/useChat.js +462 -0
- package/lib/commonjs/hooks/useChat.js.map +1 -0
- package/lib/commonjs/hooks/useParlr.js +44 -0
- package/lib/commonjs/hooks/useParlr.js.map +1 -0
- package/lib/commonjs/index.js +185 -0
- package/lib/commonjs/index.js.map +1 -0
- package/lib/commonjs/package.json +1 -0
- package/lib/commonjs/provider/ParlrContext.js +38 -0
- package/lib/commonjs/provider/ParlrContext.js.map +1 -0
- package/lib/commonjs/provider/ParlrProvider.js +256 -0
- package/lib/commonjs/provider/ParlrProvider.js.map +1 -0
- package/lib/module/components/AttachmentPicker.js +287 -0
- package/lib/module/components/AttachmentPicker.js.map +1 -0
- package/lib/module/components/AttachmentPreview.js +195 -0
- package/lib/module/components/AttachmentPreview.js.map +1 -0
- package/lib/module/components/ChatBubble.js +386 -0
- package/lib/module/components/ChatBubble.js.map +1 -0
- package/lib/module/components/EmptyState.js +110 -0
- package/lib/module/components/EmptyState.js.map +1 -0
- package/lib/module/components/ParlrChat.js +740 -0
- package/lib/module/components/ParlrChat.js.map +1 -0
- package/lib/module/components/ParlrConversationList.js +504 -0
- package/lib/module/components/ParlrConversationList.js.map +1 -0
- package/lib/module/components/PreChatForm.js +258 -0
- package/lib/module/components/PreChatForm.js.map +1 -0
- package/lib/module/components/RichMessage.js +280 -0
- package/lib/module/components/RichMessage.js.map +1 -0
- package/lib/module/components/SatisfactionSurvey.js +287 -0
- package/lib/module/components/SatisfactionSurvey.js.map +1 -0
- package/lib/module/components/TypingIndicator.js +81 -0
- package/lib/module/components/TypingIndicator.js.map +1 -0
- package/lib/module/core/api.js +305 -0
- package/lib/module/core/api.js.map +1 -0
- package/lib/module/core/config.js +36 -0
- package/lib/module/core/config.js.map +1 -0
- package/lib/module/core/errors.js +64 -0
- package/lib/module/core/errors.js.map +1 -0
- package/lib/module/core/offlineQueue.js +82 -0
- package/lib/module/core/offlineQueue.js.map +1 -0
- package/lib/module/core/pushNotifications.js +16 -0
- package/lib/module/core/pushNotifications.js.map +1 -0
- package/lib/module/core/session.js +122 -0
- package/lib/module/core/session.js.map +1 -0
- package/lib/module/core/theme.js +105 -0
- package/lib/module/core/theme.js.map +1 -0
- package/lib/module/core/types.js +4 -0
- package/lib/module/core/types.js.map +1 -0
- package/lib/module/core/websocket.js +241 -0
- package/lib/module/core/websocket.js.map +1 -0
- package/lib/module/hooks/useChat.js +458 -0
- package/lib/module/hooks/useChat.js.map +1 -0
- package/lib/module/hooks/useParlr.js +40 -0
- package/lib/module/hooks/useParlr.js.map +1 -0
- package/lib/module/index.js +58 -0
- package/lib/module/index.js.map +1 -0
- package/lib/module/package.json +1 -0
- package/lib/module/provider/ParlrContext.js +35 -0
- package/lib/module/provider/ParlrContext.js.map +1 -0
- package/lib/module/provider/ParlrProvider.js +251 -0
- package/lib/module/provider/ParlrProvider.js.map +1 -0
- package/lib/typescript/commonjs/components/AttachmentPicker.d.ts +23 -0
- package/lib/typescript/commonjs/components/AttachmentPicker.d.ts.map +1 -0
- package/lib/typescript/commonjs/components/AttachmentPreview.d.ts +16 -0
- package/lib/typescript/commonjs/components/AttachmentPreview.d.ts.map +1 -0
- package/lib/typescript/commonjs/components/ChatBubble.d.ts +14 -0
- package/lib/typescript/commonjs/components/ChatBubble.d.ts.map +1 -0
- package/lib/typescript/commonjs/components/EmptyState.d.ts +10 -0
- package/lib/typescript/commonjs/components/EmptyState.d.ts.map +1 -0
- package/lib/typescript/commonjs/components/ParlrChat.d.ts +34 -0
- package/lib/typescript/commonjs/components/ParlrChat.d.ts.map +1 -0
- package/lib/typescript/commonjs/components/ParlrConversationList.d.ts +17 -0
- package/lib/typescript/commonjs/components/ParlrConversationList.d.ts.map +1 -0
- package/lib/typescript/commonjs/components/PreChatForm.d.ts +20 -0
- package/lib/typescript/commonjs/components/PreChatForm.d.ts.map +1 -0
- package/lib/typescript/commonjs/components/RichMessage.d.ts +41 -0
- package/lib/typescript/commonjs/components/RichMessage.d.ts.map +1 -0
- package/lib/typescript/commonjs/components/SatisfactionSurvey.d.ts +17 -0
- package/lib/typescript/commonjs/components/SatisfactionSurvey.d.ts.map +1 -0
- package/lib/typescript/commonjs/components/TypingIndicator.d.ts +7 -0
- package/lib/typescript/commonjs/components/TypingIndicator.d.ts.map +1 -0
- package/lib/typescript/commonjs/core/api.d.ts +37 -0
- package/lib/typescript/commonjs/core/api.d.ts.map +1 -0
- package/lib/typescript/commonjs/core/config.d.ts +9 -0
- package/lib/typescript/commonjs/core/config.d.ts.map +1 -0
- package/lib/typescript/commonjs/core/errors.d.ts +35 -0
- package/lib/typescript/commonjs/core/errors.d.ts.map +1 -0
- package/lib/typescript/commonjs/core/offlineQueue.d.ts +16 -0
- package/lib/typescript/commonjs/core/offlineQueue.d.ts.map +1 -0
- package/lib/typescript/commonjs/core/pushNotifications.d.ts +6 -0
- package/lib/typescript/commonjs/core/pushNotifications.d.ts.map +1 -0
- package/lib/typescript/commonjs/core/session.d.ts +15 -0
- package/lib/typescript/commonjs/core/session.d.ts.map +1 -0
- package/lib/typescript/commonjs/core/theme.d.ts +43 -0
- package/lib/typescript/commonjs/core/theme.d.ts.map +1 -0
- package/lib/typescript/commonjs/core/types.d.ts +185 -0
- package/lib/typescript/commonjs/core/types.d.ts.map +1 -0
- package/lib/typescript/commonjs/core/websocket.d.ts +17 -0
- package/lib/typescript/commonjs/core/websocket.d.ts.map +1 -0
- package/lib/typescript/commonjs/hooks/useChat.d.ts +35 -0
- package/lib/typescript/commonjs/hooks/useChat.d.ts.map +1 -0
- package/lib/typescript/commonjs/hooks/useParlr.d.ts +11 -0
- package/lib/typescript/commonjs/hooks/useParlr.d.ts.map +1 -0
- package/lib/typescript/commonjs/index.d.ts +30 -0
- package/lib/typescript/commonjs/index.d.ts.map +1 -0
- package/lib/typescript/commonjs/package.json +1 -0
- package/lib/typescript/commonjs/provider/ParlrContext.d.ts +13 -0
- package/lib/typescript/commonjs/provider/ParlrContext.d.ts.map +1 -0
- package/lib/typescript/commonjs/provider/ParlrProvider.d.ts +5 -0
- package/lib/typescript/commonjs/provider/ParlrProvider.d.ts.map +1 -0
- package/lib/typescript/module/components/AttachmentPicker.d.ts +23 -0
- package/lib/typescript/module/components/AttachmentPicker.d.ts.map +1 -0
- package/lib/typescript/module/components/AttachmentPreview.d.ts +16 -0
- package/lib/typescript/module/components/AttachmentPreview.d.ts.map +1 -0
- package/lib/typescript/module/components/ChatBubble.d.ts +14 -0
- package/lib/typescript/module/components/ChatBubble.d.ts.map +1 -0
- package/lib/typescript/module/components/EmptyState.d.ts +10 -0
- package/lib/typescript/module/components/EmptyState.d.ts.map +1 -0
- package/lib/typescript/module/components/ParlrChat.d.ts +34 -0
- package/lib/typescript/module/components/ParlrChat.d.ts.map +1 -0
- package/lib/typescript/module/components/ParlrConversationList.d.ts +17 -0
- package/lib/typescript/module/components/ParlrConversationList.d.ts.map +1 -0
- package/lib/typescript/module/components/PreChatForm.d.ts +20 -0
- package/lib/typescript/module/components/PreChatForm.d.ts.map +1 -0
- package/lib/typescript/module/components/RichMessage.d.ts +41 -0
- package/lib/typescript/module/components/RichMessage.d.ts.map +1 -0
- package/lib/typescript/module/components/SatisfactionSurvey.d.ts +17 -0
- package/lib/typescript/module/components/SatisfactionSurvey.d.ts.map +1 -0
- package/lib/typescript/module/components/TypingIndicator.d.ts +7 -0
- package/lib/typescript/module/components/TypingIndicator.d.ts.map +1 -0
- package/lib/typescript/module/core/api.d.ts +37 -0
- package/lib/typescript/module/core/api.d.ts.map +1 -0
- package/lib/typescript/module/core/config.d.ts +9 -0
- package/lib/typescript/module/core/config.d.ts.map +1 -0
- package/lib/typescript/module/core/errors.d.ts +35 -0
- package/lib/typescript/module/core/errors.d.ts.map +1 -0
- package/lib/typescript/module/core/offlineQueue.d.ts +16 -0
- package/lib/typescript/module/core/offlineQueue.d.ts.map +1 -0
- package/lib/typescript/module/core/pushNotifications.d.ts +6 -0
- package/lib/typescript/module/core/pushNotifications.d.ts.map +1 -0
- package/lib/typescript/module/core/session.d.ts +15 -0
- package/lib/typescript/module/core/session.d.ts.map +1 -0
- package/lib/typescript/module/core/theme.d.ts +43 -0
- package/lib/typescript/module/core/theme.d.ts.map +1 -0
- package/lib/typescript/module/core/types.d.ts +185 -0
- package/lib/typescript/module/core/types.d.ts.map +1 -0
- package/lib/typescript/module/core/websocket.d.ts +17 -0
- package/lib/typescript/module/core/websocket.d.ts.map +1 -0
- package/lib/typescript/module/hooks/useChat.d.ts +35 -0
- package/lib/typescript/module/hooks/useChat.d.ts.map +1 -0
- package/lib/typescript/module/hooks/useParlr.d.ts +11 -0
- package/lib/typescript/module/hooks/useParlr.d.ts.map +1 -0
- package/lib/typescript/module/index.d.ts +30 -0
- package/lib/typescript/module/index.d.ts.map +1 -0
- package/lib/typescript/module/package.json +1 -0
- package/lib/typescript/module/provider/ParlrContext.d.ts +13 -0
- package/lib/typescript/module/provider/ParlrContext.d.ts.map +1 -0
- package/lib/typescript/module/provider/ParlrProvider.d.ts +5 -0
- package/lib/typescript/module/provider/ParlrProvider.d.ts.map +1 -0
- package/package.json +120 -0
- package/src/components/AttachmentPicker.tsx +310 -0
- package/src/components/AttachmentPreview.tsx +209 -0
- package/src/components/ChatBubble.tsx +424 -0
- package/src/components/EmptyState.tsx +118 -0
- package/src/components/ParlrChat.tsx +863 -0
- package/src/components/ParlrConversationList.tsx +559 -0
- package/src/components/PreChatForm.tsx +313 -0
- package/src/components/RichMessage.tsx +353 -0
- package/src/components/SatisfactionSurvey.tsx +333 -0
- package/src/components/TypingIndicator.tsx +89 -0
- package/src/core/api.ts +406 -0
- package/src/core/config.ts +39 -0
- package/src/core/errors.ts +68 -0
- package/src/core/offlineQueue.ts +94 -0
- package/src/core/pushNotifications.ts +22 -0
- package/src/core/session.ts +156 -0
- package/src/core/theme.ts +133 -0
- package/src/core/types.ts +237 -0
- package/src/core/websocket.ts +270 -0
- package/src/hooks/useChat.ts +534 -0
- package/src/hooks/useParlr.ts +43 -0
- package/src/index.ts +98 -0
- package/src/provider/ParlrContext.ts +40 -0
- package/src/provider/ParlrProvider.tsx +338 -0
|
@@ -0,0 +1,391 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.ChatBubble = ChatBubble;
|
|
7
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
8
|
+
var _reactNative = require("react-native");
|
|
9
|
+
var _reactNativeReanimated = _interopRequireWildcard(require("react-native-reanimated"));
|
|
10
|
+
var _ParlrContext = require("../provider/ParlrContext.js");
|
|
11
|
+
var _RichMessage = require("./RichMessage.js");
|
|
12
|
+
var _jsxRuntime = require("react/jsx-runtime");
|
|
13
|
+
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
|
|
14
|
+
// ---------------------------------------------------------------------------
|
|
15
|
+
// Parlr React Native SDK - Chat Bubble
|
|
16
|
+
// ---------------------------------------------------------------------------
|
|
17
|
+
//
|
|
18
|
+
// Renders a single message bubble. Agent messages appear on the left with an
|
|
19
|
+
// avatar; contact messages appear on the right with the accent color.
|
|
20
|
+
// Supports text, images, file attachments, and read receipts.
|
|
21
|
+
// ---------------------------------------------------------------------------
|
|
22
|
+
|
|
23
|
+
function formatTime(iso) {
|
|
24
|
+
try {
|
|
25
|
+
const d = new Date(iso);
|
|
26
|
+
return d.toLocaleTimeString([], {
|
|
27
|
+
hour: '2-digit',
|
|
28
|
+
minute: '2-digit'
|
|
29
|
+
});
|
|
30
|
+
} catch {
|
|
31
|
+
return '';
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
function AgentAvatar({
|
|
35
|
+
name,
|
|
36
|
+
theme
|
|
37
|
+
}) {
|
|
38
|
+
const initial = (name ?? 'A').charAt(0).toUpperCase();
|
|
39
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
|
|
40
|
+
style: [styles.avatar, {
|
|
41
|
+
backgroundColor: theme.colors.surfaceDark
|
|
42
|
+
}],
|
|
43
|
+
accessibilityLabel: `${name ?? 'Agent'} avatar`,
|
|
44
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
|
|
45
|
+
style: [styles.avatarText, {
|
|
46
|
+
color: theme.colors.textSecondary
|
|
47
|
+
}],
|
|
48
|
+
children: initial
|
|
49
|
+
})
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
// ---------------------------------------------------------------------------
|
|
54
|
+
// Read receipt indicators
|
|
55
|
+
// ---------------------------------------------------------------------------
|
|
56
|
+
|
|
57
|
+
function ReadReceipt({
|
|
58
|
+
status
|
|
59
|
+
}) {
|
|
60
|
+
if (!status || status === 'failed') return null;
|
|
61
|
+
if (status === 'sending') {
|
|
62
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
|
|
63
|
+
style: styles.statusIndicator,
|
|
64
|
+
children: " ..."
|
|
65
|
+
});
|
|
66
|
+
}
|
|
67
|
+
if (status === 'sent') {
|
|
68
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.Text, {
|
|
69
|
+
style: styles.checkmark,
|
|
70
|
+
children: [" ", '\u2713']
|
|
71
|
+
});
|
|
72
|
+
}
|
|
73
|
+
if (status === 'read') {
|
|
74
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.Text, {
|
|
75
|
+
style: styles.checkmarkRead,
|
|
76
|
+
children: [" ", '\u2713\u2713']
|
|
77
|
+
});
|
|
78
|
+
}
|
|
79
|
+
return null;
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
// ---------------------------------------------------------------------------
|
|
83
|
+
// Attachment renderers
|
|
84
|
+
// ---------------------------------------------------------------------------
|
|
85
|
+
|
|
86
|
+
function isImageAttachment(attachment) {
|
|
87
|
+
return attachment.contentType.startsWith('image/');
|
|
88
|
+
}
|
|
89
|
+
function formatFileSize(bytes) {
|
|
90
|
+
if (bytes < 1024) return `${bytes} B`;
|
|
91
|
+
if (bytes < 1024 * 1024) return `${(bytes / 1024).toFixed(1)} KB`;
|
|
92
|
+
return `${(bytes / (1024 * 1024)).toFixed(1)} MB`;
|
|
93
|
+
}
|
|
94
|
+
function ImageAttachmentView({
|
|
95
|
+
attachment
|
|
96
|
+
}) {
|
|
97
|
+
const [visible, setVisible] = (0, _react.useState)(false);
|
|
98
|
+
const screenWidth = _reactNative.Dimensions.get('window').width;
|
|
99
|
+
const screenHeight = _reactNative.Dimensions.get('window').height;
|
|
100
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
|
|
101
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Pressable, {
|
|
102
|
+
onPress: () => setVisible(true),
|
|
103
|
+
accessibilityLabel: attachment.name,
|
|
104
|
+
accessibilityRole: "image",
|
|
105
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Image, {
|
|
106
|
+
source: {
|
|
107
|
+
uri: attachment.url
|
|
108
|
+
},
|
|
109
|
+
style: styles.attachmentImage,
|
|
110
|
+
resizeMode: "cover"
|
|
111
|
+
})
|
|
112
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Modal, {
|
|
113
|
+
visible: visible,
|
|
114
|
+
transparent: true,
|
|
115
|
+
animationType: "fade",
|
|
116
|
+
onRequestClose: () => setVisible(false),
|
|
117
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.Pressable, {
|
|
118
|
+
style: styles.imageModalBackdrop,
|
|
119
|
+
onPress: () => setVisible(false),
|
|
120
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Image, {
|
|
121
|
+
source: {
|
|
122
|
+
uri: attachment.url
|
|
123
|
+
},
|
|
124
|
+
style: {
|
|
125
|
+
width: screenWidth,
|
|
126
|
+
height: screenHeight * 0.8
|
|
127
|
+
},
|
|
128
|
+
resizeMode: "contain"
|
|
129
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
|
|
130
|
+
style: styles.imageModalClose,
|
|
131
|
+
children: '\u2715'
|
|
132
|
+
})]
|
|
133
|
+
})
|
|
134
|
+
})]
|
|
135
|
+
});
|
|
136
|
+
}
|
|
137
|
+
function AttachmentView({
|
|
138
|
+
attachment,
|
|
139
|
+
isAgent,
|
|
140
|
+
isDark
|
|
141
|
+
}) {
|
|
142
|
+
if (isImageAttachment(attachment)) {
|
|
143
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(ImageAttachmentView, {
|
|
144
|
+
attachment: attachment
|
|
145
|
+
});
|
|
146
|
+
}
|
|
147
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.Pressable, {
|
|
148
|
+
onPress: () => _reactNative.Linking.openURL(attachment.url).catch(() => {}),
|
|
149
|
+
style: [styles.fileAttachment, isDark && styles.fileAttachmentDark],
|
|
150
|
+
accessibilityRole: "link",
|
|
151
|
+
accessibilityLabel: `${attachment.name}, ${formatFileSize(attachment.size)}`,
|
|
152
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
|
|
153
|
+
style: styles.fileIcon,
|
|
154
|
+
children: '\ud83d\udcc4'
|
|
155
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
|
|
156
|
+
style: styles.fileDetails,
|
|
157
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
|
|
158
|
+
style: [styles.fileName, isAgent ? [styles.fileNameAgent, isDark && styles.fileNameAgentDark] : styles.fileNameContact],
|
|
159
|
+
numberOfLines: 1,
|
|
160
|
+
children: attachment.name
|
|
161
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
|
|
162
|
+
style: [styles.fileSizeText, isAgent ? [styles.fileSizeAgent, isDark && styles.fileSizeAgentDark] : styles.fileSizeContact],
|
|
163
|
+
children: formatFileSize(attachment.size)
|
|
164
|
+
})]
|
|
165
|
+
})]
|
|
166
|
+
});
|
|
167
|
+
}
|
|
168
|
+
|
|
169
|
+
// ---------------------------------------------------------------------------
|
|
170
|
+
// Main component
|
|
171
|
+
// ---------------------------------------------------------------------------
|
|
172
|
+
|
|
173
|
+
function ChatBubble({
|
|
174
|
+
message,
|
|
175
|
+
accentColor,
|
|
176
|
+
animated = false,
|
|
177
|
+
onRichAction
|
|
178
|
+
}) {
|
|
179
|
+
const {
|
|
180
|
+
theme
|
|
181
|
+
} = (0, _react.useContext)(_ParlrContext.ParlrContext);
|
|
182
|
+
const isAgent = message.senderType === 'agent';
|
|
183
|
+
const accent = accentColor ?? theme.colors.primary;
|
|
184
|
+
const isFailed = message.status === 'failed';
|
|
185
|
+
const Wrapper = animated ? _reactNativeReanimated.default.View : _reactNative.View;
|
|
186
|
+
const animationProps = animated ? {
|
|
187
|
+
entering: _reactNativeReanimated.FadeInUp.duration(250).springify()
|
|
188
|
+
} : {};
|
|
189
|
+
const senderLabel = isAgent ? message.senderName ?? 'Agent' : 'You';
|
|
190
|
+
const timeLabel = formatTime(message.createdAt);
|
|
191
|
+
const statusLabel = isFailed ? ', failed to send' : '';
|
|
192
|
+
const hasAttachments = message.attachments && message.attachments.length > 0;
|
|
193
|
+
const hasImageAttachments = hasAttachments && message.attachments.some(isImageAttachment);
|
|
194
|
+
const richContent = message.metadata ? (0, _RichMessage.tryParseRichContent)(message.metadata) : null;
|
|
195
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsxs)(Wrapper, {
|
|
196
|
+
...animationProps,
|
|
197
|
+
style: [styles.row, isAgent ? styles.rowAgent : styles.rowContact],
|
|
198
|
+
accessibilityLabel: `${senderLabel}: ${message.content}, ${timeLabel}${statusLabel}`,
|
|
199
|
+
accessibilityRole: "text",
|
|
200
|
+
children: [isAgent && /*#__PURE__*/(0, _jsxRuntime.jsx)(AgentAvatar, {
|
|
201
|
+
name: message.senderName,
|
|
202
|
+
theme: theme
|
|
203
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
|
|
204
|
+
style: [styles.bubble, {
|
|
205
|
+
borderRadius: theme.borderRadius.bubble
|
|
206
|
+
}, isAgent ? {
|
|
207
|
+
backgroundColor: theme.colors.agentBubble,
|
|
208
|
+
borderBottomLeftRadius: 6
|
|
209
|
+
} : {
|
|
210
|
+
backgroundColor: theme.colors.contactBubble,
|
|
211
|
+
borderBottomRightRadius: 6
|
|
212
|
+
}, isFailed && styles.bubbleFailed],
|
|
213
|
+
children: [isAgent && message.senderName && /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
|
|
214
|
+
style: [styles.senderName, {
|
|
215
|
+
color: theme.colors.textSecondary
|
|
216
|
+
}],
|
|
217
|
+
numberOfLines: 1,
|
|
218
|
+
children: message.senderName
|
|
219
|
+
}), hasAttachments && /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
|
|
220
|
+
style: styles.attachmentsContainer,
|
|
221
|
+
children: message.attachments.map(att => /*#__PURE__*/(0, _jsxRuntime.jsx)(AttachmentView, {
|
|
222
|
+
attachment: att,
|
|
223
|
+
isAgent: isAgent,
|
|
224
|
+
isDark: theme.colors.background === '#111827' || theme.colors.background.toLowerCase() < '#888888'
|
|
225
|
+
}, att.id))
|
|
226
|
+
}), message.content.length > 0 && !hasImageAttachments && /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
|
|
227
|
+
style: [styles.content, {
|
|
228
|
+
color: isAgent ? theme.colors.agentText : theme.colors.contactText
|
|
229
|
+
}],
|
|
230
|
+
children: message.content
|
|
231
|
+
}), richContent && /*#__PURE__*/(0, _jsxRuntime.jsx)(_RichMessage.RichMessage, {
|
|
232
|
+
content: richContent,
|
|
233
|
+
onAction: onRichAction,
|
|
234
|
+
accentColor: accent
|
|
235
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
|
|
236
|
+
style: styles.meta,
|
|
237
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
|
|
238
|
+
style: [styles.time, {
|
|
239
|
+
color: isAgent ? theme.colors.textSecondary : 'rgba(255, 255, 255, 0.7)'
|
|
240
|
+
}],
|
|
241
|
+
children: formatTime(message.createdAt)
|
|
242
|
+
}), !isAgent && /*#__PURE__*/(0, _jsxRuntime.jsx)(ReadReceipt, {
|
|
243
|
+
status: message.status
|
|
244
|
+
}), isFailed && /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
|
|
245
|
+
style: [styles.failedIndicator, {
|
|
246
|
+
color: theme.colors.error
|
|
247
|
+
}],
|
|
248
|
+
children: " !"
|
|
249
|
+
})]
|
|
250
|
+
})]
|
|
251
|
+
})]
|
|
252
|
+
});
|
|
253
|
+
}
|
|
254
|
+
const styles = _reactNative.StyleSheet.create({
|
|
255
|
+
row: {
|
|
256
|
+
flexDirection: 'row',
|
|
257
|
+
marginVertical: 3,
|
|
258
|
+
paddingHorizontal: 12
|
|
259
|
+
},
|
|
260
|
+
rowAgent: {
|
|
261
|
+
justifyContent: 'flex-start',
|
|
262
|
+
alignItems: 'flex-end'
|
|
263
|
+
},
|
|
264
|
+
rowContact: {
|
|
265
|
+
justifyContent: 'flex-end',
|
|
266
|
+
alignItems: 'flex-end'
|
|
267
|
+
},
|
|
268
|
+
avatar: {
|
|
269
|
+
width: 30,
|
|
270
|
+
height: 30,
|
|
271
|
+
borderRadius: 15,
|
|
272
|
+
justifyContent: 'center',
|
|
273
|
+
alignItems: 'center',
|
|
274
|
+
marginRight: 8,
|
|
275
|
+
marginBottom: 2
|
|
276
|
+
},
|
|
277
|
+
avatarText: {
|
|
278
|
+
fontSize: 13,
|
|
279
|
+
fontWeight: '600'
|
|
280
|
+
},
|
|
281
|
+
bubble: {
|
|
282
|
+
maxWidth: '75%',
|
|
283
|
+
paddingHorizontal: 14,
|
|
284
|
+
paddingVertical: 10
|
|
285
|
+
},
|
|
286
|
+
bubbleFailed: {
|
|
287
|
+
opacity: 0.6
|
|
288
|
+
},
|
|
289
|
+
senderName: {
|
|
290
|
+
fontSize: 12,
|
|
291
|
+
fontWeight: '600',
|
|
292
|
+
marginBottom: 3
|
|
293
|
+
},
|
|
294
|
+
content: {
|
|
295
|
+
fontSize: 15,
|
|
296
|
+
lineHeight: 21
|
|
297
|
+
},
|
|
298
|
+
meta: {
|
|
299
|
+
flexDirection: 'row',
|
|
300
|
+
alignItems: 'center',
|
|
301
|
+
marginTop: 4,
|
|
302
|
+
alignSelf: 'flex-end'
|
|
303
|
+
},
|
|
304
|
+
time: {
|
|
305
|
+
fontSize: 11
|
|
306
|
+
},
|
|
307
|
+
statusIndicator: {
|
|
308
|
+
fontSize: 11,
|
|
309
|
+
color: 'rgba(255, 255, 255, 0.7)'
|
|
310
|
+
},
|
|
311
|
+
failedIndicator: {
|
|
312
|
+
fontSize: 12,
|
|
313
|
+
fontWeight: '700'
|
|
314
|
+
},
|
|
315
|
+
checkmark: {
|
|
316
|
+
fontSize: 11,
|
|
317
|
+
color: 'rgba(255, 255, 255, 0.7)'
|
|
318
|
+
},
|
|
319
|
+
checkmarkRead: {
|
|
320
|
+
fontSize: 11,
|
|
321
|
+
color: '#22c55e'
|
|
322
|
+
},
|
|
323
|
+
// Attachments
|
|
324
|
+
attachmentsContainer: {
|
|
325
|
+
marginBottom: 6,
|
|
326
|
+
gap: 4
|
|
327
|
+
},
|
|
328
|
+
attachmentImage: {
|
|
329
|
+
width: 220,
|
|
330
|
+
height: 165,
|
|
331
|
+
borderRadius: 10
|
|
332
|
+
},
|
|
333
|
+
imageModalBackdrop: {
|
|
334
|
+
flex: 1,
|
|
335
|
+
backgroundColor: 'rgba(0, 0, 0, 0.95)',
|
|
336
|
+
justifyContent: 'center',
|
|
337
|
+
alignItems: 'center'
|
|
338
|
+
},
|
|
339
|
+
imageModalClose: {
|
|
340
|
+
position: 'absolute',
|
|
341
|
+
top: 60,
|
|
342
|
+
right: 20,
|
|
343
|
+
color: '#ffffff',
|
|
344
|
+
fontSize: 28,
|
|
345
|
+
fontWeight: '600'
|
|
346
|
+
},
|
|
347
|
+
fileAttachment: {
|
|
348
|
+
flexDirection: 'row',
|
|
349
|
+
alignItems: 'center',
|
|
350
|
+
backgroundColor: 'rgba(0, 0, 0, 0.05)',
|
|
351
|
+
borderRadius: 8,
|
|
352
|
+
padding: 8
|
|
353
|
+
},
|
|
354
|
+
fileAttachmentDark: {
|
|
355
|
+
backgroundColor: 'rgba(255, 255, 255, 0.05)'
|
|
356
|
+
},
|
|
357
|
+
fileIcon: {
|
|
358
|
+
fontSize: 24,
|
|
359
|
+
marginRight: 8
|
|
360
|
+
},
|
|
361
|
+
fileDetails: {
|
|
362
|
+
flex: 1
|
|
363
|
+
},
|
|
364
|
+
fileName: {
|
|
365
|
+
fontSize: 13,
|
|
366
|
+
fontWeight: '500'
|
|
367
|
+
},
|
|
368
|
+
fileNameAgent: {
|
|
369
|
+
color: '#0f172a'
|
|
370
|
+
},
|
|
371
|
+
fileNameAgentDark: {
|
|
372
|
+
color: '#e2e8f0'
|
|
373
|
+
},
|
|
374
|
+
fileNameContact: {
|
|
375
|
+
color: '#ffffff'
|
|
376
|
+
},
|
|
377
|
+
fileSizeText: {
|
|
378
|
+
fontSize: 11,
|
|
379
|
+
marginTop: 1
|
|
380
|
+
},
|
|
381
|
+
fileSizeAgent: {
|
|
382
|
+
color: '#94a3b8'
|
|
383
|
+
},
|
|
384
|
+
fileSizeAgentDark: {
|
|
385
|
+
color: '#64748b'
|
|
386
|
+
},
|
|
387
|
+
fileSizeContact: {
|
|
388
|
+
color: 'rgba(255, 255, 255, 0.7)'
|
|
389
|
+
}
|
|
390
|
+
});
|
|
391
|
+
//# sourceMappingURL=ChatBubble.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_reactNativeReanimated","_ParlrContext","_RichMessage","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","formatTime","iso","d","Date","toLocaleTimeString","hour","minute","AgentAvatar","name","theme","initial","charAt","toUpperCase","jsx","View","style","styles","avatar","backgroundColor","colors","surfaceDark","accessibilityLabel","children","Text","avatarText","color","textSecondary","ReadReceipt","status","statusIndicator","jsxs","checkmark","checkmarkRead","isImageAttachment","attachment","contentType","startsWith","formatFileSize","bytes","toFixed","ImageAttachmentView","visible","setVisible","useState","screenWidth","Dimensions","width","screenHeight","height","Fragment","Pressable","onPress","accessibilityRole","Image","source","uri","url","attachmentImage","resizeMode","Modal","transparent","animationType","onRequestClose","imageModalBackdrop","imageModalClose","AttachmentView","isAgent","isDark","Linking","openURL","catch","fileAttachment","fileAttachmentDark","size","fileIcon","fileDetails","fileName","fileNameAgent","fileNameAgentDark","fileNameContact","numberOfLines","fileSizeText","fileSizeAgent","fileSizeAgentDark","fileSizeContact","ChatBubble","message","accentColor","animated","onRichAction","useContext","ParlrContext","senderType","accent","primary","isFailed","Wrapper","Animated","animationProps","entering","FadeInUp","duration","springify","senderLabel","senderName","timeLabel","createdAt","statusLabel","hasAttachments","attachments","length","hasImageAttachments","some","richContent","metadata","tryParseRichContent","row","rowAgent","rowContact","content","bubble","borderRadius","agentBubble","borderBottomLeftRadius","contactBubble","borderBottomRightRadius","bubbleFailed","attachmentsContainer","map","att","background","toLowerCase","id","agentText","contactText","RichMessage","onAction","meta","time","failedIndicator","error","StyleSheet","create","flexDirection","marginVertical","paddingHorizontal","justifyContent","alignItems","marginRight","marginBottom","fontSize","fontWeight","maxWidth","paddingVertical","opacity","lineHeight","marginTop","alignSelf","gap","flex","position","top","right","padding"],"sourceRoot":"../../../src","sources":["components/ChatBubble.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.EmptyState = EmptyState;
|
|
7
|
+
var _react = _interopRequireDefault(require("react"));
|
|
8
|
+
var _reactNative = require("react-native");
|
|
9
|
+
var _jsxRuntime = require("react/jsx-runtime");
|
|
10
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
11
|
+
// ---------------------------------------------------------------------------
|
|
12
|
+
// Parlr React Native SDK - Empty State
|
|
13
|
+
// ---------------------------------------------------------------------------
|
|
14
|
+
//
|
|
15
|
+
// Displayed when the user hasn't started a conversation yet.
|
|
16
|
+
// Shows a friendly welcome message with a chat icon.
|
|
17
|
+
// ---------------------------------------------------------------------------
|
|
18
|
+
|
|
19
|
+
const DEFAULTS_FR = {
|
|
20
|
+
title: 'Besoin d\u2019aide ?',
|
|
21
|
+
description: 'Notre equipe est la pour vous aider. Envoyez-nous un message et nous vous repondrons au plus vite.'
|
|
22
|
+
};
|
|
23
|
+
const DEFAULTS_EN = {
|
|
24
|
+
title: 'Need help?',
|
|
25
|
+
description: 'Our team is here to help. Send us a message and we\u2019ll get back to you as soon as possible.'
|
|
26
|
+
};
|
|
27
|
+
function getDefaults(locale) {
|
|
28
|
+
if (locale?.startsWith('en')) return DEFAULTS_EN;
|
|
29
|
+
return DEFAULTS_FR;
|
|
30
|
+
}
|
|
31
|
+
function EmptyState({
|
|
32
|
+
title,
|
|
33
|
+
description,
|
|
34
|
+
accentColor,
|
|
35
|
+
locale
|
|
36
|
+
}) {
|
|
37
|
+
const isDark = (0, _reactNative.useColorScheme)() === 'dark';
|
|
38
|
+
const defaults = getDefaults(locale);
|
|
39
|
+
const accent = accentColor ?? '#6366f1';
|
|
40
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
|
|
41
|
+
style: styles.container,
|
|
42
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
|
|
43
|
+
style: [styles.iconContainer, {
|
|
44
|
+
backgroundColor: accent + '18'
|
|
45
|
+
}],
|
|
46
|
+
accessibilityLabel: "Chat icon",
|
|
47
|
+
accessibilityRole: "image",
|
|
48
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
|
|
49
|
+
style: [styles.iconBubble, {
|
|
50
|
+
backgroundColor: accent
|
|
51
|
+
}],
|
|
52
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
|
|
53
|
+
style: styles.iconText,
|
|
54
|
+
children: "..."
|
|
55
|
+
})
|
|
56
|
+
})
|
|
57
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
|
|
58
|
+
style: [styles.title, isDark && styles.titleDark],
|
|
59
|
+
children: title ?? defaults.title
|
|
60
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
|
|
61
|
+
style: [styles.description, isDark && styles.descriptionDark],
|
|
62
|
+
children: description ?? defaults.description
|
|
63
|
+
})]
|
|
64
|
+
});
|
|
65
|
+
}
|
|
66
|
+
const styles = _reactNative.StyleSheet.create({
|
|
67
|
+
container: {
|
|
68
|
+
flex: 1,
|
|
69
|
+
justifyContent: 'center',
|
|
70
|
+
alignItems: 'center',
|
|
71
|
+
paddingHorizontal: 40
|
|
72
|
+
},
|
|
73
|
+
iconContainer: {
|
|
74
|
+
width: 80,
|
|
75
|
+
height: 80,
|
|
76
|
+
borderRadius: 40,
|
|
77
|
+
justifyContent: 'center',
|
|
78
|
+
alignItems: 'center',
|
|
79
|
+
marginBottom: 24
|
|
80
|
+
},
|
|
81
|
+
iconBubble: {
|
|
82
|
+
width: 44,
|
|
83
|
+
height: 36,
|
|
84
|
+
borderRadius: 18,
|
|
85
|
+
justifyContent: 'center',
|
|
86
|
+
alignItems: 'center'
|
|
87
|
+
},
|
|
88
|
+
iconText: {
|
|
89
|
+
color: '#ffffff',
|
|
90
|
+
fontSize: 20,
|
|
91
|
+
fontWeight: '700',
|
|
92
|
+
marginTop: -4,
|
|
93
|
+
letterSpacing: 2
|
|
94
|
+
},
|
|
95
|
+
title: {
|
|
96
|
+
fontSize: 22,
|
|
97
|
+
fontWeight: '700',
|
|
98
|
+
color: '#0f172a',
|
|
99
|
+
textAlign: 'center',
|
|
100
|
+
marginBottom: 10
|
|
101
|
+
},
|
|
102
|
+
titleDark: {
|
|
103
|
+
color: '#f1f5f9'
|
|
104
|
+
},
|
|
105
|
+
description: {
|
|
106
|
+
fontSize: 15,
|
|
107
|
+
lineHeight: 22,
|
|
108
|
+
color: '#64748b',
|
|
109
|
+
textAlign: 'center'
|
|
110
|
+
},
|
|
111
|
+
descriptionDark: {
|
|
112
|
+
color: '#94a3b8'
|
|
113
|
+
}
|
|
114
|
+
});
|
|
115
|
+
//# sourceMappingURL=EmptyState.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireDefault","require","_reactNative","_jsxRuntime","e","__esModule","default","DEFAULTS_FR","title","description","DEFAULTS_EN","getDefaults","locale","startsWith","EmptyState","accentColor","isDark","useColorScheme","defaults","accent","jsxs","View","style","styles","container","children","jsx","iconContainer","backgroundColor","accessibilityLabel","accessibilityRole","iconBubble","Text","iconText","titleDark","descriptionDark","StyleSheet","create","flex","justifyContent","alignItems","paddingHorizontal","width","height","borderRadius","marginBottom","color","fontSize","fontWeight","marginTop","letterSpacing","textAlign","lineHeight"],"sourceRoot":"../../../src","sources":["components/EmptyState.tsx"],"mappings":";;;;;;AAQA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,YAAA,GAAAD,OAAA;AAAsE,IAAAE,WAAA,GAAAF,OAAA;AAAA,SAAAD,uBAAAI,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AATtE;AACA;AACA;AACA;AACA;AACA;AACA;;AAYA,MAAMG,WAAW,GAAG;EAClBC,KAAK,EAAE,sBAAsB;EAC7BC,WAAW,EACT;AACJ,CAAC;AAED,MAAMC,WAAW,GAAG;EAClBF,KAAK,EAAE,YAAY;EACnBC,WAAW,EACT;AACJ,CAAC;AAED,SAASE,WAAWA,CAACC,MAAe,EAAE;EACpC,IAAIA,MAAM,EAAEC,UAAU,CAAC,IAAI,CAAC,EAAE,OAAOH,WAAW;EAChD,OAAOH,WAAW;AACpB;AAEO,SAASO,UAAUA,CAAC;EACzBN,KAAK;EACLC,WAAW;EACXM,WAAW;EACXH;AACe,CAAC,EAAE;EAClB,MAAMI,MAAM,GAAG,IAAAC,2BAAc,EAAC,CAAC,KAAK,MAAM;EAC1C,MAAMC,QAAQ,GAAGP,WAAW,CAACC,MAAM,CAAC;EACpC,MAAMO,MAAM,GAAGJ,WAAW,IAAI,SAAS;EAEvC,oBACE,IAAAZ,WAAA,CAAAiB,IAAA,EAAClB,YAAA,CAAAmB,IAAI;IAACC,KAAK,EAAEC,MAAM,CAACC,SAAU;IAAAC,QAAA,gBAE5B,IAAAtB,WAAA,CAAAuB,GAAA,EAACxB,YAAA,CAAAmB,IAAI;MACHC,KAAK,EAAE,CAACC,MAAM,CAACI,aAAa,EAAE;QAAEC,eAAe,EAAET,MAAM,GAAG;MAAK,CAAC,CAAE;MAClEU,kBAAkB,EAAC,WAAW;MAC9BC,iBAAiB,EAAC,OAAO;MAAAL,QAAA,eAEzB,IAAAtB,WAAA,CAAAuB,GAAA,EAACxB,YAAA,CAAAmB,IAAI;QAACC,KAAK,EAAE,CAACC,MAAM,CAACQ,UAAU,EAAE;UAAEH,eAAe,EAAET;QAAO,CAAC,CAAE;QAAAM,QAAA,eAC5D,IAAAtB,WAAA,CAAAuB,GAAA,EAACxB,YAAA,CAAA8B,IAAI;UAACV,KAAK,EAAEC,MAAM,CAACU,QAAS;UAAAR,QAAA,EAAC;QAAG,CAAM;MAAC,CACpC;IAAC,CACH,CAAC,eAEP,IAAAtB,WAAA,CAAAuB,GAAA,EAACxB,YAAA,CAAA8B,IAAI;MAACV,KAAK,EAAE,CAACC,MAAM,CAACf,KAAK,EAAEQ,MAAM,IAAIO,MAAM,CAACW,SAAS,CAAE;MAAAT,QAAA,EACrDjB,KAAK,IAAIU,QAAQ,CAACV;IAAK,CACpB,CAAC,eAEP,IAAAL,WAAA,CAAAuB,GAAA,EAACxB,YAAA,CAAA8B,IAAI;MAACV,KAAK,EAAE,CAACC,MAAM,CAACd,WAAW,EAAEO,MAAM,IAAIO,MAAM,CAACY,eAAe,CAAE;MAAAV,QAAA,EACjEhB,WAAW,IAAIS,QAAQ,CAACT;IAAW,CAChC,CAAC;EAAA,CACH,CAAC;AAEX;AAEA,MAAMc,MAAM,GAAGa,uBAAU,CAACC,MAAM,CAAC;EAC/Bb,SAAS,EAAE;IACTc,IAAI,EAAE,CAAC;IACPC,cAAc,EAAE,QAAQ;IACxBC,UAAU,EAAE,QAAQ;IACpBC,iBAAiB,EAAE;EACrB,CAAC;EACDd,aAAa,EAAE;IACbe,KAAK,EAAE,EAAE;IACTC,MAAM,EAAE,EAAE;IACVC,YAAY,EAAE,EAAE;IAChBL,cAAc,EAAE,QAAQ;IACxBC,UAAU,EAAE,QAAQ;IACpBK,YAAY,EAAE;EAChB,CAAC;EACDd,UAAU,EAAE;IACVW,KAAK,EAAE,EAAE;IACTC,MAAM,EAAE,EAAE;IACVC,YAAY,EAAE,EAAE;IAChBL,cAAc,EAAE,QAAQ;IACxBC,UAAU,EAAE;EACd,CAAC;EACDP,QAAQ,EAAE;IACRa,KAAK,EAAE,SAAS;IAChBC,QAAQ,EAAE,EAAE;IACZC,UAAU,EAAE,KAAK;IACjBC,SAAS,EAAE,CAAC,CAAC;IACbC,aAAa,EAAE;EACjB,CAAC;EACD1C,KAAK,EAAE;IACLuC,QAAQ,EAAE,EAAE;IACZC,UAAU,EAAE,KAAK;IACjBF,KAAK,EAAE,SAAS;IAChBK,SAAS,EAAE,QAAQ;IACnBN,YAAY,EAAE;EAChB,CAAC;EACDX,SAAS,EAAE;IACTY,KAAK,EAAE;EACT,CAAC;EACDrC,WAAW,EAAE;IACXsC,QAAQ,EAAE,EAAE;IACZK,UAAU,EAAE,EAAE;IACdN,KAAK,EAAE,SAAS;IAChBK,SAAS,EAAE;EACb,CAAC;EACDhB,eAAe,EAAE;IACfW,KAAK,EAAE;EACT;AACF,CAAC,CAAC","ignoreList":[]}
|