@azure/communication-react 1.5.1-alpha-202306010016 → 1.5.1-alpha-202306030013

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 (45) hide show
  1. package/dist/communication-react.d.ts +22 -2
  2. package/dist/dist-cjs/communication-react/index.js +162 -63
  3. package/dist/dist-cjs/communication-react/index.js.map +1 -1
  4. package/dist/dist-esm/acs-ui-common/src/telemetryVersion.js +1 -1
  5. package/dist/dist-esm/acs-ui-common/src/telemetryVersion.js.map +1 -1
  6. package/dist/dist-esm/chat-component-bindings/src/messageThreadSelector.js +37 -13
  7. package/dist/dist-esm/chat-component-bindings/src/messageThreadSelector.js.map +1 -1
  8. package/dist/dist-esm/chat-stateful-client/src/EventSubscriber.js +1 -1
  9. package/dist/dist-esm/chat-stateful-client/src/EventSubscriber.js.map +1 -1
  10. package/dist/dist-esm/communication-react/src/index.js.map +1 -1
  11. package/dist/dist-esm/react-components/src/components/ChatMessage/ChatMessageComponent.js +2 -2
  12. package/dist/dist-esm/react-components/src/components/ChatMessage/ChatMessageComponent.js.map +1 -1
  13. package/dist/dist-esm/react-components/src/components/ChatMessage/ChatMessageComponentAsMessageBubble.js +2 -2
  14. package/dist/dist-esm/react-components/src/components/ChatMessage/ChatMessageComponentAsMessageBubble.js.map +1 -1
  15. package/dist/dist-esm/react-components/src/components/ChatMessage/ChatMessageContent.js +4 -4
  16. package/dist/dist-esm/react-components/src/components/ChatMessage/ChatMessageContent.js.map +1 -1
  17. package/dist/dist-esm/react-components/src/components/FileDownloadCards.d.ts +1 -1
  18. package/dist/dist-esm/react-components/src/components/FileDownloadCards.js +10 -5
  19. package/dist/dist-esm/react-components/src/components/FileDownloadCards.js.map +1 -1
  20. package/dist/dist-esm/react-components/src/components/InputBoxComponent.js +5 -8
  21. package/dist/dist-esm/react-components/src/components/InputBoxComponent.js.map +1 -1
  22. package/dist/dist-esm/react-components/src/components/MessageThread.js +16 -8
  23. package/dist/dist-esm/react-components/src/components/MessageThread.js.map +1 -1
  24. package/dist/dist-esm/react-components/src/types/ChatMessage.js.map +1 -1
  25. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/AzureCommunicationCallAdapter.d.ts +5 -1
  26. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/AzureCommunicationCallAdapter.js +71 -2
  27. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/AzureCommunicationCallAdapter.js.map +1 -1
  28. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/CallAdapter.d.ts +19 -0
  29. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/CallAdapter.js.map +1 -1
  30. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/index.d.ts +1 -0
  31. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/index.js.map +1 -1
  32. package/dist/dist-esm/react-composites/src/composites/CallComposite/index.d.ts +1 -0
  33. package/dist/dist-esm/react-composites/src/composites/CallComposite/index.js.map +1 -1
  34. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/AzureCommunicationCallWithChatAdapter.js +4 -4
  35. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/AzureCommunicationCallWithChatAdapter.js.map +1 -1
  36. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/CallWithChatAdapter.js.map +1 -1
  37. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/CallWithChatBackedChatAdapter.js +1 -1
  38. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/CallWithChatBackedChatAdapter.js.map +1 -1
  39. package/dist/dist-esm/react-composites/src/composites/ChatComposite/ChatScreen.js +2 -2
  40. package/dist/dist-esm/react-composites/src/composites/ChatComposite/ChatScreen.js.map +1 -1
  41. package/dist/dist-esm/react-composites/src/composites/ChatComposite/adapter/AzureCommunicationChatAdapter.js +11 -11
  42. package/dist/dist-esm/react-composites/src/composites/ChatComposite/adapter/AzureCommunicationChatAdapter.js.map +1 -1
  43. package/dist/dist-esm/react-composites/src/composites/ChatComposite/adapter/ChatAdapter.js.map +1 -1
  44. package/dist/dist-esm/react-composites/src/composites/ChatComposite/index.js.map +1 -1
  45. package/package.json +8 -8
@@ -94,6 +94,7 @@ import { TeamsCall } from '@azure/communication-calling';
94
94
  import { TeamsCallAgent } from '@azure/communication-calling';
95
95
  import { TeamsMeetingLinkLocator } from '@azure/communication-calling';
96
96
  import { Theme } from '@fluentui/react';
97
+ import { TransferRequestedEventArgs } from '@azure/communication-calling';
97
98
  import { TypingIndicatorReceivedEvent } from '@azure/communication-chat';
98
99
  import { UnknownIdentifier } from '@azure/communication-common';
99
100
  import { UnknownIdentifierKind } from '@azure/communication-common';
@@ -863,6 +864,10 @@ export declare type CallAdapterClientState = {
863
864
  * State to track the selected video background effect.
864
865
  */
865
866
  selectedVideoBackgroundEffect?: SelectedVideoBackgroundEffect;
867
+ /**
868
+ * Call from transfer request accepted by local user
869
+ */
870
+ acceptedTransferCallState?: CallState;
866
871
  };
867
872
 
868
873
  /**
@@ -1032,6 +1037,10 @@ export declare interface CallAdapterSubscribers {
1032
1037
  * Subscribe function for 'isCaptionsActiveChanged' event.
1033
1038
  */
1034
1039
  on(event: 'isCaptionsActiveChanged', listener: IsCaptionsActiveChangedListener): void;
1040
+ /**
1041
+ * Subscribe function for 'transferRequested' event.
1042
+ */
1043
+ on(event: 'transferRequested', listener: TransferRequestedListener): void;
1035
1044
  /**
1036
1045
  * Unsubscribe function for 'participantsJoined' event.
1037
1046
  */
@@ -1088,6 +1097,10 @@ export declare interface CallAdapterSubscribers {
1088
1097
  * Unsubscribe function for 'isCaptionsActiveChanged' event.
1089
1098
  */
1090
1099
  off(event: 'isCaptionsActiveChanged', listener: IsCaptionsActiveChangedListener): void;
1100
+ /**
1101
+ * Unsubscribe function for 'transferRequested' event.
1102
+ */
1103
+ off(event: 'transferRequested', listener: TransferRequestedListener): void;
1091
1104
  }
1092
1105
 
1093
1106
  /**
@@ -5845,7 +5858,7 @@ export declare interface FileMetadata {
5845
5858
  /**
5846
5859
  * @beta
5847
5860
  */
5848
- export declare type FileMetadataAttachmentType = 'fileSharing' | /* @conditional-compile-remove(teams-inline-images) */ 'teamsInlineImage' | 'unknown';
5861
+ export declare type FileMetadataAttachmentType = 'fileSharing' | /* @conditional-compile-remove(teams-inline-images-and-file-sharing) */ 'teamsInlineImage' | 'unknown';
5849
5862
 
5850
5863
  /**
5851
5864
  * Properties for configuring the File Sharing feature.
@@ -8407,7 +8420,7 @@ export declare interface TeamsCallAdapter extends CommonCallAdapter {
8407
8420
  export declare type TeamsCallAdapterArgs = {
8408
8421
  userId: MicrosoftTeamsUserIdentifier;
8409
8422
  credential: CommunicationTokenCredential;
8410
- locator: TeamsMeetingLinkLocator;
8423
+ locator: TeamsMeetingLinkLocator | /* @conditional-compile-remove(teams-adhoc-call) */ /* @conditional-compile-remove(PSTN-calls) */ CallParticipantsLocator;
8411
8424
  /**
8412
8425
  * Optional parameters for the {@link TeamsCallAdapter} created
8413
8426
  */
@@ -8485,6 +8498,13 @@ export declare interface TransferFeature {
8485
8498
  };
8486
8499
  }
8487
8500
 
8501
+ /**
8502
+ * Callback for {@link CallAdapterSubscribers} 'isCaptionsActiveChanged' event.
8503
+ *
8504
+ * @beta
8505
+ */
8506
+ export declare type TransferRequestedListener = (event: TransferRequestedEventArgs) => void;
8507
+
8488
8508
  /**
8489
8509
  * Component to notify local user when one or more participants in the chat thread are typing.
8490
8510
  *
@@ -167,7 +167,7 @@ const _toCommunicationIdentifier = (id) => {
167
167
  // Copyright (c) Microsoft Corporation.
168
168
  // Licensed under the MIT license.
169
169
  // GENERATED FILE. DO NOT EDIT MANUALLY.
170
- var telemetryVersion = '1.5.1-alpha-202306010016';
170
+ var telemetryVersion = '1.5.1-alpha-202306030013';
171
171
 
172
172
  // Copyright (c) Microsoft Corporation.
173
173
  /**
@@ -6366,12 +6366,6 @@ const InputBoxComponent = (props) => {
6366
6366
  updateMentionSuggestions(suggestions);
6367
6367
  }), 500);
6368
6368
  /* @conditional-compile-remove(mention) */
6369
- React.useEffect(() => {
6370
- return () => {
6371
- debouncedQueryUpdate.cancel();
6372
- };
6373
- }, [debouncedQueryUpdate]);
6374
- /* @conditional-compile-remove(mention) */
6375
6369
  // Update selections index in mention to navigate by words
6376
6370
  const updateSelectionIndexesWithMentionIfNeeded = React.useCallback((event, inputTextValue, selectionStartValue, selectionEndValue, tagsValue) => {
6377
6371
  var _a, _b, _c;
@@ -6496,6 +6490,7 @@ const InputBoxComponent = (props) => {
6496
6490
  /* @conditional-compile-remove(mention) */
6497
6491
  const handleOnChange = React.useCallback((event, tagsValue, htmlTextValue, inputTextValue, currentTriggerStartIndex, previousSelectionStart, previousSelectionEnd, currentSelectionStart, currentSelectionEnd, updatedValue) => __awaiter$w(void 0, void 0, void 0, function* () {
6498
6492
  var _b;
6493
+ debouncedQueryUpdate.cancel();
6499
6494
  if (event.currentTarget === null) {
6500
6495
  return;
6501
6496
  }
@@ -6717,8 +6712,10 @@ const InputBoxComponent = (props) => {
6717
6712
  setCaretIndex(undefined);
6718
6713
  setSelectionStartValue(null);
6719
6714
  setSelectionEndValue(null);
6720
- // Dismiss the suggestions on blur
6721
- setMentionSuggestions([]);
6715
+ // Dismiss the suggestions on blur, after enough time to select by mouse if needed
6716
+ setTimeout(() => {
6717
+ setMentionSuggestions([]);
6718
+ }, 200);
6722
6719
  }, autoComplete: "off", onKeyDown: onTextFieldKeyDown, styles: mergedTextFieldStyle, disabled: disabled, errorMessage: errorMessage, onRenderSuffix: onRenderChildren, elementRef: inputBoxRef }))));
6723
6720
  };
6724
6721
  /**
@@ -8796,7 +8793,7 @@ const MessageContentWithLiveAria = (props) => {
8796
8793
  };
8797
8794
  const MessageContentAsRichTextHTML = (props) => {
8798
8795
  const liveAuthor = _formatString(props.strings.liveAuthorIntro, { author: `${props.message.senderDisplayName}` });
8799
- /* @conditional-compile-remove(teams-inline-images) */
8796
+ /* @conditional-compile-remove(teams-inline-images-and-file-sharing) */
8800
8797
  React.useEffect(() => {
8801
8798
  var _a;
8802
8799
  (_a = props.message.attachedFilesMetadata) === null || _a === void 0 ? void 0 : _a.map((fileMetadata) => {
@@ -8853,7 +8850,7 @@ const messageContentAriaText = (props) => {
8853
8850
  };
8854
8851
  const processNodeDefinitions = htmlToReact.ProcessNodeDefinitions();
8855
8852
  const htmlToReactParser = htmlToReact.Parser();
8856
- /* @conditional-compile-remove(teams-inline-images) */
8853
+ /* @conditional-compile-remove(teams-inline-images-and-file-sharing) */
8857
8854
  const processInlineImage = (props) => ({
8858
8855
  // Custom <img> processing
8859
8856
  shouldProcessNode: (node) => {
@@ -8899,7 +8896,7 @@ const processMention = (props) => ({
8899
8896
  const processHtmlToReact = (props) => {
8900
8897
  var _a;
8901
8898
  const steps = [
8902
- /* @conditional-compile-remove(teams-inline-images) */
8899
+ /* @conditional-compile-remove(teams-inline-images-and-file-sharing) */
8903
8900
  processInlineImage(props),
8904
8901
  /* @conditional-compile-remove(mention) */
8905
8902
  processMention(props),
@@ -8990,17 +8987,20 @@ const _FileDownloadCards = (props) => {
8990
8987
  }
8991
8988
  }
8992
8989
  }), [props]);
8993
- // Its safe to assume that if the first item in the fileMetadata is not a fileSharing type we don't want to display the FileDownloadCard.
8994
- // Since you can't have both fileSharing and teamsInlineImage in the same message.
8995
8990
  if (!fileMetadata ||
8996
8991
  fileMetadata.length === 0 ||
8997
- /* @conditional-compile-remove(teams-inline-images) */ fileMetadata[0].attachmentType !== 'fileSharing') {
8992
+ /* @conditional-compile-remove(teams-inline-images-and-file-sharing) */ !fileMetadata.some((attachment) => attachment.attachmentType === 'fileSharing')) {
8998
8993
  return React__default['default'].createElement(React__default['default'].Fragment, null);
8999
8994
  }
9000
8995
  return (React__default['default'].createElement("div", { style: fileDownloadCardsStyle, "data-ui-id": "file-download-card-group" },
9001
8996
  React__default['default'].createElement(_FileCardGroup, null, fileMetadata &&
9002
- fileMetadata.map((file) => (React__default['default'].createElement(_FileCard, { fileName: file.name, key: file.name, fileExtension: file.extension, actionIcon: showSpinner ? (React__default['default'].createElement(react.Spinner, { size: react.SpinnerSize.medium, "aria-live": 'polite', role: 'status' })) : (React__default['default'].createElement(react.IconButton, { className: iconButtonClassName, ariaLabel: downloadFileButtonString() },
9003
- React__default['default'].createElement(DownloadIconTrampoline, null))), actionHandler: () => fileDownloadHandler(userId, file) }))))));
8997
+ fileMetadata
8998
+ .filter((attachment) => {
8999
+ /* @conditional-compile-remove(teams-inline-images-and-file-sharing) */
9000
+ return attachment.attachmentType === 'fileSharing';
9001
+ })
9002
+ .map((file) => (React__default['default'].createElement(_FileCard, { fileName: file.name, key: file.name, fileExtension: file.extension, actionIcon: showSpinner ? (React__default['default'].createElement(react.Spinner, { size: react.SpinnerSize.medium, "aria-live": 'polite', role: 'status' })) : /* @conditional-compile-remove(teams-inline-images-and-file-sharing) */ !file.previewUrl ? (React__default['default'].createElement(react.IconButton, { className: iconButtonClassName, ariaLabel: downloadFileButtonString() },
9003
+ React__default['default'].createElement(DownloadIconTrampoline, null))) : undefined, actionHandler: () => fileDownloadHandler(userId, file) }))))));
9004
9004
  };
9005
9005
  /**
9006
9006
  * @private
@@ -9108,9 +9108,9 @@ const MessageBubble = (props) => {
9108
9108
  }
9109
9109
  return (React__default['default'].createElement("div", { tabIndex: 0 },
9110
9110
  React__default['default'].createElement(ChatMessageContent, { message: message, strings: strings,
9111
- /* @conditional-compile-remove(teams-inline-images) */
9111
+ /* @conditional-compile-remove(teams-inline-images-and-file-sharing) */
9112
9112
  onFetchAttachment: props.onFetchAttachments,
9113
- /* @conditional-compile-remove(teams-inline-images) */
9113
+ /* @conditional-compile-remove(teams-inline-images-and-file-sharing) */
9114
9114
  attachmentsMap: props.attachmentsMap,
9115
9115
  /* @conditional-compile-remove(mention) */
9116
9116
  mentionDisplayOptions: props.mentionDisplayOptions }),
@@ -9189,9 +9189,9 @@ const ChatMessageComponent = (props) => {
9189
9189
  return (React__default['default'].createElement(ChatMessageComponentAsMessageBubble, Object.assign({}, props, { onRemoveClick: onRemoveClick, onEditClick: onEditClick, onResendClick: onResendClick, onRenderAvatar: props.onRenderAvatar,
9190
9190
  /* @conditional-compile-remove(date-time-customization) */
9191
9191
  onDisplayDateTimeString: props.onDisplayDateTimeString, strings: props.strings,
9192
- /* @conditional-compile-remove(teams-inline-images) */
9192
+ /* @conditional-compile-remove(teams-inline-images-and-file-sharing) */
9193
9193
  onFetchAttachments: props.onFetchAttachments,
9194
- /* @conditional-compile-remove(teams-inline-images) */
9194
+ /* @conditional-compile-remove(teams-inline-images-and-file-sharing) */
9195
9195
  attachmentsMap: props.attachmentsMap,
9196
9196
  /* @conditional-compile-remove(mention) */
9197
9197
  mentionDisplayOptions: (_b = props.mentionOptions) === null || _b === void 0 ? void 0 : _b.displayOptions })));
@@ -9561,7 +9561,7 @@ const MessageThread = (props) => {
9561
9561
  const { messages: newMessages, userId, participantCount, readReceiptsBySenderId, styles, disableJumpToNewMessageButton = false, showMessageDate = false, showMessageStatus = false, numberOfChatMessagesToReload = 5, onMessageSeen, onRenderMessageStatus, onRenderAvatar, onLoadPreviousChatMessages, onRenderJumpToNewMessageButton, onRenderMessage, onUpdateMessage, onCancelMessageEdit, onDeleteMessage, onSendMessage,
9562
9562
  /* @conditional-compile-remove(date-time-customization) */
9563
9563
  onDisplayDateTimeString,
9564
- /* @conditional-compile-remove(teams-inline-images) */
9564
+ /* @conditional-compile-remove(teams-inline-images-and-file-sharing) */
9565
9565
  onFetchAttachments,
9566
9566
  /* @conditional-compile-remove(mention) */
9567
9567
  mentionOptions } = props;
@@ -9581,11 +9581,13 @@ const MessageThread = (props) => {
9581
9581
  const [lastSendingChatMessage, setLastSendingChatMessage] = React.useState(undefined);
9582
9582
  // readCount and participantCount will only need to be updated on-fly when user hover on an indicator
9583
9583
  const [readCountForHoveredIndicator, setReadCountForHoveredIndicator] = React.useState(undefined);
9584
- /* @conditional-compile-remove(teams-inline-images) */
9584
+ /* @conditional-compile-remove(teams-inline-images-and-file-sharing) */
9585
9585
  const [inlineAttachments, setInlineAttachments] = React.useState({});
9586
- /* @conditional-compile-remove(teams-inline-images) */
9586
+ /* @conditional-compile-remove(teams-inline-images-and-file-sharing) */
9587
9587
  const onFetchInlineAttachment = React.useCallback((attachment) => __awaiter$t(void 0, void 0, void 0, function* () {
9588
- if (!onFetchAttachments || attachment.id in inlineAttachments) {
9588
+ if (!onFetchAttachments ||
9589
+ attachment.id in inlineAttachments ||
9590
+ attachment.attachmentType !== 'teamsInlineImage') {
9589
9591
  return;
9590
9592
  }
9591
9593
  setInlineAttachments((prev) => (Object.assign(Object.assign({}, prev), { [attachment.id]: '' })));
@@ -9602,6 +9604,10 @@ const MessageThread = (props) => {
9602
9604
  isAllChatMessagesLoadedRef.current = false;
9603
9605
  }
9604
9606
  }, [onLoadPreviousChatMessages]);
9607
+ /* @conditional-compile-remove(file-sharing) */ /* @conditional-compile-remove(teams-inline-images-and-file-sharing) */
9608
+ React.useEffect(() => {
9609
+ reactFileTypeIcons.initializeFileTypeIcons();
9610
+ }, []);
9605
9611
  const previousTopRef = React.useRef(-1);
9606
9612
  const previousHeightRef = React.useRef(-1);
9607
9613
  const messageIdSeenByMeRef = React.useRef('');
@@ -9805,9 +9811,9 @@ const MessageThread = (props) => {
9805
9811
  strings: strings, message: messageProps.message, userId: props.userId, remoteParticipantsCount: participantCount ? participantCount - 1 : 0, inlineAcceptRejectEditButtons: !isNarrow, onRenderAvatar: onRenderAvatar, showMessageStatus: showMessageStatus, messageStatus: messageProps.message.status, onActionButtonClick: onActionButtonClickMemo,
9806
9812
  /* @conditional-compile-remove(date-time-customization) */
9807
9813
  onDisplayDateTimeString: onDisplayDateTimeString,
9808
- /* @conditional-compile-remove(teams-inline-images) */
9814
+ /* @conditional-compile-remove(teams-inline-images-and-file-sharing) */
9809
9815
  onFetchAttachments: onFetchInlineAttachment,
9810
- /* @conditional-compile-remove(teams-inline-images) */
9816
+ /* @conditional-compile-remove(teams-inline-images-and-file-sharing) */
9811
9817
  attachmentsMap: inlineAttachments,
9812
9818
  /* @conditional-compile-remove(mention) */
9813
9819
  mentionOptions: mentionOptions })));
@@ -9825,9 +9831,9 @@ const MessageThread = (props) => {
9825
9831
  onActionButtonClickMemo,
9826
9832
  /* @conditional-compile-remove(date-time-customization) */
9827
9833
  onDisplayDateTimeString,
9828
- /* @conditional-compile-remove(teams-inline-images) */
9834
+ /* @conditional-compile-remove(teams-inline-images-and-file-sharing) */
9829
9835
  onFetchInlineAttachment,
9830
- /* @conditional-compile-remove(teams-inline-images) */
9836
+ /* @conditional-compile-remove(teams-inline-images-and-file-sharing) */
9831
9837
  inlineAttachments,
9832
9838
  /* @conditional-compile-remove(mention) */
9833
9839
  mentionOptions
@@ -17048,8 +17054,8 @@ const extractAttachedFilesMetadata = (metadata) => {
17048
17054
  return [];
17049
17055
  }
17050
17056
  };
17051
- /* @conditional-compile-remove(teams-inline-images) */
17052
- const extractInlineImageFilesMetadata = (attachments) => {
17057
+ /* @conditional-compile-remove(teams-inline-images-and-file-sharing) */
17058
+ const extractTeamsAttachmentsMetadata = (attachments) => {
17053
17059
  return attachments.map((attachment) => {
17054
17060
  var _a, _b;
17055
17061
  return ({
@@ -17057,12 +17063,12 @@ const extractInlineImageFilesMetadata = (attachments) => {
17057
17063
  id: attachment.id,
17058
17064
  name: (_a = attachment.name) !== null && _a !== void 0 ? _a : '',
17059
17065
  extension: (_b = attachment.contentType) !== null && _b !== void 0 ? _b : '',
17060
- url: attachment.url,
17066
+ url: extractAttachmentUrl(attachment),
17061
17067
  previewUrl: attachment.previewUrl
17062
17068
  });
17063
17069
  });
17064
17070
  };
17065
- /* @conditional-compile-remove(teams-inline-images) */
17071
+ /* @conditional-compile-remove(teams-inline-images-and-file-sharing) */
17066
17072
  const mapAttachmentType = (attachmentType) => {
17067
17073
  if (attachmentType === 'teamsImage' || attachmentType === 'teamsInlineImage') {
17068
17074
  return 'teamsInlineImage';
@@ -17072,7 +17078,30 @@ const mapAttachmentType = (attachmentType) => {
17072
17078
  }
17073
17079
  return 'unknown';
17074
17080
  };
17075
- /* @conditional-compile-remove(file-sharing) @conditional-compile-remove(teams-inline-images) */
17081
+ /* @conditional-compile-remove(teams-inline-images-and-file-sharing) */
17082
+ const extractAttachmentUrl = (attachment) => {
17083
+ return attachment.attachmentType === 'file' && attachment.previewUrl ? attachment.previewUrl : attachment.url;
17084
+ };
17085
+ const processChatMessageContent = (message) => {
17086
+ var _a, _b, _c, _d, _e;
17087
+ /* @conditional-compile-remove(teams-inline-images-and-file-sharing) */
17088
+ if (sanitizedMessageContentType(message.type).includes('html') && ((_a = message.content) === null || _a === void 0 ? void 0 : _a.attachments)) {
17089
+ const attachments = (_b = message.content) === null || _b === void 0 ? void 0 : _b.attachments;
17090
+ const teamsImageHtmlContent = attachments
17091
+ .filter((attachment) => attachment.attachmentType === 'teamsImage')
17092
+ .map((attachment) => generateImageAttachmentImgHtml(attachment))
17093
+ .join('');
17094
+ if (teamsImageHtmlContent) {
17095
+ return ((_d = (_c = message.content) === null || _c === void 0 ? void 0 : _c.message) !== null && _d !== void 0 ? _d : '') + teamsImageHtmlContent;
17096
+ }
17097
+ }
17098
+ return (_e = message.content) === null || _e === void 0 ? void 0 : _e.message;
17099
+ };
17100
+ /* @conditional-compile-remove(teams-inline-images-and-file-sharing) */
17101
+ const generateImageAttachmentImgHtml = (attachment) => {
17102
+ return `\r\n<p><img alt="image" src="" itemscope="${attachment.contentType}" id="${attachment.id}"></p>`;
17103
+ };
17104
+ /* @conditional-compile-remove(file-sharing) @conditional-compile-remove(teams-inline-images-and-file-sharing) */
17076
17105
  const extractFilesMetadata = (message) => {
17077
17106
  var _a, _b;
17078
17107
  let fileMetadata = [];
@@ -17080,9 +17109,9 @@ const extractFilesMetadata = (message) => {
17080
17109
  if (message.metadata) {
17081
17110
  fileMetadata = fileMetadata.concat(extractAttachedFilesMetadata(message.metadata));
17082
17111
  }
17083
- /* @conditional-compile-remove(teams-inline-images) */
17112
+ /* @conditional-compile-remove(teams-inline-images-and-file-sharing) */
17084
17113
  if ((_a = message.content) === null || _a === void 0 ? void 0 : _a.attachments) {
17085
- fileMetadata = fileMetadata.concat(extractInlineImageFilesMetadata((_b = message.content) === null || _b === void 0 ? void 0 : _b.attachments));
17114
+ fileMetadata = fileMetadata.concat(extractTeamsAttachmentsMetadata((_b = message.content) === null || _b === void 0 ? void 0 : _b.attachments));
17086
17115
  }
17087
17116
  return fileMetadata;
17088
17117
  };
@@ -17103,12 +17132,11 @@ const convertToUiBlockedMessage = (message, userId, isSeen, isLargeGroup) => {
17103
17132
  };
17104
17133
  };
17105
17134
  const convertToUiChatMessage = (message, userId, isSeen, isLargeGroup) => {
17106
- var _a;
17107
17135
  const messageSenderId = message.sender !== undefined ? toFlatCommunicationIdentifier(message.sender) : userId;
17108
17136
  return {
17109
17137
  messageType: 'chat',
17110
17138
  createdOn: message.createdOn,
17111
- content: (_a = message.content) === null || _a === void 0 ? void 0 : _a.message,
17139
+ content: processChatMessageContent(message),
17112
17140
  contentType: sanitizedMessageContentType(message.type),
17113
17141
  status: !isLargeGroup && message.status === 'delivered' && isSeen ? 'seen' : message.status,
17114
17142
  senderDisplayName: message.senderDisplayName,
@@ -17119,7 +17147,7 @@ const convertToUiChatMessage = (message, userId, isSeen, isLargeGroup) => {
17119
17147
  deletedOn: message.deletedOn,
17120
17148
  mine: messageSenderId === userId,
17121
17149
  metadata: message.metadata,
17122
- /* @conditional-compile-remove(file-sharing) @conditional-compile-remove(teams-inline-images) */
17150
+ /* @conditional-compile-remove(file-sharing) @conditional-compile-remove(teams-inline-images-and-file-sharing) */
17123
17151
  attachedFilesMetadata: extractFilesMetadata(message)
17124
17152
  };
17125
17153
  };
@@ -17211,18 +17239,20 @@ const sanitizedMessageContentType = (type) => {
17211
17239
  : 'unknown';
17212
17240
  };
17213
17241
  const isMessageValidToRender = (message) => {
17214
- var _a, _b;
17242
+ var _a, _b, _c;
17215
17243
  if (message.deletedOn) {
17216
17244
  return false;
17217
17245
  }
17218
- if ((_a = message.metadata) === null || _a === void 0 ? void 0 : _a['fileSharingMetadata']) {
17246
+ if (((_a = message.metadata) === null || _a === void 0 ? void 0 : _a['fileSharingMetadata']) ||
17247
+ (
17248
+ /* @conditional-compile-remove(teams-inline-images-and-file-sharing) */ (_b = message.content) === null || _b === void 0 ? void 0 : _b.attachments)) {
17219
17249
  return true;
17220
17250
  }
17221
17251
  /* @conditional-compile-remove(data-loss-prevention) */
17222
17252
  if (message.policyViolation) {
17223
17253
  return true;
17224
17254
  }
17225
- return !!(message.content && ((_b = message.content) === null || _b === void 0 ? void 0 : _b.message) !== '');
17255
+ return !!(message.content && ((_c = message.content) === null || _c === void 0 ? void 0 : _c.message) !== '');
17226
17256
  };
17227
17257
 
17228
17258
  // Copyright (c) Microsoft Corporation.
@@ -17910,7 +17940,7 @@ class EventSubscriber {
17910
17940
  version: event.version,
17911
17941
  content: {
17912
17942
  message: event.message,
17913
- /* @conditional-compile-remove(teams-inline-images) */
17943
+ /* @conditional-compile-remove(teams-inline-images-and-file-sharing) */
17914
17944
  attachments: event.attachments
17915
17945
  },
17916
17946
  type: this.convertEventType(event.type),
@@ -19437,19 +19467,19 @@ class ChatContext {
19437
19467
  */
19438
19468
  class AzureCommunicationChatAdapter {
19439
19469
  constructor(chatClient, chatThreadClient,
19440
- /* @conditional-compile-remove(teams-inline-images) */ options) {
19441
- /* @conditional-compile-remove(teams-inline-images) */
19470
+ /* @conditional-compile-remove(teams-inline-images-and-file-sharing) */ options) {
19471
+ /* @conditional-compile-remove(teams-inline-images-and-file-sharing) */
19442
19472
  this.credential = undefined;
19443
19473
  this.emitter = new EventEmitter__default['default']();
19444
19474
  this.bindAllPublicMethods();
19445
19475
  this.chatClient = chatClient;
19446
19476
  this.chatThreadClient = chatThreadClient;
19447
19477
  this.context = new ChatContext(chatClient.getState(), chatThreadClient.threadId);
19448
- /* @conditional-compile-remove(teams-inline-images) */
19478
+ /* @conditional-compile-remove(teams-inline-images-and-file-sharing) */
19449
19479
  if (options && options.credential) {
19450
19480
  this.credential = options.credential;
19451
19481
  }
19452
- /* @conditional-compile-remove(file-sharing) */ /* @conditional-compile-remove(teams-inline-images) */
19482
+ /* @conditional-compile-remove(file-sharing) */ /* @conditional-compile-remove(teams-inline-images-and-file-sharing) */
19453
19483
  this.fileUploadAdapter = new AzureCommunicationFileUploadAdapter(this.context);
19454
19484
  const onStateChange = (clientState) => {
19455
19485
  // unsubscribe when the instance gets disposed
@@ -19493,7 +19523,7 @@ class AzureCommunicationChatAdapter {
19493
19523
  this.updateFileUploadErrorMessage = this.updateFileUploadErrorMessage.bind(this);
19494
19524
  /* @conditional-compile-remove(file-sharing) */
19495
19525
  this.updateFileUploadMetadata = this.updateFileUploadMetadata.bind(this);
19496
- /* @conditional-compile-remove(teams-inline-images) */
19526
+ /* @conditional-compile-remove(teams-inline-images-and-file-sharing) */
19497
19527
  this.downloadAttachments = this.downloadAttachments.bind(this);
19498
19528
  }
19499
19529
  dispose() {
@@ -19631,7 +19661,7 @@ class AzureCommunicationChatAdapter {
19631
19661
  updateFileUploadMetadata(id, metadata) {
19632
19662
  this.fileUploadAdapter.updateFileUploadMetadata(id, metadata);
19633
19663
  }
19634
- /* @conditional-compile-remove(teams-inline-images) */
19664
+ /* @conditional-compile-remove(teams-inline-images-and-file-sharing) */
19635
19665
  downloadAttachments(options) {
19636
19666
  return __awaiter$h(this, void 0, void 0, function* () {
19637
19667
  return this.asyncTeeErrorToEventEmitter(() => __awaiter$h(this, void 0, void 0, function* () {
@@ -19652,7 +19682,7 @@ class AzureCommunicationChatAdapter {
19652
19682
  }));
19653
19683
  });
19654
19684
  }
19655
- /* @conditional-compile-remove(teams-inline-images) */
19685
+ /* @conditional-compile-remove(teams-inline-images-and-file-sharing) */
19656
19686
  downloadAuthenticatedFile(accessToken, options) {
19657
19687
  return __awaiter$h(this, void 0, void 0, function* () {
19658
19688
  function fetchWithAuthentication(url, token) {
@@ -19782,10 +19812,10 @@ const createAzureCommunicationChatAdapter = ({ endpoint: endpointUrl, userId, di
19782
19812
  });
19783
19813
  const chatThreadClient = yield chatClient.getChatThreadClient(threadId);
19784
19814
  yield chatClient.startRealtimeNotifications();
19785
- /* @conditional-compile-remove(teams-inline-images) */
19815
+ /* @conditional-compile-remove(teams-inline-images-and-file-sharing) */
19786
19816
  const options = { credential: credential };
19787
19817
  const adapter = yield createAzureCommunicationChatAdapterFromClient(chatClient, chatThreadClient,
19788
- /* @conditional-compile-remove(teams-inline-images) */ options);
19818
+ /* @conditional-compile-remove(teams-inline-images-and-file-sharing) */ options);
19789
19819
  return adapter;
19790
19820
  });
19791
19821
  /**
@@ -19893,11 +19923,11 @@ beforeDispose) => {
19893
19923
  * @public
19894
19924
  */
19895
19925
  function createAzureCommunicationChatAdapterFromClient(chatClient, chatThreadClient,
19896
- /* @conditional-compile-remove(teams-inline-images) */
19926
+ /* @conditional-compile-remove(teams-inline-images-and-file-sharing) */
19897
19927
  options) {
19898
19928
  return __awaiter$h(this, void 0, void 0, function* () {
19899
19929
  return new AzureCommunicationChatAdapter(chatClient, chatThreadClient,
19900
- /* @conditional-compile-remove(teams-inline-images) */ options);
19930
+ /* @conditional-compile-remove(teams-inline-images-and-file-sharing) */ options);
19901
19931
  });
19902
19932
  }
19903
19933
  const isChatError = (e) => {
@@ -20551,7 +20581,7 @@ const ChatScreen = (props) => {
20551
20581
  const onRenderFileDownloads = React.useCallback((userId, message) => (React__default['default'].createElement(_FileDownloadCards, { userId: userId, fileMetadata: message.attachedFilesMetadata || [], downloadHandler: fileSharing === null || fileSharing === void 0 ? void 0 : fileSharing.downloadHandler, onDownloadErrorMessage: (errorMessage) => {
20552
20582
  setDownloadErrorMessage(errorMessage);
20553
20583
  } })), [fileSharing === null || fileSharing === void 0 ? void 0 : fileSharing.downloadHandler]);
20554
- /* @conditional-compile-remove(teams-inline-images) */
20584
+ /* @conditional-compile-remove(teams-inline-images-and-file-sharing) */
20555
20585
  const onRenderInlineAttachment = React.useCallback((attachment) => __awaiter$f(void 0, void 0, void 0, function* () {
20556
20586
  if (attachment.previewUrl) {
20557
20587
  const blob = yield adapter.downloadAttachments({ attachmentUrls: [attachment.previewUrl] });
@@ -20577,7 +20607,7 @@ const ChatScreen = (props) => {
20577
20607
  React__default['default'].createElement(MessageThread, Object.assign({}, messageThreadProps, { onRenderAvatar: onRenderAvatarCallback, onRenderMessage: onRenderMessage,
20578
20608
  /* @conditional-compile-remove(file-sharing) */
20579
20609
  onRenderFileDownloads: onRenderFileDownloads,
20580
- /* @conditional-compile-remove(teams-inline-images) */
20610
+ /* @conditional-compile-remove(teams-inline-images-and-file-sharing) */
20581
20611
  onFetchAttachments: onRenderInlineAttachment, numberOfChatMessagesToReload: defaultNumberOfChatMessagesToReload, styles: messageThreadStyles })),
20582
20612
  React__default['default'].createElement(react.Stack, { className: react.mergeStyles(sendboxContainerStyles) },
20583
20613
  React__default['default'].createElement("div", { className: react.mergeStyles(typingIndicatorContainerStyles) }, onRenderTypingIndicator ? (onRenderTypingIndicator(typingIndicatorProps.typingUsers)) : (React__default['default'].createElement(TypingIndicator, Object.assign({}, typingIndicatorProps, { styles: typingIndicatorStyles })))),
@@ -26340,11 +26370,18 @@ class CallContext {
26340
26370
  // Make sure that the call is set to undefined in the state.
26341
26371
  call = undefined;
26342
26372
  }
26373
+ /* @conditional-compile-remove(call-transfer) */
26374
+ const latestAcceptedTransfer = (call === null || call === void 0 ? void 0 : call.transferFeature.acceptedTransfers)
26375
+ ? findLatestAcceptedTransfer(call.transferFeature.acceptedTransfers)
26376
+ : undefined;
26377
+ /* @conditional-compile-remove(call-transfer) */
26378
+ const transferCall = latestAcceptedTransfer ? clientState.calls[latestAcceptedTransfer.callId] : undefined;
26343
26379
  if (this.state.page) {
26344
26380
  this.setState(Object.assign(Object.assign({}, this.state), { userId: clientState.userId, displayName: (_a = clientState.callAgent) === null || _a === void 0 ? void 0 : _a.displayName, call, page: newPage, endedCall: latestEndedCall, devices: clientState.deviceManager, latestErrors: clientState.latestErrors, cameraStatus: (call === null || call === void 0 ? void 0 : call.localVideoStreams.find((s) => s.mediaStreamType === 'Video')) ||
26345
26381
  clientState.deviceManager.unparentedViews.find((s) => s.mediaStreamType === 'Video')
26346
26382
  ? 'On'
26347
- : 'Off' }));
26383
+ : 'Off',
26384
+ /* @conditional-compile-remove(call-transfer) */ acceptedTransferCallState: transferCall }));
26348
26385
  }
26349
26386
  }
26350
26387
  /* @conditional-compile-remove(unsupported-browser) */
@@ -26359,6 +26396,10 @@ class CallContext {
26359
26396
  setSelectedVideoBackgroundEffect(selectedVideoBackgroundEffect) {
26360
26397
  this.setState(Object.assign(Object.assign({}, this.state), { selectedVideoBackgroundEffect }));
26361
26398
  }
26399
+ /* @conditional-compile-remove(call-transfer) */
26400
+ setAcceptedTransferCall(call) {
26401
+ this.setState(Object.assign(Object.assign({}, this.state), { acceptedTransferCallState: call }));
26402
+ }
26362
26403
  }
26363
26404
  const findLatestEndedCall = (calls) => {
26364
26405
  var _a, _b, _c, _d;
@@ -26374,6 +26415,21 @@ const findLatestEndedCall = (calls) => {
26374
26415
  }
26375
26416
  return latestCall;
26376
26417
  };
26418
+ /* @conditional-compile-remove(call-transfer) */
26419
+ const findLatestAcceptedTransfer = (acceptedTransfers) => {
26420
+ var _a, _b, _c, _d;
26421
+ const acceptedTransferValues = Object.values(acceptedTransfers);
26422
+ if (acceptedTransferValues.length === 0) {
26423
+ return undefined;
26424
+ }
26425
+ let latestAcceptedTransfer = acceptedTransferValues[0];
26426
+ for (const acceptedTransfer of acceptedTransferValues.slice(1)) {
26427
+ if (((_b = (_a = acceptedTransfer.timestamp) === null || _a === void 0 ? void 0 : _a.getTime()) !== null && _b !== void 0 ? _b : 0) > ((_d = (_c = latestAcceptedTransfer.timestamp) === null || _c === void 0 ? void 0 : _c.getTime()) !== null && _d !== void 0 ? _d : 0)) {
26428
+ latestAcceptedTransfer = acceptedTransfer;
26429
+ }
26430
+ }
26431
+ return latestAcceptedTransfer;
26432
+ };
26377
26433
  /**
26378
26434
  * @private
26379
26435
  */
@@ -26425,6 +26481,43 @@ class AzureCommunicationCallAdapter {
26425
26481
  this.onClientStateChange = onStateChange;
26426
26482
  this.subscribeDeviceManagerEvents();
26427
26483
  this.callClient.onStateChange(onStateChange);
26484
+ /* @conditional-compile-remove(call-transfer) */
26485
+ if (this.callAgent.kind === 'CallAgent') {
26486
+ const onCallsUpdated = (args) => {
26487
+ var _a;
26488
+ if ((_a = this.call) === null || _a === void 0 ? void 0 : _a.id) {
26489
+ const removedCall = args.removed.find((call) => { var _a; return call.id === ((_a = this.call) === null || _a === void 0 ? void 0 : _a.id); });
26490
+ if (removedCall) {
26491
+ const removedCallState = this.callClient.getState().callsEnded[removedCall.id];
26492
+ const latestAcceptedTransfer = findLatestAcceptedTransfer(removedCallState.transferFeature.acceptedTransfers);
26493
+ const _callAgent = callAgent;
26494
+ const transferCall = _callAgent.calls.find((call) => call.id === (latestAcceptedTransfer === null || latestAcceptedTransfer === void 0 ? void 0 : latestAcceptedTransfer.callId));
26495
+ if (transferCall) {
26496
+ this.processNewCall(transferCall);
26497
+ }
26498
+ }
26499
+ }
26500
+ };
26501
+ this.callAgent.on('callsUpdated', onCallsUpdated);
26502
+ }
26503
+ else if (this.callAgent.kind === 'TeamsCallAgent') {
26504
+ const onTeamsCallsUpdated = (args) => {
26505
+ var _a;
26506
+ if ((_a = this.call) === null || _a === void 0 ? void 0 : _a.id) {
26507
+ const removedCall = args.removed.find((call) => { var _a; return call.id === ((_a = this.call) === null || _a === void 0 ? void 0 : _a.id); });
26508
+ if (removedCall) {
26509
+ const removedCallState = this.callClient.getState().callsEnded[removedCall.id];
26510
+ const latestAcceptedTransfer = findLatestAcceptedTransfer(removedCallState.transferFeature.acceptedTransfers);
26511
+ const _callAgent = callAgent;
26512
+ const transferCall = _callAgent.calls.find((call) => call.id === (latestAcceptedTransfer === null || latestAcceptedTransfer === void 0 ? void 0 : latestAcceptedTransfer.callId));
26513
+ if (transferCall) {
26514
+ this.processNewCall(transferCall);
26515
+ }
26516
+ }
26517
+ }
26518
+ };
26519
+ this.callAgent.on('callsUpdated', onTeamsCallsUpdated);
26520
+ }
26428
26521
  }
26429
26522
  get call() {
26430
26523
  return this._call;
@@ -26870,13 +26963,15 @@ class AzureCommunicationCallAdapter {
26870
26963
  }
26871
26964
  }
26872
26965
  subscribeCallEvents() {
26873
- var _a, _b, _c, _d, _e;
26966
+ var _a, _b, _c, _d, _e, _f;
26874
26967
  (_a = this.call) === null || _a === void 0 ? void 0 : _a.on('remoteParticipantsUpdated', this.onRemoteParticipantsUpdated.bind(this));
26875
26968
  (_b = this.call) === null || _b === void 0 ? void 0 : _b.on('isMutedChanged', this.isMyMutedChanged.bind(this));
26876
26969
  (_c = this.call) === null || _c === void 0 ? void 0 : _c.on('isScreenSharingOnChanged', this.isScreenSharingOnChanged.bind(this));
26877
26970
  (_d = this.call) === null || _d === void 0 ? void 0 : _d.on('idChanged', this.callIdChanged.bind(this));
26878
26971
  /* @conditional-compile-remove(close-captions) */
26879
26972
  (_e = this.call) === null || _e === void 0 ? void 0 : _e.on('stateChanged', this.subscribeToCaptionEvents.bind(this));
26973
+ /* @conditional-compile-remove(call-transfer) */
26974
+ (_f = this.call) === null || _f === void 0 ? void 0 : _f.feature(communicationCalling.Features.Transfer).on('transferRequested', this.transferRequested.bind(this));
26880
26975
  }
26881
26976
  unsubscribeCallEvents() {
26882
26977
  var _a, _b, _c, _d, _e, _f, _g;
@@ -26926,6 +27021,10 @@ class AzureCommunicationCallAdapter {
26926
27021
  isActive: (_a = this.call) === null || _a === void 0 ? void 0 : _a.feature(communicationCalling.Features.TeamsCaptions).isCaptionsFeatureActive
26927
27022
  });
26928
27023
  }
27024
+ /* @conditional-compile-remove(call-transfer) */
27025
+ transferRequested(args) {
27026
+ this.emitter.emit('transferRequested', args);
27027
+ }
26929
27028
  callIdChanged() {
26930
27029
  var _a;
26931
27030
  ((_a = this.call) === null || _a === void 0 ? void 0 : _a.id) && this.emitter.emit('callIdChanged', { callId: this.call.id });
@@ -27554,7 +27653,7 @@ class CallWithChatBackedChatAdapter {
27554
27653
  };
27555
27654
  this.callWithChatAdapter = callWithChatAdapter;
27556
27655
  }
27557
- /* @conditional-compile-remove(teams-inline-images) */
27656
+ /* @conditional-compile-remove(teams-inline-images-and-file-sharing) */
27558
27657
  downloadAttachments(options) {
27559
27658
  return __awaiter$1(this, void 0, void 0, function* () {
27560
27659
  return yield this.callWithChatAdapter.downloadAttachments(options);
@@ -28118,7 +28217,7 @@ class AzureCommunicationCallWithChatAdapter {
28118
28217
  this.updateFileUploadErrorMessage = this.updateFileUploadErrorMessage.bind(this);
28119
28218
  /* @conditional-compile-remove(file-sharing) */
28120
28219
  this.updateFileUploadMetadata = this.updateFileUploadMetadata.bind(this);
28121
- /* @conditional-compile-remove(teams-inline-images) */
28220
+ /* @conditional-compile-remove(teams-inline-images-and-file-sharing) */
28122
28221
  this.downloadAttachments = this.downloadAttachments.bind(this);
28123
28222
  /* @conditional-compile-remove(PSTN-calls) */
28124
28223
  this.holdCall.bind(this);
@@ -28327,7 +28426,7 @@ class AzureCommunicationCallWithChatAdapter {
28327
28426
  return yield this.chatAdapter.deleteMessage(messageId);
28328
28427
  });
28329
28428
  }
28330
- /* @conditional-compile-remove(teams-inline-images) */
28429
+ /* @conditional-compile-remove(teams-inline-images-and-file-sharing) */
28331
28430
  downloadAttachments(options) {
28332
28431
  return __awaiter(this, void 0, void 0, function* () {
28333
28432
  return yield this.chatAdapter.downloadAttachments(options);
@@ -28700,11 +28799,11 @@ beforeDispose) => {
28700
28799
  * @public
28701
28800
  */
28702
28801
  const createAzureCommunicationCallWithChatAdapterFromClients = ({ callClient, callAgent, callLocator, chatClient, chatThreadClient,
28703
- /* @conditional-compile-remove(teams-inline-images) */
28802
+ /* @conditional-compile-remove(teams-inline-images-and-file-sharing) */
28704
28803
  options }) => __awaiter(void 0, void 0, void 0, function* () {
28705
28804
  const createCallAdapterPromise = createAzureCommunicationCallAdapterFromClient(callClient, callAgent, callLocator);
28706
28805
  const createChatAdapterPromise = createAzureCommunicationChatAdapterFromClient(chatClient, chatThreadClient,
28707
- /* @conditional-compile-remove(teams-inline-images) */
28806
+ /* @conditional-compile-remove(teams-inline-images-and-file-sharing) */
28708
28807
  options);
28709
28808
  const [callAdapter, chatAdapter] = yield Promise.all([createCallAdapterPromise, createChatAdapterPromise]);
28710
28809
  return new AzureCommunicationCallWithChatAdapter(callAdapter, chatAdapter);