@azure/communication-react 1.3.3-alpha-202209150016.0 → 1.3.3-alpha-202209160028.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/communication-react.d.ts +56 -1
- package/dist/dist-cjs/communication-react/index.js +213 -59
- package/dist/dist-cjs/communication-react/index.js.map +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/communication-react/src/index.d.ts +2 -0
- package/dist/dist-esm/communication-react/src/index.js +2 -0
- package/dist/dist-esm/communication-react/src/index.js.map +1 -1
- package/dist/dist-esm/react-components/src/components/UnsupportedBrowser.d.ts +32 -0
- package/dist/dist-esm/react-components/src/components/UnsupportedBrowser.js +33 -0
- package/dist/dist-esm/react-components/src/components/UnsupportedBrowser.js.map +1 -0
- package/dist/dist-esm/react-components/src/components/index.d.ts +2 -0
- package/dist/dist-esm/react-components/src/components/index.js +2 -0
- package/dist/dist-esm/react-components/src/components/index.js.map +1 -1
- package/dist/dist-esm/react-components/src/components/styles/UnsupportedBrowser.styles.d.ts +22 -0
- package/dist/dist-esm/react-components/src/components/styles/UnsupportedBrowser.styles.js +53 -0
- package/dist/dist-esm/react-components/src/components/styles/UnsupportedBrowser.styles.js.map +1 -0
- package/dist/dist-esm/react-components/src/localization/LocalizationProvider.d.ts +3 -0
- package/dist/dist-esm/react-components/src/localization/LocalizationProvider.js.map +1 -1
- package/dist/dist-esm/react-components/src/localization/locales/en-US/strings.json +5 -0
- package/dist/dist-esm/react-components/src/theming/icons.d.ts +1 -0
- package/dist/dist-esm/react-components/src/theming/icons.js +36 -1
- package/dist/dist-esm/react-components/src/theming/icons.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/CallComposite/CallComposite.js +12 -2
- package/dist/dist-esm/react-composites/src/composites/CallComposite/CallComposite.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/CallComposite/Strings.d.ts +16 -0
- package/dist/dist-esm/react-composites/src/composites/CallComposite/Strings.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/CallAdapter.d.ts +1 -1
- package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/CallAdapter.js +3 -1
- package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/CallAdapter.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/CallComposite/components/CallArrangement.js +16 -34
- package/dist/dist-esm/react-composites/src/composites/CallComposite/components/CallArrangement.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/CallComposite/components/CallPane.d.ts +2 -7
- package/dist/dist-esm/react-composites/src/composites/CallComposite/components/CallPane.js +3 -4
- package/dist/dist-esm/react-composites/src/composites/CallComposite/components/CallPane.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/CallComposite/hooks/useSidePaneState.d.ts +16 -0
- package/dist/dist-esm/react-composites/src/composites/CallComposite/hooks/useSidePaneState.js +38 -0
- package/dist/dist-esm/react-composites/src/composites/CallComposite/hooks/useSidePaneState.js.map +1 -0
- package/dist/dist-esm/react-composites/src/composites/CallComposite/utils/Utils.d.ts +1 -1
- package/dist/dist-esm/react-composites/src/composites/CallComposite/utils/Utils.js +22 -1
- package/dist/dist-esm/react-composites/src/composites/CallComposite/utils/Utils.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/common/icons.d.ts +3 -0
- package/dist/dist-esm/react-composites/src/composites/common/icons.js +3 -1
- package/dist/dist-esm/react-composites/src/composites/common/icons.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/localization/locales/en-US/strings.json +4 -0
- package/package.json +8 -8
@@ -0,0 +1,38 @@
|
|
1
|
+
// Copyright (c) Microsoft Corporation.
|
2
|
+
// Licensed under the MIT license.
|
3
|
+
import { _isInCall } from "../../../../../calling-component-bindings/src";
|
4
|
+
import { useCallback, useMemo, useState } from 'react';
|
5
|
+
import { callStatusSelector } from '../selectors/callStatusSelector';
|
6
|
+
import { useSelector } from './useSelector';
|
7
|
+
/**
|
8
|
+
* @private
|
9
|
+
*/
|
10
|
+
export const useSidePaneState = () => {
|
11
|
+
const { callStatus } = useSelector(callStatusSelector);
|
12
|
+
const isInCall = _isInCall(callStatus);
|
13
|
+
const [chosenPane, setChosenPane] = useState(null);
|
14
|
+
const closePane = useCallback(() => {
|
15
|
+
setChosenPane(null);
|
16
|
+
}, [setChosenPane]);
|
17
|
+
const openPeoplePane = useCallback(() => {
|
18
|
+
setChosenPane('people');
|
19
|
+
}, []);
|
20
|
+
const togglePeoplePane = useCallback(() => {
|
21
|
+
if (chosenPane === 'people') {
|
22
|
+
closePane();
|
23
|
+
}
|
24
|
+
else {
|
25
|
+
openPeoplePane();
|
26
|
+
}
|
27
|
+
}, [chosenPane, closePane, openPeoplePane]);
|
28
|
+
// If we are not in a call, we should not show the people pane.
|
29
|
+
const activePane = chosenPane === 'people' && isInCall ? 'people' : null;
|
30
|
+
const memoizedReturnValue = useMemo(() => ({
|
31
|
+
activePane,
|
32
|
+
closePane,
|
33
|
+
openPeoplePane,
|
34
|
+
togglePeoplePane
|
35
|
+
}), [activePane, closePane, openPeoplePane, togglePeoplePane]);
|
36
|
+
return memoizedReturnValue;
|
37
|
+
};
|
38
|
+
//# sourceMappingURL=useSidePaneState.js.map
|
package/dist/dist-esm/react-composites/src/composites/CallComposite/hooks/useSidePaneState.js.map
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"useSidePaneState.js","sourceRoot":"","sources":["../../../../../../../../react-composites/src/composites/CallComposite/hooks/useSidePaneState.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAElC,OAAO,EAAE,SAAS,EAAE,sDAA6C;AACjE,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACvD,OAAO,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AACrE,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAS5C;;GAEG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,GAK9B,EAAE;IACF,MAAM,EAAE,UAAU,EAAE,GAAG,WAAW,CAAC,kBAAkB,CAAC,CAAC;IACvD,MAAM,QAAQ,GAAG,SAAS,CAAC,UAAU,CAAC,CAAC;IACvC,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,QAAQ,CAAqB,IAAI,CAAC,CAAC;IAEvE,MAAM,SAAS,GAAG,WAAW,CAAC,GAAG,EAAE;QACjC,aAAa,CAAC,IAAI,CAAC,CAAC;IACtB,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC;IAEpB,MAAM,cAAc,GAAG,WAAW,CAAC,GAAG,EAAE;QACtC,aAAa,CAAC,QAAQ,CAAC,CAAC;IAC1B,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,gBAAgB,GAAG,WAAW,CAAC,GAAG,EAAE;QACxC,IAAI,UAAU,KAAK,QAAQ,EAAE;YAC3B,SAAS,EAAE,CAAC;SACb;aAAM;YACL,cAAc,EAAE,CAAC;SAClB;IACH,CAAC,EAAE,CAAC,UAAU,EAAE,SAAS,EAAE,cAAc,CAAC,CAAC,CAAC;IAE5C,+DAA+D;IAC/D,MAAM,UAAU,GAAuB,UAAU,KAAK,QAAQ,IAAI,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC;IAE7F,MAAM,mBAAmB,GAAG,OAAO,CACjC,GAAG,EAAE,CAAC,CAAC;QACL,UAAU;QACV,SAAS;QACT,cAAc;QACd,gBAAgB;KACjB,CAAC,EACF,CAAC,UAAU,EAAE,SAAS,EAAE,cAAc,EAAE,gBAAgB,CAAC,CAC1D,CAAC;IAEF,OAAO,mBAAmB,CAAC;AAC7B,CAAC,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport { _isInCall } from '@internal/calling-component-bindings';\nimport { useCallback, useMemo, useState } from 'react';\nimport { callStatusSelector } from '../selectors/callStatusSelector';\nimport { useSelector } from './useSelector';\n\n/**\n * Active tab option type for {@link CallPane} component\n * @private\n */\n/** @beta */\nexport type CallSidePaneOption = null | 'people';\n\n/**\n * @private\n */\nexport const useSidePaneState = (): {\n activePane: CallSidePaneOption;\n closePane: () => void;\n openPeoplePane: () => void;\n togglePeoplePane: () => void;\n} => {\n const { callStatus } = useSelector(callStatusSelector);\n const isInCall = _isInCall(callStatus);\n const [chosenPane, setChosenPane] = useState<CallSidePaneOption>(null);\n\n const closePane = useCallback(() => {\n setChosenPane(null);\n }, [setChosenPane]);\n\n const openPeoplePane = useCallback(() => {\n setChosenPane('people');\n }, []);\n\n const togglePeoplePane = useCallback(() => {\n if (chosenPane === 'people') {\n closePane();\n } else {\n openPeoplePane();\n }\n }, [chosenPane, closePane, openPeoplePane]);\n\n // If we are not in a call, we should not show the people pane.\n const activePane: CallSidePaneOption = chosenPane === 'people' && isInCall ? 'people' : null;\n\n const memoizedReturnValue = useMemo(\n () => ({\n activePane,\n closePane,\n openPeoplePane,\n togglePeoplePane\n }),\n [activePane, closePane, openPeoplePane, togglePeoplePane]\n );\n\n return memoizedReturnValue;\n};\n\"../../../../../calling-component-bindings/src\""]}
|
@@ -27,7 +27,7 @@ export declare const reduceCallControlsForMobile: (callControlOptions: CallContr
|
|
27
27
|
*/
|
28
28
|
export declare const getCallCompositePage: (call: CallState | undefined, previousCall: CallState | undefined) => CallCompositePage;
|
29
29
|
/** @private */
|
30
|
-
export declare const IsCallEndedPage: (page: 'accessDeniedTeamsMeeting' | 'call' | 'configuration' | 'joinCallFailedDueToNoNetwork' | 'leftCall' | 'lobby' | 'removedFromCall' | /* @conditional-compile-remove(PSTN-calls) */ 'hold') => boolean;
|
30
|
+
export declare const IsCallEndedPage: (page: 'accessDeniedTeamsMeeting' | 'call' | 'configuration' | 'joinCallFailedDueToNoNetwork' | 'leftCall' | 'lobby' | 'removedFromCall' | /* @conditional-compile-remove(PSTN-calls) */ 'hold' | /* @conditional-compile-remove(rooms) */ 'roomNotFound' | /* @conditional-compile-remove(rooms) */ 'deniedPermissionToRoom') => boolean;
|
31
31
|
/**
|
32
32
|
* Creates a new call control options object and sets the correct values for disabling
|
33
33
|
* the buttons provided in the `disabledControls` array.
|
@@ -6,6 +6,10 @@ import { isPhoneNumberIdentifier } from '@azure/communication-common';
|
|
6
6
|
const ACCESS_DENIED_TEAMS_MEETING_SUB_CODE = 5854;
|
7
7
|
const REMOTE_PSTN_USER_HUNG_UP = 560000;
|
8
8
|
const REMOVED_FROM_CALL_SUB_CODES = [5000, 5300, REMOTE_PSTN_USER_HUNG_UP];
|
9
|
+
/* @conditional-compile-remove(rooms) */
|
10
|
+
const ROOM_NOT_FOUND_SUB_CODE = 5751;
|
11
|
+
/* @conditional-compile-remove(rooms) */
|
12
|
+
const DENIED_PERMISSION_TO_ROOM_SUB_CODE = 5828;
|
9
13
|
/**
|
10
14
|
* @private
|
11
15
|
*/
|
@@ -48,9 +52,11 @@ var CallEndReasons;
|
|
48
52
|
CallEndReasons[CallEndReasons["LEFT_CALL"] = 0] = "LEFT_CALL";
|
49
53
|
CallEndReasons[CallEndReasons["ACCESS_DENIED"] = 1] = "ACCESS_DENIED";
|
50
54
|
CallEndReasons[CallEndReasons["REMOVED_FROM_CALL"] = 2] = "REMOVED_FROM_CALL";
|
55
|
+
CallEndReasons[CallEndReasons["ROOM_NOT_FOUND"] = 3] = "ROOM_NOT_FOUND";
|
56
|
+
CallEndReasons[CallEndReasons["DENIED_PERMISSION_TO_ROOM"] = 4] = "DENIED_PERMISSION_TO_ROOM";
|
51
57
|
})(CallEndReasons || (CallEndReasons = {}));
|
52
58
|
const getCallEndReason = (call) => {
|
53
|
-
var _a, _b, _c;
|
59
|
+
var _a, _b, _c, _d, _e;
|
54
60
|
const remoteParticipantsEndedArray = Array.from(Object.values(call.remoteParticipantsEnded));
|
55
61
|
/**
|
56
62
|
* Handle the special case in a PSTN call where removing the last user kicks the caller out of the call.
|
@@ -70,6 +76,14 @@ const getCallEndReason = (call) => {
|
|
70
76
|
if (((_c = call.callEndReason) === null || _c === void 0 ? void 0 : _c.subCode) && REMOVED_FROM_CALL_SUB_CODES.includes(call.callEndReason.subCode)) {
|
71
77
|
return CallEndReasons.REMOVED_FROM_CALL;
|
72
78
|
}
|
79
|
+
/* @conditional-compile-remove(rooms) */
|
80
|
+
if (((_d = call.callEndReason) === null || _d === void 0 ? void 0 : _d.subCode) && call.callEndReason.subCode === ROOM_NOT_FOUND_SUB_CODE) {
|
81
|
+
return CallEndReasons.ROOM_NOT_FOUND;
|
82
|
+
}
|
83
|
+
/* @conditional-compile-remove(rooms) */
|
84
|
+
if (((_e = call.callEndReason) === null || _e === void 0 ? void 0 : _e.subCode) && call.callEndReason.subCode === DENIED_PERMISSION_TO_ROOM_SUB_CODE) {
|
85
|
+
return CallEndReasons.DENIED_PERMISSION_TO_ROOM;
|
86
|
+
}
|
73
87
|
if (call.callEndReason) {
|
74
88
|
// No error codes match, assume the user simply left the call regularly
|
75
89
|
return CallEndReasons.LEFT_CALL;
|
@@ -118,6 +132,13 @@ export const getCallCompositePage = (call, previousCall) => {
|
|
118
132
|
}
|
119
133
|
if (previousCall) {
|
120
134
|
const reason = getCallEndReason(previousCall);
|
135
|
+
/* @conditional-compile-remove(rooms) */
|
136
|
+
switch (reason) {
|
137
|
+
case CallEndReasons.ROOM_NOT_FOUND:
|
138
|
+
return 'roomNotFound';
|
139
|
+
case CallEndReasons.DENIED_PERMISSION_TO_ROOM:
|
140
|
+
return 'deniedPermissionToRoom';
|
141
|
+
}
|
121
142
|
switch (reason) {
|
122
143
|
case CallEndReasons.ACCESS_DENIED:
|
123
144
|
return 'accessDeniedTeamsMeeting';
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"Utils.js","sourceRoot":"","sources":["../../../../../../../../react-composites/src/composites/CallComposite/utils/Utils.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport { CallAdapterState, CallCompositePage, END_CALL_PAGES } from '../adapter/CallAdapter';\nimport { _isInCall, _isPreviewOn, _isInLobbyOrConnecting } from '@internal/calling-component-bindings';\nimport { CallControlOptions } from '../types/CallControlOptions';\nimport { CallState } from '@internal/calling-stateful-client';\nimport { isPhoneNumberIdentifier } from '@azure/communication-common';\n\nconst ACCESS_DENIED_TEAMS_MEETING_SUB_CODE = 5854;\nconst REMOTE_PSTN_USER_HUNG_UP = 560000;\nconst REMOVED_FROM_CALL_SUB_CODES = [5000, 5300, REMOTE_PSTN_USER_HUNG_UP];\n\n/**\n * @private\n */\nexport const isCameraOn = (state: CallAdapterState): boolean => {\n if (state.call) {\n const stream = state.call.localVideoStreams.find((stream) => stream.mediaStreamType === 'Video');\n return !!stream;\n } else {\n if (state.devices.selectedCamera) {\n const previewOn = _isPreviewOn(state.devices);\n return previewOn;\n }\n }\n return false;\n};\n\n/**\n * Reduce the set of call controls visible on mobile.\n * For example do not show screenshare button.\n *\n * @private\n */\nexport const reduceCallControlsForMobile = (\n callControlOptions: CallControlOptions | boolean | undefined\n): CallControlOptions | false => {\n if (callControlOptions === false) {\n return false;\n }\n\n // Ensure call controls a valid object.\n const reduceCallControlOptions = callControlOptions === true ? {} : callControlOptions || {};\n\n // Set to compressed mode when composite is optimized for mobile\n reduceCallControlOptions.displayType = 'compact';\n\n // Do not show screen share button when composite is optimized for mobile unless the developer\n // has explicitly opted in.\n if (reduceCallControlOptions.screenShareButton !== true) {\n reduceCallControlOptions.screenShareButton = false;\n }\n\n return reduceCallControlOptions;\n};\n\nenum CallEndReasons {\n LEFT_CALL,\n ACCESS_DENIED,\n REMOVED_FROM_CALL\n}\n\nconst getCallEndReason = (call: CallState): CallEndReasons => {\n const remoteParticipantsEndedArray = Array.from(Object.values(call.remoteParticipantsEnded));\n /**\n * Handle the special case in a PSTN call where removing the last user kicks the caller out of the call.\n * The code and subcode is the same as when a user is removed from a teams interop call.\n * Hence, we look at the last remote participant removed to determine if the last participant removed was a phone number.\n * If yes, the caller was kicked out of the call, but we need to show them that they left the call.\n * Note: This check will only work for 1:1 PSTN Calls. The subcode is different for 1:N PSTN calls, and we do not need to handle that case.\n */\n if (\n remoteParticipantsEndedArray.length === 1 &&\n isPhoneNumberIdentifier(remoteParticipantsEndedArray[0].identifier) &&\n call.callEndReason?.subCode !== REMOTE_PSTN_USER_HUNG_UP\n ) {\n return CallEndReasons.LEFT_CALL;\n }\n\n if (call.callEndReason?.subCode && call.callEndReason.subCode === ACCESS_DENIED_TEAMS_MEETING_SUB_CODE) {\n return CallEndReasons.ACCESS_DENIED;\n }\n\n if (call.callEndReason?.subCode && REMOVED_FROM_CALL_SUB_CODES.includes(call.callEndReason.subCode)) {\n return CallEndReasons.REMOVED_FROM_CALL;\n }\n\n if (call.callEndReason) {\n // No error codes match, assume the user simply left the call regularly\n return CallEndReasons.LEFT_CALL;\n }\n\n throw new Error('No matching call end reason');\n};\n\n/**\n * Get the current call composite page based on the current call composite state\n *\n * @param Call - The current call state\n * @param previousCall - The state of the most recent previous call that has ended.\n *\n * @remarks - The previousCall state is needed to determine if the call has ended.\n * When the call ends a new call object is created, and so we must lookback at the\n * previous call state to understand how the call has ended. If there is no previous\n * call we know that this is a fresh call and can display the configuration page.\n *\n * @private\n */\nexport const getCallCompositePage = (\n call: CallState | undefined,\n previousCall: CallState | undefined\n): CallCompositePage => {\n // Must check for ongoing call *before* looking at any previous calls.\n // If the composite completes one call and joins another, the previous calls\n // will be populated, but not relevant for determining the page.\n if (call) {\n // `_isInLobbyOrConnecting` needs to be checked first because `_isInCall` also returns true when call is in lobby.\n if (_isInLobbyOrConnecting(call?.state)) {\n return 'lobby';\n // `LocalHold` needs to be checked before `isInCall` since it is also a state that's considered in call.\n } else if (call?.state === 'LocalHold') {\n /* @conditional-compile-remove(PSTN-calls) */ /* @conditional-compile-remove(one-to-n-calling) */\n return 'hold';\n return 'call';\n } else if (_isInCall(call?.state)) {\n return 'call';\n } else {\n // When the call object has been constructed after clicking , but before 'connecting' has been\n // set on the call object, we continue to show the configuration screen.\n // The call object does not correctly reflect local device state until `call.state` moves to `connecting`.\n // Moving to the 'lobby' page too soon leads to components that depend on the `call` object to show incorrect\n // transitional state.\n return 'configuration';\n }\n }\n\n if (previousCall) {\n const reason = getCallEndReason(previousCall);\n switch (reason) {\n case CallEndReasons.ACCESS_DENIED:\n return 'accessDeniedTeamsMeeting';\n case CallEndReasons.REMOVED_FROM_CALL:\n return 'removedFromCall';\n case CallEndReasons.LEFT_CALL:\n if (previousCall.diagnostics.network.latest.noNetwork) {\n return 'joinCallFailedDueToNoNetwork';\n }\n return 'leftCall';\n }\n }\n\n // No call state - show starting page (configuration)\n return 'configuration';\n};\n\n/** @private */\nexport const IsCallEndedPage = (\n /**\n * Explicitly listing the pages of this function intentionally.\n * This protects against adding a new composite page that should be marked as an callEndedPage.\n * EndCallPages are used to trigger onCallEnded events so this could easily be missed.\n * When you add a new composite page this will throw a compiler error. If this new page is an\n * EndCallPage ensure you update the END_CALL_PAGES. Afterwards update the `page` parameter\n * type below to allow your new page, i.e. add `| <your new page>\n */\n page:\n | 'accessDeniedTeamsMeeting'\n | 'call'\n | 'configuration'\n | 'joinCallFailedDueToNoNetwork'\n | 'leftCall'\n | 'lobby'\n | 'removedFromCall'\n | /* @conditional-compile-remove(PSTN-calls) */ 'hold'\n): boolean => END_CALL_PAGES.includes(page);\n\n/**\n * Creates a new call control options object and sets the correct values for disabling\n * the buttons provided in the `disabledControls` array.\n * Returns a new object without changing the original object.\n * @param callControlOptions options for the call control component that need to be modified.\n * @param disabledControls An array of controls to disable.\n * @returns a copy of callControlOptions with disabledControls disabled\n * @private\n */\nexport const disableCallControls = (\n callControlOptions: CallControlOptions | boolean | undefined,\n disabledControls: (keyof CallControlOptions)[]\n): CallControlOptions | boolean | undefined => {\n if (callControlOptions === false) {\n return false;\n }\n // Ensure we clone the prop if it is an object to ensure we do not mutate the original prop.\n let newOptions = (callControlOptions instanceof Object ? { ...callControlOptions } : callControlOptions) ?? {};\n if (newOptions === true || newOptions === undefined) {\n newOptions = disabledControls.reduce((acc, key) => {\n acc[key] = { disabled: true };\n return acc;\n }, {});\n } else {\n disabledControls.forEach((key) => {\n if (newOptions[key] !== false) {\n newOptions[key] = { disabled: true };\n }\n });\n }\n return newOptions;\n};\n\n/**\n * Check if a disabled object is provided for a button and returns if the button is disabled.\n * A button is only disabled if is explicitly set to disabled.\n *\n * @param option\n * @returns whether a button is disabled\n * @private\n */\nexport const isDisabled = (option: boolean | { disabled: boolean } | undefined): boolean => {\n if (option === undefined || typeof option === 'boolean') {\n return false;\n }\n\n return option.disabled;\n};\n\"../../../../../calling-component-bindings/src\"\"../../../../../calling-stateful-client/src\""]}
|
1
|
+
{"version":3,"file":"Utils.js","sourceRoot":"","sources":["../../../../../../../../react-composites/src/composites/CallComposite/utils/Utils.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport { CallAdapterState, CallCompositePage, END_CALL_PAGES } from '../adapter/CallAdapter';\nimport { _isInCall, _isPreviewOn, _isInLobbyOrConnecting } from '@internal/calling-component-bindings';\nimport { CallControlOptions } from '../types/CallControlOptions';\nimport { CallState } from '@internal/calling-stateful-client';\nimport { isPhoneNumberIdentifier } from '@azure/communication-common';\n\nconst ACCESS_DENIED_TEAMS_MEETING_SUB_CODE = 5854;\nconst REMOTE_PSTN_USER_HUNG_UP = 560000;\nconst REMOVED_FROM_CALL_SUB_CODES = [5000, 5300, REMOTE_PSTN_USER_HUNG_UP];\n/* @conditional-compile-remove(rooms) */\nconst ROOM_NOT_FOUND_SUB_CODE = 5751;\n/* @conditional-compile-remove(rooms) */\nconst DENIED_PERMISSION_TO_ROOM_SUB_CODE = 5828;\n\n/**\n * @private\n */\nexport const isCameraOn = (state: CallAdapterState): boolean => {\n if (state.call) {\n const stream = state.call.localVideoStreams.find((stream) => stream.mediaStreamType === 'Video');\n return !!stream;\n } else {\n if (state.devices.selectedCamera) {\n const previewOn = _isPreviewOn(state.devices);\n return previewOn;\n }\n }\n return false;\n};\n\n/**\n * Reduce the set of call controls visible on mobile.\n * For example do not show screenshare button.\n *\n * @private\n */\nexport const reduceCallControlsForMobile = (\n callControlOptions: CallControlOptions | boolean | undefined\n): CallControlOptions | false => {\n if (callControlOptions === false) {\n return false;\n }\n\n // Ensure call controls a valid object.\n const reduceCallControlOptions = callControlOptions === true ? {} : callControlOptions || {};\n\n // Set to compressed mode when composite is optimized for mobile\n reduceCallControlOptions.displayType = 'compact';\n\n // Do not show screen share button when composite is optimized for mobile unless the developer\n // has explicitly opted in.\n if (reduceCallControlOptions.screenShareButton !== true) {\n reduceCallControlOptions.screenShareButton = false;\n }\n\n return reduceCallControlOptions;\n};\n\nenum CallEndReasons {\n LEFT_CALL,\n ACCESS_DENIED,\n REMOVED_FROM_CALL,\n ROOM_NOT_FOUND,\n DENIED_PERMISSION_TO_ROOM\n}\n\nconst getCallEndReason = (call: CallState): CallEndReasons => {\n const remoteParticipantsEndedArray = Array.from(Object.values(call.remoteParticipantsEnded));\n /**\n * Handle the special case in a PSTN call where removing the last user kicks the caller out of the call.\n * The code and subcode is the same as when a user is removed from a teams interop call.\n * Hence, we look at the last remote participant removed to determine if the last participant removed was a phone number.\n * If yes, the caller was kicked out of the call, but we need to show them that they left the call.\n * Note: This check will only work for 1:1 PSTN Calls. The subcode is different for 1:N PSTN calls, and we do not need to handle that case.\n */\n if (\n remoteParticipantsEndedArray.length === 1 &&\n isPhoneNumberIdentifier(remoteParticipantsEndedArray[0].identifier) &&\n call.callEndReason?.subCode !== REMOTE_PSTN_USER_HUNG_UP\n ) {\n return CallEndReasons.LEFT_CALL;\n }\n\n if (call.callEndReason?.subCode && call.callEndReason.subCode === ACCESS_DENIED_TEAMS_MEETING_SUB_CODE) {\n return CallEndReasons.ACCESS_DENIED;\n }\n\n if (call.callEndReason?.subCode && REMOVED_FROM_CALL_SUB_CODES.includes(call.callEndReason.subCode)) {\n return CallEndReasons.REMOVED_FROM_CALL;\n }\n\n /* @conditional-compile-remove(rooms) */\n if (call.callEndReason?.subCode && call.callEndReason.subCode === ROOM_NOT_FOUND_SUB_CODE) {\n return CallEndReasons.ROOM_NOT_FOUND;\n }\n\n /* @conditional-compile-remove(rooms) */\n if (call.callEndReason?.subCode && call.callEndReason.subCode === DENIED_PERMISSION_TO_ROOM_SUB_CODE) {\n return CallEndReasons.DENIED_PERMISSION_TO_ROOM;\n }\n\n if (call.callEndReason) {\n // No error codes match, assume the user simply left the call regularly\n return CallEndReasons.LEFT_CALL;\n }\n\n throw new Error('No matching call end reason');\n};\n\n/**\n * Get the current call composite page based on the current call composite state\n *\n * @param Call - The current call state\n * @param previousCall - The state of the most recent previous call that has ended.\n *\n * @remarks - The previousCall state is needed to determine if the call has ended.\n * When the call ends a new call object is created, and so we must lookback at the\n * previous call state to understand how the call has ended. If there is no previous\n * call we know that this is a fresh call and can display the configuration page.\n *\n * @private\n */\nexport const getCallCompositePage = (\n call: CallState | undefined,\n previousCall: CallState | undefined\n): CallCompositePage => {\n // Must check for ongoing call *before* looking at any previous calls.\n // If the composite completes one call and joins another, the previous calls\n // will be populated, but not relevant for determining the page.\n if (call) {\n // `_isInLobbyOrConnecting` needs to be checked first because `_isInCall` also returns true when call is in lobby.\n if (_isInLobbyOrConnecting(call?.state)) {\n return 'lobby';\n // `LocalHold` needs to be checked before `isInCall` since it is also a state that's considered in call.\n } else if (call?.state === 'LocalHold') {\n /* @conditional-compile-remove(PSTN-calls) */ /* @conditional-compile-remove(one-to-n-calling) */\n return 'hold';\n return 'call';\n } else if (_isInCall(call?.state)) {\n return 'call';\n } else {\n // When the call object has been constructed after clicking , but before 'connecting' has been\n // set on the call object, we continue to show the configuration screen.\n // The call object does not correctly reflect local device state until `call.state` moves to `connecting`.\n // Moving to the 'lobby' page too soon leads to components that depend on the `call` object to show incorrect\n // transitional state.\n return 'configuration';\n }\n }\n\n if (previousCall) {\n const reason = getCallEndReason(previousCall);\n /* @conditional-compile-remove(rooms) */\n switch (reason) {\n case CallEndReasons.ROOM_NOT_FOUND:\n return 'roomNotFound';\n case CallEndReasons.DENIED_PERMISSION_TO_ROOM:\n return 'deniedPermissionToRoom';\n }\n switch (reason) {\n case CallEndReasons.ACCESS_DENIED:\n return 'accessDeniedTeamsMeeting';\n case CallEndReasons.REMOVED_FROM_CALL:\n return 'removedFromCall';\n case CallEndReasons.LEFT_CALL:\n if (previousCall.diagnostics.network.latest.noNetwork) {\n return 'joinCallFailedDueToNoNetwork';\n }\n return 'leftCall';\n }\n }\n\n // No call state - show starting page (configuration)\n return 'configuration';\n};\n\n/** @private */\nexport const IsCallEndedPage = (\n /**\n * Explicitly listing the pages of this function intentionally.\n * This protects against adding a new composite page that should be marked as an callEndedPage.\n * EndCallPages are used to trigger onCallEnded events so this could easily be missed.\n * When you add a new composite page this will throw a compiler error. If this new page is an\n * EndCallPage ensure you update the END_CALL_PAGES. Afterwards update the `page` parameter\n * type below to allow your new page, i.e. add `| <your new page>\n */\n page:\n | 'accessDeniedTeamsMeeting'\n | 'call'\n | 'configuration'\n | 'joinCallFailedDueToNoNetwork'\n | 'leftCall'\n | 'lobby'\n | 'removedFromCall'\n | /* @conditional-compile-remove(PSTN-calls) */ 'hold'\n | /* @conditional-compile-remove(rooms) */ 'roomNotFound'\n | /* @conditional-compile-remove(rooms) */ 'deniedPermissionToRoom'\n): boolean => END_CALL_PAGES.includes(page);\n\n/**\n * Creates a new call control options object and sets the correct values for disabling\n * the buttons provided in the `disabledControls` array.\n * Returns a new object without changing the original object.\n * @param callControlOptions options for the call control component that need to be modified.\n * @param disabledControls An array of controls to disable.\n * @returns a copy of callControlOptions with disabledControls disabled\n * @private\n */\nexport const disableCallControls = (\n callControlOptions: CallControlOptions | boolean | undefined,\n disabledControls: (keyof CallControlOptions)[]\n): CallControlOptions | boolean | undefined => {\n if (callControlOptions === false) {\n return false;\n }\n // Ensure we clone the prop if it is an object to ensure we do not mutate the original prop.\n let newOptions = (callControlOptions instanceof Object ? { ...callControlOptions } : callControlOptions) ?? {};\n if (newOptions === true || newOptions === undefined) {\n newOptions = disabledControls.reduce((acc, key) => {\n acc[key] = { disabled: true };\n return acc;\n }, {});\n } else {\n disabledControls.forEach((key) => {\n if (newOptions[key] !== false) {\n newOptions[key] = { disabled: true };\n }\n });\n }\n return newOptions;\n};\n\n/**\n * Check if a disabled object is provided for a button and returns if the button is disabled.\n * A button is only disabled if is explicitly set to disabled.\n *\n * @param option\n * @returns whether a button is disabled\n * @private\n */\nexport const isDisabled = (option: boolean | { disabled: boolean } | undefined): boolean => {\n if (option === undefined || typeof option === 'boolean') {\n return false;\n }\n\n return option.disabled;\n};\n\"../../../../../calling-component-bindings/src\"\"../../../../../calling-stateful-client/src\""]}
|
@@ -70,6 +70,7 @@ export declare const DEFAULT_COMPOSITE_ICONS: {
|
|
70
70
|
PeoplePaneAddPerson?: JSX.Element | undefined;
|
71
71
|
PeoplePaneOpenDialpad?: JSX.Element | undefined;
|
72
72
|
DialpadStartCall?: JSX.Element | undefined;
|
73
|
+
NoticePageInvalidRoom?: JSX.Element | undefined;
|
73
74
|
ChevronLeft?: JSX.Element | undefined;
|
74
75
|
ControlBarChatButtonActive?: JSX.Element | undefined;
|
75
76
|
ControlBarChatButtonInactive?: JSX.Element | undefined;
|
@@ -92,6 +93,7 @@ export declare const DEFAULT_COMPOSITE_ICONS: {
|
|
92
93
|
ResumeCall: JSX.Element;
|
93
94
|
BackSpace: JSX.Element;
|
94
95
|
iconBackdrop: JSX.Element;
|
96
|
+
UnsupportedBrowserWarning: JSX.Element;
|
95
97
|
};
|
96
98
|
/** @private */
|
97
99
|
export declare type CompositeIconProps<Icons> = IIconProps & {
|
@@ -178,6 +180,7 @@ export declare type CallCompositeIcons = {
|
|
178
180
|
PeoplePaneAddPerson?: JSX.Element;
|
179
181
|
PeoplePaneOpenDialpad?: JSX.Element;
|
180
182
|
DialpadStartCall?: JSX.Element;
|
183
|
+
NoticePageInvalidRoom?: JSX.Element;
|
181
184
|
};
|
182
185
|
/**
|
183
186
|
* Icon wrapper to use when including customizable icons inside the CallComposite.
|
@@ -52,7 +52,9 @@ export const COMPOSITE_ONLY_ICONS = {
|
|
52
52
|
/* @conditional-compile-remove(PSTN-calls) */
|
53
53
|
PeoplePaneOpenDialpad: React.createElement(Dialpad20Regular, null),
|
54
54
|
/* @conditional-compile-remove(PSTN-calls) */
|
55
|
-
DialpadStartCall: React.createElement(Call20Regular, null)
|
55
|
+
DialpadStartCall: React.createElement(Call20Regular, null),
|
56
|
+
/* @conditional-compile-remove(rooms) */
|
57
|
+
NoticePageInvalidRoom: React.createElement(Info20Filled, null)
|
56
58
|
};
|
57
59
|
/**
|
58
60
|
* The default set of icons that are available to used in the Composites.
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"icons.js","sourceRoot":"","sources":["../../../../../../../react-composites/src/composites/common/icons.tsx"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport {\n CallEnd20Filled,\n CallMissed20Filled,\n CameraSwitch24Regular,\n Chat20Filled,\n Chat20Regular,\n Info20Filled,\n MicOff20Filled,\n MicOn20Filled,\n MicOn20Regular,\n People20Regular,\n PersonDelete20Filled,\n Speaker220Filled,\n Speaker220Regular,\n Video20Filled,\n VideoOff20Filled,\n WifiWarning20Filled\n} from '@fluentui/react-icons';\n/* @conditional-compile-remove(PSTN-calls) */\nimport { PersonAdd20Regular, Dialpad20Regular, Call20Regular } from '@fluentui/react-icons';\nimport { DEFAULT_COMPONENT_ICONS } from '@internal/react-components';\nimport React from 'react';\n// eslint-disable-next-line no-restricted-imports\nimport { FontIcon, IIconProps, mergeStyles, Text } from '@fluentui/react';\n/* @conditional-compile-remove(file-sharing) */\nimport { Attach20Regular } from '@fluentui/react-icons';\n\nconst CoffeeIcon = (): JSX.Element => (\n <Text className={mergeStyles(coffeeIconStyle)} aria-hidden={true}>\n ☕\n </Text>\n);\n\nconst coffeeIconStyle = {\n // Fluent wraps all icons with <i> so we must force the fontStyle back to normal.\n fontStyle: 'normal',\n // By default our icons are 20px x 20px (for 1rem = 16px), make this a bit bigger for lobby.\n fontSize: '2rem'\n};\n\n/**\n * The default set of icons used by the composites directly (i.e. not via the components defined in this library).\n *\n * @public\n */\nexport const COMPOSITE_ONLY_ICONS: CompositeIcons = {\n ChevronLeft: <FontIcon iconName=\"ChevronLeft\" />,\n Link: <FontIcon iconName=\"Link\" />,\n LobbyScreenConnectingToCall: <CoffeeIcon />,\n LobbyScreenWaitingToBeAdmitted: <CoffeeIcon />,\n LocalDeviceSettingsCamera: <Video20Filled />,\n LocalDeviceSettingsMic: <MicOn20Filled />,\n LocalDeviceSettingsSpeaker: <Speaker220Filled />,\n LocalPreviewPlaceholder: <VideoOff20Filled />,\n LocalCameraSwitch: <CameraSwitch24Regular />,\n ControlBarChatButtonActive: <Chat20Filled />,\n ControlBarChatButtonInactive: <Chat20Regular />,\n ControlBarPeopleButton: <People20Regular />,\n MoreDrawerMicrophones: <MicOn20Regular />,\n MoreDrawerPeople: <People20Regular />,\n MoreDrawerSpeakers: <Speaker220Regular />,\n MoreDrawerSelectedMicrophone: <MicOn20Filled />,\n MoreDrawerSelectedSpeaker: <Speaker220Filled />,\n Muted: <MicOff20Filled />,\n NetworkReconnectIcon: <CallMissed20Filled />,\n NoticePageAccessDeniedTeamsMeeting: <PersonDelete20Filled />,\n NoticePageJoinCallFailedDueToNoNetwork: <WifiWarning20Filled />,\n NoticePageLeftCall: <CallEnd20Filled />,\n NoticePageRemovedFromCall: <Info20Filled />,\n /* @conditional-compile-remove(file-sharing) */\n SendBoxAttachFile: <Attach20Regular />,\n /* @conditional-compile-remove(PSTN-calls) */\n PeoplePaneAddPerson: <PersonAdd20Regular />,\n /* @conditional-compile-remove(PSTN-calls) */\n PeoplePaneOpenDialpad: <Dialpad20Regular />,\n /* @conditional-compile-remove(PSTN-calls) */\n DialpadStartCall: <Call20Regular />\n};\n\n/**\n * The default set of icons that are available to used in the Composites.\n *\n * @public\n */\nexport const DEFAULT_COMPOSITE_ICONS = {\n ...DEFAULT_COMPONENT_ICONS,\n ...COMPOSITE_ONLY_ICONS\n};\n\n/** @private */\nexport type CompositeIconProps<Icons> = IIconProps & { iconName: keyof Icons };\n\n/**\n * Icons that can be overridden for {@link ChatComposite}.\n *\n * @public\n */\nexport type ChatCompositeIcons = {\n EditBoxCancel?: JSX.Element;\n EditBoxSubmit?: JSX.Element;\n MessageDelivered?: JSX.Element;\n MessageEdit?: JSX.Element;\n MessageFailed?: JSX.Element;\n MessageRemove?: JSX.Element;\n MessageSeen?: JSX.Element;\n MessageSending?: JSX.Element;\n ParticipantItemOptions?: JSX.Element;\n ParticipantItemOptionsHovered?: JSX.Element;\n SendBoxSend?: JSX.Element;\n SendBoxSendHovered?: JSX.Element;\n /* @conditional-compile-remove(file-sharing) */\n SendBoxAttachFile?: JSX.Element;\n};\n\n/**\n * Icon wrapper to use when including customizable icons inside the ChatComposite.\n * This wrapper ensures the icon name is being type-checked helping ensure no typos\n * and ensure that icon is customizable through the composite API.\n *\n * @private\n */\nexport const ChatCompositeIcon = (props: CompositeIconProps<ChatCompositeIcons>): JSX.Element => (\n <FontIcon {...props} />\n);\n\n/**\n * Icons that can be overridden for {@link CallComposite}.\n *\n * @public\n */\nexport type CallCompositeIcons = {\n ControlButtonCameraOff?: JSX.Element;\n ControlButtonCameraOn?: JSX.Element;\n ControlButtonEndCall?: JSX.Element;\n ControlButtonMicOff?: JSX.Element;\n ControlButtonMicOn?: JSX.Element;\n ControlButtonOptions?: JSX.Element;\n ControlButtonParticipants?: JSX.Element;\n ControlButtonScreenShareStart?: JSX.Element;\n ControlButtonScreenShareStop?: JSX.Element;\n ErrorBarCallCameraAccessDenied?: JSX.Element;\n ErrorBarCallCameraAlreadyInUse?: JSX.Element;\n ErrorBarCallLocalVideoFreeze?: JSX.Element;\n ErrorBarCallMacOsCameraAccessDenied?: JSX.Element;\n ErrorBarCallMacOsMicrophoneAccessDenied?: JSX.Element;\n ErrorBarCallMicrophoneAccessDenied?: JSX.Element;\n ErrorBarCallMicrophoneMutedBySystem?: JSX.Element;\n ErrorBarCallMicrophoneUnmutedBySystem?: JSX.Element;\n ErrorBarCallNetworkQualityLow?: JSX.Element;\n ErrorBarCallNoMicrophoneFound?: JSX.Element;\n ErrorBarCallNoSpeakerFound?: JSX.Element;\n ErrorBarClear?: JSX.Element;\n HorizontalGalleryLeftButton?: JSX.Element;\n HorizontalGalleryRightButton?: JSX.Element;\n LobbyScreenConnectingToCall?: JSX.Element;\n LobbyScreenWaitingToBeAdmitted?: JSX.Element;\n LocalDeviceSettingsCamera?: JSX.Element;\n LocalDeviceSettingsMic?: JSX.Element;\n LocalDeviceSettingsSpeaker?: JSX.Element;\n LocalPreviewPlaceholder?: JSX.Element;\n Muted?: JSX.Element;\n NetworkReconnectIcon?: JSX.Element;\n NoticePageAccessDeniedTeamsMeeting?: JSX.Element;\n NoticePageJoinCallFailedDueToNoNetwork?: JSX.Element;\n NoticePageLeftCall?: JSX.Element;\n NoticePageRemovedFromCall?: JSX.Element;\n OptionsCamera?: JSX.Element;\n OptionsMic?: JSX.Element;\n OptionsSpeaker?: JSX.Element;\n ParticipantItemMicOff?: JSX.Element;\n ParticipantItemOptions?: JSX.Element;\n ParticipantItemOptionsHovered?: JSX.Element;\n ParticipantItemScreenShareStart?: JSX.Element;\n VideoTileMicOff?: JSX.Element;\n LocalCameraSwitch?: JSX.Element;\n /* @conditional-compile-remove(PSTN-calls) */\n PeoplePaneAddPerson?: JSX.Element;\n /* @conditional-compile-remove(PSTN-calls) */\n PeoplePaneOpenDialpad?: JSX.Element;\n /* @conditional-compile-remove(PSTN-calls) */\n DialpadStartCall?: JSX.Element;\n};\n\n/**\n * Icon wrapper to use when including customizable icons inside the CallComposite.\n * This wrapper ensures the icon name is being type-checked helping ensure no typos\n * and ensure that icon is customizable through the composite API.\n *\n * @private\n */\nexport const CallCompositeIcon = (props: CompositeIconProps<CallCompositeIcons>): JSX.Element => (\n <FontIcon {...props} />\n);\n\n/**\n * Icons that can be overridden for {@link CallWithChatComposite}.\n *\n * @public\n */\nexport type CallWithChatCompositeIcons = {\n // CallWithChat Specific Icons\n ChevronLeft?: JSX.Element;\n ControlBarChatButtonActive?: JSX.Element;\n ControlBarChatButtonInactive?: JSX.Element;\n ControlBarPeopleButton?: JSX.Element;\n Link?: JSX.Element;\n MoreDrawerMicrophones?: JSX.Element;\n MoreDrawerPeople?: JSX.Element;\n MoreDrawerSelectedMicrophone?: JSX.Element;\n MoreDrawerSelectedSpeaker?: JSX.Element;\n MoreDrawerSpeakers?: JSX.Element;\n\n // Call icons\n ControlButtonCameraOff?: JSX.Element;\n ControlButtonCameraOn?: JSX.Element;\n ControlButtonEndCall?: JSX.Element;\n ControlButtonMicOff?: JSX.Element;\n ControlButtonMicOn?: JSX.Element;\n ControlButtonOptions?: JSX.Element;\n ControlButtonScreenShareStart?: JSX.Element;\n ControlButtonScreenShareStop?: JSX.Element;\n ErrorBarCallCameraAccessDenied?: JSX.Element;\n ErrorBarCallCameraAlreadyInUse?: JSX.Element;\n ErrorBarCallLocalVideoFreeze?: JSX.Element;\n ErrorBarCallMacOsCameraAccessDenied?: JSX.Element;\n ErrorBarCallMacOsMicrophoneAccessDenied?: JSX.Element;\n ErrorBarCallMicrophoneAccessDenied?: JSX.Element;\n ErrorBarCallMicrophoneMutedBySystem?: JSX.Element;\n ErrorBarCallMicrophoneUnmutedBySystem?: JSX.Element;\n ErrorBarCallNetworkQualityLow?: JSX.Element;\n ErrorBarCallNoMicrophoneFound?: JSX.Element;\n ErrorBarCallNoSpeakerFound?: JSX.Element;\n ErrorBarClear?: JSX.Element;\n HorizontalGalleryLeftButton?: JSX.Element;\n HorizontalGalleryRightButton?: JSX.Element;\n LobbyScreenConnectingToCall?: JSX.Element;\n LobbyScreenWaitingToBeAdmitted?: JSX.Element;\n LocalDeviceSettingsCamera?: JSX.Element;\n LocalDeviceSettingsMic?: JSX.Element;\n LocalDeviceSettingsSpeaker?: JSX.Element;\n LocalPreviewPlaceholder?: JSX.Element;\n Muted?: JSX.Element;\n NetworkReconnectIcon?: JSX.Element;\n NoticePageAccessDeniedTeamsMeeting?: JSX.Element;\n NoticePageJoinCallFailedDueToNoNetwork?: JSX.Element;\n NoticePageLeftCall?: JSX.Element;\n NoticePageRemovedFromCall?: JSX.Element;\n OptionsCamera?: JSX.Element;\n OptionsMic?: JSX.Element;\n OptionsSpeaker?: JSX.Element;\n ParticipantItemMicOff?: JSX.Element;\n ParticipantItemScreenShareStart?: JSX.Element;\n VideoTileMicOff?: JSX.Element;\n LocalCameraSwitch?: JSX.Element;\n /* @conditional-compile-remove(PSTN-calls) */\n PeoplePaneAddPerson?: JSX.Element;\n /* @conditional-compile-remove(PSTN-calls) */\n PeoplePaneOpenDialpad?: JSX.Element;\n /* @conditional-compile-remove(PSTN-calls) */\n DialpadStartCall?: JSX.Element;\n\n // Chat icons\n EditBoxCancel?: JSX.Element;\n EditBoxSubmit?: JSX.Element;\n MessageDelivered?: JSX.Element;\n MessageEdit?: JSX.Element;\n MessageFailed?: JSX.Element;\n MessageRemove?: JSX.Element;\n MessageSeen?: JSX.Element;\n MessageSending?: JSX.Element;\n SendBoxSend?: JSX.Element;\n SendBoxSendHovered?: JSX.Element;\n SendBoxAttachFile?: JSX.Element;\n\n // Icons common to Call and Chat.\n ParticipantItemOptions?: JSX.Element;\n ParticipantItemOptionsHovered?: JSX.Element;\n};\n\n/**\n * Icon wrapper to use when including customizable icons inside the CallWithChatComposite.\n * This wrapper ensures the icon name is being type-checked helping ensure no typos\n * and ensure that icon is customizable through the composite API.\n *\n * @private\n */\nexport const CallWithChatCompositeIcon = (props: CompositeIconProps<CallWithChatCompositeIcons>): JSX.Element => (\n <FontIcon {...props} />\n);\n\n/**\n * Icons that can be overridden in one of the composites exported by this library.\n *\n * See {@link ChatCompositeIcons}, {@link CallCompositeIcons} and {@link CallWithChatCompositeIcons} for more targeted types.\n *\n * @public\n */\nexport type CompositeIcons = ChatCompositeIcons & CallCompositeIcons & CallWithChatCompositeIcons;\n\"../../../../react-components/src\""]}
|
1
|
+
{"version":3,"file":"icons.js","sourceRoot":"","sources":["../../../../../../../react-composites/src/composites/common/icons.tsx"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport {\n CallEnd20Filled,\n CallMissed20Filled,\n CameraSwitch24Regular,\n Chat20Filled,\n Chat20Regular,\n Info20Filled,\n MicOff20Filled,\n MicOn20Filled,\n MicOn20Regular,\n People20Regular,\n PersonDelete20Filled,\n Speaker220Filled,\n Speaker220Regular,\n Video20Filled,\n VideoOff20Filled,\n WifiWarning20Filled\n} from '@fluentui/react-icons';\n/* @conditional-compile-remove(PSTN-calls) */\nimport { PersonAdd20Regular, Dialpad20Regular, Call20Regular } from '@fluentui/react-icons';\nimport { DEFAULT_COMPONENT_ICONS } from '@internal/react-components';\nimport React from 'react';\n// eslint-disable-next-line no-restricted-imports\nimport { FontIcon, IIconProps, mergeStyles, Text } from '@fluentui/react';\n/* @conditional-compile-remove(file-sharing) */\nimport { Attach20Regular } from '@fluentui/react-icons';\n\nconst CoffeeIcon = (): JSX.Element => (\n <Text className={mergeStyles(coffeeIconStyle)} aria-hidden={true}>\n ☕\n </Text>\n);\n\nconst coffeeIconStyle = {\n // Fluent wraps all icons with <i> so we must force the fontStyle back to normal.\n fontStyle: 'normal',\n // By default our icons are 20px x 20px (for 1rem = 16px), make this a bit bigger for lobby.\n fontSize: '2rem'\n};\n\n/**\n * The default set of icons used by the composites directly (i.e. not via the components defined in this library).\n *\n * @public\n */\nexport const COMPOSITE_ONLY_ICONS: CompositeIcons = {\n ChevronLeft: <FontIcon iconName=\"ChevronLeft\" />,\n Link: <FontIcon iconName=\"Link\" />,\n LobbyScreenConnectingToCall: <CoffeeIcon />,\n LobbyScreenWaitingToBeAdmitted: <CoffeeIcon />,\n LocalDeviceSettingsCamera: <Video20Filled />,\n LocalDeviceSettingsMic: <MicOn20Filled />,\n LocalDeviceSettingsSpeaker: <Speaker220Filled />,\n LocalPreviewPlaceholder: <VideoOff20Filled />,\n LocalCameraSwitch: <CameraSwitch24Regular />,\n ControlBarChatButtonActive: <Chat20Filled />,\n ControlBarChatButtonInactive: <Chat20Regular />,\n ControlBarPeopleButton: <People20Regular />,\n MoreDrawerMicrophones: <MicOn20Regular />,\n MoreDrawerPeople: <People20Regular />,\n MoreDrawerSpeakers: <Speaker220Regular />,\n MoreDrawerSelectedMicrophone: <MicOn20Filled />,\n MoreDrawerSelectedSpeaker: <Speaker220Filled />,\n Muted: <MicOff20Filled />,\n NetworkReconnectIcon: <CallMissed20Filled />,\n NoticePageAccessDeniedTeamsMeeting: <PersonDelete20Filled />,\n NoticePageJoinCallFailedDueToNoNetwork: <WifiWarning20Filled />,\n NoticePageLeftCall: <CallEnd20Filled />,\n NoticePageRemovedFromCall: <Info20Filled />,\n /* @conditional-compile-remove(file-sharing) */\n SendBoxAttachFile: <Attach20Regular />,\n /* @conditional-compile-remove(PSTN-calls) */\n PeoplePaneAddPerson: <PersonAdd20Regular />,\n /* @conditional-compile-remove(PSTN-calls) */\n PeoplePaneOpenDialpad: <Dialpad20Regular />,\n /* @conditional-compile-remove(PSTN-calls) */\n DialpadStartCall: <Call20Regular />,\n /* @conditional-compile-remove(rooms) */\n NoticePageInvalidRoom: <Info20Filled />\n};\n\n/**\n * The default set of icons that are available to used in the Composites.\n *\n * @public\n */\nexport const DEFAULT_COMPOSITE_ICONS = {\n ...DEFAULT_COMPONENT_ICONS,\n ...COMPOSITE_ONLY_ICONS\n};\n\n/** @private */\nexport type CompositeIconProps<Icons> = IIconProps & { iconName: keyof Icons };\n\n/**\n * Icons that can be overridden for {@link ChatComposite}.\n *\n * @public\n */\nexport type ChatCompositeIcons = {\n EditBoxCancel?: JSX.Element;\n EditBoxSubmit?: JSX.Element;\n MessageDelivered?: JSX.Element;\n MessageEdit?: JSX.Element;\n MessageFailed?: JSX.Element;\n MessageRemove?: JSX.Element;\n MessageSeen?: JSX.Element;\n MessageSending?: JSX.Element;\n ParticipantItemOptions?: JSX.Element;\n ParticipantItemOptionsHovered?: JSX.Element;\n SendBoxSend?: JSX.Element;\n SendBoxSendHovered?: JSX.Element;\n /* @conditional-compile-remove(file-sharing) */\n SendBoxAttachFile?: JSX.Element;\n};\n\n/**\n * Icon wrapper to use when including customizable icons inside the ChatComposite.\n * This wrapper ensures the icon name is being type-checked helping ensure no typos\n * and ensure that icon is customizable through the composite API.\n *\n * @private\n */\nexport const ChatCompositeIcon = (props: CompositeIconProps<ChatCompositeIcons>): JSX.Element => (\n <FontIcon {...props} />\n);\n\n/**\n * Icons that can be overridden for {@link CallComposite}.\n *\n * @public\n */\nexport type CallCompositeIcons = {\n ControlButtonCameraOff?: JSX.Element;\n ControlButtonCameraOn?: JSX.Element;\n ControlButtonEndCall?: JSX.Element;\n ControlButtonMicOff?: JSX.Element;\n ControlButtonMicOn?: JSX.Element;\n ControlButtonOptions?: JSX.Element;\n ControlButtonParticipants?: JSX.Element;\n ControlButtonScreenShareStart?: JSX.Element;\n ControlButtonScreenShareStop?: JSX.Element;\n ErrorBarCallCameraAccessDenied?: JSX.Element;\n ErrorBarCallCameraAlreadyInUse?: JSX.Element;\n ErrorBarCallLocalVideoFreeze?: JSX.Element;\n ErrorBarCallMacOsCameraAccessDenied?: JSX.Element;\n ErrorBarCallMacOsMicrophoneAccessDenied?: JSX.Element;\n ErrorBarCallMicrophoneAccessDenied?: JSX.Element;\n ErrorBarCallMicrophoneMutedBySystem?: JSX.Element;\n ErrorBarCallMicrophoneUnmutedBySystem?: JSX.Element;\n ErrorBarCallNetworkQualityLow?: JSX.Element;\n ErrorBarCallNoMicrophoneFound?: JSX.Element;\n ErrorBarCallNoSpeakerFound?: JSX.Element;\n ErrorBarClear?: JSX.Element;\n HorizontalGalleryLeftButton?: JSX.Element;\n HorizontalGalleryRightButton?: JSX.Element;\n LobbyScreenConnectingToCall?: JSX.Element;\n LobbyScreenWaitingToBeAdmitted?: JSX.Element;\n LocalDeviceSettingsCamera?: JSX.Element;\n LocalDeviceSettingsMic?: JSX.Element;\n LocalDeviceSettingsSpeaker?: JSX.Element;\n LocalPreviewPlaceholder?: JSX.Element;\n Muted?: JSX.Element;\n NetworkReconnectIcon?: JSX.Element;\n NoticePageAccessDeniedTeamsMeeting?: JSX.Element;\n NoticePageJoinCallFailedDueToNoNetwork?: JSX.Element;\n NoticePageLeftCall?: JSX.Element;\n NoticePageRemovedFromCall?: JSX.Element;\n OptionsCamera?: JSX.Element;\n OptionsMic?: JSX.Element;\n OptionsSpeaker?: JSX.Element;\n ParticipantItemMicOff?: JSX.Element;\n ParticipantItemOptions?: JSX.Element;\n ParticipantItemOptionsHovered?: JSX.Element;\n ParticipantItemScreenShareStart?: JSX.Element;\n VideoTileMicOff?: JSX.Element;\n LocalCameraSwitch?: JSX.Element;\n /* @conditional-compile-remove(PSTN-calls) */\n PeoplePaneAddPerson?: JSX.Element;\n /* @conditional-compile-remove(PSTN-calls) */\n PeoplePaneOpenDialpad?: JSX.Element;\n /* @conditional-compile-remove(PSTN-calls) */\n DialpadStartCall?: JSX.Element;\n /* @conditional-compile-remove(rooms) */\n NoticePageInvalidRoom?: JSX.Element;\n};\n\n/**\n * Icon wrapper to use when including customizable icons inside the CallComposite.\n * This wrapper ensures the icon name is being type-checked helping ensure no typos\n * and ensure that icon is customizable through the composite API.\n *\n * @private\n */\nexport const CallCompositeIcon = (props: CompositeIconProps<CallCompositeIcons>): JSX.Element => (\n <FontIcon {...props} />\n);\n\n/**\n * Icons that can be overridden for {@link CallWithChatComposite}.\n *\n * @public\n */\nexport type CallWithChatCompositeIcons = {\n // CallWithChat Specific Icons\n ChevronLeft?: JSX.Element;\n ControlBarChatButtonActive?: JSX.Element;\n ControlBarChatButtonInactive?: JSX.Element;\n ControlBarPeopleButton?: JSX.Element;\n Link?: JSX.Element;\n MoreDrawerMicrophones?: JSX.Element;\n MoreDrawerPeople?: JSX.Element;\n MoreDrawerSelectedMicrophone?: JSX.Element;\n MoreDrawerSelectedSpeaker?: JSX.Element;\n MoreDrawerSpeakers?: JSX.Element;\n\n // Call icons\n ControlButtonCameraOff?: JSX.Element;\n ControlButtonCameraOn?: JSX.Element;\n ControlButtonEndCall?: JSX.Element;\n ControlButtonMicOff?: JSX.Element;\n ControlButtonMicOn?: JSX.Element;\n ControlButtonOptions?: JSX.Element;\n ControlButtonScreenShareStart?: JSX.Element;\n ControlButtonScreenShareStop?: JSX.Element;\n ErrorBarCallCameraAccessDenied?: JSX.Element;\n ErrorBarCallCameraAlreadyInUse?: JSX.Element;\n ErrorBarCallLocalVideoFreeze?: JSX.Element;\n ErrorBarCallMacOsCameraAccessDenied?: JSX.Element;\n ErrorBarCallMacOsMicrophoneAccessDenied?: JSX.Element;\n ErrorBarCallMicrophoneAccessDenied?: JSX.Element;\n ErrorBarCallMicrophoneMutedBySystem?: JSX.Element;\n ErrorBarCallMicrophoneUnmutedBySystem?: JSX.Element;\n ErrorBarCallNetworkQualityLow?: JSX.Element;\n ErrorBarCallNoMicrophoneFound?: JSX.Element;\n ErrorBarCallNoSpeakerFound?: JSX.Element;\n ErrorBarClear?: JSX.Element;\n HorizontalGalleryLeftButton?: JSX.Element;\n HorizontalGalleryRightButton?: JSX.Element;\n LobbyScreenConnectingToCall?: JSX.Element;\n LobbyScreenWaitingToBeAdmitted?: JSX.Element;\n LocalDeviceSettingsCamera?: JSX.Element;\n LocalDeviceSettingsMic?: JSX.Element;\n LocalDeviceSettingsSpeaker?: JSX.Element;\n LocalPreviewPlaceholder?: JSX.Element;\n Muted?: JSX.Element;\n NetworkReconnectIcon?: JSX.Element;\n NoticePageAccessDeniedTeamsMeeting?: JSX.Element;\n NoticePageJoinCallFailedDueToNoNetwork?: JSX.Element;\n NoticePageLeftCall?: JSX.Element;\n NoticePageRemovedFromCall?: JSX.Element;\n OptionsCamera?: JSX.Element;\n OptionsMic?: JSX.Element;\n OptionsSpeaker?: JSX.Element;\n ParticipantItemMicOff?: JSX.Element;\n ParticipantItemScreenShareStart?: JSX.Element;\n VideoTileMicOff?: JSX.Element;\n LocalCameraSwitch?: JSX.Element;\n /* @conditional-compile-remove(PSTN-calls) */\n PeoplePaneAddPerson?: JSX.Element;\n /* @conditional-compile-remove(PSTN-calls) */\n PeoplePaneOpenDialpad?: JSX.Element;\n /* @conditional-compile-remove(PSTN-calls) */\n DialpadStartCall?: JSX.Element;\n\n // Chat icons\n EditBoxCancel?: JSX.Element;\n EditBoxSubmit?: JSX.Element;\n MessageDelivered?: JSX.Element;\n MessageEdit?: JSX.Element;\n MessageFailed?: JSX.Element;\n MessageRemove?: JSX.Element;\n MessageSeen?: JSX.Element;\n MessageSending?: JSX.Element;\n SendBoxSend?: JSX.Element;\n SendBoxSendHovered?: JSX.Element;\n SendBoxAttachFile?: JSX.Element;\n\n // Icons common to Call and Chat.\n ParticipantItemOptions?: JSX.Element;\n ParticipantItemOptionsHovered?: JSX.Element;\n};\n\n/**\n * Icon wrapper to use when including customizable icons inside the CallWithChatComposite.\n * This wrapper ensures the icon name is being type-checked helping ensure no typos\n * and ensure that icon is customizable through the composite API.\n *\n * @private\n */\nexport const CallWithChatCompositeIcon = (props: CompositeIconProps<CallWithChatCompositeIcons>): JSX.Element => (\n <FontIcon {...props} />\n);\n\n/**\n * Icons that can be overridden in one of the composites exported by this library.\n *\n * See {@link ChatCompositeIcons}, {@link CallCompositeIcons} and {@link CallWithChatCompositeIcons} for more targeted types.\n *\n * @public\n */\nexport type CompositeIcons = ChatCompositeIcons & CallCompositeIcons & CallWithChatCompositeIcons;\n\"../../../../react-components/src\""]}
|
package/dist/dist-esm/react-composites/src/composites/localization/locales/en-US/strings.json
CHANGED
@@ -36,6 +36,8 @@
|
|
36
36
|
"mutedMessage": "You're muted",
|
37
37
|
"networkReconnectMoreDetails": "Looks like something went wrong. We're trying to get back into the call.",
|
38
38
|
"networkReconnectTitle": "Hold on",
|
39
|
+
"deniedPermissionToRoomDetails": "You do not have permission to join this room.",
|
40
|
+
"deniedPermissionToRoomTitle": "Permission denied to room",
|
39
41
|
"peopleButtonLabel": "People",
|
40
42
|
"peoplePaneTitle": "People",
|
41
43
|
"peoplePaneSubTitle": "In this call",
|
@@ -46,6 +48,8 @@
|
|
46
48
|
"removeMenuLabel": "Remove",
|
47
49
|
"returnToCallButtonAriaDescription": "Return to Call",
|
48
50
|
"returnToCallButtonAriaLabel": "Back",
|
51
|
+
"roomNotFoundDetails": "Room ID provided is not valid.",
|
52
|
+
"roomNotFoundTitle": "Room not found",
|
49
53
|
"soundLabel": "Sound",
|
50
54
|
"startCallButtonLabel": "Start call",
|
51
55
|
"openDialpadButtonLabel": "Dial phone number",
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@azure/communication-react",
|
3
|
-
"version": "1.3.3-alpha-
|
3
|
+
"version": "1.3.3-alpha-202209160028.0",
|
4
4
|
"sideEffects": false,
|
5
5
|
"description": "React library for building modern communication user experiences utilizing Azure Communication Services",
|
6
6
|
"keywords": [
|
@@ -86,13 +86,13 @@
|
|
86
86
|
"@azure/core-auth": "1.3.2",
|
87
87
|
"@babel/cli": "~7.16.0",
|
88
88
|
"@babel/core": "~7.16.0",
|
89
|
-
"@internal/calling-component-bindings": "1.3.3-alpha-
|
90
|
-
"@internal/calling-stateful-client": "1.3.3-alpha-
|
91
|
-
"@internal/chat-component-bindings": "1.3.3-alpha-
|
92
|
-
"@internal/chat-stateful-client": "1.3.3-alpha-
|
93
|
-
"@internal/fake-backends": "1.3.3-alpha-
|
94
|
-
"@internal/react-components": "1.3.3-alpha-
|
95
|
-
"@internal/react-composites": "1.3.3-alpha-
|
89
|
+
"@internal/calling-component-bindings": "1.3.3-alpha-202209160028.0",
|
90
|
+
"@internal/calling-stateful-client": "1.3.3-alpha-202209160028.0",
|
91
|
+
"@internal/chat-component-bindings": "1.3.3-alpha-202209160028.0",
|
92
|
+
"@internal/chat-stateful-client": "1.3.3-alpha-202209160028.0",
|
93
|
+
"@internal/fake-backends": "1.3.3-alpha-202209160028.0",
|
94
|
+
"@internal/react-components": "1.3.3-alpha-202209160028.0",
|
95
|
+
"@internal/react-composites": "1.3.3-alpha-202209160028.0",
|
96
96
|
"@microsoft/api-documenter": "~7.12.11",
|
97
97
|
"@microsoft/api-extractor": "~7.18.0",
|
98
98
|
"@rollup/plugin-json": "~4.1.0",
|