@azure/communication-react 1.0.0-alpha-20211130.12.0 → 1.0.0-alpha

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (116) hide show
  1. package/dist/communication-react.d.ts +214 -0
  2. package/dist/dist-cjs/communication-react/index.js +1254 -236
  3. package/dist/dist-cjs/communication-react/index.js.map +1 -1
  4. package/dist/dist-esm/acs-ui-common/src/telemetryVersion.js +1 -1
  5. package/dist/dist-esm/calling-stateful-client/src/StreamUtils.d.ts.map +1 -1
  6. package/dist/dist-esm/calling-stateful-client/src/StreamUtils.js +6 -3
  7. package/dist/dist-esm/calling-stateful-client/src/StreamUtils.js.map +1 -1
  8. package/dist/dist-esm/chat-component-bindings/src/handlers/createHandlers.js +1 -1
  9. package/dist/dist-esm/chat-component-bindings/src/handlers/createHandlers.js.map +1 -1
  10. package/dist/dist-esm/react-components/src/components/ControlBarButton.d.ts.map +1 -1
  11. package/dist/dist-esm/react-components/src/components/ControlBarButton.js +10 -16
  12. package/dist/dist-esm/react-components/src/components/ControlBarButton.js.map +1 -1
  13. package/dist/dist-esm/react-components/src/components/MessageThread.js +1 -1
  14. package/dist/dist-esm/react-components/src/components/ScreenShareButton.d.ts.map +1 -1
  15. package/dist/dist-esm/react-components/src/components/ScreenShareButton.js +18 -2
  16. package/dist/dist-esm/react-components/src/components/ScreenShareButton.js.map +1 -1
  17. package/dist/dist-esm/react-components/src/components/VideoGallery.d.ts.map +1 -1
  18. package/dist/dist-esm/react-components/src/components/VideoGallery.js +6 -3
  19. package/dist/dist-esm/react-components/src/components/VideoGallery.js.map +1 -1
  20. package/dist/dist-esm/react-components/src/components/styles/ControlBar.styles.d.ts +0 -4
  21. package/dist/dist-esm/react-components/src/components/styles/ControlBar.styles.d.ts.map +1 -1
  22. package/dist/dist-esm/react-components/src/components/styles/ControlBar.styles.js +8 -10
  23. package/dist/dist-esm/react-components/src/components/styles/ControlBar.styles.js.map +1 -1
  24. package/dist/dist-esm/react-components/src/components/styles/VideoGallery.styles.d.ts +4 -0
  25. package/dist/dist-esm/react-components/src/components/styles/VideoGallery.styles.d.ts.map +1 -1
  26. package/dist/dist-esm/react-components/src/components/styles/VideoGallery.styles.js +8 -16
  27. package/dist/dist-esm/react-components/src/components/styles/VideoGallery.styles.js.map +1 -1
  28. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/CallControls.d.ts.map +1 -1
  29. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/CallControls.js +3 -5
  30. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/CallControls.js.map +1 -1
  31. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/LocalDeviceSettings.d.ts.map +1 -1
  32. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/LocalDeviceSettings.js +18 -15
  33. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/LocalDeviceSettings.js.map +1 -1
  34. package/dist/dist-esm/react-composites/src/composites/CallComposite/styles/CallControls.styles.d.ts +1 -5
  35. package/dist/dist-esm/react-composites/src/composites/CallComposite/styles/CallControls.styles.d.ts.map +1 -1
  36. package/dist/dist-esm/react-composites/src/composites/CallComposite/styles/CallControls.styles.js +0 -12
  37. package/dist/dist-esm/react-composites/src/composites/CallComposite/styles/CallControls.styles.js.map +1 -1
  38. package/dist/dist-esm/react-composites/src/composites/ChatComposite/ChatComposite.d.ts +7 -0
  39. package/dist/dist-esm/react-composites/src/composites/ChatComposite/ChatComposite.d.ts.map +1 -1
  40. package/dist/dist-esm/react-composites/src/composites/ChatComposite/ChatComposite.js.map +1 -1
  41. package/dist/dist-esm/react-composites/src/composites/ChatComposite/ChatScreen.d.ts.map +1 -1
  42. package/dist/dist-esm/react-composites/src/composites/ChatComposite/ChatScreen.js +14 -7
  43. package/dist/dist-esm/react-composites/src/composites/ChatComposite/ChatScreen.js.map +1 -1
  44. package/dist/dist-esm/react-composites/src/composites/MeetingComposite/ChatButton.d.ts +7 -0
  45. package/dist/dist-esm/react-composites/src/composites/MeetingComposite/ChatButton.d.ts.map +1 -0
  46. package/dist/dist-esm/react-composites/src/composites/MeetingComposite/ChatButton.js +16 -0
  47. package/dist/dist-esm/react-composites/src/composites/MeetingComposite/ChatButton.js.map +1 -0
  48. package/dist/dist-esm/react-composites/src/composites/MeetingComposite/MeetingCallControlBar.d.ts +19 -0
  49. package/dist/dist-esm/react-composites/src/composites/MeetingComposite/MeetingCallControlBar.d.ts.map +1 -0
  50. package/dist/dist-esm/react-composites/src/composites/MeetingComposite/MeetingCallControlBar.js +38 -0
  51. package/dist/dist-esm/react-composites/src/composites/MeetingComposite/MeetingCallControlBar.js.map +1 -0
  52. package/dist/dist-esm/react-composites/src/composites/MeetingComposite/MeetingComposite.d.ts +37 -0
  53. package/dist/dist-esm/react-composites/src/composites/MeetingComposite/MeetingComposite.d.ts.map +1 -0
  54. package/dist/dist-esm/react-composites/src/composites/MeetingComposite/MeetingComposite.js +59 -0
  55. package/dist/dist-esm/react-composites/src/composites/MeetingComposite/MeetingComposite.js.map +1 -0
  56. package/dist/dist-esm/react-composites/src/composites/MeetingComposite/PeopleButton.d.ts +7 -0
  57. package/dist/dist-esm/react-composites/src/composites/MeetingComposite/PeopleButton.d.ts.map +1 -0
  58. package/dist/dist-esm/react-composites/src/composites/MeetingComposite/PeopleButton.js +16 -0
  59. package/dist/dist-esm/react-composites/src/composites/MeetingComposite/PeopleButton.js.map +1 -0
  60. package/dist/dist-esm/react-composites/src/composites/MeetingComposite/SidePane.d.ts +25 -0
  61. package/dist/dist-esm/react-composites/src/composites/MeetingComposite/SidePane.d.ts.map +1 -0
  62. package/dist/dist-esm/react-composites/src/composites/MeetingComposite/SidePane.js +76 -0
  63. package/dist/dist-esm/react-composites/src/composites/MeetingComposite/SidePane.js.map +1 -0
  64. package/dist/dist-esm/react-composites/src/composites/MeetingComposite/adapter/AzureCommunicationMeetingAdapter.d.ts +129 -0
  65. package/dist/dist-esm/react-composites/src/composites/MeetingComposite/adapter/AzureCommunicationMeetingAdapter.d.ts.map +1 -0
  66. package/dist/dist-esm/react-composites/src/composites/MeetingComposite/adapter/AzureCommunicationMeetingAdapter.js +385 -0
  67. package/dist/dist-esm/react-composites/src/composites/MeetingComposite/adapter/AzureCommunicationMeetingAdapter.js.map +1 -0
  68. package/dist/dist-esm/react-composites/src/composites/MeetingComposite/adapter/MeetingAdapter.d.ts +73 -0
  69. package/dist/dist-esm/react-composites/src/composites/MeetingComposite/adapter/MeetingAdapter.d.ts.map +1 -0
  70. package/dist/dist-esm/react-composites/src/composites/MeetingComposite/adapter/MeetingAdapter.js +4 -0
  71. package/dist/dist-esm/react-composites/src/composites/MeetingComposite/adapter/MeetingAdapter.js.map +1 -0
  72. package/dist/dist-esm/react-composites/src/composites/MeetingComposite/adapter/MeetingBackedCallAdapter.d.ts +40 -0
  73. package/dist/dist-esm/react-composites/src/composites/MeetingComposite/adapter/MeetingBackedCallAdapter.d.ts.map +1 -0
  74. package/dist/dist-esm/react-composites/src/composites/MeetingComposite/adapter/MeetingBackedCallAdapter.js +100 -0
  75. package/dist/dist-esm/react-composites/src/composites/MeetingComposite/adapter/MeetingBackedCallAdapter.js.map +1 -0
  76. package/dist/dist-esm/react-composites/src/composites/MeetingComposite/adapter/MeetingBackedChatAdapter.d.ts +30 -0
  77. package/dist/dist-esm/react-composites/src/composites/MeetingComposite/adapter/MeetingBackedChatAdapter.d.ts.map +1 -0
  78. package/dist/dist-esm/react-composites/src/composites/MeetingComposite/adapter/MeetingBackedChatAdapter.js +79 -0
  79. package/dist/dist-esm/react-composites/src/composites/MeetingComposite/adapter/MeetingBackedChatAdapter.js.map +1 -0
  80. package/dist/dist-esm/react-composites/src/composites/MeetingComposite/index.d.ts +10 -0
  81. package/dist/dist-esm/react-composites/src/composites/MeetingComposite/index.d.ts.map +1 -0
  82. package/dist/dist-esm/react-composites/src/composites/MeetingComposite/index.js +5 -0
  83. package/dist/dist-esm/react-composites/src/composites/MeetingComposite/index.js.map +1 -0
  84. package/dist/dist-esm/react-composites/src/composites/MeetingComposite/state/MeetingAdapterState.d.ts +50 -0
  85. package/dist/dist-esm/react-composites/src/composites/MeetingComposite/state/MeetingAdapterState.d.ts.map +1 -0
  86. package/dist/dist-esm/react-composites/src/composites/MeetingComposite/state/MeetingAdapterState.js +50 -0
  87. package/dist/dist-esm/react-composites/src/composites/MeetingComposite/state/MeetingAdapterState.js.map +1 -0
  88. package/dist/dist-esm/react-composites/src/composites/MeetingComposite/state/MeetingCompositePage.d.ts +21 -0
  89. package/dist/dist-esm/react-composites/src/composites/MeetingComposite/state/MeetingCompositePage.d.ts.map +1 -0
  90. package/dist/dist-esm/react-composites/src/composites/MeetingComposite/state/MeetingCompositePage.js +41 -0
  91. package/dist/dist-esm/react-composites/src/composites/MeetingComposite/state/MeetingCompositePage.js.map +1 -0
  92. package/dist/dist-esm/react-composites/src/composites/MeetingComposite/state/MeetingEndReason.d.ts +8 -0
  93. package/dist/dist-esm/react-composites/src/composites/MeetingComposite/state/MeetingEndReason.d.ts.map +1 -0
  94. package/dist/dist-esm/react-composites/src/composites/MeetingComposite/state/MeetingEndReason.js +4 -0
  95. package/dist/dist-esm/react-composites/src/composites/MeetingComposite/state/MeetingEndReason.js.map +1 -0
  96. package/dist/dist-esm/react-composites/src/composites/MeetingComposite/state/MeetingParticipants.d.ts +35 -0
  97. package/dist/dist-esm/react-composites/src/composites/MeetingComposite/state/MeetingParticipants.d.ts.map +1 -0
  98. package/dist/dist-esm/react-composites/src/composites/MeetingComposite/state/MeetingParticipants.js +51 -0
  99. package/dist/dist-esm/react-composites/src/composites/MeetingComposite/state/MeetingParticipants.js.map +1 -0
  100. package/dist/dist-esm/react-composites/src/composites/MeetingComposite/state/MeetingState.d.ts +42 -0
  101. package/dist/dist-esm/react-composites/src/composites/MeetingComposite/state/MeetingState.d.ts.map +1 -0
  102. package/dist/dist-esm/react-composites/src/composites/MeetingComposite/state/MeetingState.js +72 -0
  103. package/dist/dist-esm/react-composites/src/composites/MeetingComposite/state/MeetingState.js.map +1 -0
  104. package/dist/dist-esm/react-composites/src/composites/MeetingComposite/styles/MeetingCompositeStyles.d.ts +6 -0
  105. package/dist/dist-esm/react-composites/src/composites/MeetingComposite/styles/MeetingCompositeStyles.d.ts.map +1 -0
  106. package/dist/dist-esm/react-composites/src/composites/MeetingComposite/styles/MeetingCompositeStyles.js +17 -0
  107. package/dist/dist-esm/react-composites/src/composites/MeetingComposite/styles/MeetingCompositeStyles.js.map +1 -0
  108. package/dist/dist-esm/react-composites/src/composites/MeetingComposite/styles/SidePane.styles.d.ts +38 -0
  109. package/dist/dist-esm/react-composites/src/composites/MeetingComposite/styles/SidePane.styles.d.ts.map +1 -0
  110. package/dist/dist-esm/react-composites/src/composites/MeetingComposite/styles/SidePane.styles.js +63 -0
  111. package/dist/dist-esm/react-composites/src/composites/MeetingComposite/styles/SidePane.styles.js.map +1 -0
  112. package/dist/dist-esm/react-composites/src/composites/index.d.ts +1 -0
  113. package/dist/dist-esm/react-composites/src/composites/index.d.ts.map +1 -1
  114. package/dist/dist-esm/react-composites/src/composites/index.js +1 -0
  115. package/dist/dist-esm/react-composites/src/composites/index.js.map +1 -1
  116. package/package.json +7 -7
@@ -0,0 +1,76 @@
1
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
+ return new (P || (P = Promise))(function (resolve, reject) {
4
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
8
+ });
9
+ };
10
+ // Copyright (c) Microsoft Corporation.
11
+ // Licensed under the MIT license.
12
+ import React, { useMemo } from 'react';
13
+ import { ChatComposite } from '../ChatComposite';
14
+ import { CommandBarButton, DefaultButton, Stack, concatStyleSets } from '@fluentui/react';
15
+ import { sidePaneContainerHiddenStyles, sidePaneContainerStyles, sidePaneContainerTokens, sidePaneHeaderStyles, peoplePaneContainerTokens, peopleSubheadingStyle, paneBodyContainer, scrollableContainer, scrollableContainerContents } from './styles/SidePane.styles';
16
+ import { ParticipantList, useTheme } from "../../../../react-components/src";
17
+ import copy from 'copy-to-clipboard';
18
+ import { usePropsFor } from '../CallComposite/hooks/usePropsFor';
19
+ const SidePane = (props) => {
20
+ // We hide the side pane instead of not rendering the entire pane to persist certain elements
21
+ // between renders. An example of this is composing a chat message - a chat message that has been
22
+ // typed but not sent should not be lost if the side panel is closed and then reopened.
23
+ const sidePaneStyles = props.hidden ? sidePaneContainerHiddenStyles : sidePaneContainerStyles;
24
+ const theme = useTheme();
25
+ const sidePaneCloseButtonStyles = {
26
+ icon: { color: theme.palette.neutralSecondary },
27
+ iconHovered: { color: theme.palette.neutralSecondary },
28
+ iconPressed: { color: theme.palette.neutralSecondary }
29
+ };
30
+ return (React.createElement(Stack.Item, { disableShrink: true, verticalFill: true, styles: sidePaneStyles, tokens: sidePaneContainerTokens },
31
+ React.createElement(Stack, { verticalFill: true, "data-ui-id": props.dataUiId },
32
+ React.createElement(Stack, { horizontal: true, horizontalAlign: "space-between", styles: sidePaneHeaderStyles },
33
+ React.createElement(Stack.Item, null, props.headingText),
34
+ React.createElement(CommandBarButton, { styles: sidePaneCloseButtonStyles, iconProps: { iconName: 'cancel' }, onClick: props.onClose })),
35
+ React.createElement(Stack.Item, { verticalFill: true, grow: true, styles: paneBodyContainer },
36
+ React.createElement(Stack, { horizontal: true, styles: scrollableContainer },
37
+ React.createElement(Stack.Item, { verticalFill: true, styles: scrollableContainerContents }, props.children))))));
38
+ };
39
+ /**
40
+ * In a Meeting when a participant is removed, we must remove them from both
41
+ * the call and the chat thread.
42
+ */
43
+ const removeParticipantFromMeeting = (callAdapter, chatAdapter, participantId) => __awaiter(void 0, void 0, void 0, function* () {
44
+ yield callAdapter.removeParticipant(participantId);
45
+ yield chatAdapter.removeParticipant(participantId);
46
+ });
47
+ /**
48
+ * @private
49
+ */
50
+ export const EmbeddedPeoplePane = (props) => {
51
+ const { callAdapter, chatAdapter, inviteLink } = props;
52
+ const participantListDefaultProps = usePropsFor(ParticipantList);
53
+ const participantListProps = useMemo(() => {
54
+ const onRemoveParticipant = (participantId) => __awaiter(void 0, void 0, void 0, function* () { return removeParticipantFromMeeting(callAdapter, chatAdapter, participantId); });
55
+ return Object.assign(Object.assign({}, participantListDefaultProps), { onRemoveParticipant });
56
+ }, [participantListDefaultProps, callAdapter, chatAdapter]);
57
+ const theme = useTheme();
58
+ const peopleSubheadingStyleThemed = concatStyleSets(peopleSubheadingStyle, {
59
+ root: {
60
+ color: theme.palette.neutralSecondary
61
+ }
62
+ });
63
+ return (React.createElement(SidePane, { hidden: props.hidden, headingText: 'People', onClose: props.onClose, dataUiId: 'meeting-composite-people-pane' },
64
+ React.createElement(Stack, { tokens: peoplePaneContainerTokens },
65
+ inviteLink && (React.createElement(DefaultButton, { text: "Copy invite link", iconProps: { iconName: 'Link' }, onClick: () => copy(inviteLink) })),
66
+ React.createElement(Stack.Item, { styles: peopleSubheadingStyleThemed }, "In this call"),
67
+ React.createElement(ParticipantList, Object.assign({}, participantListProps)))));
68
+ };
69
+ /**
70
+ * @private
71
+ */
72
+ export const EmbeddedChatPane = (props) => {
73
+ return (React.createElement(SidePane, { hidden: props.hidden, headingText: 'Chat', onClose: props.onClose, dataUiId: 'meeting-composite-chat-pane' },
74
+ React.createElement(ChatComposite, Object.assign({}, props.chatCompositeProps, { adapter: props.chatAdapter, fluentTheme: props.fluentTheme, options: { participantPane: false, topic: false } }))));
75
+ };
76
+ //# sourceMappingURL=SidePane.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SidePane.js","sourceRoot":"","sources":["../../../../../../../react-composites/src/composites/MeetingComposite/SidePane.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,129 @@
1
+ import { AudioDeviceInfo, VideoDeviceInfo, PermissionConstraints, GroupCallLocator, TeamsMeetingLinkLocator, Call } from '@azure/communication-calling';
2
+ import { VideoStreamOptions } from "../../../../../react-components/src";
3
+ import { ParticipantsJoinedListener, ParticipantsLeftListener, IsMutedChangedListener, CallIdChangedListener, IsLocalScreenSharingActiveChangedListener, DisplayNameChangedListener, IsSpeakingChangedListener, CallAdapter, CallEndedListener } from '../../CallComposite';
4
+ import { MessageReceivedListener, MessageReadListener, ChatAdapter } from '../../ChatComposite';
5
+ import { MeetingAdapter } from './MeetingAdapter';
6
+ import { MeetingAdapterState } from '../state/MeetingAdapterState';
7
+ import { CommunicationTokenCredential, CommunicationUserIdentifier } from '@azure/communication-common';
8
+ /**
9
+ * Meeting adapter backed by Azure Communication Services.
10
+ * Created for easy use with the Meeting Composite.
11
+ */
12
+ export declare class AzureCommunicationMeetingAdapter implements MeetingAdapter {
13
+ private callAdapter;
14
+ private chatAdapter;
15
+ private context;
16
+ private onChatStateChange;
17
+ private onCallStateChange;
18
+ constructor(callAdapter: CallAdapter, chatAdapter: ChatAdapter);
19
+ private bindPublicMethods;
20
+ /** Join existing Meeting. */
21
+ joinMeeting(microphoneOn?: boolean): Call | undefined;
22
+ /** Leave current Meeting. */
23
+ leaveMeeting(): Promise<void>;
24
+ /** Start a new Meeting. */
25
+ startMeeting(participants: string[]): Call | undefined;
26
+ /**
27
+ * Subscribe to state change events.
28
+ * @param handler - handler to be called when the state changes. This is passed the new state.
29
+ */
30
+ onStateChange(handler: (state: MeetingAdapterState) => void): void;
31
+ /**
32
+ * Unsubscribe to state change events.
33
+ * @param handler - handler to be no longer called when state changes.
34
+ */
35
+ offStateChange(handler: (state: MeetingAdapterState) => void): void;
36
+ /** Get current Meeting state. */
37
+ getState(): MeetingAdapterState;
38
+ /** Dispose of the current Meeting Adapter. */
39
+ dispose(): void;
40
+ /** Remove a participant from the Meeting. */
41
+ removeParticipant(userId: string): Promise<void>;
42
+ setCamera(device: VideoDeviceInfo, options?: VideoStreamOptions): Promise<void>;
43
+ /** Set the microphone to be used in the meeting. */
44
+ setMicrophone(device: AudioDeviceInfo): Promise<void>;
45
+ /** Set the speaker to be used in the meeting. */
46
+ setSpeaker(device: AudioDeviceInfo): Promise<void>;
47
+ askDevicePermission(constraints: PermissionConstraints): Promise<void>;
48
+ /** Query for available cameras. */
49
+ queryCameras(): Promise<VideoDeviceInfo[]>;
50
+ /** Query for available microphones. */
51
+ queryMicrophones(): Promise<AudioDeviceInfo[]>;
52
+ /** Query for available speakers. */
53
+ querySpeakers(): Promise<AudioDeviceInfo[]>;
54
+ /** Start the camera for the user in the Meeting. */
55
+ startCamera(options?: VideoStreamOptions): Promise<void>;
56
+ /** Stop the camera for the user in the Meeting. */
57
+ stopCamera(): Promise<void>;
58
+ /** Mute the user in the Meeting. */
59
+ mute(): Promise<void>;
60
+ /** Unmute the user in the Meeting. */
61
+ unmute(): Promise<void>;
62
+ /** Trigger the user to start screen share. */
63
+ startScreenShare(): Promise<void>;
64
+ /** Stop the current active screen share. */
65
+ stopScreenShare(): Promise<void>;
66
+ /** Create a stream view for a remote participants video feed. */
67
+ createStreamView(remoteUserId?: string, options?: VideoStreamOptions): Promise<void>;
68
+ /** Dispose of a created stream view of a remote participants video feed. */
69
+ disposeStreamView(remoteUserId?: string, options?: VideoStreamOptions): Promise<void>;
70
+ /** Fetch initial Meeting data such as chat messages. */
71
+ fetchInitialData(): Promise<void>;
72
+ /** Send a chat message. */
73
+ sendMessage(content: string): Promise<void>;
74
+ /** Send a chat read receipt. */
75
+ sendReadReceipt(chatMessageId: string): Promise<void>;
76
+ /** Send an isTyping indicator. */
77
+ sendTypingIndicator(): Promise<void>;
78
+ /** Load previous Meeting chat messages. */
79
+ loadPreviousChatMessages(messagesToLoad: number): Promise<boolean>;
80
+ /** Update an existing message. */
81
+ updateMessage(messageId: string, content: string): Promise<void>;
82
+ /** Delete an existing message. */
83
+ deleteMessage(messageId: string): Promise<void>;
84
+ on(event: 'participantsJoined', listener: ParticipantsJoinedListener): void;
85
+ on(event: 'participantsLeft', listener: ParticipantsLeftListener): void;
86
+ on(event: 'meetingEnded', listener: CallEndedListener): void;
87
+ on(event: 'error', listener: (e: Error) => void): void;
88
+ on(event: 'isMutedChanged', listener: IsMutedChangedListener): void;
89
+ on(event: 'callIdChanged', listener: CallIdChangedListener): void;
90
+ on(event: 'isLocalScreenSharingActiveChanged', listener: IsLocalScreenSharingActiveChangedListener): void;
91
+ on(event: 'displayNameChanged', listener: DisplayNameChangedListener): void;
92
+ on(event: 'isSpeakingChanged', listener: IsSpeakingChangedListener): void;
93
+ on(event: 'messageReceived', listener: MessageReceivedListener): void;
94
+ on(event: 'messageSent', listener: MessageReceivedListener): void;
95
+ on(event: 'messageRead', listener: MessageReadListener): void;
96
+ off(event: 'participantsJoined', listener: ParticipantsJoinedListener): void;
97
+ off(event: 'participantsLeft', listener: ParticipantsLeftListener): void;
98
+ off(event: 'meetingEnded', listener: CallEndedListener): void;
99
+ off(event: 'error', listener: (e: Error) => void): void;
100
+ off(event: 'isMutedChanged', listener: IsMutedChangedListener): void;
101
+ off(event: 'callIdChanged', listener: CallIdChangedListener): void;
102
+ off(event: 'isLocalScreenSharingActiveChanged', listener: IsLocalScreenSharingActiveChangedListener): void;
103
+ off(event: 'displayNameChanged', listener: DisplayNameChangedListener): void;
104
+ off(event: 'isSpeakingChanged', listener: IsSpeakingChangedListener): void;
105
+ off(event: 'messageReceived', listener: MessageReceivedListener): void;
106
+ off(event: 'messageSent', listener: MessageReceivedListener): void;
107
+ off(event: 'messageRead', listener: MessageReadListener): void;
108
+ }
109
+ /**
110
+ * Arguments for {@link createAzureCommunicationMeetingAdapter}
111
+ *
112
+ * @beta
113
+ */
114
+ export declare type AzureCommunicationMeetingAdapterArgs = {
115
+ endpoint: string;
116
+ userId: CommunicationUserIdentifier;
117
+ displayName: string;
118
+ credential: CommunicationTokenCredential;
119
+ chatThreadId: string;
120
+ callLocator: TeamsMeetingLinkLocator | GroupCallLocator;
121
+ };
122
+ /**
123
+ * Create a meeting adapter backed by Azure Communication services
124
+ * to plug into the Meeting Composite.
125
+ *
126
+ * @beta
127
+ */
128
+ export declare const createAzureCommunicationMeetingAdapter: ({ userId, displayName, credential, endpoint, chatThreadId, callLocator }: AzureCommunicationMeetingAdapterArgs) => Promise<MeetingAdapter>;
129
+ //# sourceMappingURL=AzureCommunicationMeetingAdapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AzureCommunicationMeetingAdapter.d.ts","sourceRoot":"","sources":["../../../../../../../../react-composites/src/composites/MeetingComposite/adapter/AzureCommunicationMeetingAdapter.ts"],"names":[],"mappings":"AAMA,OAAO,EACL,eAAe,EACf,eAAe,EACf,qBAAqB,EACrB,gBAAgB,EAChB,uBAAuB,EACvB,IAAI,EACL,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,kBAAkB,EAAE,4CAAmC;AAChE,OAAO,EACL,0BAA0B,EAC1B,wBAAwB,EACxB,sBAAsB,EACtB,qBAAqB,EACrB,yCAAyC,EACzC,0BAA0B,EAC1B,yBAAyB,EACzB,WAAW,EAGX,iBAAiB,EAClB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,uBAAuB,EAAE,mBAAmB,EAAE,WAAW,EAAoB,MAAM,qBAAqB,CAAC;AAClH,OAAO,EAAE,cAAc,EAAgB,MAAM,kBAAkB,CAAC;AAChE,OAAO,EAEL,mBAAmB,EAGpB,MAAM,8BAA8B,CAAC;AAGtC,OAAO,EAAE,4BAA4B,EAAE,2BAA2B,EAAE,MAAM,6BAA6B,CAAC;AA4CxG;;;GAGG;AACH,qBAAa,gCAAiC,YAAW,cAAc;IACrE,OAAO,CAAC,WAAW,CAAc;IACjC,OAAO,CAAC,WAAW,CAAc;IACjC,OAAO,CAAC,OAAO,CAAiB;IAChC,OAAO,CAAC,iBAAiB,CAAkD;IAC3E,OAAO,CAAC,iBAAiB,CAAkD;gBAE/D,WAAW,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW;IAmB9D,OAAO,CAAC,iBAAiB;IAmCzB,6BAA6B;IACtB,WAAW,CAAC,YAAY,CAAC,EAAE,OAAO,GAAG,IAAI,GAAG,SAAS;IAG5D,6BAA6B;IAChB,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC;IAI1C,2BAA2B;IACpB,YAAY,CAAC,YAAY,EAAE,MAAM,EAAE,GAAG,IAAI,GAAG,SAAS;IAG7D;;;OAGG;IACI,aAAa,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,mBAAmB,KAAK,IAAI,GAAG,IAAI;IAGzE;;;OAGG;IACI,cAAc,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,mBAAmB,KAAK,IAAI,GAAG,IAAI;IAG1E,iCAAiC;IAC1B,QAAQ,IAAI,mBAAmB;IAGtC,8CAA8C;IACvC,OAAO,IAAI,IAAI;IAOtB,6CAA6C;IAChC,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIhD,SAAS,CAAC,MAAM,EAAE,eAAe,EAAE,OAAO,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC;IAG5F,oDAAoD;IACvC,aAAa,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC;IAGlE,iDAAiD;IACpC,UAAU,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC;IAGlD,mBAAmB,CAAC,WAAW,EAAE,qBAAqB,GAAG,OAAO,CAAC,IAAI,CAAC;IAGnF,mCAAmC;IACtB,YAAY,IAAI,OAAO,CAAC,eAAe,EAAE,CAAC;IAGvD,uCAAuC;IAC1B,gBAAgB,IAAI,OAAO,CAAC,eAAe,EAAE,CAAC;IAG3D,oCAAoC;IACvB,aAAa,IAAI,OAAO,CAAC,eAAe,EAAE,CAAC;IAGxD,oDAAoD;IACvC,WAAW,CAAC,OAAO,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC;IAGrE,mDAAmD;IACtC,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAGxC,oCAAoC;IACvB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAGlC,sCAAsC;IACzB,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAGpC,8CAA8C;IACjC,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC;IAG9C,4CAA4C;IAC/B,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC;IAG7C,iEAAiE;IACpD,gBAAgB,CAAC,YAAY,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC;IAGjG,4EAA4E;IAC/D,iBAAiB,CAAC,YAAY,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC;IAGlG,wDAAwD;IAC3C,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC;IAG9C,2BAA2B;IACd,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAGxD,gCAAgC;IACnB,eAAe,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAGlE,kCAAkC;IACrB,mBAAmB,IAAI,OAAO,CAAC,IAAI,CAAC;IAGjD,2CAA2C;IAC9B,wBAAwB,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAG/E,kCAAkC;IACrB,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAG7E,kCAAkC;IACrB,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAG5D,EAAE,CAAC,KAAK,EAAE,oBAAoB,EAAE,QAAQ,EAAE,0BAA0B,GAAG,IAAI;IAC3E,EAAE,CAAC,KAAK,EAAE,kBAAkB,EAAE,QAAQ,EAAE,wBAAwB,GAAG,IAAI;IACvE,EAAE,CAAC,KAAK,EAAE,cAAc,EAAE,QAAQ,EAAE,iBAAiB,GAAG,IAAI;IAC5D,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,CAAC,EAAE,KAAK,KAAK,IAAI,GAAG,IAAI;IACtD,EAAE,CAAC,KAAK,EAAE,gBAAgB,EAAE,QAAQ,EAAE,sBAAsB,GAAG,IAAI;IACnE,EAAE,CAAC,KAAK,EAAE,eAAe,EAAE,QAAQ,EAAE,qBAAqB,GAAG,IAAI;IACjE,EAAE,CAAC,KAAK,EAAE,mCAAmC,EAAE,QAAQ,EAAE,yCAAyC,GAAG,IAAI;IACzG,EAAE,CAAC,KAAK,EAAE,oBAAoB,EAAE,QAAQ,EAAE,0BAA0B,GAAG,IAAI;IAC3E,EAAE,CAAC,KAAK,EAAE,mBAAmB,EAAE,QAAQ,EAAE,yBAAyB,GAAG,IAAI;IACzE,EAAE,CAAC,KAAK,EAAE,iBAAiB,EAAE,QAAQ,EAAE,uBAAuB,GAAG,IAAI;IACrE,EAAE,CAAC,KAAK,EAAE,aAAa,EAAE,QAAQ,EAAE,uBAAuB,GAAG,IAAI;IACjE,EAAE,CAAC,KAAK,EAAE,aAAa,EAAE,QAAQ,EAAE,mBAAmB,GAAG,IAAI;IA6C7D,GAAG,CAAC,KAAK,EAAE,oBAAoB,EAAE,QAAQ,EAAE,0BAA0B,GAAG,IAAI;IAC5E,GAAG,CAAC,KAAK,EAAE,kBAAkB,EAAE,QAAQ,EAAE,wBAAwB,GAAG,IAAI;IACxE,GAAG,CAAC,KAAK,EAAE,cAAc,EAAE,QAAQ,EAAE,iBAAiB,GAAG,IAAI;IAC7D,GAAG,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,CAAC,EAAE,KAAK,KAAK,IAAI,GAAG,IAAI;IACvD,GAAG,CAAC,KAAK,EAAE,gBAAgB,EAAE,QAAQ,EAAE,sBAAsB,GAAG,IAAI;IACpE,GAAG,CAAC,KAAK,EAAE,eAAe,EAAE,QAAQ,EAAE,qBAAqB,GAAG,IAAI;IAClE,GAAG,CAAC,KAAK,EAAE,mCAAmC,EAAE,QAAQ,EAAE,yCAAyC,GAAG,IAAI;IAC1G,GAAG,CAAC,KAAK,EAAE,oBAAoB,EAAE,QAAQ,EAAE,0BAA0B,GAAG,IAAI;IAC5E,GAAG,CAAC,KAAK,EAAE,mBAAmB,EAAE,QAAQ,EAAE,yBAAyB,GAAG,IAAI;IAC1E,GAAG,CAAC,KAAK,EAAE,iBAAiB,EAAE,QAAQ,EAAE,uBAAuB,GAAG,IAAI;IACtE,GAAG,CAAC,KAAK,EAAE,aAAa,EAAE,QAAQ,EAAE,uBAAuB,GAAG,IAAI;IAClE,GAAG,CAAC,KAAK,EAAE,aAAa,EAAE,QAAQ,EAAE,mBAAmB,GAAG,IAAI;CA4C/D;AAED;;;;GAIG;AACH,oBAAY,oCAAoC,GAAG;IACjD,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,2BAA2B,CAAC;IACpC,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,4BAA4B,CAAC;IACzC,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,uBAAuB,GAAG,gBAAgB,CAAC;CACzD,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,sCAAsC,6EAOhD,oCAAoC,KAAG,QAAQ,cAAc,CAiB/D,CAAC"}
@@ -0,0 +1,385 @@
1
+ // Copyright (c) Microsoft Corporation.
2
+ // Licensed under the MIT license.
3
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
4
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
5
+ return new (P || (P = Promise))(function (resolve, reject) {
6
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
7
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
8
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
9
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
10
+ });
11
+ };
12
+ import { createAzureCommunicationCallAdapter } from '../../CallComposite';
13
+ import { meetingAdapterStateFromBackingStates, mergeCallAdapterStateIntoMeetingAdapterState, mergeChatAdapterStateIntoMeetingAdapterState } from '../state/MeetingAdapterState';
14
+ import { createAzureCommunicationChatAdapter } from '../../ChatComposite/adapter/AzureCommunicationChatAdapter';
15
+ import { EventEmitter } from 'events';
16
+ import { toFlatCommunicationIdentifier } from "../../../../../acs-ui-common/src";
17
+ /** Context of meeting, which is a centralized context for all state updates */
18
+ class MeetingContext {
19
+ constructor(clientState) {
20
+ this.emitter = new EventEmitter();
21
+ this.state = clientState;
22
+ }
23
+ onStateChange(handler) {
24
+ this.emitter.on('stateChanged', handler);
25
+ }
26
+ offStateChange(handler) {
27
+ this.emitter.off('stateChanged', handler);
28
+ }
29
+ setState(state) {
30
+ this.state = state;
31
+ this.emitter.emit('stateChanged', this.state);
32
+ }
33
+ getState() {
34
+ return this.state;
35
+ }
36
+ updateClientState(clientState) {
37
+ this.setState(clientState);
38
+ }
39
+ updateClientStateWithChatState(chatAdapterState) {
40
+ this.updateClientState(mergeChatAdapterStateIntoMeetingAdapterState(this.state, chatAdapterState));
41
+ }
42
+ updateClientStateWithCallState(callAdapterState) {
43
+ this.updateClientState(mergeCallAdapterStateIntoMeetingAdapterState(this.state, callAdapterState));
44
+ }
45
+ }
46
+ /**
47
+ * Meeting adapter backed by Azure Communication Services.
48
+ * Created for easy use with the Meeting Composite.
49
+ */
50
+ export class AzureCommunicationMeetingAdapter {
51
+ constructor(callAdapter, chatAdapter) {
52
+ this.bindPublicMethods();
53
+ this.callAdapter = callAdapter;
54
+ this.chatAdapter = chatAdapter;
55
+ this.context = new MeetingContext(meetingAdapterStateFromBackingStates(callAdapter, chatAdapter));
56
+ const onChatStateChange = (newChatAdapterState) => {
57
+ this.context.updateClientStateWithChatState(newChatAdapterState);
58
+ };
59
+ this.chatAdapter.onStateChange(onChatStateChange);
60
+ this.onChatStateChange = onChatStateChange;
61
+ const onCallStateChange = (newCallAdapterState) => {
62
+ this.context.updateClientStateWithCallState(newCallAdapterState);
63
+ };
64
+ this.callAdapter.onStateChange(onCallStateChange);
65
+ this.onCallStateChange = onCallStateChange;
66
+ }
67
+ bindPublicMethods() {
68
+ this.joinMeeting.bind(this);
69
+ this.leaveMeeting.bind(this);
70
+ this.startMeeting.bind(this);
71
+ this.onStateChange.bind(this);
72
+ this.offStateChange.bind(this);
73
+ this.getState.bind(this);
74
+ this.dispose.bind(this);
75
+ this.setCamera.bind(this);
76
+ this.setMicrophone.bind(this);
77
+ this.setSpeaker.bind(this);
78
+ this.askDevicePermission.bind(this);
79
+ this.queryCameras.bind(this);
80
+ this.queryMicrophones.bind(this);
81
+ this.querySpeakers.bind(this);
82
+ this.startCamera.bind(this);
83
+ this.stopCamera.bind(this);
84
+ this.mute.bind(this);
85
+ this.unmute.bind(this);
86
+ this.startScreenShare.bind(this);
87
+ this.stopScreenShare.bind(this);
88
+ this.removeParticipant.bind(this);
89
+ this.createStreamView.bind(this);
90
+ this.disposeStreamView.bind(this);
91
+ this.fetchInitialData.bind(this);
92
+ this.sendMessage.bind(this);
93
+ this.sendReadReceipt.bind(this);
94
+ this.sendTypingIndicator.bind(this);
95
+ this.loadPreviousChatMessages.bind(this);
96
+ this.updateMessage.bind(this);
97
+ this.deleteMessage.bind(this);
98
+ this.on.bind(this);
99
+ this.off.bind(this);
100
+ }
101
+ /** Join existing Meeting. */
102
+ joinMeeting(microphoneOn) {
103
+ return this.callAdapter.joinCall(microphoneOn);
104
+ }
105
+ /** Leave current Meeting. */
106
+ leaveMeeting() {
107
+ return __awaiter(this, void 0, void 0, function* () {
108
+ yield this.chatAdapter.removeParticipant(toFlatCommunicationIdentifier(this.chatAdapter.getState().userId));
109
+ yield this.callAdapter.leaveCall();
110
+ });
111
+ }
112
+ /** Start a new Meeting. */
113
+ startMeeting(participants) {
114
+ return this.callAdapter.startCall(participants);
115
+ }
116
+ /**
117
+ * Subscribe to state change events.
118
+ * @param handler - handler to be called when the state changes. This is passed the new state.
119
+ */
120
+ onStateChange(handler) {
121
+ this.context.onStateChange(handler);
122
+ }
123
+ /**
124
+ * Unsubscribe to state change events.
125
+ * @param handler - handler to be no longer called when state changes.
126
+ */
127
+ offStateChange(handler) {
128
+ this.context.offStateChange(handler);
129
+ }
130
+ /** Get current Meeting state. */
131
+ getState() {
132
+ return this.context.getState();
133
+ }
134
+ /** Dispose of the current Meeting Adapter. */
135
+ dispose() {
136
+ this.chatAdapter.offStateChange(this.onChatStateChange);
137
+ this.callAdapter.offStateChange(this.onCallStateChange);
138
+ this.chatAdapter.dispose();
139
+ this.callAdapter.dispose();
140
+ }
141
+ /** Remove a participant from the Meeting. */
142
+ removeParticipant(userId) {
143
+ return __awaiter(this, void 0, void 0, function* () {
144
+ yield this.chatAdapter.removeParticipant(userId);
145
+ yield this.callAdapter.removeParticipant(userId);
146
+ });
147
+ }
148
+ setCamera(device, options) {
149
+ return __awaiter(this, void 0, void 0, function* () {
150
+ yield this.callAdapter.setCamera(device, options);
151
+ });
152
+ }
153
+ /** Set the microphone to be used in the meeting. */
154
+ setMicrophone(device) {
155
+ return __awaiter(this, void 0, void 0, function* () {
156
+ yield this.callAdapter.setMicrophone(device);
157
+ });
158
+ }
159
+ /** Set the speaker to be used in the meeting. */
160
+ setSpeaker(device) {
161
+ return __awaiter(this, void 0, void 0, function* () {
162
+ yield this.callAdapter.setSpeaker(device);
163
+ });
164
+ }
165
+ askDevicePermission(constraints) {
166
+ return __awaiter(this, void 0, void 0, function* () {
167
+ yield this.callAdapter.askDevicePermission(constraints);
168
+ });
169
+ }
170
+ /** Query for available cameras. */
171
+ queryCameras() {
172
+ return __awaiter(this, void 0, void 0, function* () {
173
+ return yield this.callAdapter.queryCameras();
174
+ });
175
+ }
176
+ /** Query for available microphones. */
177
+ queryMicrophones() {
178
+ return __awaiter(this, void 0, void 0, function* () {
179
+ return yield this.callAdapter.queryMicrophones();
180
+ });
181
+ }
182
+ /** Query for available speakers. */
183
+ querySpeakers() {
184
+ return __awaiter(this, void 0, void 0, function* () {
185
+ return yield this.callAdapter.querySpeakers();
186
+ });
187
+ }
188
+ /** Start the camera for the user in the Meeting. */
189
+ startCamera(options) {
190
+ return __awaiter(this, void 0, void 0, function* () {
191
+ yield this.callAdapter.startCamera(options);
192
+ });
193
+ }
194
+ /** Stop the camera for the user in the Meeting. */
195
+ stopCamera() {
196
+ return __awaiter(this, void 0, void 0, function* () {
197
+ yield this.callAdapter.stopCamera();
198
+ });
199
+ }
200
+ /** Mute the user in the Meeting. */
201
+ mute() {
202
+ return __awaiter(this, void 0, void 0, function* () {
203
+ yield this.callAdapter.mute();
204
+ });
205
+ }
206
+ /** Unmute the user in the Meeting. */
207
+ unmute() {
208
+ return __awaiter(this, void 0, void 0, function* () {
209
+ yield this.callAdapter.unmute();
210
+ });
211
+ }
212
+ /** Trigger the user to start screen share. */
213
+ startScreenShare() {
214
+ return __awaiter(this, void 0, void 0, function* () {
215
+ yield this.callAdapter.startScreenShare();
216
+ });
217
+ }
218
+ /** Stop the current active screen share. */
219
+ stopScreenShare() {
220
+ return __awaiter(this, void 0, void 0, function* () {
221
+ yield this.callAdapter.stopScreenShare();
222
+ });
223
+ }
224
+ /** Create a stream view for a remote participants video feed. */
225
+ createStreamView(remoteUserId, options) {
226
+ return __awaiter(this, void 0, void 0, function* () {
227
+ yield this.callAdapter.createStreamView(remoteUserId, options);
228
+ });
229
+ }
230
+ /** Dispose of a created stream view of a remote participants video feed. */
231
+ disposeStreamView(remoteUserId, options) {
232
+ return __awaiter(this, void 0, void 0, function* () {
233
+ yield this.callAdapter.disposeStreamView(remoteUserId, options);
234
+ });
235
+ }
236
+ /** Fetch initial Meeting data such as chat messages. */
237
+ fetchInitialData() {
238
+ return __awaiter(this, void 0, void 0, function* () {
239
+ yield this.chatAdapter.fetchInitialData();
240
+ });
241
+ }
242
+ /** Send a chat message. */
243
+ sendMessage(content) {
244
+ return __awaiter(this, void 0, void 0, function* () {
245
+ yield this.chatAdapter.sendMessage(content);
246
+ });
247
+ }
248
+ /** Send a chat read receipt. */
249
+ sendReadReceipt(chatMessageId) {
250
+ return __awaiter(this, void 0, void 0, function* () {
251
+ yield this.chatAdapter.sendReadReceipt(chatMessageId);
252
+ });
253
+ }
254
+ /** Send an isTyping indicator. */
255
+ sendTypingIndicator() {
256
+ return __awaiter(this, void 0, void 0, function* () {
257
+ yield this.chatAdapter.sendTypingIndicator();
258
+ });
259
+ }
260
+ /** Load previous Meeting chat messages. */
261
+ loadPreviousChatMessages(messagesToLoad) {
262
+ return __awaiter(this, void 0, void 0, function* () {
263
+ return yield this.chatAdapter.loadPreviousChatMessages(messagesToLoad);
264
+ });
265
+ }
266
+ /** Update an existing message. */
267
+ updateMessage(messageId, content) {
268
+ return __awaiter(this, void 0, void 0, function* () {
269
+ return yield this.chatAdapter.updateMessage(messageId, content);
270
+ });
271
+ }
272
+ /** Delete an existing message. */
273
+ deleteMessage(messageId) {
274
+ return __awaiter(this, void 0, void 0, function* () {
275
+ return yield this.chatAdapter.deleteMessage(messageId);
276
+ });
277
+ }
278
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
279
+ on(event, listener) {
280
+ switch (event) {
281
+ case 'participantsJoined':
282
+ this.callAdapter.on(event, listener);
283
+ break;
284
+ case 'participantsLeft':
285
+ this.callAdapter.on('participantsLeft', listener);
286
+ break;
287
+ case 'meetingEnded':
288
+ this.callAdapter.on('callEnded', listener);
289
+ break;
290
+ case 'isMutedChanged':
291
+ this.callAdapter.on('isMutedChanged', listener);
292
+ break;
293
+ case 'callIdChanged':
294
+ this.callAdapter.on('callIdChanged', listener);
295
+ break;
296
+ case 'isLocalScreenSharingActiveChanged':
297
+ this.callAdapter.on('isLocalScreenSharingActiveChanged', listener);
298
+ break;
299
+ case 'displayNameChanged':
300
+ this.callAdapter.on('displayNameChanged', listener);
301
+ break;
302
+ case 'isSpeakingChanged':
303
+ this.callAdapter.on('isSpeakingChanged', listener);
304
+ break;
305
+ case 'messageReceived':
306
+ this.chatAdapter.on('messageReceived', listener);
307
+ break;
308
+ case 'messageSent':
309
+ this.chatAdapter.on('messageSent', listener);
310
+ break;
311
+ case 'messageRead':
312
+ this.chatAdapter.on('messageRead', listener);
313
+ break;
314
+ case 'error':
315
+ throw 'on(Error) not implemented yet.';
316
+ default:
317
+ throw `Unknown MeetingEvent: ${event}`;
318
+ }
319
+ }
320
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
321
+ off(event, listener) {
322
+ switch (event) {
323
+ case 'participantsJoined':
324
+ this.callAdapter.off(event, listener);
325
+ break;
326
+ case 'participantsLeft':
327
+ this.callAdapter.off('participantsLeft', listener);
328
+ break;
329
+ case 'meetingEnded':
330
+ this.callAdapter.off('callEnded', listener);
331
+ break;
332
+ case 'isMutedChanged':
333
+ this.callAdapter.off('isMutedChanged', listener);
334
+ break;
335
+ case 'callIdChanged':
336
+ this.callAdapter.off('callIdChanged', listener);
337
+ break;
338
+ case 'isLocalScreenSharingActiveChanged':
339
+ this.callAdapter.off('isLocalScreenSharingActiveChanged', listener);
340
+ break;
341
+ case 'displayNameChanged':
342
+ this.callAdapter.off('displayNameChanged', listener);
343
+ break;
344
+ case 'isSpeakingChanged':
345
+ this.callAdapter.off('isSpeakingChanged', listener);
346
+ break;
347
+ case 'messageReceived':
348
+ this.chatAdapter.off('messageReceived', listener);
349
+ break;
350
+ case 'messageSent':
351
+ this.chatAdapter.off('messageSent', listener);
352
+ break;
353
+ case 'messageRead':
354
+ this.chatAdapter.off('messageRead', listener);
355
+ break;
356
+ case 'error':
357
+ throw 'on(Error) not implemented yet.';
358
+ default:
359
+ throw `Unknown MeetingEvent: ${event}`;
360
+ }
361
+ }
362
+ }
363
+ /**
364
+ * Create a meeting adapter backed by Azure Communication services
365
+ * to plug into the Meeting Composite.
366
+ *
367
+ * @beta
368
+ */
369
+ export const createAzureCommunicationMeetingAdapter = ({ userId, displayName, credential, endpoint, chatThreadId, callLocator }) => __awaiter(void 0, void 0, void 0, function* () {
370
+ const callAdapter = yield createAzureCommunicationCallAdapter({
371
+ userId,
372
+ displayName,
373
+ credential,
374
+ locator: callLocator
375
+ });
376
+ const chatAdapter = yield createAzureCommunicationChatAdapter({
377
+ endpoint,
378
+ userId,
379
+ displayName,
380
+ credential,
381
+ threadId: chatThreadId
382
+ });
383
+ return new AzureCommunicationMeetingAdapter(callAdapter, chatAdapter);
384
+ });
385
+ //# sourceMappingURL=AzureCommunicationMeetingAdapter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AzureCommunicationMeetingAdapter.js","sourceRoot":"","sources":["../../../../../../../../react-composites/src/composites/MeetingComposite/adapter/AzureCommunicationMeetingAdapter.ts"],"names":[],"mappings":"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"}