@azure/communication-react 1.18.0-alpha-202407200014 → 1.18.0-alpha-202407262302
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/communication-react.d.ts +33 -94
- package/dist/dist-cjs/communication-react/{ChatMessageComponentAsRichTextEditBox-D4ctXnw1.js → ChatMessageComponentAsRichTextEditBox-CmXCpkwp.js} +9 -58
- package/dist/dist-cjs/communication-react/ChatMessageComponentAsRichTextEditBox-CmXCpkwp.js.map +1 -0
- package/dist/dist-cjs/communication-react/{RichTextSendBoxWrapper-F6eqVXer.js → RichTextSendBoxWrapper-DI4k0qyf.js} +2 -2
- package/dist/dist-cjs/communication-react/{RichTextSendBoxWrapper-F6eqVXer.js.map → RichTextSendBoxWrapper-DI4k0qyf.js.map} +1 -1
- package/dist/dist-cjs/communication-react/{index-BJO_NOTU.js → index-BSczaURy.js} +479 -831
- package/dist/dist-cjs/communication-react/index-BSczaURy.js.map +1 -0
- package/dist/dist-cjs/communication-react/index.js +1 -1
- package/dist/dist-esm/acs-ui-common/src/telemetryVersion.js +1 -1
- package/dist/dist-esm/acs-ui-common/src/telemetryVersion.js.map +1 -1
- package/dist/dist-esm/calling-component-bindings/src/baseSelectors.d.ts +1 -1
- package/dist/dist-esm/calling-component-bindings/src/baseSelectors.js +3 -3
- package/dist/dist-esm/calling-component-bindings/src/baseSelectors.js.map +1 -1
- package/dist/dist-esm/calling-component-bindings/src/notificationStackSelector.js +2 -2
- package/dist/dist-esm/calling-component-bindings/src/notificationStackSelector.js.map +1 -1
- package/dist/dist-esm/calling-stateful-client/src/CallAgentDeclarative.d.ts +3 -3
- package/dist/dist-esm/calling-stateful-client/src/CallAgentDeclarative.js.map +1 -1
- package/dist/dist-esm/calling-stateful-client/src/CallAgentDeclarativeCommon.d.ts +1 -1
- package/dist/dist-esm/calling-stateful-client/src/CallAgentDeclarativeCommon.js +7 -15
- package/dist/dist-esm/calling-stateful-client/src/CallAgentDeclarativeCommon.js.map +1 -1
- package/dist/dist-esm/calling-stateful-client/src/CallClientState.d.ts +1 -3
- package/dist/dist-esm/calling-stateful-client/src/CallClientState.js.map +1 -1
- package/dist/dist-esm/calling-stateful-client/src/CallContext.js +2 -2
- package/dist/dist-esm/calling-stateful-client/src/CallContext.js.map +1 -1
- package/dist/dist-esm/calling-stateful-client/src/Converter.js +1 -1
- package/dist/dist-esm/calling-stateful-client/src/Converter.js.map +1 -1
- package/dist/dist-esm/calling-stateful-client/src/IncomingCallDeclarative.d.ts +8 -2
- package/dist/dist-esm/calling-stateful-client/src/IncomingCallDeclarative.js.map +1 -1
- package/dist/dist-esm/calling-stateful-client/src/TeamsCallAgentDeclarative.d.ts +2 -14
- package/dist/dist-esm/calling-stateful-client/src/TeamsCallAgentDeclarative.js.map +1 -1
- package/dist/dist-esm/calling-stateful-client/src/TypeGuards.d.ts +1 -9
- package/dist/dist-esm/calling-stateful-client/src/TypeGuards.js +0 -16
- package/dist/dist-esm/calling-stateful-client/src/TypeGuards.js.map +1 -1
- package/dist/dist-esm/calling-stateful-client/src/index-public.d.ts +1 -1
- package/dist/dist-esm/calling-stateful-client/src/index-public.js.map +1 -1
- package/dist/dist-esm/chat-stateful-client/src/ChatClientState.d.ts +3 -5
- package/dist/dist-esm/chat-stateful-client/src/ChatClientState.js.map +1 -1
- package/dist/dist-esm/communication-react/src/index.d.ts +1 -1
- package/dist/dist-esm/communication-react/src/index.js.map +1 -1
- package/dist/dist-esm/react-components/src/components/Attachment/AttachmentCard.js +8 -14
- package/dist/dist-esm/react-components/src/components/Attachment/AttachmentCard.js.map +1 -1
- package/dist/dist-esm/react-components/src/components/ChatMessage/ChatMessageComponentWrapper.d.ts +2 -8
- package/dist/dist-esm/react-components/src/components/ChatMessage/ChatMessageComponentWrapper.js.map +1 -1
- package/dist/dist-esm/react-components/src/components/ChatMessage/MyMessageComponents/ChatMessageComponentAsEditBoxPicker.d.ts +4 -6
- package/dist/dist-esm/react-components/src/components/ChatMessage/MyMessageComponents/ChatMessageComponentAsEditBoxPicker.js +12 -2
- package/dist/dist-esm/react-components/src/components/ChatMessage/MyMessageComponents/ChatMessageComponentAsEditBoxPicker.js.map +1 -1
- package/dist/dist-esm/react-components/src/components/ChatMessage/MyMessageComponents/ChatMessageComponentAsRichTextEditBox.d.ts +2 -2
- package/dist/dist-esm/react-components/src/components/ChatMessage/MyMessageComponents/ChatMessageComponentAsRichTextEditBox.js +8 -60
- package/dist/dist-esm/react-components/src/components/ChatMessage/MyMessageComponents/ChatMessageComponentAsRichTextEditBox.js.map +1 -1
- package/dist/dist-esm/react-components/src/components/ChatMessage/MyMessageComponents/ChatMyMessageComponent.d.ts +6 -8
- package/dist/dist-esm/react-components/src/components/ChatMessage/MyMessageComponents/ChatMyMessageComponent.js +4 -18
- package/dist/dist-esm/react-components/src/components/ChatMessage/MyMessageComponents/ChatMyMessageComponent.js.map +1 -1
- package/dist/dist-esm/react-components/src/components/ChatMessage/MyMessageComponents/FluentChatMyMessageComponent.js +3 -27
- package/dist/dist-esm/react-components/src/components/ChatMessage/MyMessageComponents/FluentChatMyMessageComponent.js.map +1 -1
- package/dist/dist-esm/react-components/src/components/MeetingConferencePhoneInfo.d.ts +8 -8
- package/dist/dist-esm/react-components/src/components/MeetingConferencePhoneInfo.js +4 -4
- package/dist/dist-esm/react-components/src/components/MeetingConferencePhoneInfo.js.map +1 -1
- package/dist/dist-esm/react-components/src/components/MessageThread.d.ts +15 -9
- package/dist/dist-esm/react-components/src/components/MessageThread.js +1 -10
- package/dist/dist-esm/react-components/src/components/MessageThread.js.map +1 -1
- package/dist/dist-esm/react-components/src/components/RichTextEditor/Plugins/CopyPastePlugin.js +1 -0
- package/dist/dist-esm/react-components/src/components/RichTextEditor/Plugins/CopyPastePlugin.js.map +1 -1
- package/dist/dist-esm/react-components/src/components/RichTextEditor/RichTextEditor.js +22 -28
- package/dist/dist-esm/react-components/src/components/RichTextEditor/RichTextEditor.js.map +1 -1
- package/dist/dist-esm/react-components/src/components/RichTextEditor/RichTextSendBox.d.ts +0 -49
- package/dist/dist-esm/react-components/src/components/RichTextEditor/RichTextSendBox.js +18 -37
- package/dist/dist-esm/react-components/src/components/RichTextEditor/RichTextSendBox.js.map +1 -1
- package/dist/dist-esm/react-components/src/components/RichTextEditor/Toolbar/RichTextToolbar.js +2 -20
- package/dist/dist-esm/react-components/src/components/RichTextEditor/Toolbar/RichTextToolbar.js.map +1 -1
- package/dist/dist-esm/react-components/src/components/index.d.ts +1 -2
- package/dist/dist-esm/react-components/src/components/index.js.map +1 -1
- package/dist/dist-esm/react-components/src/components/styles/AttachmentCard.styles.d.ts +2 -2
- package/dist/dist-esm/react-components/src/components/styles/AttachmentCard.styles.js +17 -15
- package/dist/dist-esm/react-components/src/components/styles/AttachmentCard.styles.js.map +1 -1
- package/dist/dist-esm/react-components/src/components/styles/Common.style.d.ts +1 -1
- package/dist/dist-esm/react-components/src/components/styles/Common.style.js +1 -2
- package/dist/dist-esm/react-components/src/components/styles/Common.style.js.map +1 -1
- package/dist/dist-esm/react-components/src/components/styles/MessageThread.styles.js +2 -5
- package/dist/dist-esm/react-components/src/components/styles/MessageThread.styles.js.map +1 -1
- package/dist/dist-esm/react-components/src/components/styles/RichTextEditor.styles.js +3 -3
- package/dist/dist-esm/react-components/src/components/styles/RichTextEditor.styles.js.map +1 -1
- package/dist/dist-esm/react-components/src/components/utils/RichTextEditorUtils.d.ts +5 -1
- package/dist/dist-esm/react-components/src/components/utils/RichTextEditorUtils.js +21 -0
- package/dist/dist-esm/react-components/src/components/utils/RichTextEditorUtils.js.map +1 -1
- package/dist/dist-esm/react-components/src/components/utils/SendBoxUtils.d.ts +3 -15
- package/dist/dist-esm/react-components/src/components/utils/SendBoxUtils.js +14 -67
- package/dist/dist-esm/react-components/src/components/utils/SendBoxUtils.js.map +1 -1
- package/dist/dist-esm/react-components/src/localization/LocalizationProvider.d.ts +1 -1
- package/dist/dist-esm/react-components/src/localization/LocalizationProvider.js.map +1 -1
- package/dist/dist-esm/react-components/src/localization/locales/ar-SA/strings.json +64 -102
- package/dist/dist-esm/react-components/src/localization/locales/cs-CZ/strings.json +62 -100
- package/dist/dist-esm/react-components/src/localization/locales/de-DE/strings.json +62 -100
- package/dist/dist-esm/react-components/src/localization/locales/en-GB/strings.json +62 -100
- package/dist/dist-esm/react-components/src/localization/locales/en-US/strings.json +3 -9
- package/dist/dist-esm/react-components/src/localization/locales/es-ES/strings.json +62 -100
- package/dist/dist-esm/react-components/src/localization/locales/fi-FI/strings.json +62 -100
- package/dist/dist-esm/react-components/src/localization/locales/fr-FR/strings.json +65 -103
- package/dist/dist-esm/react-components/src/localization/locales/he-IL/strings.json +62 -100
- package/dist/dist-esm/react-components/src/localization/locales/it-IT/strings.json +62 -100
- package/dist/dist-esm/react-components/src/localization/locales/ja-JP/strings.json +64 -102
- package/dist/dist-esm/react-components/src/localization/locales/ko-KR/strings.json +69 -107
- package/dist/dist-esm/react-components/src/localization/locales/nb-NO/strings.json +62 -100
- package/dist/dist-esm/react-components/src/localization/locales/nl-NL/strings.json +68 -106
- package/dist/dist-esm/react-components/src/localization/locales/pl-PL/strings.json +67 -105
- package/dist/dist-esm/react-components/src/localization/locales/pt-BR/strings.json +65 -103
- package/dist/dist-esm/react-components/src/localization/locales/ru-RU/strings.json +63 -101
- package/dist/dist-esm/react-components/src/localization/locales/sv-SE/strings.json +62 -100
- package/dist/dist-esm/react-components/src/localization/locales/tr-TR/strings.json +63 -101
- package/dist/dist-esm/react-components/src/localization/locales/zh-CN/strings.json +64 -102
- package/dist/dist-esm/react-components/src/localization/locales/zh-TW/strings.json +63 -101
- package/dist/dist-esm/react-composites/src/composites/CallComposite/components/NetworkReconnectTile.js +4 -4
- package/dist/dist-esm/react-composites/src/composites/CallComposite/components/NetworkReconnectTile.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/CallComposite/components/SidePane/useMeetingPhoneInfo.js +1 -1
- package/dist/dist-esm/react-composites/src/composites/CallComposite/components/SidePane/useMeetingPhoneInfo.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/baseSelectors.js +1 -1
- package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/baseSelectors.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/ChatComposite/ChatScreen.js +31 -66
- package/dist/dist-esm/react-composites/src/composites/ChatComposite/ChatScreen.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/ChatComposite/ImageUpload/ImageUploadUtils.d.ts +1 -33
- package/dist/dist-esm/react-composites/src/composites/ChatComposite/ImageUpload/ImageUploadUtils.js +6 -198
- package/dist/dist-esm/react-composites/src/composites/ChatComposite/ImageUpload/ImageUploadUtils.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/ChatComposite/ImageUpload/useImageUpload.d.ts +12 -0
- package/dist/dist-esm/react-composites/src/composites/ChatComposite/ImageUpload/useImageUpload.js +115 -0
- package/dist/dist-esm/react-composites/src/composites/ChatComposite/ImageUpload/useImageUpload.js.map +1 -0
- package/dist/dist-esm/react-composites/src/composites/ChatComposite/file-sharing/AttachmentUpload.d.ts +7 -7
- package/dist/dist-esm/react-composites/src/composites/ChatComposite/file-sharing/AttachmentUpload.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/common/ControlBar/CommonCallControlBar.js +10 -10
- package/dist/dist-esm/react-composites/src/composites/common/ControlBar/CommonCallControlBar.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/common/MeetingPhoneInfoPaneContent.js +4 -4
- package/dist/dist-esm/react-composites/src/composites/common/MeetingPhoneInfoPaneContent.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/common/SendBoxPicker.d.ts +5 -2
- package/dist/dist-esm/react-composites/src/composites/common/SendBoxPicker.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/common/constants.d.ts +0 -4
- package/dist/dist-esm/react-composites/src/composites/common/constants.js +0 -4
- package/dist/dist-esm/react-composites/src/composites/common/constants.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/common/icons.d.ts +2 -6
- package/dist/dist-esm/react-composites/src/composites/common/icons.js +1 -5
- package/dist/dist-esm/react-composites/src/composites/common/icons.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/localization/locales/ar-SA/strings.json +5 -10
- package/dist/dist-esm/react-composites/src/composites/localization/locales/cs-CZ/strings.json +1 -6
- package/dist/dist-esm/react-composites/src/composites/localization/locales/de-DE/strings.json +1 -6
- package/dist/dist-esm/react-composites/src/composites/localization/locales/en-GB/strings.json +1 -6
- package/dist/dist-esm/react-composites/src/composites/localization/locales/es-ES/strings.json +1 -6
- package/dist/dist-esm/react-composites/src/composites/localization/locales/fi-FI/strings.json +5 -10
- package/dist/dist-esm/react-composites/src/composites/localization/locales/fr-FR/strings.json +5 -10
- package/dist/dist-esm/react-composites/src/composites/localization/locales/he-IL/strings.json +5 -10
- package/dist/dist-esm/react-composites/src/composites/localization/locales/it-IT/strings.json +5 -10
- package/dist/dist-esm/react-composites/src/composites/localization/locales/ja-JP/strings.json +1 -6
- package/dist/dist-esm/react-composites/src/composites/localization/locales/ko-KR/strings.json +5 -10
- package/dist/dist-esm/react-composites/src/composites/localization/locales/nb-NO/strings.json +1 -6
- package/dist/dist-esm/react-composites/src/composites/localization/locales/nl-NL/strings.json +1 -6
- package/dist/dist-esm/react-composites/src/composites/localization/locales/pl-PL/strings.json +1 -6
- package/dist/dist-esm/react-composites/src/composites/localization/locales/pt-BR/strings.json +5 -10
- package/dist/dist-esm/react-composites/src/composites/localization/locales/ru-RU/strings.json +1 -6
- package/dist/dist-esm/react-composites/src/composites/localization/locales/sv-SE/strings.json +5 -10
- package/dist/dist-esm/react-composites/src/composites/localization/locales/tr-TR/strings.json +1 -6
- package/dist/dist-esm/react-composites/src/composites/localization/locales/zh-CN/strings.json +5 -10
- package/dist/dist-esm/react-composites/src/composites/localization/locales/zh-TW/strings.json +5 -10
- package/package.json +14 -14
- package/dist/dist-cjs/communication-react/ChatMessageComponentAsRichTextEditBox-D4ctXnw1.js.map +0 -1
- package/dist/dist-cjs/communication-react/index-BJO_NOTU.js.map +0 -1
- package/dist/dist-esm/calling-stateful-client/src/TeamsIncomingCallDeclarative.d.ts +0 -17
- package/dist/dist-esm/calling-stateful-client/src/TeamsIncomingCallDeclarative.js +0 -49
- package/dist/dist-esm/calling-stateful-client/src/TeamsIncomingCallDeclarative.js.map +0 -1
- package/dist/dist-esm/react-composites/src/composites/ChatComposite/ImageUpload/ImageUploadReducer.d.ts +0 -49
- package/dist/dist-esm/react-composites/src/composites/ChatComposite/ImageUpload/ImageUploadReducer.js +0 -48
- package/dist/dist-esm/react-composites/src/composites/ChatComposite/ImageUpload/ImageUploadReducer.js.map +0 -1
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"telemetryVersion.js","sourceRoot":"","sources":["../../../../../acs-ui-common/src/telemetryVersion.js"],"names":[],"mappings":";AAAA,uCAAuC;AACvC,kCAAkC;AAElC,wCAAwC;AAExC,MAAM,CAAC,OAAO,GAAG,2BAA2B,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\n// GENERATED FILE. DO NOT EDIT MANUALLY.\n\nmodule.exports = '1.18.0-alpha-
|
1
|
+
{"version":3,"file":"telemetryVersion.js","sourceRoot":"","sources":["../../../../../acs-ui-common/src/telemetryVersion.js"],"names":[],"mappings":";AAAA,uCAAuC;AACvC,kCAAkC;AAElC,wCAAwC;AAExC,MAAM,CAAC,OAAO,GAAG,2BAA2B,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\n// GENERATED FILE. DO NOT EDIT MANUALLY.\n\nmodule.exports = '1.18.0-alpha-202407262302';\n"]}
|
@@ -122,5 +122,5 @@ export declare const getSupportedCaptionLanguages: (state: CallClientState, prop
|
|
122
122
|
/** @private */
|
123
123
|
export declare const getSupportedSpokenLanguages: (state: CallClientState, props: CallingBaseSelectorProps) => _SupportedSpokenLanguage[] | undefined;
|
124
124
|
/** @private */
|
125
|
-
export declare const
|
125
|
+
export declare const getTeamsMeetingConference: (state: CallClientState, props: CallingBaseSelectorProps) => ConferencePhoneInfo[] | undefined;
|
126
126
|
//# sourceMappingURL=baseSelectors.d.ts.map
|
@@ -157,8 +157,8 @@ export const getSupportedSpokenLanguages = (state, props) => {
|
|
157
157
|
};
|
158
158
|
/* @conditional-compile-remove(teams-meeting-conference) */
|
159
159
|
/** @private */
|
160
|
-
export const
|
161
|
-
var _a
|
162
|
-
return (
|
160
|
+
export const getTeamsMeetingConference = (state, props) => {
|
161
|
+
var _a;
|
162
|
+
return (_a = state.calls[props.callId]) === null || _a === void 0 ? void 0 : _a.teamsMeetingConference;
|
163
163
|
};
|
164
164
|
//# sourceMappingURL=baseSelectors.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"baseSelectors.js","sourceRoot":"","sources":["../../../../../calling-component-bindings/src/baseSelectors.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\nimport { DominantSpeakersInfo } from '@azure/communication-calling';\n\nimport { ParticipantCapabilities } from '@azure/communication-calling';\n/* @conditional-compile-remove(unsupported-browser) */\nimport { EnvironmentInfo } from '@azure/communication-calling';\nimport { ParticipantRole } from '@azure/communication-calling';\nimport { toFlatCommunicationIdentifier } from '@internal/acs-ui-common';\nimport {\n CallClientState,\n DeviceManagerState,\n RemoteParticipantState,\n LocalVideoStreamState,\n CallErrors,\n DiagnosticsCallFeatureState,\n SpotlightCallFeatureState\n} from '@internal/calling-stateful-client';\nimport { ReactionState } from '@internal/calling-stateful-client';\nimport { CaptionsInfo } from '@internal/calling-stateful-client';\n/* @conditional-compile-remove(acs-close-captions) */\nimport { CaptionsKind } from '@azure/communication-calling';\nimport { RaisedHandState } from '@internal/calling-stateful-client';\nimport { _SupportedCaptionLanguage, _SupportedSpokenLanguage } from '@internal/react-components';\n/* @conditional-compile-remove(teams-meeting-conference) */\nimport { ConferencePhoneInfo } from '@internal/calling-stateful-client';\n\n/**\n * Common props used to reference calling declarative client state.\n *\n * @public\n */\nexport type CallingBaseSelectorProps = {\n callId: string;\n};\n\n/**\n * @private\n */\nexport const getDeviceManager = (state: CallClientState): DeviceManagerState => state.deviceManager;\n\n/**\n * @private\n */\nexport const getRole = (state: CallClientState, props: CallingBaseSelectorProps): ParticipantRole | undefined => {\n return state.calls[props.callId]?.role;\n};\n\n/**\n * @private\n */\nexport const isHideAttendeeNamesEnabled = (state: CallClientState, props: CallingBaseSelectorProps): boolean => {\n /* @conditional-compile-remove(hide-attendee-name) */\n return state.calls[props.callId]?.hideAttendeeNames ?? false;\n return false;\n};\n\n/**\n * @private\n */\nexport const getCapabilities = (\n state: CallClientState,\n props: CallingBaseSelectorProps\n): ParticipantCapabilities | undefined => state.calls[props.callId]?.capabilitiesFeature?.capabilities;\n\n/**\n * @private\n */\nexport const getCallExists = (state: CallClientState, props: CallingBaseSelectorProps): boolean =>\n !!state.calls[props.callId];\n\n/**\n * @private\n */\nexport const getDominantSpeakers = (\n state: CallClientState,\n props: CallingBaseSelectorProps\n): undefined | DominantSpeakersInfo => state.calls[props.callId]?.dominantSpeakers;\n\n/**\n * @private\n */\nexport const getRemoteParticipants = (\n state: CallClientState,\n props: CallingBaseSelectorProps\n):\n | {\n [keys: string]: RemoteParticipantState;\n }\n | undefined => {\n return state.calls[props.callId]?.remoteParticipants;\n};\n\n/**\n * @private\n */\nexport const getLocalParticipantRaisedHand = (\n state: CallClientState,\n props: CallingBaseSelectorProps\n): RaisedHandState | undefined => {\n return state.calls[props.callId]?.raiseHand?.localParticipantRaisedHand;\n};\n\n/**\n * @private\n */\nexport const getSpotlightCallFeature = (\n state: CallClientState,\n props: CallingBaseSelectorProps\n): SpotlightCallFeatureState | undefined => {\n return state.calls[props.callId]?.spotlight;\n};\n\n/**\n * @private\n */\nexport const getLocalParticipantReactionState = (\n state: CallClientState,\n props: CallingBaseSelectorProps\n): ReactionState | undefined => {\n return state.calls[props.callId]?.localParticipantReaction;\n};\n\n/**\n * @private\n */\nexport const getIsScreenSharingOn = (state: CallClientState, props: CallingBaseSelectorProps): boolean | undefined =>\n state.calls[props.callId]?.isScreenSharingOn;\n\n/**\n * @private\n */\nexport const getIsMuted = (state: CallClientState, props: CallingBaseSelectorProps): boolean | undefined =>\n state.calls[props.callId]?.isMuted;\n\n/**\n * @private\n */\nexport const getOptimalVideoCount = (state: CallClientState, props: CallingBaseSelectorProps): number | undefined =>\n state.calls[props.callId]?.optimalVideoCount.maxRemoteVideoStreams;\n\n/**\n * @private\n */\nexport const getLocalVideoStreams = (\n state: CallClientState,\n props: CallingBaseSelectorProps\n): LocalVideoStreamState[] | undefined => state.calls[props.callId]?.localVideoStreams;\n\n/**\n * @private\n */\nexport const getScreenShareRemoteParticipant = (\n state: CallClientState,\n props: CallingBaseSelectorProps\n): string | undefined => state.calls[props.callId]?.screenShareRemoteParticipant;\n\n/**\n * @private\n */\nexport const getDisplayName = (state: CallClientState): string | undefined => state.callAgent?.displayName;\n\n/**\n * @private\n */\nexport const getIdentifier = (state: CallClientState): string => toFlatCommunicationIdentifier(state.userId);\n\n/**\n * @private\n */\nexport const getLatestErrors = (state: CallClientState): CallErrors => state.latestErrors;\n\n/**\n * @private\n */\nexport const getDiagnostics = (\n state: CallClientState,\n props: CallingBaseSelectorProps\n): DiagnosticsCallFeatureState | undefined => state.calls[props.callId]?.diagnostics;\n\n/**\n * @private\n */\nexport const getCallState = (state: CallClientState, props: CallingBaseSelectorProps): string =>\n state.calls[props.callId]?.state;\n\n/**\n * @private\n */\nexport const getEnvironmentInfo = (\n state: CallClientState\n): undefined | /* @conditional-compile-remove(unsupported-browser) */ EnvironmentInfo => {\n /* @conditional-compile-remove(unsupported-browser) */\n return state.environmentInfo;\n return undefined;\n};\n\n/** @private */\nexport const getParticipantCount = (state: CallClientState, props: CallingBaseSelectorProps): number | undefined => {\n /* @conditional-compile-remove(total-participant-count) */\n return state.calls[props.callId]?.totalParticipantCount;\n return undefined;\n};\n\n/* @conditional-compile-remove(acs-close-captions) */\n/** @private */\nexport const getCaptionsKind = (state: CallClientState, props: CallingBaseSelectorProps): CaptionsKind => {\n return state.calls[props.callId]?.captionsFeature.captionsKind;\n};\n\n/** @private */\nexport const getCaptions = (state: CallClientState, props: CallingBaseSelectorProps): CaptionsInfo[] | undefined => {\n return state.calls[props.callId]?.captionsFeature.captions;\n};\n\n/** @private */\nexport const getCaptionsStatus = (state: CallClientState, props: CallingBaseSelectorProps): boolean | undefined => {\n return state.calls[props.callId]?.captionsFeature.isCaptionsFeatureActive;\n};\n\n/** @private */\nexport const getStartCaptionsInProgress = (\n state: CallClientState,\n props: CallingBaseSelectorProps\n): boolean | undefined => {\n return state.calls[props.callId]?.captionsFeature.startCaptionsInProgress;\n};\n\n/** @private */\nexport const getCurrentCaptionLanguage = (\n state: CallClientState,\n props: CallingBaseSelectorProps\n): _SupportedCaptionLanguage | undefined => {\n return state.calls[props.callId]?.captionsFeature.currentCaptionLanguage as _SupportedCaptionLanguage;\n};\n\n/** @private */\nexport const getCurrentSpokenLanguage = (\n state: CallClientState,\n props: CallingBaseSelectorProps\n): _SupportedSpokenLanguage | undefined => {\n return state.calls[props.callId]?.captionsFeature.currentSpokenLanguage as _SupportedSpokenLanguage;\n};\n\n/** @private */\nexport const getSupportedCaptionLanguages = (\n state: CallClientState,\n props: CallingBaseSelectorProps\n): _SupportedCaptionLanguage[] | undefined => {\n return state.calls[props.callId]?.captionsFeature.supportedCaptionLanguages as _SupportedCaptionLanguage[];\n};\n\n/** @private */\nexport const getSupportedSpokenLanguages = (\n state: CallClientState,\n props: CallingBaseSelectorProps\n): _SupportedSpokenLanguage[] | undefined => {\n return state.calls[props.callId]?.captionsFeature.supportedSpokenLanguages as _SupportedSpokenLanguage[];\n};\n\n/* @conditional-compile-remove(teams-meeting-conference) */\n/** @private */\nexport const getMeetingConferencePhones = (\n state: CallClientState,\n props: CallingBaseSelectorProps\n): ConferencePhoneInfo[] | undefined => {\n return state.calls[props.callId]?.meetingConference?.conferencePhones;\n};\n"]}
|
1
|
+
{"version":3,"file":"baseSelectors.js","sourceRoot":"","sources":["../../../../../calling-component-bindings/src/baseSelectors.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,6BAA6B,EAAE,gCAAgC;AA4BxE;;GAEG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,KAAsB,EAAsB,EAAE,CAAC,KAAK,CAAC,aAAa,CAAC;AAEpG;;GAEG;AACH,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,KAAsB,EAAE,KAA+B,EAA+B,EAAE;;IAC9G,OAAO,MAAA,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,0CAAE,IAAI,CAAC;AACzC,CAAC,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAC,KAAsB,EAAE,KAA+B,EAAW,EAAE;;IAC7G,qDAAqD;IACrD,OAAO,MAAA,MAAA,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,0CAAE,iBAAiB,mCAAI,KAAK,CAAC;IAC7D,OAAO,KAAK,CAAC;AACf,CAAC,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,CAC7B,KAAsB,EACtB,KAA+B,EACM,EAAE,eAAC,OAAA,MAAA,MAAA,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,0CAAE,mBAAmB,0CAAE,YAAY,CAAA,EAAA,CAAC;AAEvG;;GAEG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,KAAsB,EAAE,KAA+B,EAAW,EAAE,CAChG,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;AAE9B;;GAEG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,CACjC,KAAsB,EACtB,KAA+B,EACG,EAAE,WAAC,OAAA,MAAA,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,0CAAE,gBAAgB,CAAA,EAAA,CAAC;AAEnF;;GAEG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,CACnC,KAAsB,EACtB,KAA+B,EAKnB,EAAE;;IACd,OAAO,MAAA,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,0CAAE,kBAAkB,CAAC;AACvD,CAAC,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,6BAA6B,GAAG,CAC3C,KAAsB,EACtB,KAA+B,EACF,EAAE;;IAC/B,OAAO,MAAA,MAAA,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,0CAAE,SAAS,0CAAE,0BAA0B,CAAC;AAC1E,CAAC,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,CACrC,KAAsB,EACtB,KAA+B,EACQ,EAAE;;IACzC,OAAO,MAAA,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,0CAAE,SAAS,CAAC;AAC9C,CAAC,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,gCAAgC,GAAG,CAC9C,KAAsB,EACtB,KAA+B,EACJ,EAAE;;IAC7B,OAAO,MAAA,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,0CAAE,wBAAwB,CAAC;AAC7D,CAAC,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,KAAsB,EAAE,KAA+B,EAAuB,EAAE,WACnH,OAAA,MAAA,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,0CAAE,iBAAiB,CAAA,EAAA,CAAC;AAE/C;;GAEG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,KAAsB,EAAE,KAA+B,EAAuB,EAAE,WACzG,OAAA,MAAA,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,0CAAE,OAAO,CAAA,EAAA,CAAC;AAErC;;GAEG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,KAAsB,EAAE,KAA+B,EAAsB,EAAE,WAClH,OAAA,MAAA,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,0CAAE,iBAAiB,CAAC,qBAAqB,CAAA,EAAA,CAAC;AAErE;;GAEG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAClC,KAAsB,EACtB,KAA+B,EACM,EAAE,WAAC,OAAA,MAAA,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,0CAAE,iBAAiB,CAAA,EAAA,CAAC;AAEvF;;GAEG;AACH,MAAM,CAAC,MAAM,+BAA+B,GAAG,CAC7C,KAAsB,EACtB,KAA+B,EACX,EAAE,WAAC,OAAA,MAAA,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,0CAAE,4BAA4B,CAAA,EAAA,CAAC;AAEjF;;GAEG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,KAAsB,EAAsB,EAAE,WAAC,OAAA,MAAA,KAAK,CAAC,SAAS,0CAAE,WAAW,CAAA,EAAA,CAAC;AAE3G;;GAEG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,KAAsB,EAAU,EAAE,CAAC,6BAA6B,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;AAE7G;;GAEG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,KAAsB,EAAc,EAAE,CAAC,KAAK,CAAC,YAAY,CAAC;AAE1F;;GAEG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,CAC5B,KAAsB,EACtB,KAA+B,EACU,EAAE,WAAC,OAAA,MAAA,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,0CAAE,WAAW,CAAA,EAAA,CAAC;AAErF;;GAEG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,KAAsB,EAAE,KAA+B,EAAU,EAAE,WAC9F,OAAA,MAAA,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,0CAAE,KAAK,CAAA,EAAA,CAAC;AAEnC;;GAEG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAChC,KAAsB,EAC8D,EAAE;IACtF,sDAAsD;IACtD,OAAO,KAAK,CAAC,eAAe,CAAC;IAC7B,OAAO,SAAS,CAAC;AACnB,CAAC,CAAC;AAEF,eAAe;AACf,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,KAAsB,EAAE,KAA+B,EAAsB,EAAE;;IACjH,0DAA0D;IAC1D,OAAO,MAAA,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,0CAAE,qBAAqB,CAAC;IACxD,OAAO,SAAS,CAAC;AACnB,CAAC,CAAC;AAEF,qDAAqD;AACrD,eAAe;AACf,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,KAAsB,EAAE,KAA+B,EAAgB,EAAE;;IACvG,OAAO,MAAA,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,0CAAE,eAAe,CAAC,YAAY,CAAC;AACjE,CAAC,CAAC;AAEF,eAAe;AACf,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,KAAsB,EAAE,KAA+B,EAA8B,EAAE;;IACjH,OAAO,MAAA,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,0CAAE,eAAe,CAAC,QAAQ,CAAC;AAC7D,CAAC,CAAC;AAEF,eAAe;AACf,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,KAAsB,EAAE,KAA+B,EAAuB,EAAE;;IAChH,OAAO,MAAA,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,0CAAE,eAAe,CAAC,uBAAuB,CAAC;AAC5E,CAAC,CAAC;AAEF,eAAe;AACf,MAAM,CAAC,MAAM,0BAA0B,GAAG,CACxC,KAAsB,EACtB,KAA+B,EACV,EAAE;;IACvB,OAAO,MAAA,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,0CAAE,eAAe,CAAC,uBAAuB,CAAC;AAC5E,CAAC,CAAC;AAEF,eAAe;AACf,MAAM,CAAC,MAAM,yBAAyB,GAAG,CACvC,KAAsB,EACtB,KAA+B,EACQ,EAAE;;IACzC,OAAO,MAAA,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,0CAAE,eAAe,CAAC,sBAAmD,CAAC;AACxG,CAAC,CAAC;AAEF,eAAe;AACf,MAAM,CAAC,MAAM,wBAAwB,GAAG,CACtC,KAAsB,EACtB,KAA+B,EACO,EAAE;;IACxC,OAAO,MAAA,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,0CAAE,eAAe,CAAC,qBAAiD,CAAC;AACtG,CAAC,CAAC;AAEF,eAAe;AACf,MAAM,CAAC,MAAM,4BAA4B,GAAG,CAC1C,KAAsB,EACtB,KAA+B,EACU,EAAE;;IAC3C,OAAO,MAAA,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,0CAAE,eAAe,CAAC,yBAAwD,CAAC;AAC7G,CAAC,CAAC;AAEF,eAAe;AACf,MAAM,CAAC,MAAM,2BAA2B,GAAG,CACzC,KAAsB,EACtB,KAA+B,EACS,EAAE;;IAC1C,OAAO,MAAA,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,0CAAE,eAAe,CAAC,wBAAsD,CAAC;AAC3G,CAAC,CAAC;AAEF,2DAA2D;AAC3D,eAAe;AACf,MAAM,CAAC,MAAM,yBAAyB,GAAG,CACvC,KAAsB,EACtB,KAA+B,EACI,EAAE;;IACrC,OAAO,MAAA,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,0CAAE,sBAAsB,CAAC;AAC3D,CAAC,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\nimport { DominantSpeakersInfo } from '@azure/communication-calling';\n\nimport { ParticipantCapabilities } from '@azure/communication-calling';\n/* @conditional-compile-remove(unsupported-browser) */\nimport { EnvironmentInfo } from '@azure/communication-calling';\nimport { ParticipantRole } from '@azure/communication-calling';\nimport { toFlatCommunicationIdentifier } from '@internal/acs-ui-common';\nimport {\n CallClientState,\n DeviceManagerState,\n RemoteParticipantState,\n LocalVideoStreamState,\n CallErrors,\n DiagnosticsCallFeatureState,\n SpotlightCallFeatureState\n} from '@internal/calling-stateful-client';\nimport { ReactionState } from '@internal/calling-stateful-client';\nimport { CaptionsInfo } from '@internal/calling-stateful-client';\n/* @conditional-compile-remove(acs-close-captions) */\nimport { CaptionsKind } from '@azure/communication-calling';\nimport { RaisedHandState } from '@internal/calling-stateful-client';\nimport { _SupportedCaptionLanguage, _SupportedSpokenLanguage } from '@internal/react-components';\n/* @conditional-compile-remove(teams-meeting-conference) */\nimport { ConferencePhoneInfo } from '@internal/calling-stateful-client';\n\n/**\n * Common props used to reference calling declarative client state.\n *\n * @public\n */\nexport type CallingBaseSelectorProps = {\n callId: string;\n};\n\n/**\n * @private\n */\nexport const getDeviceManager = (state: CallClientState): DeviceManagerState => state.deviceManager;\n\n/**\n * @private\n */\nexport const getRole = (state: CallClientState, props: CallingBaseSelectorProps): ParticipantRole | undefined => {\n return state.calls[props.callId]?.role;\n};\n\n/**\n * @private\n */\nexport const isHideAttendeeNamesEnabled = (state: CallClientState, props: CallingBaseSelectorProps): boolean => {\n /* @conditional-compile-remove(hide-attendee-name) */\n return state.calls[props.callId]?.hideAttendeeNames ?? false;\n return false;\n};\n\n/**\n * @private\n */\nexport const getCapabilities = (\n state: CallClientState,\n props: CallingBaseSelectorProps\n): ParticipantCapabilities | undefined => state.calls[props.callId]?.capabilitiesFeature?.capabilities;\n\n/**\n * @private\n */\nexport const getCallExists = (state: CallClientState, props: CallingBaseSelectorProps): boolean =>\n !!state.calls[props.callId];\n\n/**\n * @private\n */\nexport const getDominantSpeakers = (\n state: CallClientState,\n props: CallingBaseSelectorProps\n): undefined | DominantSpeakersInfo => state.calls[props.callId]?.dominantSpeakers;\n\n/**\n * @private\n */\nexport const getRemoteParticipants = (\n state: CallClientState,\n props: CallingBaseSelectorProps\n):\n | {\n [keys: string]: RemoteParticipantState;\n }\n | undefined => {\n return state.calls[props.callId]?.remoteParticipants;\n};\n\n/**\n * @private\n */\nexport const getLocalParticipantRaisedHand = (\n state: CallClientState,\n props: CallingBaseSelectorProps\n): RaisedHandState | undefined => {\n return state.calls[props.callId]?.raiseHand?.localParticipantRaisedHand;\n};\n\n/**\n * @private\n */\nexport const getSpotlightCallFeature = (\n state: CallClientState,\n props: CallingBaseSelectorProps\n): SpotlightCallFeatureState | undefined => {\n return state.calls[props.callId]?.spotlight;\n};\n\n/**\n * @private\n */\nexport const getLocalParticipantReactionState = (\n state: CallClientState,\n props: CallingBaseSelectorProps\n): ReactionState | undefined => {\n return state.calls[props.callId]?.localParticipantReaction;\n};\n\n/**\n * @private\n */\nexport const getIsScreenSharingOn = (state: CallClientState, props: CallingBaseSelectorProps): boolean | undefined =>\n state.calls[props.callId]?.isScreenSharingOn;\n\n/**\n * @private\n */\nexport const getIsMuted = (state: CallClientState, props: CallingBaseSelectorProps): boolean | undefined =>\n state.calls[props.callId]?.isMuted;\n\n/**\n * @private\n */\nexport const getOptimalVideoCount = (state: CallClientState, props: CallingBaseSelectorProps): number | undefined =>\n state.calls[props.callId]?.optimalVideoCount.maxRemoteVideoStreams;\n\n/**\n * @private\n */\nexport const getLocalVideoStreams = (\n state: CallClientState,\n props: CallingBaseSelectorProps\n): LocalVideoStreamState[] | undefined => state.calls[props.callId]?.localVideoStreams;\n\n/**\n * @private\n */\nexport const getScreenShareRemoteParticipant = (\n state: CallClientState,\n props: CallingBaseSelectorProps\n): string | undefined => state.calls[props.callId]?.screenShareRemoteParticipant;\n\n/**\n * @private\n */\nexport const getDisplayName = (state: CallClientState): string | undefined => state.callAgent?.displayName;\n\n/**\n * @private\n */\nexport const getIdentifier = (state: CallClientState): string => toFlatCommunicationIdentifier(state.userId);\n\n/**\n * @private\n */\nexport const getLatestErrors = (state: CallClientState): CallErrors => state.latestErrors;\n\n/**\n * @private\n */\nexport const getDiagnostics = (\n state: CallClientState,\n props: CallingBaseSelectorProps\n): DiagnosticsCallFeatureState | undefined => state.calls[props.callId]?.diagnostics;\n\n/**\n * @private\n */\nexport const getCallState = (state: CallClientState, props: CallingBaseSelectorProps): string =>\n state.calls[props.callId]?.state;\n\n/**\n * @private\n */\nexport const getEnvironmentInfo = (\n state: CallClientState\n): undefined | /* @conditional-compile-remove(unsupported-browser) */ EnvironmentInfo => {\n /* @conditional-compile-remove(unsupported-browser) */\n return state.environmentInfo;\n return undefined;\n};\n\n/** @private */\nexport const getParticipantCount = (state: CallClientState, props: CallingBaseSelectorProps): number | undefined => {\n /* @conditional-compile-remove(total-participant-count) */\n return state.calls[props.callId]?.totalParticipantCount;\n return undefined;\n};\n\n/* @conditional-compile-remove(acs-close-captions) */\n/** @private */\nexport const getCaptionsKind = (state: CallClientState, props: CallingBaseSelectorProps): CaptionsKind => {\n return state.calls[props.callId]?.captionsFeature.captionsKind;\n};\n\n/** @private */\nexport const getCaptions = (state: CallClientState, props: CallingBaseSelectorProps): CaptionsInfo[] | undefined => {\n return state.calls[props.callId]?.captionsFeature.captions;\n};\n\n/** @private */\nexport const getCaptionsStatus = (state: CallClientState, props: CallingBaseSelectorProps): boolean | undefined => {\n return state.calls[props.callId]?.captionsFeature.isCaptionsFeatureActive;\n};\n\n/** @private */\nexport const getStartCaptionsInProgress = (\n state: CallClientState,\n props: CallingBaseSelectorProps\n): boolean | undefined => {\n return state.calls[props.callId]?.captionsFeature.startCaptionsInProgress;\n};\n\n/** @private */\nexport const getCurrentCaptionLanguage = (\n state: CallClientState,\n props: CallingBaseSelectorProps\n): _SupportedCaptionLanguage | undefined => {\n return state.calls[props.callId]?.captionsFeature.currentCaptionLanguage as _SupportedCaptionLanguage;\n};\n\n/** @private */\nexport const getCurrentSpokenLanguage = (\n state: CallClientState,\n props: CallingBaseSelectorProps\n): _SupportedSpokenLanguage | undefined => {\n return state.calls[props.callId]?.captionsFeature.currentSpokenLanguage as _SupportedSpokenLanguage;\n};\n\n/** @private */\nexport const getSupportedCaptionLanguages = (\n state: CallClientState,\n props: CallingBaseSelectorProps\n): _SupportedCaptionLanguage[] | undefined => {\n return state.calls[props.callId]?.captionsFeature.supportedCaptionLanguages as _SupportedCaptionLanguage[];\n};\n\n/** @private */\nexport const getSupportedSpokenLanguages = (\n state: CallClientState,\n props: CallingBaseSelectorProps\n): _SupportedSpokenLanguage[] | undefined => {\n return state.calls[props.callId]?.captionsFeature.supportedSpokenLanguages as _SupportedSpokenLanguage[];\n};\n\n/* @conditional-compile-remove(teams-meeting-conference) */\n/** @private */\nexport const getTeamsMeetingConference = (\n state: CallClientState,\n props: CallingBaseSelectorProps\n): ConferencePhoneInfo[] | undefined => {\n return state.calls[props.callId]?.teamsMeetingConference;\n};\n"]}
|
@@ -3,7 +3,7 @@
|
|
3
3
|
/* @conditional-compile-remove(notifications) */
|
4
4
|
import { getDeviceManager, getDiagnostics, getLatestErrors, getEnvironmentInfo } from './baseSelectors';
|
5
5
|
/* @conditional-compile-remove(notifications) */
|
6
|
-
import {
|
6
|
+
import { getTeamsMeetingConference } from './baseSelectors';
|
7
7
|
/* @conditional-compile-remove(notifications) */
|
8
8
|
import { createSelector } from 'reselect';
|
9
9
|
/* @conditional-compile-remove(notifications) */
|
@@ -23,7 +23,7 @@ export const notificationStackSelector = createSelector([
|
|
23
23
|
getDiagnostics,
|
24
24
|
getDeviceManager,
|
25
25
|
getEnvironmentInfo,
|
26
|
-
/* @conditional-compile-remove(teams-meeting-conference) */
|
26
|
+
/* @conditional-compile-remove(teams-meeting-conference) */ getTeamsMeetingConference
|
27
27
|
], (latestErrors, diagnostics, deviceManager, environmentInfo,
|
28
28
|
/* @conditional-compile-remove(teams-meeting-conference) */ meetingConference) => {
|
29
29
|
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"notificationStackSelector.js","sourceRoot":"","sources":["../../../../../calling-component-bindings/src/notificationStackSelector.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n/* @conditional-compile-remove(notifications) */\nimport {\n CallingBaseSelectorProps,\n getDeviceManager,\n getDiagnostics,\n getLatestErrors,\n getEnvironmentInfo\n} from './baseSelectors';\n/* @conditional-compile-remove(notifications) */\nimport { getMeetingConferencePhones } from './baseSelectors';\n/* @conditional-compile-remove(notifications) */\nimport { ActiveNotification, NotificationType } from '@internal/react-components';\n/* @conditional-compile-remove(notifications) */\nimport { createSelector } from 'reselect';\n/* @conditional-compile-remove(notifications) */\nimport { CallClientState, CallErrors, CallErrorTarget } from '@internal/calling-stateful-client';\n/* @conditional-compile-remove(notifications) */\nimport { DiagnosticQuality } from '@azure/communication-calling';\n/* @conditional-compile-remove(notifications) */\n/**\n * Selector type for {@link Notification} component.\n *\n * @public\n */\nexport type NotificationStackSelector = (\n state: CallClientState,\n props: CallingBaseSelectorProps\n) => {\n activeErrorMessages: ActiveNotification[];\n activeNotifications: ActiveNotification[];\n};\n/* @conditional-compile-remove(notifications) */\n/**\n * Select the active errors from the state for the `Notification` component.\n *\n * Invariants:\n * - `ErrorType` is never repeated in the returned errors.\n * - Errors are returned in a fixed order by `ErrorType`.\n *\n * @public\n */\nexport const notificationStackSelector: NotificationStackSelector = createSelector(\n [\n getLatestErrors,\n getDiagnostics,\n getDeviceManager,\n getEnvironmentInfo,\n /* @conditional-compile-remove(teams-meeting-conference) */ getMeetingConferencePhones\n ],\n (\n latestErrors: CallErrors,\n diagnostics,\n deviceManager,\n environmentInfo,\n /* @conditional-compile-remove(teams-meeting-conference) */ meetingConference\n ): { activeErrorMessages: ActiveNotification[]; activeNotifications: ActiveNotification[] } => {\n // The order in which the errors are returned is significant: The `Notification` shows errors on the UI in that order.\n // There are several options for the ordering:\n // - Sorted by when the errors happened (latest first / oldest first).\n // - Stable sort by error type.\n //\n // We chose to stable sort by error type: We intend to show only a small number of errors on the UI and we do not\n // have timestamps for errors.\n const activeErrorMessages: ActiveNotification[] = [];\n\n const isSafari = (): boolean => {\n /* @conditional-compile-remove(calling-environment-info) */\n return environmentInfo?.environment.browser === 'safari';\n return /^((?!chrome|android|crios|fxios).)*safari/i.test(navigator.userAgent);\n };\n\n const isMacOS = (): boolean => {\n /* @conditional-compile-remove(calling-environment-info) */\n return environmentInfo?.environment.platform === 'mac';\n return false;\n };\n\n // Errors reported via diagnostics are more reliable than from API method failures, so process those first.\n let isTeamsMeetingWithPhones = false;\n /* @conditional-compile-remove(teams-meeting-conference) */\n if (meetingConference && meetingConference.length > 0) {\n isTeamsMeetingWithPhones = true;\n }\n if (\n diagnostics?.network.latest.networkReceiveQuality?.value === DiagnosticQuality.Bad ||\n diagnostics?.network.latest.networkReceiveQuality?.value === DiagnosticQuality.Poor\n ) {\n if (isTeamsMeetingWithPhones) {\n activeErrorMessages.push({ type: 'teamsMeetingCallNetworkQualityLow' });\n } else {\n activeErrorMessages.push({ type: 'callNetworkQualityLow' });\n }\n }\n if (diagnostics?.media.latest.noSpeakerDevicesEnumerated?.value === true) {\n activeErrorMessages.push({ type: 'callNoSpeakerFound' });\n }\n if (diagnostics?.media.latest.noMicrophoneDevicesEnumerated?.value === true) {\n activeErrorMessages.push({ type: 'callNoMicrophoneFound' });\n }\n if (deviceManager.deviceAccess?.audio === false && isSafari()) {\n activeErrorMessages.push({ type: 'callMicrophoneAccessDeniedSafari' });\n }\n if (deviceManager.deviceAccess?.audio === false && !isSafari()) {\n activeErrorMessages.push({ type: 'callMicrophoneAccessDenied' });\n }\n\n if (diagnostics?.media.latest.microphonePermissionDenied?.value === true && isMacOS()) {\n activeErrorMessages.push({ type: 'callMacOsMicrophoneAccessDenied' });\n } else if (diagnostics?.media.latest.microphonePermissionDenied?.value === true) {\n activeErrorMessages.push({ type: 'callMicrophoneAccessDenied' });\n }\n\n const microphoneMuteUnexpectedlyDiagnostic =\n diagnostics?.media.latest.microphoneMuteUnexpectedly || diagnostics?.media.latest.microphoneNotFunctioning;\n if (microphoneMuteUnexpectedlyDiagnostic) {\n if (microphoneMuteUnexpectedlyDiagnostic.value === DiagnosticQuality.Bad) {\n // Inform the user that microphone stopped working and inform them to start microphone again\n activeErrorMessages.push({ type: 'callMicrophoneMutedBySystem' });\n } else if (microphoneMuteUnexpectedlyDiagnostic.value === DiagnosticQuality.Good) {\n // Inform the user that microphone recovered\n activeErrorMessages.push({ type: 'callMicrophoneUnmutedBySystem' });\n }\n }\n\n const cameraStoppedUnexpectedlyDiagnostic = diagnostics?.media.latest.cameraStoppedUnexpectedly;\n if (cameraStoppedUnexpectedlyDiagnostic) {\n if (cameraStoppedUnexpectedlyDiagnostic.value === DiagnosticQuality.Bad) {\n // Inform the user that camera stopped working and inform them to start video again\n activeErrorMessages.push({ type: 'callVideoStoppedBySystem' });\n } else if (cameraStoppedUnexpectedlyDiagnostic.value === DiagnosticQuality.Good) {\n // Inform the user that camera recovered\n activeErrorMessages.push({ type: 'callVideoRecoveredBySystem' });\n }\n }\n if (deviceManager.deviceAccess?.video === false && isSafari()) {\n activeErrorMessages.push({ type: 'callCameraAccessDeniedSafari' });\n } else if (deviceManager.deviceAccess?.video === false) {\n activeErrorMessages.push({ type: 'callCameraAccessDenied' });\n } else {\n if (diagnostics?.media.latest.cameraFreeze?.value === true) {\n activeErrorMessages.push({ type: 'cameraFrozenForRemoteParticipants' });\n }\n }\n\n /**\n * show the Mac specific strings if the platform is detected as mac\n */\n if (diagnostics?.media.latest.cameraPermissionDenied?.value === true && isMacOS()) {\n activeErrorMessages.push({ type: 'callMacOsCameraAccessDenied' });\n }\n\n /**\n * This UFD only works on mac still so we should only see it fire on mac.\n */\n if (diagnostics?.media.latest.screenshareRecordingDisabled?.value === true && isMacOS()) {\n activeErrorMessages.push({ type: 'callMacOsScreenShareAccessDenied' });\n } else if (diagnostics?.media.latest.screenshareRecordingDisabled?.value === true) {\n activeErrorMessages.push({ type: 'startScreenShareGeneric' });\n }\n\n // Prefer to show errors with privacy implications.\n appendActiveErrorIfDefined(activeErrorMessages, latestErrors, 'Call.stopVideo', 'stopVideoGeneric');\n appendActiveErrorIfDefined(activeErrorMessages, latestErrors, 'Call.mute', 'muteGeneric');\n appendActiveErrorIfDefined(activeErrorMessages, latestErrors, 'Call.stopScreenSharing', 'stopScreenShareGeneric');\n\n if (\n latestErrors['Call.startVideo']?.message === 'Call.startVideo: Video operation failure SourceUnavailableError'\n ) {\n appendActiveErrorIfDefined(activeErrorMessages, latestErrors, 'Call.startVideo', 'callCameraAlreadyInUse');\n } else if (\n latestErrors['Call.startVideo']?.message === 'Call.startVideo: Video operation failure permissionDeniedError'\n ) {\n appendActiveErrorIfDefined(activeErrorMessages, latestErrors, 'Call.startVideo', 'callCameraAccessDenied');\n } else {\n appendActiveErrorIfDefined(activeErrorMessages, latestErrors, 'Call.startVideo', 'startVideoGeneric');\n }\n\n appendActiveErrorIfDefined(activeErrorMessages, latestErrors, 'Call.unmute', 'unmuteGeneric');\n\n /* @conditional-compile-remove(soft-mute) */\n appendActiveErrorIfDefined(activeErrorMessages, latestErrors, 'Call.mutedByOthers', 'mutedByRemoteParticipant');\n\n appendActiveErrorIfDefined(\n activeErrorMessages,\n latestErrors,\n 'VideoEffectsFeature.startEffects',\n 'unableToStartVideoEffect'\n );\n\n if (latestErrors['CallAgent.join']?.message === 'CallAgent.join: Invalid meeting link') {\n appendActiveErrorIfDefined(\n activeErrorMessages,\n latestErrors,\n 'CallAgent.join',\n 'failedToJoinCallInvalidMeetingLink'\n );\n } else {\n appendActiveErrorIfDefined(activeErrorMessages, latestErrors, 'CallAgent.join', 'failedToJoinCallGeneric');\n }\n\n if (\n latestErrors['Call.feature']?.message.match(\n /Call\\.feature: startSpotlight failed\\. \\d+ is the max number of participants that can be Spotlighted/g\n )\n ) {\n appendActiveErrorIfDefined(\n activeErrorMessages,\n latestErrors,\n 'Call.feature',\n 'startSpotlightWhileMaxParticipantsAreSpotlighted'\n );\n }\n\n //below is for active notifications\n const activeNotifications: ActiveNotification[] = [];\n if (diagnostics?.media.latest.speakingWhileMicrophoneIsMuted?.value) {\n activeNotifications.push({ type: 'speakingWhileMuted', timestamp: new Date(Date.now()), autoDismiss: true });\n }\n return { activeErrorMessages: activeErrorMessages, activeNotifications: activeNotifications };\n }\n);\n/* @conditional-compile-remove(notifications) */\nconst appendActiveErrorIfDefined = (\n activeErrorMessages: ActiveNotification[],\n latestErrors: CallErrors,\n target: CallErrorTarget,\n activeErrorType: NotificationType\n): void => {\n if (latestErrors[target] === undefined) {\n return;\n }\n activeErrorMessages.push({\n type: activeErrorType,\n timestamp: latestErrors[target].timestamp\n });\n};\n"]}
|
1
|
+
{"version":3,"file":"notificationStackSelector.js","sourceRoot":"","sources":["../../../../../calling-component-bindings/src/notificationStackSelector.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAClC,gDAAgD;AAChD,OAAO,EAEL,gBAAgB,EAChB,cAAc,EACd,eAAe,EACf,kBAAkB,EACnB,MAAM,iBAAiB,CAAC;AACzB,gDAAgD;AAChD,OAAO,EAAE,yBAAyB,EAAE,MAAM,iBAAiB,CAAC;AAG5D,gDAAgD;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAG1C,gDAAgD;AAChD,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AAcjE,gDAAgD;AAChD;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAA8B,cAAc,CAChF;IACE,eAAe;IACf,cAAc;IACd,gBAAgB;IAChB,kBAAkB;IAClB,2DAA2D,CAAC,yBAAyB;CACtF,EACD,CACE,YAAwB,EACxB,WAAW,EACX,aAAa,EACb,eAAe;AACf,2DAA2D,CAAC,iBAAiB,EACa,EAAE;;IAC5F,sHAAsH;IACtH,8CAA8C;IAC9C,wEAAwE;IACxE,iCAAiC;IACjC,EAAE;IACF,iHAAiH;IACjH,8BAA8B;IAC9B,MAAM,mBAAmB,GAAyB,EAAE,CAAC;IAErD,MAAM,QAAQ,GAAG,GAAY,EAAE;QAC7B,2DAA2D;QAC3D,OAAO,CAAA,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAE,WAAW,CAAC,OAAO,MAAK,QAAQ,CAAC;QACzD,OAAO,4CAA4C,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;IAChF,CAAC,CAAC;IAEF,MAAM,OAAO,GAAG,GAAY,EAAE;QAC5B,2DAA2D;QAC3D,OAAO,CAAA,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAE,WAAW,CAAC,QAAQ,MAAK,KAAK,CAAC;QACvD,OAAO,KAAK,CAAC;IACf,CAAC,CAAC;IAEF,2GAA2G;IAC3G,IAAI,wBAAwB,GAAG,KAAK,CAAC;IACrC,2DAA2D;IAC3D,IAAI,iBAAiB,IAAI,iBAAiB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACtD,wBAAwB,GAAG,IAAI,CAAC;IAClC,CAAC;IACD,IACE,CAAA,MAAA,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,OAAO,CAAC,MAAM,CAAC,qBAAqB,0CAAE,KAAK,MAAK,iBAAiB,CAAC,GAAG;QAClF,CAAA,MAAA,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,OAAO,CAAC,MAAM,CAAC,qBAAqB,0CAAE,KAAK,MAAK,iBAAiB,CAAC,IAAI,EACnF,CAAC;QACD,IAAI,wBAAwB,EAAE,CAAC;YAC7B,mBAAmB,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,mCAAmC,EAAE,CAAC,CAAC;QAC1E,CAAC;aAAM,CAAC;YACN,mBAAmB,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,uBAAuB,EAAE,CAAC,CAAC;QAC9D,CAAC;IACH,CAAC;IACD,IAAI,CAAA,MAAA,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,KAAK,CAAC,MAAM,CAAC,0BAA0B,0CAAE,KAAK,MAAK,IAAI,EAAE,CAAC;QACzE,mBAAmB,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,oBAAoB,EAAE,CAAC,CAAC;IAC3D,CAAC;IACD,IAAI,CAAA,MAAA,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,KAAK,CAAC,MAAM,CAAC,6BAA6B,0CAAE,KAAK,MAAK,IAAI,EAAE,CAAC;QAC5E,mBAAmB,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,uBAAuB,EAAE,CAAC,CAAC;IAC9D,CAAC;IACD,IAAI,CAAA,MAAA,aAAa,CAAC,YAAY,0CAAE,KAAK,MAAK,KAAK,IAAI,QAAQ,EAAE,EAAE,CAAC;QAC9D,mBAAmB,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,kCAAkC,EAAE,CAAC,CAAC;IACzE,CAAC;IACD,IAAI,CAAA,MAAA,aAAa,CAAC,YAAY,0CAAE,KAAK,MAAK,KAAK,IAAI,CAAC,QAAQ,EAAE,EAAE,CAAC;QAC/D,mBAAmB,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,4BAA4B,EAAE,CAAC,CAAC;IACnE,CAAC;IAED,IAAI,CAAA,MAAA,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,KAAK,CAAC,MAAM,CAAC,0BAA0B,0CAAE,KAAK,MAAK,IAAI,IAAI,OAAO,EAAE,EAAE,CAAC;QACtF,mBAAmB,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,iCAAiC,EAAE,CAAC,CAAC;IACxE,CAAC;SAAM,IAAI,CAAA,MAAA,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,KAAK,CAAC,MAAM,CAAC,0BAA0B,0CAAE,KAAK,MAAK,IAAI,EAAE,CAAC;QAChF,mBAAmB,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,4BAA4B,EAAE,CAAC,CAAC;IACnE,CAAC;IAED,MAAM,oCAAoC,GACxC,CAAA,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,KAAK,CAAC,MAAM,CAAC,0BAA0B,MAAI,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,KAAK,CAAC,MAAM,CAAC,wBAAwB,CAAA,CAAC;IAC7G,IAAI,oCAAoC,EAAE,CAAC;QACzC,IAAI,oCAAoC,CAAC,KAAK,KAAK,iBAAiB,CAAC,GAAG,EAAE,CAAC;YACzE,4FAA4F;YAC5F,mBAAmB,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,6BAA6B,EAAE,CAAC,CAAC;QACpE,CAAC;aAAM,IAAI,oCAAoC,CAAC,KAAK,KAAK,iBAAiB,CAAC,IAAI,EAAE,CAAC;YACjF,4CAA4C;YAC5C,mBAAmB,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,+BAA+B,EAAE,CAAC,CAAC;QACtE,CAAC;IACH,CAAC;IAED,MAAM,mCAAmC,GAAG,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,KAAK,CAAC,MAAM,CAAC,yBAAyB,CAAC;IAChG,IAAI,mCAAmC,EAAE,CAAC;QACxC,IAAI,mCAAmC,CAAC,KAAK,KAAK,iBAAiB,CAAC,GAAG,EAAE,CAAC;YACxE,mFAAmF;YACnF,mBAAmB,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,0BAA0B,EAAE,CAAC,CAAC;QACjE,CAAC;aAAM,IAAI,mCAAmC,CAAC,KAAK,KAAK,iBAAiB,CAAC,IAAI,EAAE,CAAC;YAChF,wCAAwC;YACxC,mBAAmB,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,4BAA4B,EAAE,CAAC,CAAC;QACnE,CAAC;IACH,CAAC;IACD,IAAI,CAAA,MAAA,aAAa,CAAC,YAAY,0CAAE,KAAK,MAAK,KAAK,IAAI,QAAQ,EAAE,EAAE,CAAC;QAC9D,mBAAmB,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,8BAA8B,EAAE,CAAC,CAAC;IACrE,CAAC;SAAM,IAAI,CAAA,MAAA,aAAa,CAAC,YAAY,0CAAE,KAAK,MAAK,KAAK,EAAE,CAAC;QACvD,mBAAmB,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,wBAAwB,EAAE,CAAC,CAAC;IAC/D,CAAC;SAAM,CAAC;QACN,IAAI,CAAA,MAAA,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,KAAK,CAAC,MAAM,CAAC,YAAY,0CAAE,KAAK,MAAK,IAAI,EAAE,CAAC;YAC3D,mBAAmB,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,mCAAmC,EAAE,CAAC,CAAC;QAC1E,CAAC;IACH,CAAC;IAED;;OAEG;IACH,IAAI,CAAA,MAAA,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,KAAK,CAAC,MAAM,CAAC,sBAAsB,0CAAE,KAAK,MAAK,IAAI,IAAI,OAAO,EAAE,EAAE,CAAC;QAClF,mBAAmB,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,6BAA6B,EAAE,CAAC,CAAC;IACpE,CAAC;IAED;;OAEG;IACH,IAAI,CAAA,MAAA,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,KAAK,CAAC,MAAM,CAAC,4BAA4B,0CAAE,KAAK,MAAK,IAAI,IAAI,OAAO,EAAE,EAAE,CAAC;QACxF,mBAAmB,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,kCAAkC,EAAE,CAAC,CAAC;IACzE,CAAC;SAAM,IAAI,CAAA,MAAA,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,KAAK,CAAC,MAAM,CAAC,4BAA4B,0CAAE,KAAK,MAAK,IAAI,EAAE,CAAC;QAClF,mBAAmB,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,yBAAyB,EAAE,CAAC,CAAC;IAChE,CAAC;IAED,mDAAmD;IACnD,0BAA0B,CAAC,mBAAmB,EAAE,YAAY,EAAE,gBAAgB,EAAE,kBAAkB,CAAC,CAAC;IACpG,0BAA0B,CAAC,mBAAmB,EAAE,YAAY,EAAE,WAAW,EAAE,aAAa,CAAC,CAAC;IAC1F,0BAA0B,CAAC,mBAAmB,EAAE,YAAY,EAAE,wBAAwB,EAAE,wBAAwB,CAAC,CAAC;IAElH,IACE,CAAA,MAAA,YAAY,CAAC,iBAAiB,CAAC,0CAAE,OAAO,MAAK,iEAAiE,EAC9G,CAAC;QACD,0BAA0B,CAAC,mBAAmB,EAAE,YAAY,EAAE,iBAAiB,EAAE,wBAAwB,CAAC,CAAC;IAC7G,CAAC;SAAM,IACL,CAAA,MAAA,YAAY,CAAC,iBAAiB,CAAC,0CAAE,OAAO,MAAK,gEAAgE,EAC7G,CAAC;QACD,0BAA0B,CAAC,mBAAmB,EAAE,YAAY,EAAE,iBAAiB,EAAE,wBAAwB,CAAC,CAAC;IAC7G,CAAC;SAAM,CAAC;QACN,0BAA0B,CAAC,mBAAmB,EAAE,YAAY,EAAE,iBAAiB,EAAE,mBAAmB,CAAC,CAAC;IACxG,CAAC;IAED,0BAA0B,CAAC,mBAAmB,EAAE,YAAY,EAAE,aAAa,EAAE,eAAe,CAAC,CAAC;IAE9F,4CAA4C;IAC5C,0BAA0B,CAAC,mBAAmB,EAAE,YAAY,EAAE,oBAAoB,EAAE,0BAA0B,CAAC,CAAC;IAEhH,0BAA0B,CACxB,mBAAmB,EACnB,YAAY,EACZ,kCAAkC,EAClC,0BAA0B,CAC3B,CAAC;IAEF,IAAI,CAAA,MAAA,YAAY,CAAC,gBAAgB,CAAC,0CAAE,OAAO,MAAK,sCAAsC,EAAE,CAAC;QACvF,0BAA0B,CACxB,mBAAmB,EACnB,YAAY,EACZ,gBAAgB,EAChB,oCAAoC,CACrC,CAAC;IACJ,CAAC;SAAM,CAAC;QACN,0BAA0B,CAAC,mBAAmB,EAAE,YAAY,EAAE,gBAAgB,EAAE,yBAAyB,CAAC,CAAC;IAC7G,CAAC;IAED,IACE,MAAA,YAAY,CAAC,cAAc,CAAC,0CAAE,OAAO,CAAC,KAAK,CACzC,uGAAuG,CACxG,EACD,CAAC;QACD,0BAA0B,CACxB,mBAAmB,EACnB,YAAY,EACZ,cAAc,EACd,kDAAkD,CACnD,CAAC;IACJ,CAAC;IAED,mCAAmC;IACnC,MAAM,mBAAmB,GAAyB,EAAE,CAAC;IACrD,IAAI,MAAA,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,KAAK,CAAC,MAAM,CAAC,8BAA8B,0CAAE,KAAK,EAAE,CAAC;QACpE,mBAAmB,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,oBAAoB,EAAE,SAAS,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC;IAC/G,CAAC;IACD,OAAO,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,CAAC;AAChG,CAAC,CACF,CAAC;AACF,gDAAgD;AAChD,MAAM,0BAA0B,GAAG,CACjC,mBAAyC,EACzC,YAAwB,EACxB,MAAuB,EACvB,eAAiC,EAC3B,EAAE;IACR,IAAI,YAAY,CAAC,MAAM,CAAC,KAAK,SAAS,EAAE,CAAC;QACvC,OAAO;IACT,CAAC;IACD,mBAAmB,CAAC,IAAI,CAAC;QACvB,IAAI,EAAE,eAAe;QACrB,SAAS,EAAE,YAAY,CAAC,MAAM,CAAC,CAAC,SAAS;KAC1C,CAAC,CAAC;AACL,CAAC,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n/* @conditional-compile-remove(notifications) */\nimport {\n CallingBaseSelectorProps,\n getDeviceManager,\n getDiagnostics,\n getLatestErrors,\n getEnvironmentInfo\n} from './baseSelectors';\n/* @conditional-compile-remove(notifications) */\nimport { getTeamsMeetingConference } from './baseSelectors';\n/* @conditional-compile-remove(notifications) */\nimport { ActiveNotification, NotificationType } from '@internal/react-components';\n/* @conditional-compile-remove(notifications) */\nimport { createSelector } from 'reselect';\n/* @conditional-compile-remove(notifications) */\nimport { CallClientState, CallErrors, CallErrorTarget } from '@internal/calling-stateful-client';\n/* @conditional-compile-remove(notifications) */\nimport { DiagnosticQuality } from '@azure/communication-calling';\n/* @conditional-compile-remove(notifications) */\n/**\n * Selector type for {@link Notification} component.\n *\n * @public\n */\nexport type NotificationStackSelector = (\n state: CallClientState,\n props: CallingBaseSelectorProps\n) => {\n activeErrorMessages: ActiveNotification[];\n activeNotifications: ActiveNotification[];\n};\n/* @conditional-compile-remove(notifications) */\n/**\n * Select the active errors from the state for the `Notification` component.\n *\n * Invariants:\n * - `ErrorType` is never repeated in the returned errors.\n * - Errors are returned in a fixed order by `ErrorType`.\n *\n * @public\n */\nexport const notificationStackSelector: NotificationStackSelector = createSelector(\n [\n getLatestErrors,\n getDiagnostics,\n getDeviceManager,\n getEnvironmentInfo,\n /* @conditional-compile-remove(teams-meeting-conference) */ getTeamsMeetingConference\n ],\n (\n latestErrors: CallErrors,\n diagnostics,\n deviceManager,\n environmentInfo,\n /* @conditional-compile-remove(teams-meeting-conference) */ meetingConference\n ): { activeErrorMessages: ActiveNotification[]; activeNotifications: ActiveNotification[] } => {\n // The order in which the errors are returned is significant: The `Notification` shows errors on the UI in that order.\n // There are several options for the ordering:\n // - Sorted by when the errors happened (latest first / oldest first).\n // - Stable sort by error type.\n //\n // We chose to stable sort by error type: We intend to show only a small number of errors on the UI and we do not\n // have timestamps for errors.\n const activeErrorMessages: ActiveNotification[] = [];\n\n const isSafari = (): boolean => {\n /* @conditional-compile-remove(calling-environment-info) */\n return environmentInfo?.environment.browser === 'safari';\n return /^((?!chrome|android|crios|fxios).)*safari/i.test(navigator.userAgent);\n };\n\n const isMacOS = (): boolean => {\n /* @conditional-compile-remove(calling-environment-info) */\n return environmentInfo?.environment.platform === 'mac';\n return false;\n };\n\n // Errors reported via diagnostics are more reliable than from API method failures, so process those first.\n let isTeamsMeetingWithPhones = false;\n /* @conditional-compile-remove(teams-meeting-conference) */\n if (meetingConference && meetingConference.length > 0) {\n isTeamsMeetingWithPhones = true;\n }\n if (\n diagnostics?.network.latest.networkReceiveQuality?.value === DiagnosticQuality.Bad ||\n diagnostics?.network.latest.networkReceiveQuality?.value === DiagnosticQuality.Poor\n ) {\n if (isTeamsMeetingWithPhones) {\n activeErrorMessages.push({ type: 'teamsMeetingCallNetworkQualityLow' });\n } else {\n activeErrorMessages.push({ type: 'callNetworkQualityLow' });\n }\n }\n if (diagnostics?.media.latest.noSpeakerDevicesEnumerated?.value === true) {\n activeErrorMessages.push({ type: 'callNoSpeakerFound' });\n }\n if (diagnostics?.media.latest.noMicrophoneDevicesEnumerated?.value === true) {\n activeErrorMessages.push({ type: 'callNoMicrophoneFound' });\n }\n if (deviceManager.deviceAccess?.audio === false && isSafari()) {\n activeErrorMessages.push({ type: 'callMicrophoneAccessDeniedSafari' });\n }\n if (deviceManager.deviceAccess?.audio === false && !isSafari()) {\n activeErrorMessages.push({ type: 'callMicrophoneAccessDenied' });\n }\n\n if (diagnostics?.media.latest.microphonePermissionDenied?.value === true && isMacOS()) {\n activeErrorMessages.push({ type: 'callMacOsMicrophoneAccessDenied' });\n } else if (diagnostics?.media.latest.microphonePermissionDenied?.value === true) {\n activeErrorMessages.push({ type: 'callMicrophoneAccessDenied' });\n }\n\n const microphoneMuteUnexpectedlyDiagnostic =\n diagnostics?.media.latest.microphoneMuteUnexpectedly || diagnostics?.media.latest.microphoneNotFunctioning;\n if (microphoneMuteUnexpectedlyDiagnostic) {\n if (microphoneMuteUnexpectedlyDiagnostic.value === DiagnosticQuality.Bad) {\n // Inform the user that microphone stopped working and inform them to start microphone again\n activeErrorMessages.push({ type: 'callMicrophoneMutedBySystem' });\n } else if (microphoneMuteUnexpectedlyDiagnostic.value === DiagnosticQuality.Good) {\n // Inform the user that microphone recovered\n activeErrorMessages.push({ type: 'callMicrophoneUnmutedBySystem' });\n }\n }\n\n const cameraStoppedUnexpectedlyDiagnostic = diagnostics?.media.latest.cameraStoppedUnexpectedly;\n if (cameraStoppedUnexpectedlyDiagnostic) {\n if (cameraStoppedUnexpectedlyDiagnostic.value === DiagnosticQuality.Bad) {\n // Inform the user that camera stopped working and inform them to start video again\n activeErrorMessages.push({ type: 'callVideoStoppedBySystem' });\n } else if (cameraStoppedUnexpectedlyDiagnostic.value === DiagnosticQuality.Good) {\n // Inform the user that camera recovered\n activeErrorMessages.push({ type: 'callVideoRecoveredBySystem' });\n }\n }\n if (deviceManager.deviceAccess?.video === false && isSafari()) {\n activeErrorMessages.push({ type: 'callCameraAccessDeniedSafari' });\n } else if (deviceManager.deviceAccess?.video === false) {\n activeErrorMessages.push({ type: 'callCameraAccessDenied' });\n } else {\n if (diagnostics?.media.latest.cameraFreeze?.value === true) {\n activeErrorMessages.push({ type: 'cameraFrozenForRemoteParticipants' });\n }\n }\n\n /**\n * show the Mac specific strings if the platform is detected as mac\n */\n if (diagnostics?.media.latest.cameraPermissionDenied?.value === true && isMacOS()) {\n activeErrorMessages.push({ type: 'callMacOsCameraAccessDenied' });\n }\n\n /**\n * This UFD only works on mac still so we should only see it fire on mac.\n */\n if (diagnostics?.media.latest.screenshareRecordingDisabled?.value === true && isMacOS()) {\n activeErrorMessages.push({ type: 'callMacOsScreenShareAccessDenied' });\n } else if (diagnostics?.media.latest.screenshareRecordingDisabled?.value === true) {\n activeErrorMessages.push({ type: 'startScreenShareGeneric' });\n }\n\n // Prefer to show errors with privacy implications.\n appendActiveErrorIfDefined(activeErrorMessages, latestErrors, 'Call.stopVideo', 'stopVideoGeneric');\n appendActiveErrorIfDefined(activeErrorMessages, latestErrors, 'Call.mute', 'muteGeneric');\n appendActiveErrorIfDefined(activeErrorMessages, latestErrors, 'Call.stopScreenSharing', 'stopScreenShareGeneric');\n\n if (\n latestErrors['Call.startVideo']?.message === 'Call.startVideo: Video operation failure SourceUnavailableError'\n ) {\n appendActiveErrorIfDefined(activeErrorMessages, latestErrors, 'Call.startVideo', 'callCameraAlreadyInUse');\n } else if (\n latestErrors['Call.startVideo']?.message === 'Call.startVideo: Video operation failure permissionDeniedError'\n ) {\n appendActiveErrorIfDefined(activeErrorMessages, latestErrors, 'Call.startVideo', 'callCameraAccessDenied');\n } else {\n appendActiveErrorIfDefined(activeErrorMessages, latestErrors, 'Call.startVideo', 'startVideoGeneric');\n }\n\n appendActiveErrorIfDefined(activeErrorMessages, latestErrors, 'Call.unmute', 'unmuteGeneric');\n\n /* @conditional-compile-remove(soft-mute) */\n appendActiveErrorIfDefined(activeErrorMessages, latestErrors, 'Call.mutedByOthers', 'mutedByRemoteParticipant');\n\n appendActiveErrorIfDefined(\n activeErrorMessages,\n latestErrors,\n 'VideoEffectsFeature.startEffects',\n 'unableToStartVideoEffect'\n );\n\n if (latestErrors['CallAgent.join']?.message === 'CallAgent.join: Invalid meeting link') {\n appendActiveErrorIfDefined(\n activeErrorMessages,\n latestErrors,\n 'CallAgent.join',\n 'failedToJoinCallInvalidMeetingLink'\n );\n } else {\n appendActiveErrorIfDefined(activeErrorMessages, latestErrors, 'CallAgent.join', 'failedToJoinCallGeneric');\n }\n\n if (\n latestErrors['Call.feature']?.message.match(\n /Call\\.feature: startSpotlight failed\\. \\d+ is the max number of participants that can be Spotlighted/g\n )\n ) {\n appendActiveErrorIfDefined(\n activeErrorMessages,\n latestErrors,\n 'Call.feature',\n 'startSpotlightWhileMaxParticipantsAreSpotlighted'\n );\n }\n\n //below is for active notifications\n const activeNotifications: ActiveNotification[] = [];\n if (diagnostics?.media.latest.speakingWhileMicrophoneIsMuted?.value) {\n activeNotifications.push({ type: 'speakingWhileMuted', timestamp: new Date(Date.now()), autoDismiss: true });\n }\n return { activeErrorMessages: activeErrorMessages, activeNotifications: activeNotifications };\n }\n);\n/* @conditional-compile-remove(notifications) */\nconst appendActiveErrorIfDefined = (\n activeErrorMessages: ActiveNotification[],\n latestErrors: CallErrors,\n target: CallErrorTarget,\n activeErrorType: NotificationType\n): void => {\n if (latestErrors[target] === undefined) {\n return;\n }\n activeErrorMessages.push({\n type: activeErrorType,\n timestamp: latestErrors[target].timestamp\n });\n};\n"]}
|
@@ -1,6 +1,6 @@
|
|
1
1
|
import { CallAgent } from '@azure/communication-calling';
|
2
|
-
import { IncomingCall } from '@azure/communication-calling';
|
3
2
|
import { CallContext } from './CallContext';
|
3
|
+
import { DeclarativeIncomingCall } from './IncomingCallDeclarative';
|
4
4
|
import { InternalCallContext } from './InternalCallContext';
|
5
5
|
/**
|
6
6
|
* @beta
|
@@ -11,9 +11,9 @@ export type IncomingCallManagement = {
|
|
11
11
|
/**
|
12
12
|
* @beta
|
13
13
|
* @Remark This attribute doesn't exist on the {@link @azure/communication-calling#CallAgent} interface.
|
14
|
-
* @returns readonly array of {@link
|
14
|
+
* @returns readonly array of {@link DeclarativeIncomingCall}
|
15
15
|
*/
|
16
|
-
incomingCalls: ReadonlyArray<
|
16
|
+
incomingCalls: ReadonlyArray<DeclarativeIncomingCall>;
|
17
17
|
};
|
18
18
|
/**
|
19
19
|
* @beta
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"CallAgentDeclarative.js","sourceRoot":"","sources":["../../../../../calling-stateful-client/src/CallAgentDeclarative.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;
|
1
|
+
{"version":3,"file":"CallAgentDeclarative.js","sourceRoot":"","sources":["../../../../../calling-stateful-client/src/CallAgentDeclarative.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { CallAgent } from '@azure/communication-calling';\nimport { clearCallRelatedState, DeclarativeCallCommon, ProxyCallAgentCommon } from './CallAgentDeclarativeCommon';\nimport { CallContext } from './CallContext';\nimport { callDeclaratify } from './CallDeclarative';\n/* @conditional-compile-remove(one-to-n-calling) */\nimport { DeclarativeIncomingCall } from './IncomingCallDeclarative';\nimport { InternalCallContext } from './InternalCallContext';\nimport { _isACSCall, _isACSCallAgent } from './TypeGuards';\nimport { CallAgentCommon, CallCommon } from './BetaToStableTypes';\n\n/* @conditional-compile-remove(one-to-n-calling) */\n/**\n * @beta\n * This contains a readonly array that returns all the active `incomingCalls`.\n * An active incoming call is a call that has not been answered, declined or disconnected.\n */\nexport type IncomingCallManagement = {\n /**\n * @beta\n * @Remark This attribute doesn't exist on the {@link @azure/communication-calling#CallAgent} interface.\n * @returns readonly array of {@link DeclarativeIncomingCall}\n */\n incomingCalls: ReadonlyArray<DeclarativeIncomingCall>;\n};\n\n/**\n * @beta\n * `DeclarativeCallAgent` extends and proxies the {@link @azure/communication-calling#CallAgent}\n */\nexport type DeclarativeCallAgent = CallAgent &\n /* @conditional-compile-remove(one-to-n-calling) */ IncomingCallManagement;\n\n/**\n * ProxyCallAgent proxies CallAgent and saves any returned state in the given context. It will subscribe to all state\n * updates in the CallAgent and in the contained Calls and RemoteParticipants. When dispose is called it will\n * unsubscribe from all state updates.\n */\nclass ProxyCallAgent extends ProxyCallAgentCommon implements ProxyHandler<DeclarativeCallAgent> {\n private _callAgent: CallAgent;\n\n constructor(callAgent: CallAgent, context: CallContext, internalContext: InternalCallContext) {\n super(context, internalContext);\n this._callAgent = callAgent;\n this.subscribe();\n }\n\n private subscribe = (): void => {\n this._callAgent.on('callsUpdated', this.callsUpdated);\n this._callAgent.on('incomingCall', this.incomingCall);\n\n // There could be scenario that when ProxyCallAgent is created that the given CallAgent already has Calls. In this\n // case we need to make sure to subscribe to those already existing Calls.\n for (const call of this._callAgent.calls) {\n this.addCall(call);\n }\n };\n\n protected unsubscribe = (): void => {\n this._callAgent.off('callsUpdated', this.callsUpdated);\n this._callAgent.off('incomingCall', this.incomingCall);\n\n this.unregisterSubscriber();\n };\n\n protected callDeclaratify(call: CallCommon, context: CallContext): DeclarativeCallCommon {\n if (_isACSCall(call)) {\n return callDeclaratify(call, context);\n }\n throw new Error('Not reachable code, DeclarativeCallAgent.callDeclaratify must be called with an ACS call.');\n }\n\n protected startCall(agent: CallAgentCommon, args: Parameters<CallAgent['startCall']>): CallCommon {\n if (_isACSCallAgent(agent)) {\n return agent.startCall(...args);\n }\n throw Error('Unreachable code, DeclarativeCallAgent.startCall must be called with an ACS callAgent.');\n }\n\n protected joinCall(agent: CallAgentCommon, args: Parameters<CallAgent['join']>): CallCommon {\n if (_isACSCallAgent(agent)) {\n return agent.join(...args);\n }\n throw Error('Unreachable code, DeclarativeCallAgent.joinCall must be called with an ACS callAgent.');\n }\n\n protected agentSubscribe(agent: CallAgentCommon, args: Parameters<CallAgent['on']>): void {\n if (_isACSCallAgent(agent)) {\n return agent.on(...args);\n }\n throw Error('Unreachable code, DeclarativeCallAgent.agentSubscribe must be called with an ACS callAgent.');\n }\n\n protected agentUnsubscribe(agent: CallAgentCommon, args: Parameters<CallAgent['off']>): void {\n if (_isACSCallAgent(agent)) {\n return agent.off(...args);\n }\n throw Error('Unreachable code, DeclarativeCallAgent.agentUnsubscribe must be called with an ACS callAgent.');\n }\n\n public get<P extends keyof CallAgent>(target: CallAgent, prop: P): any {\n return super.getCommon(target, prop);\n }\n}\n\n/**\n * Creates a declarative CallAgent by proxying CallAgent with ProxyCallAgent which will track state updates by updating\n * the given context.\n *\n * @param callAgent - CallAgent from SDK\n * @param context - CallContext from StatefulCallClient\n * @param internalContext- InternalCallContext from StatefulCallClient\n */\nexport const callAgentDeclaratify = (\n callAgent: CallAgent,\n context: CallContext,\n internalContext: InternalCallContext\n): DeclarativeCallAgent => {\n clearCallRelatedState(context, internalContext);\n return new Proxy(callAgent, new ProxyCallAgent(callAgent, context, internalContext)) as DeclarativeCallAgent;\n};\n"]}
|
@@ -23,7 +23,7 @@ export declare abstract class ProxyCallAgentCommon {
|
|
23
23
|
private _internalContext;
|
24
24
|
private _callSubscribers;
|
25
25
|
private _incomingCallSubscribers;
|
26
|
-
private
|
26
|
+
private _declarativeIncomingCalls;
|
27
27
|
private _declarativeCalls;
|
28
28
|
private _externalCallsUpdatedListeners;
|
29
29
|
constructor(context: CallContext, internalContext: InternalCallContext);
|
@@ -11,11 +11,9 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
11
11
|
};
|
12
12
|
import { CallSubscriber } from './CallSubscriber';
|
13
13
|
import { convertSdkCallToDeclarativeCall, convertSdkIncomingCallToDeclarativeIncomingCall } from './Converter';
|
14
|
+
import { incomingCallDeclaratify } from './IncomingCallDeclarative';
|
14
15
|
import { IncomingCallSubscriber } from './IncomingCallSubscriber';
|
15
16
|
import { disposeAllViews, disposeAllViewsFromCall } from './StreamUtils';
|
16
|
-
import { _isTeamsIncomingCall } from './TypeGuards';
|
17
|
-
import { incomingCallDeclaratify } from './IncomingCallDeclarative';
|
18
|
-
import { teamsIncomingCallDeclaratify } from './TeamsIncomingCallDeclarative';
|
19
17
|
/**
|
20
18
|
* ProxyCallAgent proxies CallAgent and saves any returned state in the given context. It will subscribe to all state
|
21
19
|
* updates in the CallAgent and in the contained Calls and RemoteParticipants. When dispose is called it will
|
@@ -34,7 +32,7 @@ export class ProxyCallAgentCommon {
|
|
34
32
|
incomingCallSubscriber.unsubscribe();
|
35
33
|
}
|
36
34
|
this._incomingCallSubscribers.clear();
|
37
|
-
this.
|
35
|
+
this._declarativeIncomingCalls.clear();
|
38
36
|
for (const [_, declarativeCall] of this._declarativeCalls.entries()) {
|
39
37
|
declarativeCall.unsubscribe();
|
40
38
|
}
|
@@ -75,7 +73,7 @@ export class ProxyCallAgentCommon {
|
|
75
73
|
incomingCallSubscriber.unsubscribe();
|
76
74
|
this._incomingCallSubscribers.delete(incomingCallId);
|
77
75
|
}
|
78
|
-
this.
|
76
|
+
this._declarativeIncomingCalls.delete(incomingCallId);
|
79
77
|
this._context.setIncomingCallEnded(incomingCallId, callEndReason);
|
80
78
|
};
|
81
79
|
this.incomingCall = ({ incomingCall }) => {
|
@@ -83,14 +81,8 @@ export class ProxyCallAgentCommon {
|
|
83
81
|
if (!this._incomingCallSubscribers.has(incomingCall.id)) {
|
84
82
|
this._incomingCallSubscribers.set(incomingCall.id, new IncomingCallSubscriber(incomingCall, this.setIncomingCallEnded));
|
85
83
|
}
|
86
|
-
|
87
|
-
|
88
|
-
this._context.setIncomingCall(convertSdkIncomingCallToDeclarativeIncomingCall(incomingCall));
|
89
|
-
}
|
90
|
-
else {
|
91
|
-
this._incomingCalls.set(incomingCall.id, incomingCallDeclaratify(incomingCall, this._context));
|
92
|
-
this._context.setIncomingCall(convertSdkIncomingCallToDeclarativeIncomingCall(incomingCall));
|
93
|
-
}
|
84
|
+
this._declarativeIncomingCalls.set(incomingCall.id, incomingCallDeclaratify(incomingCall, this._context));
|
85
|
+
this._context.setIncomingCall(convertSdkIncomingCallToDeclarativeIncomingCall(incomingCall));
|
94
86
|
};
|
95
87
|
this.addCall = (call) => {
|
96
88
|
var _a;
|
@@ -114,7 +106,7 @@ export class ProxyCallAgentCommon {
|
|
114
106
|
this._internalContext = internalContext;
|
115
107
|
this._callSubscribers = new Map();
|
116
108
|
this._incomingCallSubscribers = new Map();
|
117
|
-
this.
|
109
|
+
this._declarativeIncomingCalls = new Map();
|
118
110
|
this._declarativeCalls = new Map();
|
119
111
|
this._externalCallsUpdatedListeners = new Set();
|
120
112
|
}
|
@@ -195,7 +187,7 @@ export class ProxyCallAgentCommon {
|
|
195
187
|
* 3. Use `callAgent.incomingCalls` and filter an incoming call ID to get a declarative incoming call object
|
196
188
|
*/
|
197
189
|
case 'incomingCalls': {
|
198
|
-
return Array.from(this.
|
190
|
+
return Array.from(this._declarativeIncomingCalls.values());
|
199
191
|
}
|
200
192
|
default:
|
201
193
|
return Reflect.get(target, prop);
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"CallAgentDeclarativeCommon.js","sourceRoot":"","sources":["../../../../../calling-stateful-client/src/CallAgentDeclarativeCommon.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport {\n Call,\n CallAgent,\n CallEndReason,\n CollectionUpdatedEvent,\n IncomingCall,\n TeamsIncomingCall\n} from '@azure/communication-calling';\n\nimport { IncomingCallCommon, CallAgentCommon, CallCommon } from './BetaToStableTypes';\n\n/* @conditional-compile-remove(teams-identity-support) */\nimport { TeamsCallAgent } from '@azure/communication-calling';\nimport { CallContext } from './CallContext';\nimport { DeclarativeCall } from './CallDeclarative';\nimport { CallSubscriber } from './CallSubscriber';\nimport { convertSdkCallToDeclarativeCall, convertSdkIncomingCallToDeclarativeIncomingCall } from './Converter';\nimport { IncomingCallSubscriber } from './IncomingCallSubscriber';\nimport { InternalCallContext } from './InternalCallContext';\nimport { disposeAllViews, disposeAllViewsFromCall } from './StreamUtils';\nimport { _isTeamsIncomingCall } from './TypeGuards';\nimport { incomingCallDeclaratify } from './IncomingCallDeclarative';\nimport { teamsIncomingCallDeclaratify } from './TeamsIncomingCallDeclarative';\n\n/**\n *\n * @private\n */\nexport type DeclarativeCallCommon = CallCommon & {\n /**\n * Stop any declarative specific subscriptions and remove declarative subscribers.\n */\n unsubscribe(): void;\n};\n\n/**\n * ProxyCallAgent proxies CallAgent and saves any returned state in the given context. It will subscribe to all state\n * updates in the CallAgent and in the contained Calls and RemoteParticipants. When dispose is called it will\n * unsubscribe from all state updates.\n */\nexport abstract class ProxyCallAgentCommon {\n private _context: CallContext;\n private _internalContext: InternalCallContext;\n private _callSubscribers: Map<CallCommon, CallSubscriber>;\n private _incomingCallSubscribers: Map<string, IncomingCallSubscriber>;\n private _incomingCalls: Map<string, IncomingCallCommon>;\n private _declarativeCalls: Map<CallCommon, DeclarativeCallCommon>;\n private _externalCallsUpdatedListeners: Set<CollectionUpdatedEvent<CallCommon>>;\n\n constructor(context: CallContext, internalContext: InternalCallContext) {\n this._context = context;\n this._internalContext = internalContext;\n this._callSubscribers = new Map<Call, CallSubscriber>();\n this._incomingCallSubscribers = new Map<string, IncomingCallSubscriber>();\n this._incomingCalls = new Map<string, IncomingCallCommon>();\n this._declarativeCalls = new Map<Call, DeclarativeCall>();\n this._externalCallsUpdatedListeners = new Set<CollectionUpdatedEvent<CallCommon>>();\n }\n\n // Unsubscribe is called when CallAgent is disposed. This should mean no more updating of existing call but we don't\n // remove any existing state.\n protected unregisterSubscriber = (): void => {\n for (const [_, callSubscriber] of this._callSubscribers.entries()) {\n callSubscriber.unsubscribe();\n }\n this._callSubscribers.clear();\n\n for (const [_, incomingCallSubscriber] of this._incomingCallSubscribers.entries()) {\n incomingCallSubscriber.unsubscribe();\n }\n this._incomingCallSubscribers.clear();\n this._incomingCalls.clear();\n\n for (const [_, declarativeCall] of this._declarativeCalls.entries()) {\n declarativeCall.unsubscribe();\n }\n this._declarativeCalls.clear();\n };\n\n protected abstract unsubscribe(): void;\n\n protected abstract callDeclaratify(call: CallCommon, context: CallContext): DeclarativeCallCommon;\n\n protected callsUpdated = (event: { added: CallCommon[]; removed: CallCommon[] }): void => {\n const addedStatefulCall: DeclarativeCallCommon[] = [];\n for (const call of event.added) {\n const statefulCall = this.addCall(call);\n addedStatefulCall.push(statefulCall);\n }\n const removedStatefulCall: DeclarativeCallCommon[] = [];\n for (const call of event.removed) {\n disposeAllViewsFromCall(this._context, this._internalContext, call.id);\n const callSubscriber = this._callSubscribers.get(call);\n if (callSubscriber) {\n callSubscriber.unsubscribe();\n this._callSubscribers.delete(call);\n }\n this._context.setCallEnded(call.id, call.callEndReason);\n const declarativeCall = this._declarativeCalls.get(call);\n if (declarativeCall) {\n declarativeCall.unsubscribe();\n removedStatefulCall.push(declarativeCall);\n this._declarativeCalls.delete(call);\n } else {\n removedStatefulCall.push(this.callDeclaratify(call, this._context));\n }\n }\n\n for (const externalCallsUpdatedListener of this._externalCallsUpdatedListeners) {\n externalCallsUpdatedListener({ added: addedStatefulCall, removed: removedStatefulCall });\n }\n };\n\n private setIncomingCallEnded = (incomingCallId: string, callEndReason: CallEndReason): void => {\n const incomingCallSubscriber = this._incomingCallSubscribers.get(incomingCallId);\n if (incomingCallSubscriber) {\n incomingCallSubscriber.unsubscribe();\n this._incomingCallSubscribers.delete(incomingCallId);\n }\n this._incomingCalls.delete(incomingCallId);\n this._context.setIncomingCallEnded(incomingCallId, callEndReason);\n };\n\n protected incomingCall = ({ incomingCall }: { incomingCall: IncomingCallCommon }): void => {\n // Make sure to not subscribe to the incoming call if we are already subscribed to it.\n if (!this._incomingCallSubscribers.has(incomingCall.id)) {\n this._incomingCallSubscribers.set(\n incomingCall.id,\n new IncomingCallSubscriber(incomingCall, this.setIncomingCallEnded)\n );\n }\n if (_isTeamsIncomingCall(incomingCall)) {\n this._incomingCalls.set(\n incomingCall.id,\n teamsIncomingCallDeclaratify(incomingCall as TeamsIncomingCall, this._context)\n );\n this._context.setIncomingCall(convertSdkIncomingCallToDeclarativeIncomingCall(incomingCall));\n } else {\n this._incomingCalls.set(incomingCall.id, incomingCallDeclaratify(incomingCall as IncomingCall, this._context));\n this._context.setIncomingCall(convertSdkIncomingCallToDeclarativeIncomingCall(incomingCall));\n }\n };\n\n protected addCall = (call: CallCommon): DeclarativeCallCommon => {\n this._callSubscribers.get(call)?.unsubscribe();\n\n // For API extentions we need to have the call in the state when we are subscribing as we may want to update the\n // state during the subscription process in the subscriber so we add the call to state before subscribing.\n this._context.setCall(convertSdkCallToDeclarativeCall(call));\n this._callSubscribers.set(call, new CallSubscriber(call, this._context, this._internalContext));\n return this.getOrCreateDeclarativeCall(call);\n };\n\n private getOrCreateDeclarativeCall = (call: CallCommon): DeclarativeCallCommon => {\n const declarativeCall = this._declarativeCalls.get(call);\n if (declarativeCall) {\n return declarativeCall;\n }\n\n const newDeclarativeCall = this.callDeclaratify(call, this._context);\n this._declarativeCalls.set(call, newDeclarativeCall);\n return newDeclarativeCall;\n };\n\n // args could be either from teamsCall or Call, set it as unknown and cast it in child class later\n protected abstract startCall(agent: CallAgentCommon, args: unknown[]): CallCommon;\n protected abstract joinCall(agent: CallAgentCommon, args: unknown[]): CallCommon;\n protected abstract agentSubscribe(agent: CallAgentCommon, args: unknown[]): void;\n protected abstract agentUnsubscribe(agent: CallAgentCommon, args: unknown[]): void;\n\n // We can't directly override get function because it is proxied,\n // Add a getCommon function and call it in child class\n protected getCommon<\n AgentType extends CallAgent | /* @conditional-compile-remove(teams-identity-support) */ TeamsCallAgent,\n P extends keyof CallAgent\n >(target: AgentType, prop: P | 'incomingCalls'): any {\n switch (prop) {\n case 'startCall': {\n return this._context.withErrorTeedToState((...args: Parameters<AgentType['startCall']>): CallCommon => {\n const call = this.startCall(target, args);\n this.addCall(call);\n return this.getOrCreateDeclarativeCall(call);\n }, 'CallAgent.startCall');\n }\n case 'join': {\n return this._context.withErrorTeedToState((...args: Parameters<AgentType['join']>): CallCommon => {\n const call = this.joinCall(target, args);\n this.addCall(call);\n return this.getOrCreateDeclarativeCall(call);\n }, 'CallAgent.join');\n }\n case 'calls': {\n return Array.from(this._declarativeCalls.values());\n }\n case 'on': {\n return (...args: Parameters<AgentType['on']>): void => {\n // typescript is not smart enough to handle multiple overloads and pull the correct type here so force casting args\n const event = args[0] as 'incomingCall' | 'callsUpdated' | 'connectionStateChanged';\n\n const isCallsUpdated = event === 'callsUpdated';\n if (isCallsUpdated) {\n const listener = args[1] as unknown as CollectionUpdatedEvent<CallCommon>;\n this._externalCallsUpdatedListeners.add(listener);\n } else {\n this.agentSubscribe(target, args);\n }\n };\n }\n case 'off': {\n return (...args: Parameters<AgentType['off']>): void => {\n // typescript is not smart enough to handle multiple overloads and pull the correct type here so force casting args\n const event = args[0] as 'incomingCall' | 'callsUpdated' | 'connectionStateChanged';\n\n const isCallsUpdated = event === 'callsUpdated';\n if (isCallsUpdated) {\n const listener = args[1] as unknown as CollectionUpdatedEvent<CallCommon>;\n this._externalCallsUpdatedListeners.delete(listener);\n } else {\n this.agentUnsubscribe(target, args);\n }\n };\n }\n case 'dispose': {\n /* @conditional-compile-remove(calling-beta-sdk) */\n return (): void => {\n target.dispose();\n this.unsubscribe();\n };\n // Wrapping CallAgent.dispose in a callback type (): Promise<void> to accomodate the change of CallAgent.dispose\n // in calling beta version 1.8.0-beta.1 from callback type (): Promise<void> to (): void\n const callAgentDisposeAsyncCallbackWrapper = async (): Promise<void> => {\n await target.dispose();\n return Promise.resolve();\n };\n return (): Promise<void> => {\n return callAgentDisposeAsyncCallbackWrapper().then(() => {\n this.unsubscribe();\n });\n };\n }\n /**\n * This attribute is a special case and doesn't exist on the CallAgent interface.\n * We need this to be able to return a declarative incoming call object using the call agent.\n * In a standard headless SDK usage, the right way to get an incoming call is to use the `incomingCall` event.\n * However, using the declarative layer, the ideal usage would be to:\n * 1. subscribe to the `onStateChange` event\n * 2. Get the incoming call from the new state and it's ID\n * 3. Use `callAgent.incomingCalls` and filter an incoming call ID to get a declarative incoming call object\n */\n case 'incomingCalls': {\n return Array.from(this._incomingCalls.values());\n }\n default:\n return Reflect.get(target, prop);\n }\n }\n}\n\n/**\n * @private\n */\nexport const clearCallRelatedState = (context: CallContext, internalContext: InternalCallContext): void => {\n // Make sure there are no existing call data if creating a new CallAgentDeclarative (if creating a new\n // CallAgentDeclarative after disposing of the hold one will mean context have old call state). TODO: should we stop\n // rendering when the previous callAgent is disposed?\n disposeAllViews(context, internalContext);\n\n context.clearCallRelatedState();\n internalContext.clearCallRelatedState();\n};\n"]}
|
1
|
+
{"version":3,"file":"CallAgentDeclarativeCommon.js","sourceRoot":"","sources":["../../../../../calling-stateful-client/src/CallAgentDeclarativeCommon.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { Call, CallAgent, CallEndReason, CollectionUpdatedEvent } from '@azure/communication-calling';\n\nimport { IncomingCallCommon, CallAgentCommon, CallCommon } from './BetaToStableTypes';\n\n/* @conditional-compile-remove(teams-identity-support) */\nimport { TeamsCallAgent } from '@azure/communication-calling';\nimport { CallContext } from './CallContext';\nimport { DeclarativeCall } from './CallDeclarative';\nimport { CallSubscriber } from './CallSubscriber';\nimport { convertSdkCallToDeclarativeCall, convertSdkIncomingCallToDeclarativeIncomingCall } from './Converter';\nimport { DeclarativeIncomingCall, incomingCallDeclaratify } from './IncomingCallDeclarative';\nimport { IncomingCallSubscriber } from './IncomingCallSubscriber';\nimport { InternalCallContext } from './InternalCallContext';\nimport { disposeAllViews, disposeAllViewsFromCall } from './StreamUtils';\n\n/**\n *\n * @private\n */\nexport type DeclarativeCallCommon = CallCommon & {\n /**\n * Stop any declarative specific subscriptions and remove declarative subscribers.\n */\n unsubscribe(): void;\n};\n\n/**\n * ProxyCallAgent proxies CallAgent and saves any returned state in the given context. It will subscribe to all state\n * updates in the CallAgent and in the contained Calls and RemoteParticipants. When dispose is called it will\n * unsubscribe from all state updates.\n */\nexport abstract class ProxyCallAgentCommon {\n private _context: CallContext;\n private _internalContext: InternalCallContext;\n private _callSubscribers: Map<CallCommon, CallSubscriber>;\n private _incomingCallSubscribers: Map<string, IncomingCallSubscriber>;\n private _declarativeIncomingCalls: Map<string, DeclarativeIncomingCall>;\n private _declarativeCalls: Map<CallCommon, DeclarativeCallCommon>;\n private _externalCallsUpdatedListeners: Set<CollectionUpdatedEvent<CallCommon>>;\n\n constructor(context: CallContext, internalContext: InternalCallContext) {\n this._context = context;\n this._internalContext = internalContext;\n this._callSubscribers = new Map<Call, CallSubscriber>();\n this._incomingCallSubscribers = new Map<string, IncomingCallSubscriber>();\n this._declarativeIncomingCalls = new Map<string, DeclarativeIncomingCall>();\n this._declarativeCalls = new Map<Call, DeclarativeCall>();\n this._externalCallsUpdatedListeners = new Set<CollectionUpdatedEvent<CallCommon>>();\n }\n\n // Unsubscribe is called when CallAgent is disposed. This should mean no more updating of existing call but we don't\n // remove any existing state.\n protected unregisterSubscriber = (): void => {\n for (const [_, callSubscriber] of this._callSubscribers.entries()) {\n callSubscriber.unsubscribe();\n }\n this._callSubscribers.clear();\n\n for (const [_, incomingCallSubscriber] of this._incomingCallSubscribers.entries()) {\n incomingCallSubscriber.unsubscribe();\n }\n this._incomingCallSubscribers.clear();\n this._declarativeIncomingCalls.clear();\n\n for (const [_, declarativeCall] of this._declarativeCalls.entries()) {\n declarativeCall.unsubscribe();\n }\n this._declarativeCalls.clear();\n };\n\n protected abstract unsubscribe(): void;\n\n protected abstract callDeclaratify(call: CallCommon, context: CallContext): DeclarativeCallCommon;\n\n protected callsUpdated = (event: { added: CallCommon[]; removed: CallCommon[] }): void => {\n const addedStatefulCall: DeclarativeCallCommon[] = [];\n for (const call of event.added) {\n const statefulCall = this.addCall(call);\n addedStatefulCall.push(statefulCall);\n }\n const removedStatefulCall: DeclarativeCallCommon[] = [];\n for (const call of event.removed) {\n disposeAllViewsFromCall(this._context, this._internalContext, call.id);\n const callSubscriber = this._callSubscribers.get(call);\n if (callSubscriber) {\n callSubscriber.unsubscribe();\n this._callSubscribers.delete(call);\n }\n this._context.setCallEnded(call.id, call.callEndReason);\n const declarativeCall = this._declarativeCalls.get(call);\n if (declarativeCall) {\n declarativeCall.unsubscribe();\n removedStatefulCall.push(declarativeCall);\n this._declarativeCalls.delete(call);\n } else {\n removedStatefulCall.push(this.callDeclaratify(call, this._context));\n }\n }\n\n for (const externalCallsUpdatedListener of this._externalCallsUpdatedListeners) {\n externalCallsUpdatedListener({ added: addedStatefulCall, removed: removedStatefulCall });\n }\n };\n\n private setIncomingCallEnded = (incomingCallId: string, callEndReason: CallEndReason): void => {\n const incomingCallSubscriber = this._incomingCallSubscribers.get(incomingCallId);\n if (incomingCallSubscriber) {\n incomingCallSubscriber.unsubscribe();\n this._incomingCallSubscribers.delete(incomingCallId);\n }\n this._declarativeIncomingCalls.delete(incomingCallId);\n this._context.setIncomingCallEnded(incomingCallId, callEndReason);\n };\n\n protected incomingCall = ({ incomingCall }: { incomingCall: IncomingCallCommon }): void => {\n // Make sure to not subscribe to the incoming call if we are already subscribed to it.\n if (!this._incomingCallSubscribers.has(incomingCall.id)) {\n this._incomingCallSubscribers.set(\n incomingCall.id,\n new IncomingCallSubscriber(incomingCall, this.setIncomingCallEnded)\n );\n }\n this._declarativeIncomingCalls.set(incomingCall.id, incomingCallDeclaratify(incomingCall, this._context));\n this._context.setIncomingCall(convertSdkIncomingCallToDeclarativeIncomingCall(incomingCall));\n };\n\n protected addCall = (call: CallCommon): DeclarativeCallCommon => {\n this._callSubscribers.get(call)?.unsubscribe();\n\n // For API extentions we need to have the call in the state when we are subscribing as we may want to update the\n // state during the subscription process in the subscriber so we add the call to state before subscribing.\n this._context.setCall(convertSdkCallToDeclarativeCall(call));\n this._callSubscribers.set(call, new CallSubscriber(call, this._context, this._internalContext));\n return this.getOrCreateDeclarativeCall(call);\n };\n\n private getOrCreateDeclarativeCall = (call: CallCommon): DeclarativeCallCommon => {\n const declarativeCall = this._declarativeCalls.get(call);\n if (declarativeCall) {\n return declarativeCall;\n }\n\n const newDeclarativeCall = this.callDeclaratify(call, this._context);\n this._declarativeCalls.set(call, newDeclarativeCall);\n return newDeclarativeCall;\n };\n\n // args could be either from teamsCall or Call, set it as unknown and cast it in child class later\n protected abstract startCall(agent: CallAgentCommon, args: unknown[]): CallCommon;\n protected abstract joinCall(agent: CallAgentCommon, args: unknown[]): CallCommon;\n protected abstract agentSubscribe(agent: CallAgentCommon, args: unknown[]): void;\n protected abstract agentUnsubscribe(agent: CallAgentCommon, args: unknown[]): void;\n\n // We can't directly override get function because it is proxied,\n // Add a getCommon function and call it in child class\n protected getCommon<\n AgentType extends CallAgent | /* @conditional-compile-remove(teams-identity-support) */ TeamsCallAgent,\n P extends keyof CallAgent\n >(target: AgentType, prop: P | 'incomingCalls'): any {\n switch (prop) {\n case 'startCall': {\n return this._context.withErrorTeedToState((...args: Parameters<AgentType['startCall']>): CallCommon => {\n const call = this.startCall(target, args);\n this.addCall(call);\n return this.getOrCreateDeclarativeCall(call);\n }, 'CallAgent.startCall');\n }\n case 'join': {\n return this._context.withErrorTeedToState((...args: Parameters<AgentType['join']>): CallCommon => {\n const call = this.joinCall(target, args);\n this.addCall(call);\n return this.getOrCreateDeclarativeCall(call);\n }, 'CallAgent.join');\n }\n case 'calls': {\n return Array.from(this._declarativeCalls.values());\n }\n case 'on': {\n return (...args: Parameters<AgentType['on']>): void => {\n // typescript is not smart enough to handle multiple overloads and pull the correct type here so force casting args\n const event = args[0] as 'incomingCall' | 'callsUpdated' | 'connectionStateChanged';\n\n const isCallsUpdated = event === 'callsUpdated';\n if (isCallsUpdated) {\n const listener = args[1] as unknown as CollectionUpdatedEvent<CallCommon>;\n this._externalCallsUpdatedListeners.add(listener);\n } else {\n this.agentSubscribe(target, args);\n }\n };\n }\n case 'off': {\n return (...args: Parameters<AgentType['off']>): void => {\n // typescript is not smart enough to handle multiple overloads and pull the correct type here so force casting args\n const event = args[0] as 'incomingCall' | 'callsUpdated' | 'connectionStateChanged';\n\n const isCallsUpdated = event === 'callsUpdated';\n if (isCallsUpdated) {\n const listener = args[1] as unknown as CollectionUpdatedEvent<CallCommon>;\n this._externalCallsUpdatedListeners.delete(listener);\n } else {\n this.agentUnsubscribe(target, args);\n }\n };\n }\n case 'dispose': {\n /* @conditional-compile-remove(calling-beta-sdk) */\n return (): void => {\n target.dispose();\n this.unsubscribe();\n };\n // Wrapping CallAgent.dispose in a callback type (): Promise<void> to accomodate the change of CallAgent.dispose\n // in calling beta version 1.8.0-beta.1 from callback type (): Promise<void> to (): void\n const callAgentDisposeAsyncCallbackWrapper = async (): Promise<void> => {\n await target.dispose();\n return Promise.resolve();\n };\n return (): Promise<void> => {\n return callAgentDisposeAsyncCallbackWrapper().then(() => {\n this.unsubscribe();\n });\n };\n }\n /**\n * This attribute is a special case and doesn't exist on the CallAgent interface.\n * We need this to be able to return a declarative incoming call object using the call agent.\n * In a standard headless SDK usage, the right way to get an incoming call is to use the `incomingCall` event.\n * However, using the declarative layer, the ideal usage would be to:\n * 1. subscribe to the `onStateChange` event\n * 2. Get the incoming call from the new state and it's ID\n * 3. Use `callAgent.incomingCalls` and filter an incoming call ID to get a declarative incoming call object\n */\n case 'incomingCalls': {\n return Array.from(this._declarativeIncomingCalls.values());\n }\n default:\n return Reflect.get(target, prop);\n }\n }\n}\n\n/**\n * @private\n */\nexport const clearCallRelatedState = (context: CallContext, internalContext: InternalCallContext): void => {\n // Make sure there are no existing call data if creating a new CallAgentDeclarative (if creating a new\n // CallAgentDeclarative after disposing of the hold one will mean context have old call state). TODO: should we stop\n // rendering when the previous callAgent is disposed?\n disposeAllViews(context, internalContext);\n\n context.clearCallRelatedState();\n internalContext.clearCallRelatedState();\n};\n"]}
|
@@ -582,9 +582,7 @@ export interface CallState {
|
|
582
582
|
/**
|
583
583
|
* Proxy of {@link @azure/communication-calling#TeamsMeetingAudioConferencingCallFeature}.
|
584
584
|
*/
|
585
|
-
|
586
|
-
conferencePhones: ConferencePhoneInfo[];
|
587
|
-
};
|
585
|
+
teamsMeetingConference?: ConferencePhoneInfo[];
|
588
586
|
}
|
589
587
|
/**
|
590
588
|
* Transfer feature state
|