// 聊天室 Vite 入口,集中导出从 Blade 内联脚本迁移出的纯前端工具。 // 统一转发各子模块导出,方便测试或后续模块继续复用同一组工具。 export { escapeHtml, escapeHtmlWithLineBreaks } from "./chat-room/html.js"; export { bindAppointmentAnnouncementControls, showAppointmentBanner } from "./chat-room/appointment-announcement.js"; export { bindChatBanner } from "./chat-room/banner.js"; export { bindChatBotControls, clearChatBotContext, sendToChatBot } from "./chat-room/chat-bot.js"; export { bindGlobalDialogControls } from "./chat-room/dialog.js"; export { bindDailySignInControls } from "./chat-room/daily-sign-in.js"; export { applyFontSize, bindChatFontSizeControl, CHAT_FONT_SIZE_STORAGE_KEY, restoreChatFontSize } from "./chat-room/font-size.js"; export { bindChatImageUploadControl } from "./chat-room/image-upload.js"; export { bindChatComposerControls } from "./chat-room/composer.js"; export { bindChatToast } from "./chat-room/toast.js"; export { bindFriendPanelControls, closeFriendPanel, friendSearch, loadFriends, openFriendPanel, quickFriendAction } from "./chat-room/friend-panel.js"; export { bindFriendNotificationControls, setupBannerNotification, setupFriendNotification, showFriendBanner } from "./chat-room/friend-notifications.js"; export { closeChatImageLightbox, initChatImageLightboxEvents, openChatImageLightbox } from "./chat-room/lightbox.js"; export { bindMobileDrawerControls, closeMobileDrawer, loadMobileRoomList, openMobileDrawer, renderMobileRoomList, renderMobileUserList, scheduleRenderMobileUserList, switchMobileTab, } from "./chat-room/mobile-drawer.js"; export { bindMarriageStatusControls } from "./chat-room/marriage-status.js"; export { bindToolbarControls, runFeatureShortcut, runToolbarAction } from "./chat-room/toolbar.js"; export { bindUserTargetActions, openUserCard, switchTarget } from "./chat-room/user-target-actions.js"; export { bindWelcomeMenuControls } from "./chat-room/welcome-menu.js"; export { bindAdminMenuControls } from "./chat-room/admin-menu.js"; export { bindBaccaratLossCoverAdminControls, closeAdminBaccaratLossCoverModal, closeCurrentBaccaratLossCoverEvent, loadAdminCurrentLossCoverEvent, openAdminBaccaratLossCoverModal, submitBaccaratLossCoverEvent, } from "./chat-room/baccarat-loss-cover-admin.js"; export { bindBaccaratLossCoverControls } from "./chat-room/baccarat-loss-cover.js"; export { bindGameHallControls } from "./chat-room/game-hall.js"; export { bindGameBootstrapControls, deferChatGameBootstrap } from "./chat-room/game-bootstrap.js"; export { bindGamePanelControls } from "./chat-room/game-panels.js"; export { bindHolidayModalControls, openHolidayRunFromSystemMessage } from "./chat-room/holiday-modal.js"; export { bankAction, bankLoadInfo, bankShowMsg, bindBankControls, closeBankModal, fetchBankRanking, openBankModal, switchBankTab, toggleBankRankSort, } from "./chat-room/bank-modal.js"; export { bindFishingControls } from "./chat-room/fishing.js"; export { bindProfileControls } from "./chat-room/profile-controls.js"; export { bindShopControls } from "./chat-room/shop-controls.js"; export { bindVipControls } from "./chat-room/vip-controls.js"; export { BLOCKABLE_SYSTEM_SENDERS, BLOCKED_SYSTEM_SENDERS_STORAGE_KEY, CHAT_SOUND_MUTED_STORAGE_KEY, bindBlockMenuControls, bindSoundMuteControl, isSoundMuted, loadBlockedSystemSenders, normalizeChatPreferences, normalizeDailyStatus, parseDailyStatusExpiry, persistBlockedSystemSenders, setSoundMuted, shouldMigrateLocalChatPreferences, } from "./chat-room/preferences-status.js"; export { bindChatRightPanelControls } from "./chat-room/right-panel.js"; export { bindRoomStatusControls, normalizeRoomStatus, renderRoomStatusRow, renderRoomsOnlineStatus, renderRoomsOnlineStatusToContainer, resolveRoomUrl, } from "./chat-room/rooms.js"; export { bindRewardModalControls, openRewardModal } from "./chat-room/reward-modal.js"; export { createMessageQueue } from "./chat-room/message-queue.js"; import { escapeHtml, escapeHtmlWithLineBreaks } from "./chat-room/html.js"; import { bindAppointmentAnnouncementControls, showAppointmentBanner } from "./chat-room/appointment-announcement.js"; import { bindChatBanner } from "./chat-room/banner.js"; import { bindChatBotControls, clearChatBotContext, sendToChatBot } from "./chat-room/chat-bot.js"; import { bindGlobalDialogControls } from "./chat-room/dialog.js"; import { bindDailySignInControls } from "./chat-room/daily-sign-in.js"; import { applyFontSize, bindChatFontSizeControl, CHAT_FONT_SIZE_STORAGE_KEY, restoreChatFontSize } from "./chat-room/font-size.js"; import { bindChatImageUploadControl } from "./chat-room/image-upload.js"; import { bindChatComposerControls } from "./chat-room/composer.js"; import { bindChatToast } from "./chat-room/toast.js"; import { bindFriendPanelControls, closeFriendPanel, friendSearch, loadFriends, openFriendPanel, quickFriendAction } from "./chat-room/friend-panel.js"; import { bindFriendNotificationControls, setupBannerNotification, setupFriendNotification, showFriendBanner } from "./chat-room/friend-notifications.js"; import { closeChatImageLightbox, initChatImageLightboxEvents, openChatImageLightbox } from "./chat-room/lightbox.js"; import { bindMobileDrawerControls, closeMobileDrawer, loadMobileRoomList, openMobileDrawer, renderMobileRoomList, renderMobileUserList, scheduleRenderMobileUserList, switchMobileTab, } from "./chat-room/mobile-drawer.js"; import { bindMarriageStatusControls } from "./chat-room/marriage-status.js"; import { bindToolbarControls, runFeatureShortcut, runToolbarAction } from "./chat-room/toolbar.js"; import { bindUserTargetActions, openUserCard, switchTarget } from "./chat-room/user-target-actions.js"; import { bindWelcomeMenuControls } from "./chat-room/welcome-menu.js"; import { bindAdminMenuControls } from "./chat-room/admin-menu.js"; import { bindBaccaratLossCoverAdminControls, closeAdminBaccaratLossCoverModal, closeCurrentBaccaratLossCoverEvent, loadAdminCurrentLossCoverEvent, openAdminBaccaratLossCoverModal, submitBaccaratLossCoverEvent, } from "./chat-room/baccarat-loss-cover-admin.js"; import { bindBaccaratLossCoverControls } from "./chat-room/baccarat-loss-cover.js"; import { bindGameHallControls } from "./chat-room/game-hall.js"; import { bindGameBootstrapControls, deferChatGameBootstrap } from "./chat-room/game-bootstrap.js"; import { bindGamePanelControls } from "./chat-room/game-panels.js"; import { bindHolidayModalControls, openHolidayRunFromSystemMessage } from "./chat-room/holiday-modal.js"; import { bankAction, bankLoadInfo, bankShowMsg, bindBankControls, closeBankModal, fetchBankRanking, openBankModal, switchBankTab, toggleBankRankSort, } from "./chat-room/bank-modal.js"; import { bindFishingControls } from "./chat-room/fishing.js"; import { bindProfileControls } from "./chat-room/profile-controls.js"; import { bindShopControls } from "./chat-room/shop-controls.js"; import { bindVipControls } from "./chat-room/vip-controls.js"; import { BLOCKABLE_SYSTEM_SENDERS, BLOCKED_SYSTEM_SENDERS_STORAGE_KEY, CHAT_SOUND_MUTED_STORAGE_KEY, bindBlockMenuControls, bindSoundMuteControl, isSoundMuted, loadBlockedSystemSenders, normalizeChatPreferences, normalizeDailyStatus, parseDailyStatusExpiry, persistBlockedSystemSenders, setSoundMuted, shouldMigrateLocalChatPreferences, } from "./chat-room/preferences-status.js"; import { bindChatRightPanelControls } from "./chat-room/right-panel.js"; import { bindRoomStatusControls, normalizeRoomStatus, renderRoomStatusRow, renderRoomsOnlineStatus, renderRoomsOnlineStatusToContainer, resolveRoomUrl, } from "./chat-room/rooms.js"; import { bindRewardModalControls, openRewardModal } from "./chat-room/reward-modal.js"; import { createMessageQueue } from "./chat-room/message-queue.js"; if (typeof window !== "undefined") { // 保留聚合入口,给新迁移模块、测试和仍在 Blade 内的存量脚本统一读取工具。 window.ChatRoomTools = { escapeHtml, escapeHtmlWithLineBreaks, bindAppointmentAnnouncementControls, showAppointmentBanner, bindChatBanner, bindChatBotControls, clearChatBotContext, sendToChatBot, bindGlobalDialogControls, bindDailySignInControls, applyFontSize, bindChatFontSizeControl, bindChatImageUploadControl, bindChatComposerControls, bindChatToast, bindFriendPanelControls, bindFriendNotificationControls, closeFriendPanel, friendSearch, loadFriends, openFriendPanel, quickFriendAction, setupBannerNotification, setupFriendNotification, showFriendBanner, bindMobileDrawerControls, closeMobileDrawer, loadMobileRoomList, openMobileDrawer, renderMobileRoomList, renderMobileUserList, scheduleRenderMobileUserList, switchMobileTab, bindToolbarControls, runFeatureShortcut, runToolbarAction, bindUserTargetActions, openUserCard, switchTarget, bindWelcomeMenuControls, bindAdminMenuControls, bindBaccaratLossCoverAdminControls, closeAdminBaccaratLossCoverModal, closeCurrentBaccaratLossCoverEvent, bindBaccaratLossCoverControls, bindGameHallControls, bindGameBootstrapControls, deferChatGameBootstrap, bindGamePanelControls, bindHolidayModalControls, openHolidayRunFromSystemMessage, loadAdminCurrentLossCoverEvent, openAdminBaccaratLossCoverModal, submitBaccaratLossCoverEvent, bankAction, bankLoadInfo, bankShowMsg, bindBankControls, closeBankModal, fetchBankRanking, openBankModal, switchBankTab, toggleBankRankSort, bindFishingControls, bindMarriageStatusControls, bindProfileControls, bindShopControls, bindVipControls, CHAT_FONT_SIZE_STORAGE_KEY, restoreChatFontSize, closeChatImageLightbox, initChatImageLightboxEvents, openChatImageLightbox, BLOCKABLE_SYSTEM_SENDERS, BLOCKED_SYSTEM_SENDERS_STORAGE_KEY, CHAT_SOUND_MUTED_STORAGE_KEY, bindBlockMenuControls, bindSoundMuteControl, isSoundMuted, loadBlockedSystemSenders, normalizeChatPreferences, normalizeDailyStatus, parseDailyStatusExpiry, persistBlockedSystemSenders, setSoundMuted, shouldMigrateLocalChatPreferences, bindChatRightPanelControls, bindRoomStatusControls, normalizeRoomStatus, renderRoomStatusRow, renderRoomsOnlineStatus, renderRoomsOnlineStatusToContainer, resolveRoomUrl, bindRewardModalControls, openRewardModal, createMessageQueue, }; // 直接挂载只服务暂未迁移的 Blade 调用点;新代码优先通过模块导入或 ChatRoomTools 复用。 window.closeChatImageLightbox = closeChatImageLightbox; window.openChatImageLightbox = openChatImageLightbox; window.closeFriendPanel = closeFriendPanel; window.friendSearch = friendSearch; window.openFriendPanel = openFriendPanel; window.quickFriendAction = quickFriendAction; window.setupBannerNotification = setupBannerNotification; window.setupFriendNotification = setupFriendNotification; window.showFriendBanner = showFriendBanner; window.closeMobileDrawer = closeMobileDrawer; window.loadMobileRoomList = loadMobileRoomList; window.openMobileDrawer = openMobileDrawer; window.openUserCard = openUserCard; window.openRewardModal = openRewardModal; window.renderMobileRoomList = renderMobileRoomList; window.renderMobileUserList = renderMobileUserList; window.scheduleRenderMobileUserList = scheduleRenderMobileUserList; window.switchMobileTab = switchMobileTab; window.switchTarget = switchTarget; window.clearChatBotContext = clearChatBotContext; window.sendToChatBot = sendToChatBot; window.runFeatureShortcut = runFeatureShortcut; window.runToolbarAction = runToolbarAction; window.openHolidayRunFromSystemMessage = openHolidayRunFromSystemMessage; window.closeAdminBaccaratLossCoverModal = closeAdminBaccaratLossCoverModal; window.closeCurrentBaccaratLossCoverEvent = closeCurrentBaccaratLossCoverEvent; window.openAdminBaccaratLossCoverModal = openAdminBaccaratLossCoverModal; window.submitBaccaratLossCoverEvent = submitBaccaratLossCoverEvent; window.bankAction = bankAction; window.bankLoadInfo = bankLoadInfo; window.bankShowMsg = bankShowMsg; window.closeBankModal = closeBankModal; window.fetchBankRanking = fetchBankRanking; window.deferChatGameBootstrap = deferChatGameBootstrap; window.openBankModal = openBankModal; window.switchBankTab = switchBankTab; window.toggleBankRankSort = toggleBankRankSort; window.applyFontSize = applyFontSize; // 页面加载后立即注册事件委托,具体业务逻辑仍由各子模块负责。 bindChatBanner(); bindChatBotControls(); bindAppointmentAnnouncementControls(); bindGlobalDialogControls(); bindDailySignInControls(); bindChatFontSizeControl(); bindChatImageUploadControl(); bindChatComposerControls(); bindChatToast(); bindFriendPanelControls(); bindFriendNotificationControls(); bindToolbarControls(); bindUserTargetActions(); bindAdminMenuControls(); bindBaccaratLossCoverAdminControls(); bindBaccaratLossCoverControls(); bindGameHallControls(); bindGameBootstrapControls(); bindGamePanelControls(); bindHolidayModalControls(); bindBankControls(); bindFishingControls(); bindMarriageStatusControls(); bindProfileControls(); bindShopControls(); bindVipControls(); bindChatRightPanelControls(); bindRoomStatusControls(); bindRewardModalControls(); bindMobileDrawerControls(); bindWelcomeMenuControls(); bindBlockMenuControls(); }