tuikit-atomicx-vue3 3.4.2 → 4.3.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.eslintrc.cjs +1 -0
- package/dist/baseComp/Modal/Modal.js +431 -23
- package/dist/chat/index.d.ts +18 -18
- package/dist/components/AudioSetting/AudioMediaControl.js +39 -41
- package/dist/components/AudioSetting/AudioSettingTab.js +10 -10
- package/dist/components/AudioSetting/MicrophoneSelect.js +8 -8
- package/dist/components/AudioSetting/SpeakerSelect.js +9 -9
- package/dist/components/AudioSettingPanel/i18n/en-US/index.d.ts +1 -0
- package/dist/components/AudioSettingPanel/i18n/en-US/index.js +2 -1
- package/dist/components/AudioSettingPanel/i18n/zh-CN/index.d.ts +1 -0
- package/dist/components/AudioSettingPanel/i18n/zh-CN/index.js +2 -1
- package/dist/components/AudioSettingPanel/index.js +81 -73
- package/dist/components/BarrageInput/BarrageInputH5.js +9 -9
- package/dist/components/BarrageInput/EmojiPicker/EmojiPicker.js +3 -3
- package/dist/components/BarrageInput/MessageInputState.d.ts +28 -0
- package/dist/components/BarrageInput/MessageInputState.js +82 -0
- package/dist/components/BarrageInput/TextEditor/CharacterCountExtension.js +1 -1
- package/dist/components/BarrageInput/TextEditor/EditorCore.js +2 -2
- package/dist/components/BarrageInput/TextEditor/index.js +7 -7
- package/dist/components/BarrageInput/type.d.ts +17 -0
- package/dist/components/BarrageInput/type.js +4 -0
- package/dist/components/BarrageInput/utils.d.ts +30 -0
- package/dist/components/BarrageInput/utils.js +41 -0
- package/dist/components/BarrageList/BarrageList.js +80 -110
- package/dist/components/BarrageList/BarrageList.vue.d.ts +0 -29
- package/dist/components/BarrageList/BarrageListH5.js +95 -122
- package/dist/components/BarrageList/BarrageListH5.vue.d.ts +0 -29
- package/dist/components/BarrageList/BarrageListState.d.ts +58 -0
- package/dist/components/BarrageList/BarrageListState.js +106 -0
- package/dist/components/BarrageList/Message/MessageLayout/MessageBubble/MessageBubble.js +16 -24
- package/dist/components/BarrageList/Message/MessageLayout/MessageBubble/MessageBubble.vue.d.ts +5 -5
- package/dist/components/BarrageList/Message/MessageLayout/MessageLayout.js +48 -73
- package/dist/components/BarrageList/Message/MessageLayout/MessageLayout.vue.d.ts +5 -7
- package/dist/components/BarrageList/Message/TextMessage/TextMessage.js +70 -76
- package/dist/components/BarrageList/Message/TextMessage/TextMessage.vue.d.ts +6 -6
- package/dist/components/BarrageList/Message/TextMessage/emoji.d.ts +5 -0
- package/dist/components/BarrageList/Message/TextMessage/emoji.js +134 -0
- package/dist/components/BarrageList/index.d.ts +0 -36
- package/dist/components/CameraButton/index.js +18 -19
- package/dist/components/CoGuestPanel/CoGuestPanel.js +60 -60
- package/dist/components/CoHostPanel/BattlePanel.js +11 -11
- package/dist/components/CoHostPanel/CoHostPanel.js +10 -10
- package/dist/components/CoHostPanel/ConfigSettingPanel.js +49 -55
- package/dist/components/CoHostPanel/ConnectionPanel.js +132 -123
- package/dist/components/CoHostPanel/RecommendHostList.js +39 -36
- package/dist/components/CoHostPanel/constants.d.ts +3 -0
- package/dist/components/CoHostPanel/constants.js +6 -0
- package/dist/components/CoHostPanel/i18n/en-US/index.d.ts +1 -0
- package/dist/components/CoHostPanel/i18n/en-US/index.js +2 -1
- package/dist/components/CoHostPanel/i18n/zh-CN/index.d.ts +1 -0
- package/dist/components/CoHostPanel/i18n/zh-CN/index.js +3 -2
- package/dist/components/LiveAudienceList/LiveAudienceList.js +44 -45
- package/dist/components/LiveAudienceList/LiveAudienceListH5.js +7 -7
- package/dist/components/LiveAudienceList/UserActionMenu.js +57 -64
- package/dist/components/LiveList/LiveList.js +23 -23
- package/dist/components/LiveList/LiveListH5.js +38 -38
- package/dist/components/LiveScenePanel/CameraSettingDialog.js +10 -10
- package/dist/components/LiveScenePanel/MaterialItem.js +15 -15
- package/dist/components/LiveScenePanel/index.js +4 -4
- package/dist/components/LiveView/CoreViewDecorate/BattleDecorate.js +58 -58
- package/dist/components/LiveView/CoreViewDecorate/BattleUserDecorate.js +6 -6
- package/dist/components/LiveView/CoreViewDecorate/CoHostDecorate.js +5 -5
- package/dist/components/LiveView/DefaultStreamViewUI.js +44 -41
- package/dist/components/LiveView/PlayerControl/AudioControl.js +20 -20
- package/dist/components/LiveView/PlayerControl/MultiResolution.js +49 -48
- package/dist/components/LiveView/PlayerControl/MultiResolution.vue.d.ts +7 -1
- package/dist/components/LiveView/PlayerControl/PlayerControl.js +90 -86
- package/dist/components/LiveView/PlayerControl/PlayerControlState.js +127 -131
- package/dist/components/LiveView/PlayerControl/utils/domHelpers.d.ts +6 -0
- package/dist/components/LiveView/PlayerControl/utils/domHelpers.js +54 -22
- package/dist/components/LiveView/i18n/en-US/index.d.ts +2 -2
- package/dist/components/LiveView/i18n/en-US/index.js +2 -2
- package/dist/components/LiveView/i18n/zh-CN/index.d.ts +2 -2
- package/dist/components/LiveView/i18n/zh-CN/index.js +2 -2
- package/dist/components/LiveView/index.js +17 -17
- package/dist/components/MessageInput/TextEditor/EditorCore.js +2 -2
- package/dist/components/MessageList/MessageList.vue.d.ts +2 -2
- package/dist/components/MessageList/index.d.ts +18 -18
- package/dist/components/MicButton/index.js +11 -11
- package/dist/components/StreamMixer/LocalMixer/MixerControl.js +12 -12
- package/dist/components/StreamMixer/LocalMixer/index.js +66 -63
- package/dist/components/StreamView/Layout/CustomLayout.js +8 -8
- package/dist/components/StreamView/Layout/FloatLayout.js +124 -127
- package/dist/components/StreamView/Layout/GridLayout.js +5 -5
- package/dist/components/StreamView/index.js +25 -33
- package/dist/components/StreamView/manager/mediaManager.js +54 -60
- package/dist/components/VideoSetting/CameraSelect.js +8 -8
- package/dist/components/VideoSetting/VideoMediaControl.js +10 -10
- package/dist/components/VideoSetting/VideoPreview.js +9 -9
- package/dist/components/VideoSetting/VideoProfile.js +6 -6
- package/dist/components/VideoSetting/VideoSettingTab.js +40 -39
- package/dist/components/VideoSettingPanel/CameraSelect.js +8 -8
- package/dist/components/VideoSettingPanel/VideoPreview.js +1 -1
- package/dist/components/VideoSettingPanel/VideoProfile.js +18 -18
- package/dist/hooks/useRoomEngine.js +6 -6
- package/dist/{index-D2OVtqc8.js → index-BfIEeWMg.js} +191 -181
- package/dist/{index-Bm-QfV5o.js → index-DTi1fL-x.js} +460 -457
- package/dist/index.js +162 -144
- package/dist/report/MetricsKey.d.ts +16 -0
- package/dist/report/MetricsKey.js +4 -0
- package/dist/report/dataReport.d.ts +12 -0
- package/dist/report/dataReport.js +45 -0
- package/dist/report/index.d.ts +4 -0
- package/dist/report/index.js +6 -0
- package/dist/rtc/index.d.ts +5 -43
- package/dist/rtc/index.js +48 -48
- package/dist/states/BarrageState/BarrageState.d.ts +74 -0
- package/dist/states/BarrageState/BarrageState.js +80 -0
- package/dist/states/BarrageState/index.d.ts +1 -0
- package/dist/states/BarrageState/index.js +5 -0
- package/dist/states/{BattleState.d.ts → BattleState/BattleState.d.ts} +10 -11
- package/dist/states/BattleState/BattleState.js +203 -0
- package/dist/states/BattleState/index.d.ts +1 -0
- package/dist/states/BattleState/index.js +4 -0
- package/dist/states/CoGuestState.d.ts +24 -94
- package/dist/states/CoGuestState.js +297 -189
- package/dist/states/CoHostState/CoHostState.d.ts +2 -2
- package/dist/states/CoHostState/CoHostState.js +135 -131
- package/dist/states/{DeviceState.d.ts → DeviceState/DeviceState.d.ts} +25 -13
- package/dist/states/DeviceState/DeviceState.js +314 -0
- package/dist/states/DeviceState/index.d.ts +1 -0
- package/dist/states/DeviceState/index.js +4 -0
- package/dist/states/LiveAudienceState.d.ts +3 -1
- package/dist/states/LiveAudienceState.js +106 -63
- package/dist/states/{LiveState/index.d.ts → LiveListState/LiveListState.d.ts} +13 -8
- package/dist/states/LiveListState/LiveListState.js +285 -0
- package/dist/states/LiveListState/index.d.ts +1 -0
- package/dist/states/LiveListState/index.js +4 -0
- package/dist/states/LiveMonitorState/api/http.js +147 -129
- package/dist/states/LiveMonitorState/index.js +67 -62
- package/dist/states/LiveSeatState/index.d.ts +46 -11
- package/dist/states/LiveSeatState/index.js +34 -15
- package/dist/states/LiveSeatState/seatEventManager.d.ts +2 -0
- package/dist/states/LiveSeatState/seatEventManager.js +63 -42
- package/dist/states/LiveSeatState/seatManager.d.ts +34 -5
- package/dist/states/LiveSeatState/seatManager.js +131 -29
- package/dist/states/LiveSeatState/store.d.ts +5 -5
- package/dist/states/LiveSeatState/store.js +12 -10
- package/dist/states/LiveSeatState/usePlayStream/RTCStreamManager.js +1 -1
- package/dist/states/LiveSeatState/usePlayStream/RTCStreamPlayer.js +1 -1
- package/dist/states/LiveSeatState/usePlayStream/index.js +30 -28
- package/dist/states/LoginState.js +39 -34
- package/dist/states/SeatStore.js +82 -83
- package/dist/states/{VideoMixerState.d.ts → VideoMixerState/VideoMixerState.d.ts} +1 -1
- package/dist/states/VideoMixerState/VideoMixerState.js +269 -0
- package/dist/states/VideoMixerState/index.d.ts +1 -0
- package/dist/states/VideoMixerState/index.js +4 -0
- package/dist/styles/index.css +1 -1
- package/dist/types/audience.d.ts +21 -0
- package/dist/types/audience.js +4 -1
- package/dist/types/battle.d.ts +75 -3
- package/dist/types/battle.js +5 -1
- package/dist/types/coGuest.d.ts +72 -5
- package/dist/types/coGuest.js +4 -2
- package/dist/types/device.d.ts +38 -17
- package/dist/types/device.js +10 -8
- package/dist/types/index.d.ts +2 -2
- package/dist/types/index.js +96 -80
- package/dist/types/live.d.ts +36 -21
- package/dist/types/live.js +6 -4
- package/dist/types/seat.d.ts +23 -4
- package/dist/types/seat.js +7 -1
- package/dist/utils/eventCenter.d.ts +88 -0
- package/dist/utils/eventCenter.js +161 -0
- package/package.json +3 -3
- package/src/components/AudioSetting/AudioMediaControl.vue +1 -3
- package/src/components/AudioSetting/AudioSettingTab.vue +1 -2
- package/src/components/AudioSetting/MicrophoneSelect.vue +1 -2
- package/src/components/AudioSetting/SpeakerSelect.vue +1 -2
- package/src/components/AudioSettingPanel/i18n/en-US/index.ts +1 -0
- package/src/components/AudioSettingPanel/i18n/zh-CN/index.ts +1 -0
- package/src/components/AudioSettingPanel/index.vue +4 -2
- package/src/components/BarrageInput/BarrageInputH5.vue +1 -1
- package/src/components/BarrageInput/EmojiPicker/EmojiPicker.vue +1 -1
- package/src/components/BarrageInput/MessageInputState.ts +160 -0
- package/src/components/BarrageInput/TextEditor/TextEditor.vue +1 -1
- package/src/components/BarrageInput/type.ts +26 -0
- package/src/components/BarrageInput/utils.ts +45 -0
- package/src/components/BarrageList/BarrageList.vue +61 -117
- package/src/components/BarrageList/BarrageListH5.vue +75 -159
- package/src/components/BarrageList/BarrageListState.ts +223 -0
- package/src/components/BarrageList/Message/MessageLayout/MessageBubble/MessageBubble.vue +8 -55
- package/src/components/BarrageList/Message/MessageLayout/MessageLayout.vue +19 -44
- package/src/components/BarrageList/Message/TextMessage/TextMessage.vue +69 -96
- package/src/components/BarrageList/Message/TextMessage/emoji.ts +132 -0
- package/src/components/CameraButton/index.vue +0 -1
- package/src/components/CoGuestPanel/CoGuestPanel.vue +16 -91
- package/src/components/CoHostPanel/BattlePanel.vue +1 -4
- package/src/components/CoHostPanel/ConfigSettingPanel.vue +2 -8
- package/src/components/CoHostPanel/ConnectionPanel.vue +37 -33
- package/src/components/CoHostPanel/RecommendHostList.vue +12 -13
- package/src/components/CoHostPanel/constants.ts +3 -0
- package/src/components/CoHostPanel/i18n/en-US/index.ts +1 -0
- package/src/components/CoHostPanel/i18n/zh-CN/index.ts +2 -1
- package/src/components/LiveAudienceList/LiveAudienceList.vue +4 -5
- package/src/components/LiveAudienceList/LiveAudienceListH5.vue +2 -2
- package/src/components/LiveAudienceList/UserActionMenu.vue +7 -48
- package/src/components/LiveList/LiveList.vue +5 -5
- package/src/components/LiveList/LiveListH5.vue +6 -6
- package/src/components/LiveScenePanel/index.vue +2 -2
- package/src/components/LiveView/CoreViewDecorate/BattleDecorate.vue +10 -15
- package/src/components/LiveView/CoreViewDecorate/BattleUserDecorate.vue +2 -2
- package/src/components/LiveView/DefaultStreamViewUI.vue +5 -3
- package/src/components/LiveView/PlayerControl/AudioControl.vue +1 -1
- package/src/components/LiveView/PlayerControl/MultiResolution.vue +9 -3
- package/src/components/LiveView/PlayerControl/PlayerControl.vue +10 -2
- package/src/components/LiveView/PlayerControl/PlayerControlState.ts +233 -259
- package/src/components/LiveView/PlayerControl/utils/domHelpers.ts +64 -0
- package/src/components/LiveView/i18n/en-US/index.ts +2 -2
- package/src/components/LiveView/i18n/zh-CN/index.ts +2 -2
- package/src/components/LiveView/index.vue +2 -2
- package/src/components/MicButton/index.vue +3 -3
- package/src/components/StreamMixer/LocalMixer/index.vue +6 -8
- package/src/components/StreamView/Layout/CustomLayout.vue +2 -2
- package/src/components/StreamView/Layout/FloatLayout.vue +88 -83
- package/src/components/StreamView/index.vue +28 -14
- package/src/components/StreamView/manager/mediaManager.ts +38 -42
- package/src/components/VideoSetting/CameraSelect.vue +1 -2
- package/src/components/VideoSetting/VideoMediaControl.vue +1 -1
- package/src/components/VideoSetting/VideoPreview.vue +1 -2
- package/src/components/VideoSetting/VideoProfile.vue +1 -1
- package/src/components/VideoSetting/VideoSettingTab.vue +9 -5
- package/src/components/VideoSettingPanel/CameraSelect.vue +1 -2
- package/src/components/VideoSettingPanel/VideoProfile.vue +7 -7
- package/src/hooks/useRoomEngine.ts +1 -1
- package/src/report/MetricsKey.ts +16 -0
- package/src/report/dataReport.ts +55 -0
- package/src/report/index.ts +7 -0
- package/src/rtc/index.ts +7 -9
- package/src/types/audience.ts +27 -1
- package/src/types/battle.ts +87 -4
- package/src/types/coGuest.ts +87 -5
- package/src/types/device.ts +41 -16
- package/src/types/index.ts +2 -2
- package/src/types/live.ts +41 -22
- package/src/types/seat.ts +28 -4
- package/src/utils/eventCenter.ts +249 -0
- package/dist/DialogPortal-CvJcEAsn.js +0 -417
- package/dist/components/BarrageList/Message/FaceMessage/FaceMessage.js +0 -23
- package/dist/components/BarrageList/Message/FaceMessage/FaceMessage.vue.d.ts +0 -30
- package/dist/components/BarrageList/Message/FaceMessage/index.d.ts +0 -3
- package/dist/components/BarrageList/Message/FaceMessage/index.js +0 -4
- package/dist/components/BarrageList/Message/GroupTipMessage/GroupTipMessage.js +0 -4
- package/dist/components/BarrageList/Message/GroupTipMessage/GroupTipMessage.vue.d.ts +0 -16
- package/dist/components/BarrageList/Message/GroupTipMessage/index.d.ts +0 -3
- package/dist/components/BarrageList/Message/GroupTipMessage/index.js +0 -25
- package/dist/components/BarrageList/Message/ImageMessage/ImageMessage.js +0 -71
- package/dist/components/BarrageList/Message/ImageMessage/ImageMessage.vue.d.ts +0 -34
- package/dist/components/BarrageList/Message/ImageMessage/index.d.ts +0 -3
- package/dist/components/BarrageList/Message/ImageMessage/index.js +0 -4
- package/dist/components/BarrageList/Message/MergerMessage/MergerMessage.js +0 -9
- package/dist/components/BarrageList/Message/MergerMessage/MergerMessage.vue.d.ts +0 -2
- package/dist/components/BarrageList/Message/MergerMessage/index.d.ts +0 -3
- package/dist/components/BarrageList/Message/MergerMessage/index.js +0 -4
- package/dist/components/BarrageList/Message/MessageLayout/MessageMeta/MessageMeta.js +0 -40
- package/dist/components/BarrageList/Message/MessageLayout/MessageMeta/MessageMeta.vue.d.ts +0 -54
- package/dist/components/BarrageList/Message/MessageLayout/MessageMeta/MessageStatusIcon.js +0 -26
- package/dist/components/BarrageList/Message/MessageLayout/MessageMeta/MessageStatusIcon.vue.d.ts +0 -15
- package/dist/components/BarrageList/Message/MessageLayout/MessageMeta/index.d.ts +0 -3
- package/dist/components/BarrageList/Message/MessageLayout/MessageMeta/index.js +0 -4
- package/dist/components/BarrageList/Message/RecalledMessage/RecalledMessage.js +0 -41
- package/dist/components/BarrageList/Message/RecalledMessage/RecalledMessage.vue.d.ts +0 -35
- package/dist/components/BarrageList/Message/RecalledMessage/index.d.ts +0 -3
- package/dist/components/BarrageList/Message/RecalledMessage/index.js +0 -4
- package/dist/components/BarrageList/MessageForward/ForwardListItem.js +0 -45
- package/dist/components/BarrageList/MessageForward/ForwardListItem.vue.d.ts +0 -17
- package/dist/components/BarrageList/MessageForward/MessageForward.js +0 -203
- package/dist/components/BarrageList/MessageForward/MessageForward.vue.d.ts +0 -2
- package/dist/components/BarrageList/MessageForward/index.d.ts +0 -3
- package/dist/components/BarrageList/MessageForward/index.js +0 -4
- package/dist/components/StreamView/Layout/MixLayout.js +0 -89
- package/dist/components/StreamView/Layout/MixLayout.vue.d.ts +0 -31
- package/dist/states/BarrageListState/BarrageListState.d.ts +0 -26
- package/dist/states/BarrageListState/BarrageListState.js +0 -122
- package/dist/states/BarrageListState/index.d.ts +0 -1
- package/dist/states/BarrageListState/index.js +0 -4
- package/dist/states/BattleState.js +0 -117
- package/dist/states/DeviceState.js +0 -296
- package/dist/states/LiveState/index.js +0 -254
- package/dist/states/VideoMixerState.js +0 -260
- package/src/components/BarrageList/Message/FaceMessage/FaceMessage.vue +0 -43
- package/src/components/BarrageList/Message/FaceMessage/index.ts +0 -3
- package/src/components/BarrageList/Message/GroupTipMessage/GroupTipMessage.vue +0 -55
- package/src/components/BarrageList/Message/GroupTipMessage/index.ts +0 -3
- package/src/components/BarrageList/Message/ImageMessage/ImageMessage.vue +0 -181
- package/src/components/BarrageList/Message/ImageMessage/index.ts +0 -3
- package/src/components/BarrageList/Message/MergerMessage/MergerMessage.vue +0 -6
- package/src/components/BarrageList/Message/MergerMessage/index.ts +0 -3
- package/src/components/BarrageList/Message/MessageLayout/MessageMeta/MessageMeta.vue +0 -70
- package/src/components/BarrageList/Message/MessageLayout/MessageMeta/MessageStatusIcon.vue +0 -40
- package/src/components/BarrageList/Message/MessageLayout/MessageMeta/index.ts +0 -3
- package/src/components/BarrageList/Message/RecalledMessage/RecalledMessage.vue +0 -82
- package/src/components/BarrageList/Message/RecalledMessage/index.ts +0 -3
- package/src/components/BarrageList/MessageForward/ForwardListItem.vue +0 -67
- package/src/components/BarrageList/MessageForward/MessageForward.vue +0 -388
- package/src/components/BarrageList/MessageForward/index.ts +0 -3
- package/src/components/StreamView/Layout/MixLayout.vue +0 -144
package/src/types/coGuest.ts
CHANGED
|
@@ -1,3 +1,21 @@
|
|
|
1
|
+
import type { LiveUserInfo } from './audience';
|
|
2
|
+
|
|
3
|
+
export enum HostEvent {
|
|
4
|
+
onGuestApplicationReceived = 'onGuestApplicationReceived',
|
|
5
|
+
onGuestApplicationCancelled = 'onGuestApplicationCancelled',
|
|
6
|
+
onGuestApplicationProcessedByOtherHost = 'onGuestApplicationProcessedByOtherHost',
|
|
7
|
+
onHostInvitationResponded = 'onHostInvitationResponded',
|
|
8
|
+
onHostInvitationNoResponse = 'onHostInvitationNoResponse',
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
export enum GuestEvent {
|
|
12
|
+
onHostInvitationReceived = 'onHostInvitationReceived',
|
|
13
|
+
onHostInvitationCancelled = 'onHostInvitationCancelled',
|
|
14
|
+
onGuestApplicationResponded = 'onGuestApplicationResponded',
|
|
15
|
+
onGuestApplicationNoResponse = 'onGuestApplicationNoResponse',
|
|
16
|
+
onKickedOffSeat = 'onKickedOffSeat',
|
|
17
|
+
}
|
|
18
|
+
|
|
1
19
|
export type CoGuestRequestInfo = {
|
|
2
20
|
timestamp: number;
|
|
3
21
|
requestId: string;
|
|
@@ -7,9 +25,73 @@ export type CoGuestRequestInfo = {
|
|
|
7
25
|
avatarUrl: string;
|
|
8
26
|
};
|
|
9
27
|
|
|
10
|
-
export enum
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
28
|
+
export enum NoResponseReason {
|
|
29
|
+
timeout = 0,
|
|
30
|
+
alreadySeated = 1,
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
interface GuestApplicationReceivedEventInfo {
|
|
34
|
+
guestUser: LiveUserInfo;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
interface GuestApplicationCancelledEventInfo {
|
|
38
|
+
guestUser: LiveUserInfo;
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
interface GuestApplicationProcessedByOtherHostEventInfo {
|
|
42
|
+
guestUser: LiveUserInfo;
|
|
43
|
+
hostUser: LiveUserInfo;
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
interface HostInvitationRespondedEventInfo {
|
|
47
|
+
isAccept: boolean;
|
|
48
|
+
guestUser: LiveUserInfo;
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
interface HostInvitationNoResponseEventInfo {
|
|
52
|
+
guestUser: LiveUserInfo;
|
|
53
|
+
reason: NoResponseReason;
|
|
15
54
|
}
|
|
55
|
+
|
|
56
|
+
interface HostInvitationReceivedEventInfo {
|
|
57
|
+
hostUser: LiveUserInfo;
|
|
58
|
+
}
|
|
59
|
+
interface HostInvitationCancelledEventInfo {
|
|
60
|
+
hostUser: LiveUserInfo;
|
|
61
|
+
}
|
|
62
|
+
interface GuestApplicationRespondedEventInfo {
|
|
63
|
+
isAccept: boolean;
|
|
64
|
+
hostUser: LiveUserInfo;
|
|
65
|
+
}
|
|
66
|
+
interface GuestApplicationNoResponseEventInfo {
|
|
67
|
+
reason: NoResponseReason;
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
interface KickedOffSeatEventInfo {
|
|
71
|
+
seatIndex: number;
|
|
72
|
+
hostUser: LiveUserInfo;
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
type HostEventInfoMap = {
|
|
76
|
+
[HostEvent.onGuestApplicationReceived]: GuestApplicationReceivedEventInfo;
|
|
77
|
+
[HostEvent.onGuestApplicationCancelled]: GuestApplicationCancelledEventInfo;
|
|
78
|
+
[HostEvent.onGuestApplicationProcessedByOtherHost]: GuestApplicationProcessedByOtherHostEventInfo;
|
|
79
|
+
[HostEvent.onHostInvitationResponded]: HostInvitationRespondedEventInfo;
|
|
80
|
+
[HostEvent.onHostInvitationNoResponse]: HostInvitationNoResponseEventInfo;
|
|
81
|
+
};
|
|
82
|
+
|
|
83
|
+
type GuestEventInfoMap = {
|
|
84
|
+
[GuestEvent.onHostInvitationReceived]: HostInvitationReceivedEventInfo;
|
|
85
|
+
[GuestEvent.onHostInvitationCancelled]: HostInvitationCancelledEventInfo;
|
|
86
|
+
[GuestEvent.onGuestApplicationResponded]: GuestApplicationRespondedEventInfo;
|
|
87
|
+
[GuestEvent.onGuestApplicationNoResponse]: GuestApplicationNoResponseEventInfo;
|
|
88
|
+
[GuestEvent.onKickedOffSeat]: KickedOffSeatEventInfo;
|
|
89
|
+
};
|
|
90
|
+
|
|
91
|
+
export type CoGuestEventInfoMap = HostEventInfoMap & GuestEventInfoMap;
|
|
92
|
+
|
|
93
|
+
type CoGuestEventCallbackBase<T extends HostEvent | GuestEvent> = (
|
|
94
|
+
eventInfo: CoGuestEventInfoMap[T]
|
|
95
|
+
) => void;
|
|
96
|
+
|
|
97
|
+
export type CoGuestEventCallback = CoGuestEventCallbackBase<HostEvent | GuestEvent>;
|
package/src/types/device.ts
CHANGED
|
@@ -1,15 +1,21 @@
|
|
|
1
1
|
export enum DeviceError {
|
|
2
|
-
NoError =
|
|
3
|
-
NoDeviceDetected =
|
|
4
|
-
NoSystemPermission =
|
|
5
|
-
NotSupportCapture =
|
|
6
|
-
OccupiedError =
|
|
7
|
-
UnknownError =
|
|
2
|
+
NoError = 0,
|
|
3
|
+
NoDeviceDetected = 1,
|
|
4
|
+
NoSystemPermission = 2,
|
|
5
|
+
NotSupportCapture = 3,
|
|
6
|
+
OccupiedError = 4,
|
|
7
|
+
UnknownError = 5,
|
|
8
8
|
}
|
|
9
9
|
|
|
10
|
-
export enum
|
|
11
|
-
|
|
12
|
-
Earpiece =
|
|
10
|
+
export enum AudioRoute {
|
|
11
|
+
Speakerphone = 0,
|
|
12
|
+
Earpiece = 1,
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
export enum MirrorType {
|
|
16
|
+
Auto = 0,
|
|
17
|
+
Enable = 1,
|
|
18
|
+
Disable = 2,
|
|
13
19
|
}
|
|
14
20
|
|
|
15
21
|
export enum DeviceType {
|
|
@@ -18,6 +24,13 @@ export enum DeviceType {
|
|
|
18
24
|
ScreenShare = 'ScreenShare',
|
|
19
25
|
}
|
|
20
26
|
|
|
27
|
+
export enum VideoQuality {
|
|
28
|
+
Quality360P = 1,
|
|
29
|
+
Quality540P = 2,
|
|
30
|
+
Quality720P = 3,
|
|
31
|
+
Quality1080P = 4,
|
|
32
|
+
}
|
|
33
|
+
|
|
21
34
|
export enum DevicePermission {
|
|
22
35
|
PublishAudio = 'PublishAudio',
|
|
23
36
|
PublishVideo = 'PublishVideo',
|
|
@@ -46,13 +59,25 @@ export interface AudioSettingProps {
|
|
|
46
59
|
}
|
|
47
60
|
|
|
48
61
|
export enum DeviceStatus {
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
AdminInviting = "AdminInviting", // 关闭状态且正在被主持人/管理员被邀请中
|
|
52
|
-
UserApplying = "UserApplying", // 关闭状态且用户正在申请打开中
|
|
62
|
+
Off = 0,
|
|
63
|
+
On = 1,
|
|
53
64
|
}
|
|
54
65
|
|
|
55
|
-
export enum
|
|
56
|
-
|
|
57
|
-
|
|
66
|
+
export enum NetworkQuality {
|
|
67
|
+
Unknown = 0,
|
|
68
|
+
Excellent = 1,
|
|
69
|
+
Good = 2,
|
|
70
|
+
Poor = 3,
|
|
71
|
+
Bad = 4,
|
|
72
|
+
VeryBad = 5,
|
|
73
|
+
Down = 6,
|
|
58
74
|
}
|
|
75
|
+
|
|
76
|
+
export interface NetworkInfo {
|
|
77
|
+
userId: string;
|
|
78
|
+
quality: NetworkQuality;
|
|
79
|
+
upLoss: number;
|
|
80
|
+
downLoss: number;
|
|
81
|
+
delay: number;
|
|
82
|
+
}
|
|
83
|
+
|
package/src/types/index.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// common
|
|
2
|
-
export * from './login';
|
|
2
|
+
export type * from './login';
|
|
3
3
|
// chat
|
|
4
4
|
export * from './message';
|
|
5
5
|
export * from './search';
|
|
@@ -15,7 +15,7 @@ export * from './types';
|
|
|
15
15
|
export * from './live';
|
|
16
16
|
export * from './stream';
|
|
17
17
|
export * from './room';
|
|
18
|
-
export * from './videoMixer';
|
|
18
|
+
export type * from './videoMixer';
|
|
19
19
|
export * from './audience';
|
|
20
20
|
export * from './seat';
|
|
21
21
|
export * from './monitor';
|
package/src/types/live.ts
CHANGED
|
@@ -33,14 +33,6 @@ export enum LiveOrientation {
|
|
|
33
33
|
Portrait = 'portrait',
|
|
34
34
|
}
|
|
35
35
|
|
|
36
|
-
export enum LiveStatus {
|
|
37
|
-
IDLE = 'IDLE', // 未进入直播间的状态
|
|
38
|
-
NotStarted = 'NotStarted', // 进入直播间,直播未开始
|
|
39
|
-
Live = 'Live', // 进入直播间,直播中
|
|
40
|
-
Paused = 'Paused', // 进入直播间,直播暂停中,优先级低
|
|
41
|
-
Ended = 'Ended', // 进入直播间,直播已结束
|
|
42
|
-
}
|
|
43
|
-
|
|
44
36
|
export interface LayoutItem {
|
|
45
37
|
locationX: number; // 以画面左上角为原点的 x 坐标
|
|
46
38
|
locationY: number; // 以画面左上角为原点的 y 坐标
|
|
@@ -75,20 +67,20 @@ export interface LayoutInfo {
|
|
|
75
67
|
export interface CreateLiveParams {
|
|
76
68
|
liveId: string;
|
|
77
69
|
liveName: string;
|
|
78
|
-
notice
|
|
79
|
-
isMessageDisableForAllUser
|
|
80
|
-
isGiftEnabled
|
|
81
|
-
isLikeEnabled
|
|
82
|
-
isPublicVisible
|
|
83
|
-
isSeatEnabled
|
|
84
|
-
keepOwnerOnSeat
|
|
85
|
-
seatLayoutTemplateId
|
|
86
|
-
maxSeatCount
|
|
87
|
-
seatMode
|
|
88
|
-
coverUrl
|
|
89
|
-
backgroundUrl
|
|
90
|
-
categoryList
|
|
91
|
-
activityStatus
|
|
70
|
+
notice?: string;
|
|
71
|
+
isMessageDisableForAllUser?: boolean;
|
|
72
|
+
isGiftEnabled?: boolean;
|
|
73
|
+
isLikeEnabled?: boolean;
|
|
74
|
+
isPublicVisible?: boolean;
|
|
75
|
+
isSeatEnabled?: boolean;
|
|
76
|
+
keepOwnerOnSeat?: boolean;
|
|
77
|
+
seatLayoutTemplateId?: number;
|
|
78
|
+
maxSeatCount?: number;
|
|
79
|
+
seatMode?: TUISeatMode;
|
|
80
|
+
coverUrl?: string;
|
|
81
|
+
backgroundUrl?: string;
|
|
82
|
+
categoryList?: Array<number>;
|
|
83
|
+
activityStatus?: number;
|
|
92
84
|
}
|
|
93
85
|
|
|
94
86
|
export interface JoinLiveParams {
|
|
@@ -104,3 +96,30 @@ export interface UpdateLiveInfoParams {
|
|
|
104
96
|
isPublicVisible?: boolean;
|
|
105
97
|
layoutTemplate?: number;
|
|
106
98
|
}
|
|
99
|
+
|
|
100
|
+
export enum LiveListEvent {
|
|
101
|
+
onLiveEnded = 'onLiveEnded',
|
|
102
|
+
onKickedOutOfLive = 'onKickedOutOfLive',
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
export enum LiveEndedReason {
|
|
106
|
+
endedByHost = 1,
|
|
107
|
+
endedByServer = 2,
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
export enum LiveKickedOutReason {
|
|
111
|
+
byAdmin = 0,
|
|
112
|
+
byLoggedOnOtherDevice = 1,
|
|
113
|
+
byServer = 2,
|
|
114
|
+
forNetworkDisconnected = 3,
|
|
115
|
+
forJoinRoomStatusInvalidDuringOffline = 4,
|
|
116
|
+
forCountOfJoinedRoomsExceedLimit = 5,
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
export interface LiveListEventInfo {
|
|
120
|
+
liveId: string;
|
|
121
|
+
reason: LiveEndedReason | LiveKickedOutReason;
|
|
122
|
+
message: string;
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
export type LiveListEventCallback = (eventInfo: LiveListEventInfo) => void;
|
package/src/types/seat.ts
CHANGED
|
@@ -1,14 +1,21 @@
|
|
|
1
|
-
import { DeviceStatus
|
|
1
|
+
import { DeviceStatus } from './device';
|
|
2
2
|
|
|
3
3
|
export type SeatUserInfo = {
|
|
4
|
-
liveId: string;
|
|
5
4
|
userId: string;
|
|
6
5
|
userName: string;
|
|
7
6
|
avatarUrl: string;
|
|
7
|
+
// role: Role; // 暂不支持,等 roomEngine 支持
|
|
8
|
+
liveId: string;
|
|
8
9
|
microphoneStatus: DeviceStatus;
|
|
9
|
-
|
|
10
|
+
allowOpenMicrophone: boolean;
|
|
10
11
|
cameraStatus: DeviceStatus;
|
|
11
|
-
|
|
12
|
+
allowOpenCamera: boolean;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
export enum Role {
|
|
16
|
+
Owner = 0,
|
|
17
|
+
Administrator = 1,
|
|
18
|
+
GeneralUser = 2,
|
|
12
19
|
}
|
|
13
20
|
|
|
14
21
|
export type RegionInfo = {
|
|
@@ -31,3 +38,20 @@ export interface LiveCanvas {
|
|
|
31
38
|
height: number;
|
|
32
39
|
background: string;
|
|
33
40
|
}
|
|
41
|
+
|
|
42
|
+
export enum MoveSeatPolicy {
|
|
43
|
+
AbortWhenOccupied = 0,
|
|
44
|
+
ForceReplace = 1,
|
|
45
|
+
SwapPosition = 2,
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
export enum DeviceControlPolicy {
|
|
49
|
+
UnlockOnly = 1,
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
export enum LiveSeatEvent {
|
|
53
|
+
onLocalCameraOpenedByAdmin = 'onLocalCameraOpenedByAdmin',
|
|
54
|
+
onLocalCameraClosedByAdmin = 'onLocalCameraClosedByAdmin',
|
|
55
|
+
onLocalMicrophoneOpenedByAdmin = 'onLocalMicrophoneOpenedByAdmin',
|
|
56
|
+
onLocalMicrophoneClosedByAdmin = 'onLocalMicrophoneClosedByAdmin',
|
|
57
|
+
}
|
|
@@ -0,0 +1,249 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 事件中心工具类
|
|
3
|
+
* 提供事件的订阅、取消订阅和触发功能
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
// 事件回调函数类型
|
|
7
|
+
export type EventCallback<T = any> = (data?: T) => void;
|
|
8
|
+
|
|
9
|
+
// 事件监听器信息
|
|
10
|
+
interface EventListener<T = any> {
|
|
11
|
+
callback: EventCallback<T>;
|
|
12
|
+
once: boolean;
|
|
13
|
+
id: string;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
// 事件中心类
|
|
17
|
+
export class EventCenter {
|
|
18
|
+
// 存储所有事件监听器
|
|
19
|
+
private listeners: Map<string, EventListener[]> = new Map();
|
|
20
|
+
// 用于生成唯一的监听器ID
|
|
21
|
+
private listenerIdCounter = 0;
|
|
22
|
+
|
|
23
|
+
/**
|
|
24
|
+
* 订阅事件
|
|
25
|
+
* @param event 事件名称
|
|
26
|
+
* @param callback 回调函数
|
|
27
|
+
* @returns 返回取消订阅的函数
|
|
28
|
+
*/
|
|
29
|
+
on<T = any>(event: string, callback: EventCallback<T>): () => void {
|
|
30
|
+
if (!this.isValidEvent(event) || !this.isValidCallback(callback)) {
|
|
31
|
+
throw new Error('Invalid event name or callback function');
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
const listenerId = this.generateListenerId();
|
|
35
|
+
const listener: EventListener<T> = {
|
|
36
|
+
callback,
|
|
37
|
+
once: false,
|
|
38
|
+
id: listenerId,
|
|
39
|
+
};
|
|
40
|
+
|
|
41
|
+
if (!this.listeners.has(event)) {
|
|
42
|
+
this.listeners.set(event, []);
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
this.listeners.get(event)!.push(listener);
|
|
46
|
+
|
|
47
|
+
// 返回取消订阅函数
|
|
48
|
+
return () => this.off(event, listenerId);
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
/**
|
|
52
|
+
* 订阅事件(只触发一次)
|
|
53
|
+
* @param event 事件名称
|
|
54
|
+
* @param callback 回调函数
|
|
55
|
+
* @returns 返回取消订阅的函数
|
|
56
|
+
*/
|
|
57
|
+
once<T = any>(event: string, callback: EventCallback<T>): () => void {
|
|
58
|
+
if (!this.isValidEvent(event) || !this.isValidCallback(callback)) {
|
|
59
|
+
throw new Error('Invalid event name or callback function');
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
const listenerId = this.generateListenerId();
|
|
63
|
+
const listener: EventListener<T> = {
|
|
64
|
+
callback,
|
|
65
|
+
once: true,
|
|
66
|
+
id: listenerId,
|
|
67
|
+
};
|
|
68
|
+
|
|
69
|
+
if (!this.listeners.has(event)) {
|
|
70
|
+
this.listeners.set(event, []);
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
this.listeners.get(event)!.push(listener);
|
|
74
|
+
|
|
75
|
+
// 返回取消订阅函数
|
|
76
|
+
return () => this.off(event, listenerId);
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
/**
|
|
80
|
+
* 取消订阅事件
|
|
81
|
+
* @param event 事件名称
|
|
82
|
+
* @param callbackOrId 回调函数或监听器ID
|
|
83
|
+
*/
|
|
84
|
+
off(event: string, callbackOrId?: EventCallback | string): void {
|
|
85
|
+
if (!this.isValidEvent(event)) {
|
|
86
|
+
return;
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
const listeners = this.listeners.get(event);
|
|
90
|
+
if (!listeners) {
|
|
91
|
+
return;
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
// 如果没有提供回调函数或ID,则移除该事件的所有监听器
|
|
95
|
+
if (callbackOrId === undefined) {
|
|
96
|
+
this.listeners.delete(event);
|
|
97
|
+
return;
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
// 根据类型判断是回调函数还是ID
|
|
101
|
+
const isId = typeof callbackOrId === 'string';
|
|
102
|
+
const filteredListeners = listeners.filter(listener => {
|
|
103
|
+
if (isId) {
|
|
104
|
+
return listener.id !== callbackOrId;
|
|
105
|
+
} else {
|
|
106
|
+
return listener.callback !== callbackOrId;
|
|
107
|
+
}
|
|
108
|
+
});
|
|
109
|
+
|
|
110
|
+
if (filteredListeners.length === 0) {
|
|
111
|
+
this.listeners.delete(event);
|
|
112
|
+
} else {
|
|
113
|
+
this.listeners.set(event, filteredListeners);
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
/**
|
|
118
|
+
* 触发事件
|
|
119
|
+
* @param event 事件名称
|
|
120
|
+
* @param data 传递给回调函数的数据
|
|
121
|
+
*/
|
|
122
|
+
emit<T = any>(event: string, data?: T): void {
|
|
123
|
+
if (!this.isValidEvent(event)) {
|
|
124
|
+
return;
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
const listeners = this.listeners.get(event);
|
|
128
|
+
if (!listeners || listeners.length === 0) {
|
|
129
|
+
return;
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
// 创建监听器副本,避免在执行过程中修改原数组
|
|
133
|
+
const listenersToExecute = [...listeners];
|
|
134
|
+
const onceListeners: string[] = [];
|
|
135
|
+
|
|
136
|
+
// 执行所有监听器
|
|
137
|
+
listenersToExecute.forEach(listener => {
|
|
138
|
+
try {
|
|
139
|
+
listener.callback(data);
|
|
140
|
+
|
|
141
|
+
// 记录需要移除的一次性监听器
|
|
142
|
+
if (listener.once) {
|
|
143
|
+
onceListeners.push(listener.id);
|
|
144
|
+
}
|
|
145
|
+
} catch (error) {
|
|
146
|
+
console.error(`Error executing event listener for "${event}":`, error);
|
|
147
|
+
}
|
|
148
|
+
});
|
|
149
|
+
|
|
150
|
+
// 移除一次性监听器
|
|
151
|
+
if (onceListeners.length > 0) {
|
|
152
|
+
onceListeners.forEach(id => this.off(event, id));
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
|
|
156
|
+
/**
|
|
157
|
+
* 获取指定事件的监听器数量
|
|
158
|
+
* @param event 事件名称
|
|
159
|
+
* @returns 监听器数量
|
|
160
|
+
*/
|
|
161
|
+
getListenerCount(event?: string): number {
|
|
162
|
+
if (event) {
|
|
163
|
+
const listeners = this.listeners.get(event);
|
|
164
|
+
return listeners ? listeners.length : 0;
|
|
165
|
+
}
|
|
166
|
+
|
|
167
|
+
// 如果没有指定事件,返回所有监听器的总数
|
|
168
|
+
let totalCount = 0;
|
|
169
|
+
for (const listeners of this.listeners.values()) {
|
|
170
|
+
totalCount += listeners.length;
|
|
171
|
+
}
|
|
172
|
+
return totalCount;
|
|
173
|
+
}
|
|
174
|
+
|
|
175
|
+
/**
|
|
176
|
+
* 获取所有已注册的事件名称
|
|
177
|
+
* @returns 事件名称数组
|
|
178
|
+
*/
|
|
179
|
+
getEventNames(): string[] {
|
|
180
|
+
return Array.from(this.listeners.keys());
|
|
181
|
+
}
|
|
182
|
+
|
|
183
|
+
/**
|
|
184
|
+
* 检查是否有指定事件的监听器
|
|
185
|
+
* @param event 事件名称
|
|
186
|
+
* @returns 是否有监听器
|
|
187
|
+
*/
|
|
188
|
+
hasListeners(event: string): boolean {
|
|
189
|
+
return this.getListenerCount(event) > 0;
|
|
190
|
+
}
|
|
191
|
+
|
|
192
|
+
/**
|
|
193
|
+
* 清除所有事件监听器
|
|
194
|
+
*/
|
|
195
|
+
clear(): void {
|
|
196
|
+
this.listeners.clear();
|
|
197
|
+
}
|
|
198
|
+
|
|
199
|
+
/**
|
|
200
|
+
* 清除指定事件的所有监听器
|
|
201
|
+
* @param event 事件名称
|
|
202
|
+
*/
|
|
203
|
+
clearEvent(event: string): void {
|
|
204
|
+
if (this.isValidEvent(event)) {
|
|
205
|
+
this.listeners.delete(event);
|
|
206
|
+
}
|
|
207
|
+
}
|
|
208
|
+
|
|
209
|
+
/**
|
|
210
|
+
* 生成唯一的监听器ID
|
|
211
|
+
* @returns 监听器ID
|
|
212
|
+
*/
|
|
213
|
+
private generateListenerId(): string {
|
|
214
|
+
return `listener_${++this.listenerIdCounter}_${Date.now()}`;
|
|
215
|
+
}
|
|
216
|
+
|
|
217
|
+
/**
|
|
218
|
+
* 验证事件名称是否有效
|
|
219
|
+
* @param event 事件名称
|
|
220
|
+
* @returns 是否有效
|
|
221
|
+
*/
|
|
222
|
+
private isValidEvent(event: string): boolean {
|
|
223
|
+
return typeof event === 'string' && event.trim().length > 0;
|
|
224
|
+
}
|
|
225
|
+
|
|
226
|
+
/**
|
|
227
|
+
* 验证回调函数是否有效
|
|
228
|
+
* @param callback 回调函数
|
|
229
|
+
* @returns 是否有效
|
|
230
|
+
*/
|
|
231
|
+
private isValidCallback(callback: EventCallback): boolean {
|
|
232
|
+
return typeof callback === 'function';
|
|
233
|
+
}
|
|
234
|
+
}
|
|
235
|
+
|
|
236
|
+
// 创建默认的全局事件中心实例
|
|
237
|
+
export const eventCenter = new EventCenter();
|
|
238
|
+
|
|
239
|
+
// 导出便捷方法
|
|
240
|
+
export const on = eventCenter.on.bind(eventCenter);
|
|
241
|
+
export const once = eventCenter.once.bind(eventCenter);
|
|
242
|
+
export const off = eventCenter.off.bind(eventCenter);
|
|
243
|
+
export const emit = eventCenter.emit.bind(eventCenter);
|
|
244
|
+
export const clear = eventCenter.clear.bind(eventCenter);
|
|
245
|
+
export const getListenerCount = eventCenter.getListenerCount.bind(eventCenter);
|
|
246
|
+
export const getEventNames = eventCenter.getEventNames.bind(eventCenter);
|
|
247
|
+
export const hasListeners = eventCenter.hasListeners.bind(eventCenter);
|
|
248
|
+
|
|
249
|
+
export default eventCenter;
|