@azure/communication-react 1.0.0 → 1.0.1-alpha-202112170009.0

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 (104) hide show
  1. package/dist/communication-react.d.ts +214 -0
  2. package/dist/dist-cjs/communication-react/index.js +1225 -178
  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/acs-ui-common/src/telemetryVersion.js.map +1 -1
  6. package/dist/dist-esm/chat-stateful-client/src/ChatContext.js.map +1 -1
  7. package/dist/dist-esm/react-components/src/components/DevicesButton.d.ts.map +1 -1
  8. package/dist/dist-esm/react-components/src/components/DevicesButton.js +3 -0
  9. package/dist/dist-esm/react-components/src/components/DevicesButton.js.map +1 -1
  10. package/dist/dist-esm/react-components/src/components/MessageThread.js +3 -4
  11. package/dist/dist-esm/react-components/src/components/MessageThread.js.map +1 -1
  12. package/dist/dist-esm/react-components/src/components/VideoGallery.d.ts.map +1 -1
  13. package/dist/dist-esm/react-components/src/components/VideoGallery.js +10 -6
  14. package/dist/dist-esm/react-components/src/components/VideoGallery.js.map +1 -1
  15. package/dist/dist-esm/react-components/src/components/styles/ControlBar.styles.d.ts.map +1 -1
  16. package/dist/dist-esm/react-components/src/components/styles/ControlBar.styles.js +8 -2
  17. package/dist/dist-esm/react-components/src/components/styles/ControlBar.styles.js.map +1 -1
  18. package/dist/dist-esm/react-components/src/components/styles/VideoGallery.styles.d.ts +4 -6
  19. package/dist/dist-esm/react-components/src/components/styles/VideoGallery.styles.d.ts.map +1 -1
  20. package/dist/dist-esm/react-components/src/components/styles/VideoGallery.styles.js +11 -6
  21. package/dist/dist-esm/react-components/src/components/styles/VideoGallery.styles.js.map +1 -1
  22. package/dist/dist-esm/react-composites/src/composites/ChatComposite/ChatComposite.d.ts +7 -0
  23. package/dist/dist-esm/react-composites/src/composites/ChatComposite/ChatComposite.d.ts.map +1 -1
  24. package/dist/dist-esm/react-composites/src/composites/ChatComposite/ChatComposite.js.map +1 -1
  25. package/dist/dist-esm/react-composites/src/composites/ChatComposite/ChatScreen.d.ts.map +1 -1
  26. package/dist/dist-esm/react-composites/src/composites/ChatComposite/ChatScreen.js +7 -5
  27. package/dist/dist-esm/react-composites/src/composites/ChatComposite/ChatScreen.js.map +1 -1
  28. package/dist/dist-esm/react-composites/src/composites/ChatComposite/ParticipantContainer.d.ts +14 -0
  29. package/dist/dist-esm/react-composites/src/composites/ChatComposite/ParticipantContainer.d.ts.map +1 -0
  30. package/dist/dist-esm/react-composites/src/composites/ChatComposite/ParticipantContainer.js +24 -0
  31. package/dist/dist-esm/react-composites/src/composites/ChatComposite/ParticipantContainer.js.map +1 -0
  32. package/dist/dist-esm/react-composites/src/composites/MeetingComposite/ChatButton.d.ts +7 -0
  33. package/dist/dist-esm/react-composites/src/composites/MeetingComposite/ChatButton.d.ts.map +1 -0
  34. package/dist/dist-esm/react-composites/src/composites/MeetingComposite/ChatButton.js +16 -0
  35. package/dist/dist-esm/react-composites/src/composites/MeetingComposite/ChatButton.js.map +1 -0
  36. package/dist/dist-esm/react-composites/src/composites/MeetingComposite/MeetingCallControlBar.d.ts +19 -0
  37. package/dist/dist-esm/react-composites/src/composites/MeetingComposite/MeetingCallControlBar.d.ts.map +1 -0
  38. package/dist/dist-esm/react-composites/src/composites/MeetingComposite/MeetingCallControlBar.js +38 -0
  39. package/dist/dist-esm/react-composites/src/composites/MeetingComposite/MeetingCallControlBar.js.map +1 -0
  40. package/dist/dist-esm/react-composites/src/composites/MeetingComposite/MeetingComposite.d.ts +37 -0
  41. package/dist/dist-esm/react-composites/src/composites/MeetingComposite/MeetingComposite.d.ts.map +1 -0
  42. package/dist/dist-esm/react-composites/src/composites/MeetingComposite/MeetingComposite.js +59 -0
  43. package/dist/dist-esm/react-composites/src/composites/MeetingComposite/MeetingComposite.js.map +1 -0
  44. package/dist/dist-esm/react-composites/src/composites/MeetingComposite/PeopleButton.d.ts +7 -0
  45. package/dist/dist-esm/react-composites/src/composites/MeetingComposite/PeopleButton.d.ts.map +1 -0
  46. package/dist/dist-esm/react-composites/src/composites/MeetingComposite/PeopleButton.js +16 -0
  47. package/dist/dist-esm/react-composites/src/composites/MeetingComposite/PeopleButton.js.map +1 -0
  48. package/dist/dist-esm/react-composites/src/composites/MeetingComposite/SidePane.d.ts +25 -0
  49. package/dist/dist-esm/react-composites/src/composites/MeetingComposite/SidePane.d.ts.map +1 -0
  50. package/dist/dist-esm/react-composites/src/composites/MeetingComposite/SidePane.js +76 -0
  51. package/dist/dist-esm/react-composites/src/composites/MeetingComposite/SidePane.js.map +1 -0
  52. package/dist/dist-esm/react-composites/src/composites/MeetingComposite/adapter/AzureCommunicationMeetingAdapter.d.ts +129 -0
  53. package/dist/dist-esm/react-composites/src/composites/MeetingComposite/adapter/AzureCommunicationMeetingAdapter.d.ts.map +1 -0
  54. package/dist/dist-esm/react-composites/src/composites/MeetingComposite/adapter/AzureCommunicationMeetingAdapter.js +385 -0
  55. package/dist/dist-esm/react-composites/src/composites/MeetingComposite/adapter/AzureCommunicationMeetingAdapter.js.map +1 -0
  56. package/dist/dist-esm/react-composites/src/composites/MeetingComposite/adapter/MeetingAdapter.d.ts +73 -0
  57. package/dist/dist-esm/react-composites/src/composites/MeetingComposite/adapter/MeetingAdapter.d.ts.map +1 -0
  58. package/dist/dist-esm/react-composites/src/composites/MeetingComposite/adapter/MeetingAdapter.js +4 -0
  59. package/dist/dist-esm/react-composites/src/composites/MeetingComposite/adapter/MeetingAdapter.js.map +1 -0
  60. package/dist/dist-esm/react-composites/src/composites/MeetingComposite/adapter/MeetingBackedCallAdapter.d.ts +40 -0
  61. package/dist/dist-esm/react-composites/src/composites/MeetingComposite/adapter/MeetingBackedCallAdapter.d.ts.map +1 -0
  62. package/dist/dist-esm/react-composites/src/composites/MeetingComposite/adapter/MeetingBackedCallAdapter.js +100 -0
  63. package/dist/dist-esm/react-composites/src/composites/MeetingComposite/adapter/MeetingBackedCallAdapter.js.map +1 -0
  64. package/dist/dist-esm/react-composites/src/composites/MeetingComposite/adapter/MeetingBackedChatAdapter.d.ts +30 -0
  65. package/dist/dist-esm/react-composites/src/composites/MeetingComposite/adapter/MeetingBackedChatAdapter.d.ts.map +1 -0
  66. package/dist/dist-esm/react-composites/src/composites/MeetingComposite/adapter/MeetingBackedChatAdapter.js +79 -0
  67. package/dist/dist-esm/react-composites/src/composites/MeetingComposite/adapter/MeetingBackedChatAdapter.js.map +1 -0
  68. package/dist/dist-esm/react-composites/src/composites/MeetingComposite/index.d.ts +10 -0
  69. package/dist/dist-esm/react-composites/src/composites/MeetingComposite/index.d.ts.map +1 -0
  70. package/dist/dist-esm/react-composites/src/composites/MeetingComposite/index.js +5 -0
  71. package/dist/dist-esm/react-composites/src/composites/MeetingComposite/index.js.map +1 -0
  72. package/dist/dist-esm/react-composites/src/composites/MeetingComposite/state/MeetingAdapterState.d.ts +50 -0
  73. package/dist/dist-esm/react-composites/src/composites/MeetingComposite/state/MeetingAdapterState.d.ts.map +1 -0
  74. package/dist/dist-esm/react-composites/src/composites/MeetingComposite/state/MeetingAdapterState.js +50 -0
  75. package/dist/dist-esm/react-composites/src/composites/MeetingComposite/state/MeetingAdapterState.js.map +1 -0
  76. package/dist/dist-esm/react-composites/src/composites/MeetingComposite/state/MeetingCompositePage.d.ts +21 -0
  77. package/dist/dist-esm/react-composites/src/composites/MeetingComposite/state/MeetingCompositePage.d.ts.map +1 -0
  78. package/dist/dist-esm/react-composites/src/composites/MeetingComposite/state/MeetingCompositePage.js +41 -0
  79. package/dist/dist-esm/react-composites/src/composites/MeetingComposite/state/MeetingCompositePage.js.map +1 -0
  80. package/dist/dist-esm/react-composites/src/composites/MeetingComposite/state/MeetingEndReason.d.ts +8 -0
  81. package/dist/dist-esm/react-composites/src/composites/MeetingComposite/state/MeetingEndReason.d.ts.map +1 -0
  82. package/dist/dist-esm/react-composites/src/composites/MeetingComposite/state/MeetingEndReason.js +4 -0
  83. package/dist/dist-esm/react-composites/src/composites/MeetingComposite/state/MeetingEndReason.js.map +1 -0
  84. package/dist/dist-esm/react-composites/src/composites/MeetingComposite/state/MeetingParticipants.d.ts +35 -0
  85. package/dist/dist-esm/react-composites/src/composites/MeetingComposite/state/MeetingParticipants.d.ts.map +1 -0
  86. package/dist/dist-esm/react-composites/src/composites/MeetingComposite/state/MeetingParticipants.js +51 -0
  87. package/dist/dist-esm/react-composites/src/composites/MeetingComposite/state/MeetingParticipants.js.map +1 -0
  88. package/dist/dist-esm/react-composites/src/composites/MeetingComposite/state/MeetingState.d.ts +42 -0
  89. package/dist/dist-esm/react-composites/src/composites/MeetingComposite/state/MeetingState.d.ts.map +1 -0
  90. package/dist/dist-esm/react-composites/src/composites/MeetingComposite/state/MeetingState.js +72 -0
  91. package/dist/dist-esm/react-composites/src/composites/MeetingComposite/state/MeetingState.js.map +1 -0
  92. package/dist/dist-esm/react-composites/src/composites/MeetingComposite/styles/MeetingCompositeStyles.d.ts +6 -0
  93. package/dist/dist-esm/react-composites/src/composites/MeetingComposite/styles/MeetingCompositeStyles.d.ts.map +1 -0
  94. package/dist/dist-esm/react-composites/src/composites/MeetingComposite/styles/MeetingCompositeStyles.js +17 -0
  95. package/dist/dist-esm/react-composites/src/composites/MeetingComposite/styles/MeetingCompositeStyles.js.map +1 -0
  96. package/dist/dist-esm/react-composites/src/composites/MeetingComposite/styles/SidePane.styles.d.ts +38 -0
  97. package/dist/dist-esm/react-composites/src/composites/MeetingComposite/styles/SidePane.styles.d.ts.map +1 -0
  98. package/dist/dist-esm/react-composites/src/composites/MeetingComposite/styles/SidePane.styles.js +63 -0
  99. package/dist/dist-esm/react-composites/src/composites/MeetingComposite/styles/SidePane.styles.js.map +1 -0
  100. package/dist/dist-esm/react-composites/src/composites/index.d.ts +2 -0
  101. package/dist/dist-esm/react-composites/src/composites/index.d.ts.map +1 -1
  102. package/dist/dist-esm/react-composites/src/composites/index.js +4 -0
  103. package/dist/dist-esm/react-composites/src/composites/index.js.map +1 -1
  104. package/package.json +24 -9
@@ -0,0 +1,30 @@
1
+ import { MeetingAdapter } from './MeetingAdapter';
2
+ import { ChatAdapter, ChatAdapterState } from '../../ChatComposite';
3
+ import { ErrorBarStrings } from "../../../../../react-components/src";
4
+ /**
5
+ * Facade around the MeetingAdapter to satisfy the chat adapter interface.
6
+ *
7
+ * @private
8
+ */
9
+ export declare class MeetingBackedChatAdapter implements ChatAdapter {
10
+ private meetingAdapter;
11
+ private eventStore;
12
+ constructor(meetingAdapter: MeetingAdapter);
13
+ fetchInitialData: () => Promise<void>;
14
+ sendMessage: (content: string) => Promise<void>;
15
+ sendReadReceipt: (chatMessageId: string) => Promise<void>;
16
+ sendTypingIndicator: () => Promise<void>;
17
+ removeParticipant: (userId: string) => Promise<void>;
18
+ loadPreviousChatMessages: (messagesToLoad: number) => Promise<boolean>;
19
+ dispose: () => void;
20
+ onStateChange: (handler: (state: ChatAdapterState) => void) => void;
21
+ offStateChange: (handler: (state: ChatAdapterState) => void) => void;
22
+ getState: () => ChatAdapterState;
23
+ on: (event: any, listener: any) => void;
24
+ off: (event: any, listener: any) => void;
25
+ updateMessage: (messageId: string, content: string) => Promise<void>;
26
+ deleteMessage: (messageId: string) => Promise<void>;
27
+ clearErrors: (errorTypes: (keyof ErrorBarStrings)[]) => void;
28
+ setTopic: (topicName: string) => Promise<void>;
29
+ }
30
+ //# sourceMappingURL=MeetingBackedChatAdapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MeetingBackedChatAdapter.d.ts","sourceRoot":"","sources":["../../../../../../../../react-composites/src/composites/MeetingComposite/adapter/MeetingBackedChatAdapter.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACpE,OAAO,EAAE,eAAe,EAAE,4CAAmC;AAgC7D;;;;GAIG;AACH,qBAAa,wBAAyB,YAAW,WAAW;IAC1D,OAAO,CAAC,cAAc,CAAiB;IAIvC,OAAO,CAAC,UAAU,CAA2F;gBAEjG,cAAc,EAAE,cAAc;IAInC,gBAAgB,QAAa,QAAQ,IAAI,CAAC,CAAiD;IAC3F,WAAW,YAAmB,MAAM,KAAG,QAAQ,IAAI,CAAC,CAAmD;IACvG,eAAe,kBAAyB,MAAM,KAAG,QAAQ,IAAI,CAAC,CACV;IACpD,mBAAmB,QAAa,QAAQ,IAAI,CAAC,CAAoD;IACjG,iBAAiB,WAAkB,MAAM,KAAG,QAAQ,IAAI,CAAC,CACV;IAC/C,wBAAwB,mBAA0B,MAAM,KAAG,QAAQ,OAAO,CAAC,CACb;IAC9D,OAAO,QAAO,IAAI,CAAkC;IAEpD,aAAa,oBAAqB,gBAAgB,KAAK,IAAI,KAAG,IAAI,CAMvE;IACK,cAAc,oBAAqB,gBAAgB,KAAK,IAAI,KAAG,IAAI,CAGxE;IACK,QAAQ,QAAO,gBAAgB,CAA4E;IAG3G,EAAE,UAAW,GAAG,YAAY,GAAG,KAAG,IAAI,CAA4C;IAClF,GAAG,UAAW,GAAG,YAAY,GAAG,KAAG,IAAI,CAA6C;IAEpF,aAAa,cAAqB,MAAM,WAAW,MAAM,KAAG,QAAQ,IAAI,CAAC,CAClB;IACvD,aAAa,cAAqB,MAAM,KAAG,QAAQ,IAAI,CAAC,CAAuD;IAE/G,WAAW,eAAgB,CAAC,MAAM,eAAe,CAAC,EAAE,KAAG,IAAI,CAEhE;IAEK,QAAQ,cAAqB,MAAM,KAAG,QAAQ,IAAI,CAAC,CAExD;CACH"}
@@ -0,0 +1,79 @@
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
+ /* eslint-disable @typescript-eslint/no-explicit-any */
13
+ /* eslint-disable @typescript-eslint/no-unused-vars */
14
+ function chatThreadStateFromMeetingState(meetingState) {
15
+ return {
16
+ chatMessages: meetingState.chatMessages,
17
+ participants: meetingState.participants,
18
+ threadId: meetingState.threadId,
19
+ properties: meetingState.properties,
20
+ readReceipts: meetingState.readReceipts,
21
+ typingIndicators: meetingState.typingIndicators,
22
+ latestReadTime: meetingState.latestReadTime
23
+ };
24
+ }
25
+ function ChatAdapterStateFromMeetingAdapterState(meetingState) {
26
+ if (!meetingState.meeting) {
27
+ throw 'Cannot get chat adapter state. Meeting state is undefined.';
28
+ }
29
+ return {
30
+ userId: meetingState.userId,
31
+ displayName: meetingState.displayName || '',
32
+ thread: chatThreadStateFromMeetingState(meetingState.meeting),
33
+ latestErrors: {} //@TODO: latest errors not supported in meeting composite yet.
34
+ };
35
+ }
36
+ /**
37
+ * Facade around the MeetingAdapter to satisfy the chat adapter interface.
38
+ *
39
+ * @private
40
+ */
41
+ export class MeetingBackedChatAdapter {
42
+ constructor(meetingAdapter) {
43
+ // For onStateChange we must convert meeting state to chat state. This involves creating a new handler to be passed into the onStateChange.
44
+ // In order to unsubscribe the handler when offStateChange is called we must have a mapping of the original handler to the newly created handler.
45
+ this.eventStore = new Map();
46
+ this.fetchInitialData = () => __awaiter(this, void 0, void 0, function* () { return yield this.meetingAdapter.fetchInitialData(); });
47
+ this.sendMessage = (content) => __awaiter(this, void 0, void 0, function* () { return yield this.meetingAdapter.sendMessage(content); });
48
+ this.sendReadReceipt = (chatMessageId) => __awaiter(this, void 0, void 0, function* () { return yield this.meetingAdapter.sendReadReceipt(chatMessageId); });
49
+ this.sendTypingIndicator = () => __awaiter(this, void 0, void 0, function* () { return yield this.meetingAdapter.sendTypingIndicator(); });
50
+ this.removeParticipant = (userId) => __awaiter(this, void 0, void 0, function* () { return yield this.meetingAdapter.removeParticipant(userId); });
51
+ this.loadPreviousChatMessages = (messagesToLoad) => __awaiter(this, void 0, void 0, function* () { return yield this.meetingAdapter.loadPreviousChatMessages(messagesToLoad); });
52
+ this.dispose = () => this.meetingAdapter.dispose();
53
+ this.onStateChange = (handler) => {
54
+ const convertedHandler = (state) => {
55
+ handler(ChatAdapterStateFromMeetingAdapterState(state));
56
+ };
57
+ this.meetingAdapter.onStateChange(convertedHandler);
58
+ this.eventStore.set(handler, convertedHandler);
59
+ };
60
+ this.offStateChange = (handler) => {
61
+ const convertedHandler = this.eventStore.get(handler);
62
+ convertedHandler && this.meetingAdapter.offStateChange(convertedHandler);
63
+ };
64
+ this.getState = () => ChatAdapterStateFromMeetingAdapterState(this.meetingAdapter.getState());
65
+ /* eslint-disable @typescript-eslint/explicit-module-boundary-types */
66
+ this.on = (event, listener) => this.meetingAdapter.on(event, listener);
67
+ this.off = (event, listener) => this.meetingAdapter.off(event, listener);
68
+ this.updateMessage = (messageId, content) => __awaiter(this, void 0, void 0, function* () { return yield this.meetingAdapter.updateMessage(messageId, content); });
69
+ this.deleteMessage = (messageId) => __awaiter(this, void 0, void 0, function* () { return yield this.meetingAdapter.deleteMessage(messageId); });
70
+ this.clearErrors = (errorTypes) => {
71
+ throw `Method not supported in meetings.`;
72
+ };
73
+ this.setTopic = (topicName) => __awaiter(this, void 0, void 0, function* () {
74
+ throw `Chat Topics are not supported in meetings.`;
75
+ });
76
+ this.meetingAdapter = meetingAdapter;
77
+ }
78
+ }
79
+ //# sourceMappingURL=MeetingBackedChatAdapter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MeetingBackedChatAdapter.js","sourceRoot":"","sources":["../../../../../../../../react-composites/src/composites/MeetingComposite/adapter/MeetingBackedChatAdapter.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ export * from './MeetingComposite';
2
+ export type { MeetingAdapter, MeetingEvent, MeetingAdapterMeetingManagement, MeetingAdapterSubscriptions } from './adapter/MeetingAdapter';
3
+ export type { AzureCommunicationMeetingAdapterArgs } from './adapter/AzureCommunicationMeetingAdapter';
4
+ export { createAzureCommunicationMeetingAdapter } from './adapter/AzureCommunicationMeetingAdapter';
5
+ export type { MeetingAdapterClientState, MeetingAdapterUiState, MeetingAdapterState } from './state/MeetingAdapterState';
6
+ export type { MeetingState } from './state/MeetingState';
7
+ export type { MeetingCompositePage } from './state/MeetingCompositePage';
8
+ export type { MeetingParticipant } from './state/MeetingParticipants';
9
+ export type { MeetingEndReason } from './state/MeetingEndReason';
10
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../react-composites/src/composites/MeetingComposite/index.ts"],"names":[],"mappings":"AAGA,cAAc,oBAAoB,CAAC;AAEnC,YAAY,EACV,cAAc,EACd,YAAY,EACZ,+BAA+B,EAC/B,2BAA2B,EAC5B,MAAM,0BAA0B,CAAC;AAElC,YAAY,EAAE,oCAAoC,EAAE,MAAM,4CAA4C,CAAC;AACvG,OAAO,EAAE,sCAAsC,EAAE,MAAM,4CAA4C,CAAC;AAEpG,YAAY,EACV,yBAAyB,EACzB,qBAAqB,EACrB,mBAAmB,EACpB,MAAM,6BAA6B,CAAC;AAErC,YAAY,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACzD,YAAY,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AACzE,YAAY,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AACtE,YAAY,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC"}
@@ -0,0 +1,5 @@
1
+ // Copyright (c) Microsoft Corporation.
2
+ // Licensed under the MIT license.
3
+ export * from './MeetingComposite';
4
+ export { createAzureCommunicationMeetingAdapter } from './adapter/AzureCommunicationMeetingAdapter';
5
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../react-composites/src/composites/MeetingComposite/index.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAElC,cAAc,oBAAoB,CAAC;AAUnC,OAAO,EAAE,sCAAsC,EAAE,MAAM,4CAA4C,CAAC"}
@@ -0,0 +1,50 @@
1
+ import { CommunicationIdentifierKind } from '@azure/communication-common';
2
+ import { CallAdapter, CallAdapterClientState, CallAdapterState, CallAdapterUiState } from '../../CallComposite';
3
+ import { ChatAdapter, ChatAdapterState } from '../../ChatComposite';
4
+ import { MeetingCompositePage } from './MeetingCompositePage';
5
+ import { MeetingState } from './MeetingState';
6
+ /**
7
+ * UI state pertaining to the Meeting Composite.
8
+ *
9
+ * @beta
10
+ */
11
+ export interface MeetingAdapterUiState extends Pick<CallAdapterUiState, 'isLocalPreviewMicrophoneEnabled'> {
12
+ /** Current page in the meeting composite. */
13
+ page: MeetingCompositePage;
14
+ }
15
+ /**
16
+ * State from the backend services that drives Meeting Composite.
17
+ *
18
+ * @beta
19
+ */
20
+ export interface MeetingAdapterClientState extends Pick<CallAdapterClientState, 'devices' | 'isTeamsCall'> {
21
+ /** ID of the meeting participant using this Meeting Adapter. */
22
+ userId: CommunicationIdentifierKind;
23
+ /** Display name of the meeting participant using this Meeting Adapter. */
24
+ displayName: string | undefined;
25
+ /** State of the current Meeting. */
26
+ meeting: MeetingState | undefined;
27
+ }
28
+ /**
29
+ * Meeting State is a combination of Stateful Chat and Stateful Calling clients with some
30
+ * state specific to meetings only.
31
+ * Stateful items like Participants that apply to both calling and chat are intelligently
32
+ * combined into one to suit the purpose of a Meeting.
33
+ *
34
+ * @beta
35
+ */
36
+ export interface MeetingAdapterState extends MeetingAdapterUiState, MeetingAdapterClientState {
37
+ }
38
+ /**
39
+ * @private
40
+ */
41
+ export declare function meetingAdapterStateFromBackingStates(callAdapter: CallAdapter, chatAdapter: ChatAdapter): MeetingAdapterState;
42
+ /**
43
+ * @private
44
+ */
45
+ export declare function mergeChatAdapterStateIntoMeetingAdapterState(meetingAdapterState: MeetingAdapterState, chatAdapterState: ChatAdapterState): MeetingAdapterState;
46
+ /**
47
+ * @private
48
+ */
49
+ export declare function mergeCallAdapterStateIntoMeetingAdapterState(meetingAdapterState: MeetingAdapterState, callAdapterState: CallAdapterState): MeetingAdapterState;
50
+ //# sourceMappingURL=MeetingAdapterState.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MeetingAdapterState.d.ts","sourceRoot":"","sources":["../../../../../../../../react-composites/src/composites/MeetingComposite/state/MeetingAdapterState.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,2BAA2B,EAAE,MAAM,6BAA6B,CAAC;AAC1E,OAAO,EAAE,WAAW,EAAE,sBAAsB,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAChH,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACpE,OAAO,EAAyB,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AACrF,OAAO,EAEL,YAAY,EAGb,MAAM,gBAAgB,CAAC;AAExB;;;;GAIG;AACH,MAAM,WAAW,qBAAsB,SAAQ,IAAI,CAAC,kBAAkB,EAAE,iCAAiC,CAAC;IACxG,6CAA6C;IAC7C,IAAI,EAAE,oBAAoB,CAAC;CAC5B;AAED;;;;GAIG;AACH,MAAM,WAAW,yBAA0B,SAAQ,IAAI,CAAC,sBAAsB,EAAE,SAAS,GAAG,aAAa,CAAC;IACxG,gEAAgE;IAChE,MAAM,EAAE,2BAA2B,CAAC;IACpC,0EAA0E;IAC1E,WAAW,EAAE,MAAM,GAAG,SAAS,CAAC;IAChC,oCAAoC;IACpC,OAAO,EAAE,YAAY,GAAG,SAAS,CAAC;CACnC;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,mBAAoB,SAAQ,qBAAqB,EAAE,yBAAyB;CAAG;AAEhG;;GAEG;AACH,wBAAgB,oCAAoC,CAClD,WAAW,EAAE,WAAW,EACxB,WAAW,EAAE,WAAW,GACvB,mBAAmB,CAiBrB;AAED;;GAEG;AACH,wBAAgB,4CAA4C,CAC1D,mBAAmB,EAAE,mBAAmB,EACxC,gBAAgB,EAAE,gBAAgB,GACjC,mBAAmB,CASrB;AAED;;GAEG;AACH,wBAAgB,4CAA4C,CAC1D,mBAAmB,EAAE,mBAAmB,EACxC,gBAAgB,EAAE,gBAAgB,GACjC,mBAAmB,CAcrB"}
@@ -0,0 +1,50 @@
1
+ // Copyright (c) Microsoft Corporation.
2
+ // Licensed under the MIT license.
3
+ import { callPageToMeetingPage } from './MeetingCompositePage';
4
+ import { meetingStateFromBackingStates, mergeCallStateIntoMeetingState, mergeChatStateIntoMeetingState } from './MeetingState';
5
+ /**
6
+ * @private
7
+ */
8
+ export function meetingAdapterStateFromBackingStates(callAdapter, chatAdapter) {
9
+ const callAdapterState = callAdapter.getState();
10
+ const chatAdapterState = chatAdapter.getState();
11
+ const meeting = callAdapterState.call
12
+ ? meetingStateFromBackingStates(callAdapterState.call, chatAdapterState.thread)
13
+ : undefined;
14
+ return {
15
+ meeting,
16
+ userId: callAdapterState.userId,
17
+ page: callPageToMeetingPage(callAdapterState.page),
18
+ displayName: callAdapterState.displayName,
19
+ devices: callAdapterState.devices,
20
+ isLocalPreviewMicrophoneEnabled: callAdapterState.isLocalPreviewMicrophoneEnabled,
21
+ isTeamsCall: callAdapterState.isTeamsCall
22
+ };
23
+ }
24
+ /**
25
+ * @private
26
+ */
27
+ export function mergeChatAdapterStateIntoMeetingAdapterState(meetingAdapterState, chatAdapterState) {
28
+ const newMeetingState = meetingAdapterState.meeting
29
+ ? mergeChatStateIntoMeetingState(meetingAdapterState.meeting, chatAdapterState.thread)
30
+ : undefined;
31
+ return Object.assign(Object.assign({}, meetingAdapterState), { meeting: newMeetingState });
32
+ }
33
+ /**
34
+ * @private
35
+ */
36
+ export function mergeCallAdapterStateIntoMeetingAdapterState(meetingAdapterState, callAdapterState) {
37
+ const newMeetingState = callAdapterState.call
38
+ ? mergeCallStateIntoMeetingState(meetingAdapterState.meeting, callAdapterState.call)
39
+ : undefined;
40
+ return {
41
+ userId: callAdapterState.userId,
42
+ page: callPageToMeetingPage(callAdapterState.page),
43
+ displayName: callAdapterState.displayName,
44
+ devices: callAdapterState.devices,
45
+ meeting: newMeetingState,
46
+ isLocalPreviewMicrophoneEnabled: callAdapterState.isLocalPreviewMicrophoneEnabled,
47
+ isTeamsCall: callAdapterState.isTeamsCall
48
+ };
49
+ }
50
+ //# sourceMappingURL=MeetingAdapterState.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MeetingAdapterState.js","sourceRoot":"","sources":["../../../../../../../../react-composites/src/composites/MeetingComposite/state/MeetingAdapterState.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAKlC,OAAO,EAAE,qBAAqB,EAAwB,MAAM,wBAAwB,CAAC;AACrF,OAAO,EACL,6BAA6B,EAE7B,8BAA8B,EAC9B,8BAA8B,EAC/B,MAAM,gBAAgB,CAAC;AAoCxB;;GAEG;AACH,MAAM,UAAU,oCAAoC,CAClD,WAAwB,EACxB,WAAwB;IAExB,MAAM,gBAAgB,GAAG,WAAW,CAAC,QAAQ,EAAE,CAAC;IAChD,MAAM,gBAAgB,GAAG,WAAW,CAAC,QAAQ,EAAE,CAAC;IAEhD,MAAM,OAAO,GAAG,gBAAgB,CAAC,IAAI;QACnC,CAAC,CAAC,6BAA6B,CAAC,gBAAgB,CAAC,IAAI,EAAE,gBAAgB,CAAC,MAAM,CAAC;QAC/E,CAAC,CAAC,SAAS,CAAC;IAEd,OAAO;QACL,OAAO;QACP,MAAM,EAAE,gBAAgB,CAAC,MAAM;QAC/B,IAAI,EAAE,qBAAqB,CAAC,gBAAgB,CAAC,IAAI,CAAC;QAClD,WAAW,EAAE,gBAAgB,CAAC,WAAW;QACzC,OAAO,EAAE,gBAAgB,CAAC,OAAO;QACjC,+BAA+B,EAAE,gBAAgB,CAAC,+BAA+B;QACjF,WAAW,EAAE,gBAAgB,CAAC,WAAW;KAC1C,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,4CAA4C,CAC1D,mBAAwC,EACxC,gBAAkC;IAElC,MAAM,eAAe,GAAG,mBAAmB,CAAC,OAAO;QACjD,CAAC,CAAC,8BAA8B,CAAC,mBAAmB,CAAC,OAAO,EAAE,gBAAgB,CAAC,MAAM,CAAC;QACtF,CAAC,CAAC,SAAS,CAAC;IAEd,uCACK,mBAAmB,KACtB,OAAO,EAAE,eAAe,IACxB;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,4CAA4C,CAC1D,mBAAwC,EACxC,gBAAkC;IAElC,MAAM,eAAe,GAAG,gBAAgB,CAAC,IAAI;QAC3C,CAAC,CAAC,8BAA8B,CAAC,mBAAmB,CAAC,OAAO,EAAE,gBAAgB,CAAC,IAAI,CAAC;QACpF,CAAC,CAAC,SAAS,CAAC;IAEd,OAAO;QACL,MAAM,EAAE,gBAAgB,CAAC,MAAM;QAC/B,IAAI,EAAE,qBAAqB,CAAC,gBAAgB,CAAC,IAAI,CAAC;QAClD,WAAW,EAAE,gBAAgB,CAAC,WAAW;QACzC,OAAO,EAAE,gBAAgB,CAAC,OAAO;QACjC,OAAO,EAAE,eAAe;QACxB,+BAA+B,EAAE,gBAAgB,CAAC,+BAA+B;QACjF,WAAW,EAAE,gBAAgB,CAAC,WAAW;KAC1C,CAAC;AACJ,CAAC"}
@@ -0,0 +1,21 @@
1
+ import { CallState } from '@azure/communication-calling';
2
+ import { CallCompositePage } from '../../CallComposite';
3
+ /**
4
+ * Page state the Meeting composite could be in.
5
+ *
6
+ * @beta
7
+ */
8
+ export declare type MeetingCompositePage = 'accessDeniedTeamsMeeting' | 'configuration' | 'joinMeetingFailedDueToNoNetwork' | 'leftMeeting' | 'lobby' | 'meeting' | 'removedFromMeeting';
9
+ /**
10
+ * @private
11
+ */
12
+ export declare function callPageToMeetingPage(page: CallCompositePage): MeetingCompositePage;
13
+ /**
14
+ * @private
15
+ */
16
+ export declare function meetingPageToCallPage(page: MeetingCompositePage): CallCompositePage;
17
+ /**
18
+ * @private
19
+ */
20
+ export declare const hasJoinedCall: (page: MeetingCompositePage, callStatus: CallState) => boolean;
21
+ //# sourceMappingURL=MeetingCompositePage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MeetingCompositePage.d.ts","sourceRoot":"","sources":["../../../../../../../../react-composites/src/composites/MeetingComposite/state/MeetingCompositePage.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AACzD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAExD;;;;GAIG;AACH,oBAAY,oBAAoB,GAC5B,0BAA0B,GAC1B,eAAe,GACf,iCAAiC,GACjC,aAAa,GACb,OAAO,GACP,SAAS,GACT,oBAAoB,CAAC;AAEzB;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,iBAAiB,GAAG,oBAAoB,CAanF;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,oBAAoB,GAAG,iBAAiB,CAanF;AAED;;GAEG;AACH,eAAO,MAAM,aAAa,SAAU,oBAAoB,cAAc,SAAS,KAAG,OAChC,CAAC"}
@@ -0,0 +1,41 @@
1
+ // Copyright (c) Microsoft Corporation.
2
+ // Licensed under the MIT license.
3
+ /**
4
+ * @private
5
+ */
6
+ export function callPageToMeetingPage(page) {
7
+ switch (page) {
8
+ case 'call':
9
+ return 'meeting';
10
+ case 'leftCall':
11
+ return 'leftMeeting';
12
+ case 'removedFromCall':
13
+ return 'removedFromMeeting';
14
+ case 'joinCallFailedDueToNoNetwork':
15
+ return 'joinMeetingFailedDueToNoNetwork';
16
+ default:
17
+ return page;
18
+ }
19
+ }
20
+ /**
21
+ * @private
22
+ */
23
+ export function meetingPageToCallPage(page) {
24
+ switch (page) {
25
+ case 'meeting':
26
+ return 'call';
27
+ case 'leftMeeting':
28
+ return 'leftCall';
29
+ case 'removedFromMeeting':
30
+ return 'removedFromCall';
31
+ case 'joinMeetingFailedDueToNoNetwork':
32
+ return 'joinCallFailedDueToNoNetwork';
33
+ default:
34
+ return page;
35
+ }
36
+ }
37
+ /**
38
+ * @private
39
+ */
40
+ export const hasJoinedCall = (page, callStatus) => page === 'meeting' && callStatus === 'Connected';
41
+ //# sourceMappingURL=MeetingCompositePage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MeetingCompositePage.js","sourceRoot":"","sources":["../../../../../../../../react-composites/src/composites/MeetingComposite/state/MeetingCompositePage.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAmBlC;;GAEG;AACH,MAAM,UAAU,qBAAqB,CAAC,IAAuB;IAC3D,QAAQ,IAAI,EAAE;QACZ,KAAK,MAAM;YACT,OAAO,SAAS,CAAC;QACnB,KAAK,UAAU;YACb,OAAO,aAAa,CAAC;QACvB,KAAK,iBAAiB;YACpB,OAAO,oBAAoB,CAAC;QAC9B,KAAK,8BAA8B;YACjC,OAAO,iCAAiC,CAAC;QAC3C;YACE,OAAO,IAAI,CAAC;KACf;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,qBAAqB,CAAC,IAA0B;IAC9D,QAAQ,IAAI,EAAE;QACZ,KAAK,SAAS;YACZ,OAAO,MAAM,CAAC;QAChB,KAAK,aAAa;YAChB,OAAO,UAAU,CAAC;QACpB,KAAK,oBAAoB;YACvB,OAAO,iBAAiB,CAAC;QAC3B,KAAK,iCAAiC;YACpC,OAAO,8BAA8B,CAAC;QACxC;YACE,OAAO,IAAI,CAAC;KACf;AACH,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,IAA0B,EAAE,UAAqB,EAAW,EAAE,CAC1F,IAAI,KAAK,SAAS,IAAI,UAAU,KAAK,WAAW,CAAC"}
@@ -0,0 +1,8 @@
1
+ import { CallEndReason } from '@azure/communication-calling';
2
+ /**
3
+ * Describes the reason the meeting ended.
4
+ *
5
+ * @beta
6
+ */
7
+ export declare type MeetingEndReason = CallEndReason;
8
+ //# sourceMappingURL=MeetingEndReason.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MeetingEndReason.d.ts","sourceRoot":"","sources":["../../../../../../../../react-composites/src/composites/MeetingComposite/state/MeetingEndReason.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAE7D;;;;GAIG;AACH,oBAAY,gBAAgB,GAAG,aAAa,CAAC"}
@@ -0,0 +1,4 @@
1
+ // Copyright (c) Microsoft Corporation.
2
+ // Licensed under the MIT license.
3
+ export {};
4
+ //# sourceMappingURL=MeetingEndReason.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MeetingEndReason.js","sourceRoot":"","sources":["../../../../../../../../react-composites/src/composites/MeetingComposite/state/MeetingEndReason.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC"}
@@ -0,0 +1,35 @@
1
+ import { RemoteParticipantState } from "../../../../../calling-stateful-client/src";
2
+ import { CommunicationUserKind, PhoneNumberKind, MicrosoftTeamsUserKind, UnknownIdentifierKind } from '@azure/communication-common';
3
+ import { MeetingEndReason } from './MeetingEndReason';
4
+ /**
5
+ * Participants of a Meeting.
6
+ *
7
+ * @beta
8
+ */
9
+ export interface MeetingParticipant extends Pick<RemoteParticipantState, 'displayName' | 'state' | 'videoStreams' | 'isMuted' | 'isSpeaking'> {
10
+ /** ID of the meeting participant. */
11
+ id: CommunicationUserKind | PhoneNumberKind | MicrosoftTeamsUserKind | UnknownIdentifierKind;
12
+ /** Describes the reason the meeting ended for this participant. */
13
+ meetingEndReason?: MeetingEndReason;
14
+ }
15
+ /**
16
+ * Participants of a Meeting, keyed by userId.
17
+ *
18
+ * @beta
19
+ */
20
+ export declare type MeetingParticipants = {
21
+ [keys: string]: MeetingParticipant;
22
+ };
23
+ declare type RemoteCallParticipants = {
24
+ [keys: string]: RemoteParticipantState;
25
+ };
26
+ /**
27
+ * @private
28
+ */
29
+ export declare function meetingParticipantsFromCallParticipants(callParticipants: RemoteCallParticipants): MeetingParticipants;
30
+ /**
31
+ * @private
32
+ */
33
+ export declare function callParticipantsFromMeetingParticipants(meetingParticipants: MeetingParticipants): RemoteCallParticipants;
34
+ export {};
35
+ //# sourceMappingURL=MeetingParticipants.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MeetingParticipants.d.ts","sourceRoot":"","sources":["../../../../../../../../react-composites/src/composites/MeetingComposite/state/MeetingParticipants.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,sBAAsB,EAAE,mDAA0C;AAC3E,OAAO,EACL,qBAAqB,EACrB,eAAe,EACf,sBAAsB,EACtB,qBAAqB,EACtB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAEtD;;;;GAIG;AACH,MAAM,WAAW,kBAEf,SAAQ,IAAI,CAAC,sBAAsB,EAAE,aAAa,GAAG,OAAO,GAAG,cAAc,GAAG,SAAS,GAAG,YAAY,CAAC;IACzG,qCAAqC;IACrC,EAAE,EAAE,qBAAqB,GAAG,eAAe,GAAG,sBAAsB,GAAG,qBAAqB,CAAC;IAC7F,mEAAmE;IACnE,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;CACrC;AAED;;;;GAIG;AACH,oBAAY,mBAAmB,GAAG;IAAE,CAAC,IAAI,EAAE,MAAM,GAAG,kBAAkB,CAAA;CAAE,CAAC;AAgCzE,aAAK,sBAAsB,GAAG;IAC5B,CAAC,IAAI,EAAE,MAAM,GAAG,sBAAsB,CAAC;CACxC,CAAC;AAEF;;GAEG;AACH,wBAAgB,uCAAuC,CAAC,gBAAgB,EAAE,sBAAsB,GAAG,mBAAmB,CAMrH;AAED;;GAEG;AACH,wBAAgB,uCAAuC,CACrD,mBAAmB,EAAE,mBAAmB,GACvC,sBAAsB,CAMxB"}
@@ -0,0 +1,51 @@
1
+ // Copyright (c) Microsoft Corporation.
2
+ // Licensed under the MIT license.
3
+ /**
4
+ * @private
5
+ */
6
+ function meetingParticipantFromCallParticipant(callParticipant) {
7
+ return {
8
+ id: callParticipant.identifier,
9
+ meetingEndReason: callParticipant.callEndReason,
10
+ displayName: callParticipant.displayName,
11
+ state: callParticipant.state,
12
+ videoStreams: callParticipant.videoStreams,
13
+ isMuted: callParticipant.isMuted,
14
+ isSpeaking: callParticipant.isSpeaking
15
+ };
16
+ }
17
+ /**
18
+ * @private
19
+ */
20
+ function callParticipantFromMeetingParticipant(meetingParticipant) {
21
+ return {
22
+ identifier: meetingParticipant.id,
23
+ callEndReason: meetingParticipant.meetingEndReason,
24
+ displayName: meetingParticipant.displayName,
25
+ state: meetingParticipant.state,
26
+ videoStreams: meetingParticipant.videoStreams,
27
+ isMuted: meetingParticipant.isMuted,
28
+ isSpeaking: meetingParticipant.isSpeaking
29
+ };
30
+ }
31
+ /**
32
+ * @private
33
+ */
34
+ export function meetingParticipantsFromCallParticipants(callParticipants) {
35
+ const meetingParticipants = {};
36
+ for (const [key, value] of Object.entries(callParticipants)) {
37
+ meetingParticipants[key] = meetingParticipantFromCallParticipant(value);
38
+ }
39
+ return meetingParticipants;
40
+ }
41
+ /**
42
+ * @private
43
+ */
44
+ export function callParticipantsFromMeetingParticipants(meetingParticipants) {
45
+ const callParticipants = {};
46
+ for (const [key, value] of Object.entries(meetingParticipants)) {
47
+ callParticipants[key] = callParticipantFromMeetingParticipant(value);
48
+ }
49
+ return callParticipants;
50
+ }
51
+ //# sourceMappingURL=MeetingParticipants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MeetingParticipants.js","sourceRoot":"","sources":["../../../../../../../../react-composites/src/composites/MeetingComposite/state/MeetingParticipants.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAgClC;;GAEG;AACH,SAAS,qCAAqC,CAAC,eAAuC;IACpF,OAAO;QACL,EAAE,EAAE,eAAe,CAAC,UAAU;QAC9B,gBAAgB,EAAE,eAAe,CAAC,aAAa;QAC/C,WAAW,EAAE,eAAe,CAAC,WAAW;QACxC,KAAK,EAAE,eAAe,CAAC,KAAK;QAC5B,YAAY,EAAE,eAAe,CAAC,YAAY;QAC1C,OAAO,EAAE,eAAe,CAAC,OAAO;QAChC,UAAU,EAAE,eAAe,CAAC,UAAU;KACvC,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,SAAS,qCAAqC,CAAC,kBAAsC;IACnF,OAAO;QACL,UAAU,EAAE,kBAAkB,CAAC,EAAE;QACjC,aAAa,EAAE,kBAAkB,CAAC,gBAAgB;QAClD,WAAW,EAAE,kBAAkB,CAAC,WAAW;QAC3C,KAAK,EAAE,kBAAkB,CAAC,KAAK;QAC/B,YAAY,EAAE,kBAAkB,CAAC,YAAY;QAC7C,OAAO,EAAE,kBAAkB,CAAC,OAAO;QACnC,UAAU,EAAE,kBAAkB,CAAC,UAAU;KAC1C,CAAC;AACJ,CAAC;AAMD;;GAEG;AACH,MAAM,UAAU,uCAAuC,CAAC,gBAAwC;IAC9F,MAAM,mBAAmB,GAAwB,EAAE,CAAC;IACpD,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,gBAAgB,CAAC,EAAE;QAC3D,mBAAmB,CAAC,GAAG,CAAC,GAAG,qCAAqC,CAAC,KAAK,CAAC,CAAC;KACzE;IACD,OAAO,mBAAmB,CAAC;AAC7B,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,uCAAuC,CACrD,mBAAwC;IAExC,MAAM,gBAAgB,GAA2B,EAAE,CAAC;IACpD,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,mBAAmB,CAAC,EAAE;QAC9D,gBAAgB,CAAC,GAAG,CAAC,GAAG,qCAAqC,CAAC,KAAK,CAAC,CAAC;KACtE;IACD,OAAO,gBAAgB,CAAC;AAC1B,CAAC"}
@@ -0,0 +1,42 @@
1
+ import { CallState } from "../../../../../calling-stateful-client/src";
2
+ import { ChatThreadClientState } from "../../../../../chat-stateful-client/src";
3
+ import { MeetingParticipant } from './MeetingParticipants';
4
+ import { MeetingEndReason } from './MeetingEndReason';
5
+ /**
6
+ * State of a single Meeting.
7
+ *
8
+ * @beta
9
+ */
10
+ export interface MeetingState extends Pick<CallState, 'callerInfo' | 'state' | 'isMuted' | 'isScreenSharingOn' | 'localVideoStreams' | 'transcription' | 'recording' | 'screenShareRemoteParticipant' | 'startTime' | 'endTime' | 'diagnostics' | 'dominantSpeakers'>, Pick<ChatThreadClientState, 'chatMessages' | 'threadId' | 'properties' | 'readReceipts' | 'typingIndicators' | 'latestReadTime'> {
11
+ /** Current Meeting ID. */
12
+ id: string;
13
+ /** Active participants in the current meeting. */
14
+ participants: {
15
+ [key: string]: MeetingParticipant;
16
+ };
17
+ /** Participants who have left the current meeting. */
18
+ participantsEnded: {
19
+ [keys: string]: MeetingParticipant;
20
+ };
21
+ /** Reason the current meeting has ended. */
22
+ meetingEndReason?: MeetingEndReason;
23
+ }
24
+ /**
25
+ * Helper function to return meeting state created from call and chat states
26
+ *
27
+ * @private
28
+ */
29
+ export declare function meetingStateFromBackingStates(callState: CallState, chatState: ChatThreadClientState): MeetingState;
30
+ /**
31
+ * Helper function to return an updated meeting state with new chat state applied
32
+ *
33
+ * @private
34
+ */
35
+ export declare function mergeChatStateIntoMeetingState(meetingState: MeetingState, chatState: ChatThreadClientState): MeetingState;
36
+ /**
37
+ * Helper function to return an updated meeting state with new call state applied
38
+ *
39
+ * @private
40
+ */
41
+ export declare function mergeCallStateIntoMeetingState(meetingState: MeetingState | undefined, callState: CallState): MeetingState;
42
+ //# sourceMappingURL=MeetingState.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MeetingState.d.ts","sourceRoot":"","sources":["../../../../../../../../react-composites/src/composites/MeetingComposite/state/MeetingState.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,SAAS,EAAE,mDAA0C;AAC9D,OAAO,EAAE,qBAAqB,EAAE,gDAAuC;AACvE,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAGtD;;;;GAIG;AACH,MAAM,WAAW,YACf,SAAQ,IAAI,CACR,SAAS,EACP,YAAY,GACZ,OAAO,GACP,SAAS,GACT,mBAAmB,GACnB,mBAAmB,GACnB,eAAe,GACf,WAAW,GACX,8BAA8B,GAC9B,WAAW,GACX,SAAS,GACT,aAAa,GACb,kBAAkB,CACrB,EACD,IAAI,CACF,qBAAqB,EACrB,cAAc,GAAG,UAAU,GAAG,YAAY,GAAG,cAAc,GAAG,kBAAkB,GAAG,gBAAgB,CACpG;IACH,0BAA0B;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,kDAAkD;IAClD,YAAY,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,kBAAkB,CAAA;KAAE,CAAC;IACpD,sDAAsD;IACtD,iBAAiB,EAAE;QAAE,CAAC,IAAI,EAAE,MAAM,GAAG,kBAAkB,CAAA;KAAE,CAAC;IAC1D,4CAA4C;IAC5C,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;CACrC;AA2CD;;;;GAIG;AACH,wBAAgB,6BAA6B,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,qBAAqB,GAAG,YAAY,CAKlH;AAED;;;;GAIG;AACH,wBAAgB,8BAA8B,CAC5C,YAAY,EAAE,YAAY,EAC1B,SAAS,EAAE,qBAAqB,GAC/B,YAAY,CAKd;AAED;;;;GAIG;AACH,wBAAgB,8BAA8B,CAC5C,YAAY,EAAE,YAAY,GAAG,SAAS,EACtC,SAAS,EAAE,SAAS,GACnB,YAAY,CAmBd"}
@@ -0,0 +1,72 @@
1
+ // Copyright (c) Microsoft Corporation.
2
+ // Licensed under the MIT license.
3
+ import { meetingParticipantsFromCallParticipants } from '../state/MeetingParticipants';
4
+ /**
5
+ * Return properties from call state that are used in meeting state.
6
+ *
7
+ * @private
8
+ */
9
+ // eslint-disable-next-line @typescript-eslint/explicit-function-return-type
10
+ const meetingPropsFromCallState = (callState) => ({
11
+ id: callState.id,
12
+ callerInfo: callState.callerInfo,
13
+ state: callState.state,
14
+ isMuted: callState.isMuted,
15
+ isScreenSharingOn: callState.isScreenSharingOn,
16
+ localVideoStreams: callState.localVideoStreams,
17
+ transcription: callState.transcription,
18
+ recording: callState.recording,
19
+ screenShareRemoteParticipant: callState.screenShareRemoteParticipant,
20
+ startTime: callState.startTime,
21
+ endTime: callState.endTime,
22
+ meetingEndReason: callState.callEndReason,
23
+ diagnostics: callState.diagnostics,
24
+ dominantSpeakers: callState.dominantSpeakers,
25
+ // For meetings we only use participants from the call in a meeting
26
+ participants: meetingParticipantsFromCallParticipants(callState.remoteParticipants),
27
+ participantsEnded: meetingParticipantsFromCallParticipants(callState.remoteParticipantsEnded)
28
+ });
29
+ /**
30
+ * Return properties from chat state that are used in meeting state.
31
+ *
32
+ * @private
33
+ */
34
+ // eslint-disable-next-line @typescript-eslint/explicit-function-return-type
35
+ const meetingPropsFromChatState = (chatState) => ({
36
+ chatMessages: chatState.chatMessages,
37
+ threadId: chatState.threadId,
38
+ properties: chatState.properties,
39
+ readReceipts: chatState.readReceipts,
40
+ typingIndicators: chatState.typingIndicators,
41
+ latestReadTime: chatState.latestReadTime
42
+ });
43
+ /**
44
+ * Helper function to return meeting state created from call and chat states
45
+ *
46
+ * @private
47
+ */
48
+ export function meetingStateFromBackingStates(callState, chatState) {
49
+ return Object.assign(Object.assign({}, meetingPropsFromCallState(callState)), meetingPropsFromChatState(chatState));
50
+ }
51
+ /**
52
+ * Helper function to return an updated meeting state with new chat state applied
53
+ *
54
+ * @private
55
+ */
56
+ export function mergeChatStateIntoMeetingState(meetingState, chatState) {
57
+ return Object.assign(Object.assign({}, meetingState), meetingPropsFromChatState(chatState));
58
+ }
59
+ /**
60
+ * Helper function to return an updated meeting state with new call state applied
61
+ *
62
+ * @private
63
+ */
64
+ export function mergeCallStateIntoMeetingState(meetingState, callState) {
65
+ // If we have no existing meeting state, populate chat fields with defaults to merge and make a new state.
66
+ // This is because calls are constructed before chat state is created.
67
+ if (!meetingState) {
68
+ return Object.assign({ chatMessages: {}, threadId: '', properties: {}, readReceipts: [], typingIndicators: [], latestReadTime: new Date(0) }, meetingPropsFromCallState(callState));
69
+ }
70
+ return Object.assign(Object.assign({}, meetingState), meetingPropsFromCallState(callState));
71
+ }
72
+ //# sourceMappingURL=MeetingState.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MeetingState.js","sourceRoot":"","sources":["../../../../../../../../react-composites/src/composites/MeetingComposite/state/MeetingState.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAMlC,OAAO,EAAE,uCAAuC,EAAE,MAAM,8BAA8B,CAAC;AAqCvF;;;;GAIG;AACH,4EAA4E;AAC5E,MAAM,yBAAyB,GAAG,CAAC,SAAoB,EAAE,EAAE,CAAC,CAAC;IAC3D,EAAE,EAAE,SAAS,CAAC,EAAE;IAChB,UAAU,EAAE,SAAS,CAAC,UAAU;IAChC,KAAK,EAAE,SAAS,CAAC,KAAK;IACtB,OAAO,EAAE,SAAS,CAAC,OAAO;IAC1B,iBAAiB,EAAE,SAAS,CAAC,iBAAiB;IAC9C,iBAAiB,EAAE,SAAS,CAAC,iBAAiB;IAC9C,aAAa,EAAE,SAAS,CAAC,aAAa;IACtC,SAAS,EAAE,SAAS,CAAC,SAAS;IAC9B,4BAA4B,EAAE,SAAS,CAAC,4BAA4B;IACpE,SAAS,EAAE,SAAS,CAAC,SAAS;IAC9B,OAAO,EAAE,SAAS,CAAC,OAAO;IAC1B,gBAAgB,EAAE,SAAS,CAAC,aAAa;IACzC,WAAW,EAAE,SAAS,CAAC,WAAW;IAClC,gBAAgB,EAAE,SAAS,CAAC,gBAAgB;IAC5C,mEAAmE;IACnE,YAAY,EAAE,uCAAuC,CAAC,SAAS,CAAC,kBAAkB,CAAC;IACnF,iBAAiB,EAAE,uCAAuC,CAAC,SAAS,CAAC,uBAAuB,CAAC;CAC9F,CAAC,CAAC;AAEH;;;;GAIG;AACH,4EAA4E;AAC5E,MAAM,yBAAyB,GAAG,CAAC,SAAgC,EAAE,EAAE,CAAC,CAAC;IACvE,YAAY,EAAE,SAAS,CAAC,YAAY;IACpC,QAAQ,EAAE,SAAS,CAAC,QAAQ;IAC5B,UAAU,EAAE,SAAS,CAAC,UAAU;IAChC,YAAY,EAAE,SAAS,CAAC,YAAY;IACpC,gBAAgB,EAAE,SAAS,CAAC,gBAAgB;IAC5C,cAAc,EAAE,SAAS,CAAC,cAAc;CACzC,CAAC,CAAC;AAEH;;;;GAIG;AACH,MAAM,UAAU,6BAA6B,CAAC,SAAoB,EAAE,SAAgC;IAClG,uCACK,yBAAyB,CAAC,SAAS,CAAC,GACpC,yBAAyB,CAAC,SAAS,CAAC,EACvC;AACJ,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,8BAA8B,CAC5C,YAA0B,EAC1B,SAAgC;IAEhC,uCACK,YAAY,GACZ,yBAAyB,CAAC,SAAS,CAAC,EACvC;AACJ,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,8BAA8B,CAC5C,YAAsC,EACtC,SAAoB;IAEpB,0GAA0G;IAC1G,sEAAsE;IACtE,IAAI,CAAC,YAAY,EAAE;QACjB,uBACE,YAAY,EAAE,EAAE,EAChB,QAAQ,EAAE,EAAE,EACZ,UAAU,EAAE,EAAE,EACd,YAAY,EAAE,EAAE,EAChB,gBAAgB,EAAE,EAAE,EACpB,cAAc,EAAE,IAAI,IAAI,CAAC,CAAC,CAAC,IACxB,yBAAyB,CAAC,SAAS,CAAC,EACvC;KACH;IAED,uCACK,YAAY,GACZ,yBAAyB,CAAC,SAAS,CAAC,EACvC;AACJ,CAAC"}
@@ -0,0 +1,6 @@
1
+ import { IStackStyles } from '@fluentui/react';
2
+ /**
3
+ * @private
4
+ */
5
+ export declare const compositeOuterContainerStyles: IStackStyles;
6
+ //# sourceMappingURL=MeetingCompositeStyles.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MeetingCompositeStyles.d.ts","sourceRoot":"","sources":["../../../../../../../../react-composites/src/composites/MeetingComposite/styles/MeetingCompositeStyles.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE/C;;GAEG;AACH,eAAO,MAAM,6BAA6B,EAAE,YAW3C,CAAC"}
@@ -0,0 +1,17 @@
1
+ // Copyright (c) Microsoft Corporation.
2
+ // Licensed under the MIT license.
3
+ /**
4
+ * @private
5
+ */
6
+ export const compositeOuterContainerStyles = {
7
+ root: {
8
+ width: '100%',
9
+ // This allows the composite to correctly contain the call composite by calculating a height for the available space.
10
+ // Items inside the call composite that fill 100% of the height will now fill the height of this container instead
11
+ // of the height of the child items.
12
+ // If this css property is to be removed, test the participant pane correctly uses the scroll overflow when there a lot
13
+ // of participants (i.e. beyond screen height) and where one participant is sharing their screen.
14
+ flexWrap: 'wrap'
15
+ }
16
+ };
17
+ //# sourceMappingURL=MeetingCompositeStyles.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MeetingCompositeStyles.js","sourceRoot":"","sources":["../../../../../../../../react-composites/src/composites/MeetingComposite/styles/MeetingCompositeStyles.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAIlC;;GAEG;AACH,MAAM,CAAC,MAAM,6BAA6B,GAAiB;IACzD,IAAI,EAAE;QACJ,KAAK,EAAE,MAAM;QAEb,qHAAqH;QACrH,kHAAkH;QAClH,oCAAoC;QACpC,uHAAuH;QACvH,iGAAiG;QACjG,QAAQ,EAAE,MAAM;KACjB;CACF,CAAC"}