@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.
Files changed (223) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +918 -0
  3. package/lib/commonjs/components/AttachmentPicker.js +292 -0
  4. package/lib/commonjs/components/AttachmentPicker.js.map +1 -0
  5. package/lib/commonjs/components/AttachmentPreview.js +200 -0
  6. package/lib/commonjs/components/AttachmentPreview.js.map +1 -0
  7. package/lib/commonjs/components/ChatBubble.js +391 -0
  8. package/lib/commonjs/components/ChatBubble.js.map +1 -0
  9. package/lib/commonjs/components/EmptyState.js +115 -0
  10. package/lib/commonjs/components/EmptyState.js.map +1 -0
  11. package/lib/commonjs/components/ParlrChat.js +745 -0
  12. package/lib/commonjs/components/ParlrChat.js.map +1 -0
  13. package/lib/commonjs/components/ParlrConversationList.js +509 -0
  14. package/lib/commonjs/components/ParlrConversationList.js.map +1 -0
  15. package/lib/commonjs/components/PreChatForm.js +263 -0
  16. package/lib/commonjs/components/PreChatForm.js.map +1 -0
  17. package/lib/commonjs/components/RichMessage.js +284 -0
  18. package/lib/commonjs/components/RichMessage.js.map +1 -0
  19. package/lib/commonjs/components/SatisfactionSurvey.js +292 -0
  20. package/lib/commonjs/components/SatisfactionSurvey.js.map +1 -0
  21. package/lib/commonjs/components/TypingIndicator.js +86 -0
  22. package/lib/commonjs/components/TypingIndicator.js.map +1 -0
  23. package/lib/commonjs/core/api.js +310 -0
  24. package/lib/commonjs/core/api.js.map +1 -0
  25. package/lib/commonjs/core/config.js +40 -0
  26. package/lib/commonjs/core/config.js.map +1 -0
  27. package/lib/commonjs/core/errors.js +73 -0
  28. package/lib/commonjs/core/errors.js.map +1 -0
  29. package/lib/commonjs/core/offlineQueue.js +89 -0
  30. package/lib/commonjs/core/offlineQueue.js.map +1 -0
  31. package/lib/commonjs/core/pushNotifications.js +21 -0
  32. package/lib/commonjs/core/pushNotifications.js.map +1 -0
  33. package/lib/commonjs/core/session.js +130 -0
  34. package/lib/commonjs/core/session.js.map +1 -0
  35. package/lib/commonjs/core/theme.js +110 -0
  36. package/lib/commonjs/core/theme.js.map +1 -0
  37. package/lib/commonjs/core/types.js +6 -0
  38. package/lib/commonjs/core/types.js.map +1 -0
  39. package/lib/commonjs/core/websocket.js +245 -0
  40. package/lib/commonjs/core/websocket.js.map +1 -0
  41. package/lib/commonjs/hooks/useChat.js +462 -0
  42. package/lib/commonjs/hooks/useChat.js.map +1 -0
  43. package/lib/commonjs/hooks/useParlr.js +44 -0
  44. package/lib/commonjs/hooks/useParlr.js.map +1 -0
  45. package/lib/commonjs/index.js +185 -0
  46. package/lib/commonjs/index.js.map +1 -0
  47. package/lib/commonjs/package.json +1 -0
  48. package/lib/commonjs/provider/ParlrContext.js +38 -0
  49. package/lib/commonjs/provider/ParlrContext.js.map +1 -0
  50. package/lib/commonjs/provider/ParlrProvider.js +256 -0
  51. package/lib/commonjs/provider/ParlrProvider.js.map +1 -0
  52. package/lib/module/components/AttachmentPicker.js +287 -0
  53. package/lib/module/components/AttachmentPicker.js.map +1 -0
  54. package/lib/module/components/AttachmentPreview.js +195 -0
  55. package/lib/module/components/AttachmentPreview.js.map +1 -0
  56. package/lib/module/components/ChatBubble.js +386 -0
  57. package/lib/module/components/ChatBubble.js.map +1 -0
  58. package/lib/module/components/EmptyState.js +110 -0
  59. package/lib/module/components/EmptyState.js.map +1 -0
  60. package/lib/module/components/ParlrChat.js +740 -0
  61. package/lib/module/components/ParlrChat.js.map +1 -0
  62. package/lib/module/components/ParlrConversationList.js +504 -0
  63. package/lib/module/components/ParlrConversationList.js.map +1 -0
  64. package/lib/module/components/PreChatForm.js +258 -0
  65. package/lib/module/components/PreChatForm.js.map +1 -0
  66. package/lib/module/components/RichMessage.js +280 -0
  67. package/lib/module/components/RichMessage.js.map +1 -0
  68. package/lib/module/components/SatisfactionSurvey.js +287 -0
  69. package/lib/module/components/SatisfactionSurvey.js.map +1 -0
  70. package/lib/module/components/TypingIndicator.js +81 -0
  71. package/lib/module/components/TypingIndicator.js.map +1 -0
  72. package/lib/module/core/api.js +305 -0
  73. package/lib/module/core/api.js.map +1 -0
  74. package/lib/module/core/config.js +36 -0
  75. package/lib/module/core/config.js.map +1 -0
  76. package/lib/module/core/errors.js +64 -0
  77. package/lib/module/core/errors.js.map +1 -0
  78. package/lib/module/core/offlineQueue.js +82 -0
  79. package/lib/module/core/offlineQueue.js.map +1 -0
  80. package/lib/module/core/pushNotifications.js +16 -0
  81. package/lib/module/core/pushNotifications.js.map +1 -0
  82. package/lib/module/core/session.js +122 -0
  83. package/lib/module/core/session.js.map +1 -0
  84. package/lib/module/core/theme.js +105 -0
  85. package/lib/module/core/theme.js.map +1 -0
  86. package/lib/module/core/types.js +4 -0
  87. package/lib/module/core/types.js.map +1 -0
  88. package/lib/module/core/websocket.js +241 -0
  89. package/lib/module/core/websocket.js.map +1 -0
  90. package/lib/module/hooks/useChat.js +458 -0
  91. package/lib/module/hooks/useChat.js.map +1 -0
  92. package/lib/module/hooks/useParlr.js +40 -0
  93. package/lib/module/hooks/useParlr.js.map +1 -0
  94. package/lib/module/index.js +58 -0
  95. package/lib/module/index.js.map +1 -0
  96. package/lib/module/package.json +1 -0
  97. package/lib/module/provider/ParlrContext.js +35 -0
  98. package/lib/module/provider/ParlrContext.js.map +1 -0
  99. package/lib/module/provider/ParlrProvider.js +251 -0
  100. package/lib/module/provider/ParlrProvider.js.map +1 -0
  101. package/lib/typescript/commonjs/components/AttachmentPicker.d.ts +23 -0
  102. package/lib/typescript/commonjs/components/AttachmentPicker.d.ts.map +1 -0
  103. package/lib/typescript/commonjs/components/AttachmentPreview.d.ts +16 -0
  104. package/lib/typescript/commonjs/components/AttachmentPreview.d.ts.map +1 -0
  105. package/lib/typescript/commonjs/components/ChatBubble.d.ts +14 -0
  106. package/lib/typescript/commonjs/components/ChatBubble.d.ts.map +1 -0
  107. package/lib/typescript/commonjs/components/EmptyState.d.ts +10 -0
  108. package/lib/typescript/commonjs/components/EmptyState.d.ts.map +1 -0
  109. package/lib/typescript/commonjs/components/ParlrChat.d.ts +34 -0
  110. package/lib/typescript/commonjs/components/ParlrChat.d.ts.map +1 -0
  111. package/lib/typescript/commonjs/components/ParlrConversationList.d.ts +17 -0
  112. package/lib/typescript/commonjs/components/ParlrConversationList.d.ts.map +1 -0
  113. package/lib/typescript/commonjs/components/PreChatForm.d.ts +20 -0
  114. package/lib/typescript/commonjs/components/PreChatForm.d.ts.map +1 -0
  115. package/lib/typescript/commonjs/components/RichMessage.d.ts +41 -0
  116. package/lib/typescript/commonjs/components/RichMessage.d.ts.map +1 -0
  117. package/lib/typescript/commonjs/components/SatisfactionSurvey.d.ts +17 -0
  118. package/lib/typescript/commonjs/components/SatisfactionSurvey.d.ts.map +1 -0
  119. package/lib/typescript/commonjs/components/TypingIndicator.d.ts +7 -0
  120. package/lib/typescript/commonjs/components/TypingIndicator.d.ts.map +1 -0
  121. package/lib/typescript/commonjs/core/api.d.ts +37 -0
  122. package/lib/typescript/commonjs/core/api.d.ts.map +1 -0
  123. package/lib/typescript/commonjs/core/config.d.ts +9 -0
  124. package/lib/typescript/commonjs/core/config.d.ts.map +1 -0
  125. package/lib/typescript/commonjs/core/errors.d.ts +35 -0
  126. package/lib/typescript/commonjs/core/errors.d.ts.map +1 -0
  127. package/lib/typescript/commonjs/core/offlineQueue.d.ts +16 -0
  128. package/lib/typescript/commonjs/core/offlineQueue.d.ts.map +1 -0
  129. package/lib/typescript/commonjs/core/pushNotifications.d.ts +6 -0
  130. package/lib/typescript/commonjs/core/pushNotifications.d.ts.map +1 -0
  131. package/lib/typescript/commonjs/core/session.d.ts +15 -0
  132. package/lib/typescript/commonjs/core/session.d.ts.map +1 -0
  133. package/lib/typescript/commonjs/core/theme.d.ts +43 -0
  134. package/lib/typescript/commonjs/core/theme.d.ts.map +1 -0
  135. package/lib/typescript/commonjs/core/types.d.ts +185 -0
  136. package/lib/typescript/commonjs/core/types.d.ts.map +1 -0
  137. package/lib/typescript/commonjs/core/websocket.d.ts +17 -0
  138. package/lib/typescript/commonjs/core/websocket.d.ts.map +1 -0
  139. package/lib/typescript/commonjs/hooks/useChat.d.ts +35 -0
  140. package/lib/typescript/commonjs/hooks/useChat.d.ts.map +1 -0
  141. package/lib/typescript/commonjs/hooks/useParlr.d.ts +11 -0
  142. package/lib/typescript/commonjs/hooks/useParlr.d.ts.map +1 -0
  143. package/lib/typescript/commonjs/index.d.ts +30 -0
  144. package/lib/typescript/commonjs/index.d.ts.map +1 -0
  145. package/lib/typescript/commonjs/package.json +1 -0
  146. package/lib/typescript/commonjs/provider/ParlrContext.d.ts +13 -0
  147. package/lib/typescript/commonjs/provider/ParlrContext.d.ts.map +1 -0
  148. package/lib/typescript/commonjs/provider/ParlrProvider.d.ts +5 -0
  149. package/lib/typescript/commonjs/provider/ParlrProvider.d.ts.map +1 -0
  150. package/lib/typescript/module/components/AttachmentPicker.d.ts +23 -0
  151. package/lib/typescript/module/components/AttachmentPicker.d.ts.map +1 -0
  152. package/lib/typescript/module/components/AttachmentPreview.d.ts +16 -0
  153. package/lib/typescript/module/components/AttachmentPreview.d.ts.map +1 -0
  154. package/lib/typescript/module/components/ChatBubble.d.ts +14 -0
  155. package/lib/typescript/module/components/ChatBubble.d.ts.map +1 -0
  156. package/lib/typescript/module/components/EmptyState.d.ts +10 -0
  157. package/lib/typescript/module/components/EmptyState.d.ts.map +1 -0
  158. package/lib/typescript/module/components/ParlrChat.d.ts +34 -0
  159. package/lib/typescript/module/components/ParlrChat.d.ts.map +1 -0
  160. package/lib/typescript/module/components/ParlrConversationList.d.ts +17 -0
  161. package/lib/typescript/module/components/ParlrConversationList.d.ts.map +1 -0
  162. package/lib/typescript/module/components/PreChatForm.d.ts +20 -0
  163. package/lib/typescript/module/components/PreChatForm.d.ts.map +1 -0
  164. package/lib/typescript/module/components/RichMessage.d.ts +41 -0
  165. package/lib/typescript/module/components/RichMessage.d.ts.map +1 -0
  166. package/lib/typescript/module/components/SatisfactionSurvey.d.ts +17 -0
  167. package/lib/typescript/module/components/SatisfactionSurvey.d.ts.map +1 -0
  168. package/lib/typescript/module/components/TypingIndicator.d.ts +7 -0
  169. package/lib/typescript/module/components/TypingIndicator.d.ts.map +1 -0
  170. package/lib/typescript/module/core/api.d.ts +37 -0
  171. package/lib/typescript/module/core/api.d.ts.map +1 -0
  172. package/lib/typescript/module/core/config.d.ts +9 -0
  173. package/lib/typescript/module/core/config.d.ts.map +1 -0
  174. package/lib/typescript/module/core/errors.d.ts +35 -0
  175. package/lib/typescript/module/core/errors.d.ts.map +1 -0
  176. package/lib/typescript/module/core/offlineQueue.d.ts +16 -0
  177. package/lib/typescript/module/core/offlineQueue.d.ts.map +1 -0
  178. package/lib/typescript/module/core/pushNotifications.d.ts +6 -0
  179. package/lib/typescript/module/core/pushNotifications.d.ts.map +1 -0
  180. package/lib/typescript/module/core/session.d.ts +15 -0
  181. package/lib/typescript/module/core/session.d.ts.map +1 -0
  182. package/lib/typescript/module/core/theme.d.ts +43 -0
  183. package/lib/typescript/module/core/theme.d.ts.map +1 -0
  184. package/lib/typescript/module/core/types.d.ts +185 -0
  185. package/lib/typescript/module/core/types.d.ts.map +1 -0
  186. package/lib/typescript/module/core/websocket.d.ts +17 -0
  187. package/lib/typescript/module/core/websocket.d.ts.map +1 -0
  188. package/lib/typescript/module/hooks/useChat.d.ts +35 -0
  189. package/lib/typescript/module/hooks/useChat.d.ts.map +1 -0
  190. package/lib/typescript/module/hooks/useParlr.d.ts +11 -0
  191. package/lib/typescript/module/hooks/useParlr.d.ts.map +1 -0
  192. package/lib/typescript/module/index.d.ts +30 -0
  193. package/lib/typescript/module/index.d.ts.map +1 -0
  194. package/lib/typescript/module/package.json +1 -0
  195. package/lib/typescript/module/provider/ParlrContext.d.ts +13 -0
  196. package/lib/typescript/module/provider/ParlrContext.d.ts.map +1 -0
  197. package/lib/typescript/module/provider/ParlrProvider.d.ts +5 -0
  198. package/lib/typescript/module/provider/ParlrProvider.d.ts.map +1 -0
  199. package/package.json +120 -0
  200. package/src/components/AttachmentPicker.tsx +310 -0
  201. package/src/components/AttachmentPreview.tsx +209 -0
  202. package/src/components/ChatBubble.tsx +424 -0
  203. package/src/components/EmptyState.tsx +118 -0
  204. package/src/components/ParlrChat.tsx +863 -0
  205. package/src/components/ParlrConversationList.tsx +559 -0
  206. package/src/components/PreChatForm.tsx +313 -0
  207. package/src/components/RichMessage.tsx +353 -0
  208. package/src/components/SatisfactionSurvey.tsx +333 -0
  209. package/src/components/TypingIndicator.tsx +89 -0
  210. package/src/core/api.ts +406 -0
  211. package/src/core/config.ts +39 -0
  212. package/src/core/errors.ts +68 -0
  213. package/src/core/offlineQueue.ts +94 -0
  214. package/src/core/pushNotifications.ts +22 -0
  215. package/src/core/session.ts +156 -0
  216. package/src/core/theme.ts +133 -0
  217. package/src/core/types.ts +237 -0
  218. package/src/core/websocket.ts +270 -0
  219. package/src/hooks/useChat.ts +534 -0
  220. package/src/hooks/useParlr.ts +43 -0
  221. package/src/index.ts +98 -0
  222. package/src/provider/ParlrContext.ts +40 -0
  223. package/src/provider/ParlrProvider.tsx +338 -0
@@ -0,0 +1,263 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.PreChatForm = PreChatForm;
7
+ var _react = _interopRequireWildcard(require("react"));
8
+ var _reactNative = require("react-native");
9
+ var _jsxRuntime = require("react/jsx-runtime");
10
+ 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); }
11
+ // ---------------------------------------------------------------------------
12
+ // Parlr React Native SDK - Pre-Chat Form
13
+ // ---------------------------------------------------------------------------
14
+ //
15
+ // Collects visitor identity (name, email) before starting a conversation.
16
+ // Shown when the user has not been identified yet.
17
+ // ---------------------------------------------------------------------------
18
+
19
+ // ---------------------------------------------------------------------------
20
+ // Props
21
+ // ---------------------------------------------------------------------------
22
+
23
+ // ---------------------------------------------------------------------------
24
+ // i18n
25
+ // ---------------------------------------------------------------------------
26
+
27
+ function getI18n(locale) {
28
+ if (locale?.startsWith('en')) {
29
+ return {
30
+ title: 'Welcome!',
31
+ description: 'Please introduce yourself so we can help you better.',
32
+ name: 'Your name',
33
+ email: 'Email address',
34
+ phone: 'Phone number',
35
+ submit: 'Start chat',
36
+ nameRequired: 'Name is required',
37
+ emailInvalid: 'Please enter a valid email'
38
+ };
39
+ }
40
+ return {
41
+ title: 'Bienvenue !',
42
+ description: 'Pr\u00e9sentez-vous pour que nous puissions mieux vous aider.',
43
+ name: 'Votre nom',
44
+ email: 'Adresse e-mail',
45
+ phone: 'Num\u00e9ro de t\u00e9l\u00e9phone',
46
+ submit: 'D\u00e9marrer le chat',
47
+ nameRequired: 'Le nom est requis',
48
+ emailInvalid: 'Veuillez entrer un e-mail valide'
49
+ };
50
+ }
51
+
52
+ // ---------------------------------------------------------------------------
53
+ // Validation
54
+ // ---------------------------------------------------------------------------
55
+
56
+ function isValidEmail(email) {
57
+ return /^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(email);
58
+ }
59
+
60
+ // ---------------------------------------------------------------------------
61
+ // Component
62
+ // ---------------------------------------------------------------------------
63
+
64
+ function PreChatForm({
65
+ onSubmit,
66
+ fields = ['name', 'email'],
67
+ title,
68
+ description,
69
+ submitLabel,
70
+ accentColor: accentColorProp,
71
+ locale
72
+ }) {
73
+ const isDark = (0, _reactNative.useColorScheme)() === 'dark';
74
+ const accentColor = accentColorProp ?? '#6366f1';
75
+ const i18n = getI18n(locale);
76
+ const [name, setName] = (0, _react.useState)('');
77
+ const [email, setEmail] = (0, _react.useState)('');
78
+ const [phone, setPhone] = (0, _react.useState)('');
79
+ const [errors, setErrors] = (0, _react.useState)({});
80
+ const [isSubmitting, setIsSubmitting] = (0, _react.useState)(false);
81
+ const validate = (0, _react.useCallback)(() => {
82
+ const newErrors = {};
83
+ if (fields.includes('name') && !name.trim()) {
84
+ newErrors.name = i18n.nameRequired;
85
+ }
86
+ if (fields.includes('email') && email.trim() && !isValidEmail(email.trim())) {
87
+ newErrors.email = i18n.emailInvalid;
88
+ }
89
+ setErrors(newErrors);
90
+ return Object.keys(newErrors).length === 0;
91
+ }, [fields, name, email, i18n]);
92
+ const handleSubmit = (0, _react.useCallback)(async () => {
93
+ if (!validate()) return;
94
+ setIsSubmitting(true);
95
+ try {
96
+ const user = {};
97
+ if (name.trim()) user.name = name.trim();
98
+ if (email.trim()) user.email = email.trim();
99
+ if (phone.trim()) user.phone = phone.trim();
100
+ await onSubmit(user);
101
+ } finally {
102
+ setIsSubmitting(false);
103
+ }
104
+ }, [validate, name, email, phone, onSubmit]);
105
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.KeyboardAvoidingView, {
106
+ style: [styles.root, isDark && styles.rootDark],
107
+ behavior: _reactNative.Platform.OS === 'ios' ? 'padding' : 'height',
108
+ children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
109
+ style: styles.container,
110
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
111
+ style: [styles.title, isDark && styles.titleDark],
112
+ children: title ?? i18n.title
113
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
114
+ style: [styles.description, isDark && styles.descriptionDark],
115
+ children: description ?? i18n.description
116
+ }), fields.includes('name') && /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
117
+ style: styles.fieldContainer,
118
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.TextInput, {
119
+ style: [styles.input, isDark ? styles.inputDark : styles.inputLight, errors.name ? styles.inputError : undefined],
120
+ value: name,
121
+ onChangeText: setName,
122
+ placeholder: i18n.name,
123
+ placeholderTextColor: isDark ? '#64748b' : '#94a3b8',
124
+ autoCapitalize: "words",
125
+ autoComplete: "name",
126
+ textContentType: "name",
127
+ accessibilityLabel: i18n.name
128
+ }), errors.name && /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
129
+ style: styles.errorText,
130
+ children: errors.name
131
+ })]
132
+ }), fields.includes('email') && /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
133
+ style: styles.fieldContainer,
134
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.TextInput, {
135
+ style: [styles.input, isDark ? styles.inputDark : styles.inputLight, errors.email ? styles.inputError : undefined],
136
+ value: email,
137
+ onChangeText: setEmail,
138
+ placeholder: i18n.email,
139
+ placeholderTextColor: isDark ? '#64748b' : '#94a3b8',
140
+ keyboardType: "email-address",
141
+ autoCapitalize: "none",
142
+ autoComplete: "email",
143
+ textContentType: "emailAddress",
144
+ accessibilityLabel: i18n.email
145
+ }), errors.email && /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
146
+ style: styles.errorText,
147
+ children: errors.email
148
+ })]
149
+ }), fields.includes('phone') && /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
150
+ style: styles.fieldContainer,
151
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.TextInput, {
152
+ style: [styles.input, isDark ? styles.inputDark : styles.inputLight],
153
+ value: phone,
154
+ onChangeText: setPhone,
155
+ placeholder: i18n.phone,
156
+ placeholderTextColor: isDark ? '#64748b' : '#94a3b8',
157
+ keyboardType: "phone-pad",
158
+ autoComplete: "tel",
159
+ textContentType: "telephoneNumber",
160
+ accessibilityLabel: i18n.phone
161
+ })
162
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Pressable, {
163
+ onPress: handleSubmit,
164
+ disabled: isSubmitting,
165
+ style: [styles.submitButton, {
166
+ backgroundColor: isSubmitting ? '#cbd5e1' : accentColor
167
+ }],
168
+ accessibilityRole: "button",
169
+ accessibilityLabel: submitLabel ?? i18n.submit,
170
+ accessibilityState: {
171
+ disabled: isSubmitting
172
+ },
173
+ children: isSubmitting ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.ActivityIndicator, {
174
+ size: "small",
175
+ color: "#ffffff"
176
+ }) : /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
177
+ style: styles.submitText,
178
+ children: submitLabel ?? i18n.submit
179
+ })
180
+ })]
181
+ })
182
+ });
183
+ }
184
+
185
+ // ---------------------------------------------------------------------------
186
+ // Styles
187
+ // ---------------------------------------------------------------------------
188
+
189
+ const styles = _reactNative.StyleSheet.create({
190
+ root: {
191
+ flex: 1,
192
+ backgroundColor: '#ffffff',
193
+ justifyContent: 'center'
194
+ },
195
+ rootDark: {
196
+ backgroundColor: '#0f172a'
197
+ },
198
+ container: {
199
+ paddingHorizontal: 24,
200
+ paddingVertical: 32
201
+ },
202
+ title: {
203
+ fontSize: 24,
204
+ fontWeight: '700',
205
+ color: '#0f172a',
206
+ marginBottom: 8,
207
+ textAlign: 'center'
208
+ },
209
+ titleDark: {
210
+ color: '#f1f5f9'
211
+ },
212
+ description: {
213
+ fontSize: 15,
214
+ color: '#64748b',
215
+ textAlign: 'center',
216
+ lineHeight: 22,
217
+ marginBottom: 28
218
+ },
219
+ descriptionDark: {
220
+ color: '#94a3b8'
221
+ },
222
+ fieldContainer: {
223
+ marginBottom: 16
224
+ },
225
+ input: {
226
+ fontSize: 15,
227
+ paddingHorizontal: 16,
228
+ paddingVertical: 14,
229
+ borderRadius: 12,
230
+ borderWidth: 1
231
+ },
232
+ inputLight: {
233
+ backgroundColor: '#f8fafc',
234
+ borderColor: '#e2e8f0',
235
+ color: '#0f172a'
236
+ },
237
+ inputDark: {
238
+ backgroundColor: '#1e293b',
239
+ borderColor: '#334155',
240
+ color: '#f1f5f9'
241
+ },
242
+ inputError: {
243
+ borderColor: '#ef4444'
244
+ },
245
+ errorText: {
246
+ fontSize: 12,
247
+ color: '#ef4444',
248
+ marginTop: 4,
249
+ marginLeft: 4
250
+ },
251
+ submitButton: {
252
+ paddingVertical: 14,
253
+ borderRadius: 12,
254
+ alignItems: 'center',
255
+ marginTop: 8
256
+ },
257
+ submitText: {
258
+ color: '#ffffff',
259
+ fontSize: 16,
260
+ fontWeight: '600'
261
+ }
262
+ });
263
+ //# sourceMappingURL=PreChatForm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","getI18n","locale","startsWith","title","description","name","email","phone","submit","nameRequired","emailInvalid","isValidEmail","test","PreChatForm","onSubmit","fields","submitLabel","accentColor","accentColorProp","isDark","useColorScheme","i18n","setName","useState","setEmail","setPhone","errors","setErrors","isSubmitting","setIsSubmitting","validate","useCallback","newErrors","includes","trim","keys","length","handleSubmit","user","jsx","KeyboardAvoidingView","style","styles","root","rootDark","behavior","Platform","OS","children","jsxs","View","container","Text","titleDark","descriptionDark","fieldContainer","TextInput","input","inputDark","inputLight","inputError","undefined","value","onChangeText","placeholder","placeholderTextColor","autoCapitalize","autoComplete","textContentType","accessibilityLabel","errorText","keyboardType","Pressable","onPress","disabled","submitButton","backgroundColor","accessibilityRole","accessibilityState","ActivityIndicator","size","color","submitText","StyleSheet","create","flex","justifyContent","paddingHorizontal","paddingVertical","fontSize","fontWeight","marginBottom","textAlign","lineHeight","borderRadius","borderWidth","borderColor","marginTop","marginLeft","alignItems"],"sourceRoot":"../../../src","sources":["components/PreChatForm.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,284 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.RichMessage = RichMessage;
7
+ exports.tryParseRichContent = tryParseRichContent;
8
+ var _react = _interopRequireDefault(require("react"));
9
+ var _reactNative = require("react-native");
10
+ var _jsxRuntime = require("react/jsx-runtime");
11
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
12
+ // ---------------------------------------------------------------------------
13
+ // Parlr React Native SDK - Rich Message Renderer
14
+ // ---------------------------------------------------------------------------
15
+ //
16
+ // Renders rich message content types sent by automations or agents:
17
+ // cards, buttons, carousels, quick replies, etc.
18
+ // ---------------------------------------------------------------------------
19
+
20
+ // ---------------------------------------------------------------------------
21
+ // Types
22
+ // ---------------------------------------------------------------------------
23
+
24
+ // ---------------------------------------------------------------------------
25
+ // Helpers
26
+ // ---------------------------------------------------------------------------
27
+
28
+ function tryParseRichContent(metadata) {
29
+ if (!metadata || typeof metadata !== 'object') return null;
30
+ if (metadata.richContent && typeof metadata.richContent === 'object') {
31
+ return metadata.richContent;
32
+ }
33
+ return null;
34
+ }
35
+ // ---------------------------------------------------------------------------
36
+ // Action Button
37
+ // ---------------------------------------------------------------------------
38
+
39
+ function ActionButton({
40
+ action,
41
+ onAction,
42
+ accentColor,
43
+ isDark: _isDark
44
+ }) {
45
+ const handlePress = () => {
46
+ if (action.type === 'link') {
47
+ _reactNative.Linking.openURL(action.value).catch(() => {});
48
+ } else {
49
+ onAction?.(action);
50
+ }
51
+ };
52
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Pressable, {
53
+ onPress: handlePress,
54
+ style: [styles.actionButton, {
55
+ borderColor: accentColor
56
+ }],
57
+ accessibilityRole: "button",
58
+ accessibilityLabel: action.label,
59
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
60
+ style: [styles.actionLabel, {
61
+ color: accentColor
62
+ }],
63
+ children: action.label
64
+ })
65
+ });
66
+ }
67
+
68
+ // ---------------------------------------------------------------------------
69
+ // Card
70
+ // ---------------------------------------------------------------------------
71
+
72
+ function CardView({
73
+ card,
74
+ onAction,
75
+ accentColor,
76
+ isDark
77
+ }) {
78
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
79
+ style: [styles.card, isDark && styles.cardDark],
80
+ children: [card.imageUrl && /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Image, {
81
+ source: {
82
+ uri: card.imageUrl
83
+ },
84
+ style: styles.cardImage,
85
+ resizeMode: "cover",
86
+ accessibilityLabel: card.title ?? 'Card image'
87
+ }), card.title && /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
88
+ style: [styles.cardTitle, isDark && styles.cardTitleDark],
89
+ children: card.title
90
+ }), card.description && /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
91
+ style: [styles.cardDescription, isDark && styles.cardDescriptionDark],
92
+ children: card.description
93
+ }), card.actions && card.actions.length > 0 && /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
94
+ style: styles.cardActions,
95
+ children: card.actions.map((action, idx) => /*#__PURE__*/(0, _jsxRuntime.jsx)(ActionButton, {
96
+ action: action,
97
+ onAction: onAction,
98
+ accentColor: accentColor,
99
+ isDark: isDark
100
+ }, idx))
101
+ })]
102
+ });
103
+ }
104
+
105
+ // ---------------------------------------------------------------------------
106
+ // Main component
107
+ // ---------------------------------------------------------------------------
108
+
109
+ function RichMessage({
110
+ content,
111
+ onAction,
112
+ accentColor: accentColorProp
113
+ }) {
114
+ const isDark = (0, _reactNative.useColorScheme)() === 'dark';
115
+ const accentColor = accentColorProp ?? '#6366f1';
116
+ switch (content.type) {
117
+ case 'card':
118
+ if (!content.card) return null;
119
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
120
+ style: styles.container,
121
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(CardView, {
122
+ card: content.card,
123
+ onAction: onAction,
124
+ accentColor: accentColor,
125
+ isDark: isDark
126
+ })
127
+ });
128
+ case 'carousel':
129
+ if (!content.carousel?.cards?.length) return null;
130
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.FlatList, {
131
+ horizontal: true,
132
+ data: content.carousel.cards,
133
+ renderItem: ({
134
+ item
135
+ }) => /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
136
+ style: styles.carouselItem,
137
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(CardView, {
138
+ card: item,
139
+ onAction: onAction,
140
+ accentColor: accentColor,
141
+ isDark: isDark
142
+ })
143
+ }),
144
+ keyExtractor: (_, idx) => String(idx),
145
+ showsHorizontalScrollIndicator: false,
146
+ contentContainerStyle: styles.carouselContainer,
147
+ snapToAlignment: "start",
148
+ decelerationRate: "fast"
149
+ });
150
+ case 'quick_replies':
151
+ if (!content.quickReplies) return null;
152
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
153
+ style: styles.container,
154
+ children: [content.quickReplies.text && /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
155
+ style: [styles.quickReplyText, isDark && styles.quickReplyTextDark],
156
+ children: content.quickReplies.text
157
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
158
+ style: styles.quickRepliesRow,
159
+ children: content.quickReplies.replies.map((reply, idx) => /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Pressable, {
160
+ onPress: () => onAction?.({
161
+ type: 'reply',
162
+ label: reply.label,
163
+ value: reply.value
164
+ }),
165
+ style: [styles.quickReply, {
166
+ borderColor: accentColor
167
+ }],
168
+ accessibilityRole: "button",
169
+ accessibilityLabel: reply.label,
170
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
171
+ style: [styles.quickReplyLabel, {
172
+ color: accentColor
173
+ }],
174
+ children: reply.label
175
+ })
176
+ }, idx))
177
+ })]
178
+ });
179
+ case 'buttons':
180
+ if (!content.buttons?.length) return null;
181
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
182
+ style: styles.container,
183
+ children: content.buttons.map((action, idx) => /*#__PURE__*/(0, _jsxRuntime.jsx)(ActionButton, {
184
+ action: action,
185
+ onAction: onAction,
186
+ accentColor: accentColor,
187
+ isDark: isDark
188
+ }, idx))
189
+ });
190
+ default:
191
+ return null;
192
+ }
193
+ }
194
+
195
+ // ---------------------------------------------------------------------------
196
+ // Styles
197
+ // ---------------------------------------------------------------------------
198
+
199
+ const styles = _reactNative.StyleSheet.create({
200
+ container: {
201
+ marginTop: 6
202
+ },
203
+ card: {
204
+ backgroundColor: '#f8fafc',
205
+ borderRadius: 12,
206
+ overflow: 'hidden',
207
+ borderWidth: _reactNative.StyleSheet.hairlineWidth,
208
+ borderColor: '#e2e8f0'
209
+ },
210
+ cardDark: {
211
+ backgroundColor: '#1e293b',
212
+ borderColor: '#334155'
213
+ },
214
+ cardImage: {
215
+ width: '100%',
216
+ height: 140
217
+ },
218
+ cardTitle: {
219
+ fontSize: 15,
220
+ fontWeight: '600',
221
+ color: '#0f172a',
222
+ paddingHorizontal: 12,
223
+ paddingTop: 10
224
+ },
225
+ cardTitleDark: {
226
+ color: '#f1f5f9'
227
+ },
228
+ cardDescription: {
229
+ fontSize: 13,
230
+ color: '#64748b',
231
+ paddingHorizontal: 12,
232
+ paddingTop: 4,
233
+ lineHeight: 18
234
+ },
235
+ cardDescriptionDark: {
236
+ color: '#94a3b8'
237
+ },
238
+ cardActions: {
239
+ padding: 10,
240
+ gap: 6
241
+ },
242
+ actionButton: {
243
+ paddingVertical: 8,
244
+ paddingHorizontal: 14,
245
+ borderRadius: 8,
246
+ borderWidth: 1,
247
+ alignItems: 'center'
248
+ },
249
+ actionLabel: {
250
+ fontSize: 14,
251
+ fontWeight: '500'
252
+ },
253
+ carouselContainer: {
254
+ paddingHorizontal: 12,
255
+ gap: 10
256
+ },
257
+ carouselItem: {
258
+ width: 240
259
+ },
260
+ quickReplyText: {
261
+ fontSize: 14,
262
+ color: '#0f172a',
263
+ marginBottom: 8
264
+ },
265
+ quickReplyTextDark: {
266
+ color: '#e2e8f0'
267
+ },
268
+ quickRepliesRow: {
269
+ flexDirection: 'row',
270
+ flexWrap: 'wrap',
271
+ gap: 6
272
+ },
273
+ quickReply: {
274
+ paddingVertical: 6,
275
+ paddingHorizontal: 14,
276
+ borderRadius: 16,
277
+ borderWidth: 1
278
+ },
279
+ quickReplyLabel: {
280
+ fontSize: 13,
281
+ fontWeight: '500'
282
+ }
283
+ });
284
+ //# sourceMappingURL=RichMessage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_react","_interopRequireDefault","require","_reactNative","_jsxRuntime","e","__esModule","default","tryParseRichContent","metadata","richContent","ActionButton","action","onAction","accentColor","isDark","_isDark","handlePress","type","Linking","openURL","value","catch","jsx","Pressable","onPress","style","styles","actionButton","borderColor","accessibilityRole","accessibilityLabel","label","children","Text","actionLabel","color","CardView","card","jsxs","View","cardDark","imageUrl","Image","source","uri","cardImage","resizeMode","title","cardTitle","cardTitleDark","description","cardDescription","cardDescriptionDark","actions","length","cardActions","map","idx","RichMessage","content","accentColorProp","useColorScheme","container","carousel","cards","FlatList","horizontal","data","renderItem","item","carouselItem","keyExtractor","_","String","showsHorizontalScrollIndicator","contentContainerStyle","carouselContainer","snapToAlignment","decelerationRate","quickReplies","text","quickReplyText","quickReplyTextDark","quickRepliesRow","replies","reply","quickReply","quickReplyLabel","buttons","StyleSheet","create","marginTop","backgroundColor","borderRadius","overflow","borderWidth","hairlineWidth","width","height","fontSize","fontWeight","paddingHorizontal","paddingTop","lineHeight","padding","gap","paddingVertical","alignItems","marginBottom","flexDirection","flexWrap"],"sourceRoot":"../../../src","sources":["components/RichMessage.tsx"],"mappings":";;;;;;;AAQA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,YAAA,GAAAD,OAAA;AASsB,IAAAE,WAAA,GAAAF,OAAA;AAAA,SAAAD,uBAAAI,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAlBtB;AACA;AACA;AACA;AACA;AACA;AACA;;AAcA;AACA;AACA;;AAyCA;AACA;AACA;;AAEA,SAASG,mBAAmBA,CAACC,QAAkC,EAAsB;EACnF,IAAI,CAACA,QAAQ,IAAI,OAAOA,QAAQ,KAAK,QAAQ,EAAE,OAAO,IAAI;EAC1D,IAAIA,QAAQ,CAACC,WAAW,IAAI,OAAOD,QAAQ,CAACC,WAAW,KAAK,QAAQ,EAAE;IACpE,OAAOD,QAAQ,CAACC,WAAW;EAC7B;EACA,OAAO,IAAI;AACb;AAIA;AACA;AACA;;AAEA,SAASC,YAAYA,CAAC;EACpBC,MAAM;EACNC,QAAQ;EACRC,WAAW;EACXC,MAAM,EAAEC;AAMV,CAAC,EAAE;EACD,MAAMC,WAAW,GAAGA,CAAA,KAAM;IACxB,IAAIL,MAAM,CAACM,IAAI,KAAK,MAAM,EAAE;MAC1BC,oBAAO,CAACC,OAAO,CAACR,MAAM,CAACS,KAAK,CAAC,CAACC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;IAC/C,CAAC,MAAM;MACLT,QAAQ,GAAGD,MAAM,CAAC;IACpB;EACF,CAAC;EAED,oBACE,IAAAR,WAAA,CAAAmB,GAAA,EAACpB,YAAA,CAAAqB,SAAS;IACRC,OAAO,EAAER,WAAY;IACrBS,KAAK,EAAE,CAACC,MAAM,CAACC,YAAY,EAAE;MAAEC,WAAW,EAAEf;IAAY,CAAC,CAAE;IAC3DgB,iBAAiB,EAAC,QAAQ;IAC1BC,kBAAkB,EAAEnB,MAAM,CAACoB,KAAM;IAAAC,QAAA,eAEjC,IAAA7B,WAAA,CAAAmB,GAAA,EAACpB,YAAA,CAAA+B,IAAI;MAACR,KAAK,EAAE,CAACC,MAAM,CAACQ,WAAW,EAAE;QAAEC,KAAK,EAAEtB;MAAY,CAAC,CAAE;MAAAmB,QAAA,EACvDrB,MAAM,CAACoB;IAAK,CACT;EAAC,CACE,CAAC;AAEhB;;AAEA;AACA;AACA;;AAEA,SAASK,QAAQA,CAAC;EAChBC,IAAI;EACJzB,QAAQ;EACRC,WAAW;EACXC;AAMF,CAAC,EAAE;EACD,oBACE,IAAAX,WAAA,CAAAmC,IAAA,EAACpC,YAAA,CAAAqC,IAAI;IAACd,KAAK,EAAE,CAACC,MAAM,CAACW,IAAI,EAAEvB,MAAM,IAAIY,MAAM,CAACc,QAAQ,CAAE;IAAAR,QAAA,GACnDK,IAAI,CAACI,QAAQ,iBACZ,IAAAtC,WAAA,CAAAmB,GAAA,EAACpB,YAAA,CAAAwC,KAAK;MACJC,MAAM,EAAE;QAAEC,GAAG,EAAEP,IAAI,CAACI;MAAS,CAAE;MAC/BhB,KAAK,EAAEC,MAAM,CAACmB,SAAU;MACxBC,UAAU,EAAC,OAAO;MAClBhB,kBAAkB,EAAEO,IAAI,CAACU,KAAK,IAAI;IAAa,CAChD,CACF,EACAV,IAAI,CAACU,KAAK,iBACT,IAAA5C,WAAA,CAAAmB,GAAA,EAACpB,YAAA,CAAA+B,IAAI;MAACR,KAAK,EAAE,CAACC,MAAM,CAACsB,SAAS,EAAElC,MAAM,IAAIY,MAAM,CAACuB,aAAa,CAAE;MAAAjB,QAAA,EAC7DK,IAAI,CAACU;IAAK,CACP,CACP,EACAV,IAAI,CAACa,WAAW,iBACf,IAAA/C,WAAA,CAAAmB,GAAA,EAACpB,YAAA,CAAA+B,IAAI;MAACR,KAAK,EAAE,CAACC,MAAM,CAACyB,eAAe,EAAErC,MAAM,IAAIY,MAAM,CAAC0B,mBAAmB,CAAE;MAAApB,QAAA,EACzEK,IAAI,CAACa;IAAW,CACb,CACP,EACAb,IAAI,CAACgB,OAAO,IAAIhB,IAAI,CAACgB,OAAO,CAACC,MAAM,GAAG,CAAC,iBACtC,IAAAnD,WAAA,CAAAmB,GAAA,EAACpB,YAAA,CAAAqC,IAAI;MAACd,KAAK,EAAEC,MAAM,CAAC6B,WAAY;MAAAvB,QAAA,EAC7BK,IAAI,CAACgB,OAAO,CAACG,GAAG,CAAC,CAAC7C,MAAM,EAAE8C,GAAG,kBAC5B,IAAAtD,WAAA,CAAAmB,GAAA,EAACZ,YAAY;QAEXC,MAAM,EAAEA,MAAO;QACfC,QAAQ,EAAEA,QAAS;QACnBC,WAAW,EAAEA,WAAY;QACzBC,MAAM,EAAEA;MAAO,GAJV2C,GAKN,CACF;IAAC,CACE,CACP;EAAA,CACG,CAAC;AAEX;;AAEA;AACA;AACA;;AAEO,SAASC,WAAWA,CAAC;EAC1BC,OAAO;EACP/C,QAAQ;EACRC,WAAW,EAAE+C;AACG,CAAC,EAAE;EACnB,MAAM9C,MAAM,GAAG,IAAA+C,2BAAc,EAAC,CAAC,KAAK,MAAM;EAC1C,MAAMhD,WAAW,GAAG+C,eAAe,IAAI,SAAS;EAEhD,QAAQD,OAAO,CAAC1C,IAAI;IAClB,KAAK,MAAM;MACT,IAAI,CAAC0C,OAAO,CAACtB,IAAI,EAAE,OAAO,IAAI;MAC9B,oBACE,IAAAlC,WAAA,CAAAmB,GAAA,EAACpB,YAAA,CAAAqC,IAAI;QAACd,KAAK,EAAEC,MAAM,CAACoC,SAAU;QAAA9B,QAAA,eAC5B,IAAA7B,WAAA,CAAAmB,GAAA,EAACc,QAAQ;UACPC,IAAI,EAAEsB,OAAO,CAACtB,IAAK;UACnBzB,QAAQ,EAAEA,QAAS;UACnBC,WAAW,EAAEA,WAAY;UACzBC,MAAM,EAAEA;QAAO,CAChB;MAAC,CACE,CAAC;IAGX,KAAK,UAAU;MACb,IAAI,CAAC6C,OAAO,CAACI,QAAQ,EAAEC,KAAK,EAAEV,MAAM,EAAE,OAAO,IAAI;MACjD,oBACE,IAAAnD,WAAA,CAAAmB,GAAA,EAACpB,YAAA,CAAA+D,QAAQ;QACPC,UAAU;QACVC,IAAI,EAAER,OAAO,CAACI,QAAQ,CAACC,KAAM;QAC7BI,UAAU,EAAEA,CAAC;UAAEC;QAAK,CAAC,kBACnB,IAAAlE,WAAA,CAAAmB,GAAA,EAACpB,YAAA,CAAAqC,IAAI;UAACd,KAAK,EAAEC,MAAM,CAAC4C,YAAa;UAAAtC,QAAA,eAC/B,IAAA7B,WAAA,CAAAmB,GAAA,EAACc,QAAQ;YACPC,IAAI,EAAEgC,IAAK;YACXzD,QAAQ,EAAEA,QAAS;YACnBC,WAAW,EAAEA,WAAY;YACzBC,MAAM,EAAEA;UAAO,CAChB;QAAC,CACE,CACN;QACFyD,YAAY,EAAEA,CAACC,CAAC,EAAEf,GAAG,KAAKgB,MAAM,CAAChB,GAAG,CAAE;QACtCiB,8BAA8B,EAAE,KAAM;QACtCC,qBAAqB,EAAEjD,MAAM,CAACkD,iBAAkB;QAChDC,eAAe,EAAC,OAAO;QACvBC,gBAAgB,EAAC;MAAM,CACxB,CAAC;IAGN,KAAK,eAAe;MAClB,IAAI,CAACnB,OAAO,CAACoB,YAAY,EAAE,OAAO,IAAI;MACtC,oBACE,IAAA5E,WAAA,CAAAmC,IAAA,EAACpC,YAAA,CAAAqC,IAAI;QAACd,KAAK,EAAEC,MAAM,CAACoC,SAAU;QAAA9B,QAAA,GAC3B2B,OAAO,CAACoB,YAAY,CAACC,IAAI,iBACxB,IAAA7E,WAAA,CAAAmB,GAAA,EAACpB,YAAA,CAAA+B,IAAI;UAACR,KAAK,EAAE,CAACC,MAAM,CAACuD,cAAc,EAAEnE,MAAM,IAAIY,MAAM,CAACwD,kBAAkB,CAAE;UAAAlD,QAAA,EACvE2B,OAAO,CAACoB,YAAY,CAACC;QAAI,CACtB,CACP,eACD,IAAA7E,WAAA,CAAAmB,GAAA,EAACpB,YAAA,CAAAqC,IAAI;UAACd,KAAK,EAAEC,MAAM,CAACyD,eAAgB;UAAAnD,QAAA,EACjC2B,OAAO,CAACoB,YAAY,CAACK,OAAO,CAAC5B,GAAG,CAAC,CAAC6B,KAAK,EAAE5B,GAAG,kBAC3C,IAAAtD,WAAA,CAAAmB,GAAA,EAACpB,YAAA,CAAAqB,SAAS;YAERC,OAAO,EAAEA,CAAA,KAAMZ,QAAQ,GAAG;cAAEK,IAAI,EAAE,OAAO;cAAEc,KAAK,EAAEsD,KAAK,CAACtD,KAAK;cAAEX,KAAK,EAAEiE,KAAK,CAACjE;YAAM,CAAC,CAAE;YACrFK,KAAK,EAAE,CAACC,MAAM,CAAC4D,UAAU,EAAE;cAAE1D,WAAW,EAAEf;YAAY,CAAC,CAAE;YACzDgB,iBAAiB,EAAC,QAAQ;YAC1BC,kBAAkB,EAAEuD,KAAK,CAACtD,KAAM;YAAAC,QAAA,eAEhC,IAAA7B,WAAA,CAAAmB,GAAA,EAACpB,YAAA,CAAA+B,IAAI;cAACR,KAAK,EAAE,CAACC,MAAM,CAAC6D,eAAe,EAAE;gBAAEpD,KAAK,EAAEtB;cAAY,CAAC,CAAE;cAAAmB,QAAA,EAC3DqD,KAAK,CAACtD;YAAK,CACR;UAAC,GARF0B,GASI,CACZ;QAAC,CACE,CAAC;MAAA,CACH,CAAC;IAGX,KAAK,SAAS;MACZ,IAAI,CAACE,OAAO,CAAC6B,OAAO,EAAElC,MAAM,EAAE,OAAO,IAAI;MACzC,oBACE,IAAAnD,WAAA,CAAAmB,GAAA,EAACpB,YAAA,CAAAqC,IAAI;QAACd,KAAK,EAAEC,MAAM,CAACoC,SAAU;QAAA9B,QAAA,EAC3B2B,OAAO,CAAC6B,OAAO,CAAChC,GAAG,CAAC,CAAC7C,MAAM,EAAE8C,GAAG,kBAC/B,IAAAtD,WAAA,CAAAmB,GAAA,EAACZ,YAAY;UAEXC,MAAM,EAAEA,MAAO;UACfC,QAAQ,EAAEA,QAAS;UACnBC,WAAW,EAAEA,WAAY;UACzBC,MAAM,EAAEA;QAAO,GAJV2C,GAKN,CACF;MAAC,CACE,CAAC;IAGX;MACE,OAAO,IAAI;EACf;AACF;;AAEA;AACA;AACA;;AAEA,MAAM/B,MAAM,GAAG+D,uBAAU,CAACC,MAAM,CAAC;EAC/B5B,SAAS,EAAE;IACT6B,SAAS,EAAE;EACb,CAAC;EACDtD,IAAI,EAAE;IACJuD,eAAe,EAAE,SAAS;IAC1BC,YAAY,EAAE,EAAE;IAChBC,QAAQ,EAAE,QAAQ;IAClBC,WAAW,EAAEN,uBAAU,CAACO,aAAa;IACrCpE,WAAW,EAAE;EACf,CAAC;EACDY,QAAQ,EAAE;IACRoD,eAAe,EAAE,SAAS;IAC1BhE,WAAW,EAAE;EACf,CAAC;EACDiB,SAAS,EAAE;IACToD,KAAK,EAAE,MAAM;IACbC,MAAM,EAAE;EACV,CAAC;EACDlD,SAAS,EAAE;IACTmD,QAAQ,EAAE,EAAE;IACZC,UAAU,EAAE,KAAK;IACjBjE,KAAK,EAAE,SAAS;IAChBkE,iBAAiB,EAAE,EAAE;IACrBC,UAAU,EAAE;EACd,CAAC;EACDrD,aAAa,EAAE;IACbd,KAAK,EAAE;EACT,CAAC;EACDgB,eAAe,EAAE;IACfgD,QAAQ,EAAE,EAAE;IACZhE,KAAK,EAAE,SAAS;IAChBkE,iBAAiB,EAAE,EAAE;IACrBC,UAAU,EAAE,CAAC;IACbC,UAAU,EAAE;EACd,CAAC;EACDnD,mBAAmB,EAAE;IACnBjB,KAAK,EAAE;EACT,CAAC;EACDoB,WAAW,EAAE;IACXiD,OAAO,EAAE,EAAE;IACXC,GAAG,EAAE;EACP,CAAC;EACD9E,YAAY,EAAE;IACZ+E,eAAe,EAAE,CAAC;IAClBL,iBAAiB,EAAE,EAAE;IACrBR,YAAY,EAAE,CAAC;IACfE,WAAW,EAAE,CAAC;IACdY,UAAU,EAAE;EACd,CAAC;EACDzE,WAAW,EAAE;IACXiE,QAAQ,EAAE,EAAE;IACZC,UAAU,EAAE;EACd,CAAC;EACDxB,iBAAiB,EAAE;IACjByB,iBAAiB,EAAE,EAAE;IACrBI,GAAG,EAAE;EACP,CAAC;EACDnC,YAAY,EAAE;IACZ2B,KAAK,EAAE;EACT,CAAC;EACDhB,cAAc,EAAE;IACdkB,QAAQ,EAAE,EAAE;IACZhE,KAAK,EAAE,SAAS;IAChByE,YAAY,EAAE;EAChB,CAAC;EACD1B,kBAAkB,EAAE;IAClB/C,KAAK,EAAE;EACT,CAAC;EACDgD,eAAe,EAAE;IACf0B,aAAa,EAAE,KAAK;IACpBC,QAAQ,EAAE,MAAM;IAChBL,GAAG,EAAE;EACP,CAAC;EACDnB,UAAU,EAAE;IACVoB,eAAe,EAAE,CAAC;IAClBL,iBAAiB,EAAE,EAAE;IACrBR,YAAY,EAAE,EAAE;IAChBE,WAAW,EAAE;EACf,CAAC;EACDR,eAAe,EAAE;IACfY,QAAQ,EAAE,EAAE;IACZC,UAAU,EAAE;EACd;AACF,CAAC,CAAC","ignoreList":[]}