@planningcenter/chat-react-native 4.2.1-qa-staging.2 → 4.2.1-qa-staging.4
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/build/components/conversation/message_form.d.ts.map +1 -1
- package/build/components/conversation/message_form.js +1 -1
- package/build/components/conversation/message_form.js.map +1 -1
- package/build/contexts/conversation_context.d.ts +3 -1
- package/build/contexts/conversation_context.d.ts.map +1 -1
- package/build/contexts/conversation_context.js +23 -18
- package/build/contexts/conversation_context.js.map +1 -1
- package/build/hooks/use_conversation_message_lookup.d.ts +7 -0
- package/build/hooks/use_conversation_message_lookup.d.ts.map +1 -0
- package/build/hooks/use_conversation_message_lookup.js +52 -0
- package/build/hooks/use_conversation_message_lookup.js.map +1 -0
- package/build/hooks/use_conversation_messages.d.ts +1 -0
- package/build/hooks/use_conversation_messages.d.ts.map +1 -1
- package/build/hooks/use_conversation_messages.js +8 -1
- package/build/hooks/use_conversation_messages.js.map +1 -1
- package/build/hooks/use_conversation_messages_jolt_events.d.ts +12 -4
- package/build/hooks/use_conversation_messages_jolt_events.d.ts.map +1 -1
- package/build/hooks/use_conversation_messages_jolt_events.js +82 -88
- package/build/hooks/use_conversation_messages_jolt_events.js.map +1 -1
- package/build/hooks/use_fetch_newer_messages.d.ts.map +1 -1
- package/build/hooks/use_fetch_newer_messages.js +27 -21
- package/build/hooks/use_fetch_newer_messages.js.map +1 -1
- package/build/hooks/use_fetch_newer_on_foreground.d.ts +1 -1
- package/build/hooks/use_fetch_newer_on_foreground.d.ts.map +1 -1
- package/build/hooks/use_fetch_newer_on_foreground.js +2 -1
- package/build/hooks/use_fetch_newer_on_foreground.js.map +1 -1
- package/build/hooks/use_held_back_messages.d.ts +11 -0
- package/build/hooks/use_held_back_messages.d.ts.map +1 -0
- package/build/hooks/use_held_back_messages.js +24 -0
- package/build/hooks/use_held_back_messages.js.map +1 -0
- package/build/hooks/use_message_create_or_update.d.ts.map +1 -1
- package/build/hooks/use_message_create_or_update.js +91 -80
- package/build/hooks/use_message_create_or_update.js.map +1 -1
- package/build/hooks/use_message_reaction_toggle.d.ts.map +1 -1
- package/build/hooks/use_message_reaction_toggle.js +45 -40
- package/build/hooks/use_message_reaction_toggle.js.map +1 -1
- package/build/screens/conversation_new/components/services_form.js.map +1 -1
- package/build/screens/conversation_screen.d.ts.map +1 -1
- package/build/screens/conversation_screen.js +495 -157
- package/build/screens/conversation_screen.js.map +1 -1
- package/build/screens/message_actions_screen.d.ts.map +1 -1
- package/build/screens/message_actions_screen.js +21 -26
- package/build/screens/message_actions_screen.js.map +1 -1
- package/build/screens/message_report_screen.d.ts.map +1 -1
- package/build/screens/message_report_screen.js +17 -44
- package/build/screens/message_report_screen.js.map +1 -1
- package/build/screens/reactions_screen.d.ts.map +1 -1
- package/build/screens/reactions_screen.js +70 -88
- package/build/screens/reactions_screen.js.map +1 -1
- package/build/utils/cache/find_message_in_caches.d.ts +4 -0
- package/build/utils/cache/find_message_in_caches.d.ts.map +1 -0
- package/build/utils/cache/find_message_in_caches.js +16 -0
- package/build/utils/cache/find_message_in_caches.js.map +1 -0
- package/build/utils/cache/messages_cache.d.ts +1 -0
- package/build/utils/cache/messages_cache.d.ts.map +1 -1
- package/build/utils/cache/messages_cache.js +3 -0
- package/build/utils/cache/messages_cache.js.map +1 -1
- package/build/utils/cache/optimistically_update_message.d.ts +2 -1
- package/build/utils/cache/optimistically_update_message.d.ts.map +1 -1
- package/build/utils/cache/optimistically_update_message.js +4 -4
- package/build/utils/cache/optimistically_update_message.js.map +1 -1
- package/build/utils/cache/prepend_newer_page.d.ts +1 -1
- package/build/utils/cache/prepend_newer_page.d.ts.map +1 -1
- package/build/utils/cache/prepend_newer_page.js +10 -9
- package/build/utils/cache/prepend_newer_page.js.map +1 -1
- package/package.json +3 -3
- package/src/__tests__/hooks/use_conversation_messages.test.ts +22 -0
- package/src/__tests__/hooks/use_conversation_messages_jolt_events.test.ts +22 -25
- package/src/components/conversation/message_form.tsx +1 -2
- package/src/contexts/conversation_context.tsx +6 -1
- package/src/hooks/__tests__/use_fetch_newer_messages.test.tsx +68 -0
- package/src/hooks/__tests__/use_held_back_messages.test.tsx +60 -0
- package/src/hooks/__tests__/use_message_reaction_toggle.test.tsx +73 -0
- package/src/hooks/use_conversation_message_lookup.ts +29 -0
- package/src/hooks/use_conversation_messages.ts +9 -0
- package/src/hooks/use_conversation_messages_jolt_events.ts +43 -41
- package/src/hooks/use_fetch_newer_messages.ts +19 -12
- package/src/hooks/use_fetch_newer_on_foreground.ts +2 -2
- package/src/hooks/use_held_back_messages.ts +33 -0
- package/src/hooks/use_message_create_or_update.ts +8 -8
- package/src/hooks/use_message_reaction_toggle.ts +3 -1
- package/src/screens/conversation_new/components/services_form.tsx +1 -1
- package/src/screens/conversation_screen.tsx +21 -20
- package/src/screens/message_actions_screen.tsx +3 -5
- package/src/screens/message_report_screen.tsx +2 -3
- package/src/screens/reactions_screen.tsx +2 -4
- package/src/utils/cache/__tests__/find_message_in_caches.test.ts +37 -0
- package/src/utils/cache/__tests__/messages_cache.test.ts +14 -1
- package/src/utils/cache/__tests__/prepend_newer_page.test.ts +13 -14
- package/src/utils/cache/find_message_in_caches.ts +20 -0
- package/src/utils/cache/messages_cache.ts +3 -0
- package/src/utils/cache/optimistically_update_message.ts +2 -5
- package/src/utils/cache/prepend_newer_page.ts +7 -10
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"message_form.d.ts","sourceRoot":"","sources":["../../../src/components/conversation/message_form.tsx"],"names":[],"mappings":"AAEA,OAAO,EAQL,SAAS,EAEV,MAAM,cAAc,CAAA;AAiBrB,OAAO,EAAE,oBAAoB,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AA6BnE,eAAO,MAAM,WAAW;;;;;;CAOvB,CAAA;AAED,UAAU,qBAAsB,SAAQ,SAAS;IAC/C,YAAY,EAAE,oBAAoB,CAAA;IAClC,uBAAuB,CAAC,EAAE,eAAe,GAAG,IAAI,CAAA;IAChD,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC3B,wBAAwB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACxC,sBAAsB,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAA;IAC7C,cAAc,CAAC,EAAE,MAAM,IAAI,CAAA;CAC5B;AAmCD,iBAAS,eAAe,CAAC,EACvB,YAAY,EACZ,uBAAuB,EACvB,QAAQ,EACR,WAAW,EACX,wBAAwB,EACxB,sBAAsB,EACtB,cAAc,GACf,EAAE,qBAAqB,
|
|
1
|
+
{"version":3,"file":"message_form.d.ts","sourceRoot":"","sources":["../../../src/components/conversation/message_form.tsx"],"names":[],"mappings":"AAEA,OAAO,EAQL,SAAS,EAEV,MAAM,cAAc,CAAA;AAiBrB,OAAO,EAAE,oBAAoB,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AA6BnE,eAAO,MAAM,WAAW;;;;;;CAOvB,CAAA;AAED,UAAU,qBAAsB,SAAQ,SAAS;IAC/C,YAAY,EAAE,oBAAoB,CAAA;IAClC,uBAAuB,CAAC,EAAE,eAAe,GAAG,IAAI,CAAA;IAChD,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC3B,wBAAwB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACxC,sBAAsB,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAA;IAC7C,cAAc,CAAC,EAAE,MAAM,IAAI,CAAA;CAC5B;AAmCD,iBAAS,eAAe,CAAC,EACvB,YAAY,EACZ,uBAAuB,EACvB,QAAQ,EACR,WAAW,EACX,wBAAwB,EACxB,sBAAsB,EACtB,cAAc,GACf,EAAE,qBAAqB,2CA8KvB;AAyID,iBAAS,gBAAgB,4CAyDxB;AAcD,iBAAS,oBAAoB,4CAgD5B;AAED,iBAAS,2BAA2B,mDAuHnC;AAED,iBAAS,mBAAmB,mDAkC3B"}
|
|
@@ -303,7 +303,6 @@ function MessageFormRoot(t0) {
|
|
|
303
303
|
if (!canSubmit) {
|
|
304
304
|
return;
|
|
305
305
|
}
|
|
306
|
-
onBeforeSubmit?.();
|
|
307
306
|
if (canGiphy && usingGiphy) {
|
|
308
307
|
TextInput.State.blurTextInput(TextInput.State.currentlyFocusedInput());
|
|
309
308
|
Haptic.impactLight();
|
|
@@ -317,6 +316,7 @@ function MessageFormRoot(t0) {
|
|
|
317
316
|
});
|
|
318
317
|
reset();
|
|
319
318
|
} else {
|
|
319
|
+
onBeforeSubmit?.();
|
|
320
320
|
mutateAsync({
|
|
321
321
|
text: messageText,
|
|
322
322
|
attachments: attachmentsForSubmit
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"message_form.js","names":["useNavigation","useTheme","useNavigationTheme","useRoute","React","useCallback","useContext","useEffect","useState","Linking","Platform","Pressable","ScrollView","StyleSheet","TextInput","View","Keyboard","LinearGradient","Heading","Icon","IconButton","Text","TextButton","ChatContext","useCreateAndroidRippleColor","useInteractionTintedBackgroundColor","useScalableNumberOfLines","useFontScale","useAttachmentUploader","useBroadcastTypingStatus","useChatConfiguration","useMessageCreateOrUpdate","useMessageDraft","MAX_FONT_SIZE_MULTIPLIER_LANDMARK","platformFontWeightMedium","platformPressedOpacityStyle","pickAttachmentPreviewKind","canSubmitMessage","isInputEditable","hasMessageText","stripEmptyTextCharacters","DocumentPicker","Haptic","ImagePicker","tokens","Button","BannerPrimitive","MessageFormAttachmentFile","MessageFormAttachmentImage","MessageFormAttachmentVideo","jsx","_jsx","jsxs","_jsxs","MessageForm","Root","MessageFormRoot","MessageFormInput","SubmitButton","MessageFormSubmitBtn","AttachmentPicker","MessageFormAttachmentPicker","Commands","MessageFormCommands","MessageFormContext","createContext","text","setText","_text","onSubmit","disabled","inputEditable","canGiphy","usingGiphy","setUsingGiphy","_usingGiphy","currentlyEditingMessage","reset","replyRootId","undefined","replyRootAuthorFirstName","GIPHY_MAX_LENGTH","MAX_MESSAGE_LENGTH","PLACEHOLDER_FONT_SCALE_THRESHOLD","t0","$","_c","conversation","children","onFlaggedInMessageForm","onBeforeSubmit","giphyApiKey","styles","useMessageFormStyles","draft","saveDraft","clearDraft","t1","navigation","route","t2","t3","id","conversationId","message","status","isPending","resetMutation","mutateAsync","t4","attachments","t5","draftAttachments","attachmentUploader","resetAttachmentUploader","t6","setParams","editing_message_id","t7","t8","startsWith","t10","t9","t11","t12","params","clear_input","t13","t14","timeoutId","setTimeout","clearTimeout","t15","t16","pendingUploads","t17","flaggedAttachmentCount","t18","attachmentIds","length","conversationDisabled","hasFlaggedAttachments","hasText","hasSendableAttachments","canSubmit","t19","t20","t21","isVisible","OS","navigate","conversation_id","search_term","keyboardListener","addListener","remove","navigateToSendGiphyAfterKeyboardHides","t22","State","blurTextInput","currentlyFocusedInput","impactLight","attachmentsForSubmit","filter","_temp","map","_temp2","messageText","handleSubmit","t23","t24","t25","t26","t27","t28","Symbol","for","EditingIndicator","ReplyIndicator","FlaggedContentBanner","t29","textInputContainer","style","t30","container","t31","Provider","value","attachment","type","file","a","MessageFormAttachments","numberOfAttachments","messageFormAttachments","kind","name","removeAttachment","uri","contentType","alt","width","height","horizontal","showsHorizontalScrollIndicator","contentContainerStyle","getFileType","kinds","Set","size","isSingular","bb0","flaggedAttachments","_temp3","flaggedCount","fileType","buttonTitle","StatusIcon","BannerMessage","removeFlaggedAttachments","appearance","onPress","flaggedBannerButtonRow","StaticLayout","Content","flaggedBannerContainer","flagged","flaggedBannerLink","_temp4","accessibilityRole","contentGuidelinesLink","flaggedBannerText","openURL","theme","fontScale","attachmentError","errorMessage","broadcastTypingStatus","newText","handleTextChange","compactPlaceholder","placeholder","inputErrorMessage","giphyBadge","giphyBadgeIcon","giphyBadgeText","variant","textInputWithGiphy","textInput","colors","textColorDefaultPlaceholder","testID","multiline","placeholderTextColor","maxLength","submitBehavior","textInputRow","textInputBoundary","SUBMIT_ACCESSIBILITY_LABEL_MAP","giphy","editing","send","SUBMIT_ICON_NAME_MAP","formStateKey","colorKey","interactionStart","buttonStart","interaction","interactionEnd","buttonEnd","fillColorButtonNeutralSolidDisabled","colorMap","color","androidRippleColor","gradientColors","submitIconDisabled","submitIcon","iconStyles","submitPressableWrapper","pressed","borderless","foreground","x","y","accessibilityElementsHidden","submitGradientWrapper","start","end","accessibilityLabel","android_ripple","allowedMimeTypes","isOpen","setIsOpen","uploadImagePickerResult","result","canceled","filteredAssets","assets","_temp5","_temp6","handleFilesAttached","uploadDocumentPickerResult","result_0","filteredAssets_0","_temp7","_temp8","result_1","openCameraAsync","openCamera","result_2","openImageLibraryAsync","pickImage","result_3","openAsync","mimeTypes","pickFile","attachmentPickerButton","attachmentPickerButtonsContainer","accessibilityHint","configured","formButton","attachmentPicker","asset_2","asset","mimeType","asset_1","asset_0","fileName","split","pop","fileSize","FormIndicatorRow","title","buttonText","iconName","goBack","scalableNumberOfLines","formIndicatorRowIcon","formIndicatorRowTitle","formIndicatorRowTitleContainer","formIndicatorRow","navigationTheme","giphyBadgeBackgroundColor","card","borderColorDefaultBase","borderColorDefaultDim","fillColorNeutral050Base","fillColorNeutral070","iconColorDefaultDisabled","iconColorDefaultSecondary","statusErrorText","textColorDefaultPrimary","create","borderColor","borderTopWidth","padding","backgroundColor","flexDirection","alignItems","gap","overflow","borderRadius","borderWidth","flex","paddingBottom","paddingTop","select","ios","default","textAlignVertical","paddingHorizontal","justifyContent","fontSize","maxHeight","paddingLeft","paddingVertical","marginLeft","marginBottom","colorNeutral100White","position","left","bottom","zIndex","elevation","textDecorationLine","marginTop","fontWeight","textTransform","flexShrink"],"sources":["../../../src/components/conversation/message_form.tsx"],"sourcesContent":["import { useNavigation, useTheme as useNavigationTheme, useRoute } from '@react-navigation/native'\nimport React, { useCallback, useContext, useEffect, useState } from 'react'\nimport {\n Linking,\n Platform,\n Pressable,\n ScrollView,\n StyleSheet,\n TextInput,\n View,\n ViewProps,\n Keyboard,\n} from 'react-native'\nimport LinearGradient from 'react-native-linear-gradient'\nimport { Heading, Icon, IconButton, IconString, Text, TextButton } from '../../components'\nimport { ChatContext } from '../../contexts/chat_context'\nimport {\n useCreateAndroidRippleColor,\n useTheme,\n useInteractionTintedBackgroundColor,\n useScalableNumberOfLines,\n useFontScale,\n} from '../../hooks'\nimport { useAttachmentUploader } from '../../hooks/use_attachment_uploader'\nimport { useBroadcastTypingStatus } from '../../hooks/use_broadcast_typing_status'\nimport { useChatConfiguration } from '../../hooks/use_chat_configuration'\nimport { useMessageCreateOrUpdate } from '../../hooks/use_message_create_or_update'\nimport { useMessageDraft } from '../../hooks/use_message_draft'\nimport { ConversationScreenProps } from '../../screens/conversation_screen'\nimport { ConversationResource, MessageResource } from '../../types'\nimport {\n DenormalizedAttachmentResourceForCreate,\n DenormalizedMessageAttachmentResourceForCreate,\n FileAttachment,\n} from '../../types/resources/denormalized_attachment_resource_for_create'\nimport {\n MAX_FONT_SIZE_MULTIPLIER_LANDMARK,\n platformFontWeightMedium,\n platformPressedOpacityStyle,\n} from '../../utils'\nimport { pickAttachmentPreviewKind } from '../../utils/attachment_kind'\nimport { canSubmitMessage } from '../../utils/can_submit_message'\nimport { isInputEditable } from '../../utils/is_input_editable'\nimport { hasMessageText, stripEmptyTextCharacters } from '../../utils/message_text'\nimport {\n DocumentPicker,\n DocumentPickerResult,\n Haptic,\n ImagePicker,\n ImagePickerResult,\n} from '../../utils/native_adapters'\nimport { tokens } from '../../vendor/tapestry/tokens'\nimport { Button } from '../display/button'\nimport BannerPrimitive from '../primitive/banner_primitive'\nimport { MessageFormAttachmentFile } from './message_form/message_form_attachment_file'\nimport { MessageFormAttachmentImage } from './message_form/message_form_attachment_image'\nimport { MessageFormAttachmentVideo } from './message_form/message_form_attachment_video'\n\nexport const MessageForm = {\n Root: MessageFormRoot,\n\n TextInput: MessageFormInput,\n SubmitButton: MessageFormSubmitBtn,\n AttachmentPicker: MessageFormAttachmentPicker,\n Commands: MessageFormCommands,\n}\n\ninterface MessagesFormRootProps extends ViewProps {\n conversation: ConversationResource\n currentlyEditingMessage?: MessageResource | null\n replyRootId?: string | null\n replyRootAuthorFirstName?: string | null\n onFlaggedInMessageForm?: (id: string) => void\n onBeforeSubmit?: () => void\n}\n\nconst MessageFormContext = React.createContext<{\n text: string\n setText: (text: string) => void\n onSubmit: () => void\n disabled: boolean\n inputEditable: boolean\n canGiphy: boolean\n usingGiphy: boolean\n setUsingGiphy: (usingGiphy: boolean) => void\n attachmentUploader?: ReturnType<typeof useAttachmentUploader>\n currentlyEditingMessage?: MessageResource | null\n reset: () => void\n replyRootId?: string | null\n replyRootAuthorFirstName?: string | null\n}>({\n text: '',\n setText: (_text: string) => {},\n onSubmit: () => {},\n disabled: false,\n inputEditable: true,\n canGiphy: false,\n usingGiphy: false,\n setUsingGiphy: (_usingGiphy: boolean) => {},\n currentlyEditingMessage: null,\n reset: () => {},\n replyRootId: undefined,\n replyRootAuthorFirstName: undefined,\n})\n\nconst GIPHY_MAX_LENGTH = 50\nconst MAX_MESSAGE_LENGTH = 5000\nconst PLACEHOLDER_FONT_SCALE_THRESHOLD = 1.7\n\nfunction MessageFormRoot({\n conversation,\n currentlyEditingMessage,\n children,\n replyRootId,\n replyRootAuthorFirstName,\n onFlaggedInMessageForm,\n onBeforeSubmit,\n}: MessagesFormRootProps) {\n const { giphyApiKey } = useContext(ChatContext)\n const canGiphy = !!giphyApiKey && !currentlyEditingMessage\n const styles = useMessageFormStyles()\n const { draft, saveDraft, clearDraft } = useMessageDraft()\n const [text, setText] = React.useState(() => {\n // Initialize from draft only when not editing a message\n return currentlyEditingMessage ? '' : draft?.text || ''\n })\n const [usingGiphy, setUsingGiphy] = useState(false)\n const navigation = useNavigation()\n const route = useRoute() as ConversationScreenProps['route']\n const {\n status,\n isPending,\n reset: resetMutation,\n mutateAsync,\n } = useMessageCreateOrUpdate({\n conversationId: conversation.id,\n message: currentlyEditingMessage || undefined,\n replyRootId,\n })\n const attachmentUploader = useAttachmentUploader({\n conversationId: conversation.id,\n draftAttachments: currentlyEditingMessage ? undefined : draft?.attachments,\n onFlaggedInMessageForm,\n })\n const resetAttachmentUploader = attachmentUploader.reset\n\n const reset = useCallback(() => {\n resetAttachmentUploader()\n resetMutation()\n setText('')\n setUsingGiphy(false)\n if (!currentlyEditingMessage) {\n clearDraft()\n }\n navigation.setParams({\n editing_message_id: null,\n })\n }, [resetAttachmentUploader, resetMutation, navigation, currentlyEditingMessage, clearDraft])\n\n useEffect(() => {\n if (canGiphy && !usingGiphy && text.startsWith('/giphy ')) {\n setUsingGiphy(true)\n setText('')\n }\n }, [canGiphy, text, usingGiphy])\n\n useEffect(() => {\n switch (status) {\n case 'success':\n reset()\n break\n }\n }, [reset, status])\n\n useEffect(() => {\n if (route.params.clear_input) {\n reset()\n navigation.setParams({ ...route.params, clear_input: false })\n }\n }, [reset, navigation, route.params])\n\n // Save draft when text or attachments change (debounced)\n useEffect(() => {\n // Don't save drafts when editing a message\n if (currentlyEditingMessage) return\n\n const timeoutId = setTimeout(() => {\n saveDraft(text, attachmentUploader.attachments)\n }, 500)\n\n return () => clearTimeout(timeoutId)\n }, [text, attachmentUploader.attachments, saveDraft, currentlyEditingMessage])\n\n const canSubmit = canSubmitMessage({\n isPending,\n conversationDisabled: conversation.disabled ?? false,\n pendingUploads: !!attachmentUploader?.pendingUploads,\n hasFlaggedAttachments: !!attachmentUploader?.flaggedAttachmentCount,\n hasText: hasMessageText(text),\n hasSendableAttachments: !!attachmentUploader?.attachmentIds?.length,\n })\n const disabled = !canSubmit\n const inputEditable = isInputEditable({\n isPending,\n conversationDisabled: conversation.disabled ?? false,\n })\n\n /*\n Opening a FormSheet on Android while the keyboard is visible breaks the FormSheet's height & position.\n This is a workaround to ensure we don't open the FormSheet while the keyboard is visible.\n */\n const navigateToSendGiphyAfterKeyboardHides = useCallback(() => {\n if (!Keyboard.isVisible() || Platform.OS === 'ios') {\n navigation.navigate('SendGiphy', {\n conversation_id: conversation.id,\n search_term: text,\n })\n } else {\n const keyboardListener = Keyboard.addListener('keyboardDidHide', () => {\n navigation.navigate('SendGiphy', {\n conversation_id: conversation.id,\n search_term: text,\n })\n keyboardListener?.remove()\n })\n }\n }, [conversation.id, navigation, text])\n\n const handleSubmit = () => {\n if (!canSubmit) return\n\n onBeforeSubmit?.()\n\n if (canGiphy && usingGiphy) {\n TextInput.State.blurTextInput(TextInput.State.currentlyFocusedInput())\n Haptic.impactLight()\n navigateToSendGiphyAfterKeyboardHides()\n } else {\n let attachmentsForSubmit: DenormalizedAttachmentResourceForCreate[] =\n attachmentUploader.attachments\n .filter(a => a.status === 'success' && a.id)\n .map(\n (attachment): DenormalizedMessageAttachmentResourceForCreate => ({\n type: 'MessageAttachment',\n id: attachment.id as string,\n file: attachment.file,\n })\n )\n const messageText = stripEmptyTextCharacters(text)\n\n if (currentlyEditingMessage) {\n mutateAsync({ text: messageText })\n reset()\n } else {\n mutateAsync({ text: messageText, attachments: attachmentsForSubmit })\n reset()\n }\n }\n }\n\n useEffect(() => {\n if (currentlyEditingMessage) {\n setText(currentlyEditingMessage.text || '')\n }\n }, [currentlyEditingMessage])\n\n return (\n <MessageFormContext.Provider\n value={{\n text,\n setText,\n onSubmit: handleSubmit,\n disabled,\n inputEditable,\n canGiphy,\n usingGiphy,\n setUsingGiphy,\n attachmentUploader,\n currentlyEditingMessage,\n reset,\n replyRootId,\n replyRootAuthorFirstName,\n }}\n >\n <View style={styles.container}>\n <EditingIndicator />\n <ReplyIndicator />\n <FlaggedContentBanner />\n <View style={styles.textInputContainer}>{children}</View>\n </View>\n </MessageFormContext.Provider>\n )\n}\n\nfunction MessageFormAttachments() {\n const styles = useMessageFormStyles()\n const { attachmentUploader } = React.useContext(MessageFormContext)\n const numberOfAttachments = attachmentUploader?.attachments?.length || 0\n const attachments = attachmentUploader?.attachments || []\n\n if (numberOfAttachments === 0) {\n return null\n }\n\n return (\n <ScrollView\n horizontal\n showsHorizontalScrollIndicator={false}\n contentContainerStyle={styles.messageFormAttachments}\n >\n {attachments.map(attachment => {\n const kind = pickAttachmentPreviewKind(attachment.file.type, attachment.file.name)\n const remove = () => attachmentUploader?.removeAttachment(attachment)\n\n if (kind === 'video') {\n return (\n <MessageFormAttachmentVideo\n key={attachment.file.uri}\n name={attachment.file.name}\n status={attachment.status}\n removeAttachment={remove}\n />\n )\n }\n\n if (kind === 'file') {\n return (\n <MessageFormAttachmentFile\n key={attachment.file.uri}\n name={attachment.file.name}\n contentType={attachment.file.type}\n status={attachment.status}\n removeAttachment={remove}\n />\n )\n }\n\n return (\n <MessageFormAttachmentImage\n key={attachment.file.uri}\n uri={attachment.file.uri}\n alt={attachment.file.name}\n status={attachment.status}\n width={attachment.file.width}\n height={attachment.file.height}\n removeAttachment={remove}\n />\n )\n })}\n </ScrollView>\n )\n}\n\nfunction getFileType(attachments: FileAttachment[]): 'image' | 'video' | 'file' {\n const kinds = new Set(\n attachments.map(({ file }) => {\n if (file.type.startsWith('image/')) return 'image'\n if (file.type.startsWith('video/')) return 'video'\n return 'file'\n })\n )\n return kinds.size === 1 ? [...kinds][0] : 'file'\n}\n\nfunction FlaggedContentBanner() {\n const styles = useMessageFormStyles()\n const { attachmentUploader } = React.useContext(MessageFormContext)\n const flaggedAttachments = attachmentUploader?.attachments.filter(a => a.flagged) ?? []\n const flaggedCount = flaggedAttachments.length\n\n if (flaggedCount === 0) return null\n\n const isSingular = flaggedCount === 1\n const fileType = getFileType(flaggedAttachments)\n const buttonTitle = isSingular ? `Remove flagged ${fileType}` : `Remove flagged ${fileType}s`\n\n return (\n <View style={styles.flaggedBannerContainer}>\n <BannerPrimitive.Root appearance=\"error\">\n <BannerPrimitive.StaticLayout>\n <BannerPrimitive.StatusIcon />\n <BannerPrimitive.Content>\n <BannerMessage isSingular={isSingular} fileType={fileType} />\n <View style={styles.flaggedBannerButtonRow}>\n <Button\n title={buttonTitle}\n size=\"sm\"\n appearance=\"danger\"\n onPress={() => attachmentUploader?.removeFlaggedAttachments()}\n accessibilityLabel={buttonTitle}\n />\n </View>\n </BannerPrimitive.Content>\n </BannerPrimitive.StaticLayout>\n </BannerPrimitive.Root>\n </View>\n )\n}\n\nfunction BannerMessage({ isSingular, fileType }: { isSingular: boolean; fileType: string }) {\n const styles = useMessageFormStyles()\n\n const contentGuidelinesLink = (\n <Text\n style={styles.flaggedBannerLink}\n onPress={() =>\n Linking.openURL(\n 'https://www.planningcenter.com/terms#:~:text=4.%20Acceptable%20Use%20of%20Planning%20Center'\n )\n }\n accessibilityRole=\"link\"\n >\n content guidelines\n </Text>\n )\n\n return isSingular ? (\n <Text style={styles.flaggedBannerText}>\n An uploaded {fileType} was flagged because it doesn't meet our {contentGuidelinesLink}. Please\n remove before proceeding.\n </Text>\n ) : (\n <Text style={styles.flaggedBannerText}>\n Some uploaded {fileType}s were flagged because they don't meet our {contentGuidelinesLink}.\n Please remove them before proceeding.\n </Text>\n )\n}\n\nfunction MessageFormInput() {\n const styles = useMessageFormStyles()\n const theme = useTheme()\n const fontScale = useFontScale()\n const { text, setText, onSubmit, inputEditable, usingGiphy, attachmentUploader, replyRootId } =\n React.useContext(MessageFormContext)\n const attachmentError = attachmentUploader?.errorMessage\n\n const broadcastTypingStatus = useBroadcastTypingStatus()\n\n const handleTextChange = (newText: string) => {\n setText(newText)\n\n if (newText.length > 0) {\n broadcastTypingStatus()\n }\n }\n\n const compactPlaceholder = fontScale >= PLACEHOLDER_FONT_SCALE_THRESHOLD\n let placeholder = compactPlaceholder ? 'Message' : 'Send a message'\n if (replyRootId) {\n placeholder = compactPlaceholder ? 'Reply' : 'Send a reply'\n }\n if (usingGiphy) {\n placeholder = compactPlaceholder ? 'Search' : 'Search GIFs'\n }\n\n return (\n <View style={styles.textInputBoundary}>\n <MessageFormAttachments />\n {attachmentError ? <Text style={styles.inputErrorMessage}>{attachmentError}</Text> : null}\n <View style={styles.textInputRow}>\n {usingGiphy ? (\n <View style={styles.giphyBadge}>\n <Icon name=\"general.bolt\" style={styles.giphyBadgeIcon} />\n <Text variant=\"tertiary\" style={styles.giphyBadgeText}>\n /giphy\n </Text>\n </View>\n ) : null}\n\n <TextInput\n testID=\"message-composer-input\"\n style={[styles.textInput, usingGiphy && styles.textInputWithGiphy]}\n multiline={true}\n placeholder={placeholder}\n placeholderTextColor={theme.colors.textColorDefaultPlaceholder}\n onChangeText={handleTextChange}\n value={text}\n maxLength={usingGiphy ? GIPHY_MAX_LENGTH : MAX_MESSAGE_LENGTH}\n onSubmitEditing={onSubmit}\n submitBehavior={usingGiphy ? 'submit' : 'newline'}\n editable={inputEditable}\n />\n </View>\n </View>\n )\n}\n\nconst SUBMIT_ACCESSIBILITY_LABEL_MAP = {\n giphy: 'Search Giphy',\n editing: 'Save changes',\n send: 'Send message',\n} as const\n\nconst SUBMIT_ICON_NAME_MAP = {\n giphy: 'general.search',\n editing: 'general.check',\n send: 'general.upArrow',\n} as const\n\nfunction MessageFormSubmitBtn() {\n const { onSubmit, disabled, usingGiphy, currentlyEditingMessage } =\n React.useContext(MessageFormContext)\n const styles = useMessageFormStyles()\n const { colors } = useTheme()\n\n const formStateKey = usingGiphy ? 'giphy' : currentlyEditingMessage ? 'editing' : 'send'\n const colorKey = disabled ? 'disabled' : 'interaction'\n const interactionStart = colors.buttonStart || colors.interaction\n const interactionEnd = colors.buttonEnd || colors.interaction\n const colorMap = {\n disabled: [\n colors.fillColorButtonNeutralSolidDisabled,\n colors.fillColorButtonNeutralSolidDisabled,\n ],\n interaction: [interactionStart, interactionEnd],\n }\n\n const androidRippleColor = useCreateAndroidRippleColor({ color: colorMap[colorKey][0] })\n const gradientColors = colorMap[colorKey] as [string, string]\n const iconStyles = [styles.submitIcon, disabled && styles.submitIconDisabled]\n\n return (\n <Pressable\n disabled={disabled}\n onPress={onSubmit}\n accessibilityRole=\"button\"\n accessibilityLabel={SUBMIT_ACCESSIBILITY_LABEL_MAP[formStateKey]}\n style={({ pressed }) => [\n styles.submitPressableWrapper,\n pressed && platformPressedOpacityStyle,\n ]}\n android_ripple={{ color: androidRippleColor, borderless: false, foreground: true }}\n >\n <LinearGradient\n start={{ x: 0.1, y: 0.1 }}\n end={{ x: 0.9, y: 0.9 }}\n colors={gradientColors}\n style={styles.submitGradientWrapper}\n >\n <Icon\n name={SUBMIT_ICON_NAME_MAP[formStateKey]}\n style={iconStyles}\n accessibilityElementsHidden={true}\n />\n </LinearGradient>\n </Pressable>\n )\n}\n\nfunction MessageFormAttachmentPicker() {\n const styles = useMessageFormStyles()\n const { usingGiphy, attachmentUploader, currentlyEditingMessage } =\n React.useContext(MessageFormContext)\n const { allowedMimeTypes } = useChatConfiguration()\n const [isOpen, setIsOpen] = useState(false)\n\n function uploadImagePickerResult(result: ImagePickerResult) {\n if (result.canceled) {\n return\n }\n\n const filteredAssets = result.assets\n .filter(asset => {\n return asset.fileSize && asset.mimeType && asset.uri\n })\n .map(asset => {\n return {\n uri: asset.uri,\n name: asset.fileName || asset.uri.split('/').pop() || 'attachment',\n type: asset.mimeType as string,\n size: asset.fileSize as number,\n height: asset.height,\n width: asset.width,\n }\n })\n\n attachmentUploader?.handleFilesAttached(filteredAssets)\n }\n\n function uploadDocumentPickerResult(result: DocumentPickerResult) {\n if (result.canceled) return\n\n const filteredAssets = result.assets\n .filter(asset => asset.size != null && asset.uri)\n .map(asset => ({\n uri: asset.uri,\n name: asset.name,\n type: asset.mimeType || 'application/octet-stream',\n size: asset.size as number,\n }))\n\n attachmentUploader?.handleFilesAttached(filteredAssets)\n }\n\n const openCamera = async () => {\n setIsOpen(false)\n let result = await ImagePicker.openCameraAsync()\n if (!result.canceled) {\n uploadImagePickerResult(result)\n }\n }\n\n const pickImage = async () => {\n setIsOpen(false)\n let result = await ImagePicker.openImageLibraryAsync()\n if (!result.canceled) {\n uploadImagePickerResult(result)\n }\n }\n\n const pickFile = async () => {\n setIsOpen(false)\n let result = await DocumentPicker.openAsync({ mimeTypes: allowedMimeTypes })\n if (!result.canceled) {\n uploadDocumentPickerResult(result)\n }\n }\n\n if (usingGiphy || currentlyEditingMessage) {\n return null\n }\n\n return (\n <View style={styles.attachmentPicker}>\n {isOpen && (\n <View style={styles.attachmentPickerButtonsContainer}>\n <IconButton\n accessibilityLabel=\"Take a photo\"\n accessibilityHint=\"Opens your camera\"\n size=\"lg\"\n appearance=\"neutral\"\n name=\"chat.camera\"\n onPress={openCamera}\n style={styles.attachmentPickerButton}\n />\n <IconButton\n accessibilityLabel=\"Choose a photo\"\n accessibilityHint=\"Opens your photo gallery\"\n size=\"lg\"\n appearance=\"neutral\"\n name=\"churchCenter.photosIos\"\n onPress={pickImage}\n style={styles.attachmentPickerButton}\n />\n {DocumentPicker.configured && (\n <IconButton\n accessibilityLabel=\"Attach a file\"\n accessibilityHint=\"Opens your files to attach documents\"\n size=\"lg\"\n appearance=\"neutral\"\n name=\"general.blankFile\"\n onPress={pickFile}\n style={styles.attachmentPickerButton}\n />\n )}\n </View>\n )}\n <IconButton\n accessibilityLabel=\"File Menu\"\n accessibilityHint=\"Opens options to attach or take a photo\"\n size=\"lg\"\n appearance=\"neutral\"\n name=\"general.paperclip\"\n onPress={() => setIsOpen(!isOpen)}\n style={styles.formButton}\n />\n </View>\n )\n}\n\nfunction MessageFormCommands() {\n const { text, canGiphy, usingGiphy, setUsingGiphy } = React.useContext(MessageFormContext)\n const styles = useMessageFormStyles()\n\n if (!canGiphy) {\n return null\n }\n\n if (usingGiphy) {\n return (\n <IconButton\n accessibilityLabel=\"Exit Giphy Search\"\n accessibilityHint=\"Changes input back to a text field for sending messages\"\n size=\"lg\"\n appearance=\"neutral\"\n name=\"general.xCircle\"\n onPress={() => setUsingGiphy(false)}\n style={styles.formButton}\n />\n )\n }\n\n return (\n <IconButton\n accessibilityLabel=\"Search Giphy\"\n accessibilityHint=\"Changes input into a search field for finding Giphys\"\n size=\"lg\"\n appearance=\"neutral\"\n name={'general.bolt'}\n onPress={() => setUsingGiphy(true)}\n disabled={text.length > GIPHY_MAX_LENGTH}\n style={styles.formButton}\n />\n )\n}\n\nfunction EditingIndicator() {\n const { currentlyEditingMessage, reset } = React.useContext(MessageFormContext)\n\n if (!currentlyEditingMessage) {\n return null\n }\n\n return (\n <FormIndicatorRow\n title=\"Editing message\"\n buttonText=\"Cancel\"\n accessibilityHint=\"Exit message editing mode without saving\"\n iconName=\"accounts.editor\"\n onPress={() => reset()}\n />\n )\n}\n\nfunction ReplyIndicator() {\n const { replyRootId, replyRootAuthorFirstName } = React.useContext(MessageFormContext)\n const navigation = useNavigation()\n const title = replyRootAuthorFirstName ? `Reply to ${replyRootAuthorFirstName}` : 'Reply'\n\n if (!replyRootId) return null\n\n return (\n <FormIndicatorRow\n title={title}\n buttonText=\"Exit replies\"\n accessibilityHint=\"Return to the main conversation\"\n iconName=\"registrations.undo\"\n onPress={() => navigation.goBack()}\n />\n )\n}\n\ninterface FormIndicatorRowProps {\n title: string\n buttonText: string\n accessibilityHint: string\n onPress: () => void\n iconName: IconString\n}\n\nfunction FormIndicatorRow({\n title,\n buttonText,\n accessibilityHint,\n iconName,\n onPress,\n}: FormIndicatorRowProps) {\n const styles = useMessageFormStyles()\n const scalableNumberOfLines = useScalableNumberOfLines(1)\n\n return (\n <View style={styles.formIndicatorRow}>\n <View style={styles.formIndicatorRowTitleContainer}>\n <Icon name={iconName} size={16} style={styles.formIndicatorRowIcon} />\n <Heading\n variant=\"h4\"\n style={styles.formIndicatorRowTitle}\n numberOfLines={scalableNumberOfLines}\n maxFontSizeMultiplier={MAX_FONT_SIZE_MULTIPLIER_LANDMARK}\n >\n {title}\n </Heading>\n </View>\n <TextButton\n onPress={onPress}\n accessibilityHint={accessibilityHint}\n maxFontSizeMultiplier={MAX_FONT_SIZE_MULTIPLIER_LANDMARK}\n >\n {buttonText}\n </TextButton>\n </View>\n )\n}\n\nconst useMessageFormStyles = () => {\n const theme = useTheme()\n const navigationTheme = useNavigationTheme()\n const buttonSize = 38\n\n const giphyBadgeBackgroundColor = useInteractionTintedBackgroundColor()\n\n return StyleSheet.create({\n container: {\n borderColor: theme.colors.borderColorDefaultDim,\n borderTopWidth: 1,\n padding: 12,\n },\n textInputContainer: {\n backgroundColor: navigationTheme.colors.card,\n flexDirection: 'row',\n alignItems: 'flex-end',\n gap: 16,\n },\n textInputBoundary: {\n overflow: 'hidden',\n borderRadius: 24,\n borderWidth: 1,\n borderColor: theme.colors.fillColorNeutral050Base,\n flex: 1,\n gap: 8,\n },\n textInputRow: {\n flexDirection: 'row',\n alignItems: 'center',\n gap: 8,\n },\n textInput: {\n paddingBottom: 8,\n // TODO: Remove iOS's extra top padding and use `textAlignVertical: \"center\"` for both platforms when services-react-native upgrades to v0.74.5 or greater.\n paddingTop: Platform.select({\n ios: 9, // Extra padding compensates for `textAlignVertical` not working in Services iOS.\n default: 8,\n }),\n textAlignVertical: Platform.select({\n ios: 'top', // Services iOS doesn't support `textAlignVertical` due to its lower React Native version of 0.72.14. (React Native 0.74.5+ seems to support this style.)\n default: 'center', // centers the text vertically for multiline TextInput.\n }),\n paddingHorizontal: 16,\n color: theme.colors.textColorDefaultPrimary,\n justifyContent: 'center',\n flex: 1,\n fontSize: 16,\n maxHeight: 200,\n },\n textInputWithGiphy: {\n paddingLeft: 0,\n },\n giphyBadge: {\n backgroundColor: giphyBadgeBackgroundColor,\n borderRadius: 24,\n paddingVertical: 4,\n paddingHorizontal: 12,\n marginLeft: 6,\n flexDirection: 'row',\n alignItems: 'center',\n gap: 4,\n },\n giphyBadgeText: {\n color: theme.colors.interaction,\n marginBottom: 1,\n },\n giphyBadgeIcon: {\n color: theme.colors.interaction,\n },\n formButton: {\n height: buttonSize,\n },\n submitPressableWrapper: {\n borderRadius: buttonSize,\n overflow: 'hidden',\n },\n submitGradientWrapper: {\n flexDirection: 'row',\n justifyContent: 'center',\n alignItems: 'center',\n borderRadius: buttonSize,\n height: buttonSize,\n width: buttonSize,\n },\n submitIcon: {\n fontSize: 16,\n color: tokens.colorNeutral100White,\n },\n submitIconDisabled: {\n color: theme.colors.iconColorDefaultDisabled,\n },\n attachmentPicker: {\n position: 'relative',\n },\n attachmentPickerButtonsContainer: {\n position: 'absolute',\n left: 0,\n bottom: 40,\n zIndex: 10,\n gap: 12,\n },\n attachmentPickerButton: {\n backgroundColor: theme.colors.fillColorNeutral070,\n borderRadius: 20,\n height: buttonSize,\n width: buttonSize,\n elevation: 3,\n ...Platform.select({\n ios: {\n borderWidth: 1,\n borderColor: theme.colors.borderColorDefaultBase,\n },\n default: null,\n }),\n },\n messageFormAttachments: {\n overflow: 'hidden',\n paddingHorizontal: 12,\n paddingTop: 12,\n gap: 8,\n },\n inputErrorMessage: {\n color: theme.colors.statusErrorText,\n fontSize: 14,\n paddingHorizontal: 16,\n paddingVertical: 4,\n },\n flaggedBannerContainer: {\n paddingBottom: 12,\n },\n flaggedBannerText: {\n color: theme.colors.textColorDefaultPrimary,\n fontSize: 14,\n },\n flaggedBannerLink: {\n color: theme.colors.textColorDefaultPrimary,\n fontSize: 14,\n textDecorationLine: 'underline' as const,\n },\n flaggedBannerButtonRow: {\n flexDirection: 'row',\n justifyContent: 'flex-end',\n marginTop: 4,\n },\n formIndicatorRow: {\n flexDirection: 'row',\n alignItems: 'center',\n justifyContent: 'space-between',\n gap: 8,\n paddingBottom: 12,\n },\n formIndicatorRowTitleContainer: {\n flexDirection: 'row',\n alignItems: 'center',\n gap: 8,\n flex: 1,\n },\n formIndicatorRowIcon: {\n color: theme.colors.iconColorDefaultSecondary,\n },\n formIndicatorRowTitle: {\n fontWeight: platformFontWeightMedium,\n textTransform: 'none',\n flexShrink: 1,\n },\n })\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"message_form.js","names":["useNavigation","useTheme","useNavigationTheme","useRoute","React","useCallback","useContext","useEffect","useState","Linking","Platform","Pressable","ScrollView","StyleSheet","TextInput","View","Keyboard","LinearGradient","Heading","Icon","IconButton","Text","TextButton","ChatContext","useCreateAndroidRippleColor","useInteractionTintedBackgroundColor","useScalableNumberOfLines","useFontScale","useAttachmentUploader","useBroadcastTypingStatus","useChatConfiguration","useMessageCreateOrUpdate","useMessageDraft","MAX_FONT_SIZE_MULTIPLIER_LANDMARK","platformFontWeightMedium","platformPressedOpacityStyle","pickAttachmentPreviewKind","canSubmitMessage","isInputEditable","hasMessageText","stripEmptyTextCharacters","DocumentPicker","Haptic","ImagePicker","tokens","Button","BannerPrimitive","MessageFormAttachmentFile","MessageFormAttachmentImage","MessageFormAttachmentVideo","jsx","_jsx","jsxs","_jsxs","MessageForm","Root","MessageFormRoot","MessageFormInput","SubmitButton","MessageFormSubmitBtn","AttachmentPicker","MessageFormAttachmentPicker","Commands","MessageFormCommands","MessageFormContext","createContext","text","setText","_text","onSubmit","disabled","inputEditable","canGiphy","usingGiphy","setUsingGiphy","_usingGiphy","currentlyEditingMessage","reset","replyRootId","undefined","replyRootAuthorFirstName","GIPHY_MAX_LENGTH","MAX_MESSAGE_LENGTH","PLACEHOLDER_FONT_SCALE_THRESHOLD","t0","$","_c","conversation","children","onFlaggedInMessageForm","onBeforeSubmit","giphyApiKey","styles","useMessageFormStyles","draft","saveDraft","clearDraft","t1","navigation","route","t2","t3","id","conversationId","message","status","isPending","resetMutation","mutateAsync","t4","attachments","t5","draftAttachments","attachmentUploader","resetAttachmentUploader","t6","setParams","editing_message_id","t7","t8","startsWith","t10","t9","t11","t12","params","clear_input","t13","t14","timeoutId","setTimeout","clearTimeout","t15","t16","pendingUploads","t17","flaggedAttachmentCount","t18","attachmentIds","length","conversationDisabled","hasFlaggedAttachments","hasText","hasSendableAttachments","canSubmit","t19","t20","t21","isVisible","OS","navigate","conversation_id","search_term","keyboardListener","addListener","remove","navigateToSendGiphyAfterKeyboardHides","t22","State","blurTextInput","currentlyFocusedInput","impactLight","attachmentsForSubmit","filter","_temp","map","_temp2","messageText","handleSubmit","t23","t24","t25","t26","t27","t28","Symbol","for","EditingIndicator","ReplyIndicator","FlaggedContentBanner","t29","textInputContainer","style","t30","container","t31","Provider","value","attachment","type","file","a","MessageFormAttachments","numberOfAttachments","messageFormAttachments","kind","name","removeAttachment","uri","contentType","alt","width","height","horizontal","showsHorizontalScrollIndicator","contentContainerStyle","getFileType","kinds","Set","size","isSingular","bb0","flaggedAttachments","_temp3","flaggedCount","fileType","buttonTitle","StatusIcon","BannerMessage","removeFlaggedAttachments","appearance","onPress","flaggedBannerButtonRow","StaticLayout","Content","flaggedBannerContainer","flagged","flaggedBannerLink","_temp4","accessibilityRole","contentGuidelinesLink","flaggedBannerText","openURL","theme","fontScale","attachmentError","errorMessage","broadcastTypingStatus","newText","handleTextChange","compactPlaceholder","placeholder","inputErrorMessage","giphyBadge","giphyBadgeIcon","giphyBadgeText","variant","textInputWithGiphy","textInput","colors","textColorDefaultPlaceholder","testID","multiline","placeholderTextColor","maxLength","submitBehavior","textInputRow","textInputBoundary","SUBMIT_ACCESSIBILITY_LABEL_MAP","giphy","editing","send","SUBMIT_ICON_NAME_MAP","formStateKey","colorKey","interactionStart","buttonStart","interaction","interactionEnd","buttonEnd","fillColorButtonNeutralSolidDisabled","colorMap","color","androidRippleColor","gradientColors","submitIconDisabled","submitIcon","iconStyles","submitPressableWrapper","pressed","borderless","foreground","x","y","accessibilityElementsHidden","submitGradientWrapper","start","end","accessibilityLabel","android_ripple","allowedMimeTypes","isOpen","setIsOpen","uploadImagePickerResult","result","canceled","filteredAssets","assets","_temp5","_temp6","handleFilesAttached","uploadDocumentPickerResult","result_0","filteredAssets_0","_temp7","_temp8","result_1","openCameraAsync","openCamera","result_2","openImageLibraryAsync","pickImage","result_3","openAsync","mimeTypes","pickFile","attachmentPickerButton","attachmentPickerButtonsContainer","accessibilityHint","configured","formButton","attachmentPicker","asset_2","asset","mimeType","asset_1","asset_0","fileName","split","pop","fileSize","FormIndicatorRow","title","buttonText","iconName","goBack","scalableNumberOfLines","formIndicatorRowIcon","formIndicatorRowTitle","formIndicatorRowTitleContainer","formIndicatorRow","navigationTheme","giphyBadgeBackgroundColor","card","borderColorDefaultBase","borderColorDefaultDim","fillColorNeutral050Base","fillColorNeutral070","iconColorDefaultDisabled","iconColorDefaultSecondary","statusErrorText","textColorDefaultPrimary","create","borderColor","borderTopWidth","padding","backgroundColor","flexDirection","alignItems","gap","overflow","borderRadius","borderWidth","flex","paddingBottom","paddingTop","select","ios","default","textAlignVertical","paddingHorizontal","justifyContent","fontSize","maxHeight","paddingLeft","paddingVertical","marginLeft","marginBottom","colorNeutral100White","position","left","bottom","zIndex","elevation","textDecorationLine","marginTop","fontWeight","textTransform","flexShrink"],"sources":["../../../src/components/conversation/message_form.tsx"],"sourcesContent":["import { useNavigation, useTheme as useNavigationTheme, useRoute } from '@react-navigation/native'\nimport React, { useCallback, useContext, useEffect, useState } from 'react'\nimport {\n Linking,\n Platform,\n Pressable,\n ScrollView,\n StyleSheet,\n TextInput,\n View,\n ViewProps,\n Keyboard,\n} from 'react-native'\nimport LinearGradient from 'react-native-linear-gradient'\nimport { Heading, Icon, IconButton, IconString, Text, TextButton } from '../../components'\nimport { ChatContext } from '../../contexts/chat_context'\nimport {\n useCreateAndroidRippleColor,\n useTheme,\n useInteractionTintedBackgroundColor,\n useScalableNumberOfLines,\n useFontScale,\n} from '../../hooks'\nimport { useAttachmentUploader } from '../../hooks/use_attachment_uploader'\nimport { useBroadcastTypingStatus } from '../../hooks/use_broadcast_typing_status'\nimport { useChatConfiguration } from '../../hooks/use_chat_configuration'\nimport { useMessageCreateOrUpdate } from '../../hooks/use_message_create_or_update'\nimport { useMessageDraft } from '../../hooks/use_message_draft'\nimport { ConversationScreenProps } from '../../screens/conversation_screen'\nimport { ConversationResource, MessageResource } from '../../types'\nimport {\n DenormalizedAttachmentResourceForCreate,\n DenormalizedMessageAttachmentResourceForCreate,\n FileAttachment,\n} from '../../types/resources/denormalized_attachment_resource_for_create'\nimport {\n MAX_FONT_SIZE_MULTIPLIER_LANDMARK,\n platformFontWeightMedium,\n platformPressedOpacityStyle,\n} from '../../utils'\nimport { pickAttachmentPreviewKind } from '../../utils/attachment_kind'\nimport { canSubmitMessage } from '../../utils/can_submit_message'\nimport { isInputEditable } from '../../utils/is_input_editable'\nimport { hasMessageText, stripEmptyTextCharacters } from '../../utils/message_text'\nimport {\n DocumentPicker,\n DocumentPickerResult,\n Haptic,\n ImagePicker,\n ImagePickerResult,\n} from '../../utils/native_adapters'\nimport { tokens } from '../../vendor/tapestry/tokens'\nimport { Button } from '../display/button'\nimport BannerPrimitive from '../primitive/banner_primitive'\nimport { MessageFormAttachmentFile } from './message_form/message_form_attachment_file'\nimport { MessageFormAttachmentImage } from './message_form/message_form_attachment_image'\nimport { MessageFormAttachmentVideo } from './message_form/message_form_attachment_video'\n\nexport const MessageForm = {\n Root: MessageFormRoot,\n\n TextInput: MessageFormInput,\n SubmitButton: MessageFormSubmitBtn,\n AttachmentPicker: MessageFormAttachmentPicker,\n Commands: MessageFormCommands,\n}\n\ninterface MessagesFormRootProps extends ViewProps {\n conversation: ConversationResource\n currentlyEditingMessage?: MessageResource | null\n replyRootId?: string | null\n replyRootAuthorFirstName?: string | null\n onFlaggedInMessageForm?: (id: string) => void\n onBeforeSubmit?: () => void\n}\n\nconst MessageFormContext = React.createContext<{\n text: string\n setText: (text: string) => void\n onSubmit: () => void\n disabled: boolean\n inputEditable: boolean\n canGiphy: boolean\n usingGiphy: boolean\n setUsingGiphy: (usingGiphy: boolean) => void\n attachmentUploader?: ReturnType<typeof useAttachmentUploader>\n currentlyEditingMessage?: MessageResource | null\n reset: () => void\n replyRootId?: string | null\n replyRootAuthorFirstName?: string | null\n}>({\n text: '',\n setText: (_text: string) => {},\n onSubmit: () => {},\n disabled: false,\n inputEditable: true,\n canGiphy: false,\n usingGiphy: false,\n setUsingGiphy: (_usingGiphy: boolean) => {},\n currentlyEditingMessage: null,\n reset: () => {},\n replyRootId: undefined,\n replyRootAuthorFirstName: undefined,\n})\n\nconst GIPHY_MAX_LENGTH = 50\nconst MAX_MESSAGE_LENGTH = 5000\nconst PLACEHOLDER_FONT_SCALE_THRESHOLD = 1.7\n\nfunction MessageFormRoot({\n conversation,\n currentlyEditingMessage,\n children,\n replyRootId,\n replyRootAuthorFirstName,\n onFlaggedInMessageForm,\n onBeforeSubmit,\n}: MessagesFormRootProps) {\n const { giphyApiKey } = useContext(ChatContext)\n const canGiphy = !!giphyApiKey && !currentlyEditingMessage\n const styles = useMessageFormStyles()\n const { draft, saveDraft, clearDraft } = useMessageDraft()\n const [text, setText] = React.useState(() => {\n // Initialize from draft only when not editing a message\n return currentlyEditingMessage ? '' : draft?.text || ''\n })\n const [usingGiphy, setUsingGiphy] = useState(false)\n const navigation = useNavigation()\n const route = useRoute() as ConversationScreenProps['route']\n const {\n status,\n isPending,\n reset: resetMutation,\n mutateAsync,\n } = useMessageCreateOrUpdate({\n conversationId: conversation.id,\n message: currentlyEditingMessage || undefined,\n replyRootId,\n })\n const attachmentUploader = useAttachmentUploader({\n conversationId: conversation.id,\n draftAttachments: currentlyEditingMessage ? undefined : draft?.attachments,\n onFlaggedInMessageForm,\n })\n const resetAttachmentUploader = attachmentUploader.reset\n\n const reset = useCallback(() => {\n resetAttachmentUploader()\n resetMutation()\n setText('')\n setUsingGiphy(false)\n if (!currentlyEditingMessage) {\n clearDraft()\n }\n navigation.setParams({\n editing_message_id: null,\n })\n }, [resetAttachmentUploader, resetMutation, navigation, currentlyEditingMessage, clearDraft])\n\n useEffect(() => {\n if (canGiphy && !usingGiphy && text.startsWith('/giphy ')) {\n setUsingGiphy(true)\n setText('')\n }\n }, [canGiphy, text, usingGiphy])\n\n useEffect(() => {\n switch (status) {\n case 'success':\n reset()\n break\n }\n }, [reset, status])\n\n useEffect(() => {\n if (route.params.clear_input) {\n reset()\n navigation.setParams({ ...route.params, clear_input: false })\n }\n }, [reset, navigation, route.params])\n\n // Save draft when text or attachments change (debounced)\n useEffect(() => {\n // Don't save drafts when editing a message\n if (currentlyEditingMessage) return\n\n const timeoutId = setTimeout(() => {\n saveDraft(text, attachmentUploader.attachments)\n }, 500)\n\n return () => clearTimeout(timeoutId)\n }, [text, attachmentUploader.attachments, saveDraft, currentlyEditingMessage])\n\n const canSubmit = canSubmitMessage({\n isPending,\n conversationDisabled: conversation.disabled ?? false,\n pendingUploads: !!attachmentUploader?.pendingUploads,\n hasFlaggedAttachments: !!attachmentUploader?.flaggedAttachmentCount,\n hasText: hasMessageText(text),\n hasSendableAttachments: !!attachmentUploader?.attachmentIds?.length,\n })\n const disabled = !canSubmit\n const inputEditable = isInputEditable({\n isPending,\n conversationDisabled: conversation.disabled ?? false,\n })\n\n /*\n Opening a FormSheet on Android while the keyboard is visible breaks the FormSheet's height & position.\n This is a workaround to ensure we don't open the FormSheet while the keyboard is visible.\n */\n const navigateToSendGiphyAfterKeyboardHides = useCallback(() => {\n if (!Keyboard.isVisible() || Platform.OS === 'ios') {\n navigation.navigate('SendGiphy', {\n conversation_id: conversation.id,\n search_term: text,\n })\n } else {\n const keyboardListener = Keyboard.addListener('keyboardDidHide', () => {\n navigation.navigate('SendGiphy', {\n conversation_id: conversation.id,\n search_term: text,\n })\n keyboardListener?.remove()\n })\n }\n }, [conversation.id, navigation, text])\n\n const handleSubmit = () => {\n if (!canSubmit) return\n\n if (canGiphy && usingGiphy) {\n TextInput.State.blurTextInput(TextInput.State.currentlyFocusedInput())\n Haptic.impactLight()\n navigateToSendGiphyAfterKeyboardHides()\n } else {\n let attachmentsForSubmit: DenormalizedAttachmentResourceForCreate[] =\n attachmentUploader.attachments\n .filter(a => a.status === 'success' && a.id)\n .map(\n (attachment): DenormalizedMessageAttachmentResourceForCreate => ({\n type: 'MessageAttachment',\n id: attachment.id as string,\n file: attachment.file,\n })\n )\n const messageText = stripEmptyTextCharacters(text)\n\n if (currentlyEditingMessage) {\n mutateAsync({ text: messageText })\n reset()\n } else {\n onBeforeSubmit?.()\n mutateAsync({ text: messageText, attachments: attachmentsForSubmit })\n reset()\n }\n }\n }\n\n useEffect(() => {\n if (currentlyEditingMessage) {\n setText(currentlyEditingMessage.text || '')\n }\n }, [currentlyEditingMessage])\n\n return (\n <MessageFormContext.Provider\n value={{\n text,\n setText,\n onSubmit: handleSubmit,\n disabled,\n inputEditable,\n canGiphy,\n usingGiphy,\n setUsingGiphy,\n attachmentUploader,\n currentlyEditingMessage,\n reset,\n replyRootId,\n replyRootAuthorFirstName,\n }}\n >\n <View style={styles.container}>\n <EditingIndicator />\n <ReplyIndicator />\n <FlaggedContentBanner />\n <View style={styles.textInputContainer}>{children}</View>\n </View>\n </MessageFormContext.Provider>\n )\n}\n\nfunction MessageFormAttachments() {\n const styles = useMessageFormStyles()\n const { attachmentUploader } = React.useContext(MessageFormContext)\n const numberOfAttachments = attachmentUploader?.attachments?.length || 0\n const attachments = attachmentUploader?.attachments || []\n\n if (numberOfAttachments === 0) {\n return null\n }\n\n return (\n <ScrollView\n horizontal\n showsHorizontalScrollIndicator={false}\n contentContainerStyle={styles.messageFormAttachments}\n >\n {attachments.map(attachment => {\n const kind = pickAttachmentPreviewKind(attachment.file.type, attachment.file.name)\n const remove = () => attachmentUploader?.removeAttachment(attachment)\n\n if (kind === 'video') {\n return (\n <MessageFormAttachmentVideo\n key={attachment.file.uri}\n name={attachment.file.name}\n status={attachment.status}\n removeAttachment={remove}\n />\n )\n }\n\n if (kind === 'file') {\n return (\n <MessageFormAttachmentFile\n key={attachment.file.uri}\n name={attachment.file.name}\n contentType={attachment.file.type}\n status={attachment.status}\n removeAttachment={remove}\n />\n )\n }\n\n return (\n <MessageFormAttachmentImage\n key={attachment.file.uri}\n uri={attachment.file.uri}\n alt={attachment.file.name}\n status={attachment.status}\n width={attachment.file.width}\n height={attachment.file.height}\n removeAttachment={remove}\n />\n )\n })}\n </ScrollView>\n )\n}\n\nfunction getFileType(attachments: FileAttachment[]): 'image' | 'video' | 'file' {\n const kinds = new Set(\n attachments.map(({ file }) => {\n if (file.type.startsWith('image/')) return 'image'\n if (file.type.startsWith('video/')) return 'video'\n return 'file'\n })\n )\n return kinds.size === 1 ? [...kinds][0] : 'file'\n}\n\nfunction FlaggedContentBanner() {\n const styles = useMessageFormStyles()\n const { attachmentUploader } = React.useContext(MessageFormContext)\n const flaggedAttachments = attachmentUploader?.attachments.filter(a => a.flagged) ?? []\n const flaggedCount = flaggedAttachments.length\n\n if (flaggedCount === 0) return null\n\n const isSingular = flaggedCount === 1\n const fileType = getFileType(flaggedAttachments)\n const buttonTitle = isSingular ? `Remove flagged ${fileType}` : `Remove flagged ${fileType}s`\n\n return (\n <View style={styles.flaggedBannerContainer}>\n <BannerPrimitive.Root appearance=\"error\">\n <BannerPrimitive.StaticLayout>\n <BannerPrimitive.StatusIcon />\n <BannerPrimitive.Content>\n <BannerMessage isSingular={isSingular} fileType={fileType} />\n <View style={styles.flaggedBannerButtonRow}>\n <Button\n title={buttonTitle}\n size=\"sm\"\n appearance=\"danger\"\n onPress={() => attachmentUploader?.removeFlaggedAttachments()}\n accessibilityLabel={buttonTitle}\n />\n </View>\n </BannerPrimitive.Content>\n </BannerPrimitive.StaticLayout>\n </BannerPrimitive.Root>\n </View>\n )\n}\n\nfunction BannerMessage({ isSingular, fileType }: { isSingular: boolean; fileType: string }) {\n const styles = useMessageFormStyles()\n\n const contentGuidelinesLink = (\n <Text\n style={styles.flaggedBannerLink}\n onPress={() =>\n Linking.openURL(\n 'https://www.planningcenter.com/terms#:~:text=4.%20Acceptable%20Use%20of%20Planning%20Center'\n )\n }\n accessibilityRole=\"link\"\n >\n content guidelines\n </Text>\n )\n\n return isSingular ? (\n <Text style={styles.flaggedBannerText}>\n An uploaded {fileType} was flagged because it doesn't meet our {contentGuidelinesLink}. Please\n remove before proceeding.\n </Text>\n ) : (\n <Text style={styles.flaggedBannerText}>\n Some uploaded {fileType}s were flagged because they don't meet our {contentGuidelinesLink}.\n Please remove them before proceeding.\n </Text>\n )\n}\n\nfunction MessageFormInput() {\n const styles = useMessageFormStyles()\n const theme = useTheme()\n const fontScale = useFontScale()\n const { text, setText, onSubmit, inputEditable, usingGiphy, attachmentUploader, replyRootId } =\n React.useContext(MessageFormContext)\n const attachmentError = attachmentUploader?.errorMessage\n\n const broadcastTypingStatus = useBroadcastTypingStatus()\n\n const handleTextChange = (newText: string) => {\n setText(newText)\n\n if (newText.length > 0) {\n broadcastTypingStatus()\n }\n }\n\n const compactPlaceholder = fontScale >= PLACEHOLDER_FONT_SCALE_THRESHOLD\n let placeholder = compactPlaceholder ? 'Message' : 'Send a message'\n if (replyRootId) {\n placeholder = compactPlaceholder ? 'Reply' : 'Send a reply'\n }\n if (usingGiphy) {\n placeholder = compactPlaceholder ? 'Search' : 'Search GIFs'\n }\n\n return (\n <View style={styles.textInputBoundary}>\n <MessageFormAttachments />\n {attachmentError ? <Text style={styles.inputErrorMessage}>{attachmentError}</Text> : null}\n <View style={styles.textInputRow}>\n {usingGiphy ? (\n <View style={styles.giphyBadge}>\n <Icon name=\"general.bolt\" style={styles.giphyBadgeIcon} />\n <Text variant=\"tertiary\" style={styles.giphyBadgeText}>\n /giphy\n </Text>\n </View>\n ) : null}\n\n <TextInput\n testID=\"message-composer-input\"\n style={[styles.textInput, usingGiphy && styles.textInputWithGiphy]}\n multiline={true}\n placeholder={placeholder}\n placeholderTextColor={theme.colors.textColorDefaultPlaceholder}\n onChangeText={handleTextChange}\n value={text}\n maxLength={usingGiphy ? GIPHY_MAX_LENGTH : MAX_MESSAGE_LENGTH}\n onSubmitEditing={onSubmit}\n submitBehavior={usingGiphy ? 'submit' : 'newline'}\n editable={inputEditable}\n />\n </View>\n </View>\n )\n}\n\nconst SUBMIT_ACCESSIBILITY_LABEL_MAP = {\n giphy: 'Search Giphy',\n editing: 'Save changes',\n send: 'Send message',\n} as const\n\nconst SUBMIT_ICON_NAME_MAP = {\n giphy: 'general.search',\n editing: 'general.check',\n send: 'general.upArrow',\n} as const\n\nfunction MessageFormSubmitBtn() {\n const { onSubmit, disabled, usingGiphy, currentlyEditingMessage } =\n React.useContext(MessageFormContext)\n const styles = useMessageFormStyles()\n const { colors } = useTheme()\n\n const formStateKey = usingGiphy ? 'giphy' : currentlyEditingMessage ? 'editing' : 'send'\n const colorKey = disabled ? 'disabled' : 'interaction'\n const interactionStart = colors.buttonStart || colors.interaction\n const interactionEnd = colors.buttonEnd || colors.interaction\n const colorMap = {\n disabled: [\n colors.fillColorButtonNeutralSolidDisabled,\n colors.fillColorButtonNeutralSolidDisabled,\n ],\n interaction: [interactionStart, interactionEnd],\n }\n\n const androidRippleColor = useCreateAndroidRippleColor({ color: colorMap[colorKey][0] })\n const gradientColors = colorMap[colorKey] as [string, string]\n const iconStyles = [styles.submitIcon, disabled && styles.submitIconDisabled]\n\n return (\n <Pressable\n disabled={disabled}\n onPress={onSubmit}\n accessibilityRole=\"button\"\n accessibilityLabel={SUBMIT_ACCESSIBILITY_LABEL_MAP[formStateKey]}\n style={({ pressed }) => [\n styles.submitPressableWrapper,\n pressed && platformPressedOpacityStyle,\n ]}\n android_ripple={{ color: androidRippleColor, borderless: false, foreground: true }}\n >\n <LinearGradient\n start={{ x: 0.1, y: 0.1 }}\n end={{ x: 0.9, y: 0.9 }}\n colors={gradientColors}\n style={styles.submitGradientWrapper}\n >\n <Icon\n name={SUBMIT_ICON_NAME_MAP[formStateKey]}\n style={iconStyles}\n accessibilityElementsHidden={true}\n />\n </LinearGradient>\n </Pressable>\n )\n}\n\nfunction MessageFormAttachmentPicker() {\n const styles = useMessageFormStyles()\n const { usingGiphy, attachmentUploader, currentlyEditingMessage } =\n React.useContext(MessageFormContext)\n const { allowedMimeTypes } = useChatConfiguration()\n const [isOpen, setIsOpen] = useState(false)\n\n function uploadImagePickerResult(result: ImagePickerResult) {\n if (result.canceled) {\n return\n }\n\n const filteredAssets = result.assets\n .filter(asset => {\n return asset.fileSize && asset.mimeType && asset.uri\n })\n .map(asset => {\n return {\n uri: asset.uri,\n name: asset.fileName || asset.uri.split('/').pop() || 'attachment',\n type: asset.mimeType as string,\n size: asset.fileSize as number,\n height: asset.height,\n width: asset.width,\n }\n })\n\n attachmentUploader?.handleFilesAttached(filteredAssets)\n }\n\n function uploadDocumentPickerResult(result: DocumentPickerResult) {\n if (result.canceled) return\n\n const filteredAssets = result.assets\n .filter(asset => asset.size != null && asset.uri)\n .map(asset => ({\n uri: asset.uri,\n name: asset.name,\n type: asset.mimeType || 'application/octet-stream',\n size: asset.size as number,\n }))\n\n attachmentUploader?.handleFilesAttached(filteredAssets)\n }\n\n const openCamera = async () => {\n setIsOpen(false)\n let result = await ImagePicker.openCameraAsync()\n if (!result.canceled) {\n uploadImagePickerResult(result)\n }\n }\n\n const pickImage = async () => {\n setIsOpen(false)\n let result = await ImagePicker.openImageLibraryAsync()\n if (!result.canceled) {\n uploadImagePickerResult(result)\n }\n }\n\n const pickFile = async () => {\n setIsOpen(false)\n let result = await DocumentPicker.openAsync({ mimeTypes: allowedMimeTypes })\n if (!result.canceled) {\n uploadDocumentPickerResult(result)\n }\n }\n\n if (usingGiphy || currentlyEditingMessage) {\n return null\n }\n\n return (\n <View style={styles.attachmentPicker}>\n {isOpen && (\n <View style={styles.attachmentPickerButtonsContainer}>\n <IconButton\n accessibilityLabel=\"Take a photo\"\n accessibilityHint=\"Opens your camera\"\n size=\"lg\"\n appearance=\"neutral\"\n name=\"chat.camera\"\n onPress={openCamera}\n style={styles.attachmentPickerButton}\n />\n <IconButton\n accessibilityLabel=\"Choose a photo\"\n accessibilityHint=\"Opens your photo gallery\"\n size=\"lg\"\n appearance=\"neutral\"\n name=\"churchCenter.photosIos\"\n onPress={pickImage}\n style={styles.attachmentPickerButton}\n />\n {DocumentPicker.configured && (\n <IconButton\n accessibilityLabel=\"Attach a file\"\n accessibilityHint=\"Opens your files to attach documents\"\n size=\"lg\"\n appearance=\"neutral\"\n name=\"general.blankFile\"\n onPress={pickFile}\n style={styles.attachmentPickerButton}\n />\n )}\n </View>\n )}\n <IconButton\n accessibilityLabel=\"File Menu\"\n accessibilityHint=\"Opens options to attach or take a photo\"\n size=\"lg\"\n appearance=\"neutral\"\n name=\"general.paperclip\"\n onPress={() => setIsOpen(!isOpen)}\n style={styles.formButton}\n />\n </View>\n )\n}\n\nfunction MessageFormCommands() {\n const { text, canGiphy, usingGiphy, setUsingGiphy } = React.useContext(MessageFormContext)\n const styles = useMessageFormStyles()\n\n if (!canGiphy) {\n return null\n }\n\n if (usingGiphy) {\n return (\n <IconButton\n accessibilityLabel=\"Exit Giphy Search\"\n accessibilityHint=\"Changes input back to a text field for sending messages\"\n size=\"lg\"\n appearance=\"neutral\"\n name=\"general.xCircle\"\n onPress={() => setUsingGiphy(false)}\n style={styles.formButton}\n />\n )\n }\n\n return (\n <IconButton\n accessibilityLabel=\"Search Giphy\"\n accessibilityHint=\"Changes input into a search field for finding Giphys\"\n size=\"lg\"\n appearance=\"neutral\"\n name={'general.bolt'}\n onPress={() => setUsingGiphy(true)}\n disabled={text.length > GIPHY_MAX_LENGTH}\n style={styles.formButton}\n />\n )\n}\n\nfunction EditingIndicator() {\n const { currentlyEditingMessage, reset } = React.useContext(MessageFormContext)\n\n if (!currentlyEditingMessage) {\n return null\n }\n\n return (\n <FormIndicatorRow\n title=\"Editing message\"\n buttonText=\"Cancel\"\n accessibilityHint=\"Exit message editing mode without saving\"\n iconName=\"accounts.editor\"\n onPress={() => reset()}\n />\n )\n}\n\nfunction ReplyIndicator() {\n const { replyRootId, replyRootAuthorFirstName } = React.useContext(MessageFormContext)\n const navigation = useNavigation()\n const title = replyRootAuthorFirstName ? `Reply to ${replyRootAuthorFirstName}` : 'Reply'\n\n if (!replyRootId) return null\n\n return (\n <FormIndicatorRow\n title={title}\n buttonText=\"Exit replies\"\n accessibilityHint=\"Return to the main conversation\"\n iconName=\"registrations.undo\"\n onPress={() => navigation.goBack()}\n />\n )\n}\n\ninterface FormIndicatorRowProps {\n title: string\n buttonText: string\n accessibilityHint: string\n onPress: () => void\n iconName: IconString\n}\n\nfunction FormIndicatorRow({\n title,\n buttonText,\n accessibilityHint,\n iconName,\n onPress,\n}: FormIndicatorRowProps) {\n const styles = useMessageFormStyles()\n const scalableNumberOfLines = useScalableNumberOfLines(1)\n\n return (\n <View style={styles.formIndicatorRow}>\n <View style={styles.formIndicatorRowTitleContainer}>\n <Icon name={iconName} size={16} style={styles.formIndicatorRowIcon} />\n <Heading\n variant=\"h4\"\n style={styles.formIndicatorRowTitle}\n numberOfLines={scalableNumberOfLines}\n maxFontSizeMultiplier={MAX_FONT_SIZE_MULTIPLIER_LANDMARK}\n >\n {title}\n </Heading>\n </View>\n <TextButton\n onPress={onPress}\n accessibilityHint={accessibilityHint}\n maxFontSizeMultiplier={MAX_FONT_SIZE_MULTIPLIER_LANDMARK}\n >\n {buttonText}\n </TextButton>\n </View>\n )\n}\n\nconst useMessageFormStyles = () => {\n const theme = useTheme()\n const navigationTheme = useNavigationTheme()\n const buttonSize = 38\n\n const giphyBadgeBackgroundColor = useInteractionTintedBackgroundColor()\n\n return StyleSheet.create({\n container: {\n borderColor: theme.colors.borderColorDefaultDim,\n borderTopWidth: 1,\n padding: 12,\n },\n textInputContainer: {\n backgroundColor: navigationTheme.colors.card,\n flexDirection: 'row',\n alignItems: 'flex-end',\n gap: 16,\n },\n textInputBoundary: {\n overflow: 'hidden',\n borderRadius: 24,\n borderWidth: 1,\n borderColor: theme.colors.fillColorNeutral050Base,\n flex: 1,\n gap: 8,\n },\n textInputRow: {\n flexDirection: 'row',\n alignItems: 'center',\n gap: 8,\n },\n textInput: {\n paddingBottom: 8,\n // TODO: Remove iOS's extra top padding and use `textAlignVertical: \"center\"` for both platforms when services-react-native upgrades to v0.74.5 or greater.\n paddingTop: Platform.select({\n ios: 9, // Extra padding compensates for `textAlignVertical` not working in Services iOS.\n default: 8,\n }),\n textAlignVertical: Platform.select({\n ios: 'top', // Services iOS doesn't support `textAlignVertical` due to its lower React Native version of 0.72.14. (React Native 0.74.5+ seems to support this style.)\n default: 'center', // centers the text vertically for multiline TextInput.\n }),\n paddingHorizontal: 16,\n color: theme.colors.textColorDefaultPrimary,\n justifyContent: 'center',\n flex: 1,\n fontSize: 16,\n maxHeight: 200,\n },\n textInputWithGiphy: {\n paddingLeft: 0,\n },\n giphyBadge: {\n backgroundColor: giphyBadgeBackgroundColor,\n borderRadius: 24,\n paddingVertical: 4,\n paddingHorizontal: 12,\n marginLeft: 6,\n flexDirection: 'row',\n alignItems: 'center',\n gap: 4,\n },\n giphyBadgeText: {\n color: theme.colors.interaction,\n marginBottom: 1,\n },\n giphyBadgeIcon: {\n color: theme.colors.interaction,\n },\n formButton: {\n height: buttonSize,\n },\n submitPressableWrapper: {\n borderRadius: buttonSize,\n overflow: 'hidden',\n },\n submitGradientWrapper: {\n flexDirection: 'row',\n justifyContent: 'center',\n alignItems: 'center',\n borderRadius: buttonSize,\n height: buttonSize,\n width: buttonSize,\n },\n submitIcon: {\n fontSize: 16,\n color: tokens.colorNeutral100White,\n },\n submitIconDisabled: {\n color: theme.colors.iconColorDefaultDisabled,\n },\n attachmentPicker: {\n position: 'relative',\n },\n attachmentPickerButtonsContainer: {\n position: 'absolute',\n left: 0,\n bottom: 40,\n zIndex: 10,\n gap: 12,\n },\n attachmentPickerButton: {\n backgroundColor: theme.colors.fillColorNeutral070,\n borderRadius: 20,\n height: buttonSize,\n width: buttonSize,\n elevation: 3,\n ...Platform.select({\n ios: {\n borderWidth: 1,\n borderColor: theme.colors.borderColorDefaultBase,\n },\n default: null,\n }),\n },\n messageFormAttachments: {\n overflow: 'hidden',\n paddingHorizontal: 12,\n paddingTop: 12,\n gap: 8,\n },\n inputErrorMessage: {\n color: theme.colors.statusErrorText,\n fontSize: 14,\n paddingHorizontal: 16,\n paddingVertical: 4,\n },\n flaggedBannerContainer: {\n paddingBottom: 12,\n },\n flaggedBannerText: {\n color: theme.colors.textColorDefaultPrimary,\n fontSize: 14,\n },\n flaggedBannerLink: {\n color: theme.colors.textColorDefaultPrimary,\n fontSize: 14,\n textDecorationLine: 'underline' as const,\n },\n flaggedBannerButtonRow: {\n flexDirection: 'row',\n justifyContent: 'flex-end',\n marginTop: 4,\n },\n formIndicatorRow: {\n flexDirection: 'row',\n alignItems: 'center',\n justifyContent: 'space-between',\n gap: 8,\n paddingBottom: 12,\n },\n formIndicatorRowTitleContainer: {\n flexDirection: 'row',\n alignItems: 'center',\n gap: 8,\n flex: 1,\n },\n formIndicatorRowIcon: {\n color: theme.colors.iconColorDefaultSecondary,\n },\n formIndicatorRowTitle: {\n fontWeight: platformFontWeightMedium,\n textTransform: 'none',\n flexShrink: 1,\n },\n })\n}\n"],"mappings":";AAAA,SAASA,aAAa,EAAEC,QAAQ,IAAIC,kBAAkB,EAAEC,QAAQ,QAAQ,0BAA0B;AAClG,OAAOC,KAAK,IAAIC,WAAW,EAAEC,UAAU,EAAEC,SAAS,EAAEC,QAAQ,QAAQ,OAAO;AAC3E,SACEC,OAAO,EACPC,QAAQ,EACRC,SAAS,EACTC,UAAU,EACVC,UAAU,EACVC,SAAS,EACTC,IAAI,EAEJC,QAAQ,QACH,cAAc;AACrB,OAAOC,cAAc,MAAM,8BAA8B;AACzD,SAASC,OAAO,EAAEC,IAAI,EAAEC,UAAU,EAAcC,IAAI,EAAEC,UAAU,QAAQ,kBAAkB;AAC1F,SAASC,WAAW,QAAQ,6BAA6B;AACzD,SACEC,2BAA2B,EAC3BvB,QAAQ,EACRwB,mCAAmC,EACnCC,wBAAwB,EACxBC,YAAY,QACP,aAAa;AACpB,SAASC,qBAAqB,QAAQ,qCAAqC;AAC3E,SAASC,wBAAwB,QAAQ,yCAAyC;AAClF,SAASC,oBAAoB,QAAQ,oCAAoC;AACzE,SAASC,wBAAwB,QAAQ,0CAA0C;AACnF,SAASC,eAAe,QAAQ,+BAA+B;AAQ/D,SACEC,iCAAiC,EACjCC,wBAAwB,EACxBC,2BAA2B,QACtB,aAAa;AACpB,SAASC,yBAAyB,QAAQ,6BAA6B;AACvE,SAASC,gBAAgB,QAAQ,gCAAgC;AACjE,SAASC,eAAe,QAAQ,+BAA+B;AAC/D,SAASC,cAAc,EAAEC,wBAAwB,QAAQ,0BAA0B;AACnF,SACEC,cAAc,EAEdC,MAAM,EACNC,WAAW,QAEN,6BAA6B;AACpC,SAASC,MAAM,QAAQ,8BAA8B;AACrD,SAASC,MAAM,QAAQ,mBAAmB;AAC1C,OAAOC,eAAe,MAAM,+BAA+B;AAC3D,SAASC,yBAAyB,QAAQ,6CAA6C;AACvF,SAASC,0BAA0B,QAAQ,8CAA8C;AACzF,SAASC,0BAA0B,QAAQ,8CAA8C;AAAA,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAEzF,OAAO,MAAMC,WAAW,GAAG;EACzBC,IAAI,EAAEC,eAAe;EAErB1C,SAAS,EAAE2C,gBAAgB;EAC3BC,YAAY,EAAEC,oBAAoB;EAClCC,gBAAgB,EAAEC,2BAA2B;EAC7CC,QAAQ,EAAEC;AACZ,CAAC;AAWD,MAAMC,kBAAkB,GAAG5D,KAAK,CAAC6D,aAAa,CAc3C;EACDC,IAAI,EAAE,EAAE;EACRC,OAAO,EAAGC,KAAa,IAAK,CAAC,CAAC;EAC9BC,QAAQ,EAAEA,CAAA,KAAM,CAAC,CAAC;EAClBC,QAAQ,EAAE,KAAK;EACfC,aAAa,EAAE,IAAI;EACnBC,QAAQ,EAAE,KAAK;EACfC,UAAU,EAAE,KAAK;EACjBC,aAAa,EAAGC,WAAoB,IAAK,CAAC,CAAC;EAC3CC,uBAAuB,EAAE,IAAI;EAC7BC,KAAK,EAAEA,CAAA,KAAM,CAAC,CAAC;EACfC,WAAW,EAAEC,SAAS;EACtBC,wBAAwB,EAAED;AAC5B,CAAC,CAAC;AAEF,MAAME,gBAAgB,GAAG,EAAE;AAC3B,MAAMC,kBAAkB,GAAG,IAAI;AAC/B,MAAMC,gCAAgC,GAAG,GAAG;AAE5C,SAAA3B,gBAAA4B,EAAA;EAAA,MAAAC,CAAA,GAAAC,EAAA;EAAyB;IAAAC,YAAA;IAAAX,uBAAA;IAAAY,QAAA;IAAAV,WAAA;IAAAE,wBAAA;IAAAS,sBAAA;IAAAC;EAAA,IAAAN,EAQD;EACtB;IAAAO;EAAA,IAAwBrF,UAAU,CAACiB,WAAW,CAAC;EAC/C,MAAAiD,QAAA,GAAiB,CAAC,CAACmB,WAAuC,IAAzC,CAAkBf,uBAAuB;EAC1D,MAAAgB,MAAA,GAAeC,oBAAoB,CAAC,CAAC;EACrC;IAAAC,KAAA;IAAAC,SAAA;IAAAC;EAAA,IAAyChE,eAAe,CAAC,CAAC;EAAA,IAAAiE,EAAA;EAAA,IAAAZ,CAAA,QAAAT,uBAAA,IAAAS,CAAA,QAAAS,KAAA,EAAA5B,IAAA;IACnB+B,EAAA,GAAAA,CAAA,KAE9BrB,uBAAuB,GAAvB,EAAgD,GAAjBkB,KAAK,EAAA5B,IAAY,IAAjB,EACvC;IAAAmB,CAAA,MAAAT,uBAAA;IAAAS,CAAA,MAAAS,KAAA,EAAA5B,IAAA;IAAAmB,CAAA,MAAAY,EAAA;EAAA;IAAAA,EAAA,GAAAZ,CAAA;EAAA;EAHD,OAAAnB,IAAA,EAAAC,OAAA,IAAwB/D,KAAK,CAAAI,QAAS,CAACyF,EAGtC,CAAC;EACF,OAAAxB,UAAA,EAAAC,aAAA,IAAoClE,QAAQ,CAAC,KAAK,CAAC;EACnD,MAAA0F,UAAA,GAAmBlG,aAAa,CAAC,CAAC;EAClC,MAAAmG,KAAA,GAAchG,QAAQ,CAAC,CAAC;EAQb,MAAAiG,EAAA,GAAAxB,uBAAoC,IAApCG,SAAoC;EAAA,IAAAsB,EAAA;EAAA,IAAAhB,CAAA,QAAAE,YAAA,CAAAe,EAAA,IAAAjB,CAAA,QAAAP,WAAA,IAAAO,CAAA,QAAAe,EAAA;IAFlBC,EAAA;MAAAE,cAAA,EACXhB,YAAY,CAAAe,EAAG;MAAAE,OAAA,EACtBJ,EAAoC;MAAAtB;IAE/C,CAAC;IAAAO,CAAA,MAAAE,YAAA,CAAAe,EAAA;IAAAjB,CAAA,MAAAP,WAAA;IAAAO,CAAA,MAAAe,EAAA;IAAAf,CAAA,MAAAgB,EAAA;EAAA;IAAAA,EAAA,GAAAhB,CAAA;EAAA;EATD;IAAAoB,MAAA;IAAAC,SAAA;IAAA7B,KAAA,EAAA8B,aAAA;IAAAC;EAAA,IAKI7E,wBAAwB,CAACsE,EAI5B,CAAC;EAGkB,MAAAQ,EAAA,GAAAjC,uBAAuB,GAAvBG,SAAwD,GAAlBe,KAAK,EAAAgB,WAAa;EAAA,IAAAC,EAAA;EAAA,IAAA1B,CAAA,QAAAE,YAAA,CAAAe,EAAA,IAAAjB,CAAA,QAAAI,sBAAA,IAAAJ,CAAA,QAAAwB,EAAA;IAF3BE,EAAA;MAAAR,cAAA,EAC/BhB,YAAY,CAAAe,EAAG;MAAAU,gBAAA,EACbH,EAAwD;MAAApB;IAE5E,CAAC;IAAAJ,CAAA,MAAAE,YAAA,CAAAe,EAAA;IAAAjB,CAAA,MAAAI,sBAAA;IAAAJ,CAAA,MAAAwB,EAAA;IAAAxB,CAAA,OAAA0B,EAAA;EAAA;IAAAA,EAAA,GAAA1B,CAAA;EAAA;EAJD,MAAA4B,kBAAA,GAA2BrF,qBAAqB,CAACmF,EAIhD,CAAC;EACF,MAAAG,uBAAA,GAAgCD,kBAAkB,CAAApC,KAAM;EAAA,IAAAsC,EAAA;EAAA,IAAA9B,CAAA,SAAAW,UAAA,IAAAX,CAAA,SAAAT,uBAAA,IAAAS,CAAA,SAAAa,UAAA,IAAAb,CAAA,SAAA6B,uBAAA,IAAA7B,CAAA,SAAAsB,aAAA;IAE9BQ,EAAA,GAAAA,CAAA;MACxBD,uBAAuB,CAAC,CAAC;MACzBP,aAAa,CAAC,CAAC;MACfxC,OAAO,CAAC,EAAE,CAAC;MACXO,aAAa,CAAC,KAAK,CAAC;MACpB,IAAI,CAACE,uBAAuB;QAC1BoB,UAAU,CAAC,CAAC;MAAA;MAEdE,UAAU,CAAAkB,SAAU,CAAC;QAAAC,kBAAA,EACC;MACtB,CAAC,CAAC;IAAA,CACH;IAAAhC,CAAA,OAAAW,UAAA;IAAAX,CAAA,OAAAT,uBAAA;IAAAS,CAAA,OAAAa,UAAA;IAAAb,CAAA,OAAA6B,uBAAA;IAAA7B,CAAA,OAAAsB,aAAA;IAAAtB,CAAA,OAAA8B,EAAA;EAAA;IAAAA,EAAA,GAAA9B,CAAA;EAAA;EAXD,MAAAR,KAAA,GAAcsC,EAW+E;EAAA,IAAAG,EAAA;EAAA,IAAAC,EAAA;EAAA,IAAAlC,CAAA,SAAAb,QAAA,IAAAa,CAAA,SAAAnB,IAAA,IAAAmB,CAAA,SAAAZ,UAAA;IAEnF6C,EAAA,GAAAA,CAAA;MACR,IAAI9C,QAAuB,IAAvB,CAAaC,UAAwC,IAA1BP,IAAI,CAAAsD,UAAW,CAAC,SAAS,CAAC;QACvD9C,aAAa,CAAC,IAAI,CAAC;QACnBP,OAAO,CAAC,EAAE,CAAC;MAAA;IACZ,CACF;IAAEoD,EAAA,IAAC/C,QAAQ,EAAEN,IAAI,EAAEO,UAAU,CAAC;IAAAY,CAAA,OAAAb,QAAA;IAAAa,CAAA,OAAAnB,IAAA;IAAAmB,CAAA,OAAAZ,UAAA;IAAAY,CAAA,OAAAiC,EAAA;IAAAjC,CAAA,OAAAkC,EAAA;EAAA;IAAAD,EAAA,GAAAjC,CAAA;IAAAkC,EAAA,GAAAlC,CAAA;EAAA;EAL/B9E,SAAS,CAAC+G,EAKT,EAAEC,EAA4B,CAAC;EAAA,IAAAE,GAAA;EAAA,IAAAC,EAAA;EAAA,IAAArC,CAAA,SAAAR,KAAA,IAAAQ,CAAA,SAAAoB,MAAA;IAEtBiB,EAAA,GAAAA,CAAA;MACR,QAAQjB,MAAM;QAAA,KACP,SAAS;UAAA;YACZ5B,KAAK,CAAC,CAAC;UAAA;MAEX;IAAC,CACF;IAAE4C,GAAA,IAAC5C,KAAK,EAAE4B,MAAM,CAAC;IAAApB,CAAA,OAAAR,KAAA;IAAAQ,CAAA,OAAAoB,MAAA;IAAApB,CAAA,OAAAoC,GAAA;IAAApC,CAAA,OAAAqC,EAAA;EAAA;IAAAD,GAAA,GAAApC,CAAA;IAAAqC,EAAA,GAAArC,CAAA;EAAA;EANlB9E,SAAS,CAACmH,EAMT,EAAED,GAAe,CAAC;EAAA,IAAAE,GAAA;EAAA,IAAAC,GAAA;EAAA,IAAAvC,CAAA,SAAAa,UAAA,IAAAb,CAAA,SAAAR,KAAA,IAAAQ,CAAA,SAAAc,KAAA,CAAA0B,MAAA;IAETF,GAAA,GAAAA,CAAA;MACR,IAAIxB,KAAK,CAAA0B,MAAO,CAAAC,WAAY;QAC1BjD,KAAK,CAAC,CAAC;QACPqB,UAAU,CAAAkB,SAAU,CAAC;UAAA,GAAKjB,KAAK,CAAA0B,MAAO;UAAAC,WAAA,EAAe;QAAM,CAAC,CAAC;MAAA;IAC9D,CACF;IAAEF,GAAA,IAAC/C,KAAK,EAAEqB,UAAU,EAAEC,KAAK,CAAA0B,MAAO,CAAC;IAAAxC,CAAA,OAAAa,UAAA;IAAAb,CAAA,OAAAR,KAAA;IAAAQ,CAAA,OAAAc,KAAA,CAAA0B,MAAA;IAAAxC,CAAA,OAAAsC,GAAA;IAAAtC,CAAA,OAAAuC,GAAA;EAAA;IAAAD,GAAA,GAAAtC,CAAA;IAAAuC,GAAA,GAAAvC,CAAA;EAAA;EALpC9E,SAAS,CAACoH,GAKT,EAAEC,GAAiC,CAAC;EAAA,IAAAG,GAAA;EAAA,IAAAC,GAAA;EAAA,IAAA3C,CAAA,SAAA4B,kBAAA,CAAAH,WAAA,IAAAzB,CAAA,SAAAT,uBAAA,IAAAS,CAAA,SAAAU,SAAA,IAAAV,CAAA,SAAAnB,IAAA;IAG3B6D,GAAA,GAAAA,CAAA;MAER,IAAInD,uBAAuB;QAAA;MAAA;MAE3B,MAAAqD,SAAA,GAAkBC,UAAU,CAAC;QAC3BnC,SAAS,CAAC7B,IAAI,EAAE+C,kBAAkB,CAAAH,WAAY,CAAC;MAAA,CAChD,EAAE,GAAG,CAAC;MAAA,OAEA,MAAMqB,YAAY,CAACF,SAAS,CAAC;IAAA,CACrC;IAAED,GAAA,IAAC9D,IAAI,EAAE+C,kBAAkB,CAAAH,WAAY,EAAEf,SAAS,EAAEnB,uBAAuB,CAAC;IAAAS,CAAA,OAAA4B,kBAAA,CAAAH,WAAA;IAAAzB,CAAA,OAAAT,uBAAA;IAAAS,CAAA,OAAAU,SAAA;IAAAV,CAAA,OAAAnB,IAAA;IAAAmB,CAAA,OAAA0C,GAAA;IAAA1C,CAAA,OAAA2C,GAAA;EAAA;IAAAD,GAAA,GAAA1C,CAAA;IAAA2C,GAAA,GAAA3C,CAAA;EAAA;EAT7E9E,SAAS,CAACwH,GAST,EAAEC,GAA0E,CAAC;EAItD,MAAAI,GAAA,GAAA7C,YAAY,CAAAjB,QAAkB,IAA9B,KAA8B;EACpC,MAAA+D,GAAA,IAAC,CAACpB,kBAAkB,EAAAqB,cAAgB;EAC7B,MAAAC,GAAA,IAAC,CAACtB,kBAAkB,EAAAuB,sBAAwB;EAAA,IAAAC,GAAA;EAAA,IAAApD,CAAA,SAAA4B,kBAAA,CAAAyB,aAAA,EAAAC,MAAA,IAAAtD,CAAA,SAAAqB,SAAA,IAAArB,CAAA,SAAA+C,GAAA,IAAA/C,CAAA,SAAAgD,GAAA,IAAAhD,CAAA,SAAAkD,GAAA,IAAAlD,CAAA,SAAAnB,IAAA;IAJnDuE,GAAA,GAAApG,gBAAgB,CAAC;MAAAqE,SAAA;MAAAkC,oBAAA,EAEXR,GAA8B;MAAAE,cAAA,EACpCD,GAAoC;MAAAQ,qBAAA,EAC7BN,GAA4C;MAAAO,OAAA,EAC1DvG,cAAc,CAAC2B,IAAI,CAAC;MAAA6E,sBAAA,EACL,CAAC,CAAC9B,kBAAkB,EAAAyB,aAAuB,EAAAC;IACrE,CAAC,CAAC;IAAAtD,CAAA,OAAA4B,kBAAA,CAAAyB,aAAA,EAAAC,MAAA;IAAAtD,CAAA,OAAAqB,SAAA;IAAArB,CAAA,OAAA+C,GAAA;IAAA/C,CAAA,OAAAgD,GAAA;IAAAhD,CAAA,OAAAkD,GAAA;IAAAlD,CAAA,OAAAnB,IAAA;IAAAmB,CAAA,OAAAoD,GAAA;EAAA;IAAAA,GAAA,GAAApD,CAAA;EAAA;EAPF,MAAA2D,SAAA,GAAkBP,GAOhB;EACF,MAAAnE,QAAA,GAAiB,CAAC0E,SAAS;EAGH,MAAAC,GAAA,GAAA1D,YAAY,CAAAjB,QAAkB,IAA9B,KAA8B;EAAA,IAAA4E,GAAA;EAAA,IAAA7D,CAAA,SAAAqB,SAAA,IAAArB,CAAA,SAAA4D,GAAA;IAFhCC,GAAA,GAAA5G,eAAe,CAAC;MAAAoE,SAAA;MAAAkC,oBAAA,EAEdK;IACxB,CAAC,CAAC;IAAA5D,CAAA,OAAAqB,SAAA;IAAArB,CAAA,OAAA4D,GAAA;IAAA5D,CAAA,OAAA6D,GAAA;EAAA;IAAAA,GAAA,GAAA7D,CAAA;EAAA;EAHF,MAAAd,aAAA,GAAsB2E,GAGpB;EAAA,IAAAC,GAAA;EAAA,IAAA9D,CAAA,SAAAE,YAAA,CAAAe,EAAA,IAAAjB,CAAA,SAAAa,UAAA,IAAAb,CAAA,SAAAnB,IAAA;IAMwDiF,GAAA,GAAAA,CAAA;MACxD,IAAI,CAACnI,QAAQ,CAAAoI,SAAU,CAAC,CAA0B,IAArB1I,QAAQ,CAAA2I,EAAG,KAAK,KAAK;QAChDnD,UAAU,CAAAoD,QAAS,CAAC,WAAW,EAAE;UAAAC,eAAA,EACdhE,YAAY,CAAAe,EAAG;UAAAkD,WAAA,EACnBtF;QACf,CAAC,CAAC;MAAA;QAEF,MAAAuF,gBAAA,GAAyBzI,QAAQ,CAAA0I,WAAY,CAAC,iBAAiB,EAAE;UAC/DxD,UAAU,CAAAoD,QAAS,CAAC,WAAW,EAAE;YAAAC,eAAA,EACdhE,YAAY,CAAAe,EAAG;YAAAkD,WAAA,EACnBtF;UACf,CAAC,CAAC;UACFuF,gBAAgB,EAAAE,MAAU,CAAD,CAAC;QAAA,CAC3B,CAAC;MAAA;IACH,CACF;IAAAtE,CAAA,OAAAE,YAAA,CAAAe,EAAA;IAAAjB,CAAA,OAAAa,UAAA;IAAAb,CAAA,OAAAnB,IAAA;IAAAmB,CAAA,OAAA8D,GAAA;EAAA;IAAAA,GAAA,GAAA9D,CAAA;EAAA;EAfD,MAAAuE,qCAAA,GAA8CT,GAeP;EAAA,IAAAU,GAAA;EAAA,IAAAxE,CAAA,SAAA4B,kBAAA,CAAAH,WAAA,IAAAzB,CAAA,SAAAb,QAAA,IAAAa,CAAA,SAAA2D,SAAA,IAAA3D,CAAA,SAAAT,uBAAA,IAAAS,CAAA,SAAAuB,WAAA,IAAAvB,CAAA,SAAAuE,qCAAA,IAAAvE,CAAA,SAAAK,cAAA,IAAAL,CAAA,SAAAR,KAAA,IAAAQ,CAAA,SAAAnB,IAAA,IAAAmB,CAAA,SAAAZ,UAAA;IAElBoF,GAAA,GAAAA,CAAA;MACnB,IAAI,CAACb,SAAS;QAAA;MAAA;MAEd,IAAIxE,QAAsB,IAAtBC,UAAsB;QACxB3D,SAAS,CAAAgJ,KAAM,CAAAC,aAAc,CAACjJ,SAAS,CAAAgJ,KAAM,CAAAE,qBAAsB,CAAC,CAAC,CAAC;QACtEtH,MAAM,CAAAuH,WAAY,CAAC,CAAC;QACpBL,qCAAqC,CAAC,CAAC;MAAA;QAEvC,MAAAM,oBAAA,GACEjD,kBAAkB,CAAAH,WAAY,CAAAqD,MACrB,CAACC,KAAmC,CAAC,CAAAC,GACxC,CACFC,MAKF,CAAC;QACL,MAAAC,WAAA,GAAoB/H,wBAAwB,CAAC0B,IAAI,CAAC;QAElD,IAAIU,uBAAuB;UACzBgC,WAAW,CAAC;YAAA1C,IAAA,EAAQqG;UAAY,CAAC,CAAC;UAClC1F,KAAK,CAAC,CAAC;QAAA;UAEPa,cAAc,GAAG,CAAC;UAClBkB,WAAW,CAAC;YAAA1C,IAAA,EAAQqG,WAAW;YAAAzD,WAAA,EAAeoD;UAAqB,CAAC,CAAC;UACrErF,KAAK,CAAC,CAAC;QAAA;MACR;IACF,CACF;IAAAQ,CAAA,OAAA4B,kBAAA,CAAAH,WAAA;IAAAzB,CAAA,OAAAb,QAAA;IAAAa,CAAA,OAAA2D,SAAA;IAAA3D,CAAA,OAAAT,uBAAA;IAAAS,CAAA,OAAAuB,WAAA;IAAAvB,CAAA,OAAAuE,qCAAA;IAAAvE,CAAA,OAAAK,cAAA;IAAAL,CAAA,OAAAR,KAAA;IAAAQ,CAAA,OAAAnB,IAAA;IAAAmB,CAAA,OAAAZ,UAAA;IAAAY,CAAA,OAAAwE,GAAA;EAAA;IAAAA,GAAA,GAAAxE,CAAA;EAAA;EA7BD,MAAAmF,YAAA,GAAqBX,GA6BpB;EAAA,IAAAY,GAAA;EAAA,IAAAC,GAAA;EAAA,IAAArF,CAAA,SAAAT,uBAAA;IAES6F,GAAA,GAAAA,CAAA;MACR,IAAI7F,uBAAuB;QACzBT,OAAO,CAACS,uBAAuB,CAAAV,IAAW,IAAlC,EAAkC,CAAC;MAAA;IAC5C,CACF;IAAEwG,GAAA,IAAC9F,uBAAuB,CAAC;IAAAS,CAAA,OAAAT,uBAAA;IAAAS,CAAA,OAAAoF,GAAA;IAAApF,CAAA,OAAAqF,GAAA;EAAA;IAAAD,GAAA,GAAApF,CAAA;IAAAqF,GAAA,GAAArF,CAAA;EAAA;EAJ5B9E,SAAS,CAACkK,GAIT,EAAEC,GAAyB,CAAC;EAAA,IAAAC,GAAA;EAAA,IAAAtF,CAAA,SAAA4B,kBAAA,IAAA5B,CAAA,SAAAb,QAAA,IAAAa,CAAA,SAAAT,uBAAA,IAAAS,CAAA,SAAAf,QAAA,IAAAe,CAAA,SAAAmF,YAAA,IAAAnF,CAAA,SAAAd,aAAA,IAAAc,CAAA,SAAAL,wBAAA,IAAAK,CAAA,SAAAP,WAAA,IAAAO,CAAA,SAAAR,KAAA,IAAAQ,CAAA,SAAAnB,IAAA,IAAAmB,CAAA,SAAAZ,UAAA;IAIlBkG,GAAA;MAAAzG,IAAA;MAAAC,OAAA;MAAAE,QAAA,EAGKmG,YAAY;MAAAlG,QAAA;MAAAC,aAAA;MAAAC,QAAA;MAAAC,UAAA;MAAAC,aAAA;MAAAuC,kBAAA;MAAArC,uBAAA;MAAAC,KAAA;MAAAC,WAAA;MAAAE;IAWxB,CAAC;IAAAK,CAAA,OAAA4B,kBAAA;IAAA5B,CAAA,OAAAb,QAAA;IAAAa,CAAA,OAAAT,uBAAA;IAAAS,CAAA,OAAAf,QAAA;IAAAe,CAAA,OAAAmF,YAAA;IAAAnF,CAAA,OAAAd,aAAA;IAAAc,CAAA,OAAAL,wBAAA;IAAAK,CAAA,OAAAP,WAAA;IAAAO,CAAA,OAAAR,KAAA;IAAAQ,CAAA,OAAAnB,IAAA;IAAAmB,CAAA,OAAAZ,UAAA;IAAAY,CAAA,OAAAsF,GAAA;EAAA;IAAAA,GAAA,GAAAtF,CAAA;EAAA;EAAA,IAAAuF,GAAA;EAAA,IAAAC,GAAA;EAAA,IAAAC,GAAA;EAAA,IAAAzF,CAAA,SAAA0F,MAAA,CAAAC,GAAA;IAGCJ,GAAA,gBAAAzH,IAAA,CAAC8H,gBAAgB,IAAE,CAAC;IACpBJ,GAAA,gBAAA1H,IAAA,CAAC+H,cAAc,IAAE,CAAC;IAClBJ,GAAA,gBAAA3H,IAAA,CAACgI,oBAAoB,IAAE,CAAC;IAAA9F,CAAA,OAAAuF,GAAA;IAAAvF,CAAA,OAAAwF,GAAA;IAAAxF,CAAA,OAAAyF,GAAA;EAAA;IAAAF,GAAA,GAAAvF,CAAA;IAAAwF,GAAA,GAAAxF,CAAA;IAAAyF,GAAA,GAAAzF,CAAA;EAAA;EAAA,IAAA+F,GAAA;EAAA,IAAA/F,CAAA,SAAAG,QAAA,IAAAH,CAAA,SAAAO,MAAA,CAAAyF,kBAAA;IACxBD,GAAA,gBAAAjI,IAAA,CAACpC,IAAI;MAAQuK,KAAyB,EAAzB1F,MAAM,CAAAyF,kBAAmB;MAAA7F,QAAA,EAAGA;IAAQ,CAAO,CAAC;IAAAH,CAAA,OAAAG,QAAA;IAAAH,CAAA,OAAAO,MAAA,CAAAyF,kBAAA;IAAAhG,CAAA,OAAA+F,GAAA;EAAA;IAAAA,GAAA,GAAA/F,CAAA;EAAA;EAAA,IAAAkG,GAAA;EAAA,IAAAlG,CAAA,SAAAO,MAAA,CAAA4F,SAAA,IAAAnG,CAAA,SAAA+F,GAAA;IAJ3DG,GAAA,gBAAAlI,KAAA,CAACtC,IAAI;MAAQuK,KAAgB,EAAhB1F,MAAM,CAAA4F,SAAU;MAAAhG,QAAA,GAC3BoF,GAAoB,EACpBC,GAAkB,EAClBC,GAAwB,EACxBM,GAAyD;IAAA,CACrD,CAAC;IAAA/F,CAAA,OAAAO,MAAA,CAAA4F,SAAA;IAAAnG,CAAA,OAAA+F,GAAA;IAAA/F,CAAA,OAAAkG,GAAA;EAAA;IAAAA,GAAA,GAAAlG,CAAA;EAAA;EAAA,IAAAoG,GAAA;EAAA,IAAApG,CAAA,SAAAsF,GAAA,IAAAtF,CAAA,SAAAkG,GAAA;IAtBTE,GAAA,gBAAAtI,IAAA,CAAAa,kBAAA,CAAA0H,QAAA;MACSC,KAcN,EAdMhB,GAcN;MAAAnF,QAAA,EAED+F;IAKO,CACoB,CAAC;IAAAlG,CAAA,OAAAsF,GAAA;IAAAtF,CAAA,OAAAkG,GAAA;IAAAlG,CAAA,OAAAoG,GAAA;EAAA;IAAAA,GAAA,GAAApG,CAAA;EAAA;EAAA,OAvB9BoG,GAuB8B;AAAA;AApLlC,SAAAnB,OAAAsB,UAAA;EAAA,OAmI6E;IAAAC,IAAA,EACzD,mBAAmB;IAAAvF,EAAA,EACrBsF,UAAU,CAAAtF,EAAG;IAAAwF,IAAA,EACXF,UAAU,CAAAE;EAClB,CAAC;AAAA;AAvIb,SAAA1B,MAAA2B,CAAA;EAAA,OAiIuBA,CAAC,CAAAtF,MAAO,KAAK,SAAiB,IAAJsF,CAAC,CAAAzF,EAAG;AAAA;AAuDrD,SAAA0F,uBAAA;EAAA,MAAA3G,CAAA,GAAAC,EAAA;EACE,MAAAM,MAAA,GAAeC,oBAAoB,CAAC,CAAC;EACrC;IAAAoB;EAAA,IAA+B7G,KAAK,CAAAE,UAAW,CAAC0D,kBAAkB,CAAC;EACnE,MAAAiI,mBAAA,GAA4BhF,kBAAkB,EAAAH,WAAqB,EAAA6B,MAAK,IAA5C,CAA4C;EAAA,IAAAvD,EAAA;EAAA,IAAAC,CAAA,QAAA4B,kBAAA,EAAAH,WAAA;IACpD1B,EAAA,GAAA6B,kBAAkB,EAAAH,WAAmB,IAArC,EAAqC;IAAAzB,CAAA,MAAA4B,kBAAA,EAAAH,WAAA;IAAAzB,CAAA,MAAAD,EAAA;EAAA;IAAAA,EAAA,GAAAC,CAAA;EAAA;EAAzD,MAAAyB,WAAA,GAAoB1B,EAAqC;EAEzD,IAAI6G,mBAAmB,KAAK,CAAC;IAAA,OACpB,IAAI;EAAA;EAOc,MAAAhG,EAAA,GAAAL,MAAM,CAAAsG,sBAAuB;EAAA,IAAA9F,EAAA;EAAA,IAAAf,CAAA,QAAA4B,kBAAA,IAAA5B,CAAA,QAAAyB,WAAA;IAAA,IAAAT,EAAA;IAAA,IAAAhB,CAAA,QAAA4B,kBAAA;MAEnCZ,EAAA,GAAAuF,UAAA;QACf,MAAAO,IAAA,GAAa/J,yBAAyB,CAACwJ,UAAU,CAAAE,IAAK,CAAAD,IAAK,EAAED,UAAU,CAAAE,IAAK,CAAAM,IAAK,CAAC;QAClF,MAAAzC,MAAA,GAAeA,CAAA,KAAM1C,kBAAkB,EAAAoF,gBAA8B,CAAXT,UAAU,CAAC;QAErE,IAAIO,IAAI,KAAK,OAAO;UAAA,oBAEhBhJ,IAAA,CAACF,0BAA0B;YAEnBmJ,IAAoB,EAApBR,UAAU,CAAAE,IAAK,CAAAM,IAAK;YAClB3F,MAAiB,EAAjBmF,UAAU,CAAAnF,MAAO;YACPkD,gBAAM,EAANA;UAAM,GAHnBiC,UAAU,CAAAE,IAAK,CAAAQ,GAIrB,CAAC;QAAA;QAIN,IAAIH,IAAI,KAAK,MAAM;UAAA,oBAEfhJ,IAAA,CAACJ,yBAAyB;YAElBqJ,IAAoB,EAApBR,UAAU,CAAAE,IAAK,CAAAM,IAAK;YACbG,WAAoB,EAApBX,UAAU,CAAAE,IAAK,CAAAD,IAAK;YACzBpF,MAAiB,EAAjBmF,UAAU,CAAAnF,MAAO;YACPkD,gBAAM,EAANA;UAAM,GAJnBiC,UAAU,CAAAE,IAAK,CAAAQ,GAKrB,CAAC;QAAA;QAEL,oBAGCnJ,IAAA,CAACH,0BAA0B;UAEpBsJ,GAAmB,EAAnBV,UAAU,CAAAE,IAAK,CAAAQ,GAAI;UACnBE,GAAoB,EAApBZ,UAAU,CAAAE,IAAK,CAAAM,IAAK;UACjB3F,MAAiB,EAAjBmF,UAAU,CAAAnF,MAAO;UAClBgG,KAAqB,EAArBb,UAAU,CAAAE,IAAK,CAAAW,KAAM;UACpBC,MAAsB,EAAtBd,UAAU,CAAAE,IAAK,CAAAY,MAAO;UACZ/C,gBAAM,EAANA;QAAM,GANnBiC,UAAU,CAAAE,IAAK,CAAAQ,GAOrB,CAAC;MAAA,CAEL;MAAAjH,CAAA,MAAA4B,kBAAA;MAAA5B,CAAA,MAAAgB,EAAA;IAAA;MAAAA,EAAA,GAAAhB,CAAA;IAAA;IAtCAe,EAAA,GAAAU,WAAW,CAAAuD,GAAI,CAAChE,EAsChB,CAAC;IAAAhB,CAAA,MAAA4B,kBAAA;IAAA5B,CAAA,MAAAyB,WAAA;IAAAzB,CAAA,MAAAe,EAAA;EAAA;IAAAA,EAAA,GAAAf,CAAA;EAAA;EAAA,IAAAgB,EAAA;EAAA,IAAAhB,CAAA,QAAAO,MAAA,CAAAsG,sBAAA,IAAA7G,CAAA,QAAAe,EAAA;IA3CJC,EAAA,gBAAAlD,IAAA,CAACvC,UAAU;MACT+L,UAAU,EAAV,IAAU;MACsBC,8BAAK,EAAL,KAAK;MACdC,qBAA6B,EAA7B5G,EAA6B;MAAAT,QAAA,EAEnDY;IAsCC,CACQ,CAAC;IAAAf,CAAA,MAAAO,MAAA,CAAAsG,sBAAA;IAAA7G,CAAA,MAAAe,EAAA;IAAAf,CAAA,MAAAgB,EAAA;EAAA;IAAAA,EAAA,GAAAhB,CAAA;EAAA;EAAA,OA5CbgB,EA4Ca;AAAA;AAIjB,SAASyG,WAAWA,CAAChG,WAA6B,EAA8B;EAC9E,MAAMiG,KAAK,GAAG,IAAIC,GAAG,CACnBlG,WAAW,CAACuD,GAAG,CAAC,CAAC;IAAEyB;EAAK,CAAC,KAAK;IAC5B,IAAIA,IAAI,CAACD,IAAI,CAACrE,UAAU,CAAC,QAAQ,CAAC,EAAE,OAAO,OAAO;IAClD,IAAIsE,IAAI,CAACD,IAAI,CAACrE,UAAU,CAAC,QAAQ,CAAC,EAAE,OAAO,OAAO;IAClD,OAAO,MAAM;EACf,CAAC,CACH,CAAC;EACD,OAAOuF,KAAK,CAACE,IAAI,KAAK,CAAC,GAAG,CAAC,GAAGF,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM;AAClD;AAEA,SAAA5B,qBAAA;EAAA,MAAA9F,CAAA,GAAAC,EAAA;EACE,MAAAM,MAAA,GAAeC,oBAAoB,CAAC,CAAC;EACrC;IAAAoB;EAAA,IAA+B7G,KAAK,CAAAE,UAAW,CAAC0D,kBAAkB,CAAC;EAAA,IAAAkJ,UAAA;EAAA,IAAA9H,EAAA;EAAA,IAAAa,EAAA;EAAA,IAAAZ,CAAA,QAAA4B,kBAAA,EAAAH,WAAA;IAIpCb,EAAA,GAAA8E,MAAI,CAAAC,GAAA,CAAJ,6BAAG,CAAC;IAAAmC,GAAA;MAHnC,MAAAC,kBAAA,GAA2BnG,kBAAkB,EAAAH,WAAoB,CAAAqD,MAAgB,CAAfkD,MAAoB,CAAC,IAA5D,EAA4D;MACvF,MAAAC,YAAA,GAAqBF,kBAAkB,CAAAzE,MAAO;MAE9C,IAAI2E,YAAY,KAAK,CAAC;QAASrH,EAAA,OAAI;QAAJ,MAAAkH,GAAA;MAAI;MAEnCD,UAAA,GAAmBI,YAAY,KAAK,CAAC;MACpBlI,EAAA,GAAA0H,WAAW,CAACM,kBAAkB,CAAC;IAAA;IAAA/H,CAAA,MAAA4B,kBAAA,EAAAH,WAAA;IAAAzB,CAAA,MAAA6H,UAAA;IAAA7H,CAAA,MAAAD,EAAA;IAAAC,CAAA,MAAAY,EAAA;EAAA;IAAAiH,UAAA,GAAA7H,CAAA;IAAAD,EAAA,GAAAC,CAAA;IAAAY,EAAA,GAAAZ,CAAA;EAAA;EAAA,IAAAY,EAAA,KAAA8E,MAAA,CAAAC,GAAA;IAAA,OAAA/E,EAAA;EAAA;EAAhD,MAAAsH,QAAA,GAAiBnI,EAA+B;EAChD,MAAAoI,WAAA,GAAoBN,UAAU,GAAV,kBAA+BK,QAAQ,EAAkC,GAAzE,kBAA8DA,QAAQ,GAAG;EAAA,IAAAnH,EAAA;EAAA,IAAAf,CAAA,QAAA0F,MAAA,CAAAC,GAAA;IAMrF5E,EAAA,gBAAAjD,IAAA,CAAAL,eAAA,CAAA2K,UAAA,IAA6B,CAAC;IAAApI,CAAA,MAAAe,EAAA;EAAA;IAAAA,EAAA,GAAAf,CAAA;EAAA;EAAA,IAAAgB,EAAA;EAAA,IAAAhB,CAAA,QAAAkI,QAAA,IAAAlI,CAAA,QAAA6H,UAAA;IAE5B7G,EAAA,gBAAAlD,IAAA,CAACuK,aAAa;MAAaR,UAAU,EAAVA,UAAU;MAAYK,QAAQ,EAARA;IAAQ,CAAG,CAAC;IAAAlI,CAAA,MAAAkI,QAAA;IAAAlI,CAAA,MAAA6H,UAAA;IAAA7H,CAAA,MAAAgB,EAAA;EAAA;IAAAA,EAAA,GAAAhB,CAAA;EAAA;EAAA,IAAAwB,EAAA;EAAA,IAAAxB,CAAA,QAAA4B,kBAAA;IAMhDJ,EAAA,GAAAA,CAAA,KAAMI,kBAAkB,EAAA0G,wBAA4B,CAAD,CAAC;IAAAtI,CAAA,MAAA4B,kBAAA;IAAA5B,CAAA,MAAAwB,EAAA;EAAA;IAAAA,EAAA,GAAAxB,CAAA;EAAA;EAAA,IAAA0B,EAAA;EAAA,IAAA1B,CAAA,SAAAmI,WAAA,IAAAnI,CAAA,SAAAwB,EAAA;IAJ/DE,EAAA,gBAAA5D,IAAA,CAACN,MAAM;MACE2K,KAAW,EAAXA,WAAW;MACbP,IAAI,EAAJ,IAAI;MACEW,UAAQ,EAAR,QAAQ;MACVC,OAAoD,EAApDhH,EAAoD;MACzC2G,kBAAW,EAAXA;IAAW,CAChC,CAAC;IAAAnI,CAAA,OAAAmI,WAAA;IAAAnI,CAAA,OAAAwB,EAAA;IAAAxB,CAAA,OAAA0B,EAAA;EAAA;IAAAA,EAAA,GAAA1B,CAAA;EAAA;EAAA,IAAA8B,EAAA;EAAA,IAAA9B,CAAA,SAAAO,MAAA,CAAAkI,sBAAA,IAAAzI,CAAA,SAAA0B,EAAA;IAPJI,EAAA,gBAAAhE,IAAA,CAACpC,IAAI;MAAQuK,KAA6B,EAA7B1F,MAAM,CAAAkI,sBAAuB;MAAAtI,QAAA,EACxCuB;IAME,CACE,CAAC;IAAA1B,CAAA,OAAAO,MAAA,CAAAkI,sBAAA;IAAAzI,CAAA,OAAA0B,EAAA;IAAA1B,CAAA,OAAA8B,EAAA;EAAA;IAAAA,EAAA,GAAA9B,CAAA;EAAA;EAAA,IAAAiC,EAAA;EAAA,IAAAjC,CAAA,SAAAgB,EAAA,IAAAhB,CAAA,SAAA8B,EAAA;IAbbG,EAAA,gBAAAnE,IAAA,CAAAL,eAAA,CAAAS,IAAA;MAAiCqK,UAAO,EAAP,OAAO;MAAApI,QAAA,eACtCnC,KAAA,CAAAP,eAAA,CAAAiL,YAAA;QAAAvI,QAAA,GACEY,EAA8B,eAC9B/C,KAAA,CAAAP,eAAA,CAAAkL,OAAA;UAAAxI,QAAA,GACEa,EAA6D,EAC7Dc,EAQO;QAAA,CACgB,CAAC;MAAA,CACE;IAAC,CACX,CAAC;IAAA9B,CAAA,OAAAgB,EAAA;IAAAhB,CAAA,OAAA8B,EAAA;IAAA9B,CAAA,OAAAiC,EAAA;EAAA;IAAAA,EAAA,GAAAjC,CAAA;EAAA;EAAA,IAAAkC,EAAA;EAAA,IAAAlC,CAAA,SAAAO,MAAA,CAAAqI,sBAAA,IAAA5I,CAAA,SAAAiC,EAAA;IAjBzBC,EAAA,gBAAApE,IAAA,CAACpC,IAAI;MAAQuK,KAA6B,EAA7B1F,MAAM,CAAAqI,sBAAuB;MAAAzI,QAAA,EACxC8B;IAgBuB,CACnB,CAAC;IAAAjC,CAAA,OAAAO,MAAA,CAAAqI,sBAAA;IAAA5I,CAAA,OAAAiC,EAAA;IAAAjC,CAAA,OAAAkC,EAAA;EAAA;IAAAA,EAAA,GAAAlC,CAAA;EAAA;EAAA,OAlBPkC,EAkBO;AAAA;AA/BX,SAAA8F,OAAAtB,CAAA;EAAA,OAGyEA,CAAC,CAAAmC,OAAQ;AAAA;AAgClF,SAAAR,cAAAtI,EAAA;EAAA,MAAAC,CAAA,GAAAC,EAAA;EAAuB;IAAA4H,UAAA;IAAAK;EAAA,IAAAnI,EAAmE;EACxF,MAAAQ,MAAA,GAAeC,oBAAoB,CAAC,CAAC;EAAA,IAAAI,EAAA;EAAA,IAAAZ,CAAA,QAAAO,MAAA,CAAAuI,iBAAA;IAGnClI,EAAA,gBAAA9C,IAAA,CAAC9B,IAAI;MACIiK,KAAwB,EAAxB1F,MAAM,CAAAuI,iBAAkB;MACtBN,OAGN,EAHMO,MAGN;MAEeC,iBAAM,EAAN,MAAM;MAAA7I,QAAA,EACzB;IAED,CAAM,CAAC;IAAAH,CAAA,MAAAO,MAAA,CAAAuI,iBAAA;IAAA9I,CAAA,MAAAY,EAAA;EAAA;IAAAA,EAAA,GAAAZ,CAAA;EAAA;EAXT,MAAAiJ,qBAAA,GACErI,EAUO;EACR,IAAAG,EAAA;EAAA,IAAAf,CAAA,QAAAiJ,qBAAA,IAAAjJ,CAAA,QAAAkI,QAAA,IAAAlI,CAAA,QAAA6H,UAAA,IAAA7H,CAAA,QAAAO,MAAA,CAAA2I,iBAAA;IAEMnI,EAAA,GAAA8G,UAAU,gBAAV7J,KAAA,CACJhC,IAAI;MAAQiK,KAAwB,EAAxB1F,MAAM,CAAA2I,iBAAkB;MAAA/I,QAAA,GAAE,cACzB,EAAC+H,QAAQ,EAAC,2CAAyC,EAACe,qBAAqB,EAAC,oCAExF;IAAA,CAMF,CAAC,gBAVMjL,KAAA,CAMJhC,IAAI;MAAQiK,KAAwB,EAAxB1F,MAAM,CAAA2I,iBAAkB;MAAA/I,QAAA,GAAE,gBACvB,EAAC+H,QAAQ,EAAC,6CAA2C,EAACe,qBAAqB,EAAC,yCAE5F;IAAA,CACF,CAAC;IAAAjJ,CAAA,MAAAiJ,qBAAA;IAAAjJ,CAAA,MAAAkI,QAAA;IAAAlI,CAAA,MAAA6H,UAAA;IAAA7H,CAAA,MAAAO,MAAA,CAAA2I,iBAAA;IAAAlJ,CAAA,MAAAe,EAAA;EAAA;IAAAA,EAAA,GAAAf,CAAA;EAAA;EAAA,OAVMe,EAUN;AAAA;AA3BH,SAAAgI,OAAA;EAAA,OAOQ3N,OAAO,CAAA+N,OAAQ,CACb,6FACF,CAAC;AAAA;AAqBT,SAAA/K,iBAAA;EAAA,MAAA4B,CAAA,GAAAC,EAAA;EACE,MAAAM,MAAA,GAAeC,oBAAoB,CAAC,CAAC;EACrC,MAAA4I,KAAA,GAAcxO,QAAQ,CAAC,CAAC;EACxB,MAAAyO,SAAA,GAAkB/M,YAAY,CAAC,CAAC;EAChC;IAAAuC,IAAA;IAAAC,OAAA;IAAAE,QAAA;IAAAE,aAAA;IAAAE,UAAA;IAAAwC,kBAAA;IAAAnC;EAAA,IACE1E,KAAK,CAAAE,UAAW,CAAC0D,kBAAkB,CAAC;EACtC,MAAA2K,eAAA,GAAwB1H,kBAAkB,EAAA2H,YAAc;EAExD,MAAAC,qBAAA,GAA8BhN,wBAAwB,CAAC,CAAC;EAAA,IAAAuD,EAAA;EAAA,IAAAC,CAAA,QAAAwJ,qBAAA,IAAAxJ,CAAA,QAAAlB,OAAA;IAE/BiB,EAAA,GAAA0J,OAAA;MACvB3K,OAAO,CAAC2K,OAAO,CAAC;MAEhB,IAAIA,OAAO,CAAAnG,MAAO,GAAG,CAAC;QACpBkG,qBAAqB,CAAC,CAAC;MAAA;IACxB,CACF;IAAAxJ,CAAA,MAAAwJ,qBAAA;IAAAxJ,CAAA,MAAAlB,OAAA;IAAAkB,CAAA,MAAAD,EAAA;EAAA;IAAAA,EAAA,GAAAC,CAAA;EAAA;EAND,MAAA0J,gBAAA,GAAyB3J,EAMxB;EAED,MAAA4J,kBAAA,GAA2BN,SAAS,IAAIvJ,gCAAgC;EACxE,IAAA8J,WAAA,GAAkBD,kBAAkB,GAAlB,SAAiD,GAAjD,gBAAiD;EACnE,IAAIlK,WAAW;IACbmK,WAAA,CAAAA,CAAA,CAAcD,kBAAkB,GAAlB,OAA6C,GAA7C,cAA6C;EAAhD;EAEb,IAAIvK,UAAU;IACZwK,WAAA,CAAAA,CAAA,CAAcD,kBAAkB,GAAlB,QAA6C,GAA7C,aAA6C;EAAhD;EACZ,IAAA/I,EAAA;EAAA,IAAAZ,CAAA,QAAA0F,MAAA,CAAAC,GAAA;IAIG/E,EAAA,gBAAA9C,IAAA,CAAC6I,sBAAsB,IAAE,CAAC;IAAA3G,CAAA,MAAAY,EAAA;EAAA;IAAAA,EAAA,GAAAZ,CAAA;EAAA;EAAA,IAAAe,EAAA;EAAA,IAAAf,CAAA,QAAAsJ,eAAA,IAAAtJ,CAAA,QAAAO,MAAA,CAAAsJ,iBAAA;IACzB9I,EAAA,GAAAuI,eAAe,gBAAfxL,IAAA,CAAmB9B,IAAI;MAAQiK,KAAwB,EAAxB1F,MAAM,CAAAsJ,iBAAkB;MAAA1J,QAAA,EAAGmJ;IAAe,CAAc,CAAC,GAAxF,IAAwF;IAAAtJ,CAAA,MAAAsJ,eAAA;IAAAtJ,CAAA,MAAAO,MAAA,CAAAsJ,iBAAA;IAAA7J,CAAA,MAAAe,EAAA;EAAA;IAAAA,EAAA,GAAAf,CAAA;EAAA;EAAA,IAAAgB,EAAA;EAAA,IAAAhB,CAAA,QAAAO,MAAA,CAAAuJ,UAAA,IAAA9J,CAAA,QAAAO,MAAA,CAAAwJ,cAAA,IAAA/J,CAAA,QAAAO,MAAA,CAAAyJ,cAAA,IAAAhK,CAAA,SAAAZ,UAAA;IAEtF4B,EAAA,GAAA5B,UAAU,gBAAVpB,KAAA,CACEtC,IAAI;MAAQuK,KAAiB,EAAjB1F,MAAM,CAAAuJ,UAAW;MAAA3J,QAAA,gBAC5BrC,IAAA,CAAChC,IAAI;QAAMiL,IAAc,EAAd,cAAc;QAAQd,KAAqB,EAArB1F,MAAM,CAAAwJ;MAAe,CAAG,CAAC,eAC1DjM,IAAA,CAAC9B,IAAI;QAASiO,OAAU,EAAV,UAAU;QAAQhE,KAAqB,EAArB1F,MAAM,CAAAyJ,cAAe;QAAA7J,QAAA,EAAE;MAEvD,CAAM,CAAC;IAAA,CAEJ,CAAC,GAPP,IAOO;IAAAH,CAAA,MAAAO,MAAA,CAAAuJ,UAAA;IAAA9J,CAAA,MAAAO,MAAA,CAAAwJ,cAAA;IAAA/J,CAAA,MAAAO,MAAA,CAAAyJ,cAAA;IAAAhK,CAAA,OAAAZ,UAAA;IAAAY,CAAA,OAAAgB,EAAA;EAAA;IAAAA,EAAA,GAAAhB,CAAA;EAAA;EAIoB,MAAAwB,EAAA,GAAApC,UAAuC,IAAzBmB,MAAM,CAAA2J,kBAAmB;EAAA,IAAAxI,EAAA;EAAA,IAAA1B,CAAA,SAAAO,MAAA,CAAA4J,SAAA,IAAAnK,CAAA,SAAAwB,EAAA;IAA1DE,EAAA,IAACnB,MAAM,CAAA4J,SAAU,EAAE3I,EAAuC,CAAC;IAAAxB,CAAA,OAAAO,MAAA,CAAA4J,SAAA;IAAAnK,CAAA,OAAAwB,EAAA;IAAAxB,CAAA,OAAA0B,EAAA;EAAA;IAAAA,EAAA,GAAA1B,CAAA;EAAA;EAMvD,MAAA8B,EAAA,GAAA1C,UAAU,GAAVQ,gBAAkD,GAAlDC,kBAAkD;EAE7C,MAAAoC,EAAA,GAAA7C,UAAU,GAAV,QAAiC,GAAjC,SAAiC;EAAA,IAAA8C,EAAA;EAAA,IAAAlC,CAAA,SAAA0J,gBAAA,IAAA1J,CAAA,SAAAd,aAAA,IAAAc,CAAA,SAAAhB,QAAA,IAAAgB,CAAA,SAAA4J,WAAA,IAAA5J,CAAA,SAAA0B,EAAA,IAAA1B,CAAA,SAAA8B,EAAA,IAAA9B,CAAA,SAAAiC,EAAA,IAAAjC,CAAA,SAAAnB,IAAA,IAAAmB,CAAA,SAAAoJ,KAAA,CAAAgB,MAAA,CAAAC,2BAAA;IAVnDnI,EAAA,gBAAApE,IAAA,CAACrC,SAAS;MACD6O,MAAwB,EAAxB,wBAAwB;MACxBrE,KAA2D,EAA3DvE,EAA2D;MACvD6I,SAAI,EAAJ,IAAI;MACFX,WAAW,EAAXA,WAAW;MACFY,oBAAwC,EAAxCpB,KAAK,CAAAgB,MAAO,CAAAC,2BAA4B;MAChDX,YAAgB,EAAhBA,gBAAgB;MACvB7K,KAAI,EAAJA,IAAI;MACA4L,SAAkD,EAAlD3I,EAAkD;MAC5C9C,eAAQ,EAARA,QAAQ;MACT0L,cAAiC,EAAjCzI,EAAiC;MACvC/C,QAAa,EAAbA;IAAa,CACxB,CAAC;IAAAc,CAAA,OAAA0J,gBAAA;IAAA1J,CAAA,OAAAd,aAAA;IAAAc,CAAA,OAAAhB,QAAA;IAAAgB,CAAA,OAAA4J,WAAA;IAAA5J,CAAA,OAAA0B,EAAA;IAAA1B,CAAA,OAAA8B,EAAA;IAAA9B,CAAA,OAAAiC,EAAA;IAAAjC,CAAA,OAAAnB,IAAA;IAAAmB,CAAA,OAAAoJ,KAAA,CAAAgB,MAAA,CAAAC,2BAAA;IAAArK,CAAA,OAAAkC,EAAA;EAAA;IAAAA,EAAA,GAAAlC,CAAA;EAAA;EAAA,IAAAqC,EAAA;EAAA,IAAArC,CAAA,SAAAO,MAAA,CAAAoK,YAAA,IAAA3K,CAAA,SAAAgB,EAAA,IAAAhB,CAAA,SAAAkC,EAAA;IAtBJG,EAAA,gBAAArE,KAAA,CAACtC,IAAI;MAAQuK,KAAmB,EAAnB1F,MAAM,CAAAoK,YAAa;MAAAxK,QAAA,GAC7Ba,EAOO,EAERkB,EAYE;IAAA,CACE,CAAC;IAAAlC,CAAA,OAAAO,MAAA,CAAAoK,YAAA;IAAA3K,CAAA,OAAAgB,EAAA;IAAAhB,CAAA,OAAAkC,EAAA;IAAAlC,CAAA,OAAAqC,EAAA;EAAA;IAAAA,EAAA,GAAArC,CAAA;EAAA;EAAA,IAAAoC,GAAA;EAAA,IAAApC,CAAA,SAAAO,MAAA,CAAAqK,iBAAA,IAAA5K,CAAA,SAAAe,EAAA,IAAAf,CAAA,SAAAqC,EAAA;IA1BTD,GAAA,gBAAApE,KAAA,CAACtC,IAAI;MAAQuK,KAAwB,EAAxB1F,MAAM,CAAAqK,iBAAkB;MAAAzK,QAAA,GACnCS,EAA0B,EACzBG,EAAwF,EACzFsB,EAuBO;IAAA,CACH,CAAC;IAAArC,CAAA,OAAAO,MAAA,CAAAqK,iBAAA;IAAA5K,CAAA,OAAAe,EAAA;IAAAf,CAAA,OAAAqC,EAAA;IAAArC,CAAA,OAAAoC,GAAA;EAAA;IAAAA,GAAA,GAAApC,CAAA;EAAA;EAAA,OA3BPoC,GA2BO;AAAA;AAIX,MAAMyI,8BAA8B,GAAG;EACrCC,KAAK,EAAE,cAAc;EACrBC,OAAO,EAAE,cAAc;EACvBC,IAAI,EAAE;AACR,CAAU;AAEV,MAAMC,oBAAoB,GAAG;EAC3BH,KAAK,EAAE,gBAAgB;EACvBC,OAAO,EAAE,eAAe;EACxBC,IAAI,EAAE;AACR,CAAU;AAEV,SAAA1M,qBAAA;EAAA,MAAA0B,CAAA,GAAAC,EAAA;EACE;IAAAjB,QAAA;IAAAC,QAAA;IAAAG,UAAA;IAAAG;EAAA,IACExE,KAAK,CAAAE,UAAW,CAAC0D,kBAAkB,CAAC;EACtC,MAAA4B,MAAA,GAAeC,oBAAoB,CAAC,CAAC;EACrC;IAAA4J;EAAA,IAAmBxP,QAAQ,CAAC,CAAC;EAE7B,MAAAsQ,YAAA,GAAqB9L,UAAU,GAAV,OAAmE,GAA5CG,uBAAuB,GAAvB,SAA4C,GAA5C,MAA4C;EACxF,MAAA4L,QAAA,GAAiBlM,QAAQ,GAAR,UAAqC,GAArC,aAAqC;EACtD,MAAAmM,gBAAA,GAAyBhB,MAAM,CAAAiB,WAAkC,IAAlBjB,MAAM,CAAAkB,WAAY;EACjE,MAAAC,cAAA,GAAuBnB,MAAM,CAAAoB,SAAgC,IAAlBpB,MAAM,CAAAkB,WAAY;EAAA,IAAAvL,EAAA;EAAA,IAAAC,CAAA,QAAAoK,MAAA,CAAAqB,mCAAA;IAEjD1L,EAAA,IACRqK,MAAM,CAAAqB,mCAAoC,EAC1CrB,MAAM,CAAAqB,mCAAoC,CAC3C;IAAAzL,CAAA,MAAAoK,MAAA,CAAAqB,mCAAA;IAAAzL,CAAA,MAAAD,EAAA;EAAA;IAAAA,EAAA,GAAAC,CAAA;EAAA;EAAA,IAAAY,EAAA;EAAA,IAAAZ,CAAA,QAAAuL,cAAA,IAAAvL,CAAA,QAAAoL,gBAAA;IACYxK,EAAA,IAACwK,gBAAgB,EAAEG,cAAc,CAAC;IAAAvL,CAAA,MAAAuL,cAAA;IAAAvL,CAAA,MAAAoL,gBAAA;IAAApL,CAAA,MAAAY,EAAA;EAAA;IAAAA,EAAA,GAAAZ,CAAA;EAAA;EAAA,IAAAe,EAAA;EAAA,IAAAf,CAAA,QAAAD,EAAA,IAAAC,CAAA,QAAAY,EAAA;IALhCG,EAAA;MAAA9B,QAAA,EACLc,EAGT;MAAAuL,WAAA,EACY1K;IACf,CAAC;IAAAZ,CAAA,MAAAD,EAAA;IAAAC,CAAA,MAAAY,EAAA;IAAAZ,CAAA,MAAAe,EAAA;EAAA;IAAAA,EAAA,GAAAf,CAAA;EAAA;EAND,MAAA0L,QAAA,GAAiB3K,EAMhB;EAE+D,MAAAC,EAAA,GAAA0K,QAAQ,CAACP,QAAQ,CAAC;EAAA,IAAA3J,EAAA;EAAA,IAAAxB,CAAA,QAAAgB,EAAA;IAA3BQ,EAAA;MAAAmK,KAAA,EAAS3K,EAAkB;IAAI,CAAC;IAAAhB,CAAA,MAAAgB,EAAA;IAAAhB,CAAA,MAAAwB,EAAA;EAAA;IAAAA,EAAA,GAAAxB,CAAA;EAAA;EAAvF,MAAA4L,kBAAA,GAA2BzP,2BAA2B,CAACqF,EAAgC,CAAC;EACxF,MAAAqK,cAAA,GAAuBH,QAAQ,CAACP,QAAQ,CAAC;EACF,MAAAzJ,EAAA,GAAAzC,QAAqC,IAAzBsB,MAAM,CAAAuL,kBAAmB;EAAA,IAAAhK,EAAA;EAAA,IAAA9B,CAAA,SAAAO,MAAA,CAAAwL,UAAA,IAAA/L,CAAA,SAAA0B,EAAA;IAAzDI,EAAA,IAACvB,MAAM,CAAAwL,UAAW,EAAErK,EAAqC,CAAC;IAAA1B,CAAA,OAAAO,MAAA,CAAAwL,UAAA;IAAA/L,CAAA,OAAA0B,EAAA;IAAA1B,CAAA,OAAA8B,EAAA;EAAA;IAAAA,EAAA,GAAA9B,CAAA;EAAA;EAA7E,MAAAgM,UAAA,GAAmBlK,EAA0D;EAOrD,MAAAG,EAAA,GAAA4I,8BAA8B,CAACK,YAAY,CAAC;EAAA,IAAAhJ,EAAA;EAAA,IAAAlC,CAAA,SAAAO,MAAA,CAAA0L,sBAAA;IACzD/J,EAAA,GAAAG,EAAA;MAAC;QAAA6J;MAAA,IAAA7J,EAAW;MAAA,OAAK,CACtB9B,MAAM,CAAA0L,sBAAuB,EAC7BC,OAAsC,IAAtCpP,2BAAsC,CACvC;IAAA;IAAAkD,CAAA,OAAAO,MAAA,CAAA0L,sBAAA;IAAAjM,CAAA,OAAAkC,EAAA;EAAA;IAAAA,EAAA,GAAAlC,CAAA;EAAA;EAAA,IAAAqC,EAAA;EAAA,IAAArC,CAAA,SAAA4L,kBAAA;IACevJ,EAAA;MAAAsJ,KAAA,EAASC,kBAAkB;MAAAO,UAAA,EAAc,KAAK;MAAAC,UAAA,EAAc;IAAK,CAAC;IAAApM,CAAA,OAAA4L,kBAAA;IAAA5L,CAAA,OAAAqC,EAAA;EAAA;IAAAA,EAAA,GAAArC,CAAA;EAAA;EAAA,IAAAoC,GAAA;EAAA,IAAAE,GAAA;EAAA,IAAAtC,CAAA,SAAA0F,MAAA,CAAAC,GAAA;IAGzEvD,GAAA;MAAAiK,CAAA,EAAK,GAAG;MAAAC,CAAA,EAAK;IAAI,CAAC;IACpBhK,GAAA;MAAA+J,CAAA,EAAK,GAAG;MAAAC,CAAA,EAAK;IAAI,CAAC;IAAAtM,CAAA,OAAAoC,GAAA;IAAApC,CAAA,OAAAsC,GAAA;EAAA;IAAAF,GAAA,GAAApC,CAAA;IAAAsC,GAAA,GAAAtC,CAAA;EAAA;EAKf,MAAAuC,GAAA,GAAA0I,oBAAoB,CAACC,YAAY,CAAC;EAAA,IAAAxI,GAAA;EAAA,IAAA1C,CAAA,SAAAgM,UAAA,IAAAhM,CAAA,SAAAuC,GAAA;IAD1CG,GAAA,gBAAA5E,IAAA,CAAChC,IAAI;MACGiL,IAAkC,EAAlCxE,GAAkC;MACjCyJ,KAAU,EAAVA,UAAU;MACYO,2BAAI,EAAJ;IAAI,CAClC,CAAC;IAAAvM,CAAA,OAAAgM,UAAA;IAAAhM,CAAA,OAAAuC,GAAA;IAAAvC,CAAA,OAAA0C,GAAA;EAAA;IAAAA,GAAA,GAAA1C,CAAA;EAAA;EAAA,IAAA2C,GAAA;EAAA,IAAA3C,CAAA,SAAA6L,cAAA,IAAA7L,CAAA,SAAAO,MAAA,CAAAiM,qBAAA,IAAAxM,CAAA,SAAA0C,GAAA;IAVJC,GAAA,gBAAA7E,IAAA,CAAClC,cAAc;MACN6Q,KAAkB,EAAlBrK,GAAkB;MACpBsK,GAAkB,EAAlBpK,GAAkB;MACfuJ,MAAc,EAAdA,cAAc;MACf5F,KAA4B,EAA5B1F,MAAM,CAAAiM,qBAAsB;MAAArM,QAAA,EAEnCuC;IAIE,CACY,CAAC;IAAA1C,CAAA,OAAA6L,cAAA;IAAA7L,CAAA,OAAAO,MAAA,CAAAiM,qBAAA;IAAAxM,CAAA,OAAA0C,GAAA;IAAA1C,CAAA,OAAA2C,GAAA;EAAA;IAAAA,GAAA,GAAA3C,CAAA;EAAA;EAAA,IAAA+C,GAAA;EAAA,IAAA/C,CAAA,SAAAf,QAAA,IAAAe,CAAA,SAAAhB,QAAA,IAAAgB,CAAA,SAAA2C,GAAA,IAAA3C,CAAA,SAAAiC,EAAA,IAAAjC,CAAA,SAAAkC,EAAA,IAAAlC,CAAA,SAAAqC,EAAA;IAtBnBU,GAAA,gBAAAjF,IAAA,CAACxC,SAAS;MACE2D,QAAQ,EAARA,QAAQ;MACTD,OAAQ,EAARA,QAAQ;MACCgK,iBAAQ,EAAR,QAAQ;MACN2D,kBAA4C,EAA5C1K,EAA4C;MACzDgE,KAGN,EAHM/D,EAGN;MACe0K,cAAkE,EAAlEvK,EAAkE;MAAAlC,QAAA,EAElFwC;IAWiB,CACR,CAAC;IAAA3C,CAAA,OAAAf,QAAA;IAAAe,CAAA,OAAAhB,QAAA;IAAAgB,CAAA,OAAA2C,GAAA;IAAA3C,CAAA,OAAAiC,EAAA;IAAAjC,CAAA,OAAAkC,EAAA;IAAAlC,CAAA,OAAAqC,EAAA;IAAArC,CAAA,OAAA+C,GAAA;EAAA;IAAAA,GAAA,GAAA/C,CAAA;EAAA;EAAA,OAvBZ+C,GAuBY;AAAA;AAIhB,SAAAvE,4BAAA;EAAA,MAAAwB,CAAA,GAAAC,EAAA;EACE,MAAAM,MAAA,GAAeC,oBAAoB,CAAC,CAAC;EACrC;IAAApB,UAAA;IAAAwC,kBAAA;IAAArC;EAAA,IACExE,KAAK,CAAAE,UAAW,CAAC0D,kBAAkB,CAAC;EACtC;IAAAkO;EAAA,IAA6BpQ,oBAAoB,CAAC,CAAC;EACnD,OAAAqQ,MAAA,EAAAC,SAAA,IAA4B5R,QAAQ,CAAC,KAAK,CAAC;EAAA,IAAA4E,EAAA;EAAA,IAAAC,CAAA,QAAA4B,kBAAA;IAE3C7B,EAAA,YAAAiN,wBAAAC,MAAA;MACE,IAAIA,MAAM,CAAAC,QAAS;QAAA;MAAA;MAInB,MAAAC,cAAA,GAAuBF,MAAM,CAAAG,MAAO,CAAAtI,MAC3B,CAACuI,MAEP,CAAC,CAAArI,GACE,CAACsI,MASJ,CAAC;MAEJ1L,kBAAkB,EAAA2L,mBAAqC,CAAfJ,cAAc,CAAC;IAAA,CACxD;IAAAnN,CAAA,MAAA4B,kBAAA;IAAA5B,CAAA,MAAAD,EAAA;EAAA;IAAAA,EAAA,GAAAC,CAAA;EAAA;EArBD,MAAAgN,uBAAA,GAAAjN,EAqBC;EAAA,IAAAa,EAAA;EAAA,IAAAZ,CAAA,QAAA4B,kBAAA;IAEDhB,EAAA,YAAA4M,2BAAAC,QAAA;MACE,IAAIR,QAAM,CAAAC,QAAS;QAAA;MAAA;MAEnB,MAAAQ,gBAAA,GAAuBT,QAAM,CAAAG,MAAO,CAAAtI,MAC3B,CAAC6I,MAAwC,CAAC,CAAA3I,GAC7C,CAAC4I,MAKH,CAAC;MAELhM,kBAAkB,EAAA2L,mBAAqC,CAAfJ,gBAAc,CAAC;IAAA,CACxD;IAAAnN,CAAA,MAAA4B,kBAAA;IAAA5B,CAAA,MAAAY,EAAA;EAAA;IAAAA,EAAA,GAAAZ,CAAA;EAAA;EAbD,MAAAwN,0BAAA,GAAA5M,EAaC;EAAA,IAAAG,EAAA;EAAA,IAAAf,CAAA,QAAAgN,uBAAA;IAEkBjM,EAAA,SAAAA,CAAA;MACjBgM,SAAS,CAAC,KAAK,CAAC;MAChB,MAAAc,QAAA,GAAa,MAAMvQ,WAAW,CAAAwQ,eAAgB,CAAC,CAAC;MAChD,IAAI,CAACb,QAAM,CAAAC,QAAS;QAClBF,uBAAuB,CAACC,QAAM,CAAC;MAAA;IAChC,CACF;IAAAjN,CAAA,MAAAgN,uBAAA;IAAAhN,CAAA,MAAAe,EAAA;EAAA;IAAAA,EAAA,GAAAf,CAAA;EAAA;EAND,MAAA+N,UAAA,GAAmBhN,EAMlB;EAAA,IAAAC,EAAA;EAAA,IAAAhB,CAAA,QAAAgN,uBAAA;IAEiBhM,EAAA,SAAAA,CAAA;MAChB+L,SAAS,CAAC,KAAK,CAAC;MAChB,MAAAiB,QAAA,GAAa,MAAM1Q,WAAW,CAAA2Q,qBAAsB,CAAC,CAAC;MACtD,IAAI,CAAChB,QAAM,CAAAC,QAAS;QAClBF,uBAAuB,CAACC,QAAM,CAAC;MAAA;IAChC,CACF;IAAAjN,CAAA,MAAAgN,uBAAA;IAAAhN,CAAA,MAAAgB,EAAA;EAAA;IAAAA,EAAA,GAAAhB,CAAA;EAAA;EAND,MAAAkO,SAAA,GAAkBlN,EAMjB;EAAA,IAAAQ,EAAA;EAAA,IAAAxB,CAAA,QAAA6M,gBAAA,IAAA7M,CAAA,QAAAwN,0BAAA;IAEgBhM,EAAA,SAAAA,CAAA;MACfuL,SAAS,CAAC,KAAK,CAAC;MAChB,MAAAoB,QAAA,GAAa,MAAM/Q,cAAc,CAAAgR,SAAU,CAAC;QAAAC,SAAA,EAAaxB;MAAiB,CAAC,CAAC;MAC5E,IAAI,CAACI,QAAM,CAAAC,QAAS;QAClBM,0BAA0B,CAACP,QAAM,CAAC;MAAA;IACnC,CACF;IAAAjN,CAAA,MAAA6M,gBAAA;IAAA7M,CAAA,MAAAwN,0BAAA;IAAAxN,CAAA,OAAAwB,EAAA;EAAA;IAAAA,EAAA,GAAAxB,CAAA;EAAA;EAND,MAAAsO,QAAA,GAAiB9M,EAMhB;EAED,IAAIpC,UAAqC,IAArCG,uBAAqC;IAAA,OAChC,IAAI;EAAA;EACZ,IAAAmC,EAAA;EAAA,IAAA1B,CAAA,SAAA8M,MAAA,IAAA9M,CAAA,SAAA+N,UAAA,IAAA/N,CAAA,SAAAsO,QAAA,IAAAtO,CAAA,SAAAkO,SAAA,IAAAlO,CAAA,SAAAO,MAAA,CAAAgO,sBAAA,IAAAvO,CAAA,SAAAO,MAAA,CAAAiO,gCAAA;IAII9M,EAAA,GAAAoL,MAgCA,iBAhCA9O,KAAA,CACEtC,IAAI;MAAQuK,KAAuC,EAAvC1F,MAAM,CAAAiO,gCAAiC;MAAArO,QAAA,gBAClDrC,IAAA,CAAC/B,UAAU;QACU4Q,kBAAc,EAAd,cAAc;QACf8B,iBAAmB,EAAnB,mBAAmB;QAChC7G,IAAI,EAAJ,IAAI;QACEW,UAAS,EAAT,SAAS;QACfxB,IAAa,EAAb,aAAa;QACTgH,OAAU,EAAVA,UAAU;QACZ9H,KAA6B,EAA7B1F,MAAM,CAAAgO;MAAuB,CACrC,CAAC,eACFzQ,IAAA,CAAC/B,UAAU;QACU4Q,kBAAgB,EAAhB,gBAAgB;QACjB8B,iBAA0B,EAA1B,0BAA0B;QACvC7G,IAAI,EAAJ,IAAI;QACEW,UAAS,EAAT,SAAS;QACfxB,IAAwB,EAAxB,wBAAwB;QACpBmH,OAAS,EAATA,SAAS;QACXjI,KAA6B,EAA7B1F,MAAM,CAAAgO;MAAuB,CACrC,CAAC,EACDnR,cAAc,CAAAsR,UAUd,iBAVA5Q,IAAA,CACE/B,UAAU;QACU4Q,kBAAe,EAAf,eAAe;QAChB8B,iBAAsC,EAAtC,sCAAsC;QACnD7G,IAAI,EAAJ,IAAI;QACEW,UAAS,EAAT,SAAS;QACfxB,IAAmB,EAAnB,mBAAmB;QACfuH,OAAQ,EAARA,QAAQ;QACVrI,KAA6B,EAA7B1F,MAAM,CAAAgO;MAAuB,CAExC,CAAC;IAAA,CAEL,CAAC;IAAAvO,CAAA,OAAA8M,MAAA;IAAA9M,CAAA,OAAA+N,UAAA;IAAA/N,CAAA,OAAAsO,QAAA;IAAAtO,CAAA,OAAAkO,SAAA;IAAAlO,CAAA,OAAAO,MAAA,CAAAgO,sBAAA;IAAAvO,CAAA,OAAAO,MAAA,CAAAiO,gCAAA;IAAAxO,CAAA,OAAA0B,EAAA;EAAA;IAAAA,EAAA,GAAA1B,CAAA;EAAA;EAAA,IAAA8B,EAAA;EAAA,IAAA9B,CAAA,SAAA8M,MAAA;IAOUhL,EAAA,GAAAA,CAAA,KAAMiL,SAAS,CAAC,CAACD,MAAM,CAAC;IAAA9M,CAAA,OAAA8M,MAAA;IAAA9M,CAAA,OAAA8B,EAAA;EAAA;IAAAA,EAAA,GAAA9B,CAAA;EAAA;EAAA,IAAAiC,EAAA;EAAA,IAAAjC,CAAA,SAAAO,MAAA,CAAAoO,UAAA,IAAA3O,CAAA,SAAA8B,EAAA;IANnCG,EAAA,gBAAAnE,IAAA,CAAC/B,UAAU;MACU4Q,kBAAW,EAAX,WAAW;MACZ8B,iBAAyC,EAAzC,yCAAyC;MACtD7G,IAAI,EAAJ,IAAI;MACEW,UAAS,EAAT,SAAS;MACfxB,IAAmB,EAAnB,mBAAmB;MACfyB,OAAwB,EAAxB1G,EAAwB;MAC1BmE,KAAiB,EAAjB1F,MAAM,CAAAoO;IAAW,CACzB,CAAC;IAAA3O,CAAA,OAAAO,MAAA,CAAAoO,UAAA;IAAA3O,CAAA,OAAA8B,EAAA;IAAA9B,CAAA,OAAAiC,EAAA;EAAA;IAAAA,EAAA,GAAAjC,CAAA;EAAA;EAAA,IAAAkC,EAAA;EAAA,IAAAlC,CAAA,SAAAO,MAAA,CAAAqO,gBAAA,IAAA5O,CAAA,SAAA0B,EAAA,IAAA1B,CAAA,SAAAiC,EAAA;IA1CJC,EAAA,gBAAAlE,KAAA,CAACtC,IAAI;MAAQuK,KAAuB,EAAvB1F,MAAM,CAAAqO,gBAAiB;MAAAzO,QAAA,GACjCuB,EAgCA,EACDO,EAQE;IAAA,CACE,CAAC;IAAAjC,CAAA,OAAAO,MAAA,CAAAqO,gBAAA;IAAA5O,CAAA,OAAA0B,EAAA;IAAA1B,CAAA,OAAAiC,EAAA;IAAAjC,CAAA,OAAAkC,EAAA;EAAA;IAAAA,EAAA,GAAAlC,CAAA;EAAA;EAAA,OA3CPkC,EA2CO;AAAA;AArHX,SAAA0L,OAAAiB,OAAA;EAAA,OAmCqB;IAAA5H,GAAA,EACR6H,OAAK,CAAA7H,GAAI;IAAAF,IAAA,EACR+H,OAAK,CAAA/H,IAAK;IAAAP,IAAA,EACVsI,OAAK,CAAAC,QAAuC,IAA5C,0BAA4C;IAAAnH,IAAA,EAC5CkH,OAAK,CAAAlH;EACb,CAAC;AAAA;AAxCP,SAAA+F,OAAAqB,OAAA;EAAA,OAkCuBF,OAAK,CAAAlH,IAAK,IAAI,IAAiB,IAATkH,OAAK,CAAA7H,GAAI;AAAA;AAlCtD,SAAAqG,OAAA2B,OAAA;EAAA,OAiBe;IAAAhI,GAAA,EACA6H,OAAK,CAAA7H,GAAI;IAAAF,IAAA,EACR+H,OAAK,CAAAI,QAAuC,IAA1BJ,OAAK,CAAA7H,GAAI,CAAAkI,KAAM,CAAC,GAAG,CAAC,CAAAC,GAAI,CAAC,CAAiB,IAA5D,YAA4D;IAAA5I,IAAA,EAC5DsI,OAAK,CAAAC,QAAS;IAAAnH,IAAA,EACdkH,OAAK,CAAAO,QAAS;IAAAhI,MAAA,EACZyH,OAAK,CAAAzH,MAAO;IAAAD,KAAA,EACb0H,OAAK,CAAA1H;EACd,CAAC;AAAA;AAxBT,SAAAiG,OAAAyB,KAAA;EAAA,OAceA,KAAK,CAAAO,QAA2B,IAAdP,KAAK,CAAAC,QAAsB,IAATD,KAAK,CAAA7H,GAAI;AAAA;AA2G5D,SAAAvI,oBAAA;EAAA,MAAAsB,CAAA,GAAAC,EAAA;EACE;IAAApB,IAAA;IAAAM,QAAA;IAAAC,UAAA;IAAAC;EAAA,IAAsDtE,KAAK,CAAAE,UAAW,CAAC0D,kBAAkB,CAAC;EAC1F,MAAA4B,MAAA,GAAeC,oBAAoB,CAAC,CAAC;EAErC,IAAI,CAACrB,QAAQ;IAAA,OACJ,IAAI;EAAA;EAGb,IAAIC,UAAU;IAAA,IAAAW,EAAA;IAAA,IAAAC,CAAA,QAAAX,aAAA;MAQCU,EAAA,GAAAA,CAAA,KAAMV,aAAa,CAAC,KAAK,CAAC;MAAAW,CAAA,MAAAX,aAAA;MAAAW,CAAA,MAAAD,EAAA;IAAA;MAAAA,EAAA,GAAAC,CAAA;IAAA;IAAA,IAAAY,EAAA;IAAA,IAAAZ,CAAA,QAAAO,MAAA,CAAAoO,UAAA,IAAA3O,CAAA,QAAAD,EAAA;MANrCa,EAAA,gBAAA9C,IAAA,CAAC/B,UAAU;QACU4Q,kBAAmB,EAAnB,mBAAmB;QACpB8B,iBAAyD,EAAzD,yDAAyD;QACtE7G,IAAI,EAAJ,IAAI;QACEW,UAAS,EAAT,SAAS;QACfxB,IAAiB,EAAjB,iBAAiB;QACbyB,OAA0B,EAA1BzI,EAA0B;QAC5BkG,KAAiB,EAAjB1F,MAAM,CAAAoO;MAAW,CACzB,CAAC;MAAA3O,CAAA,MAAAO,MAAA,CAAAoO,UAAA;MAAA3O,CAAA,MAAAD,EAAA;MAAAC,CAAA,MAAAY,EAAA;IAAA;MAAAA,EAAA,GAAAZ,CAAA;IAAA;IAAA,OARFY,EAQE;EAAA;EAEL,IAAAb,EAAA;EAAA,IAAAC,CAAA,QAAAX,aAAA;IASYU,EAAA,GAAAA,CAAA,KAAMV,aAAa,CAAC,IAAI,CAAC;IAAAW,CAAA,MAAAX,aAAA;IAAAW,CAAA,MAAAD,EAAA;EAAA;IAAAA,EAAA,GAAAC,CAAA;EAAA;EACxB,MAAAY,EAAA,GAAA/B,IAAI,CAAAyE,MAAO,GAAG1D,gBAAgB;EAAA,IAAAmB,EAAA;EAAA,IAAAf,CAAA,QAAAO,MAAA,CAAAoO,UAAA,IAAA3O,CAAA,QAAAD,EAAA,IAAAC,CAAA,QAAAY,EAAA;IAP1CG,EAAA,gBAAAjD,IAAA,CAAC/B,UAAU;MACU4Q,kBAAc,EAAd,cAAc;MACf8B,iBAAsD,EAAtD,sDAAsD;MACnE7G,IAAI,EAAJ,IAAI;MACEW,UAAS,EAAT,SAAS;MACdxB,IAAc,EAAd,cAAc;MACXyB,OAAyB,EAAzBzI,EAAyB;MACxBd,QAA8B,EAA9B2B,EAA8B;MACjCqF,KAAiB,EAAjB1F,MAAM,CAAAoO;IAAW,CACzB,CAAC;IAAA3O,CAAA,MAAAO,MAAA,CAAAoO,UAAA;IAAA3O,CAAA,MAAAD,EAAA;IAAAC,CAAA,MAAAY,EAAA;IAAAZ,CAAA,OAAAe,EAAA;EAAA;IAAAA,EAAA,GAAAf,CAAA;EAAA;EAAA,OATFe,EASE;AAAA;AAIN,SAAA6E,iBAAA;EAAA,MAAA5F,CAAA,GAAAC,EAAA;EACE;IAAAV,uBAAA;IAAAC;EAAA,IAA2CzE,KAAK,CAAAE,UAAW,CAAC0D,kBAAkB,CAAC;EAE/E,IAAI,CAACY,uBAAuB;IAAA,OACnB,IAAI;EAAA;EACZ,IAAAQ,EAAA;EAAA,IAAAC,CAAA,QAAAR,KAAA;IAGCO,EAAA,gBAAAjC,IAAA,CAACwR,gBAAgB;MACTC,KAAiB,EAAjB,iBAAiB;MACZC,UAAQ,EAAR,QAAQ;MACDf,iBAA0C,EAA1C,0CAA0C;MACnDgB,QAAiB,EAAjB,iBAAiB;MACjBjH,OAAa,EAAbA,CAAA,KAAMhJ,KAAK,CAAC;IAAC,CACvB,CAAC;IAAAQ,CAAA,MAAAR,KAAA;IAAAQ,CAAA,MAAAD,EAAA;EAAA;IAAAA,EAAA,GAAAC,CAAA;EAAA;EAAA,OANFD,EAME;AAAA;AAIN,SAAA8F,eAAA;EAAA,MAAA7F,CAAA,GAAAC,EAAA;EACE;IAAAR,WAAA;IAAAE;EAAA,IAAkD5E,KAAK,CAAAE,UAAW,CAAC0D,kBAAkB,CAAC;EACtF,MAAAkC,UAAA,GAAmBlG,aAAa,CAAC,CAAC;EAClC,MAAA4U,KAAA,GAAc5P,wBAAwB,GAAxB,YAAuCA,wBAAwB,EAAY,GAA3E,OAA2E;EAEzF,IAAI,CAACF,WAAW;IAAA,OAAS,IAAI;EAAA;EAAA,IAAAM,EAAA;EAAA,IAAAC,CAAA,QAAAa,UAAA;IAQhBd,EAAA,GAAAA,CAAA,KAAMc,UAAU,CAAA6O,MAAO,CAAC,CAAC;IAAA1P,CAAA,MAAAa,UAAA;IAAAb,CAAA,MAAAD,EAAA;EAAA;IAAAA,EAAA,GAAAC,CAAA;EAAA;EAAA,IAAAY,EAAA;EAAA,IAAAZ,CAAA,QAAAD,EAAA,IAAAC,CAAA,QAAAuP,KAAA;IALpC3O,EAAA,gBAAA9C,IAAA,CAACwR,gBAAgB;MACRC,KAAK,EAALA,KAAK;MACDC,UAAc,EAAd,cAAc;MACPf,iBAAiC,EAAjC,iCAAiC;MAC1CgB,QAAoB,EAApB,oBAAoB;MACpBjH,OAAyB,EAAzBzI;IAAyB,CACnC,CAAC;IAAAC,CAAA,MAAAD,EAAA;IAAAC,CAAA,MAAAuP,KAAA;IAAAvP,CAAA,MAAAY,EAAA;EAAA;IAAAA,EAAA,GAAAZ,CAAA;EAAA;EAAA,OANFY,EAME;AAAA;AAYN,SAAA0O,iBAAAvP,EAAA;EAAA,MAAAC,CAAA,GAAAC,EAAA;EAA0B;IAAAsP,KAAA;IAAAC,UAAA;IAAAf,iBAAA;IAAAgB,QAAA;IAAAjH;EAAA,IAAAzI,EAMF;EACtB,MAAAQ,MAAA,GAAeC,oBAAoB,CAAC,CAAC;EACrC,MAAAmP,qBAAA,GAA8BtT,wBAAwB,CAAC,CAAC,CAAC;EAAA,IAAAuE,EAAA;EAAA,IAAAZ,CAAA,QAAAyP,QAAA,IAAAzP,CAAA,QAAAO,MAAA,CAAAqP,oBAAA;IAKnDhP,EAAA,gBAAA9C,IAAA,CAAChC,IAAI;MAAO2T,IAAQ,EAARA,QAAQ;MAAQ7H,IAAE,EAAF,EAAE;MAAS3B,KAA2B,EAA3B1F,MAAM,CAAAqP;IAAqB,CAAG,CAAC;IAAA5P,CAAA,MAAAyP,QAAA;IAAAzP,CAAA,MAAAO,MAAA,CAAAqP,oBAAA;IAAA5P,CAAA,MAAAY,EAAA;EAAA;IAAAA,EAAA,GAAAZ,CAAA;EAAA;EAAA,IAAAe,EAAA;EAAA,IAAAf,CAAA,QAAA2P,qBAAA,IAAA3P,CAAA,QAAAO,MAAA,CAAAsP,qBAAA,IAAA7P,CAAA,QAAAuP,KAAA;IACtExO,EAAA,gBAAAjD,IAAA,CAACjC,OAAO;MACEoO,OAAI,EAAJ,IAAI;MACLhE,KAA4B,EAA5B1F,MAAM,CAAAsP,qBAAsB;MACpBF,aAAqB,EAArBA,qBAAqB;MACb/S,qBAAiC,EAAjCA,iCAAiC;MAAAuD,QAAA,EAEvDoP;IAAK,CACC,CAAC;IAAAvP,CAAA,MAAA2P,qBAAA;IAAA3P,CAAA,MAAAO,MAAA,CAAAsP,qBAAA;IAAA7P,CAAA,MAAAuP,KAAA;IAAAvP,CAAA,MAAAe,EAAA;EAAA;IAAAA,EAAA,GAAAf,CAAA;EAAA;EAAA,IAAAgB,EAAA;EAAA,IAAAhB,CAAA,QAAAO,MAAA,CAAAuP,8BAAA,IAAA9P,CAAA,QAAAY,EAAA,IAAAZ,CAAA,QAAAe,EAAA;IATZC,EAAA,gBAAAhD,KAAA,CAACtC,IAAI;MAAQuK,KAAqC,EAArC1F,MAAM,CAAAuP,8BAA+B;MAAA3P,QAAA,GAChDS,EAAsE,EACtEG,EAOU;IAAA,CACN,CAAC;IAAAf,CAAA,MAAAO,MAAA,CAAAuP,8BAAA;IAAA9P,CAAA,MAAAY,EAAA;IAAAZ,CAAA,MAAAe,EAAA;IAAAf,CAAA,OAAAgB,EAAA;EAAA;IAAAA,EAAA,GAAAhB,CAAA;EAAA;EAAA,IAAAwB,EAAA;EAAA,IAAAxB,CAAA,SAAAyO,iBAAA,IAAAzO,CAAA,SAAAwP,UAAA,IAAAxP,CAAA,SAAAwI,OAAA;IACPhH,EAAA,gBAAA1D,IAAA,CAAC7B,UAAU;MACAuM,OAAO,EAAPA,OAAO;MACGiG,iBAAiB,EAAjBA,iBAAiB;MACb7R,qBAAiC,EAAjCA,iCAAiC;MAAAuD,QAAA,EAEvDqP;IAAU,CACD,CAAC;IAAAxP,CAAA,OAAAyO,iBAAA;IAAAzO,CAAA,OAAAwP,UAAA;IAAAxP,CAAA,OAAAwI,OAAA;IAAAxI,CAAA,OAAAwB,EAAA;EAAA;IAAAA,EAAA,GAAAxB,CAAA;EAAA;EAAA,IAAA0B,EAAA;EAAA,IAAA1B,CAAA,SAAAO,MAAA,CAAAwP,gBAAA,IAAA/P,CAAA,SAAAgB,EAAA,IAAAhB,CAAA,SAAAwB,EAAA;IAlBfE,EAAA,gBAAA1D,KAAA,CAACtC,IAAI;MAAQuK,KAAuB,EAAvB1F,MAAM,CAAAwP,gBAAiB;MAAA5P,QAAA,GAClCa,EAUO,EACPQ,EAMa;IAAA,CACT,CAAC;IAAAxB,CAAA,OAAAO,MAAA,CAAAwP,gBAAA;IAAA/P,CAAA,OAAAgB,EAAA;IAAAhB,CAAA,OAAAwB,EAAA;IAAAxB,CAAA,OAAA0B,EAAA;EAAA;IAAAA,EAAA,GAAA1B,CAAA;EAAA;EAAA,OAnBP0B,EAmBO;AAAA;AAIX,MAAMlB,oBAAoB,GAAGA,CAAA;EAAA,MAAAR,CAAA,GAAAC,EAAA;EAC3B,MAAAmJ,KAAA,GAAcxO,QAAQ,CAAC,CAAC;EACxB,MAAAoV,eAAA,GAAwBnV,kBAAkB,CAAC,CAAC;EAG5C,MAAAoV,yBAAA,GAAkC7T,mCAAmC,CAAC,CAAC;EAAA,IAAA2D,EAAA;EAAA,IAAAC,CAAA,QAAAiQ,yBAAA,IAAAjQ,CAAA,QAAAgQ,eAAA,CAAA5F,MAAA,CAAA8F,IAAA,IAAAlQ,CAAA,QAAAoJ,KAAA,CAAAgB,MAAA,CAAA+F,sBAAA,IAAAnQ,CAAA,QAAAoJ,KAAA,CAAAgB,MAAA,CAAAgG,qBAAA,IAAApQ,CAAA,QAAAoJ,KAAA,CAAAgB,MAAA,CAAAiG,uBAAA,IAAArQ,CAAA,QAAAoJ,KAAA,CAAAgB,MAAA,CAAAkG,mBAAA,IAAAtQ,CAAA,QAAAoJ,KAAA,CAAAgB,MAAA,CAAAmG,wBAAA,IAAAvQ,CAAA,QAAAoJ,KAAA,CAAAgB,MAAA,CAAAoG,yBAAA,IAAAxQ,CAAA,QAAAoJ,KAAA,CAAAgB,MAAA,CAAAkB,WAAA,IAAAtL,CAAA,QAAAoJ,KAAA,CAAAgB,MAAA,CAAAqG,eAAA,IAAAzQ,CAAA,SAAAoJ,KAAA,CAAAgB,MAAA,CAAAsG,uBAAA;IAEhE3Q,EAAA,GAAAvE,UAAU,CAAAmV,MAAO,CAAC;MAAAxK,SAAA,EACZ;QAAAyK,WAAA,EACIxH,KAAK,CAAAgB,MAAO,CAAAgG,qBAAsB;QAAAS,cAAA,EAC/B,CAAC;QAAAC,OAAA,EACR;MACX,CAAC;MAAA9K,kBAAA,EACmB;QAAA+K,eAAA,EACDf,eAAe,CAAA5F,MAAO,CAAA8F,IAAK;QAAAc,aAAA,EAC7B,KAAK;QAAAC,UAAA,EACR,UAAU;QAAAC,GAAA,EACjB;MACP,CAAC;MAAAtG,iBAAA,EACkB;QAAAuG,QAAA,EACP,QAAQ;QAAAC,YAAA,EACJ,EAAE;QAAAC,WAAA,EACH,CAAC;QAAAT,WAAA,EACDxH,KAAK,CAAAgB,MAAO,CAAAiG,uBAAwB;QAAAiB,IAAA,EAC3C,CAAC;QAAAJ,GAAA,EACF;MACP,CAAC;MAAAvG,YAAA,EACa;QAAAqG,aAAA,EACG,KAAK;QAAAC,UAAA,EACR,QAAQ;QAAAC,GAAA,EACf;MACP,CAAC;MAAA/G,SAAA,EACU;QAAAoH,aAAA,EACM,CAAC;QAAAC,UAAA,EAEJnW,QAAQ,CAAAoW,MAAO,CAAC;UAAAC,GAAA,EACrB,CAAC;UAAAC,OAAA,EACG;QACX,CAAC,CAAC;QAAAC,iBAAA,EACiBvW,QAAQ,CAAAoW,MAAO,CAAC;UAAAC,GAAA,EAC5B,KAAK;UAAAC,OAAA,EACD;QACX,CAAC,CAAC;QAAAE,iBAAA,EACiB,EAAE;QAAAlG,KAAA,EACdvC,KAAK,CAAAgB,MAAO,CAAAsG,uBAAwB;QAAAoB,cAAA,EAC3B,QAAQ;QAAAR,IAAA,EAClB,CAAC;QAAAS,QAAA,EACG,EAAE;QAAAC,SAAA,EACD;MACb,CAAC;MAAA9H,kBAAA,EACmB;QAAA+H,WAAA,EACL;MACf,CAAC;MAAAnI,UAAA,EACW;QAAAiH,eAAA,EACOd,yBAAyB;QAAAmB,YAAA,EAC5B,EAAE;QAAAc,eAAA,EACC,CAAC;QAAAL,iBAAA,EACC,EAAE;QAAAM,UAAA,EACT,CAAC;QAAAnB,aAAA,EACE,KAAK;QAAAC,UAAA,EACR,QAAQ;QAAAC,GAAA,EACf;MACP,CAAC;MAAAlH,cAAA,EACe;QAAA2B,KAAA,EACPvC,KAAK,CAAAgB,MAAO,CAAAkB,WAAY;QAAA8G,YAAA,EACjB;MAChB,CAAC;MAAArI,cAAA,EACe;QAAA4B,KAAA,EACPvC,KAAK,CAAAgB,MAAO,CAAAkB;MACrB,CAAC;MAAAqD,UAAA,EACW;QAAAtH,MAAA,EAnEK;MAqEjB,CAAC;MAAA4E,sBAAA,EACuB;QAAAmF,YAAA,EAtEP,EAAE;QAAAD,QAAA,EAwEP;MACZ,CAAC;MAAA3E,qBAAA,EACsB;QAAAwE,aAAA,EACN,KAAK;QAAAc,cAAA,EACJ,QAAQ;QAAAb,UAAA,EACZ,QAAQ;QAAAG,YAAA,EA7EL,EAAE;QAAA/J,MAAA,EAAF,EAAE;QAAAD,KAAA,EAAF;MAiFjB,CAAC;MAAA2E,UAAA,EACW;QAAAgG,QAAA,EACA,EAAE;QAAApG,KAAA,EACLpO,MAAM,CAAA8U;MACf,CAAC;MAAAvG,kBAAA,EACmB;QAAAH,KAAA,EACXvC,KAAK,CAAAgB,MAAO,CAAAmG;MACrB,CAAC;MAAA3B,gBAAA,EACiB;QAAA0D,QAAA,EACN;MACZ,CAAC;MAAA9D,gCAAA,EACiC;QAAA8D,QAAA,EACtB,UAAU;QAAAC,IAAA,EACd,CAAC;QAAAC,MAAA,EACC,EAAE;QAAAC,MAAA,EACF,EAAE;QAAAvB,GAAA,EACL;MACP,CAAC;MAAA3C,sBAAA,EACuB;QAAAwC,eAAA,EACL3H,KAAK,CAAAgB,MAAO,CAAAkG,mBAAoB;QAAAc,YAAA,EACnC,EAAE;QAAA/J,MAAA,EArGD,EAAE;QAAAD,KAAA,EAAF,EAAE;QAAAsL,SAAA,EAwGN,CAAC;QAAA,GACTrX,QAAQ,CAAAoW,MAAO,CAAC;UAAAC,GAAA,EACZ;YAAAL,WAAA,EACU,CAAC;YAAAT,WAAA,EACDxH,KAAK,CAAAgB,MAAO,CAAA+F;UAC3B,CAAC;UAAAwB,OAAA,EACQ;QACX,CAAC;MACH,CAAC;MAAA9K,sBAAA,EACuB;QAAAsK,QAAA,EACZ,QAAQ;QAAAU,iBAAA,EACC,EAAE;QAAAL,UAAA,EACT,EAAE;QAAAN,GAAA,EACT;MACP,CAAC;MAAArH,iBAAA,EACkB;QAAA8B,KAAA,EACVvC,KAAK,CAAAgB,MAAO,CAAAqG,eAAgB;QAAAsB,QAAA,EACzB,EAAE;QAAAF,iBAAA,EACO,EAAE;QAAAK,eAAA,EACJ;MACnB,CAAC;MAAAtJ,sBAAA,EACuB;QAAA2I,aAAA,EACP;MACjB,CAAC;MAAArI,iBAAA,EACkB;QAAAyC,KAAA,EACVvC,KAAK,CAAAgB,MAAO,CAAAsG,uBAAwB;QAAAqB,QAAA,EACjC;MACZ,CAAC;MAAAjJ,iBAAA,EACkB;QAAA6C,KAAA,EACVvC,KAAK,CAAAgB,MAAO,CAAAsG,uBAAwB;QAAAqB,QAAA,EACjC,EAAE;QAAAY,kBAAA,EACQ;MACtB,CAAC;MAAAlK,sBAAA,EACuB;QAAAuI,aAAA,EACP,KAAK;QAAAc,cAAA,EACJ,UAAU;QAAAc,SAAA,EACf;MACb,CAAC;MAAA7C,gBAAA,EACiB;QAAAiB,aAAA,EACD,KAAK;QAAAC,UAAA,EACR,QAAQ;QAAAa,cAAA,EACJ,eAAe;QAAAZ,GAAA,EAC1B,CAAC;QAAAK,aAAA,EACS;MACjB,CAAC;MAAAzB,8BAAA,EAC+B;QAAAkB,aAAA,EACf,KAAK;QAAAC,UAAA,EACR,QAAQ;QAAAC,GAAA,EACf,CAAC;QAAAI,IAAA,EACA;MACR,CAAC;MAAA1B,oBAAA,EACqB;QAAAjE,KAAA,EACbvC,KAAK,CAAAgB,MAAO,CAAAoG;MACrB,CAAC;MAAAX,qBAAA,EACsB;QAAAgD,UAAA,EACThW,wBAAwB;QAAAiW,aAAA,EACrB,MAAM;QAAAC,UAAA,EACT;MACd;IACF,CAAC,CAAC;IAAA/S,CAAA,MAAAiQ,yBAAA;IAAAjQ,CAAA,MAAAgQ,eAAA,CAAA5F,MAAA,CAAA8F,IAAA;IAAAlQ,CAAA,MAAAoJ,KAAA,CAAAgB,MAAA,CAAA+F,sBAAA;IAAAnQ,CAAA,MAAAoJ,KAAA,CAAAgB,MAAA,CAAAgG,qBAAA;IAAApQ,CAAA,MAAAoJ,KAAA,CAAAgB,MAAA,CAAAiG,uBAAA;IAAArQ,CAAA,MAAAoJ,KAAA,CAAAgB,MAAA,CAAAkG,mBAAA;IAAAtQ,CAAA,MAAAoJ,KAAA,CAAAgB,MAAA,CAAAmG,wBAAA;IAAAvQ,CAAA,MAAAoJ,KAAA,CAAAgB,MAAA,CAAAoG,yBAAA;IAAAxQ,CAAA,MAAAoJ,KAAA,CAAAgB,MAAA,CAAAkB,WAAA;IAAAtL,CAAA,MAAAoJ,KAAA,CAAAgB,MAAA,CAAAqG,eAAA;IAAAzQ,CAAA,OAAAoJ,KAAA,CAAAgB,MAAA,CAAAsG,uBAAA;IAAA1Q,CAAA,OAAAD,EAAA;EAAA;IAAAA,EAAA,GAAAC,CAAA;EAAA;EAAA,OA/JKD,EA+JL;AAAA,CACH","ignoreList":[]}
|
|
@@ -2,12 +2,14 @@ import { PropsWithChildren } from 'react';
|
|
|
2
2
|
interface ConversationContextValue {
|
|
3
3
|
conversationId: number;
|
|
4
4
|
currentPageReplyRootId: string | null;
|
|
5
|
+
messagesQueryKey: unknown[] | null;
|
|
5
6
|
}
|
|
6
7
|
interface ConversationContextProviderProps extends PropsWithChildren {
|
|
7
8
|
conversationId: number;
|
|
8
9
|
currentPageReplyRootId: string | null;
|
|
10
|
+
messagesQueryKey?: unknown[] | null;
|
|
9
11
|
}
|
|
10
|
-
export declare const ConversationContextProvider: ({ children, conversationId, currentPageReplyRootId, }: ConversationContextProviderProps) => import("react/jsx-runtime").JSX.Element;
|
|
12
|
+
export declare const ConversationContextProvider: ({ children, conversationId, currentPageReplyRootId, messagesQueryKey, }: ConversationContextProviderProps) => import("react/jsx-runtime").JSX.Element;
|
|
11
13
|
export declare const useConversationContext: () => ConversationContextValue;
|
|
12
14
|
export {};
|
|
13
15
|
//# sourceMappingURL=conversation_context.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"conversation_context.d.ts","sourceRoot":"","sources":["../../src/contexts/conversation_context.tsx"],"names":[],"mappings":"AAAA,OAAc,EAAiB,iBAAiB,EAAuB,MAAM,OAAO,CAAA;AAEpF,UAAU,wBAAwB;IAChC,cAAc,EAAE,MAAM,CAAA;IACtB,sBAAsB,EAAE,MAAM,GAAG,IAAI,CAAA;
|
|
1
|
+
{"version":3,"file":"conversation_context.d.ts","sourceRoot":"","sources":["../../src/contexts/conversation_context.tsx"],"names":[],"mappings":"AAAA,OAAc,EAAiB,iBAAiB,EAAuB,MAAM,OAAO,CAAA;AAEpF,UAAU,wBAAwB;IAChC,cAAc,EAAE,MAAM,CAAA;IACtB,sBAAsB,EAAE,MAAM,GAAG,IAAI,CAAA;IACrC,gBAAgB,EAAE,OAAO,EAAE,GAAG,IAAI,CAAA;CACnC;AAED,UAAU,gCAAiC,SAAQ,iBAAiB;IAClE,cAAc,EAAE,MAAM,CAAA;IACtB,sBAAsB,EAAE,MAAM,GAAG,IAAI,CAAA;IACrC,gBAAgB,CAAC,EAAE,OAAO,EAAE,GAAG,IAAI,CAAA;CACpC;AAQD,eAAO,MAAM,2BAA2B,GAAI,yEAKzC,gCAAgC,4CAWlC,CAAA;AAED,eAAO,MAAM,sBAAsB,gCAAwC,CAAA"}
|
|
@@ -3,41 +3,46 @@ import React, { createContext, useContext, useMemo } from 'react';
|
|
|
3
3
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
4
4
|
const ConversationContext = createContext({
|
|
5
5
|
conversationId: 0,
|
|
6
|
-
currentPageReplyRootId: null
|
|
6
|
+
currentPageReplyRootId: null,
|
|
7
|
+
messagesQueryKey: null
|
|
7
8
|
});
|
|
8
9
|
export const ConversationContextProvider = t0 => {
|
|
9
|
-
const $ = _c(
|
|
10
|
+
const $ = _c(7);
|
|
10
11
|
const {
|
|
11
12
|
children,
|
|
12
13
|
conversationId,
|
|
13
|
-
currentPageReplyRootId
|
|
14
|
+
currentPageReplyRootId,
|
|
15
|
+
messagesQueryKey: t1
|
|
14
16
|
} = t0;
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
17
|
+
const messagesQueryKey = t1 === undefined ? null : t1;
|
|
18
|
+
let t2;
|
|
19
|
+
if ($[0] !== conversationId || $[1] !== currentPageReplyRootId || $[2] !== messagesQueryKey) {
|
|
20
|
+
t2 = {
|
|
18
21
|
conversationId,
|
|
19
|
-
currentPageReplyRootId
|
|
22
|
+
currentPageReplyRootId,
|
|
23
|
+
messagesQueryKey
|
|
20
24
|
};
|
|
21
25
|
$[0] = conversationId;
|
|
22
26
|
$[1] = currentPageReplyRootId;
|
|
23
|
-
$[2] =
|
|
27
|
+
$[2] = messagesQueryKey;
|
|
28
|
+
$[3] = t2;
|
|
24
29
|
} else {
|
|
25
|
-
|
|
30
|
+
t2 = $[3];
|
|
26
31
|
}
|
|
27
|
-
const value =
|
|
28
|
-
let
|
|
29
|
-
if ($[
|
|
30
|
-
|
|
32
|
+
const value = t2;
|
|
33
|
+
let t3;
|
|
34
|
+
if ($[4] !== children || $[5] !== value) {
|
|
35
|
+
t3 = /*#__PURE__*/_jsx(ConversationContext.Provider, {
|
|
31
36
|
value: value,
|
|
32
37
|
children: children
|
|
33
38
|
});
|
|
34
|
-
$[
|
|
35
|
-
$[
|
|
36
|
-
$[
|
|
39
|
+
$[4] = children;
|
|
40
|
+
$[5] = value;
|
|
41
|
+
$[6] = t3;
|
|
37
42
|
} else {
|
|
38
|
-
|
|
43
|
+
t3 = $[6];
|
|
39
44
|
}
|
|
40
|
-
return
|
|
45
|
+
return t3;
|
|
41
46
|
};
|
|
42
47
|
export const useConversationContext = () => {
|
|
43
48
|
return useContext(ConversationContext);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"conversation_context.js","names":["React","createContext","useContext","useMemo","jsx","_jsx","ConversationContext","conversationId","currentPageReplyRootId","ConversationContextProvider","t0","$","_c","children","t1","
|
|
1
|
+
{"version":3,"file":"conversation_context.js","names":["React","createContext","useContext","useMemo","jsx","_jsx","ConversationContext","conversationId","currentPageReplyRootId","messagesQueryKey","ConversationContextProvider","t0","$","_c","children","t1","undefined","t2","value","t3","Provider","useConversationContext"],"sources":["../../src/contexts/conversation_context.tsx"],"sourcesContent":["import React, { createContext, PropsWithChildren, useContext, useMemo } from 'react'\n\ninterface ConversationContextValue {\n conversationId: number\n currentPageReplyRootId: string | null\n messagesQueryKey: unknown[] | null\n}\n\ninterface ConversationContextProviderProps extends PropsWithChildren {\n conversationId: number\n currentPageReplyRootId: string | null\n messagesQueryKey?: unknown[] | null\n}\n\nconst ConversationContext = createContext<ConversationContextValue>({\n conversationId: 0,\n currentPageReplyRootId: null,\n messagesQueryKey: null,\n})\n\nexport const ConversationContextProvider = ({\n children,\n conversationId,\n currentPageReplyRootId,\n messagesQueryKey = null,\n}: ConversationContextProviderProps) => {\n const value = useMemo(\n () => ({\n conversationId,\n currentPageReplyRootId,\n messagesQueryKey,\n }),\n [conversationId, currentPageReplyRootId, messagesQueryKey]\n )\n\n return <ConversationContext.Provider value={value}>{children}</ConversationContext.Provider>\n}\n\nexport const useConversationContext = () => useContext(ConversationContext)\n"],"mappings":";AAAA,OAAOA,KAAK,IAAIC,aAAa,EAAqBC,UAAU,EAAEC,OAAO,QAAQ,OAAO;AAAA,SAAAC,GAAA,IAAAC,IAAA;AAcpF,MAAMC,mBAAmB,GAAGL,aAAa,CAA2B;EAClEM,cAAc,EAAE,CAAC;EACjBC,sBAAsB,EAAE,IAAI;EAC5BC,gBAAgB,EAAE;AACpB,CAAC,CAAC;AAEF,OAAO,MAAMC,2BAA2B,GAAGC,EAAA;EAAA,MAAAC,CAAA,GAAAC,EAAA;EAAC;IAAAC,QAAA;IAAAP,cAAA;IAAAC,sBAAA;IAAAC,gBAAA,EAAAM;EAAA,IAAAJ,EAKT;EADjC,MAAAF,gBAAA,GAAAM,EAAuB,KAAvBC,SAAuB,GAAvB,IAAuB,GAAvBD,EAAuB;EAAA,IAAAE,EAAA;EAAA,IAAAL,CAAA,QAAAL,cAAA,IAAAK,CAAA,QAAAJ,sBAAA,IAAAI,CAAA,QAAAH,gBAAA;IAGdQ,EAAA;MAAAV,cAAA;MAAAC,sBAAA;MAAAC;IAIP,CAAC;IAAAG,CAAA,MAAAL,cAAA;IAAAK,CAAA,MAAAJ,sBAAA;IAAAI,CAAA,MAAAH,gBAAA;IAAAG,CAAA,MAAAK,EAAA;EAAA;IAAAA,EAAA,GAAAL,CAAA;EAAA;EALH,MAAAM,KAAA,GACSD,EAIN;EAEF,IAAAE,EAAA;EAAA,IAAAP,CAAA,QAAAE,QAAA,IAAAF,CAAA,QAAAM,KAAA;IAEMC,EAAA,gBAAAd,IAAA,CAAAC,mBAAA,CAAAc,QAAA;MAAqCF,KAAK,EAALA,KAAK;MAAAJ,QAAA,EAAGA;IAAQ,CAA+B,CAAC;IAAAF,CAAA,MAAAE,QAAA;IAAAF,CAAA,MAAAM,KAAA;IAAAN,CAAA,MAAAO,EAAA;EAAA;IAAAA,EAAA,GAAAP,CAAA;EAAA;EAAA,OAArFO,EAAqF;AAAA,CAC7F;AAED,OAAO,MAAME,sBAAsB,GAAGA,CAAA;EAAA,OAAMnB,UAAU,CAACI,mBAAmB,CAAC;AAAA","ignoreList":[]}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
type Options = {
|
|
2
|
+
conversation_id: number;
|
|
3
|
+
message_id: string;
|
|
4
|
+
};
|
|
5
|
+
export declare const useConversationMessageLookup: ({ conversation_id, message_id }: Options) => import("..").MessageResource | undefined;
|
|
6
|
+
export {};
|
|
7
|
+
//# sourceMappingURL=use_conversation_message_lookup.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use_conversation_message_lookup.d.ts","sourceRoot":"","sources":["../../src/hooks/use_conversation_message_lookup.ts"],"names":[],"mappings":"AAKA,KAAK,OAAO,GAAG;IACb,eAAe,EAAE,MAAM,CAAA;IACvB,UAAU,EAAE,MAAM,CAAA;CACnB,CAAA;AAED,eAAO,MAAM,4BAA4B,GAAI,iCAAiC,OAAO,6CAkBpF,CAAA"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { c as _c } from "react/compiler-runtime";
|
|
2
|
+
import { useQueryClient } from '@tanstack/react-query';
|
|
3
|
+
import { useCallback, useSyncExternalStore } from 'react';
|
|
4
|
+
import { findMessageInCaches } from '../utils/cache/find_message_in_caches';
|
|
5
|
+
import { useConversationMessage } from './use_conversation_message';
|
|
6
|
+
export const useConversationMessageLookup = t0 => {
|
|
7
|
+
const $ = _c(10);
|
|
8
|
+
const {
|
|
9
|
+
conversation_id,
|
|
10
|
+
message_id
|
|
11
|
+
} = t0;
|
|
12
|
+
const queryClient = useQueryClient();
|
|
13
|
+
let t1;
|
|
14
|
+
if ($[0] !== queryClient) {
|
|
15
|
+
t1 = onChange => queryClient.getQueryCache().subscribe(onChange);
|
|
16
|
+
$[0] = queryClient;
|
|
17
|
+
$[1] = t1;
|
|
18
|
+
} else {
|
|
19
|
+
t1 = $[1];
|
|
20
|
+
}
|
|
21
|
+
const subscribe = t1;
|
|
22
|
+
let t2;
|
|
23
|
+
if ($[2] !== conversation_id || $[3] !== message_id || $[4] !== queryClient) {
|
|
24
|
+
t2 = () => findMessageInCaches(queryClient, conversation_id, message_id);
|
|
25
|
+
$[2] = conversation_id;
|
|
26
|
+
$[3] = message_id;
|
|
27
|
+
$[4] = queryClient;
|
|
28
|
+
$[5] = t2;
|
|
29
|
+
} else {
|
|
30
|
+
t2 = $[5];
|
|
31
|
+
}
|
|
32
|
+
const getSnapshot = t2;
|
|
33
|
+
const cached = useSyncExternalStore(subscribe, getSnapshot);
|
|
34
|
+
const t3 = !cached;
|
|
35
|
+
let t4;
|
|
36
|
+
if ($[6] !== conversation_id || $[7] !== message_id || $[8] !== t3) {
|
|
37
|
+
t4 = {
|
|
38
|
+
conversation_id,
|
|
39
|
+
messageId: message_id,
|
|
40
|
+
enabled: t3
|
|
41
|
+
};
|
|
42
|
+
$[6] = conversation_id;
|
|
43
|
+
$[7] = message_id;
|
|
44
|
+
$[8] = t3;
|
|
45
|
+
$[9] = t4;
|
|
46
|
+
} else {
|
|
47
|
+
t4 = $[9];
|
|
48
|
+
}
|
|
49
|
+
const fetched = useConversationMessage(t4);
|
|
50
|
+
return cached ?? fetched.message;
|
|
51
|
+
};
|
|
52
|
+
//# sourceMappingURL=use_conversation_message_lookup.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use_conversation_message_lookup.js","names":["useQueryClient","useCallback","useSyncExternalStore","findMessageInCaches","useConversationMessage","useConversationMessageLookup","t0","$","_c","conversation_id","message_id","queryClient","t1","onChange","getQueryCache","subscribe","t2","getSnapshot","cached","t3","t4","messageId","enabled","fetched","message"],"sources":["../../src/hooks/use_conversation_message_lookup.ts"],"sourcesContent":["import { useQueryClient } from '@tanstack/react-query'\nimport { useCallback, useSyncExternalStore } from 'react'\nimport { findMessageInCaches } from '../utils/cache/find_message_in_caches'\nimport { useConversationMessage } from './use_conversation_message'\n\ntype Options = {\n conversation_id: number\n message_id: string\n}\n\nexport const useConversationMessageLookup = ({ conversation_id, message_id }: Options) => {\n const queryClient = useQueryClient()\n const subscribe = useCallback(\n (onChange: () => void) => queryClient.getQueryCache().subscribe(onChange),\n [queryClient]\n )\n const getSnapshot = useCallback(\n () => findMessageInCaches(queryClient, conversation_id, message_id),\n [conversation_id, message_id, queryClient]\n )\n const cached = useSyncExternalStore(subscribe, getSnapshot)\n const fetched = useConversationMessage({\n conversation_id,\n messageId: message_id,\n enabled: !cached,\n })\n\n return cached ?? fetched.message\n}\n"],"mappings":";AAAA,SAASA,cAAc,QAAQ,uBAAuB;AACtD,SAASC,WAAW,EAAEC,oBAAoB,QAAQ,OAAO;AACzD,SAASC,mBAAmB,QAAQ,uCAAuC;AAC3E,SAASC,sBAAsB,QAAQ,4BAA4B;AAOnE,OAAO,MAAMC,4BAA4B,GAAGC,EAAA;EAAA,MAAAC,CAAA,GAAAC,EAAA;EAAC;IAAAC,eAAA;IAAAC;EAAA,IAAAJ,EAAwC;EACnF,MAAAK,WAAA,GAAoBX,cAAc,CAAC,CAAC;EAAA,IAAAY,EAAA;EAAA,IAAAL,CAAA,QAAAI,WAAA;IAElCC,EAAA,GAAAC,QAAA,IAA0BF,WAAW,CAAAG,aAAc,CAAC,CAAC,CAAAC,SAAU,CAACF,QAAQ,CAAC;IAAAN,CAAA,MAAAI,WAAA;IAAAJ,CAAA,MAAAK,EAAA;EAAA;IAAAA,EAAA,GAAAL,CAAA;EAAA;EAD3E,MAAAQ,SAAA,GAAkBH,EAGjB;EAAA,IAAAI,EAAA;EAAA,IAAAT,CAAA,QAAAE,eAAA,IAAAF,CAAA,QAAAG,UAAA,IAAAH,CAAA,QAAAI,WAAA;IAECK,EAAA,GAAAA,CAAA,KAAMb,mBAAmB,CAACQ,WAAW,EAAEF,eAAe,EAAEC,UAAU,CAAC;IAAAH,CAAA,MAAAE,eAAA;IAAAF,CAAA,MAAAG,UAAA;IAAAH,CAAA,MAAAI,WAAA;IAAAJ,CAAA,MAAAS,EAAA;EAAA;IAAAA,EAAA,GAAAT,CAAA;EAAA;EADrE,MAAAU,WAAA,GAAoBD,EAGnB;EACD,MAAAE,MAAA,GAAehB,oBAAoB,CAACa,SAAS,EAAEE,WAAW,CAAC;EAIhD,MAAAE,EAAA,IAACD,MAAM;EAAA,IAAAE,EAAA;EAAA,IAAAb,CAAA,QAAAE,eAAA,IAAAF,CAAA,QAAAG,UAAA,IAAAH,CAAA,QAAAY,EAAA;IAHqBC,EAAA;MAAAX,eAAA;MAAAY,SAAA,EAE1BX,UAAU;MAAAY,OAAA,EACZH;IACX,CAAC;IAAAZ,CAAA,MAAAE,eAAA;IAAAF,CAAA,MAAAG,UAAA;IAAAH,CAAA,MAAAY,EAAA;IAAAZ,CAAA,MAAAa,EAAA;EAAA;IAAAA,EAAA,GAAAb,CAAA;EAAA;EAJD,MAAAgB,OAAA,GAAgBnB,sBAAsB,CAACgB,EAItC,CAAC;EAAA,OAEKF,MAAyB,IAAfK,OAAO,CAAAC,OAAQ;AAAA,CACjC","ignoreList":[]}
|
|
@@ -5,6 +5,7 @@ type Options = {
|
|
|
5
5
|
reply_root_id?: string | null;
|
|
6
6
|
anchor?: string | null;
|
|
7
7
|
};
|
|
8
|
+
export declare const anchoredRetry: (failureCount: number, error: unknown) => boolean;
|
|
8
9
|
export declare const useConversationMessages: ({ conversation_id, reply_root_id, anchor }: Options, opts?: SuspensePaginatorOptions) => {
|
|
9
10
|
messages: MessageResource[];
|
|
10
11
|
refetch: (options?: import("@tanstack/query-core").RefetchOptions) => Promise<import("@tanstack/query-core").QueryObserverResult<import("@tanstack/query-core").InfiniteData<import("..").ApiCollection<MessageResource>, unknown>, Response>>;
|