@azure/communication-react 1.2.3-alpha-202206160013.0 → 1.2.3-alpha-202206210013.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (71) hide show
  1. package/dist/communication-react.d.ts +8 -2
  2. package/dist/dist-cjs/communication-react/index.js +56 -41
  3. package/dist/dist-cjs/communication-react/index.js.map +1 -1
  4. package/dist/dist-esm/acs-ui-common/src/telemetryVersion.js +1 -1
  5. package/dist/dist-esm/calling-component-bindings/src/errorBarSelector.d.ts.map +1 -1
  6. package/dist/dist-esm/calling-component-bindings/src/errorBarSelector.js +12 -11
  7. package/dist/dist-esm/calling-component-bindings/src/errorBarSelector.js.map +1 -1
  8. package/dist/dist-esm/react-components/src/components/ChatMessage/ChatMessageActionsFlyout.d.ts.map +1 -1
  9. package/dist/dist-esm/react-components/src/components/ChatMessage/ChatMessageActionsFlyout.js +1 -0
  10. package/dist/dist-esm/react-components/src/components/ChatMessage/ChatMessageActionsFlyout.js.map +1 -1
  11. package/dist/dist-esm/react-components/src/components/MessageThread.d.ts.map +1 -1
  12. package/dist/dist-esm/react-components/src/components/MessageThread.js +2 -1
  13. package/dist/dist-esm/react-components/src/components/MessageThread.js.map +1 -1
  14. package/dist/dist-esm/react-components/src/components/ParticipantItem.d.ts +2 -0
  15. package/dist/dist-esm/react-components/src/components/ParticipantItem.d.ts.map +1 -1
  16. package/dist/dist-esm/react-components/src/components/ParticipantItem.js +3 -2
  17. package/dist/dist-esm/react-components/src/components/ParticipantItem.js.map +1 -1
  18. package/dist/dist-esm/react-components/src/components/ParticipantList.d.ts +2 -0
  19. package/dist/dist-esm/react-components/src/components/ParticipantList.d.ts.map +1 -1
  20. package/dist/dist-esm/react-components/src/components/ParticipantList.js +4 -4
  21. package/dist/dist-esm/react-components/src/components/ParticipantList.js.map +1 -1
  22. package/dist/dist-esm/react-components/src/components/ParticipantsButton.d.ts +2 -0
  23. package/dist/dist-esm/react-components/src/components/ParticipantsButton.d.ts.map +1 -1
  24. package/dist/dist-esm/react-components/src/components/ParticipantsButton.js +4 -3
  25. package/dist/dist-esm/react-components/src/components/ParticipantsButton.js.map +1 -1
  26. package/dist/dist-esm/react-components/src/components/VideoTile.d.ts.map +1 -1
  27. package/dist/dist-esm/react-components/src/components/VideoTile.js +1 -1
  28. package/dist/dist-esm/react-components/src/components/VideoTile.js.map +1 -1
  29. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/AzureCommunicationCallAdapter.d.ts +2 -2
  30. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/AzureCommunicationCallAdapter.d.ts.map +1 -1
  31. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/AzureCommunicationCallAdapter.js +12 -3
  32. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/AzureCommunicationCallAdapter.js.map +1 -1
  33. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/CallAdapter.d.ts +2 -2
  34. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/CallAdapter.d.ts.map +1 -1
  35. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/CallArrangement.d.ts.map +1 -1
  36. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/CallArrangement.js +1 -1
  37. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/CallArrangement.js.map +1 -1
  38. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/CallControls.d.ts +1 -0
  39. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/CallControls.d.ts.map +1 -1
  40. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/CallControls.js +1 -1
  41. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/CallControls.js.map +1 -1
  42. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/buttons/Participants.d.ts +1 -0
  43. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/buttons/Participants.d.ts.map +1 -1
  44. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/buttons/Participants.js +1 -1
  45. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/buttons/Participants.js.map +1 -1
  46. package/dist/dist-esm/react-composites/src/composites/CallComposite/hooks/useHandlers.js +2 -2
  47. package/dist/dist-esm/react-composites/src/composites/CallComposite/hooks/useHandlers.js.map +1 -1
  48. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/AzureCommunicationCallWithChatAdapter.d.ts +2 -2
  49. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/AzureCommunicationCallWithChatAdapter.d.ts.map +1 -1
  50. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/AzureCommunicationCallWithChatAdapter.js +2 -2
  51. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/AzureCommunicationCallWithChatAdapter.js.map +1 -1
  52. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/CallWithChatAdapter.d.ts +2 -2
  53. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/CallWithChatAdapter.d.ts.map +1 -1
  54. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/CallWithChatBackedCallAdapter.d.ts +2 -2
  55. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/CallWithChatBackedCallAdapter.d.ts.map +1 -1
  56. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/CallWithChatBackedCallAdapter.js +2 -2
  57. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/CallWithChatBackedCallAdapter.js.map +1 -1
  58. package/dist/dist-esm/react-composites/src/composites/ChatComposite/ChatScreen.d.ts.map +1 -1
  59. package/dist/dist-esm/react-composites/src/composites/ChatComposite/ChatScreen.js +1 -1
  60. package/dist/dist-esm/react-composites/src/composites/ChatComposite/ChatScreen.js.map +1 -1
  61. package/dist/dist-esm/react-composites/src/composites/ChatComposite/ChatScreenPeoplePane.d.ts +1 -0
  62. package/dist/dist-esm/react-composites/src/composites/ChatComposite/ChatScreenPeoplePane.d.ts.map +1 -1
  63. package/dist/dist-esm/react-composites/src/composites/ChatComposite/ChatScreenPeoplePane.js +2 -2
  64. package/dist/dist-esm/react-composites/src/composites/ChatComposite/ChatScreenPeoplePane.js.map +1 -1
  65. package/dist/dist-esm/react-composites/src/composites/common/AvatarPersona.d.ts.map +1 -1
  66. package/dist/dist-esm/react-composites/src/composites/common/AvatarPersona.js +4 -2
  67. package/dist/dist-esm/react-composites/src/composites/common/AvatarPersona.js.map +1 -1
  68. package/dist/dist-esm/react-composites/src/composites/common/ParticipantContainer.d.ts.map +1 -1
  69. package/dist/dist-esm/react-composites/src/composites/common/ParticipantContainer.js +1 -1
  70. package/dist/dist-esm/react-composites/src/composites/common/ParticipantContainer.js.map +1 -1
  71. package/package.json +7 -7
@@ -410,7 +410,7 @@ export declare interface CallAdapterCallManagement {
410
410
  *
411
411
  * @public
412
412
  */
413
- startCall(participants: string[]): Call | undefined;
413
+ startCall(participants: string[], options?: StartCallOptions): Call | undefined;
414
414
  /**
415
415
  * Start sharing the screen during a call.
416
416
  *
@@ -1530,7 +1530,7 @@ export declare interface CallWithChatAdapterManagement {
1530
1530
  *
1531
1531
  * @public
1532
1532
  */
1533
- startCall(participants: string[]): Call | undefined;
1533
+ startCall(participants: string[], options?: StartCallOptions): Call | undefined;
1534
1534
  /**
1535
1535
  * Start sharing the screen during a call.
1536
1536
  *
@@ -5557,6 +5557,8 @@ export declare interface ParticipantItemProps {
5557
5557
  * Optional callback when component is clicked
5558
5558
  */
5559
5559
  onClick?: (props?: ParticipantItemProps) => void;
5560
+ /** prop to determine if we should show tooltip for participants or not */
5561
+ showParticipantOverflowTooltip?: boolean;
5560
5562
  }
5561
5563
 
5562
5564
  /**
@@ -5654,6 +5656,8 @@ export declare type ParticipantListProps = {
5654
5656
  onParticipantClick?: (participant?: ParticipantListParticipant) => void;
5655
5657
  /** Styles for the {@link ParticipantList} */
5656
5658
  styles?: ParticipantListStyles;
5659
+ /** prop to determine if we should show tooltip for participants or not */
5660
+ showParticipantOverflowTooltip?: boolean;
5657
5661
  };
5658
5662
 
5659
5663
  /**
@@ -5788,6 +5792,8 @@ export declare interface ParticipantsButtonProps extends ControlBarButtonProps {
5788
5792
  * Optional strings to override in component
5789
5793
  */
5790
5794
  strings?: Partial<ParticipantsButtonStrings>;
5795
+ /** prop to determine if we should show tooltip for participants or not */
5796
+ showParticipantOverflowTooltip?: boolean;
5791
5797
  }
5792
5798
 
5793
5799
  /**
@@ -191,7 +191,7 @@ const fromFlatCommunicationIdentifier = (id) => {
191
191
  // Copyright (c) Microsoft Corporation.
192
192
  // Licensed under the MIT license.
193
193
  // GENERATED FILE. DO NOT EDIT MANUALLY.
194
- var telemetryVersion = '1.2.3-alpha-202206160013.0';
194
+ var telemetryVersion = '1.2.3-alpha-202206210013.0';
195
195
 
196
196
  // Copyright (c) Microsoft Corporation.
197
197
  /**
@@ -2990,6 +2990,7 @@ const ChatMessageActionFlyout = (props) => {
2990
2990
  hidePersonaDetails: true,
2991
2991
  size: react.PersonaSize.size24,
2992
2992
  text: person.displayName,
2993
+ showOverflowTooltip: false,
2993
2994
  styles: {
2994
2995
  root: {
2995
2996
  margin: '0.25rem'
@@ -3610,7 +3611,8 @@ const memoizeAllMessages = memoizeFnAll((_messageKey, message, showMessageDate,
3610
3611
  const personaOptions = {
3611
3612
  hidePersonaDetails: true,
3612
3613
  size: react.PersonaSize.size32,
3613
- text: message.senderDisplayName
3614
+ text: message.senderDisplayName,
3615
+ showOverflowTooltip: false
3614
3616
  };
3615
3617
  const chatItemMessageStyle = (message.mine ? styles === null || styles === void 0 ? void 0 : styles.myChatItemMessageContainer : styles === null || styles === void 0 ? void 0 : styles.chatItemMessageContainer) ||
3616
3618
  defaultChatItemMessageContainer(shouldOverlapAvatarAndMessage);
@@ -4172,7 +4174,7 @@ const meContainerStyle = {
4172
4174
  */
4173
4175
  const ParticipantItem = (props) => {
4174
4176
  var _a, _b, _c, _d;
4175
- const { userId, displayName, onRenderAvatar, menuItems, onRenderIcon, presence, styles, me, onClick } = props;
4177
+ const { userId, displayName, onRenderAvatar, menuItems, onRenderIcon, presence, styles, me, onClick, showParticipantOverflowTooltip } = props;
4176
4178
  const [itemHovered, setItemHovered] = React.useState(false);
4177
4179
  const [menuHidden, setMenuHidden] = React.useState(true);
4178
4180
  const containerRef = React.useRef(null);
@@ -4185,7 +4187,8 @@ const ParticipantItem = (props) => {
4185
4187
  text: displayName,
4186
4188
  size: react.PersonaSize.size32,
4187
4189
  presence: presence,
4188
- initialsTextColor: 'white'
4190
+ initialsTextColor: 'white',
4191
+ showOverflowTooltip: showParticipantOverflowTooltip
4189
4192
  };
4190
4193
  const avatar = onRenderAvatar ? (onRenderAvatar(userId !== null && userId !== void 0 ? userId : '', avatarOptions)) : (React__default['default'].createElement(react.Persona, Object.assign({ className: react.mergeStyles({
4191
4194
  // Prevents persona text from being vertically truncated if a global line height is less than 1.15.
@@ -4254,7 +4257,7 @@ const iconStyles$1 = react.mergeStyles({
4254
4257
  });
4255
4258
 
4256
4259
  // Copyright (c) Microsoft Corporation.
4257
- const onRenderParticipantDefault = (participant, strings, myUserId, onRenderAvatar, createParticipantMenuItems, styles, onParticipantClick) => {
4260
+ const onRenderParticipantDefault = (participant, strings, myUserId, onRenderAvatar, createParticipantMenuItems, styles, onParticipantClick, showParticipantOverflowTooltip) => {
4258
4261
  const callingParticipant = participant;
4259
4262
  let presence = undefined;
4260
4263
  if (callingParticipant) {
@@ -4272,7 +4275,7 @@ const onRenderParticipantDefault = (participant, strings, myUserId, onRenderAvat
4272
4275
  callingParticipant.isMuted && (React__default['default'].createElement(react.Icon, { iconName: "ParticipantItemMicOff", className: iconStyles$1, ariaLabel: strings.mutedIconLabel }))))
4273
4276
  : () => null;
4274
4277
  const displayName = !participant.displayName ? strings.displayNamePlaceholder : participant.displayName;
4275
- return (React__default['default'].createElement(ParticipantItem, { styles: styles, key: participant.userId, userId: participant.userId, displayName: displayName, me: myUserId ? participant.userId === myUserId : false, menuItems: menuItems, presence: presence, onRenderIcon: onRenderIcon, onRenderAvatar: onRenderAvatar, onClick: () => onParticipantClick === null || onParticipantClick === void 0 ? void 0 : onParticipantClick(participant) }));
4278
+ return (React__default['default'].createElement(ParticipantItem, { styles: styles, key: participant.userId, userId: participant.userId, displayName: displayName, me: myUserId ? participant.userId === myUserId : false, menuItems: menuItems, presence: presence, onRenderIcon: onRenderIcon, onRenderAvatar: onRenderAvatar, onClick: () => onParticipantClick === null || onParticipantClick === void 0 ? void 0 : onParticipantClick(participant), showParticipantOverflowTooltip: showParticipantOverflowTooltip }));
4276
4279
  };
4277
4280
  const getParticipantsForDefaultRender = (participants, excludeMe, myUserId) => {
4278
4281
  if (!excludeMe || !myUserId) {
@@ -4295,7 +4298,7 @@ const getParticipantsForDefaultRender = (participants, excludeMe, myUserId) => {
4295
4298
  */
4296
4299
  const ParticipantList = (props) => {
4297
4300
  var _a, _b;
4298
- const { excludeMe = false, myUserId, participants, onRemoveParticipant, onRenderAvatar, onRenderParticipant, onFetchParticipantMenuItems } = props;
4301
+ const { excludeMe = false, myUserId, participants, onRemoveParticipant, onRenderAvatar, onRenderParticipant, onFetchParticipantMenuItems, showParticipantOverflowTooltip } = props;
4299
4302
  const ids = useIdentifiers();
4300
4303
  const strings = useLocale$1().strings.participantItem;
4301
4304
  const displayedParticipants = React.useMemo(() => {
@@ -4324,7 +4327,7 @@ const ParticipantList = (props) => {
4324
4327
  const participantItemStyles = react.merge(participantListItemStyle, (_a = props.styles) === null || _a === void 0 ? void 0 : _a.participantItemStyles);
4325
4328
  return (React__default['default'].createElement(react.Stack, { "data-ui-id": ids.participantList, className: react.mergeStyles(participantListStyle$1, (_b = props.styles) === null || _b === void 0 ? void 0 : _b.root) }, displayedParticipants.map((participant) => onRenderParticipant
4326
4329
  ? onRenderParticipant(participant)
4327
- : onRenderParticipantDefault(participant, strings, myUserId, onRenderAvatar, createParticipantMenuItems, participantItemStyles, props.onParticipantClick))));
4330
+ : onRenderParticipantDefault(participant, strings, myUserId, onRenderAvatar, createParticipantMenuItems, participantItemStyles, props.onParticipantClick, showParticipantOverflowTooltip))));
4328
4331
  };
4329
4332
 
4330
4333
  /**
@@ -4580,7 +4583,7 @@ const DEFAULT_PERSONA_MIN_SIZE_PX = 32;
4580
4583
  const DefaultPlaceholder = (props) => {
4581
4584
  const { text, noVideoAvailableAriaLabel, coinSize, styles, hidePersonaDetails } = props;
4582
4585
  return (React__default['default'].createElement(react.Stack, { className: react.mergeStyles({ position: 'absolute', height: '100%', width: '100%' }) },
4583
- React__default['default'].createElement(react.Persona, { styles: styles, coinSize: coinSize, hidePersonaDetails: hidePersonaDetails, text: text !== null && text !== void 0 ? text : '', initialsTextColor: "white", "aria-label": noVideoAvailableAriaLabel !== null && noVideoAvailableAriaLabel !== void 0 ? noVideoAvailableAriaLabel : '' })));
4586
+ React__default['default'].createElement(react.Persona, { styles: styles, coinSize: coinSize, hidePersonaDetails: hidePersonaDetails, text: text !== null && text !== void 0 ? text : '', initialsTextColor: "white", "aria-label": noVideoAvailableAriaLabel !== null && noVideoAvailableAriaLabel !== void 0 ? noVideoAvailableAriaLabel : '', showOverflowTooltip: false })));
4584
4587
  };
4585
4588
  const defaultPersonaStyles = { root: { margin: 'auto', maxHeight: '100%' } };
4586
4589
  /**
@@ -6659,7 +6662,7 @@ const MicrophoneButton = (props) => {
6659
6662
  */
6660
6663
  const ParticipantsButton = (props) => {
6661
6664
  var _a, _b, _c, _d;
6662
- const { callInvitationURL, styles, onMuteAll, onRenderIcon, onRenderParticipantList, participants, myUserId, excludeMe, onRenderParticipant, onRenderAvatar, onRemoveParticipant, onFetchParticipantMenuItems } = props;
6665
+ const { callInvitationURL, styles, onMuteAll, onRenderIcon, onRenderParticipantList, participants, myUserId, excludeMe, onRenderParticipant, onRenderAvatar, onRemoveParticipant, onFetchParticipantMenuItems, showParticipantOverflowTooltip } = props;
6663
6666
  const onRenderPeopleIcon = () => (React__default['default'].createElement(HighContrastAwareIcon, { disabled: props.disabled, iconName: "ControlButtonParticipants" }));
6664
6667
  const ids = useIdentifiers();
6665
6668
  const onMuteAllCallback = React.useCallback(() => {
@@ -6669,7 +6672,7 @@ const ParticipantsButton = (props) => {
6669
6672
  }, [onMuteAll]);
6670
6673
  const defaultParticipantList = React.useCallback(() => {
6671
6674
  var _a;
6672
- return (React__default['default'].createElement(ParticipantList, { participants: participants, myUserId: myUserId, excludeMe: excludeMe, onRenderParticipant: onRenderParticipant, onRenderAvatar: onRenderAvatar, onRemoveParticipant: onRemoveParticipant, onFetchParticipantMenuItems: onFetchParticipantMenuItems, styles: react.merge(defaultParticipantListContainerStyle, (_a = styles === null || styles === void 0 ? void 0 : styles.menuStyles) === null || _a === void 0 ? void 0 : _a.participantListStyles) }));
6675
+ return (React__default['default'].createElement(ParticipantList, { participants: participants, myUserId: myUserId, excludeMe: excludeMe, onRenderParticipant: onRenderParticipant, onRenderAvatar: onRenderAvatar, onRemoveParticipant: onRemoveParticipant, onFetchParticipantMenuItems: onFetchParticipantMenuItems, styles: react.merge(defaultParticipantListContainerStyle, (_a = styles === null || styles === void 0 ? void 0 : styles.menuStyles) === null || _a === void 0 ? void 0 : _a.participantListStyles), showParticipantOverflowTooltip: showParticipantOverflowTooltip }));
6673
6676
  }, [
6674
6677
  excludeMe,
6675
6678
  myUserId,
@@ -6678,7 +6681,8 @@ const ParticipantsButton = (props) => {
6678
6681
  onRenderParticipant,
6679
6682
  participants,
6680
6683
  (_a = styles === null || styles === void 0 ? void 0 : styles.menuStyles) === null || _a === void 0 ? void 0 : _a.participantListStyles,
6681
- onFetchParticipantMenuItems
6684
+ onFetchParticipantMenuItems,
6685
+ showParticipantOverflowTooltip
6682
6686
  ]);
6683
6687
  const onCopyCallback = React.useCallback(() => {
6684
6688
  if (callInvitationURL) {
@@ -7859,7 +7863,7 @@ const useSelector$4 = (selector, selectorProps) => {
7859
7863
  * @public
7860
7864
  */
7861
7865
  const errorBarSelector$1 = reselect.createSelector([getLatestErrors$1, getDiagnostics, getDeviceManager$1], (latestErrors, diagnostics, deviceManager) => {
7862
- var _a, _b, _c, _d, _e;
7866
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o;
7863
7867
  // The order in which the errors are returned is significant: The `ErrorBar` shows errors on the UI in that order.
7864
7868
  // There are several options for the ordering:
7865
7869
  // - Sorted by when the errors happened (latest first / oldest first).
@@ -7873,33 +7877,34 @@ const errorBarSelector$1 = reselect.createSelector([getLatestErrors$1, getDiagno
7873
7877
  ((_b = diagnostics === null || diagnostics === void 0 ? void 0 : diagnostics.network.latest.networkReceiveQuality) === null || _b === void 0 ? void 0 : _b.value) === communicationCalling.DiagnosticQuality.Poor) {
7874
7878
  activeErrorMessages.push({ type: 'callNetworkQualityLow' });
7875
7879
  }
7876
- if (diagnostics === null || diagnostics === void 0 ? void 0 : diagnostics.media.latest.noSpeakerDevicesEnumerated) {
7880
+ if (((_c = diagnostics === null || diagnostics === void 0 ? void 0 : diagnostics.media.latest.noSpeakerDevicesEnumerated) === null || _c === void 0 ? void 0 : _c.value) === true) {
7877
7881
  activeErrorMessages.push({ type: 'callNoSpeakerFound' });
7878
7882
  }
7879
- if (diagnostics === null || diagnostics === void 0 ? void 0 : diagnostics.media.latest.noMicrophoneDevicesEnumerated) {
7883
+ if (((_d = diagnostics === null || diagnostics === void 0 ? void 0 : diagnostics.media.latest.noMicrophoneDevicesEnumerated) === null || _d === void 0 ? void 0 : _d.value) === true) {
7880
7884
  activeErrorMessages.push({ type: 'callNoMicrophoneFound' });
7881
7885
  }
7882
- if (((_c = deviceManager.deviceAccess) === null || _c === void 0 ? void 0 : _c.audio) === false || (diagnostics === null || diagnostics === void 0 ? void 0 : diagnostics.media.latest.microphoneNotFunctioning)) {
7886
+ if (((_e = deviceManager.deviceAccess) === null || _e === void 0 ? void 0 : _e.audio) === false ||
7887
+ ((_f = diagnostics === null || diagnostics === void 0 ? void 0 : diagnostics.media.latest.microphoneNotFunctioning) === null || _f === void 0 ? void 0 : _f.value) === true) {
7883
7888
  activeErrorMessages.push({ type: 'callMicrophoneAccessDenied' });
7884
7889
  }
7885
- if (diagnostics === null || diagnostics === void 0 ? void 0 : diagnostics.media.latest.microphoneMuteUnexpectedly) {
7890
+ if (((_g = diagnostics === null || diagnostics === void 0 ? void 0 : diagnostics.media.latest.microphoneMuteUnexpectedly) === null || _g === void 0 ? void 0 : _g.value) === true) {
7886
7891
  activeErrorMessages.push({ type: 'callMicrophoneMutedBySystem' });
7887
7892
  }
7888
- if (diagnostics === null || diagnostics === void 0 ? void 0 : diagnostics.media.latest.microphonePermissionDenied) {
7893
+ if (((_h = diagnostics === null || diagnostics === void 0 ? void 0 : diagnostics.media.latest.microphonePermissionDenied) === null || _h === void 0 ? void 0 : _h.value) === true) {
7889
7894
  activeErrorMessages.push({ type: 'callMacOsMicrophoneAccessDenied' });
7890
7895
  }
7891
- if (((_d = deviceManager.deviceAccess) === null || _d === void 0 ? void 0 : _d.video) === false) {
7896
+ if (((_j = deviceManager.deviceAccess) === null || _j === void 0 ? void 0 : _j.video) === false) {
7892
7897
  activeErrorMessages.push({ type: 'callCameraAccessDenied' });
7893
7898
  }
7894
7899
  else {
7895
- if (diagnostics === null || diagnostics === void 0 ? void 0 : diagnostics.media.latest.cameraFreeze) {
7900
+ if (((_k = diagnostics === null || diagnostics === void 0 ? void 0 : diagnostics.media.latest.cameraFreeze) === null || _k === void 0 ? void 0 : _k.value) === true) {
7896
7901
  activeErrorMessages.push({ type: 'callCameraAlreadyInUse' });
7897
7902
  }
7898
7903
  }
7899
- if (diagnostics === null || diagnostics === void 0 ? void 0 : diagnostics.media.latest.cameraPermissionDenied) {
7904
+ if (((_l = diagnostics === null || diagnostics === void 0 ? void 0 : diagnostics.media.latest.cameraPermissionDenied) === null || _l === void 0 ? void 0 : _l.value) === true) {
7900
7905
  activeErrorMessages.push({ type: 'callMacOsCameraAccessDenied' });
7901
7906
  }
7902
- if (diagnostics === null || diagnostics === void 0 ? void 0 : diagnostics.media.latest.screenshareRecordingDisabled) {
7907
+ if (((_m = diagnostics === null || diagnostics === void 0 ? void 0 : diagnostics.media.latest.screenshareRecordingDisabled) === null || _m === void 0 ? void 0 : _m.value) === true) {
7903
7908
  activeErrorMessages.push({ type: 'callMacOsScreenShareAccessDenied' });
7904
7909
  }
7905
7910
  // Prefer to show errors with privacy implications.
@@ -7908,7 +7913,7 @@ const errorBarSelector$1 = reselect.createSelector([getLatestErrors$1, getDiagno
7908
7913
  appendActiveErrorIfDefined(activeErrorMessages, latestErrors, 'Call.stopScreenSharing', 'stopScreenShareGeneric');
7909
7914
  appendActiveErrorIfDefined(activeErrorMessages, latestErrors, 'Call.startVideo', 'startVideoGeneric');
7910
7915
  appendActiveErrorIfDefined(activeErrorMessages, latestErrors, 'Call.unmute', 'unmuteGeneric');
7911
- if (((_e = latestErrors['CallAgent.join']) === null || _e === void 0 ? void 0 : _e.message) === 'CallAgent.join: Invalid meeting link') {
7916
+ if (((_o = latestErrors['CallAgent.join']) === null || _o === void 0 ? void 0 : _o.message) === 'CallAgent.join: Invalid meeting link') {
7912
7917
  appendActiveErrorIfDefined(activeErrorMessages, latestErrors, 'CallAgent.join', 'failedToJoinCallInvalidMeetingLink');
7913
7918
  }
7914
7919
  else {
@@ -13290,12 +13295,14 @@ const avatarDeepDifferenceCheck = (currentData, newData) => {
13290
13295
  */
13291
13296
  const AvatarPersona = (props) => {
13292
13297
  var _a, _b, _c, _d, _e, _f;
13293
- const { userId, dataProvider, text, imageUrl, imageInitials, initialsColor, initialsTextColor } = props;
13298
+ const { userId, dataProvider, text, imageUrl, imageInitials, initialsColor, initialsTextColor, showOverflowTooltip } = props;
13294
13299
  const userIds = React.useMemo(() => {
13295
13300
  return [userId];
13296
13301
  }, [userId]);
13297
13302
  const [data] = useCustomAvatarPersonaData(userIds, dataProvider);
13298
- return (React__default['default'].createElement(react.Persona, Object.assign({}, props, { text: (_a = data === null || data === void 0 ? void 0 : data.text) !== null && _a !== void 0 ? _a : text, imageUrl: (_b = data === null || data === void 0 ? void 0 : data.imageUrl) !== null && _b !== void 0 ? _b : imageUrl, imageInitials: (_c = data === null || data === void 0 ? void 0 : data.imageInitials) !== null && _c !== void 0 ? _c : imageInitials, initialsColor: (_d = data === null || data === void 0 ? void 0 : data.initialsColor) !== null && _d !== void 0 ? _d : initialsColor, initialsTextColor: (_f = (_e = data === null || data === void 0 ? void 0 : data.initialsTextColor) !== null && _e !== void 0 ? _e : initialsTextColor) !== null && _f !== void 0 ? _f : 'white' })));
13303
+ return (React__default['default'].createElement(react.Persona, Object.assign({}, props, { text: (_a = data === null || data === void 0 ? void 0 : data.text) !== null && _a !== void 0 ? _a : text, imageUrl: (_b = data === null || data === void 0 ? void 0 : data.imageUrl) !== null && _b !== void 0 ? _b : imageUrl, imageInitials: (_c = data === null || data === void 0 ? void 0 : data.imageInitials) !== null && _c !== void 0 ? _c : imageInitials, initialsColor: (_d = data === null || data === void 0 ? void 0 : data.initialsColor) !== null && _d !== void 0 ? _d : initialsColor, initialsTextColor: (_f = (_e = data === null || data === void 0 ? void 0 : data.initialsTextColor) !== null && _e !== void 0 ? _e : initialsTextColor) !== null && _f !== void 0 ? _f : 'white',
13304
+ // default disable tooltip unless specified
13305
+ showOverflowTooltip: showOverflowTooltip !== null && showOverflowTooltip !== void 0 ? showOverflowTooltip : false })));
13299
13306
  };
13300
13307
 
13301
13308
  // Copyright (c) Microsoft Corporation.
@@ -13556,7 +13563,7 @@ const ParticipantListWithHeading = (props) => {
13556
13563
  return (React__default['default'].createElement(react.Stack, { className: participantListStack },
13557
13564
  React__default['default'].createElement(react.Stack.Item, { styles: subheadingStyleThemed }, title),
13558
13565
  React__default['default'].createElement(react.FocusZone, { className: participantListContainerStyle },
13559
- React__default['default'].createElement(ParticipantList, Object.assign({}, participantListProps, { styles: props.isMobile ? participantListMobileStyle : participantListStyle, onRenderAvatar: (userId, options) => (React__default['default'].createElement(AvatarPersona, Object.assign({ "data-ui-id": "chat-composite-participant-custom-avatar", userId: userId }, options, { dataProvider: onFetchAvatarPersonaData }))), onFetchParticipantMenuItems: onFetchParticipantMenuItems })))));
13566
+ React__default['default'].createElement(ParticipantList, Object.assign({}, participantListProps, { styles: props.isMobile ? participantListMobileStyle : participantListStyle, onRenderAvatar: (userId, options) => (React__default['default'].createElement(AvatarPersona, Object.assign({ "data-ui-id": "chat-composite-participant-custom-avatar", userId: userId }, options, { dataProvider: onFetchAvatarPersonaData }))), onFetchParticipantMenuItems: onFetchParticipantMenuItems, showParticipantOverflowTooltip: !props.isMobile })))));
13560
13567
  };
13561
13568
 
13562
13569
  // Copyright (c) Microsoft Corporation.
@@ -13564,11 +13571,11 @@ const ParticipantListWithHeading = (props) => {
13564
13571
  * @private
13565
13572
  */
13566
13573
  const ChatScreenPeoplePane = (props) => {
13567
- const { onFetchAvatarPersonaData, onFetchParticipantMenuItems } = props;
13574
+ const { onFetchAvatarPersonaData, onFetchParticipantMenuItems, isMobile } = props;
13568
13575
  const locale = useLocale();
13569
13576
  const chatListHeader = locale.strings.chat.chatListHeader;
13570
13577
  const participantListProps = usePropsFor$2(ParticipantList);
13571
- return (React__default['default'].createElement(ParticipantContainer, { participantListProps: participantListProps, title: chatListHeader, onFetchAvatarPersonaData: onFetchAvatarPersonaData, onFetchParticipantMenuItems: onFetchParticipantMenuItems }));
13578
+ return (React__default['default'].createElement(ParticipantContainer, { participantListProps: participantListProps, title: chatListHeader, onFetchAvatarPersonaData: onFetchAvatarPersonaData, onFetchParticipantMenuItems: onFetchParticipantMenuItems, isMobile: isMobile }));
13572
13579
  };
13573
13580
 
13574
13581
  /**
@@ -13688,7 +13695,7 @@ const ChatScreen = (props) => {
13688
13695
  onCancelFileUpload: adapter.cancelFileUpload }))),
13689
13696
  formFactor !== 'mobile' && React__default['default'].createElement(AttachFileButton, null)))),
13690
13697
  /* @conditional-compile-remove(chat-composite-participant-pane) */
13691
- (options === null || options === void 0 ? void 0 : options.participantPane) === true && (React__default['default'].createElement(ChatScreenPeoplePane, { onFetchAvatarPersonaData: onFetchAvatarPersonaData, onFetchParticipantMenuItems: props.onFetchParticipantMenuItems })))));
13698
+ (options === null || options === void 0 ? void 0 : options.participantPane) === true && (React__default['default'].createElement(ChatScreenPeoplePane, { onFetchAvatarPersonaData: onFetchAvatarPersonaData, onFetchParticipantMenuItems: props.onFetchParticipantMenuItems, isMobile: formFactor === 'mobile' })))));
13692
13699
  };
13693
13700
 
13694
13701
  // Copyright (c) Microsoft Corporation.
@@ -13982,9 +13989,9 @@ const createCompositeHandlers = memoizeOne__default['default']((adapter) => ({
13982
13989
  onSelectSpeaker: (deviceInfo) => __awaiter$7(void 0, void 0, void 0, function* () {
13983
13990
  yield adapter.setSpeaker(deviceInfo);
13984
13991
  }),
13985
- onStartCall: (participants) => {
13992
+ onStartCall: (participants, options) => {
13986
13993
  const rawIds = participants.map((participant) => toFlatCommunicationIdentifier(participant));
13987
- return adapter.startCall(rawIds);
13994
+ return adapter.startCall(rawIds, options);
13988
13995
  },
13989
13996
  onStartScreenShare: () => __awaiter$7(void 0, void 0, void 0, function* () {
13990
13997
  yield adapter.startScreenShare();
@@ -14293,7 +14300,7 @@ const Participants = (props) => {
14293
14300
  var _a;
14294
14301
  return concatButtonBaseStyles(props.increaseFlyoutItemSize ? participantButtonWithIncreasedTouchTargets : {}, (_a = props.styles) !== null && _a !== void 0 ? _a : {});
14295
14302
  }, [props.increaseFlyoutItemSize, props.styles]);
14296
- return (React__default['default'].createElement(ParticipantsButton, Object.assign({ "data-ui-id": "call-composite-participants-button" }, participantsButtonProps, { showLabel: props.displayType !== 'compact', callInvitationURL: props.callInvitationURL, onFetchParticipantMenuItems: props.onFetchParticipantMenuItems, disabled: isDisabled$1(props.option), styles: participantsButtonStyles })));
14303
+ return (React__default['default'].createElement(ParticipantsButton, Object.assign({ "data-ui-id": "call-composite-participants-button" }, participantsButtonProps, { showLabel: props.displayType !== 'compact', callInvitationURL: props.callInvitationURL, onFetchParticipantMenuItems: props.onFetchParticipantMenuItems, disabled: isDisabled$1(props.option), styles: participantsButtonStyles, showParticipantOverflowTooltip: !props.isMobile })));
14297
14304
  };
14298
14305
  const isDisabled$1 = (option) => {
14299
14306
  if (option === undefined || option === true || option === false) {
@@ -14334,7 +14341,7 @@ const CallControls = (props) => {
14334
14341
  isEnabled$2(options === null || options === void 0 ? void 0 : options.microphoneButton) && React__default['default'].createElement(Microphone, { displayType: options === null || options === void 0 ? void 0 : options.displayType }),
14335
14342
  isEnabled$2(options === null || options === void 0 ? void 0 : options.cameraButton) && React__default['default'].createElement(Camera, { displayType: options === null || options === void 0 ? void 0 : options.displayType }),
14336
14343
  isEnabled$2(options === null || options === void 0 ? void 0 : options.screenShareButton) && (React__default['default'].createElement(ScreenShare, { option: options === null || options === void 0 ? void 0 : options.screenShareButton, displayType: options === null || options === void 0 ? void 0 : options.displayType })),
14337
- isEnabled$2(options === null || options === void 0 ? void 0 : options.participantsButton) && (React__default['default'].createElement(Participants, { option: options === null || options === void 0 ? void 0 : options.participantsButton, callInvitationURL: props.callInvitationURL, onFetchParticipantMenuItems: props.onFetchParticipantMenuItems, displayType: options === null || options === void 0 ? void 0 : options.displayType, increaseFlyoutItemSize: props.increaseFlyoutItemSize })),
14344
+ isEnabled$2(options === null || options === void 0 ? void 0 : options.participantsButton) && (React__default['default'].createElement(Participants, { option: options === null || options === void 0 ? void 0 : options.participantsButton, callInvitationURL: props.callInvitationURL, onFetchParticipantMenuItems: props.onFetchParticipantMenuItems, displayType: options === null || options === void 0 ? void 0 : options.displayType, increaseFlyoutItemSize: props.increaseFlyoutItemSize, isMobile: props.isMobile })),
14338
14345
  isEnabled$2(options === null || options === void 0 ? void 0 : options.devicesButton) && (React__default['default'].createElement(Devices, { displayType: options === null || options === void 0 ? void 0 : options.displayType, increaseFlyoutItemSize: props.increaseFlyoutItemSize })),
14339
14346
  customButtons['primary'],
14340
14347
  isEnabled$2(options === null || options === void 0 ? void 0 : options.endCallButton) && React__default['default'].createElement(EndCall, { displayType: options === null || options === void 0 ? void 0 : options.displayType })))));
@@ -14482,7 +14489,7 @@ const CallArrangement = (props) => {
14482
14489
  !!props.mutedNotificationProps && React__default['default'].createElement(MutedNotification, Object.assign({}, props.mutedNotificationProps))),
14483
14490
  React__default['default'].createElement(react.Stack.Item, { styles: callGalleryStyles, grow: true }, props.onRenderGalleryContent && (React__default['default'].createElement(react.Stack, { verticalFill: true, styles: mediaGalleryContainerStyles }, props.onRenderGalleryContent()))),
14484
14491
  ((_a = props.callControlProps) === null || _a === void 0 ? void 0 : _a.options) !== false && (React__default['default'].createElement(react.Stack.Item, { className: callControlsContainerStyles },
14485
- React__default['default'].createElement(CallControls, Object.assign({}, props.callControlProps, { containerWidth: containerWidth, containerHeight: containerHeight })))))));
14492
+ React__default['default'].createElement(CallControls, Object.assign({}, props.callControlProps, { containerWidth: containerWidth, containerHeight: containerHeight, isMobile: props.mobileView })))))));
14486
14493
  };
14487
14494
 
14488
14495
  // Copyright (c) Microsoft Corporation.
@@ -15882,8 +15889,7 @@ class AzureCommunicationCallAdapter {
15882
15889
  }));
15883
15890
  });
15884
15891
  }
15885
- //TODO: a better way to expose option parameter
15886
- startCall(participants) {
15892
+ startCall(participants, options) {
15887
15893
  var _a, _b;
15888
15894
  if (_isInCall((_b = (_a = this.getState().call) === null || _a === void 0 ? void 0 : _a.state) !== null && _b !== void 0 ? _b : 'None')) {
15889
15895
  throw new Error('You are already in the call.');
@@ -15892,9 +15898,18 @@ class AzureCommunicationCallAdapter {
15892
15898
  // FIXME: `onStartCall` does not allow a Teams user.
15893
15899
  // Need some way to return an error if a Teams user is provided.
15894
15900
  const backendId = fromFlatCommunicationIdentifier(participant);
15901
+ if (communicationCommon.isPhoneNumberIdentifier(backendId)) {
15902
+ if ((options === null || options === void 0 ? void 0 : options.alternateCallerId) === undefined) {
15903
+ throw new Error('unable to start call, PSTN user present with no alternativeCallerID.');
15904
+ }
15905
+ return backendId;
15906
+ }
15907
+ else if (communicationCommon.isCommunicationUserIdentifier(backendId)) {
15908
+ return backendId;
15909
+ }
15895
15910
  return backendId;
15896
15911
  });
15897
- const call = this.handlers.onStartCall(idsToAdd);
15912
+ const call = this.handlers.onStartCall(idsToAdd, options);
15898
15913
  if (!call) {
15899
15914
  throw new Error('Unable to start call.');
15900
15915
  }
@@ -16658,8 +16673,8 @@ class CallWithChatBackedCallAdapter {
16658
16673
  return this.callWithChatAdapter.joinCall(microphoneOn);
16659
16674
  };
16660
16675
  this.leaveCall = () => __awaiter$3(this, void 0, void 0, function* () { return yield this.callWithChatAdapter.leaveCall(); });
16661
- this.startCall = (participants) => {
16662
- return this.callWithChatAdapter.startCall(participants);
16676
+ this.startCall = (participants, options) => {
16677
+ return this.callWithChatAdapter.startCall(participants, options);
16663
16678
  };
16664
16679
  this.setCamera = (sourceId, options) => __awaiter$3(this, void 0, void 0, function* () { return yield this.callWithChatAdapter.setCamera(sourceId, options); });
16665
16680
  this.setMicrophone = (sourceId) => __awaiter$3(this, void 0, void 0, function* () { return yield this.callWithChatAdapter.setMicrophone(sourceId); });
@@ -17807,8 +17822,8 @@ class AzureCommunicationCallWithChatAdapter {
17807
17822
  });
17808
17823
  }
17809
17824
  /** Start a new Call. */
17810
- startCall(participants) {
17811
- return this.callAdapter.startCall(participants);
17825
+ startCall(participants, options) {
17826
+ return this.callAdapter.startCall(participants, options);
17812
17827
  }
17813
17828
  /**
17814
17829
  * Subscribe to state change events.