react-native-gifted-chat 2.8.2-alpha.0 → 2.8.2-alpha.1

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 (191) hide show
  1. package/README.md +8 -12
  2. package/package.json +20 -21
  3. package/src/Bubble/index.tsx +11 -10
  4. package/src/Bubble/types.ts +2 -2
  5. package/src/Composer.tsx +19 -26
  6. package/src/Constant.ts +0 -1
  7. package/src/GiftedAvatar.tsx +29 -36
  8. package/src/GiftedChat/index.tsx +11 -62
  9. package/src/GiftedChat/types.ts +5 -52
  10. package/src/InputToolbar.tsx +25 -8
  11. package/src/LoadEarlier.tsx +19 -17
  12. package/src/MessageAudio.tsx +19 -7
  13. package/src/MessageContainer/components/DayAnimated/index.tsx +14 -9
  14. package/src/MessageContainer/components/Item/index.tsx +7 -1
  15. package/src/MessageContainer/index.tsx +47 -28
  16. package/src/MessageContainer/types.ts +31 -6
  17. package/src/MessageImage.tsx +18 -6
  18. package/src/MessageText.tsx +18 -23
  19. package/src/MessageVideo.tsx +19 -7
  20. package/src/QuickReplies.tsx +17 -10
  21. package/src/Send.tsx +7 -1
  22. package/src/SystemMessage.tsx +9 -2
  23. package/src/Time.tsx +9 -2
  24. package/src/TypingIndicator/index.tsx +2 -1
  25. package/src/TypingIndicator/types.ts +3 -0
  26. package/src/__tests__/Actions.test.tsx +3 -4
  27. package/src/__tests__/Avatar.test.tsx +5 -6
  28. package/src/__tests__/Bubble.test.tsx +14 -19
  29. package/src/__tests__/Composer.test.tsx +3 -4
  30. package/src/__tests__/Day.test.tsx +5 -8
  31. package/src/__tests__/DayAnimated.test.tsx +11 -13
  32. package/src/__tests__/GiftedAvatar.test.tsx +3 -8
  33. package/src/__tests__/GiftedChat.test.tsx +32 -41
  34. package/src/__tests__/InputToolbar.test.tsx +3 -4
  35. package/src/__tests__/LoadEarlier.test.tsx +3 -4
  36. package/src/__tests__/Message.test.tsx +51 -58
  37. package/src/__tests__/MessageContainer.test.tsx +39 -5
  38. package/src/__tests__/MessageImage.test.tsx +12 -15
  39. package/src/__tests__/MessageText.test.tsx +7 -4
  40. package/src/__tests__/Send.test.tsx +7 -8
  41. package/src/__tests__/SystemMessage.test.tsx +12 -15
  42. package/src/__tests__/Time.test.tsx +5 -8
  43. package/src/__tests__/__snapshots__/Bubble.test.tsx.snap +48 -50
  44. package/src/__tests__/__snapshots__/Composer.test.tsx.snap +1 -2
  45. package/src/__tests__/__snapshots__/Constant.test.tsx.snap +0 -1
  46. package/src/__tests__/__snapshots__/InputToolbar.test.tsx.snap +2 -2
  47. package/src/__tests__/__snapshots__/Message.test.tsx.snap +146 -150
  48. package/src/__tests__/__snapshots__/MessageImage.test.tsx.snap +12 -10
  49. package/src/__tests__/__snapshots__/MessageText.test.tsx.snap +12 -8
  50. package/src/__tests__/__snapshots__/Send.test.tsx.snap +2 -0
  51. package/src/reanimatedCompat.ts +27 -0
  52. package/src/types.ts +4 -0
  53. package/lib/Actions.d.ts +0 -14
  54. package/lib/Actions.js +0 -57
  55. package/lib/Actions.js.map +0 -1
  56. package/lib/Avatar.d.ts +0 -18
  57. package/lib/Avatar.js +0 -93
  58. package/lib/Avatar.js.map +0 -1
  59. package/lib/Bubble/index.d.ts +0 -6
  60. package/lib/Bubble/index.js +0 -242
  61. package/lib/Bubble/index.js.map +0 -1
  62. package/lib/Bubble/styles.d.ts +0 -69
  63. package/lib/Bubble/styles.js +0 -72
  64. package/lib/Bubble/styles.js.map +0 -1
  65. package/lib/Bubble/types.d.ts +0 -47
  66. package/lib/Bubble/types.js +0 -2
  67. package/lib/Bubble/types.js.map +0 -1
  68. package/lib/Color.d.ts +0 -18
  69. package/lib/Color.js +0 -18
  70. package/lib/Color.js.map +0 -1
  71. package/lib/Composer.d.ts +0 -20
  72. package/lib/Composer.js +0 -60
  73. package/lib/Composer.js.map +0 -1
  74. package/lib/Constant.d.ts +0 -10
  75. package/lib/Constant.js +0 -17
  76. package/lib/Constant.js.map +0 -1
  77. package/lib/Day/index.d.ts +0 -4
  78. package/lib/Day/index.js +0 -39
  79. package/lib/Day/index.js.map +0 -1
  80. package/lib/Day/styles.d.ts +0 -20
  81. package/lib/Day/styles.js +0 -22
  82. package/lib/Day/styles.js.map +0 -1
  83. package/lib/Day/types.d.ts +0 -9
  84. package/lib/Day/types.js +0 -2
  85. package/lib/Day/types.js.map +0 -1
  86. package/lib/GiftedAvatar.d.ts +0 -11
  87. package/lib/GiftedAvatar.js +0 -104
  88. package/lib/GiftedAvatar.js.map +0 -1
  89. package/lib/GiftedChat/index.d.ts +0 -26
  90. package/lib/GiftedChat/index.js +0 -317
  91. package/lib/GiftedChat/index.js.map +0 -1
  92. package/lib/GiftedChat/styles.d.ts +0 -6
  93. package/lib/GiftedChat/styles.js +0 -7
  94. package/lib/GiftedChat/styles.js.map +0 -1
  95. package/lib/GiftedChat/types.d.ts +0 -112
  96. package/lib/GiftedChat/types.js +0 -2
  97. package/lib/GiftedChat/types.js.map +0 -1
  98. package/lib/GiftedChatContext.d.ts +0 -9
  99. package/lib/GiftedChatContext.js +0 -9
  100. package/lib/GiftedChatContext.js.map +0 -1
  101. package/lib/InputToolbar.d.ts +0 -23
  102. package/lib/InputToolbar.js +0 -56
  103. package/lib/InputToolbar.js.map +0 -1
  104. package/lib/LoadEarlier.d.ts +0 -14
  105. package/lib/LoadEarlier.js +0 -45
  106. package/lib/LoadEarlier.js.map +0 -1
  107. package/lib/Message/index.d.ts +0 -6
  108. package/lib/Message/index.js +0 -80
  109. package/lib/Message/index.js.map +0 -1
  110. package/lib/Message/styles.d.ts +0 -21
  111. package/lib/Message/styles.js +0 -22
  112. package/lib/Message/styles.js.map +0 -1
  113. package/lib/Message/types.d.ts +0 -22
  114. package/lib/Message/types.js +0 -2
  115. package/lib/Message/types.js.map +0 -1
  116. package/lib/MessageAudio.d.ts +0 -2
  117. package/lib/MessageAudio.js +0 -14
  118. package/lib/MessageAudio.js.map +0 -1
  119. package/lib/MessageContainer/components/DayAnimated/index.d.ts +0 -5
  120. package/lib/MessageContainer/components/DayAnimated/index.js +0 -85
  121. package/lib/MessageContainer/components/DayAnimated/index.js.map +0 -1
  122. package/lib/MessageContainer/components/DayAnimated/styles.d.ts +0 -11
  123. package/lib/MessageContainer/components/DayAnimated/styles.js +0 -12
  124. package/lib/MessageContainer/components/DayAnimated/styles.js.map +0 -1
  125. package/lib/MessageContainer/components/DayAnimated/types.d.ts +0 -17
  126. package/lib/MessageContainer/components/DayAnimated/types.js +0 -2
  127. package/lib/MessageContainer/components/DayAnimated/types.js.map +0 -1
  128. package/lib/MessageContainer/components/Item/index.d.ts +0 -23
  129. package/lib/MessageContainer/components/Item/index.js +0 -88
  130. package/lib/MessageContainer/components/Item/index.js.map +0 -1
  131. package/lib/MessageContainer/components/Item/types.d.ts +0 -17
  132. package/lib/MessageContainer/components/Item/types.js +0 -2
  133. package/lib/MessageContainer/components/Item/types.js.map +0 -1
  134. package/lib/MessageContainer/index.d.ts +0 -6
  135. package/lib/MessageContainer/index.js +0 -235
  136. package/lib/MessageContainer/index.js.map +0 -1
  137. package/lib/MessageContainer/styles.d.ts +0 -35
  138. package/lib/MessageContainer/styles.js +0 -32
  139. package/lib/MessageContainer/styles.js.map +0 -1
  140. package/lib/MessageContainer/types.d.ts +0 -51
  141. package/lib/MessageContainer/types.js +0 -2
  142. package/lib/MessageContainer/types.js.map +0 -1
  143. package/lib/MessageImage.d.ts +0 -13
  144. package/lib/MessageImage.js +0 -30
  145. package/lib/MessageImage.js.map +0 -1
  146. package/lib/MessageText.d.ts +0 -19
  147. package/lib/MessageText.js +0 -69
  148. package/lib/MessageText.js.map +0 -1
  149. package/lib/MessageVideo.d.ts +0 -2
  150. package/lib/MessageVideo.js +0 -14
  151. package/lib/MessageVideo.js.map +0 -1
  152. package/lib/QuickReplies.d.ts +0 -15
  153. package/lib/QuickReplies.js +0 -101
  154. package/lib/QuickReplies.js.map +0 -1
  155. package/lib/Send.d.ts +0 -15
  156. package/lib/Send.js +0 -34
  157. package/lib/Send.js.map +0 -1
  158. package/lib/SystemMessage.d.ts +0 -11
  159. package/lib/SystemMessage.js +0 -27
  160. package/lib/SystemMessage.js.map +0 -1
  161. package/lib/Time.d.ts +0 -11
  162. package/lib/Time.js +0 -56
  163. package/lib/Time.js.map +0 -1
  164. package/lib/TypingIndicator/index.d.ts +0 -5
  165. package/lib/TypingIndicator/index.js +0 -94
  166. package/lib/TypingIndicator/index.js.map +0 -1
  167. package/lib/TypingIndicator/styles.d.ts +0 -20
  168. package/lib/TypingIndicator/styles.js +0 -22
  169. package/lib/TypingIndicator/styles.js.map +0 -1
  170. package/lib/TypingIndicator/types.d.ts +0 -3
  171. package/lib/TypingIndicator/types.js +0 -2
  172. package/lib/TypingIndicator/types.js.map +0 -1
  173. package/lib/hooks/useUpdateLayoutEffect.d.ts +0 -8
  174. package/lib/hooks/useUpdateLayoutEffect.js +0 -17
  175. package/lib/hooks/useUpdateLayoutEffect.js.map +0 -1
  176. package/lib/index.d.ts +0 -4
  177. package/lib/index.js +0 -5
  178. package/lib/index.js.map +0 -1
  179. package/lib/logging.d.ts +0 -2
  180. package/lib/logging.js +0 -5
  181. package/lib/logging.js.map +0 -1
  182. package/lib/styles.d.ts +0 -10
  183. package/lib/styles.js +0 -11
  184. package/lib/styles.js.map +0 -1
  185. package/lib/types.d.ts +0 -67
  186. package/lib/types.js +0 -2
  187. package/lib/types.js.map +0 -1
  188. package/lib/utils.d.ts +0 -5
  189. package/lib/utils.js +0 -83
  190. package/lib/utils.js.map +0 -1
  191. package/src/__tests__/__snapshots__/MessageContainer.test.tsx.snap +0 -108
@@ -1,317 +0,0 @@
1
- import React, { createRef, useEffect, useMemo, useRef, useState, useCallback, } from 'react';
2
- import { ActionSheetProvider, } from '@expo/react-native-action-sheet';
3
- import dayjs from 'dayjs';
4
- import localizedFormat from 'dayjs/plugin/localizedFormat';
5
- import { Platform, View, } from 'react-native';
6
- import { Actions } from '../Actions';
7
- import { Avatar } from '../Avatar';
8
- import Bubble from '../Bubble';
9
- import { Composer } from '../Composer';
10
- import { MAX_COMPOSER_HEIGHT, MIN_COMPOSER_HEIGHT, TEST_ID } from '../Constant';
11
- import { Day } from '../Day';
12
- import { GiftedAvatar } from '../GiftedAvatar';
13
- import { GiftedChatContext } from '../GiftedChatContext';
14
- import { InputToolbar } from '../InputToolbar';
15
- import { LoadEarlier } from '../LoadEarlier';
16
- import Message from '../Message';
17
- import MessageContainer from '../MessageContainer';
18
- import { MessageImage } from '../MessageImage';
19
- import { MessageText } from '../MessageText';
20
- import { Send } from '../Send';
21
- import { SystemMessage } from '../SystemMessage';
22
- import { Time } from '../Time';
23
- import * as utils from '../utils';
24
- import Animated, { useAnimatedStyle, useAnimatedReaction, useSharedValue, withTiming, runOnJS, } from 'react-native-reanimated';
25
- import { KeyboardProvider, useReanimatedKeyboardAnimation } from 'react-native-keyboard-controller';
26
- import stylesCommon from '../styles';
27
- import styles from './styles';
28
- dayjs.extend(localizedFormat);
29
- function GiftedChat(props) {
30
- const { messages = [], initialText = '', isTyping,
31
- // "random" function from here: https://stackoverflow.com/a/8084248/3452513
32
- // we do not use uuid since it would add extra native dependency (https://www.npmjs.com/package/react-native-get-random-values)
33
- // lib's user can decide which algorithm to use and pass it as a prop
34
- messageIdGenerator = () => (Math.random() + 1).toString(36).substring(7), user = {}, onSend, locale = 'en', renderLoading, actionSheet = null, textInputProps, renderChatFooter = null, renderInputToolbar = null, bottomOffset = 0, focusOnInputWhenOpeningKeyboard = true, keyboardShouldPersistTaps = Platform.select({
35
- ios: 'never',
36
- android: 'always',
37
- default: 'never',
38
- }), onInputTextChanged = null, maxInputLength = null, inverted = true, minComposerHeight = MIN_COMPOSER_HEIGHT, maxComposerHeight = MAX_COMPOSER_HEIGHT, isKeyboardInternallyHandled = true, disableKeyboardController = false, } = props;
39
- const actionSheetRef = useRef(null);
40
- const messageContainerRef = useMemo(() => props.messageContainerRef || createRef(), [props.messageContainerRef]);
41
- const textInputRef = useMemo(() => props.textInputRef || createRef(), [props.textInputRef]);
42
- const isTextInputWasFocused = useRef(false);
43
- const [isInitialized, setIsInitialized] = useState(false);
44
- const [composerHeight, setComposerHeight] = useState(minComposerHeight);
45
- const [text, setText] = useState(() => props.text || '');
46
- const [isTypingDisabled, setIsTypingDisabled] = useState(false);
47
- // Always call the hook, but conditionally use its data
48
- const keyboardControllerData = useReanimatedKeyboardAnimation();
49
- // Create a mock keyboard object when disabled
50
- const keyboard = useMemo(() => {
51
- if (disableKeyboardController)
52
- return { height: { value: 0 } };
53
- return keyboardControllerData;
54
- }, [disableKeyboardController, keyboardControllerData]);
55
- const trackingKeyboardMovement = useSharedValue(false);
56
- const debounceEnableTypingTimeoutId = useRef(undefined);
57
- const keyboardOffsetBottom = useSharedValue(0);
58
- const contentStyleAnim = useAnimatedStyle(() => ({
59
- transform: [
60
- { translateY: keyboard.height.value - keyboardOffsetBottom.value },
61
- ],
62
- }), [keyboard, keyboardOffsetBottom]);
63
- const getTextFromProp = useCallback((fallback) => {
64
- if (props.text === undefined)
65
- return fallback;
66
- return props.text;
67
- }, [props.text]);
68
- /**
69
- * Store text input focus status when keyboard hide to retrieve
70
- * it afterwards if needed.
71
- * `onKeyboardWillHide` may be called twice in sequence so we
72
- * make a guard condition (eg. showing image picker)
73
- */
74
- const handleTextInputFocusWhenKeyboardHide = useCallback(() => {
75
- if (!isTextInputWasFocused.current)
76
- isTextInputWasFocused.current =
77
- textInputRef.current?.isFocused() || false;
78
- }, [textInputRef]);
79
- /**
80
- * Refocus the text input only if it was focused before showing keyboard.
81
- * This is needed in some cases (eg. showing image picker).
82
- */
83
- const handleTextInputFocusWhenKeyboardShow = useCallback(() => {
84
- if (textInputRef.current &&
85
- isTextInputWasFocused.current &&
86
- !textInputRef.current.isFocused())
87
- textInputRef.current.focus();
88
- // Reset the indicator since the keyboard is shown
89
- isTextInputWasFocused.current = false;
90
- }, [textInputRef]);
91
- const disableTyping = useCallback(() => {
92
- clearTimeout(debounceEnableTypingTimeoutId.current);
93
- setIsTypingDisabled(true);
94
- }, []);
95
- const enableTyping = useCallback(() => {
96
- clearTimeout(debounceEnableTypingTimeoutId.current);
97
- setIsTypingDisabled(false);
98
- }, []);
99
- const debounceEnableTyping = useCallback(() => {
100
- clearTimeout(debounceEnableTypingTimeoutId.current);
101
- debounceEnableTypingTimeoutId.current = setTimeout(() => {
102
- enableTyping();
103
- }, 50);
104
- }, [enableTyping]);
105
- const scrollToBottom = useCallback((isAnimated = true) => {
106
- if (!messageContainerRef?.current)
107
- return;
108
- if (inverted) {
109
- messageContainerRef.current.scrollToOffset({
110
- offset: 0,
111
- animated: isAnimated,
112
- });
113
- return;
114
- }
115
- messageContainerRef.current.scrollToEnd({ animated: isAnimated });
116
- }, [inverted, messageContainerRef]);
117
- const renderMessages = useMemo(() => {
118
- if (!isInitialized)
119
- return null;
120
- const { messagesContainerStyle, ...messagesContainerProps } = props;
121
- return (<View style={[stylesCommon.fill, messagesContainerStyle]}>
122
- <MessageContainer {...messagesContainerProps} invertibleScrollViewProps={{
123
- inverted,
124
- keyboardShouldPersistTaps,
125
- }} messages={messages} forwardRef={messageContainerRef} isTyping={isTyping}/>
126
- {renderChatFooter?.()}
127
- </View>);
128
- }, [
129
- isInitialized,
130
- isTyping,
131
- messages,
132
- props,
133
- inverted,
134
- keyboardShouldPersistTaps,
135
- messageContainerRef,
136
- renderChatFooter,
137
- ]);
138
- const notifyInputTextReset = useCallback(() => {
139
- onInputTextChanged?.('');
140
- }, [onInputTextChanged]);
141
- const resetInputToolbar = useCallback(() => {
142
- textInputRef.current?.clear();
143
- notifyInputTextReset();
144
- setComposerHeight(minComposerHeight);
145
- setText(getTextFromProp(''));
146
- enableTyping();
147
- }, [
148
- minComposerHeight,
149
- getTextFromProp,
150
- textInputRef,
151
- notifyInputTextReset,
152
- enableTyping,
153
- ]);
154
- const _onSend = useCallback((messages = [], shouldResetInputToolbar = false) => {
155
- if (!Array.isArray(messages))
156
- messages = [messages];
157
- const newMessages = messages.map(message => {
158
- return {
159
- ...message,
160
- user: user,
161
- createdAt: new Date(),
162
- _id: messageIdGenerator?.(),
163
- };
164
- });
165
- if (shouldResetInputToolbar === true) {
166
- disableTyping();
167
- resetInputToolbar();
168
- }
169
- onSend?.(newMessages);
170
- setTimeout(() => scrollToBottom(), 10);
171
- }, [messageIdGenerator, onSend, user, resetInputToolbar, disableTyping, scrollToBottom]);
172
- const onInputSizeChanged = useCallback((size) => {
173
- const newComposerHeight = Math.max(minComposerHeight, Math.min(maxComposerHeight, size.height));
174
- setComposerHeight(newComposerHeight);
175
- }, [maxComposerHeight, minComposerHeight]);
176
- const _onInputTextChanged = useCallback((_text) => {
177
- if (isTypingDisabled)
178
- return;
179
- onInputTextChanged?.(_text);
180
- // Only set state if it's not being overridden by a prop.
181
- if (props.text === undefined)
182
- setText(_text);
183
- }, [onInputTextChanged, isTypingDisabled, props.text]);
184
- const onInitialLayoutViewLayout = useCallback((e) => {
185
- if (isInitialized)
186
- return;
187
- const { layout } = e.nativeEvent;
188
- if (layout.height <= 0)
189
- return;
190
- notifyInputTextReset();
191
- setIsInitialized(true);
192
- setComposerHeight(minComposerHeight);
193
- setText(getTextFromProp(initialText));
194
- }, [isInitialized, initialText, minComposerHeight, notifyInputTextReset, getTextFromProp]);
195
- const inputToolbarFragment = useMemo(() => {
196
- if (!isInitialized)
197
- return null;
198
- const inputToolbarProps = {
199
- ...props,
200
- text: getTextFromProp(text),
201
- composerHeight: Math.max(minComposerHeight, composerHeight),
202
- onSend: _onSend,
203
- onInputSizeChanged,
204
- onTextChanged: _onInputTextChanged,
205
- textInputProps: {
206
- ...textInputProps,
207
- ref: textInputRef,
208
- maxLength: isTypingDisabled ? 0 : maxInputLength,
209
- },
210
- };
211
- if (renderInputToolbar)
212
- return renderInputToolbar(inputToolbarProps);
213
- return <InputToolbar {...inputToolbarProps}/>;
214
- }, [
215
- isInitialized,
216
- _onSend,
217
- getTextFromProp,
218
- maxInputLength,
219
- minComposerHeight,
220
- onInputSizeChanged,
221
- props,
222
- text,
223
- renderInputToolbar,
224
- composerHeight,
225
- isTypingDisabled,
226
- textInputRef,
227
- textInputProps,
228
- _onInputTextChanged,
229
- ]);
230
- const contextValues = useMemo(() => ({
231
- actionSheet: actionSheet ||
232
- (() => ({
233
- showActionSheetWithOptions: actionSheetRef.current.showActionSheetWithOptions,
234
- })),
235
- getLocale: () => locale,
236
- }), [actionSheet, locale]);
237
- useEffect(() => {
238
- if (props.text != null)
239
- setText(props.text);
240
- }, [props.text]);
241
- // Only set up keyboard animation when keyboard controller is enabled
242
- useAnimatedReaction(() => disableKeyboardController ? 0 : -keyboard.height.value, (value, prevValue) => {
243
- // Skip keyboard handling when disabled
244
- if (disableKeyboardController)
245
- return;
246
- if (prevValue !== null && value !== prevValue) {
247
- const isKeyboardMovingUp = value > prevValue;
248
- if (isKeyboardMovingUp !== trackingKeyboardMovement.value) {
249
- trackingKeyboardMovement.value = isKeyboardMovingUp;
250
- keyboardOffsetBottom.value = withTiming(isKeyboardMovingUp ? bottomOffset : 0, {
251
- // If `bottomOffset` exists, we change the duration to a smaller value to fix the delay in the keyboard animation speed
252
- duration: bottomOffset ? 150 : 400,
253
- });
254
- if (focusOnInputWhenOpeningKeyboard)
255
- if (isKeyboardMovingUp)
256
- runOnJS(handleTextInputFocusWhenKeyboardShow)();
257
- else
258
- runOnJS(handleTextInputFocusWhenKeyboardHide)();
259
- if (value === 0) {
260
- runOnJS(enableTyping)();
261
- }
262
- else {
263
- runOnJS(disableTyping)();
264
- runOnJS(debounceEnableTyping)();
265
- }
266
- }
267
- }
268
- }, [
269
- keyboard,
270
- trackingKeyboardMovement,
271
- focusOnInputWhenOpeningKeyboard,
272
- handleTextInputFocusWhenKeyboardHide,
273
- handleTextInputFocusWhenKeyboardShow,
274
- enableTyping,
275
- disableTyping,
276
- debounceEnableTyping,
277
- bottomOffset,
278
- disableKeyboardController,
279
- ]);
280
- return (<GiftedChatContext.Provider value={contextValues}>
281
- <ActionSheetProvider ref={actionSheetRef}>
282
- <View testID={TEST_ID.WRAPPER} style={[stylesCommon.fill, styles.contentContainer]} onLayout={onInitialLayoutViewLayout}>
283
- {isInitialized
284
- ? (<Animated.View style={[stylesCommon.fill, (isKeyboardInternallyHandled && !disableKeyboardController) && contentStyleAnim]}>
285
- {renderMessages}
286
- {inputToolbarFragment}
287
- </Animated.View>)
288
- : (renderLoading?.())}
289
- </View>
290
- </ActionSheetProvider>
291
- </GiftedChatContext.Provider>);
292
- }
293
- function GiftedChatWrapper(props) {
294
- // Don't use KeyboardProvider when keyboard controller is disabled
295
- if (props.disableKeyboardController)
296
- return <GiftedChat {...props}/>;
297
- return (<KeyboardProvider>
298
- <GiftedChat {...props}/>
299
- </KeyboardProvider>);
300
- }
301
- GiftedChatWrapper.append = (currentMessages = [], messages, inverted = true) => {
302
- if (!Array.isArray(messages))
303
- messages = [messages];
304
- return inverted
305
- ? messages.concat(currentMessages)
306
- : currentMessages.concat(messages);
307
- };
308
- GiftedChatWrapper.prepend = (currentMessages = [], messages, inverted = true) => {
309
- if (!Array.isArray(messages))
310
- messages = [messages];
311
- return inverted
312
- ? currentMessages.concat(messages)
313
- : messages.concat(currentMessages);
314
- };
315
- export * from '../types';
316
- export { GiftedChatWrapper as GiftedChat, Actions, Avatar, Bubble, SystemMessage, MessageImage, MessageText, Composer, Day, InputToolbar, LoadEarlier, Message, MessageContainer, Send, Time, GiftedAvatar, utils };
317
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/GiftedChat/index.tsx"],"names":[],"mappings":"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"}
@@ -1,6 +0,0 @@
1
- declare const _default: {
2
- contentContainer: {
3
- overflow: "hidden";
4
- };
5
- };
6
- export default _default;
@@ -1,7 +0,0 @@
1
- import { StyleSheet } from 'react-native';
2
- export default StyleSheet.create({
3
- contentContainer: {
4
- overflow: 'hidden',
5
- },
6
- });
7
- //# sourceMappingURL=styles.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"styles.js","sourceRoot":"","sources":["../../src/GiftedChat/styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AAEzC,eAAe,UAAU,CAAC,MAAM,CAAC;IAC/B,gBAAgB,EAAE;QAChB,QAAQ,EAAE,QAAQ;KACnB;CACF,CAAC,CAAA"}
@@ -1,112 +0,0 @@
1
- import React, { RefObject } from 'react';
2
- import { ActionSheetOptions } from '@expo/react-native-action-sheet';
3
- import { TextInput, StyleProp, TextStyle, ViewStyle } from 'react-native';
4
- import { LightboxProps } from 'react-native-lightbox-v2';
5
- import { ActionsProps } from '../Actions';
6
- import { AvatarProps } from '../Avatar';
7
- import { ComposerProps } from '../Composer';
8
- import { DayProps } from '../Day';
9
- import { InputToolbarProps } from '../InputToolbar';
10
- import { LoadEarlierProps } from '../LoadEarlier';
11
- import { MessageProps } from '../Message';
12
- import { MessageImageProps } from '../MessageImage';
13
- import { MessageTextProps } from '../MessageText';
14
- import { IMessage, LeftRightStyle, MessageAudioProps, MessageVideoProps, Reply, User } from '../types';
15
- import { QuickRepliesProps } from '../QuickReplies';
16
- import { SendProps } from '../Send';
17
- import { SystemMessageProps } from '../SystemMessage';
18
- import { TimeProps } from '../Time';
19
- import { AnimatedList, ListViewProps, MessageContainerProps } from '../MessageContainer';
20
- import { BubbleProps } from '../Bubble';
21
- export interface GiftedChatProps<TMessage extends IMessage> extends Partial<MessageContainerProps<TMessage>> {
22
- messageContainerRef?: RefObject<AnimatedList<TMessage>>;
23
- textInputRef?: RefObject<TextInput>;
24
- messages?: TMessage[];
25
- isTyping?: boolean;
26
- renderUsernameOnMessage?: boolean;
27
- messagesContainerStyle?: StyleProp<ViewStyle>;
28
- text?: string;
29
- alignTop?: boolean;
30
- isScrollToBottomEnabled?: boolean;
31
- scrollToBottomStyle?: StyleProp<ViewStyle>;
32
- initialText?: string;
33
- placeholder?: string;
34
- disableComposer?: boolean;
35
- user?: User;
36
- locale?: string;
37
- timeFormat?: string;
38
- dateFormat?: string;
39
- dateFormatCalendar?: object;
40
- loadEarlier?: boolean;
41
- isLoadingEarlier?: boolean;
42
- isKeyboardInternallyHandled?: boolean;
43
- disableKeyboardController?: boolean;
44
- showUserAvatar?: boolean;
45
- showAvatarForEveryMessage?: boolean;
46
- renderAvatarOnTop?: boolean;
47
- inverted?: boolean;
48
- imageProps?: MessageImageProps<TMessage>;
49
- lightboxProps?: LightboxProps;
50
- bottomOffset?: number;
51
- focusOnInputWhenOpeningKeyboard?: boolean;
52
- minInputToolbarHeight?: number;
53
- listViewProps?: ListViewProps;
54
- textInputProps?: object;
55
- keyboardShouldPersistTaps?: 'always' | 'never' | 'handled';
56
- maxInputLength?: number;
57
- alwaysShowSend?: boolean;
58
- imageStyle?: StyleProp<ViewStyle>;
59
- extraData?: object;
60
- minComposerHeight?: number;
61
- maxComposerHeight?: number;
62
- options?: {
63
- [key: string]: () => void;
64
- };
65
- optionTintColor?: string;
66
- quickReplyStyle?: StyleProp<ViewStyle>;
67
- quickReplyTextStyle?: StyleProp<TextStyle>;
68
- quickReplyContainerStyle?: StyleProp<ViewStyle>;
69
- isCustomViewBottom?: boolean;
70
- infiniteScroll?: boolean;
71
- timeTextStyle?: LeftRightStyle<TextStyle>;
72
- actionSheet?(): {
73
- showActionSheetWithOptions: (options: ActionSheetOptions, callback: (buttonIndex: number) => void | Promise<void>) => void;
74
- };
75
- onPressAvatar?(user: User): void;
76
- onLongPressAvatar?(user: User): void;
77
- messageIdGenerator?(message?: TMessage): string;
78
- onSend?(messages: TMessage[]): void;
79
- onLoadEarlier?(): void;
80
- renderLoading?(): React.ReactNode;
81
- renderLoadEarlier?(props: LoadEarlierProps): React.ReactNode;
82
- renderAvatar?: null | ((props: AvatarProps<TMessage>) => React.ReactNode);
83
- renderBubble?(props: BubbleProps<TMessage>): React.ReactNode;
84
- renderSystemMessage?(props: SystemMessageProps<TMessage>): React.ReactNode;
85
- onPress?(context: unknown, message: TMessage): void;
86
- onLongPress?(context: unknown, message: TMessage): void;
87
- renderUsername?(user: User): React.ReactNode;
88
- renderMessage?(message: MessageProps<TMessage>): React.ReactElement;
89
- renderMessageText?(messageText: MessageTextProps<TMessage>): React.ReactNode;
90
- renderMessageImage?(props: MessageImageProps<TMessage>): React.ReactNode;
91
- renderMessageVideo?(props: MessageVideoProps<TMessage>): React.ReactNode;
92
- renderMessageAudio?(props: MessageAudioProps<TMessage>): React.ReactNode;
93
- renderCustomView?(props: BubbleProps<TMessage>): React.ReactNode;
94
- renderDay?(props: DayProps): React.ReactNode;
95
- renderTime?(props: TimeProps<TMessage>): React.ReactNode;
96
- renderFooter?(props: MessageContainerProps<TMessage>): React.ReactNode;
97
- renderChatEmpty?(): React.ReactNode;
98
- renderChatFooter?(): React.ReactNode;
99
- renderInputToolbar?(props: InputToolbarProps<TMessage>): React.ReactNode;
100
- renderComposer?(props: ComposerProps): React.ReactNode;
101
- renderActions?(props: ActionsProps): React.ReactNode;
102
- renderSend?(props: SendProps<TMessage>): React.ReactNode;
103
- renderAccessory?(props: InputToolbarProps<TMessage>): React.ReactNode;
104
- onPressActionButton?(): void;
105
- onInputTextChanged?(text: string): void;
106
- matchers?: MessageTextProps<TMessage>['matchers'];
107
- onQuickReply?(replies: Reply[]): void;
108
- renderQuickReplies?(quickReplies: QuickRepliesProps<TMessage>): React.ReactNode;
109
- renderQuickReplySend?(): React.ReactNode;
110
- scrollToBottomComponent?(): React.ReactNode;
111
- shouldUpdateMessage?(props: MessageProps<TMessage>, nextProps: MessageProps<TMessage>): boolean;
112
- }
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=types.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/GiftedChat/types.ts"],"names":[],"mappings":""}
@@ -1,9 +0,0 @@
1
- import { ActionSheetOptions } from '@expo/react-native-action-sheet';
2
- export interface IGiftedChatContext {
3
- actionSheet(): {
4
- showActionSheetWithOptions: (options: ActionSheetOptions, callback: (buttonIndex?: number) => void | Promise<void>) => void;
5
- };
6
- getLocale(): string;
7
- }
8
- export declare const GiftedChatContext: import("react").Context<IGiftedChatContext>;
9
- export declare const useChatContext: () => IGiftedChatContext;
@@ -1,9 +0,0 @@
1
- import { createContext, useContext } from 'react';
2
- export const GiftedChatContext = createContext({
3
- getLocale: () => 'en',
4
- actionSheet: () => ({
5
- showActionSheetWithOptions: () => { },
6
- }),
7
- });
8
- export const useChatContext = () => useContext(GiftedChatContext);
9
- //# sourceMappingURL=GiftedChatContext.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"GiftedChatContext.js","sourceRoot":"","sources":["../src/GiftedChatContext.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,OAAO,CAAA;AAejD,MAAM,CAAC,MAAM,iBAAiB,GAAG,aAAa,CAAqB;IACjE,SAAS,EAAE,GAAG,EAAE,CAAC,IAAI;IACrB,WAAW,EAAE,GAAG,EAAE,CAAC,CAAC;QAClB,0BAA0B,EAAE,GAAG,EAAE,GAAE,CAAC;KACrC,CAAC;CACH,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,cAAc,GAAG,GAAG,EAAE,CAAC,UAAU,CAAC,iBAAiB,CAAC,CAAA"}
@@ -1,23 +0,0 @@
1
- import React from 'react';
2
- import { StyleProp, ViewStyle } from 'react-native';
3
- import { ComposerProps } from './Composer';
4
- import { SendProps } from './Send';
5
- import { ActionsProps } from './Actions';
6
- import { IMessage } from './types';
7
- export interface InputToolbarProps<TMessage extends IMessage> {
8
- options?: {
9
- [key: string]: () => void;
10
- };
11
- optionTintColor?: string;
12
- containerStyle?: StyleProp<ViewStyle>;
13
- primaryStyle?: StyleProp<ViewStyle>;
14
- accessoryStyle?: StyleProp<ViewStyle>;
15
- renderAccessory?(props: InputToolbarProps<TMessage>): React.ReactNode;
16
- renderActions?(props: ActionsProps): React.ReactNode;
17
- renderSend?(props: SendProps<TMessage>): React.ReactNode;
18
- renderComposer?(props: ComposerProps): React.ReactNode;
19
- onPressActionButton?(): void;
20
- icon?: () => React.ReactNode;
21
- wrapperStyle?: StyleProp<ViewStyle>;
22
- }
23
- export declare function InputToolbar<TMessage extends IMessage = IMessage>(props: InputToolbarProps<TMessage>): React.JSX.Element;
@@ -1,56 +0,0 @@
1
- import React, { useMemo } from 'react';
2
- import { StyleSheet, View } from 'react-native';
3
- import { Composer } from './Composer';
4
- import { Send } from './Send';
5
- import { Actions } from './Actions';
6
- import Color from './Color';
7
- export function InputToolbar(props) {
8
- const { renderActions, onPressActionButton, renderComposer, renderSend, renderAccessory, options, optionTintColor, icon, wrapperStyle, containerStyle, } = props;
9
- const actionsFragment = useMemo(() => {
10
- const props = {
11
- onPressActionButton,
12
- options,
13
- optionTintColor,
14
- icon,
15
- wrapperStyle,
16
- containerStyle,
17
- };
18
- return (renderActions?.(props) || (onPressActionButton && <Actions {...props}/>));
19
- }, [
20
- renderActions,
21
- onPressActionButton,
22
- options,
23
- optionTintColor,
24
- icon,
25
- wrapperStyle,
26
- containerStyle,
27
- ]);
28
- const composerFragment = useMemo(() => {
29
- return (renderComposer?.(props) || (<Composer {...props}/>));
30
- }, [renderComposer, props]);
31
- return (<View style={[styles.container, containerStyle]}>
32
- <View style={[styles.primary, props.primaryStyle]}>
33
- {actionsFragment}
34
- {composerFragment}
35
- {renderSend?.(props) || <Send {...props}/>}
36
- </View>
37
- {renderAccessory && (<View style={[styles.accessory, props.accessoryStyle]}>
38
- {renderAccessory(props)}
39
- </View>)}
40
- </View>);
41
- }
42
- const styles = StyleSheet.create({
43
- container: {
44
- borderTopWidth: StyleSheet.hairlineWidth,
45
- borderTopColor: Color.defaultColor,
46
- backgroundColor: Color.white,
47
- },
48
- primary: {
49
- flexDirection: 'row',
50
- alignItems: 'flex-end',
51
- },
52
- accessory: {
53
- height: 44,
54
- },
55
- });
56
- //# sourceMappingURL=InputToolbar.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"InputToolbar.js","sourceRoot":"","sources":["../src/InputToolbar.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,OAAO,CAAA;AACtC,OAAO,EAAE,UAAU,EAAE,IAAI,EAAwB,MAAM,cAAc,CAAA;AAErE,OAAO,EAAE,QAAQ,EAAiB,MAAM,YAAY,CAAA;AACpD,OAAO,EAAE,IAAI,EAAa,MAAM,QAAQ,CAAA;AACxC,OAAO,EAAE,OAAO,EAAgB,MAAM,WAAW,CAAA;AACjD,OAAO,KAAK,MAAM,SAAS,CAAA;AAkB3B,MAAM,UAAU,YAAY,CAC1B,KAAkC;IAElC,MAAM,EACJ,aAAa,EACb,mBAAmB,EACnB,cAAc,EACd,UAAU,EACV,eAAe,EACf,OAAO,EACP,eAAe,EACf,IAAI,EACJ,YAAY,EACZ,cAAc,GACf,GAAG,KAAK,CAAA;IAET,MAAM,eAAe,GAAG,OAAO,CAAC,GAAG,EAAE;QACnC,MAAM,KAAK,GAAG;YACZ,mBAAmB;YACnB,OAAO;YACP,eAAe;YACf,IAAI;YACJ,YAAY;YACZ,cAAc;SACf,CAAA;QAED,OAAO,CACL,aAAa,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,mBAAmB,IAAI,CAAC,OAAO,CAAC,IAAI,KAAK,CAAC,EAAG,CAAC,CAC1E,CAAA;IACH,CAAC,EAAE;QACD,aAAa;QACb,mBAAmB;QACnB,OAAO;QACP,eAAe;QACf,IAAI;QACJ,YAAY;QACZ,cAAc;KACf,CAAC,CAAA;IAEF,MAAM,gBAAgB,GAAG,OAAO,CAAC,GAAG,EAAE;QACpC,OAAO,CACL,cAAc,EAAE,CAAC,KAAsB,CAAC,IAAI,CAC1C,CAAC,QAAQ,CAAC,IAAK,KAAuB,CAAC,EAAG,CAC3C,CACF,CAAA;IACH,CAAC,EAAE,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC,CAAA;IAE3B,OAAO,CACL,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC,CAC9C;MAAA,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,YAAY,CAAC,CAAC,CAChD;QAAA,CAAC,eAAe,CAChB;QAAA,CAAC,gBAAgB,CACjB;QAAA,CAAC,UAAU,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,EAAG,CAC7C;MAAA,EAAE,IAAI,CACN;MAAA,CAAC,eAAe,IAAI,CAClB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,EAAE,KAAK,CAAC,cAAc,CAAC,CAAC,CACpD;UAAA,CAAC,eAAe,CAAC,KAAK,CAAC,CACzB;QAAA,EAAE,IAAI,CAAC,CACR,CACH;IAAA,EAAE,IAAI,CAAC,CACR,CAAA;AACH,CAAC;AAED,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC;IAC/B,SAAS,EAAE;QACT,cAAc,EAAE,UAAU,CAAC,aAAa;QACxC,cAAc,EAAE,KAAK,CAAC,YAAY;QAClC,eAAe,EAAE,KAAK,CAAC,KAAK;KAC7B;IACD,OAAO,EAAE;QACP,aAAa,EAAE,KAAK;QACpB,UAAU,EAAE,UAAU;KACvB;IACD,SAAS,EAAE;QACT,MAAM,EAAE,EAAE;KACX;CACF,CAAC,CAAA"}
@@ -1,14 +0,0 @@
1
- import React from 'react';
2
- import { StyleProp, ViewStyle, TextStyle } from 'react-native';
3
- export interface LoadEarlierProps {
4
- isLoadingEarlier?: boolean;
5
- label?: string;
6
- containerStyle?: StyleProp<ViewStyle>;
7
- wrapperStyle?: StyleProp<ViewStyle>;
8
- textStyle?: StyleProp<TextStyle>;
9
- activityIndicatorStyle?: StyleProp<ViewStyle>;
10
- activityIndicatorColor?: string;
11
- activityIndicatorSize?: number | 'small' | 'large';
12
- onLoadEarlier?(): void;
13
- }
14
- export declare function LoadEarlier({ isLoadingEarlier, onLoadEarlier, label, containerStyle, wrapperStyle, textStyle, activityIndicatorColor, activityIndicatorSize, activityIndicatorStyle, }: LoadEarlierProps): React.ReactElement;
@@ -1,45 +0,0 @@
1
- import React from 'react';
2
- import { ActivityIndicator, Platform, StyleSheet, Text, TouchableOpacity, View, } from 'react-native';
3
- import Color from './Color';
4
- import stylesCommon from './styles';
5
- const styles = StyleSheet.create({
6
- container: {
7
- alignItems: 'center',
8
- marginTop: 5,
9
- marginBottom: 10,
10
- },
11
- wrapper: {
12
- backgroundColor: Color.defaultColor,
13
- borderRadius: 15,
14
- height: 30,
15
- paddingLeft: 10,
16
- paddingRight: 10,
17
- },
18
- text: {
19
- backgroundColor: Color.backgroundTransparent,
20
- color: Color.white,
21
- fontSize: 12,
22
- },
23
- activityIndicator: {
24
- marginTop: Platform.select({
25
- ios: -14,
26
- android: -16,
27
- default: -15,
28
- }),
29
- },
30
- });
31
- export function LoadEarlier({ isLoadingEarlier = false, onLoadEarlier = () => { }, label = 'Load earlier messages', containerStyle, wrapperStyle, textStyle, activityIndicatorColor = 'white', activityIndicatorSize = 'small', activityIndicatorStyle, }) {
32
- return (<TouchableOpacity style={[styles.container, containerStyle]} onPress={onLoadEarlier} disabled={isLoadingEarlier} accessibilityRole='button'>
33
- <View style={[stylesCommon.centerItems, styles.wrapper, wrapperStyle]}>
34
- {isLoadingEarlier
35
- ? (<View>
36
- <Text style={[styles.text, textStyle, { opacity: 0 }]}>
37
- {label}
38
- </Text>
39
- <ActivityIndicator color={activityIndicatorColor} size={activityIndicatorSize} style={[styles.activityIndicator, activityIndicatorStyle]}/>
40
- </View>)
41
- : (<Text style={[styles.text, textStyle]}>{label}</Text>)}
42
- </View>
43
- </TouchableOpacity>);
44
- }
45
- //# sourceMappingURL=LoadEarlier.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"LoadEarlier.js","sourceRoot":"","sources":["../src/LoadEarlier.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,EACL,iBAAiB,EACjB,QAAQ,EACR,UAAU,EACV,IAAI,EACJ,gBAAgB,EAChB,IAAI,GAIL,MAAM,cAAc,CAAA;AACrB,OAAO,KAAK,MAAM,SAAS,CAAA;AAC3B,OAAO,YAAY,MAAM,UAAU,CAAA;AAEnC,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC;IAC/B,SAAS,EAAE;QACT,UAAU,EAAE,QAAQ;QACpB,SAAS,EAAE,CAAC;QACZ,YAAY,EAAE,EAAE;KACjB;IACD,OAAO,EAAE;QACP,eAAe,EAAE,KAAK,CAAC,YAAY;QACnC,YAAY,EAAE,EAAE;QAChB,MAAM,EAAE,EAAE;QACV,WAAW,EAAE,EAAE;QACf,YAAY,EAAE,EAAE;KACjB;IACD,IAAI,EAAE;QACJ,eAAe,EAAE,KAAK,CAAC,qBAAqB;QAC5C,KAAK,EAAE,KAAK,CAAC,KAAK;QAClB,QAAQ,EAAE,EAAE;KACb;IACD,iBAAiB,EAAE;QACjB,SAAS,EAAE,QAAQ,CAAC,MAAM,CAAC;YACzB,GAAG,EAAE,CAAC,EAAE;YACR,OAAO,EAAE,CAAC,EAAE;YACZ,OAAO,EAAE,CAAC,EAAE;SACb,CAAC;KACH;CACF,CAAC,CAAA;AAcF,MAAM,UAAU,WAAW,CAAE,EAC3B,gBAAgB,GAAG,KAAK,EACxB,aAAa,GAAG,GAAG,EAAE,GAAE,CAAC,EACxB,KAAK,GAAG,uBAAuB,EAC/B,cAAc,EACd,YAAY,EACZ,SAAS,EACT,sBAAsB,GAAG,OAAO,EAChC,qBAAqB,GAAG,OAAO,EAC/B,sBAAsB,GACL;IACjB,OAAO,CACL,CAAC,gBAAgB,CACf,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC,CAC1C,OAAO,CAAC,CAAC,aAAa,CAAC,CACvB,QAAQ,CAAC,CAAC,gBAAgB,CAAC,CAC3B,iBAAiB,CAAC,QAAQ,CAE1B;MAAA,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,YAAY,CAAC,WAAW,EAAE,MAAM,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC,CACpE;QAAA,CAAC,gBAAgB;YACf,CAAC,CAAC,CACA,CAAC,IAAI,CACH;cAAA,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,SAAS,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC,CACpD;gBAAA,CAAC,KAAK,CACR;cAAA,EAAE,IAAI,CACN;cAAA,CAAC,iBAAiB,CAChB,KAAK,CAAC,CAAC,sBAAuB,CAAC,CAC/B,IAAI,CAAC,CAAC,qBAAsB,CAAC,CAC7B,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,iBAAiB,EAAE,sBAAsB,CAAC,CAAC,EAE9D;YAAA,EAAE,IAAI,CAAC,CACR;YACD,CAAC,CAAC,CACA,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,CACtD,CACL;MAAA,EAAE,IAAI,CACR;IAAA,EAAE,gBAAgB,CAAC,CACpB,CAAA;AACH,CAAC"}