{"version":3,"file":"chat.js","names":["define","_exports","_rest","Object","defineProperty","value","default","ChatMessage","pathFor","store","type","findArgs","targetMessageId","channelId","path","pageSize","messageId","direction","apiNameFor","resource","map","this","route","_component","_tracking","_helper","_object","_didInsert","_routing","_runloop","_service","_truthHelpers","_emptyState","_filterInput","_debounce","_environment","_discourseI18n","_list","_newMessage","_chatChannelCard","_component2","_templateFactory","ARCHIVED","TABS","BrowseChannels","static","dt7948","g","prototype","service","chatApi","i","modal","siteSettings","tracked","filter","currentTab","args","channelsCollection","channels","status","n","cached","tabs","chat_allow_archiving_channels","removeObject","showChatNewMessageModal","show","action","setFilter","event","target","debouncedLoad","INPUT_DELAY","load","limit","focusFilterInput","input","schedule","focus","setComponentTemplate","createTemplateFactory","id","block","moduleName","scope","concat","LinkTo","eq","i18n","hash","isStrictMode","_template","_dIcon","_chatUserAvatar","ChatChannelIcon","firstUser","channel","chatable","users","groupDirectMessage","isDirectMessageChannel","group","channelColorStyle","htmlSafe","color","isThreadsList","thread","_pluginOutlet","_userStatusMessage","_lazyHash","_replaceEmoji","_chatChannelUnreadIndicator","ChatChannelName","currentUser","unreadIndicator","prefersName","enable_names","display_name_on_posts","prioritize_username_in_ux","directMessageTitle","length","name","username","user","join","mapBy","showUserStatus","channelTitle","title","showPluginOutlet","get","_concatClass","_channelIcon","_channelName","_templateOnly","ChatChannelTitle","undefined","_modifier","_dButton","_chatChannelRow","_chatZero","ChannelsListDirect","chat","chatChannelsManager","chatStateManager","site","inSidebar","createDirectMessageChannelLabel","canCreateDirectMessageChannel","showDirectMessageChannels","directMessageChannelsEmpty","userCanDirectMessage","directMessageChannels","toggleChannelSection","section","toggleSection","openNewMessageModal","and","or","not","on","fn","ChannelsListPublic","chatTrackingStateManager","router","hasUnreadThreads","hasThreadedChannels","channelList","publicMessageChannelsByActivity","openBrowseChannels","transitionTo","_channelsListDirect","_channelsListPublic","ChannelsList","_utils","_ajaxError","_getUrl","ChatChannelArchiveStatus","shouldRender","admin","isPresent","archive","channelArchiveFailedMessage","translationKey","topicId","completed","messages","total","totalMessages","topic_url","topicUrl","channelArchiveCompletedMessage","retryArchive","createChannelArchive","catch","popupAjaxError","_borderColor","_toggleChannelMembershipButton","ChatChannelCard","gt","_comboBoxHeader","_channelTitle","ChatChannelChooserHeader","_selectKitRow","ChatChannelChooserRow","c","classNames","_comboBox","_selectKit","_chatChannelChooserHeader","_chatChannelChooserRow","ChatChannelChooser","modifyComponentForRow","pluginApiIdentifiers","selectKitOptions","headerComponent","ChatChannelLeaveBtn","desktopView","leaveChatTitleKey","ChatChannelMetadata","lastMessageFormattedDate","createdAt","lastMessage","lastMessageDate","showThreadUnreadDate","lastUnreadThreadDate","moment","calendar","sameDay","lastDay","lastWeek","sameElse","ChatChannelPreviewCard","showJoinButton","isOpen","canJoin","hasDescription","isEmpty","description","_willDestroy","_emberModifier","_decorators","_chatChannelMetadata","ChatChannelRow","api","capabilities","isAtThreshold","shouldRemoveChannel","showRemoveButton","swipableRow","shouldReset","diff","rowStyle","canSwipe","registerSwipableRow","modifier","element","onReset","handler","addEventListener","once","removeEventListener","onRemoveChannel","unfollowChannel","classList","add","handleSwipe","onSwipeStart","passive","onSwipe","onSwipeEnd","_initialX","changedTouches","screenX","bind","threshold","window","innerWidth","touchX","shouldHandleSwipe","touch","leaveDirectMessageLabel","leaveChannelLabel","channelHasUnread","tracking","unreadCount","unreadThreadsCountSinceLastViewed","shouldRenderLastMessage","mobileView","firstDirectMessageUser","firstObject","startTrackingStatus","statusManager","trackStatus","stopTrackingStatus","_chatChannel","_chatChannelArchiveStatus","ChatChannelStatus","LONG_FORMAT","SHORT_FORMAT","VALID_FORMATS","format","includes","channelStatusIcon","CHANNEL_STATUSES","open","channelStatusMessage","longStatusMessage","shortStatusMessage","archived","closed","readOnly","OldChatChannelTitle","ChatChannelUnreadIndicator","showUnreadIndicator","mentionCount","publicUrgentCount","watchedThreadsUnreadCount","directUrgentCount","urgentCount","isUrgent","urgentBadgeCount","totalCount","_owner","_didUpdate","_url","_userPresence","_chatChannelStatus","_firstVisibleMessageId","_chatChannelSubscriptionManager","_chatConstants","_chatMessagesLoader","_checkMessageVisibility","_datesSeparatorsPositioner","_extractCurrentTopicInfo","_scrollHelpers","_chatMessage","_chatIosHacks","_channel","_scrollToBottomArrow","_selectionManager","_chatChannelPreviewCard","_chatMentionWarnings","_chatMessage2","_chatMessagesContainer","_chatMessagesScroller","_chatNotices","_chatSkeleton","_chatUploadDropZone","ChatChannel","appEvents","chatDraftsManager","chatChannelScrollPositions","composer","pane","dialog","messageBus","sending","showChatQuoteSuccess","includeHeader","needsArrow","atBottom","uploadDropZone","isScrolling","scroller","_mentionWarningsSeen","_unreachableGroupMentions","_overMembersLimitGroupMentions","messagesLoader","getOwner","messagesManager","currentUserMembership","hasSavedScrollPosition","registerScroller","teardown","document","_autoFocus","cancelHandlers","removeOnPresenceChange","onPresenceChangeCallback","subscriptionManager","updateLastReadMessage","didResizePane","debounceFillPaneAttempt","debouncedUpdateLastReadMessage","apply","setup","onPresenceChange","callback","clear","isFollowing","follow","draft","createDraftMessage","loadMessages","updateLastViewedAt","onNewMessage","debounceHighlightOrFetchMessage","fetchMessages","fetch_from_last_read","message","canLoadMoreFuture","stackingContextFix","addMessages","present","arguments","loading","result","processMessages","target_message_id","scrollToMessageId","highlight","position","lastReadMessageId","target_date","meta","_ignoreNextScroll","scrollToBottom","fetchMoreMessages","_ref","opts","loadMore","lastObject","FUTURE","noScroll","forceAuto","scrollListToBottom","options","findMessage","scrollListToMessage","_debouncedFillPaneAttemptHandler","fillPaneAttempt","fetchMessagesByDate","date","findFirstMessageOfDay","Date","firstOfResults","canLoadMorePast","highlightOrFetchMessage","fetchedOnce","firstMessageId","messageContainer","querySelector","checkMessageTopVisibility","PAST","foundFirstNew","newestMessage","forEach","messageData","index","ignored_users","hidden","requestedTargetMessageId","expanded","deleted_at","create","manager","preloadThreadTrackingState","thread_tracking","push","_debouncedHighlightOrFetchMessageHandler","assign","autoExpand","behavior","isIOS","_debouncedUpdateLastReadMessageHandler","READ_INTERVAL_MS","firstFullyVisibleMessageId","firstMessage","lastReadId","markChannelAsRead","scrollToLatestMessage","onScroll","state","next","flushIgnoreNextScroll","distanceToBottom","pixels","atTop","up","distanceToTop","percentage","onScrollEnd","delete","set","firstVisibleId","onSendMessage","chat_maximum_message_length","alert","count","cook","editing","sendEditMessage","sendNewMessage","resetComposerMessage","resetDraft","data","upload_ids","uploads","upload","async","editMessage","e","stageMessage","sendMessage","in_reply_to_id","inReplyTo","staged_id","extractCurrentTopicInfo","error","_onSendError","stagedMessage","findStagedMessage","jqXHR","responseJSON","errors","cooked","markNetworkAsUnreliable","resendStagedMessage","then","markNetworkAsReliable","finally","onCloseFullScreen","prefersDrawer","routeTo","lastKnownAppURL","lastKnownChatURL","isDrawerActive","key","metaKey","ctrlKey","code","test","tagName","closest","preventDefault","addText","cancel","threadTracking","unread_count","mention_count","watched_threads_unread_count","prev","_dMenu","ChatComposerDropdown","onButtonClick","button","closeFn","doubleClick","uploadButton","buttons","disabled","array","ChatComposerMessageDetails","_uploads","ChatComposerUpload","isImage","original_filename","fileName","isDone","_pickFilesButton","_object2","_uppyUpload","_uppyMediaOptimizationPlugin","_utilities","_chatComposerUpload","ChatComposerUploads","mediaOptimizationWorker","uppyUpload","useMultipartUploadsIfAvailable","uppyReady","composer_media_optimization_image_enabled","uppyWrapper","useUploadPlugin","optimizeFn","optimizeImage","runParallel","isMobileDevice","onPreProcessProgress","file","inProgressUpload","inProgressUploads","findBy","processing","onPreProcessComplete","uploadDone","pushObject","_triggerUploadsChanged","uploadDropTargetOptions","body","onProgressUploadsChanged","inProgressUploadsCount","existingUploads","didReceiveAttrs","super","uppyInstance","cancelAll","cloneJSON","didInsertElement","composerInputEl","_pasteEventListener","willDestroyElement","showUploadsContainer","cancelUploading","cancelSingleUpload","fileId","removeUpload","activeElement","canUpload","canPasteHtml","types","clipboardHelpers","clipboardData","files","addFiles","pasted","onUploadChanged","_jquery","_emoji","_data","_rsvp","_dTextarea","_detached","_upsertHyperlink","_autocomplete","_emoji2","_user","_hashtagAutocomplete","_loadEmojiSearchAliases","_optionalService","_text","_userSearch","_userStatusOnAutocomplete","_virtualElementFromTextRange","_waitForKeyboard","_button","_chatComposerDropdown","_chatComposerMessageDetails","_chatComposerUploads","_chatReplyingIndicator","_chatComposerButtons","_chatMessageInteractor","_textareaInteractor","ChatComposer","chatComposerWarningsTracker","emojiStore","menu","composerPresenceManager","isFocused","presenceChannelName","shouldRenderMessageDetails","context","inlineButtons","chatComposerButtons","dropdownButtons","fileUploadElementId","canAttachUploads","chat_allow_uploads","persistDraft","setupAutocomplete","textarea","$textarea","applyUserAutocomplete","applyEmojiAutocomplete","applyCategoryHashtagAutocomplete","setupTextareaInteractor","autofocus","ensureAtEnd","refreshHeight","didUpdateMessage","cancelPersistDraft","captureMentions","skipDebounce","didUpdateInReplyTo","_persistHandler","handleInlineButtonAction","buttonAction","stopPropagation","hasContent","minLength","chat_minimum_message_length","hasUploads","sendEnabled","off","insertDiscourseLocalDate","LocalDatesCreateModal","require","model","insertDate","markup","getSelected","uploadClicked","click","computeIsFocused","onInput","draftSaved","reportReplyingPresence","trapMouseDown","onSend","reactingToLastMessage","deleteEmptyMessage","trim","reactionCode","startsWith","reaction","substring","replacements","emojiCode","normalizeEmoji","interactor","react","notifyState","modifySelection","sel","lineVal","applySurround","onTextareaFocusOut","onTextareaFocusIn","style","transform","requestAnimationFrame","onKeyDown","altKey","isAutocompleteDisplayed","shiftKey","handleEscape","user_option","chat_send_shortcut","replyable","replyTo","editableMessage","lastUserMessage","editable","edit","openUpsertLinkModal","selected","linkText","toolbarEvent","text","onSelectEmoji","emoji","emojiSelected","trackMentions","reset","addMentionedUser","userData","createRecord","mentionedUsers","enable_mentions","autocomplete","template","width","treatAsTextarea","autoSelectFirstSuggestion","transformComplete","obj","isUser","dataSource","term","destroyUserStatuses","includeGroups","presentUserNames","presenceChannel","cssClasses","initUserStatusHtml","onRender","renderUserStatusHtml","afterComplete","onClose","setupHashtagAutocomplete","hashtag_configurations","enable_emoji","onKeyUp","cp","matches","exec","v","menuOptions","identifier","groupIdentifier","component","modalForMobile","didSelectEmoji","waitForClosedKeyboard","virtualElement","menuInstance","Promise","resolve","full","toLowerCase","Math","max","emoji_autocomplete_min_chars","SKIP","match","favorites","favoritesForContext","slice","emojiTranslation","custom_emoji_translation","allTranslations","translations","emojiDenied","denied_emojis","scale","isSkinTonableEmoji","x","searchAliases","emojiSearch","maxResults","diversity","exclude","list","src","emojiUrlFor","label","_bodyClass","_htmlClass","_resizableNode","ChatDrawer","chatDrawerSize","chatDrawerRouter","sizeTimer","rafTimer","hasUnreadMessages","drawerStyle","userCanChat","_checkSize","computeDrawerStyle","cancelAnimationFrame","_fireHiddenAppEvents","trigger","observes","height","size","escapeExpression","toString","drawerActions","openInFullPage","close","toggleExpand","_dynamicCheckSize","_performCheckSize","_startDynamicCheckSize","_clearDynamicCheckSize","remove","throttle","isDestroying","isDestroyed","drawerContainer","getElementById","composerIsClosed","contains","setProperty","offsetLeft","openURL","url","activeChannel","stateFor","_routeFromURL","didOpenDrawer","recognize","localName","parent","storeAppURL","prefersFullPage","didToggleDrawer","isDrawerExpanded","didCloseDrawer","didResize","ChatEmojiAvatar","_unreadIndicator","ChatFooter","chatHistory","includeThreads","chat_threads_enabled","directMessagesEnabled","userCanAccessDirectMessages","currentRouteName","routeName","currentRoute","enabledRouteCount","enable_public_channels","Boolean","shouldRenderFooter","hasPreloadedChannels","UnreadChannelsIndicator","UnreadDirectMessagesIndicator","UnreadThreadsIndicator","ChatHeader","previousURL","heading","constructor","updatePreviousURL","willDestroy","chat_enabled","isChatOpen","currentURL","forumLink","rootURL","ChatMentionWarnings","unreachableGroupMentions","overMembersLimitGroupMentions","hasTooManyMentions","tooManyMentions","channelWideMentionDisallowed","mentionsCount","unreachableGroupMentionsCount","overMembersLimitMentionsCount","hasUnreachableGroupMentions","hasOverMembersLimitGroupMentions","warningsCount","listStyleClass","warningHeaderText","tooManyMentionsBody","max_mentions_per_chat_message","siteSettingUrl","unreachableBody","group1","group2","overMembersLimitBody","messageFormat","groupCount","isAdmin","notificationLimit","max_users_notified_per_group_mention","_core","_bookmarkIcon","_dropdownSelectBox","_chatMessageReaction","_chatMessageContainer","FULL","ChatMessageActionsDesktop","popper","activeMessage","messageInteractor","shouldRenderFavoriteReactions","openEmojiPicker","_","destroy","viewport","clientWidth","createPopper","placement","strategy","modifiers","enabled","boundary","fallbackPlacements","scroll","offset","redirectScroll","targetElement","scrollTop","deltaY","_dModal","ChatMessageActionsMobile","hasExpandedReply","vibrate","userHasBeenActive","canVibrate","navigator","expandReply","collapseMenu","closeModal","actAndCloseMenu","fnId","operation","selectReaction","_decoratedHtml","_domFromString","_chatUpload","_collapser","_lightbox","isCollapsible","elements","Array","call","hasLazyVideo","hasImageOnebox","hasImage","hasGallery","ChatMessageCollapser","lightbox","querySelectorAll","uploadsHeader","cookedBodies","lazyVideoCooked","imageOneboxCooked","imageCooked","galleryCooked","lazyVideoComponent","has","reduce","acc","lazy_videos_enabled","lazyVideoPredicate","videoAttributes","getVideoAttributes","requirejs","providerName","link","header","outerHTML","needsCollapser","imageOneboxPredicate","animatedImagePredicate","firstChild","firstElementChild","href","imagePredicate","alt","galleryPredicate","textContent","removeChild","some","nodeName","externalImageOnebox","_chatEmojiAvatar","ChatMessageInReplyToIndicator","hasThread","routeModels","threadingEnabled","_getReactionText","ChatMessageReaction","tooltip","registerTooltip","disableTooltip","popoverContent","instance","register","content","animated","triggers","showCount","emojiString","emojiUrl","handleClick","onReaction","reacted","emojiUnescape","getReactionText","IS_PINNED_CLASS","ChatMessageSeparator","track","intersectionObserver","IntersectionObserver","entry","isIntersecting","intersectionRatio","boundingClientRect","y","intersectionRect","observe","disconnect","onDateClick","firstMessageOfTheDayAt","previousMessage","areDatesOnSameDay","startOfDay","formattedFirstMessageDate","calendarDate","isNewestMessage","a","b","getFullYear","getMonth","getDate","startOf","_chatMessageCollapser","ChatMessageText","isEdited","edited","_formatDate","_chatThreadParticipants","ChatMessageThreadIndicator","interactiveUser","threadMessageRoute","preview","lastReplyId","_emojiPicker","_later","_transformer","_updateUserStatusOnMention","_zoomCheck","_avatar","_error","_info","_leftGutter","_blocks","_chatMessageActionsMobile","_chatMessageInReplyToIndicator","_chatMessageSeparator","_chatMessageText","_chatMessageThreadIndicator","_onLongPress","MESSAGE_CONTEXT_THREAD","MENTION_KEYWORDS","addChatMessageDecorator","decorator","_chatMessageDecorators","resetChatMessageDecorators","chatChannelPane","chatThreadPane","toasts","interactedChatMessage","isActive","toggleCheckIfPossible","addedListener","selectingMessages","bulkSelect","select","threadContext","deletedAndCollapsed","deletedAt","collapsed","hiddenAndCollapsed","deletedMessageLabel","recursiveCount","nextMessage","shouldRenderOpenEmojiPickerButton","userCanInteractWithChat","secondaryActionsIsExpanded","expand","recursiveExpand","refreshStatusOnMentions","toggleChecked","checked","willDestroyMessage","_invitationSentTimer","_disableMessageActionsHandler","_makeMessageActiveHandler","teardownMentionedUsers","mention","updateUserStatusOnMention","initMentionedUsers","isTrackingStatus","decorateMentions","allowChannelWideMentions","wideMentions","keyword","mentions","node","classes","applyValueTransformer","decorateCookedMessage","helper","staff","canModerate","onMouseEnter","emojiPickerOpen","_onMouseEnterMessageDebouncedHandler","_debouncedOnHoverMessage","onMouseMove","_setActiveMessage","onMouseLeave","toElement","relatedTarget","disableMouseEvents","onLongPressStart","persisted","onLongPressCancel","documentElement","onLongPressEnd","blur","hasActiveState","hasReply","hideReplyToInfo","hideUserInfo","chatWebhookEvent","abs","force","showThreadIndicator","replyCount","shouldRenderStopMessageStreamingButton","streaming","onEmojiPickerClose","onEmojiPickerShow","stopMessageStreaming","lt","Input","_element","Actions","_actions","Block","blockForType","definition","Error","Element","elementForType","Button","interacting","createInteraction","action_id","_block","Blocks","interaction","_onResize","ChatMessagesContainer","_scrollableList","ChatMessagesScroller","_mention_without_membership","COMPONENT_DICT","mention_without_membership","ChatNotices","noticesManager","clearNotice","notice","_chatNotice","_chatRetentionReminder","noticesForChannel","notices","ChatReplyingIndicator","presence","updateSubscription","unsubscribe","subscribe","getChannel","subscribed","u","usernames","lastUsername","commaSeparatedUsernames","ChatRetentionReminderText","countForChannelType","chat_dm_retention_days","chat_channel_retention_days","_ajax","_chatRetentionReminderText","ChatRetentionReminder","isCategoryChannel","dismiss","ajax","method","chatable_type","chatableType","field","ChatSidePanelResizer","_keyValueStore","_chatSidePanelResizer","MIN_PANEL_WIDTH","ChatSidePanel","setupSize","isFullPageActive","validWidth","min","getObject","mainContainerWidth","animate","duration","fill","storeWidth","mainPanelWidth","setObject","ChatSkeleton","placeholders","from","image","randomIntFromInterval","rows","reactions","floor","random","ChatThreadHeading","showHeading","_conditionalLoadingSpinner","_isElementInViewport","_item","_trackMessage","ChatThreadList","noThreadsLabel","onMessageBus","channelMessageBusLastId","resizeObserver","ResizeObserver","loadThreads","threadsCollection","threads","handleLoadedThreads","threadsManager","sortedThreads","originalMessage","lastMessageId","sort","threadA","threadB","lastReplyCreatedAt","lastThread","busData","handleDeleteMessage","handleRestoreMessage","deletedOriginalMessageThread","deleted_id","restoredOriginalMessageThread","chat_message","threadModel","replace","setupChannelThreadState","ChatThreadParticipants","showParticipants","includeOriginalMessageUser","participantsUsers","participantUsers","otherCountLabel","otherParticipantCount","_threadSettings","_userChatThreadMembership","ChatThreadTitlePrompt","toastText","dismissLabel","primaryLabel","canShowToast","updateThreadTitlePrompt","membership","updateCurrentUserThreadTitlePrompt","console","log","threadTitlePromptSeen","disableFutureThreadTitlePrompts","save","titleNotSet","hasReplies","THREAD_TITLE_PROMPT_THRESHOLD","showPrompts","show_thread_title_prompts","promptNotSeen","showProgressBar","class","actions","toast","_notificationLevels","_chatThreadTitlePrompt","_chatChannelThreadSubscriptionManager","_thread","_chatThreadHeading","ChatThread","chatThreadComposer","showChannelPreview","handleKeydown","_debounceUpdateLastReadMessageHandler","debounceUpdateLastReadMessage","markThreadAsRead","details","scrollToTop","visible","response","thread_id","notification_level","NotificationLevels","TRACKING","last_read_message_id","message_id","onSendError","scrollListToTop","stagedId","_computed","_chooseTopic","_radioButton","_textField","_categoryChooser","_tagChooser","NEW_TOPIC_SELECTION","NEW_MESSAGE_SELECTION","EXISTING_TOPIC_SELECTION","ChatToTopicSelector","newTopicSelection","existingTopicSelection","newMessageSelection","selection","equal","newTopic","existingTopic","newMessage","alias","canAddTags","canTagMessages","topicTitle","categoryId","tags","selectedTopicId","chatMessageIds","chatChannelId","newTopicInstruction","instructionLabels","existingTopicInstruction","newMessageInstruction","_chatThread","ChatUploadDropZone","isThread","ChatUpload","loaded","IMAGE_TYPE","VIDEO_TYPE","AUDIO_TYPE","ATTACHMENT_TYPE","isVideo","isAudio","ratio","max_image_width","max_image_height","imageUrl","thumbnail","imageStyle","dominant_color","videoSourceUrl","baseUrl","isSafari","imageLoaded","_userAvatar","ChatUserAvatar","avatar","renderAvatar","imageSize","avatarSize","interactive","showPresence","isOnline","find","userPath","ChatUserDisplayName","shouldPrioritizeNameInUx","hasValidName","formattedUsername","formatUsername","shouldShowNameFirst","shouldShowNameLast","_chatUserDisplayName","ChatUserInfo","trackUserStatus","showStatus","showStatusDescription","ChatComposerButton","_chatComposer","ChatComposerChannel","composerId","debounce","destroyDraft","canModifyMessages","findLastMessage","findLastUserMessage","placeholder","messageRecipients","directMessageRecipients","commaSeparatedNames","channelName","ChatComposerSeparator","ChatComposerThread","channelComposer","ChatDirectMessageButton","can_send_private_message_to_user","startChatting","upsertDmChannel","_browseChannels","_navbar","ChatDrawerRoutesBrowse","_channelInfoMembers","_channelInfoNav","ChatDrawerRoutesMembers","backButton","models","_channelInfoSettings","ChatDrawerRoutesSettings","ChatDrawerRoutesChannelThread","previousRoute","threadTitle","activeThread","_chatThreadList","ChatDrawerRoutesChannelThreads","backLinkTitle","ChatDrawerRoutesChannel","backBtnRoute","_chatFooter","ChatDrawerRoutesChannels","ChatDrawerRoutesDirectMessages","_userThreads","ChatDrawerRoutesThreads","CHANNELS_TAB","THREADS_TAB","FooterUnreadIndicator","badgeType","publicChannelMentionCount","directMessageUnreadCount","directMessageMentionCount","publicChannelUnreadCount","showUrgent","showUnread","_section","ChatForm","yieldableArgs","ChatFormRow","_row","ChatFormSection","row","_getUserChatSeparateSidebarMode","ChatHeaderIcon","currentUserInDnD","isInDoNotDisturb","chatSeparateSidebarMode","getUserChatSeparateSidebarMode","never","icon","_preferencesChat","ChatHeaderIconUnreadIndicator","allChannelUrgentCount","allChannelMentionCount","hasUnreads","indicatorPreference","chat_header_indicator_preference","showUrgentIndicator","onlyMentions","hasAnyIndicatorPreference","HEADER_INDICATOR_PREFERENCE_ALL_NEW","HEADER_INDICATOR_PREFERENCE_DM_AND_MENTIONS","urgentCountLabel","HEADER_INDICATOR_PREFERENCE_ONLY_MENTIONS","preferences","HEADER_INDICATOR_PREFERENCE_NEVER","EmptyState","List","loadCollection","itemComponent","debouncedLoadCollection","collection","Item","_membersCount","_membersSelector","AddMembers","loadingSlider","membersCount","userCount","members","member","chat_enabled_user_count","membershipsCount","maxMembers","chat_max_direct_message_users","saveGroupMembers","transitionStarted","groups","addMembersToChannel","success","transitionEnded","gte","Channel","item","hasUrgent","unread_thread_count","showIndicator","MODES","search","new_group","add_members","ChatableGroup","group_with_too_many_members","isDisabled","_addMembers","_constants","_newGroup","_search","ChatMessageCreator","mode","componentForMode","changeMode","changeMembers","cancelAction","onCancel","_chatChatable","ChatablesLoader","setOwner","includeUsers","includeCategoryChannels","includeDirectMessageChannels","excludedUserIds","preloadChannels","request","abort","preloadedChannels","include_users","include_category_channels","include_direct_message_channels","excluded_memberships_channel_id","excludedMembershipsChannelId","results","direct_message_channels","category_channels","findChannel","allChannels","createUser","createChannel","_ref2","getNext","current","filterBy","currentIndex","indexOf","objectAt","getPrevious","ListAction","_iterateList","ListHandler","onHighlight","items","highlightedItem","onShifSelect","onSelect","_group","_listAction","cantAddMoreMembersLabel","componentForItem","handleEnter","onShiftSelect","Member","MembersCount","countLabel","_chatablesLoader","_listHandler","_members","MembersSelector","chatables","highlightedMember","highlightedChatable","highlightedMemberIds","highlightMember","highlightChatable","selectChatable","chatableMembers","unselectMember","onChange","focusFilterAction","registerFocusFilterAction","actionFn","onFilter","searchHandler","fetch","loader","removedMember","_member","Members","addMoreMembersLabel","handleKeypress","onSelectMember","onHighlightMember","NewGroup","newGroupTitle","createGroup","createDmChannel","ChatMessageCreatorSearchInput","filterPlaceholder","_searchInput","ChatMessageCreatorSearch","prefillAddMembers","onChangeMode","startOneToOneChannel","startGroupChannel","_userStatus","ChatableUser","disabledUserLabel","isUnread","Avatar","_settings","_formatChatDate","ChatMessageInfo","usernameClasses","prioritizeName","moderator","new_user","primary_group_name","isFlagged","reviewableId","userFlagStatus","prioritizeNameInUx","ChatMessageLeftGutter","_chatToTopicSelector","ChatModalArchiveChannel","saving","flash","flashType","buttonDisabled","min_topic_title_length","max_topic_title_length","labels","instructionsText","escapedTitle","category_id","topic_id","archiveChannel","newTopicSelected","topic","_withEventValue","_category3","_dTooltip","DEFAULT_HINT","category","ChatModalCreateChannel","autoGeneratedSlug","categoryPermissionsHint","autoJoinWarning","loadingPermissionHint","generateSlugHandler","autoJoinAvailable","max_chat_auto_joined_users","categorySelected","createDisabled","isBlank","categoryName","onShow","onCategoryChange","findById","updatePermissionsHint","debouncedGenerateSlug","onNameChange","onSave","formData","FormData","currentTarget","fromEntries","entries","auto_join_users","slug","threading_enabled","yesNoConfirm","didConfirm","extractError","buildCategorySlug","parentCategory","updateAutoJoinConfirmWarning","catPermissions","allowedGroups","allowed_groups","warning","private","members_count","groupName","fullSlug","categoryPermissions","settingLink","hint","generateSlug","ChatModalDeleteChannel","channelNameConfirmation","deleting","confirmed","deleteChannel","destroyChannel","_dModalCancel","DeleteMessagesConfirm","trashMessages","sourceChannel","selectedMessageIds","_charCounter","ChatModalEditChannelDescription","editedDescription","isSaveDisabled","descriptionMaxLength","onSaveChatChannelDescription","updateChannel","onChangeChatChannelDescription","_slugifyChannel","ChatModalEditChannelName","editedName","editedSlug","replaceWith","onChangeChatChannelName","onChangeChatChannelSlug","_chatChannelChooser","ChatModalMoveMessageToChannel","destinationChannelId","selectedMessageCount","disableMoveButton","availableChannels","publicMessageChannels","rejectBy","moveMessages","moveChannelMessages","message_ids","destination_channel_id","first_moved_message_id","_messageCreator","ChatModalNewMessage","ChatModalThreadSettings","editedTitle","threadTitleLength","saveThread","editThread","ChatModalToggleChannelStatus","buttonLabel","isClosed","instructions","modalTitle","onStatusChange","updateChannelStatus","_browseChannelsButton","_closeDrawerButton","_closeThreadButton","_closeThreadsButton","_fullPageButton","_newChannelButton","_newDirectMessageButton","_openDrawerButton","_threadSettingsButton","_threadTrackingDropdown","_threadsListButton","_toggleDrawerButton","ChatNavbarActions","ChatNavbarBackButton","targetRoute","showBackButton","ChatNavbarBrowseChannelsButton","browseChannelsLabel","showBrowseChannelsButton","ChatNavbarChannelTitle","shouldLinkToSettings","ChatNavbarCloseDrawerButton","closeDrawer","ChatNavbarCloseThreadButton","ChatNavbarCloseThreadsButton","closeButtonTitle","ChatNavbarFullPageButton","_noop","_backButton","_title","ChatNavbar","handleResize","clientHeight","_createChannel2","ChatNavbarNewChannelButton","ChatNavbarNewDirectMessageButton","showButtonComponent","ChatNavbarOpenDrawerButton","openDrawer","ChatNavbarSubTitle","ChatNavbarThreadSettingsButton","canChangeThreadSettings","openThreadSettings","_threadNotificationsTracking","ChatNavbarThreadTrackingDropdown","persistedNotificationLevel","threadNotificationLevel","notificationLevel","REGULAR","updateThreadNotificationLevel","newNotificationLevel","currentNotificationLevel","updateCurrentUserThreadNotificationsSettings","_headerUnreadIndicator","ChatNavbarThreadsListButton","threadsListLabel","showThreadsListButton","_subTitle","ChatNavbarTitle","ChatNavbarToggleDrawerButton","_laterFn","MentionWithoutMembership","invitationsSent","userIds","user_ids","sendInvitations","invite","_chatUserInfo","ChatRouteChannelInfoMembers","now","updatedAt","showAddMembers","addMemberLabel","noMembershipsFoundLabel","noMembershipsLabel","onEnter","noResults","params","listChannelMemberships","mutFilter","addMember","hideAddMember","openMemberCard","username_lower","removeMember","removeMemberFromChannel","canRemoveMember","canRemoveMembers","addMembersMode","canAddMembers","ChatRoutesChannelInfoNav","showTabs","_dToggleSwitch","_categoryBadge","_form","_archiveChannel","_deleteChannel","_editChannelDescription","_editChannelName","_toggleChannelStatus","NOTIFICATION_LEVELS","ChatRouteChannelInfoSettings","chatGuardian","notificationLevels","settingsSectionTitle","channelInfoSectionTitle","categoryLabel","historyLabel","adminSectionTitle","membersLabel","descriptionSectionTitle","titleSectionTitle","descriptionPlaceholder","toggleThreadingLabel","toggleThreadingDescription","muteSectionLabel","channelWideMentionsLabel","autoJoinLabel","notificationsLevelLabel","canEditChannel","canEditChatChannel","shouldRenderDescriptionSection","shouldRenderStatusSection","shouldRenderArchiveRow","canArchiveChannel","toggleChannelWideMentionsAvailable","toggleThreadingCategoryChannel","toggleThreadingDirectMessage","channelWideMentionsDescription","isChannelMuted","muted","shouldRenderChannelWideMentionsAvailable","shouldRenderNotificationsLevelSection","shouldRenderAdminSection","onToggleChannelWideMentions","newValue","_updateChannelProperty","allow_channel_wide_mentions","onToggleAutoJoinUsers","autoJoinUsers","onDisableAutoJoinUsers","onEnableAutoJoinUsers","confirm","onToggleMuted","saveNotificationSettings","frontendKey","backendKey","settings","updateCurrentUserChannelNotificationsSettings","property","onToggleThreadingEnabled","onToggleChannelState","onArchiveChannel","onDeleteChannel","onEditChannelTitle","onLeaveChannel","onEditChannelDescription","ChatRoutesChannelInfo","chatChannelInfoRouteOriginManager","editChannelTitle","_header","ChatRoutesChannelThread","showfullTitle","setFullTitle","ChatRoutesChannelThreads","_chatSidePanel","_fullPageChat","ChatRoutesChannel","getChannelsRoute","ChatRoutesChannels","ChatRoutesDirectMessages","ChatRoutesThreads","ScrollToBottomArrow","_deleteMessagesConfirm","_moveMessageToChannel","ChatSelectionManager","topicComposer","enableMove","anyMessagesSelected","deleteCountLimitReached","canDeleteMessages","every","canDeleteMessage","canDeleteSelf","canDeleteOthers","deleteButtonTitle","selectionCount","generateQuote","markdown","Blob","openMoveMessageModal","openDeleteMessagesModal","quoteMessages","quoteMarkdown","quoteMarkdownBlob","openOpts","chatableId","chatableUrl","focusComposer","fallbackToNewTopic","insertText","lookup","copyMessages","isTesting","clipboardCopyAsync","ChatThreadListHeader","threadListTitle","_threadUnreadIndicator","ChatThreadListItem","openThread","ThreadHeaderUnreadIndicator","unreadCountLabel","cappedUnreadCount","unreadThreadCount","ChatThreadHeader","backLink","prevPage","headerTitle","showThreadUnreadIndicator","openThreadTitleModal","Collapser","onToggle","FullPageChat","_reviewableCreatedBy","_reviewablePostHeader","ReviewableChatMessage","reviewable","chat_channel","_fabricators","StyleguideComponent","optionalRequire","Controls","Row","StyleguideExample","ChatStyleguideChatComposerMessageDetails","session","keyValueStore","toggleMode","ChatStyleguideChatComposer","chatChannelComposer","toggleDisabled","toggleSending","_icon","ChatStyleguideChatHeaderIcon","indicatorPreferences","toggleIsActive","toggleCurrentUserInDnD","updateUnreadCount","updateUrgentCount","updateIndicatorPreference","_chatMessagesManager","ChatStyleguideChatMessage","toggleDeleted","toggleBookmarked","bookmark","toggleHighlighted","highlighted","toggleEdited","toggleThread","updateMessage","toggleReaction","toggleUpload","ChatStyleguideChatModalArchiveChannel","openModal","_createChannel","ChatStyleguideChatModalCreateChannel","ChatStyleguideChatModalDeleteChannel","ChatStyleguideChatModalEditChannelDescription","ChatStyleguideChatModalEditChannelName","ChatStyleguideChatModalMoveMessageToChannel","ChatStyleguideChatModalNewMessage","ChatStyleguideChatModalThreadSettings","ChatStyleguideChatModalToggleChannelStatus","ChatStyleguideChatThreadListItem","_chatHeaderIcon","_chatModalArchiveChannel","_chatModalCreateChannel","_chatModalDeleteChannel","_chatModalEditChannelDescription","_chatModalEditChannelName","_chatModalMoveMessageToChannel","_chatModalNewMessage","_chatModalThreadSettings","_chatModalToggleChannelStatus","_chatThreadListItem","ChatOrganism","SvgChatZero","_notificationsTracking","_chatNotificationLevels","ThreadNotificationsTracking","threadNotificationButtonLevels","ChatThreadTitle","excerpt","ChatThreadUnreadIndicator","ToggleChannelMembershipButton","isLoading","labelType","joinTitle","joinIcon","joinClass","leaveTitle","leaveIcon","leaveClass","following","onJoinChannel","followChannel","onJoin","leaveChannel","onLeave","_htmlSafe","ChatNotificationsListEmptyState","_notificationsList","UserMenuChatNotificationsList","dismissTypes","filterByTypes","emptyStateComponent","_threadTitle","_preview","_chatThreadPreview","UserThreads","trackedChannels","keys","onMessage","userThreads","threadObject","trackChannel","channel_id","t","ThreadPreview","lastReplyDate","leaveAgo","ChatBodyClass","_chatDrawer","ChatDrawerOutlet","_chatMessageActionsDesktop","ChatMessageActionsDesktopOutlet","_separator","ChatEmojiPicker","_chatHeader","enumerable","_directMessageButton","ChatButton","ChatPreferences","can_chat","_controller","ChatChannelIndexController","ChatChannelThreadController","ChatChannelController","queryParams","ChatDraftChannelController","ChatIndexController","ChatNewMessageController","ChatController","shouldUseChatSidebar","shouldUseCoreSidebar","publicMessageChannelsEmpty","navigation_menu","shouldUseChatFooter","FOOTER_NAV_ROUTES","mainOutletModifierClasses","modifierClasses","isSidePanelExpanded","_keyboardShortcuts","_chatAudioManager3","CHAT_QUICK_REACTIONS_CUSTOM_DEFAULT","CHAT_ATTRS","PreferencesChatController","chatAudioManager","subpageTitle","chatQuickReactionTypes","chatSendShortcutOptions","meta_key","translateModKey","PLATFORM_KEY_MODIFIER","emailFrequencyOptions","headerIndicatorOptions","chatSeparateSidebarModeOptions","chat_separate_sidebar_mode","chatSendShortcut","chatQuickReactionsCustom","split","chatSounds","CHAT_SOUNDS","onChangeChatSound","sound","play","onChangeQuickReactionType","location","reload","_string","ChatGuardianHelper","compute","inputs","camelize","container","_found","checkMessageBottomVisibility","dataset","parseInt","tz","timezone","guess","display","staged","_pluginApi","CHAT_NOTIFICATION_TYPES","initialize","canPlaySound","isPrimaryTab","withPluginApi","registerDesktopNotificationHandler","indicatorType","isMention","notification_type","chat_sound","INDICATOR_PREFERENCES","only_mentions","dm_and_mentions","is_direct_message_channel","_oneboxDecorators","_hashtagDecorator","_highlightSyntax","initializeWithPluginApi","decorateChatMessage","decorateGithubOneboxBody","line","scrollingElement","_getScrollParent","scrollBarWidth","offsetHeight","top","offsetTop","renderChatTranscriptDates","forceLinksToOpenNewTab","decorateHashtags","maxParentSelector","scrollHeight","parentNode","transcriptEl","dateTimeRaw","dateTimeLinkEl","innerText","links","linkIndex","isInternal","samePrefix","setAttribute","chatService","chatThreadListPane","openQuickChannelSelector","isInputSelection","isChatComposer","handleMoveUpShortcut","switchChannelUpOrDown","handleMoveDownShortcut","handleMoveUpUnreadShortcut","handleMoveDownUnreadShortcut","el","elementTagName","modifyComposerSelection","chatComposerContext","addKeyboardShortcut","global","help","keys1","keysDelimiter","keys2","shortcutsDelimiter","openInsertLinkModal","openChatDrawer","srcElement","isOpened","closeChat","markAllChannelsRead","_localDates","applyLocalDates","spoiler_enabled","applySpoiler","spoiler","_formatter","_getOwner","_iconLibrary","_richEditorExtension","_chat","_lastForcedRefreshAt","replaceIcon","ChatSetupInit","owner","addAboutPageActivity","periods","activityText","formatted_number","number","period","onPageChange","visit","registerHashtagType","registerChatComposerButton","displayed","dependentKeys","discourse_local_dates_enabled","decorateCookedElement","elem","getOwnerWithFallback","currentUserTimezone","dateTimeEl","dateFormatted","loadChannels","start","_registeredDocumentTitleCountCallback","addDocumentTitleCounter","documentTitleCountCallback","addCardClickListenerSelector","headerIcons","after","before","addStyleguideSection","registerRichEditorExtension","getDocumentTitleCount","clearChatComposerButtons","_handleFocusChanged","hasFocus","_decorateUsernameSelector","_avatarUtils","_initSidebarState","addSidebarPanel","BaseCustomSidebarPanel","CHAT_PANEL","switchButtonLabel","switchButtonIcon","switchButtonDefaultUrl","initSidebarState","getCurrentUser","addSidebarSection","BaseCustomSidebarSection","BaseCustomSidebarSectionLink","SidebarChatMyThreadsSectionLink","prefixType","prefixValue","suffixType","suffixValue","unreadThreadsCount","suffixCSSClass","hideSectionHeader","displaySection","SidebarChatChannelsSectionLink","dasherize","slugifiedTitle","prefixColor","escapedDescription","prefixBadge","read_restricted","SidebarChatChannelsSection","has_joinable_public_channels","currentUserCanJoinPublicChannels","sectionLinks","actionsIcon","SidebarChatDirectMessagesSectionLink","hoverType","hoverValue","hoverTitle","oneOnOneMessage","contentComponentArgs","contentComponent","replaceAll","decorateUsername","iconUploadUrl","avatarUrl","avatar_template","prefixCSSClass","activeUsers","hoverAction","SidebarChatDirectMessagesSection","truncatedDirectMessageChannels","registerNotificationTypeRenderer","NotificationItemBase","linkTitle","linkHref","notification","chat_channel_title","chat_channel_slug","chat_channel_id","chat_message_id","invited_by_username","notificationRoute","chat_thread_id","mentioned_by_username","i18nPrefix","i18nSuffix","username2","registerUserMenuTab","UserMenuTab","panelComponent","getUnreadCountForType","notificationTypes","addSaveableUserOptionField","ChatChannelSubscriptionManager","chatChannelNoticesManager","messageBusChannel","handleSentMessage","handleReactionMessage","handleProcessedMessage","handleEditMessage","handleRefreshMessage","handleBulkDeleteMessage","handleSelfFlaggedMessage","handleFlaggedMessage","handleNewThreadCreated","handleThreadOriginalMessageUpdate","handleNotice","handleStagedMessage","created_at","processed","incrementVersion","deleted_ids","deletedId","targetMsg","deletedById","deleted_by_id","removeMessage","latest_not_deleted_message_id","user_flag_status","reviewable_id","fetchIfNotFound","channelOriginalMessage","original_message_id","update","ChatChannelThreadSubscriptionManager","threadMessageBusLastId","__","lastMessageBusId","values","valid","computeButton","ariaLabel","translatedAriaLabel","priority","isFunction","actionName","chatComposerButtonsDependentKeys","normalizedButton","translatedTitle","translatedLabel","descriptor","DEFAULT_MESSAGE_PAGE_SIZE","all_new","_capabilities","scrollable","currentScroll","selector","ChatMessageFlag","customSubmitLabel","submitLabel","targetsTopic","_rewriteFlagDescriptions","flags","flag","name_key","basePath","defaultValue","flagsAvailable","flagModal","flagTypes","flagModel","availableFlags","applies_to","notifyUserIndex","notifyUser","splice","flagMessage","flag_type_id","is_warning","isWarning","take_action","takeAction","queue_for_review","_bookmark","_flag2","_bookmarkFormData","_bookmark2","_emojiStore3","_chatMessageFlag","removeChatComposerSecondaryActions","actionIds","removedSecondaryActions","resetRemovedChatComposerSecondaryActions","Set","ChatemojiReactions","emojiReactions","userQuickReactionsCustom","chat_quick_reaction_type","chat_quick_reactions_custom","frequentReactions","defaultReactions","default_emoji_reactions","DEFAULT_DIVERSITY","allReactionsInOrder","canEdit","canInteractWithMessage","canRestoreMessage","canBookmark","canReply","canReact","canFlagMessage","canFlag","canRebakeMessage","canDelete","secondaryActions","reject","onSelectMessage","sortedIndices","findIndexOfMessage","lastSelectedMessage","copyText","clipboardCopy","copyLink","protocol","host","threadId","reactAction","reacting","publishReaction","errResult","REACTIONS","toggleBookmark","BookmarkFormData","createFor","afterSave","bookmarkFormData","saveData","attachedTo","afterDelete","user_id","flagTarget","setHidden","trashMessage","restore","restoreMessage","rebake","rebakeMessage","reply","closeEmojiPicker","handleSecondaryActions","ChatMessagesLoader","loadedPast","nextTargetMessage","computeNextTargetMessage","page_size","cleanArgs","apiFunction","can_load_more_future","can_load_more_past","channelMessages","channelThreadMessages","k","findLast","ChatMessagesManager","stagedMessages","selectedMessages","clearSelectedMessages","uniqBy","stagedMessageId","findIndex","m","WATCHING","buttonDetails","_trackedBuiltIns","ChatThreadsManager","TrackedObject","_cached","TrackedMap","_unreadThreadOverview","unreadThreadOverview","markThreadUnread","existingThread","getFromCache","fetchFromServer","cache","message_bus_last_ids","thread_message_bus_last_id","hasChatIndicator","pref","ALL_NEW","DM_AND_MENTIONS","ONLY_MENTIONS","NEVER","pageYOffset","getBoundingClientRect","bottom","Collection","resourceURL","_resourceURL","_handler","_params","_fetchedAll","loadMoreURL","load_more_url","totalRows","total_rows","Symbol","iterator","done","endpoint","filteredQueryParams","queryString","URLSearchParams","dates","reverse","nextElementSibling","prevLine","info","context_topic_id","currentPostNumber","currentPost","posts","postStream","post","post_number","previousPost","nextPost","context_post_ids","_instance","_category","_chatDirectMessage","coreFabricators","incrementSequence","CHATABLE_TYPES","categoryChannel","directMessageChannel","chatable_id","can_delete_self","archive_failed","memberships_count","directMessage","original_message","threadPreview","last_reply_id","last_reply_created_at","last_reply_excerpt","participant_count","participant_users","MAX_DISPLAYED_USERNAMES","filterUsernames","pop","unnamedUserCount","joinUsernames","reactionIncludingCurrentUser","reactionText","always","fullscreen","_base","ChannelHashtagType","preloadedData","generateColorCssClasses","channelOrHashtag","colors","generateIconHTML","hashtag","onLoad","iconHTML","isLoaded","_panels","setCombinedSidebarMode","showSidebarSwitchPanelButtons","setSeparatedSidebarMode","hideSidebarSwitchPanelButtons","getSidebarPanel","MAIN_PANEL","setSidebarPanel","_loadingSpinner","_loadScript","images","magnificPopup","closeOnContentClick","mainClass","tClose","tLoading","spinnerHTML","verticalFit","gallery","callbacks","elementParse","largeSrc","touchActionValue","touchAction","scrollTo","messageEl","scrollIntoView","slugify","resolvedSlug","_destroyable","_textareaTextManipulation","TextareaInteractor","textManipulation","eventPrefix","paste","registerDestructor","Event","bubbles","cancelable","dispatchEvent","ensureCaretAtEnd","isIpadOS","blurAndFocus","setSelectionRange","isInside","html","domParser","parseFromString","mentionSpan","mentionLink","createElement","mentionText","createTextNode","appendChild","transformMentions","hashtagSpan","generatePlaceholderHashtagHTML","relative_url","transformHashtags","innerHTML","DOMParser","ChatChannelArchive","failed","archive_completed","archived_messages","archive_topic_id","total_messages","_tracking3","_guid","_chatThreadsManager","_chatChannelArchive","_chatTrackingState","_userChatChannelMembership","channelStatus","STAFF_READONLY_STATUSES","READONLY_STATUSES","_currentUserMembership","_lastMessage","chatable_url","unicodeTitle","unicode_title","current_user_membership","last_message","icon_upload_url","getURLWithCDN","initChatable","lastViewedAt","can_delete_others","can_flag","userSilenced","user_silenced","can_moderate","can_remove_members","isReadOnly","isArchived","isJoinable","can_join_chat_channel","hasUnread","ChatChatable","has_chat_enabled","isGroup","isCategory","ChatDirectMessage","initUsers","initUsersModels","TrackedArray","_bookmark3","_user3","_transformAutoLinks","version","mentionWarning","_deletedAt","_cooked","draft_saved","first_of_results","available_flags","chat_webhook_event","in_reply_to","replyToMsg","initChatMessageReactionModel","initUserModel","mentioned_users","blocks","newCooked","ensureCookFunctionInitialized","cookFunction","read","isOriginalThreadMessage","parseMentions","markdownOptions","toJSONDraft","JSON","stringify","actor","currentUserId","selfReaction","existingReaction","existingUserReaction","generateCookFunction","raw","featuresOverride","markdown_additional_options","limited_pretty_text_features","markdownItRules","limited_pretty_text_markdown_rules","hashtagTypesInPriorityOrder","hashtagIcons","hashtag_icons","Map","ChatNotice","text_content","notice_type","ChatThreadPreview","lastReplyExcerpt","lastReplyUser","participantCount","reply_count","last_reply_user","THREAD_STATUSES","last_message_id","ChatTrackingState","_unreadCount","_mentionCount","_watchedThreadsUnreadCount","triggerNotificationsChanged","UserChatChannelMembership","last_viewed_at","UserChatThreadMembership","thread_title_prompt_seen","isQuiet","MUTED","ChatLaterFn","cleanup","modify","delay","ChatOnAnimationEnd","handleAnimationEnd","cancelEvent","ChatOnLongPress","handleTouchStart","timeout","touches","ChatOnScroll","throttledCallback","throttledHandler","immediate","ResizableNode","resizerSelector","didResizeContainer","_originalWidth","_originalHeight","_originalX","_originalY","_originalPageX","_originalPageY","vertical","horizontal","mutate","resetOnWindowResize","_startResize","_resizeWindow","_throttledResizeHandler","_minimumWidth","parseFloat","getComputedStyle","getPropertyValue","_minimumHeight","left","_eventValueForProperty","_resize","_stopResize","diffWidth","ceil","newStyle","containerStyle","containerWidth","containerHeight","DOWN","ChatScrollableList","lastScrollTop","computeInitialScrollTop","handleScroll","handleWheel","throttleComputeScroll","computeScroll","computeState","scrollTimer","throttleTimer","computeScrollDirection","computeDistanceToBottom","computeDistanceToTop","down","computeScrollTop","round","ChatTrackMessageSeparatorDate","ChatTrackMessage","didEnterViewport","didLeaveViewport","_intersectionObserverCallback","root","_chatStateManager","apiPrototype","getPrototypeOf","hasOwnProperty","addChatDrawerStateCallback","post_ids","postIds","_len","_key","_discourse","ChatBrowseIndexRoute","afterModel","beforeModel","defaultHomepage","activate","extendedClass","titleToken","currentModel","paramsFor","threadMessageId","controllerFor","ChatChannelInfoIndexRoute","ChatChannelInfoMembersRoute","_chatChannelInfoRouteOriginManager","_chatChannelDecorator","ChatChannelInfoRoute","transition","origin","ORIGINS","browse","deactivate","ChatChannelLegacyRoute","redirect","ChatChannelNearMessageWithThread","modelFor","ChatChannelNearMessage","ChatChannelThreadNearMessage","ChatChannelThread","redirectToChannel","closeSidePanel","openSidePanel","ChatChannelThreads","ChatChannelRoute","ChatChannelsRoute","custom_fields","last_chat_channel_id","ChatDirectMessagesRoute","ChatDraftChannelRoute","ChatIndexRoute","hasThreads","hasDirectMessages","isPublicChannelsEnabled","chat_preferred_index","ChatNewMessageRoute","recipients","_scrollTop","ChatRoute","isDrawerPreferred","canHandleRoute","to","intent","targetName","urlFor","contexts","updatePresence","RegExp","storeChatURL","_restrictedUser","PreferencesChatRoute","showFooter","setupController","controller","ChatAdminApi","exportMessages","_collection","ChatApi","getRequest","postRequest","move","deleteRequest","ignoreUnsent","messageIds","putRequest","createThread","originalMessageId","memberships","listCurrentUserChannels","notifications_settings","saveDraft","react_action","markAllChannelsAsRead","targets","userId","bell","ding","ChatAudioManager","canPlay","tryPlay","setTimeout","audio","Audio","_bodyScrollLock","ChatChannelComposer","threadComposer","init","disableBodyScroll","INFO_ROUTE_NAMESPACE","BACK_KEY","ChatChannelInfoRouteOriginManager","isBrowse","isChannel","ChatChannelNoticesManager","ChatChannelPane","cancelSelecting","ChatChannelScrollPositions","positions","ChatChannelsManager","chatSubscriptionsManager","existingChannel","findStale","channelObject","channel_message_bus_last_id","startChannelSubscription","unfollow","stopChannelSubscription","localeCompare","publicMessageChannelsWithActivity","sortChannelsByActivity","sortDirectMessageChannels","directMessageChannelsWithActivity","displayPublicChannels","stats","urgent","unread","aUrgent","bUrgent","aUnread","bUnread","MENTION_RESULT","ChatComposerWarningsTracker","mentionsTimer","resetMentionStats","currentMessage","_trackMentions","newMentions","recordNewWarnings","rebuildWarnings","newWarnings","unreachable","over_members_limit","invalid","memo","ChatDraftsManager","drafts","persist","_browse","_channelThread","_channelThreads","_channels","_directMessages","_threads","ROUTES","extractParams","r","ChatDrawerRouter","drawerRoute","routeNames","forceParentRouteForIndex","activeChannelId","redirectedRoute","routeFromURL","ChatDrawerSize","STORE_NAMESPACE","MIN_HEIGHT","MIN_WIDTH","ChatGuardian","canUseChat","ChatHistory","history","_desktopNotifications","ChatNotificationManager","shouldRun","alertChannel","onNotification","chatDrawerStateCallbacks","resetChatDrawerStateCallbacks","PREFERRED_MODE_KEY","FULL_PAGE_CHAT","DRAWER_CHAT","ChatStateManager","_chatURL","_appURL","_store","publishStateChange","didExpandDrawer","didCollapseDrawer","isFullPagePreferred","hasNoPreferredMode","ChatSubscriptionsManager","_channelSubscriptions","_startChannelMentionsSubscription","_startKickFromChannelSubscription","_startChannelNewMessagesSubscription","_onNewMessages","_onNewMentions","_onKickFromChannel","startChannelsSubscriptions","messageBusIds","_startNewChannelSubscription","new_channel","_startChannelArchiveStatusSubscription","archive_status","_startUserTrackingStateSubscription","user_tracking_state","_startChannelsEditsSubscription","channel_edits","_startChannelsStatusChangesSubscription","channel_status","_startChannelsMetadataChangesSubscription","channel_metadata","stopChannelsSubscriptions","_stopNewChannelSubscription","_stopChannelArchiveStatusSubscription","_stopUserTrackingStateSubscription","_stopChannelsEditsSubscription","_stopChannelsStatusChangesSubscription","_stopChannelsMetadataChangesSubscription","lastId","_onChannelArchiveStatusUpdate","new_mentions","kick","firstChannel","new_messages","_onNewChannelMessage","_onNewThreadMessage","_updateActiveLastViewedAt","force_thread","_onUserTrackingStateUpdate","_onBulkUserTrackingStateUpdate","_updateChannelTrackingData","unread_thread_overview","_onNewChannelSubscription","_onChannelMetadata","_onChannelEdits","_onChannelStatus","ChatThreadComposer","ChatThreadListPane","_chatChannelPane","ChatThreadPane","ChatTrackingStateManager","_onTriggerNotificationDebounceHandler","setupWithPreloadedState","channel_tracking","setState","publicChannels","dmMentionCount","_deprecated","CHAT_ONLINE_OPTIONS","userUnseenTime","browserHiddenTime","Chat","chatNotificationManager","isNetworkUnreliable","_activeMessage","_activeChannel","can_direct_message","computed","userHasDirectMessages","channelsView","public_channels","_networkCheckHandler","loadingChannels","setupWithPreloadedChannels","global_presence_channel_state","storedChannel","chat_drafts","storedDraft","parse","hide_presence","enter","activeOptions","leave","unreadOnly","directChannels","currentList","otherList","checkChannelIndex","unreadChannelIndex","directionUp","currentChannelIndex","nextChannelInSameList","nextList","nextChannel","_fireOpenFloatAppEvent","upsertDmChannelForUser","uniq","upsert","target_usernames","target_groups","getDmChannelForUsernames","addToolbarButton","toggleDrawer","InteractedChatMessage","secondaryOptionsOpen","_emberRouteTemplate","_channelInfo","_channelsList","_saveControls","registerPlugin","md","discourse","features","inline","ruler","chatHtmlInlineRule","patterns","HTML_TAG_RE","silent","ch","token","pos","posMax","charCodeAt","lc","isLetter","str","linkLevel","isLinkClose","customMarkdownCookFn","allowList","registerOptions","bbcode","chatTranscriptRule","buildCookFunction","additionalOptions","chatAdditionalOpts","hashtagLookup","customCookFn","tag","tagInfo","messageIdStart","messageTimeStart","attrs","quote","multiQuote","noLink","channelLink","getURL","wrapperDivToken","unescapedChannelName","performEmojiUnescape","emojiSet","emojiCDNUrl","enableEmojiShortcuts","inlineEmoji","lazy","threadSvgHeader","threadUseSvg","threadTitleToken","unescapedThreadTitle","wrapperClasses","chained","avatarImg","lookupAvatar","displayName","spanToken","channelLinkToken","linkToken","emojiHtmlCache","emojiToken","extension","nodeSpec","datetime","rawContent","threadHtml","isolating","selectable","parseDOM","toDOM","wrapperElement","metaElement","channelLinkElement","userElement","formattedDateTime","messagesElement","threadDetailsElement","threadSummaryElement","threadElement","threadHeaderElement","threadTitleElement","serializeNode","utils","buildBBCodeAttrs","bbCodeAttrs","skipAttrs","write","div_chat_transcript_wrap_open","tokens","nextHtmlRaw","nesting","messagesHtml","threadHtmlRaw","attrGet","openNode","schema","nodes","div_chat_transcript_wrap_close","closeNode","div_chat_transcript_user","ignore","div_chat_transcript_user_avatar","div_chat_transcript_username","div_chat_transcript_datetime","div_chat_transcript_messages","div_chat_transcript_reaction","div_chat_transcript_reactions","div_chat_transcript_meta","details_chat_transcript_wrap","summary_chat_transcript","div_thread","div_thread_header","svg_thread_header","use_svg_thread","span_thread_title","html_raw","noCloseToken","span_open","span_close"],"sources":["discourse/plugins/chat/discourse/adapters/chat-message.js","discourse/plugins/chat/discourse/admin-chat-route-map.js","discourse/plugins/chat/discourse/chat-route-map.js","discourse/plugins/chat/discourse/components/browse-channels.js","discourse/plugins/chat/discourse/components/channel-icon/index.js","discourse/plugins/chat/discourse/components/channel-name/index.js","discourse/plugins/chat/discourse/components/channel-title/index.js","discourse/plugins/chat/discourse/components/channels-list-direct.js","discourse/plugins/chat/discourse/components/channels-list-public.js","discourse/plugins/chat/discourse/components/channels-list.js","discourse/plugins/chat/discourse/components/chat-channel-archive-status.js","discourse/plugins/chat/discourse/components/chat-channel-card.js","discourse/plugins/chat/discourse/components/chat-channel-chooser-header.js","discourse/plugins/chat/discourse/components/chat-channel-chooser-row.js","discourse/plugins/chat/discourse/components/chat-channel-chooser.js","discourse/plugins/chat/discourse/components/chat-channel-leave-btn.js","discourse/plugins/chat/discourse/components/chat-channel-metadata.js","discourse/plugins/chat/discourse/components/chat-channel-preview-card.js","discourse/plugins/chat/discourse/components/chat-channel-row.js","discourse/plugins/chat/discourse/components/chat-channel-status.js","discourse/plugins/chat/discourse/components/chat-channel-title.js","discourse/plugins/chat/discourse/components/chat-channel-unread-indicator.js","discourse/plugins/chat/discourse/components/chat-channel.js","discourse/plugins/chat/discourse/components/chat-composer-dropdown.js","discourse/plugins/chat/discourse/components/chat-composer-message-details.js","discourse/plugins/chat/discourse/components/chat-composer-upload.js","discourse/plugins/chat/discourse/components/chat-composer-uploads.js","discourse/plugins/chat/discourse/components/chat-composer.js","discourse/plugins/chat/discourse/components/chat-drawer.js","discourse/plugins/chat/discourse/components/chat-emoji-avatar.js","discourse/plugins/chat/discourse/components/chat-footer.js","discourse/plugins/chat/discourse/components/chat-header.js","discourse/plugins/chat/discourse/components/chat-mention-warnings.js","discourse/plugins/chat/discourse/components/chat-message-actions-desktop.js","discourse/plugins/chat/discourse/components/chat-message-actions-mobile.js","discourse/plugins/chat/discourse/components/chat-message-collapser.js","discourse/plugins/chat/discourse/components/chat-message-in-reply-to-indicator.js","discourse/plugins/chat/discourse/components/chat-message-reaction.js","discourse/plugins/chat/discourse/components/chat-message-separator.js","discourse/plugins/chat/discourse/components/chat-message-text.js","discourse/plugins/chat/discourse/components/chat-message-thread-indicator.js","discourse/plugins/chat/discourse/components/chat-message.js","discourse/plugins/chat/discourse/components/chat-message/blocks/actions.js","discourse/plugins/chat/discourse/components/chat-message/blocks/block.js","discourse/plugins/chat/discourse/components/chat-message/blocks/element.js","discourse/plugins/chat/discourse/components/chat-message/blocks/elements/button.js","discourse/plugins/chat/discourse/components/chat-message/blocks/index.js","discourse/plugins/chat/discourse/components/chat-messages-container.js","discourse/plugins/chat/discourse/components/chat-messages-scroller.js","discourse/plugins/chat/discourse/components/chat-notice.js","discourse/plugins/chat/discourse/components/chat-notices.js","discourse/plugins/chat/discourse/components/chat-replying-indicator.js","discourse/plugins/chat/discourse/components/chat-retention-reminder-text.js","discourse/plugins/chat/discourse/components/chat-retention-reminder.js","discourse/plugins/chat/discourse/components/chat-side-panel-resizer.js","discourse/plugins/chat/discourse/components/chat-side-panel.js","discourse/plugins/chat/discourse/components/chat-skeleton.js","discourse/plugins/chat/discourse/components/chat-thread-heading.js","discourse/plugins/chat/discourse/components/chat-thread-list.js","discourse/plugins/chat/discourse/components/chat-thread-participants.js","discourse/plugins/chat/discourse/components/chat-thread-title-prompt.js","discourse/plugins/chat/discourse/components/chat-thread.js","discourse/plugins/chat/discourse/components/chat-to-topic-selector.js","discourse/plugins/chat/discourse/components/chat-upload-drop-zone.js","discourse/plugins/chat/discourse/components/chat-upload.js","discourse/plugins/chat/discourse/components/chat-user-avatar.js","discourse/plugins/chat/discourse/components/chat-user-display-name.js","discourse/plugins/chat/discourse/components/chat-user-info.js","discourse/plugins/chat/discourse/components/chat/composer/button.js","discourse/plugins/chat/discourse/components/chat/composer/channel.js","discourse/plugins/chat/discourse/components/chat/composer/separator.js","discourse/plugins/chat/discourse/components/chat/composer/thread.js","discourse/plugins/chat/discourse/components/chat/direct-message-button.js","discourse/plugins/chat/discourse/components/chat/drawer-routes/browse.js","discourse/plugins/chat/discourse/components/chat/drawer-routes/channel-info-members.js","discourse/plugins/chat/discourse/components/chat/drawer-routes/channel-info-settings.js","discourse/plugins/chat/discourse/components/chat/drawer-routes/channel-thread.js","discourse/plugins/chat/discourse/components/chat/drawer-routes/channel-threads.js","discourse/plugins/chat/discourse/components/chat/drawer-routes/channel.js","discourse/plugins/chat/discourse/components/chat/drawer-routes/channels.js","discourse/plugins/chat/discourse/components/chat/drawer-routes/direct-messages.js","discourse/plugins/chat/discourse/components/chat/drawer-routes/threads.js","discourse/plugins/chat/discourse/components/chat/footer/unread-indicator.js","discourse/plugins/chat/discourse/components/chat/form.js","discourse/plugins/chat/discourse/components/chat/form/row.js","discourse/plugins/chat/discourse/components/chat/form/section.js","discourse/plugins/chat/discourse/components/chat/header/icon.js","discourse/plugins/chat/discourse/components/chat/header/icon/unread-indicator.js","discourse/plugins/chat/discourse/components/chat/list/empty-state.js","discourse/plugins/chat/discourse/components/chat/list/index.js","discourse/plugins/chat/discourse/components/chat/list/item.js","discourse/plugins/chat/discourse/components/chat/message-creator/add-members.js","discourse/plugins/chat/discourse/components/chat/message-creator/channel.js","discourse/plugins/chat/discourse/components/chat/message-creator/constants.js","discourse/plugins/chat/discourse/components/chat/message-creator/group.js","discourse/plugins/chat/discourse/components/chat/message-creator/index.js","discourse/plugins/chat/discourse/components/chat/message-creator/lib/chatables-loader.js","discourse/plugins/chat/discourse/components/chat/message-creator/lib/iterate-list.js","discourse/plugins/chat/discourse/components/chat/message-creator/list-action.js","discourse/plugins/chat/discourse/components/chat/message-creator/list-handler.js","discourse/plugins/chat/discourse/components/chat/message-creator/list.js","discourse/plugins/chat/discourse/components/chat/message-creator/member.js","discourse/plugins/chat/discourse/components/chat/message-creator/members-count.js","discourse/plugins/chat/discourse/components/chat/message-creator/members-selector.js","discourse/plugins/chat/discourse/components/chat/message-creator/members.js","discourse/plugins/chat/discourse/components/chat/message-creator/new-group.js","discourse/plugins/chat/discourse/components/chat/message-creator/search-input.js","discourse/plugins/chat/discourse/components/chat/message-creator/search.js","discourse/plugins/chat/discourse/components/chat/message-creator/user.js","discourse/plugins/chat/discourse/components/chat/message/avatar.js","discourse/plugins/chat/discourse/components/chat/message/error.js","discourse/plugins/chat/discourse/components/chat/message/info.js","discourse/plugins/chat/discourse/components/chat/message/left-gutter.js","discourse/plugins/chat/discourse/components/chat/modal/archive-channel.js","discourse/plugins/chat/discourse/components/chat/modal/create-channel.js","discourse/plugins/chat/discourse/components/chat/modal/delete-channel.js","discourse/plugins/chat/discourse/components/chat/modal/delete-messages-confirm.js","discourse/plugins/chat/discourse/components/chat/modal/edit-channel-description.js","discourse/plugins/chat/discourse/components/chat/modal/edit-channel-name.js","discourse/plugins/chat/discourse/components/chat/modal/move-message-to-channel.js","discourse/plugins/chat/discourse/components/chat/modal/new-message.js","discourse/plugins/chat/discourse/components/chat/modal/thread-settings.js","discourse/plugins/chat/discourse/components/chat/modal/toggle-channel-status.js","discourse/plugins/chat/discourse/components/chat/navbar/actions.js","discourse/plugins/chat/discourse/components/chat/navbar/back-button.js","discourse/plugins/chat/discourse/components/chat/navbar/browse-channels-button.js","discourse/plugins/chat/discourse/components/chat/navbar/channel-title.js","discourse/plugins/chat/discourse/components/chat/navbar/close-drawer-button.js","discourse/plugins/chat/discourse/components/chat/navbar/close-thread-button.js","discourse/plugins/chat/discourse/components/chat/navbar/close-threads-button.js","discourse/plugins/chat/discourse/components/chat/navbar/full-page-button.js","discourse/plugins/chat/discourse/components/chat/navbar/index.js","discourse/plugins/chat/discourse/components/chat/navbar/new-channel-button.js","discourse/plugins/chat/discourse/components/chat/navbar/new-direct-message-button.js","discourse/plugins/chat/discourse/components/chat/navbar/open-drawer-button.js","discourse/plugins/chat/discourse/components/chat/navbar/sub-title.js","discourse/plugins/chat/discourse/components/chat/navbar/thread-settings-button.js","discourse/plugins/chat/discourse/components/chat/navbar/thread-tracking-dropdown.js","discourse/plugins/chat/discourse/components/chat/navbar/threads-list-button.js","discourse/plugins/chat/discourse/components/chat/navbar/title.js","discourse/plugins/chat/discourse/components/chat/navbar/toggle-drawer-button.js","discourse/plugins/chat/discourse/components/chat/notices/mention_without_membership.js","discourse/plugins/chat/discourse/components/chat/routes/channel-info-members.js","discourse/plugins/chat/discourse/components/chat/routes/channel-info-nav.js","discourse/plugins/chat/discourse/components/chat/routes/channel-info-settings.js","discourse/plugins/chat/discourse/components/chat/routes/channel-info.js","discourse/plugins/chat/discourse/components/chat/routes/channel-thread.js","discourse/plugins/chat/discourse/components/chat/routes/channel-threads.js","discourse/plugins/chat/discourse/components/chat/routes/channel.js","discourse/plugins/chat/discourse/components/chat/routes/channels.js","discourse/plugins/chat/discourse/components/chat/routes/direct-messages.js","discourse/plugins/chat/discourse/components/chat/routes/threads.js","discourse/plugins/chat/discourse/components/chat/scroll-to-bottom-arrow.js","discourse/plugins/chat/discourse/components/chat/selection-manager.js","discourse/plugins/chat/discourse/components/chat/thread-list/header.js","discourse/plugins/chat/discourse/components/chat/thread-list/item.js","discourse/plugins/chat/discourse/components/chat/thread/header-unread-indicator.js","discourse/plugins/chat/discourse/components/chat/thread/header.js","discourse/plugins/chat/discourse/components/collapser.js","discourse/plugins/chat/discourse/components/full-page-chat.js","discourse/plugins/chat/discourse/components/reviewable-chat-message.js","discourse/plugins/chat/discourse/components/styleguide/chat-composer-message-details.js","discourse/plugins/chat/discourse/components/styleguide/chat-composer.js","discourse/plugins/chat/discourse/components/styleguide/chat-header-icon.js","discourse/plugins/chat/discourse/components/styleguide/chat-message.js","discourse/plugins/chat/discourse/components/styleguide/chat-modal-archive-channel.js","discourse/plugins/chat/discourse/components/styleguide/chat-modal-create-channel.js","discourse/plugins/chat/discourse/components/styleguide/chat-modal-delete-channel.js","discourse/plugins/chat/discourse/components/styleguide/chat-modal-edit-channel-description.js","discourse/plugins/chat/discourse/components/styleguide/chat-modal-edit-channel-name.js","discourse/plugins/chat/discourse/components/styleguide/chat-modal-move-message-to-channel.js","discourse/plugins/chat/discourse/components/styleguide/chat-modal-new-message.js","discourse/plugins/chat/discourse/components/styleguide/chat-modal-thread-settings.js","discourse/plugins/chat/discourse/components/styleguide/chat-modal-toggle-channel-status.js","discourse/plugins/chat/discourse/components/styleguide/chat-thread-list-item.js","discourse/plugins/chat/discourse/components/styleguide/organisms/chat.js","discourse/plugins/chat/discourse/components/svg/chat-zero.js","discourse/plugins/chat/discourse/components/thread-notifications-tracking.js","discourse/plugins/chat/discourse/components/thread-title/index.js","discourse/plugins/chat/discourse/components/thread-unread-indicator/index.js","discourse/plugins/chat/discourse/components/toggle-channel-membership-button.js","discourse/plugins/chat/discourse/components/user-menu/chat-notifications-list-empty-state.js","discourse/plugins/chat/discourse/components/user-menu/chat-notifications-list.js","discourse/plugins/chat/discourse/components/user-threads/index.js","discourse/plugins/chat/discourse/components/user-threads/preview.js","discourse/plugins/chat/discourse/connectors/above-site-header/chat-body-class.js","discourse/plugins/chat/discourse/connectors/below-footer/chat-drawer-outlet.js","discourse/plugins/chat/discourse/connectors/below-footer/chat-message-actions-desktop-outlet.js","discourse/plugins/chat/discourse/connectors/chat-composer-inline-buttons/emoji-picker.js","discourse/plugins/chat/discourse/connectors/home-logo-wrapper/chat-header-connector.js","discourse/plugins/chat/discourse/connectors/user-card-below-message-button/chat-button.js","discourse/plugins/chat/discourse/connectors/user-preferences-nav/chat-preferences.js","discourse/plugins/chat/discourse/connectors/user-profile-controls/chat-button.js","discourse/plugins/chat/discourse/controllers/chat-channel-index.js","discourse/plugins/chat/discourse/controllers/chat-channel-thread.js","discourse/plugins/chat/discourse/controllers/chat-channel.js","discourse/plugins/chat/discourse/controllers/chat-draft-channel.js","discourse/plugins/chat/discourse/controllers/chat-index.js","discourse/plugins/chat/discourse/controllers/chat-new-message.js","discourse/plugins/chat/discourse/controllers/chat.js","discourse/plugins/chat/discourse/controllers/preferences-chat.js","discourse/plugins/chat/discourse/helpers/chat-guardian.js","discourse/plugins/chat/discourse/helpers/first-visible-message-id.js","discourse/plugins/chat/discourse/helpers/format-chat-date.js","discourse/plugins/chat/discourse/initializers/chat-audio.js","discourse/plugins/chat/discourse/initializers/chat-decorators.js","discourse/plugins/chat/discourse/initializers/chat-keyboard-shortcuts.js","discourse/plugins/chat/discourse/initializers/chat-plugin-decorators.js","discourse/plugins/chat/discourse/initializers/chat-setup.js","discourse/plugins/chat/discourse/initializers/chat-sidebar.js","discourse/plugins/chat/discourse/initializers/chat-user-menu.js","discourse/plugins/chat/discourse/initializers/chat-user-options.js","discourse/plugins/chat/discourse/lib/chat-channel-subscription-manager.js","discourse/plugins/chat/discourse/lib/chat-channel-thread-subscription-manager.js","discourse/plugins/chat/discourse/lib/chat-composer-buttons.js","discourse/plugins/chat/discourse/lib/chat-constants.js","discourse/plugins/chat/discourse/lib/chat-ios-hacks.js","discourse/plugins/chat/discourse/lib/chat-message-container.js","discourse/plugins/chat/discourse/lib/chat-message-flag.js","discourse/plugins/chat/discourse/lib/chat-message-interactor.js","discourse/plugins/chat/discourse/lib/chat-messages-loader.js","discourse/plugins/chat/discourse/lib/chat-messages-manager.js","discourse/plugins/chat/discourse/lib/chat-notification-levels.js","discourse/plugins/chat/discourse/lib/chat-threads-manager.js","discourse/plugins/chat/discourse/lib/chat-user-preferences.js","discourse/plugins/chat/discourse/lib/check-message-visibility.js","discourse/plugins/chat/discourse/lib/collection.js","discourse/plugins/chat/discourse/lib/dates-separators-positioner.js","discourse/plugins/chat/discourse/lib/extract-current-topic-info.js","discourse/plugins/chat/discourse/lib/fabricators.js","discourse/plugins/chat/discourse/lib/get-reaction-text.js","discourse/plugins/chat/discourse/lib/get-user-chat-separate-sidebar-mode.js","discourse/plugins/chat/discourse/lib/hashtag-types/channel.js","discourse/plugins/chat/discourse/lib/init-sidebar-state.js","discourse/plugins/chat/discourse/lib/lightbox.js","discourse/plugins/chat/discourse/lib/scroll-helpers.js","discourse/plugins/chat/discourse/lib/slugify-channel.js","discourse/plugins/chat/discourse/lib/textarea-interactor.js","discourse/plugins/chat/discourse/lib/transform-auto-links.js","discourse/plugins/chat/discourse/models/chat-channel-archive.js","discourse/plugins/chat/discourse/models/chat-channel.js","discourse/plugins/chat/discourse/models/chat-chatable.js","discourse/plugins/chat/discourse/models/chat-direct-message.js","discourse/plugins/chat/discourse/models/chat-message-reaction.js","discourse/plugins/chat/discourse/models/chat-message.js","discourse/plugins/chat/discourse/models/chat-notice.js","discourse/plugins/chat/discourse/models/chat-thread-preview.js","discourse/plugins/chat/discourse/models/chat-thread.js","discourse/plugins/chat/discourse/models/chat-tracking-state.js","discourse/plugins/chat/discourse/models/user-chat-channel-membership.js","discourse/plugins/chat/discourse/models/user-chat-thread-membership.js","discourse/plugins/chat/discourse/modifiers/chat/later-fn.js","discourse/plugins/chat/discourse/modifiers/chat/on-animation-end.js","discourse/plugins/chat/discourse/modifiers/chat/on-long-press.js","discourse/plugins/chat/discourse/modifiers/chat/on-scroll.js","discourse/plugins/chat/discourse/modifiers/chat/resizable-node.js","discourse/plugins/chat/discourse/modifiers/chat/scrollable-list.js","discourse/plugins/chat/discourse/modifiers/chat/track-message-separator-date.js","discourse/plugins/chat/discourse/modifiers/chat/track-message.js","discourse/plugins/chat/discourse/pre-initializers/chat-plugin-api.js","discourse/plugins/chat/discourse/preferences-chat-route-map.js","discourse/plugins/chat/discourse/routes/chat-browse-archived.js","discourse/plugins/chat/discourse/routes/chat-browse-index.js","discourse/plugins/chat/discourse/routes/chat-channel-decorator.js","discourse/plugins/chat/discourse/routes/chat-channel-info-index.js","discourse/plugins/chat/discourse/routes/chat-channel-info-members.js","discourse/plugins/chat/discourse/routes/chat-channel-info.js","discourse/plugins/chat/discourse/routes/chat-channel-legacy.js","discourse/plugins/chat/discourse/routes/chat-channel-near-message-with-thread.js","discourse/plugins/chat/discourse/routes/chat-channel-near-message.js","discourse/plugins/chat/discourse/routes/chat-channel-thread-near-message.js","discourse/plugins/chat/discourse/routes/chat-channel-thread.js","discourse/plugins/chat/discourse/routes/chat-channel-threads.js","discourse/plugins/chat/discourse/routes/chat-channel.js","discourse/plugins/chat/discourse/routes/chat-channels.js","discourse/plugins/chat/discourse/routes/chat-direct-messages.js","discourse/plugins/chat/discourse/routes/chat-draft-channel.js","discourse/plugins/chat/discourse/routes/chat-index.js","discourse/plugins/chat/discourse/routes/chat-new-message.js","discourse/plugins/chat/discourse/routes/chat-threads.js","discourse/plugins/chat/discourse/routes/chat.js","discourse/plugins/chat/discourse/routes/preferences-chat.js","discourse/plugins/chat/discourse/services/chat-admin-api.js","discourse/plugins/chat/discourse/services/chat-api.js","discourse/plugins/chat/discourse/services/chat-audio-manager.js","discourse/plugins/chat/discourse/services/chat-channel-composer.js","discourse/plugins/chat/discourse/services/chat-channel-info-route-origin-manager.js","discourse/plugins/chat/discourse/services/chat-channel-notices-manager.js","discourse/plugins/chat/discourse/services/chat-channel-pane.js","discourse/plugins/chat/discourse/services/chat-channel-scroll-positions.js","discourse/plugins/chat/discourse/services/chat-channels-manager.js","discourse/plugins/chat/discourse/services/chat-composer-warnings-tracker.js","discourse/plugins/chat/discourse/services/chat-drafts-manager.js","discourse/plugins/chat/discourse/services/chat-drawer-router.js","discourse/plugins/chat/discourse/services/chat-drawer-size.js","discourse/plugins/chat/discourse/services/chat-guardian.js","discourse/plugins/chat/discourse/services/chat-history.js","discourse/plugins/chat/discourse/services/chat-notification-manager.js","discourse/plugins/chat/discourse/services/chat-state-manager.js","discourse/plugins/chat/discourse/services/chat-subscriptions-manager.js","discourse/plugins/chat/discourse/services/chat-thread-composer.js","discourse/plugins/chat/discourse/services/chat-thread-list-pane.js","discourse/plugins/chat/discourse/services/chat-thread-pane.js","discourse/plugins/chat/discourse/services/chat-tracking-state-manager.js","discourse/plugins/chat/discourse/services/chat.js","discourse/plugins/chat/discourse/services/interacted-chat-message.js","discourse/plugins/chat/discourse/templates/chat-browse-all.js","discourse/plugins/chat/discourse/templates/chat-browse-archived.js","discourse/plugins/chat/discourse/templates/chat-browse-closed.js","discourse/plugins/chat/discourse/templates/chat-browse-open.js","discourse/plugins/chat/discourse/templates/chat-browse.js","discourse/plugins/chat/discourse/templates/chat-channel-info-members.js","discourse/plugins/chat/discourse/templates/chat-channel-info-settings.js","discourse/plugins/chat/discourse/templates/chat-channel-info.js","discourse/plugins/chat/discourse/templates/chat-channel-thread.js","discourse/plugins/chat/discourse/templates/chat-channel-threads.js","discourse/plugins/chat/discourse/templates/chat-channel.js","discourse/plugins/chat/discourse/templates/chat-channels.js","discourse/plugins/chat/discourse/templates/chat-direct-messages.js","discourse/plugins/chat/discourse/templates/chat-index.js","discourse/plugins/chat/discourse/templates/chat-threads.js","discourse/plugins/chat/discourse/templates/chat.js","discourse/plugins/chat/discourse/templates/preferences/chat.js","discourse/plugins/chat/lib/discourse-markdown/chat-html-inline.js","discourse/plugins/chat/lib/discourse-markdown/chat-transcript.js","discourse/plugins/chat/lib/rich-editor-extension.js"],"sourcesContent":["define(\"discourse/plugins/chat/discourse/adapters/chat-message\", [\"exports\", \"discourse/adapters/rest\"], function (_exports, _rest) {\n \"use strict\";\n\n Object.defineProperty(_exports, \"__esModule\", {\n value: true\n });\n _exports.default = void 0;\n class ChatMessage extends _rest.default {\n pathFor(store, type, findArgs) {\n if (findArgs.targetMessageId) {\n return `/chat/lookup/${findArgs.targetMessageId}.json?chat_channel_id=${findArgs.channelId}`;\n }\n let path = `/chat/${findArgs.channelId}/messages.json?page_size=${findArgs.pageSize}`;\n if (findArgs.messageId) {\n path += `&message_id=${findArgs.messageId}`;\n }\n if (findArgs.direction) {\n path += `&direction=${findArgs.direction}`;\n }\n return path;\n }\n apiNameFor() {\n return \"chat-message\";\n }\n }\n _exports.default = ChatMessage;\n});","define(\"discourse/plugins/chat/discourse/admin-chat-route-map\", [\"exports\"], function (_exports) {\n \"use strict\";\n\n Object.defineProperty(_exports, \"__esModule\", {\n value: true\n });\n _exports.default = void 0;\n var _default = _exports.default = {\n resource: \"admin.adminPlugins.show\",\n path: \"/plugins\",\n map() {\n this.route(\"discourse-chat-incoming-webhooks\", {\n path: \"hooks\"\n }, function () {\n this.route(\"new\");\n this.route(\"edit\", {\n path: \"/:id/edit\"\n });\n });\n }\n };\n});","define(\"discourse/plugins/chat/discourse/chat-route-map\", [\"exports\"], function (_exports) {\n \"use strict\";\n\n Object.defineProperty(_exports, \"__esModule\", {\n value: true\n });\n _exports.default = _default;\n function _default() {\n this.route(\"chat\", function () {\n this.route(\"channel\", {\n path: \"/c/:channelTitle/:channelId\"\n }, function () {\n this.route(\"near-message\", {\n path: \"/:messageId\"\n });\n this.route(\"near-message-with-thread\", {\n path: \"/:messageId/t/:threadId\"\n });\n this.route(\"threads\", {\n path: \"/t\"\n });\n this.route(\"thread\", {\n path: \"/t/:threadId\"\n }, function () {\n this.route(\"near-message\", {\n path: \"/:messageId\"\n });\n });\n });\n this.route(\"direct-messages\");\n this.route(\"channels\");\n this.route(\"threads\");\n this.route(\"new-message\");\n this.route(\"channel.info\", {\n path: \"/c/:channelTitle/:channelId/info\"\n }, function () {\n this.route(\"members\");\n this.route(\"settings\");\n });\n this.route(\"browse\", function () {\n this.route(\"all\");\n this.route(\"closed\");\n this.route(\"open\");\n this.route(\"archived\");\n });\n this.route(\"message\", {\n path: \"/message/:messageId\"\n });\n });\n }\n});","define(\"discourse/plugins/chat/discourse/components/browse-channels\", [\"exports\", \"@glimmer/component\", \"@glimmer/tracking\", \"@ember/helper\", \"@ember/object\", \"@ember/render-modifiers/modifiers/did-insert\", \"@ember/routing\", \"@ember/runloop\", \"@ember/service\", \"truth-helpers\", \"discourse/components/empty-state\", \"discourse/components/filter-input\", \"discourse/lib/debounce\", \"discourse/lib/environment\", \"discourse-i18n\", \"discourse/plugins/chat/discourse/components/chat/list\", \"discourse/plugins/chat/discourse/components/chat/modal/new-message\", \"discourse/plugins/chat/discourse/components/chat-channel-card\", \"@ember/component\", \"@ember/template-factory\"], function (_exports, _component, _tracking, _helper, _object, _didInsert, _routing, _runloop, _service, _truthHelpers, _emptyState, _filterInput, _debounce, _environment, _discourseI18n, _list, _newMessage, _chatChannelCard, _component2, _templateFactory) {\n \"use strict\";\n\n Object.defineProperty(_exports, \"__esModule\", {\n value: true\n });\n _exports.default = void 0;\n const ARCHIVED = \"archived\";\n const ALL = \"all\";\n const OPEN = \"open\";\n const CLOSED = \"closed\";\n const TABS = [ALL, OPEN, CLOSED, ARCHIVED];\n class BrowseChannels extends _component.default {\n static #_ = (() => dt7948.g(this.prototype, \"chatApi\", [_service.service]))();\n #chatApi = (() => (dt7948.i(this, \"chatApi\"), void 0))();\n static #_2 = (() => dt7948.g(this.prototype, \"modal\", [_service.service]))();\n #modal = (() => (dt7948.i(this, \"modal\"), void 0))();\n static #_3 = (() => dt7948.g(this.prototype, \"siteSettings\", [_service.service]))();\n #siteSettings = (() => (dt7948.i(this, \"siteSettings\"), void 0))();\n static #_4 = (() => dt7948.g(this.prototype, \"filter\", [_tracking.tracked], function () {\n return \"\";\n }))();\n #filter = (() => (dt7948.i(this, \"filter\"), void 0))();\n get currentTab() {\n return this.args.currentTab ?? ALL;\n }\n get channelsCollection() {\n return this.chatApi.channels({\n filter: this.filter,\n status: this.currentTab\n });\n }\n static #_5 = (() => dt7948.n(this.prototype, \"channelsCollection\", [_tracking.cached]))();\n get tabs() {\n if (this.siteSettings.chat_allow_archiving_channels) {\n return TABS;\n } else {\n return [...TABS].removeObject(ARCHIVED);\n }\n }\n showChatNewMessageModal() {\n this.modal.show(_newMessage.default);\n }\n static #_6 = (() => dt7948.n(this.prototype, \"showChatNewMessageModal\", [_object.action]))();\n setFilter(event) {\n this.filter = event.target.value;\n (0, _debounce.default)(this.debouncedLoad, _environment.INPUT_DELAY);\n }\n static #_7 = (() => dt7948.n(this.prototype, \"setFilter\", [_object.action]))();\n debouncedLoad() {\n this.channelsCollection.load({\n limit: 10\n });\n }\n static #_8 = (() => dt7948.n(this.prototype, \"debouncedLoad\", [_object.action]))();\n focusFilterInput(input) {\n (0, _runloop.schedule)(\"afterRender\", () => input?.focus());\n }\n static #_9 = (() => dt7948.n(this.prototype, \"focusFilterInput\", [_object.action]))();\n static #_10 = (() => (0, _component2.setComponentTemplate)((0, _templateFactory.createTemplateFactory)(\n /*\n \n
\n {{@channel.description}}\n
\n {{/if}}\n {{#if this.showJoinButton}}\n\n {{@notice.textContent}}\n
\n {{else}}\n{{this.newTopicInstruction}}
\n \n \n {{/if}}\n \n {{#if this.existingTopic}}\n{{this.existingTopicInstruction}}
\n \n {{/if}}\n \n {{#if (and this.allowNewMessage this.newMessage)}}\n{{this.newMessageInstruction}}
\n \n \n {{/if}}\n\n {{this.instructionsText}}\n
\n\n {{this.instructionsText}}\n
\n \n \n <:footer>\n{{icon \"circle-info\"}}\n {{i18n \"chat.thread_title_modal.discourse_ai.title\"}}
\n{{htmlSafe\n (i18n\n \"chat.thread_title_modal.discourse_ai.description\"\n url=\"Discourse AI\"\n )\n }}\n
\n{{this.instructions}}
\n \n <:footer>\n\n {{@notice.data.text}}\n \n {{i18n \"chat.mention_warning.invite\"}}\n \n
\n {{/if}}\n