@azure/communication-react 1.17.0-alpha-202406050014 → 1.17.0-alpha-202406070015

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 (112) hide show
  1. package/dist/communication-react.d.ts +116 -20
  2. package/dist/dist-cjs/communication-react/{ChatMessageComponentAsRichTextEditBox-CueWJlOs.js → ChatMessageComponentAsRichTextEditBox-B4BPzX3o.js} +9 -4
  3. package/dist/dist-cjs/communication-react/ChatMessageComponentAsRichTextEditBox-B4BPzX3o.js.map +1 -0
  4. package/dist/dist-cjs/communication-react/{RichTextSendBoxWrapper-DORQ6cdT.js → RichTextSendBoxWrapper-DoEtNInF.js} +3 -2
  5. package/dist/dist-cjs/communication-react/{RichTextSendBoxWrapper-DORQ6cdT.js.map → RichTextSendBoxWrapper-DoEtNInF.js.map} +1 -1
  6. package/dist/dist-cjs/communication-react/{index-B4rHuheV.js → index-DU2Ijnbn.js} +472 -183
  7. package/dist/dist-cjs/communication-react/index-DU2Ijnbn.js.map +1 -0
  8. package/dist/dist-cjs/communication-react/index.js +2 -1
  9. package/dist/dist-cjs/communication-react/index.js.map +1 -1
  10. package/dist/dist-esm/acs-ui-common/src/telemetryVersion.js +1 -1
  11. package/dist/dist-esm/acs-ui-common/src/telemetryVersion.js.map +1 -1
  12. package/dist/dist-esm/calling-component-bindings/src/captionsSelector.js +16 -6
  13. package/dist/dist-esm/calling-component-bindings/src/captionsSelector.js.map +1 -1
  14. package/dist/dist-esm/calling-stateful-client/src/CallClientState.d.ts +12 -2
  15. package/dist/dist-esm/calling-stateful-client/src/CallClientState.js.map +1 -1
  16. package/dist/dist-esm/calling-stateful-client/src/CallContext.js +3 -1
  17. package/dist/dist-esm/calling-stateful-client/src/CallContext.js.map +1 -1
  18. package/dist/dist-esm/calling-stateful-client/src/CallSubscriber.js +1 -1
  19. package/dist/dist-esm/calling-stateful-client/src/CallSubscriber.js.map +1 -1
  20. package/dist/dist-esm/calling-stateful-client/src/Converter.d.ts +4 -0
  21. package/dist/dist-esm/calling-stateful-client/src/Converter.js +24 -1
  22. package/dist/dist-esm/calling-stateful-client/src/Converter.js.map +1 -1
  23. package/dist/dist-esm/calling-stateful-client/src/index-public.d.ts +1 -0
  24. package/dist/dist-esm/calling-stateful-client/src/index-public.js.map +1 -1
  25. package/dist/dist-esm/chat-component-bindings/src/handlers/createHandlers.js +2 -4
  26. package/dist/dist-esm/chat-component-bindings/src/handlers/createHandlers.js.map +1 -1
  27. package/dist/dist-esm/communication-react/src/index.d.ts +2 -0
  28. package/dist/dist-esm/communication-react/src/index.js.map +1 -1
  29. package/dist/dist-esm/react-components/src/components/ChatMessage/ChatMessageComponentWrapper.d.ts +2 -1
  30. package/dist/dist-esm/react-components/src/components/ChatMessage/ChatMessageComponentWrapper.js.map +1 -1
  31. package/dist/dist-esm/react-components/src/components/ChatMessage/MessageComponents/ChatMessageComponentAsMessageBubble.js +2 -2
  32. package/dist/dist-esm/react-components/src/components/ChatMessage/MessageComponents/ChatMessageComponentAsMessageBubble.js.map +1 -1
  33. package/dist/dist-esm/react-components/src/components/ChatMessage/MyMessageComponents/ChatMessageComponentAsEditBoxPicker.d.ts +2 -1
  34. package/dist/dist-esm/react-components/src/components/ChatMessage/MyMessageComponents/ChatMessageComponentAsEditBoxPicker.js +5 -3
  35. package/dist/dist-esm/react-components/src/components/ChatMessage/MyMessageComponents/ChatMessageComponentAsEditBoxPicker.js.map +1 -1
  36. package/dist/dist-esm/react-components/src/components/ChatMessage/MyMessageComponents/ChatMessageComponentAsRichTextEditBox.d.ts +3 -0
  37. package/dist/dist-esm/react-components/src/components/ChatMessage/MyMessageComponents/ChatMessageComponentAsRichTextEditBox.js +6 -2
  38. package/dist/dist-esm/react-components/src/components/ChatMessage/MyMessageComponents/ChatMessageComponentAsRichTextEditBox.js.map +1 -1
  39. package/dist/dist-esm/react-components/src/components/ChatMessage/MyMessageComponents/ChatMyMessageComponent.d.ts +2 -1
  40. package/dist/dist-esm/react-components/src/components/ChatMessage/MyMessageComponents/ChatMyMessageComponent.js +1 -1
  41. package/dist/dist-esm/react-components/src/components/ChatMessage/MyMessageComponents/ChatMyMessageComponent.js.map +1 -1
  42. package/dist/dist-esm/react-components/src/components/ChatMessage/MyMessageComponents/ChatMyMessageComponentAsMessageBubble.js +2 -2
  43. package/dist/dist-esm/react-components/src/components/ChatMessage/MyMessageComponents/ChatMyMessageComponentAsMessageBubble.js.map +1 -1
  44. package/dist/dist-esm/react-components/src/components/ChatMessage/MyMessageComponents/FluentChatMyMessageComponent.js +3 -3
  45. package/dist/dist-esm/react-components/src/components/ChatMessage/MyMessageComponents/FluentChatMyMessageComponent.js.map +1 -1
  46. package/dist/dist-esm/react-components/src/components/MeetingConferencePhoneInfo.d.ts +84 -0
  47. package/dist/dist-esm/react-components/src/components/MeetingConferencePhoneInfo.js +116 -0
  48. package/dist/dist-esm/react-components/src/components/MeetingConferencePhoneInfo.js.map +1 -0
  49. package/dist/dist-esm/react-components/src/components/MessageThread.d.ts +16 -4
  50. package/dist/dist-esm/react-components/src/components/MessageThread.js +4 -4
  51. package/dist/dist-esm/react-components/src/components/MessageThread.js.map +1 -1
  52. package/dist/dist-esm/react-components/src/components/NotificationBar.d.ts +12 -4
  53. package/dist/dist-esm/react-components/src/components/NotificationBar.js +4 -2
  54. package/dist/dist-esm/react-components/src/components/NotificationBar.js.map +1 -1
  55. package/dist/dist-esm/react-components/src/components/Notifications.d.ts +6 -2
  56. package/dist/dist-esm/react-components/src/components/Notifications.js +1 -1
  57. package/dist/dist-esm/react-components/src/components/Notifications.js.map +1 -1
  58. package/dist/dist-esm/react-components/src/components/RichTextEditor/Plugins/CopyPastePlugin.d.ts +5 -2
  59. package/dist/dist-esm/react-components/src/components/RichTextEditor/Plugins/CopyPastePlugin.js +14 -2
  60. package/dist/dist-esm/react-components/src/components/RichTextEditor/Plugins/CopyPastePlugin.js.map +1 -1
  61. package/dist/dist-esm/react-components/src/components/RichTextEditor/RichTextEditor.d.ts +3 -0
  62. package/dist/dist-esm/react-components/src/components/RichTextEditor/RichTextEditor.js +11 -2
  63. package/dist/dist-esm/react-components/src/components/RichTextEditor/RichTextEditor.js.map +1 -1
  64. package/dist/dist-esm/react-components/src/components/RichTextEditor/RichTextInputBoxComponent.d.ts +3 -0
  65. package/dist/dist-esm/react-components/src/components/RichTextEditor/RichTextInputBoxComponent.js +3 -1
  66. package/dist/dist-esm/react-components/src/components/RichTextEditor/RichTextInputBoxComponent.js.map +1 -1
  67. package/dist/dist-esm/react-components/src/components/RichTextEditor/RichTextSendBox.d.ts +6 -0
  68. package/dist/dist-esm/react-components/src/components/RichTextEditor/RichTextSendBox.js +6 -2
  69. package/dist/dist-esm/react-components/src/components/RichTextEditor/RichTextSendBox.js.map +1 -1
  70. package/dist/dist-esm/react-components/src/components/index.d.ts +2 -0
  71. package/dist/dist-esm/react-components/src/components/index.js +2 -0
  72. package/dist/dist-esm/react-components/src/components/index.js.map +1 -1
  73. package/dist/dist-esm/react-components/src/components/styles/ChatMessageComponent.styles.d.ts +5 -1
  74. package/dist/dist-esm/react-components/src/components/styles/ChatMessageComponent.styles.js +9 -4
  75. package/dist/dist-esm/react-components/src/components/styles/ChatMessageComponent.styles.js.map +1 -1
  76. package/dist/dist-esm/react-components/src/components/styles/TeamsMeetingConferenceInfo.d.ts +42 -0
  77. package/dist/dist-esm/react-components/src/components/styles/TeamsMeetingConferenceInfo.js +93 -0
  78. package/dist/dist-esm/react-components/src/components/styles/TeamsMeetingConferenceInfo.js.map +1 -0
  79. package/dist/dist-esm/react-components/src/localization/LocalizationProvider.d.ts +3 -0
  80. package/dist/dist-esm/react-components/src/localization/LocalizationProvider.js.map +1 -1
  81. package/dist/dist-esm/react-components/src/localization/locales/en-US/strings.json +11 -0
  82. package/dist/dist-esm/react-components/src/theming/v9ThemeShim.js +1 -1
  83. package/dist/dist-esm/react-components/src/theming/v9ThemeShim.js.map +1 -1
  84. package/dist/dist-esm/react-composites/src/composites/CallComposite/Strings.d.ts +4 -0
  85. package/dist/dist-esm/react-composites/src/composites/CallComposite/Strings.js.map +1 -1
  86. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/baseSelectors.d.ts +5 -0
  87. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/baseSelectors.js +5 -0
  88. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/baseSelectors.js.map +1 -1
  89. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/CallWithChatComposite.d.ts +3 -4
  90. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/CallWithChatComposite.js +3 -3
  91. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/CallWithChatComposite.js.map +1 -1
  92. package/dist/dist-esm/react-composites/src/composites/ChatComposite/ChatComposite.d.ts +3 -4
  93. package/dist/dist-esm/react-composites/src/composites/ChatComposite/ChatComposite.js.map +1 -1
  94. package/dist/dist-esm/react-composites/src/composites/ChatComposite/ChatScreen.js +5 -5
  95. package/dist/dist-esm/react-composites/src/composites/ChatComposite/ChatScreen.js.map +1 -1
  96. package/dist/dist-esm/react-composites/src/composites/common/ControlBar/CommonCallControlBar.js +25 -9
  97. package/dist/dist-esm/react-composites/src/composites/common/ControlBar/CommonCallControlBar.js.map +1 -1
  98. package/dist/dist-esm/react-composites/src/composites/common/ControlBar/DesktopMoreButton.d.ts +2 -0
  99. package/dist/dist-esm/react-composites/src/composites/common/ControlBar/DesktopMoreButton.js +28 -0
  100. package/dist/dist-esm/react-composites/src/composites/common/ControlBar/DesktopMoreButton.js.map +1 -1
  101. package/dist/dist-esm/react-composites/src/composites/common/SendBoxPicker.d.ts +2 -1
  102. package/dist/dist-esm/react-composites/src/composites/common/SendBoxPicker.js +6 -6
  103. package/dist/dist-esm/react-composites/src/composites/common/SendBoxPicker.js.map +1 -1
  104. package/dist/dist-esm/react-composites/src/composites/common/icons.d.ts +4 -0
  105. package/dist/dist-esm/react-composites/src/composites/common/icons.js +6 -0
  106. package/dist/dist-esm/react-composites/src/composites/common/icons.js.map +1 -1
  107. package/dist/dist-esm/react-composites/src/composites/common/types/CommonCallControlOptions.d.ts +5 -0
  108. package/dist/dist-esm/react-composites/src/composites/common/types/CommonCallControlOptions.js.map +1 -1
  109. package/dist/dist-esm/react-composites/src/composites/localization/locales/en-US/strings.json +1 -0
  110. package/package.json +2 -1
  111. package/dist/dist-cjs/communication-react/ChatMessageComponentAsRichTextEditBox-CueWJlOs.js.map +0 -1
  112. package/dist/dist-cjs/communication-react/index-B4rHuheV.js.map +0 -1
@@ -28,6 +28,7 @@ var reactHooks = require('@fluentui/react-hooks');
28
28
  var reactUseDraggableScroll = require('react-use-draggable-scroll');
29
29
  var reactWindowProvider = require('@fluentui/react-window-provider');
30
30
  var copy = require('copy-to-clipboard');
31
+ var libphonenumberJs = require('libphonenumber-js');
31
32
  var communicationChat = require('@azure/communication-chat');
32
33
  var nanoid = require('nanoid');
33
34
  var communicationCallingEffects = require('@azure/communication-calling-effects');
@@ -174,7 +175,7 @@ function getDefaultExportFromCjs (x) {
174
175
  // Copyright (c) Microsoft Corporation.
175
176
  // Licensed under the MIT License.
176
177
  // GENERATED FILE. DO NOT EDIT MANUALLY.
177
- var telemetryVersion = '1.17.0-alpha-202406050014';
178
+ var telemetryVersion = '1.17.0-alpha-202406070015';
178
179
 
179
180
 
180
181
  var telemetryVersion$1 = /*@__PURE__*/getDefaultExportFromCjs(telemetryVersion);
@@ -1355,14 +1356,24 @@ const _captionSettingsSelector = reselect__namespace.createSelector([
1355
1356
  *
1356
1357
  * @internal
1357
1358
  */
1358
- const _captionsBannerSelector = reselect__namespace.createSelector([getCaptions, getCaptionsStatus$1, getStartCaptionsInProgress], (captions, isCaptionsFeatureActive, startCaptionsInProgress) => {
1359
+ const _captionsBannerSelector = reselect__namespace.createSelector([getCaptions, getCaptionsStatus$1, getStartCaptionsInProgress, getRemoteParticipants$1, getDisplayName$2, getIdentifier], (captions, isCaptionsFeatureActive, startCaptionsInProgress, remoteParticipants, displayName, identifier) => {
1359
1360
  const captionsInfo = captions === null || captions === void 0 ? void 0 : captions.map((c, index) => {
1360
- var _a, _b, _c;
1361
+ var _a;
1361
1362
  const userId = getCaptionsSpeakerIdentifier(c);
1363
+ let finalDisplayName;
1364
+ if (userId === identifier) {
1365
+ finalDisplayName = displayName;
1366
+ }
1367
+ else if (remoteParticipants) {
1368
+ const participant = remoteParticipants[userId];
1369
+ if (participant) {
1370
+ finalDisplayName = participant.displayName;
1371
+ }
1372
+ }
1362
1373
  return {
1363
- id: ((_a = c.speaker.displayName) !== null && _a !== void 0 ? _a : 'Unnamed Participant') + index,
1364
- displayName: (_b = c.speaker.displayName) !== null && _b !== void 0 ? _b : 'Unnamed Participant',
1365
- captionText: (_c = c.captionText) !== null && _c !== void 0 ? _c : '',
1374
+ id: (finalDisplayName !== null && finalDisplayName !== void 0 ? finalDisplayName : 'Unnamed Participant') + index,
1375
+ displayName: finalDisplayName !== null && finalDisplayName !== void 0 ? finalDisplayName : 'Unnamed Participant',
1376
+ captionText: (_a = c.captionText) !== null && _a !== void 0 ? _a : '',
1366
1377
  userId
1367
1378
  };
1368
1379
  });
@@ -1608,96 +1619,6 @@ const deviceManagerDeclaratify = (deviceManager, context, internalContext) => {
1608
1619
  return new Proxy(deviceManager, proxyDeviceManager);
1609
1620
  };
1610
1621
 
1611
- // Copyright (c) Microsoft Corporation.
1612
- // Licensed under the MIT License.
1613
- /**
1614
- * Error thrown from failed stateful API methods.
1615
- *
1616
- * @public
1617
- */
1618
- class CallError extends Error {
1619
- constructor(target, innerError, timestamp) {
1620
- super();
1621
- this.target = target;
1622
- this.innerError = innerError;
1623
- // Testing note: It is easier to mock Date::now() than the Date() constructor.
1624
- this.timestamp = timestamp !== null && timestamp !== void 0 ? timestamp : new Date(Date.now());
1625
- this.name = 'CallError';
1626
- this.message = `${this.target}: ${this.innerError.message}`;
1627
- }
1628
- }
1629
-
1630
- // Copyright (c) Microsoft Corporation.
1631
- // Licensed under the MIT License.
1632
- /**
1633
- * @private
1634
- */
1635
- const callingStatefulLogger = logger.createClientLogger('communication-react:calling-stateful');
1636
- /**
1637
- * @private
1638
- */
1639
- var EventNames;
1640
- (function (EventNames) {
1641
- // Info
1642
- EventNames["VIEW_RENDER_SUCCEED"] = "VIEW_RENDER_SUCCEED";
1643
- EventNames["START_DISPOSE_STREAM"] = "START_DISPOSE_STREAM";
1644
- EventNames["START_STREAM_RENDERING"] = "START_STREAM_RENDERING";
1645
- EventNames["DISPOSING_RENDERER"] = "DISPOSING_RENDERER";
1646
- EventNames["CREATING_VIEW"] = "CREATING_VIEW";
1647
- // Warning
1648
- EventNames["CREATE_STREAM_INVALID_PARAMS"] = "CREATE_STREAM_INVALID_PARAMS";
1649
- EventNames["DISPOSE_STREAM_INVALID_PARAMS"] = "DISPOSE_STREAM_INVALID_PARAMS";
1650
- EventNames["STREAM_ALREADY_RENDERED"] = "STREAM_ALREADY_RENDERED";
1651
- EventNames["STREAM_ALREADY_DISPOSED"] = "STREAM_ALREADY_DISPOSED";
1652
- EventNames["STREAM_STOPPING"] = "STREAM_STOPPING";
1653
- EventNames["CREATED_STREAM_STOPPING"] = "CREATED_STREAM_STOPPING";
1654
- EventNames["STREAM_RENDERING"] = "STREAM_RENDERING";
1655
- // Error
1656
- EventNames["STREAM_NOT_FOUND"] = "STREAM_NOT_FOUND";
1657
- EventNames["RENDER_INFO_NOT_FOUND"] = "RENDER_INFO_NOT_FOUND";
1658
- EventNames["DISPOSE_INFO_NOT_FOUND"] = "DISPOSE_INFO_NOT_FOUND";
1659
- EventNames["RENDERER_NOT_FOUND"] = "RENDERER_NOT_FOUND";
1660
- EventNames["CREATE_STREAM_FAIL"] = "CREATE_STREAM_FAIL";
1661
- })(EventNames || (EventNames = {}));
1662
-
1663
- // Copyright (c) Microsoft Corporation.
1664
- // Licensed under the MIT License.
1665
- /**
1666
- * @private
1667
- * Call Id will change during the call for at least 1 time
1668
- * This is to avoid async bug that call id has been changed during an async-await function
1669
- * but the function still uses stale call id to access state
1670
- */
1671
- class CallIdHistory {
1672
- constructor() {
1673
- this._callIdHistory = new Map();
1674
- }
1675
- updateCallIdHistory(newCallId, oldCallId) {
1676
- // callId for a call can fluctuate between some set of values.
1677
- // But if a newCallId already exists, and maps to different call, we're in trouble.
1678
- // This can only happen if a callId is reused across two distinct calls.
1679
- const existing = this._callIdHistory.get(newCallId);
1680
- if (existing !== undefined && this.latestCallId(newCallId) !== oldCallId) {
1681
- console.trace(`${newCallId} alredy exists and maps to ${existing}, which is not the same as ${oldCallId}`);
1682
- }
1683
- // The latest callId never maps to another callId.
1684
- this._callIdHistory.delete(newCallId);
1685
- this._callIdHistory.set(oldCallId, newCallId);
1686
- }
1687
- latestCallId(callId) {
1688
- let latest = callId;
1689
- /* eslint no-constant-condition: ["error", { "checkLoops": false }] */
1690
- while (true) {
1691
- const newer = this._callIdHistory.get(latest);
1692
- if (newer === undefined) {
1693
- break;
1694
- }
1695
- latest = newer;
1696
- }
1697
- return latest;
1698
- }
1699
- }
1700
-
1701
1622
  // Copyright (c) Microsoft Corporation.
1702
1623
  // Licensed under the MIT License.
1703
1624
  /**
@@ -1859,7 +1780,7 @@ function convertSdkCallToDeclarativeCall(call) {
1859
1780
  /* @conditional-compile-remove(meeting-id) */
1860
1781
  info: callInfo,
1861
1782
  /* @conditional-compile-remove(teams-meeting-conference) */
1862
- teamsMeetingConference: undefined
1783
+ teamsMeetingConference: []
1863
1784
  };
1864
1785
  }
1865
1786
  /**
@@ -1910,6 +1831,119 @@ function convertFromSDKToRaisedHandState(raisedHand) {
1910
1831
  raisedHandOrderPosition: raisedHand.order
1911
1832
  };
1912
1833
  }
1834
+ /** @private */
1835
+ function convertConferencePhoneInfo(meetingConferencePhoneInfo) {
1836
+ if (!meetingConferencePhoneInfo) {
1837
+ return [];
1838
+ }
1839
+ return meetingConferencePhoneInfo.phoneNumbers.flatMap((phoneNumber) => {
1840
+ var _a, _b, _c, _d;
1841
+ const common = {
1842
+ conferenceId: meetingConferencePhoneInfo.phoneConferenceId,
1843
+ country: phoneNumber.countryName,
1844
+ city: phoneNumber.cityName,
1845
+ phoneNumber: '',
1846
+ isTollFree: false
1847
+ };
1848
+ const toll = Object.assign({}, common);
1849
+ toll.phoneNumber = (_b = (_a = phoneNumber.tollPhoneNumber) === null || _a === void 0 ? void 0 : _a.phoneNumber) !== null && _b !== void 0 ? _b : '';
1850
+ toll.isTollFree = false;
1851
+ const tollFree = Object.assign({}, common);
1852
+ tollFree.phoneNumber = (_d = (_c = phoneNumber.tollFreePhoneNumber) === null || _c === void 0 ? void 0 : _c.phoneNumber) !== null && _d !== void 0 ? _d : '';
1853
+ tollFree.isTollFree = true;
1854
+ return [toll, tollFree].filter((phoneInfo) => phoneInfo.phoneNumber);
1855
+ });
1856
+ }
1857
+
1858
+ // Copyright (c) Microsoft Corporation.
1859
+ // Licensed under the MIT License.
1860
+ /**
1861
+ * Error thrown from failed stateful API methods.
1862
+ *
1863
+ * @public
1864
+ */
1865
+ class CallError extends Error {
1866
+ constructor(target, innerError, timestamp) {
1867
+ super();
1868
+ this.target = target;
1869
+ this.innerError = innerError;
1870
+ // Testing note: It is easier to mock Date::now() than the Date() constructor.
1871
+ this.timestamp = timestamp !== null && timestamp !== void 0 ? timestamp : new Date(Date.now());
1872
+ this.name = 'CallError';
1873
+ this.message = `${this.target}: ${this.innerError.message}`;
1874
+ }
1875
+ }
1876
+
1877
+ // Copyright (c) Microsoft Corporation.
1878
+ // Licensed under the MIT License.
1879
+ /**
1880
+ * @private
1881
+ */
1882
+ const callingStatefulLogger = logger.createClientLogger('communication-react:calling-stateful');
1883
+ /**
1884
+ * @private
1885
+ */
1886
+ var EventNames;
1887
+ (function (EventNames) {
1888
+ // Info
1889
+ EventNames["VIEW_RENDER_SUCCEED"] = "VIEW_RENDER_SUCCEED";
1890
+ EventNames["START_DISPOSE_STREAM"] = "START_DISPOSE_STREAM";
1891
+ EventNames["START_STREAM_RENDERING"] = "START_STREAM_RENDERING";
1892
+ EventNames["DISPOSING_RENDERER"] = "DISPOSING_RENDERER";
1893
+ EventNames["CREATING_VIEW"] = "CREATING_VIEW";
1894
+ // Warning
1895
+ EventNames["CREATE_STREAM_INVALID_PARAMS"] = "CREATE_STREAM_INVALID_PARAMS";
1896
+ EventNames["DISPOSE_STREAM_INVALID_PARAMS"] = "DISPOSE_STREAM_INVALID_PARAMS";
1897
+ EventNames["STREAM_ALREADY_RENDERED"] = "STREAM_ALREADY_RENDERED";
1898
+ EventNames["STREAM_ALREADY_DISPOSED"] = "STREAM_ALREADY_DISPOSED";
1899
+ EventNames["STREAM_STOPPING"] = "STREAM_STOPPING";
1900
+ EventNames["CREATED_STREAM_STOPPING"] = "CREATED_STREAM_STOPPING";
1901
+ EventNames["STREAM_RENDERING"] = "STREAM_RENDERING";
1902
+ // Error
1903
+ EventNames["STREAM_NOT_FOUND"] = "STREAM_NOT_FOUND";
1904
+ EventNames["RENDER_INFO_NOT_FOUND"] = "RENDER_INFO_NOT_FOUND";
1905
+ EventNames["DISPOSE_INFO_NOT_FOUND"] = "DISPOSE_INFO_NOT_FOUND";
1906
+ EventNames["RENDERER_NOT_FOUND"] = "RENDERER_NOT_FOUND";
1907
+ EventNames["CREATE_STREAM_FAIL"] = "CREATE_STREAM_FAIL";
1908
+ })(EventNames || (EventNames = {}));
1909
+
1910
+ // Copyright (c) Microsoft Corporation.
1911
+ // Licensed under the MIT License.
1912
+ /**
1913
+ * @private
1914
+ * Call Id will change during the call for at least 1 time
1915
+ * This is to avoid async bug that call id has been changed during an async-await function
1916
+ * but the function still uses stale call id to access state
1917
+ */
1918
+ class CallIdHistory {
1919
+ constructor() {
1920
+ this._callIdHistory = new Map();
1921
+ }
1922
+ updateCallIdHistory(newCallId, oldCallId) {
1923
+ // callId for a call can fluctuate between some set of values.
1924
+ // But if a newCallId already exists, and maps to different call, we're in trouble.
1925
+ // This can only happen if a callId is reused across two distinct calls.
1926
+ const existing = this._callIdHistory.get(newCallId);
1927
+ if (existing !== undefined && this.latestCallId(newCallId) !== oldCallId) {
1928
+ console.trace(`${newCallId} alredy exists and maps to ${existing}, which is not the same as ${oldCallId}`);
1929
+ }
1930
+ // The latest callId never maps to another callId.
1931
+ this._callIdHistory.delete(newCallId);
1932
+ this._callIdHistory.set(oldCallId, newCallId);
1933
+ }
1934
+ latestCallId(callId) {
1935
+ let latest = callId;
1936
+ /* eslint no-constant-condition: ["error", { "checkLoops": false }] */
1937
+ while (true) {
1938
+ const newer = this._callIdHistory.get(latest);
1939
+ if (newer === undefined) {
1940
+ break;
1941
+ }
1942
+ latest = newer;
1943
+ }
1944
+ return latest;
1945
+ }
1946
+ }
1913
1947
 
1914
1948
  // Copyright (c) Microsoft Corporation.
1915
1949
  // Licensed under the MIT License.
@@ -2360,7 +2394,7 @@ let CallContext$2 = class CallContext {
2360
2394
  this.modifyState((draft) => {
2361
2395
  const call = draft.calls[this._callIdHistory.latestCallId(callId)];
2362
2396
  if (call) {
2363
- call.teamsMeetingConference = teamsMeetingConferenceDetails;
2397
+ call.teamsMeetingConference = convertConferencePhoneInfo(teamsMeetingConferenceDetails);
2364
2398
  }
2365
2399
  });
2366
2400
  }
@@ -4272,7 +4306,7 @@ class CallSubscriber {
4272
4306
  };
4273
4307
  /* @conditional-compile-remove(teams-meeting-conference) */
4274
4308
  this.initTeamsMeetingConference = () => {
4275
- if (this._call.state === 'Connected' && this._call.kind === 'TeamsCall') {
4309
+ if (this._call.state === 'Connected') {
4276
4310
  this._call
4277
4311
  .feature(communicationCalling.Features.TeamsMeetingAudioConferencing)
4278
4312
  .getTeamsMeetingAudioConferencingDetails()
@@ -5742,7 +5776,7 @@ const typingIndicatorStringStyle = react.mergeStyles({
5742
5776
  wordBreak: 'break-word'
5743
5777
  });
5744
5778
 
5745
- var participantItem$k={isMeText:"(you)",menuTitle:"More Options",removeButtonLabel:"Remove",sharingIconLabel:"Sharing",mutedIconLabel:"Muted",displayNamePlaceholder:"Unnamed participant",participantStateRinging:"Calling...",participantStateHold:"On hold",attendeeRole:"Attendee"};var ParticipantList$l={overflowParticipantCount:"+{overflowCount} more"};var typingIndicator$k={singleUser:"{user} is typing ...",multipleUsers:"{users} are typing ...",multipleUsersAbbreviateOne:"{users} and 1 other are typing ...",multipleUsersAbbreviateMany:"{users} and {numOthers} others are typing ...",delimiter:", "};var sendBox$k={placeholderText:"Enter a message",textTooLong:"Your message length is over the maximum limit.",sendButtonAriaLabel:"Send message",attachmentUploadsPendingError:"Uploading... Please wait.",removeAttachment:"Remove file",uploading:"Uploading",uploadCompleted:"Upload completed",attachmentMoreMenu:"More Options"};var richTextSendBox$k={placeholderText:"Enter a message",textTooLong:"Your message length is over the maximum limit.",sendButtonAriaLabel:"Send message",attachmentUploadsPendingError:"Uploading... Please wait.",removeAttachment:"Remove file",uploading:"Uploading",uploadCompleted:"Upload completed",richTextBoldTooltip:"Bold",richTextItalicTooltip:"Italic",richTextUnderlineTooltip:"Underline",richTextBulletListTooltip:"Bulleted list",richTextNumberListTooltip:"Numbered list",richTextIncreaseIndentTooltip:"Increase indent",richTextDecreaseIndentTooltip:"Decrease indent",richTextInsertTableTooltip:"Insert table",richTextFormatButtonTooltip:"Format",richTextInsertRowOrColumnMenu:"Insert",richTextInsertTableMenuTitle:"Insert {column} x {row} table",richTextInsertRowAboveMenu:"Insert above",richTextInsertRowBelowMenu:"Insert below",richTextInsertColumnLeftMenu:"Insert left",richTextInsertColumnRightMenu:"Insert right",richTextDeleteRowOrColumnMenu:"Delete",richTextDeleteColumnMenu:"Delete column",richTextDeleteRowMenu:"Delete row",richTextDeleteTableMenu:"Delete table",richTextToolbarMoreButtonAriaLabel:"More options",attachmentMoreMenu:"More Options"};var mentionPopover$k={mentionPopoverHeader:"Suggestions"};var imageOverlay$k={downloadButtonLabel:"Download",dismissButtonAriaLabel:"Close"};var messageStatusIndicator$k={deliveredAriaLabel:"Message sent",deliveredTooltipText:"Sent",seenAriaLabel:"Message seen by others",seenTooltipText:"Seen",readByTooltipText:"Read by {messageThreadReadCount} of {remoteParticipantsCount}",sendingAriaLabel:"Message sending",sendingTooltipText:"Sending",failedToSendAriaLabel:"Message failed to send",failedToSendTooltipText:"Failed to send"};var endCallButton$k={label:"Leave",tooltipContent:"Leave call",leaveOption:"Leave",endCallOption:"End call for everyone"};var cameraButton$k={onLabel:"Camera",offLabel:"Camera",tooltipDisabledContent:"Camera is disabled",tooltipOnContent:"Turn off camera",tooltipOffContent:"Turn on camera",tooltipVideoLoadingContent:"Video is loading",cameraMenuTitle:"Camera",cameraMenuTooltip:"Choose camera",cameraButtonSplitRoleDescription:"Split button",onSplitButtonAriaLabel:"Turn off camera and camera options",offSplitButtonAriaLabel:"Turn on camera and camera options",cameraActionTurnedOnAnnouncement:"Your camera has been turned on",cameraActionTurnedOffAnnouncement:"Your camera has been turned off",onSplitButtonPrimaryActionCamera:"Turn off camera",offSplitButtonPrimaryActionCamera:"Turn on camera",cameraPrimaryActionSplitButtonTitle:"Use camera",videoEffectsMenuItemTitle:"Effects"};var microphoneButton$k={onLabel:"Mic",offLabel:"Mic",tooltipDisabledContent:"Microphone is disabled",tooltipOnContent:"Mute microphone",tooltipOffContent:"Unmute microphone",microphoneMenuTitle:"Microphone",microphoneMenuTooltip:"Choose microphone",speakerMenuTitle:"Speaker",speakerMenuTooltip:"Choose speaker",microphoneButtonSplitRoleDescription:"Split button",onSplitButtonAriaLabel:"Mute microphone and audio options",offSplitButtonAriaLabel:"Unmute microphone and audio options",microphoneActionTurnedOnAnnouncement:"Your microphone has been turned on",microphoneActionTurnedOffAnnouncement:"Your microphone has been turned off",offSplitButtonMicrophonePrimaryAction:"Unmute microphone",onSplitButtonMicrophonePrimaryAction:"Mute microphone",microphonePrimaryActionSplitButtonTitle:"Use microphone"};var devicesButton$k={label:"Devices",tooltipContent:"Manage devices",cameraMenuTitle:"Camera",cameraMenuTooltip:"Choose camera",audioDeviceMenuTitle:"Audio Device",audioDeviceMenuTooltip:"Choose audio device",microphoneMenuTitle:"Microphone",microphoneMenuTooltip:"Choose microphone",speakerMenuTitle:"Speaker",speakerMenuTooltip:"Choose speaker"};var participantsButton$k={label:"People",tooltipContent:"Show participants",menuHeader:"In this call",participantsListButtonLabel:"{numParticipants} people",muteAllButtonLabel:"Mute all",copyInviteLinkButtonLabel:"Copy invite link",copyInviteLinkActionedAriaLabel:"Invite link copied"};var screenShareButton$k={onLabel:"Stop presenting",offLabel:"Present",tooltipDisabledContent:"Presenting is disabled",tooltipOnContent:"Presenting your screen",tooltipOffContent:"Present your screen"};var raiseHandButton$k={offLabel:"Raise",onLabel:"Lower",tooltipDisabledContent:"Raise Hand action is disabled",tooltipOnContent:"Lower Hand",tooltipOffContent:"Raise Hand"};var reactionButton$k={label:"React",ariaLabel:"React Button, Send a reaction",tooltipDisabledContent:"Reaction action is disabled",tooltipContent:"Send a reaction",likeReactionTooltipContent:"Like",heartReactionTooltipContent:"Love",laughReactionTooltipContent:"Laugh",applauseReactionTooltipContent:"Applause",surprisedReactionTooltipContent:"Surprised"};var messageThread$k={yesterday:"Yesterday",sunday:"Sunday",monday:"Monday",tuesday:"Tuesday",wednesday:"Wednesday",thursday:"Thursday",friday:"Friday",saturday:"Saturday",participantJoined:"joined the chat.",participantLeft:"left the chat.",editMessage:"Edit",removeMessage:"Delete",resendMessage:"Try sending again",failToSendTag:"Failed to send",editedTag:"Edited",liveAuthorIntro:"{author} says",messageContentAriaText:"{author} said {message}",messageContentMineAriaText:"You said {message}",editBoxTextLimit:"Your message is over the limit of {limitNumber} characters",editBoxPlaceholderText:"Edit your message",newMessagesIndicator:"New messages",noDisplayNameSub:"No name",editBoxCancelButton:"Cancel",editBoxSubmitButton:"Done",messageReadCount:"Read by {messageReadByCount} of {remoteParticipantsCount}",actionMenuMoreOptions:"More Options",downloadAttachment:"Download file",openAttachment:"Open file",blockedWarningText:"This message was deleted due to organizational policy.",blockedWarningLinkText:"Details",attachmentCardGroupMessage:"The message has {attachmentCount} attachment",messageDeletedAnnouncementAriaLabel:"The message is deleted",richTextBoldTooltip:"Bold",richTextItalicTooltip:"Italic",richTextUnderlineTooltip:"Underline",richTextBulletListTooltip:"Bulleted list",richTextNumberListTooltip:"Numbered list",richTextIncreaseIndentTooltip:"Increase indent",richTextDecreaseIndentTooltip:"Decrease indent",richTextInsertTableTooltip:"Insert table",richTextFormatButtonTooltip:"Format",richTextInsertRowOrColumnMenu:"Insert",richTextInsertTableMenuTitle:"Insert {column} x {row} table",richTextInsertRowAboveMenu:"Insert above",richTextInsertRowBelowMenu:"Insert below",richTextInsertColumnLeftMenu:"Insert left",richTextInsertColumnRightMenu:"Insert right",richTextDeleteRowOrColumnMenu:"Delete",richTextDeleteColumnMenu:"Delete column",richTextDeleteRowMenu:"Delete row",richTextDeleteTableMenu:"Delete table",richTextToolbarMoreButtonAriaLabel:"More options"};var errorBar$k={unableToReachChatService:"You are offline",accessDenied:"Unable to access chat services - please check the user credentials provided",userNotInChatThread:"You are no longer in this chat thread",sendMessageNotInChatThread:"Failed to send message because you are no longer in this chat thread",sendMessageGeneric:"Failed to send message",callingNetworkFailure:"Troubling connecting call - you seem to be offline",startVideoGeneric:"Failed to start video",stopVideoGeneric:"Failed to stop video",muteGeneric:"Failed to mute microphone",unmuteGeneric:"Failed to unmute microphone",speakingWhileMuted:"Your microphone is muted",startScreenShareGeneric:"There was an issue starting screen share.",stopScreenShareGeneric:"Failed to stop screen sharing",callNetworkQualityLow:"Network quality is low.",callNoSpeakerFound:"No speakers or headphones found. Connect an audio device to hear the call.",callNoMicrophoneFound:"No microphones found. Connect an audio input device.",callMicrophoneAccessDenied:"Unable to access microphone. Click the lock in the address bar to grant permission to this webpage.",callMicrophoneAccessDeniedSafari:"Unable to access microphone. Refresh the page to allow permissions, or check this browser’s settings and verify permissions are enabled for this website.",callMicrophoneMutedBySystem:"You are muted by your system.",callMicrophoneUnmutedBySystem:"Your microphone recovered and you were unmuted by your system.",callMacOsMicrophoneAccessDenied:"Unable to access microphone. Grant microphone permission in your macOS privacy settings.",callLocalVideoFreeze:"Network bandwidth is poor. Your video may appear paused for others on the call.",callCameraAccessDenied:"Unable to access camera. Click the lock in the address bar to grant permission to this webpage.",callCameraAccessDeniedSafari:"Unable to access camera. Refresh the page to allow permissions, or check this browser’s settings and verify permissions are enabled for this website.",callCameraAlreadyInUse:"Unable to access camera. It may already be in use by another application.",callVideoStoppedBySystem:"Your video has been stopped by your system.",callVideoRecoveredBySystem:"Your video has resumed.",callMacOsCameraAccessDenied:"MacOS is blocking access to your camera. Update your privacy settings to allow this browser to access your camera.",callMacOsScreenShareAccessDenied:"MacOS is blocking screen sharing. Update your privacy settings to allow this browser to record your screen.",dismissButtonAriaLabel:"Close",failedToJoinCallGeneric:"Failed to join call.",failedToJoinCallInvalidMeetingLink:"Unable to join Meeting. Invalid Link.",cameraFrozenForRemoteParticipants:"Users in the call are having issues seeing your video. Please check your devices and network.",unableToStartVideoEffect:"Unable to apply video effect.",startSpotlightWhileMaxParticipantsAreSpotlighted:"Cannot start spotlight on participant(s) because the maximum number of participants are already spotlighted."};var notifications={unableToReachChatService:{title:"You are offline.",closeButtonAriaLabel:"Close"},accessDenied:{title:"Unable to access chat services",message:"Please check the user credentials provided",closeButtonAriaLabel:"Close"},userNotInChatThread:{title:"You are no longer in this chat thread.",closeButtonAriaLabel:"Close"},sendMessageNotInChatThread:{title:"Failed to send message",message:"You are no longer in this chat thread",closeButtonAriaLabel:"Close"},sendMessageGeneric:{title:"Failed to send message.",closeButtonAriaLabel:"Close"},callingNetworkFailure:{title:"Troubling connecting call",message:"You seem to be offline. Please check your network connection and try again.",closeButtonAriaLabel:"Close"},startVideoGeneric:{title:"Failed to start video.",closeButtonAriaLabel:"Close"},stopVideoGeneric:{title:"Failed to stop video.",closeButtonAriaLabel:"Close"},muteGeneric:{title:"Failed to mute microphone.",closeButtonAriaLabel:"Close"},unmuteGeneric:{title:"Failed to unmute microphone.",closeButtonAriaLabel:"Close"},speakingWhileMuted:{title:"You're muted.",closeButtonAriaLabel:"Close"},startScreenShareGeneric:{title:"There was an issue starting screen share.",closeButtonAriaLabel:"Close"},stopScreenShareGeneric:{title:"Failed to stop screen sharing.",closeButtonAriaLabel:"Close"},callNetworkQualityLow:{title:"Network quality is low.",closeButtonAriaLabel:"Close"},callNoSpeakerFound:{title:"No speakers or headphones found",message:"Connect an audio device to hear the call.",closeButtonAriaLabel:"Close"},callNoMicrophoneFound:{title:"No microphones found",message:"Connect an audio input device.",closeButtonAriaLabel:"Close"},callMicrophoneAccessDenied:{title:"Unable to access microphone",message:"Click the lock in the address bar to grant permission to this webpage.",closeButtonAriaLabel:"Close"},callMicrophoneAccessDeniedSafari:{title:"Unable to access microphone",message:"Refresh the page to allow permissions, or check this browser’s settings and verify permissions are enabled for this website.",closeButtonAriaLabel:"Close"},callMicrophoneMutedBySystem:{title:"You are muted by your system.",closeButtonAriaLabel:"Close"},callMicrophoneUnmutedBySystem:{title:"Your microphone recovered and you were unmuted by your system.",closeButtonAriaLabel:"Close"},callMacOsMicrophoneAccessDenied:{title:"Unable to access microphone",message:"Grant microphone permission in your macOS privacy settings.",closeButtonAriaLabel:"Close"},callLocalVideoFreeze:{title:"Network bandwidth is poor",message:"Your video may appear paused for others on the call.",closeButtonAriaLabel:"Close"},callCameraAccessDenied:{title:"Unable to access camera",message:"Click the lock in the address bar to grant permission to this webpage.",closeButtonAriaLabel:"Close"},callCameraAccessDeniedSafari:{title:"Unable to access camera",message:"Refresh the page to allow permissions, or check this browser’s settings and verify permissions are enabled for this website.",closeButtonAriaLabel:"Close"},callCameraAlreadyInUse:{title:"Unable to access camera",message:"It may already be in use by another application.",closeButtonAriaLabel:"Close"},callVideoStoppedBySystem:{title:"Your video has been stopped by your system.",closeButtonAriaLabel:"Close"},callVideoRecoveredBySystem:{title:"Your video has resumed.",closeButtonAriaLabel:"Close"},callMacOsCameraAccessDenied:{title:"MacOS is blocking access to your camera",message:"Update your privacy settings to allow this browser to access your camera.",closeButtonAriaLabel:"Close"},callMacOsScreenShareAccessDenied:{title:"MacOS is blocking screen sharing",message:"Update your privacy settings to allow this browser to record your screen.",closeButtonAriaLabel:"Close"},failedToJoinCallGeneric:{title:"Failed to join call.",closeButtonAriaLabel:"Close"},failedToJoinCallInvalidMeetingLink:{title:"Unable to join Meeting. Invalid Link.",closeButtonAriaLabel:"Close"},cameraFrozenForRemoteParticipants:{title:"Users in the call are having issues seeing your video",message:"Please check your devices and network.",closeButtonAriaLabel:"Close"},unableToStartVideoEffect:{title:"Unable to apply video effect.",closeButtonAriaLabel:"Close"},startSpotlightWhileMaxParticipantsAreSpotlighted:{title:"Cannot start spotlight on participant(s)",message:"The maximum number of participants are already spotlighted.",closeButtonAriaLabel:"Close"}};var videoGallery$k={screenIsBeingSharedMessage:"You are sharing your screen",screenShareLoadingMessage:"Loading {participant}'s screen",localVideoLabel:"You",localVideoCameraSwitcherLabel:"Switch camera",localVideoMovementLabel:"Movable Local Video Tile",localVideoMovementAriaLabel:"Movable Local Video Tile",localVideoSelectedDescription:"{cameraName} selected",displayNamePlaceholder:"Unnamed participant",fitRemoteParticipantToFrame:"Fit to frame",fillRemoteParticipantFrame:"Fill frame",pinParticipantForMe:"Pin for me",pinParticipantForMeLimitReached:"Pin (limit reached)",unpinParticipantForMe:"Unpin",pinParticipantMenuItemAriaLabel:"Pin {participantName}",unpinParticipantMenuItemAriaLabel:"Unpin {participantName}",pinnedParticipantAnnouncementAriaLabel:"Pinned {participantName}",unpinnedParticipantAnnouncementAriaLabel:"Unpinned {participantName}",startSpotlightVideoTileMenuLabel:"Spotlight for everyone",addSpotlightVideoTileMenuLabel:"Add spotlight",spotlightLimitReachedMenuTitle:"Spotlight limit reached",stopSpotlightVideoTileMenuLabel:"Stop spotlighting",stopSpotlightOnSelfVideoTileMenuLabel:"Exit spotlight",attendeeRole:"Attendee"};var dialpad$k={placeholderText:"Enter phone number",deleteButtonAriaLabel:"Delete"};var holdButton$k={onLabel:"Resume",offLabel:"Hold",tooltipOnContent:"Resume call",tooltipOffContent:"Hold call"};var videoTile$k={participantStateRinging:"Calling...",participantStateHold:"On hold",moreOptionsButtonAriaLabel:"More Options"};var CameraAndMicrophoneSitePermissionsRequest$k={primaryText:"Allow {appName} to use your camera and microphone",secondaryText:"This is so participants can see and hear you.",linkText:"Need help? Get troubleshooting help",primaryButtonText:"Continue without camera and microphone",ariaLabel:"Allow camera and microphone access"};var CameraSitePermissionsRequest$k={primaryText:"Allow {appName} to use your camera",secondaryText:"This is so participants can see you.",linkText:"Need help? Get troubleshooting help",primaryButtonText:"Continue without camera",ariaLabel:"Allow camera access"};var MicrophoneSitePermissionsRequest$k={primaryText:"Allow {appName} to use your microphone",secondaryText:"This is so participants can hear you.",linkText:"Need help? Get troubleshooting help",primaryButtonText:"Continue without microphone",ariaLabel:"Allow microphone access"};var CameraAndMicrophoneSitePermissionsCheck$k={primaryText:"Checking for camera and microphone access",secondaryText:"Allow access if prompted. This is so participants can see and hear you.",linkText:"Need help? Get troubleshooting help",primaryButtonText:"Continue without camera and microphone",ariaLabel:"Checking for camera and microphone access. Allow access if prompted."};var CameraSitePermissionsCheck$k={primaryText:"Checking for camera access",secondaryText:"Allow access if prompted. This is so participants can see you.",linkText:"Need help? Get troubleshooting help",primaryButtonText:"Continue without camera",ariaLabel:"Checking for camera access. Allow access if prompted."};var MicrophoneSitePermissionsCheck$k={primaryText:"Checking for microphone access",secondaryText:"Allow access if prompted. This is so participants can hear you.",linkText:"Need help? Get troubleshooting help",primaryButtonText:"Continue without microphone",ariaLabel:"Checking for microphone access. Allow access if prompted."};var CameraAndMicrophoneSitePermissionsDenied$k={primaryText:"Unable to access camera and microphone",secondaryText:"Click the lock icon in the address bar to grant microphone permissions to this webpage. A page refresh may be required.",primaryButtonText:"Continue without camera and microphone",linkText:"Need help? Get troubleshooting help"};var CameraAndMicrophoneSitePermissionsDeniedSafari$k={primaryText:"Unable to access camera and microphone",secondaryText:"Refresh the page to allow permissions, or check this browser’s settings and verify permissions are enabled for this website.",primaryButtonText:"Continue without camera and microphone",linkText:"Need help? Get troubleshooting help"};var CameraSitePermissionsDenied$k={primaryText:"Unable to access camera",secondaryText:"Click the lock icon in the address bar to grant camera permissions to this webpage. A page refresh may be required.",primaryButtonText:"Continue without camera",linkText:"Need help? Get troubleshooting help"};var MicrophoneSitePermissionsDenied$k={primaryText:"Unable to access microphone",secondaryText:"Click the lock icon in the address bar to grant microphone permissions to this webpage. A page refresh may be required.",primaryButtonText:"Continue without microphone",linkText:"Need help? Get troubleshooting help"};var CameraSitePermissionsDeniedSafari$k={primaryText:"Unable to access camera",secondaryText:"Refresh the page to allow permissions, or check this browser’s settings and verify permissions are enabled for this website.",primaryButtonText:"Continue without camera",linkText:"Need help? Get troubleshooting help"};var MicrophoneSitePermissionsDeniedSafari$k={primaryText:"Unable to access microphone",secondaryText:"Refresh the page to allow permissions, or check this browser’s settings and verify permissions are enabled for this website.",primaryButtonText:"Continue without microphone",linkText:"Need help? Get troubleshooting help"};var UnsupportedBrowser$l={primaryText:"Browser not supported",secondaryText:"Please join this call using a compatible browser.",moreHelpLinkText:"See compatibility requirements"};var UnsupportedBrowserVersion$l={primaryText:"Browser update needed",secondaryText:"To ensure the best call possible, please update your browser and then try joining the call again.",moreHelpLinkText:"See compatibility requirements",continueAnywayButtonText:"Start call without updating"};var UnsupportedOperatingSystem$l={primaryText:"Operating system not supported",secondaryText:"Please join this call using a device with a compatible operating system.",moreHelpLinkText:"See compatibility requirements"};var BrowserPermissionDenied$k={primaryText:"Can't use your camera or microphone",secondaryText:"Your browser might not have access to your camera or microphone. To fix this, open System Preferences.",primaryButtonText:"Try again",linkText:"Need help? Get troubleshooting help"};var BrowserPermissionDeniedIOS$k={primaryText:"Allow microphone access to continue",secondaryText:"So other participants can hear you.",primaryButtonText:"Try again",imageAltText:"Microphone and camera device permission location for iOS",linkText:"Need help? Get troubleshooting help",step1Text:"Go to the Settings app",step2Text:"Scroll down to settings for this browser",step3Text:"Turn on Microphone (Camera optional)",step4Text:"Try joining the call again",step1DigitText:"1",step2DigitText:"2",step3DigitText:"3",step4DigitText:"4"};var verticalGallery$k={leftNavButtonAriaLabel:"previous page",rightNavButtonAriaLabel:"next page"};var en_US$1 = {participantItem:participantItem$k,ParticipantList:ParticipantList$l,typingIndicator:typingIndicator$k,sendBox:sendBox$k,richTextSendBox:richTextSendBox$k,mentionPopover:mentionPopover$k,imageOverlay:imageOverlay$k,messageStatusIndicator:messageStatusIndicator$k,endCallButton:endCallButton$k,cameraButton:cameraButton$k,microphoneButton:microphoneButton$k,devicesButton:devicesButton$k,participantsButton:participantsButton$k,screenShareButton:screenShareButton$k,raiseHandButton:raiseHandButton$k,reactionButton:reactionButton$k,messageThread:messageThread$k,errorBar:errorBar$k,notifications:notifications,videoGallery:videoGallery$k,dialpad:dialpad$k,holdButton:holdButton$k,videoTile:videoTile$k,CameraAndMicrophoneSitePermissionsRequest:CameraAndMicrophoneSitePermissionsRequest$k,CameraSitePermissionsRequest:CameraSitePermissionsRequest$k,MicrophoneSitePermissionsRequest:MicrophoneSitePermissionsRequest$k,CameraAndMicrophoneSitePermissionsCheck:CameraAndMicrophoneSitePermissionsCheck$k,CameraSitePermissionsCheck:CameraSitePermissionsCheck$k,MicrophoneSitePermissionsCheck:MicrophoneSitePermissionsCheck$k,CameraAndMicrophoneSitePermissionsDenied:CameraAndMicrophoneSitePermissionsDenied$k,CameraAndMicrophoneSitePermissionsDeniedSafari:CameraAndMicrophoneSitePermissionsDeniedSafari$k,CameraSitePermissionsDenied:CameraSitePermissionsDenied$k,MicrophoneSitePermissionsDenied:MicrophoneSitePermissionsDenied$k,CameraSitePermissionsDeniedSafari:CameraSitePermissionsDeniedSafari$k,MicrophoneSitePermissionsDeniedSafari:MicrophoneSitePermissionsDeniedSafari$k,UnsupportedBrowser:UnsupportedBrowser$l,UnsupportedBrowserVersion:UnsupportedBrowserVersion$l,UnsupportedOperatingSystem:UnsupportedOperatingSystem$l,BrowserPermissionDenied:BrowserPermissionDenied$k,BrowserPermissionDeniedIOS:BrowserPermissionDeniedIOS$k,verticalGallery:verticalGallery$k};
5779
+ var participantItem$k={isMeText:"(you)",menuTitle:"More Options",removeButtonLabel:"Remove",sharingIconLabel:"Sharing",mutedIconLabel:"Muted",displayNamePlaceholder:"Unnamed participant",participantStateRinging:"Calling...",participantStateHold:"On hold",attendeeRole:"Attendee"};var ParticipantList$l={overflowParticipantCount:"+{overflowCount} more"};var typingIndicator$k={singleUser:"{user} is typing ...",multipleUsers:"{users} are typing ...",multipleUsersAbbreviateOne:"{users} and 1 other are typing ...",multipleUsersAbbreviateMany:"{users} and {numOthers} others are typing ...",delimiter:", "};var sendBox$k={placeholderText:"Enter a message",textTooLong:"Your message length is over the maximum limit.",sendButtonAriaLabel:"Send message",attachmentUploadsPendingError:"Uploading... Please wait.",removeAttachment:"Remove file",uploading:"Uploading",uploadCompleted:"Upload completed",attachmentMoreMenu:"More Options"};var richTextSendBox$k={placeholderText:"Enter a message",textTooLong:"Your message length is over the maximum limit.",sendButtonAriaLabel:"Send message",attachmentUploadsPendingError:"Uploading... Please wait.",removeAttachment:"Remove file",uploading:"Uploading",uploadCompleted:"Upload completed",richTextBoldTooltip:"Bold",richTextItalicTooltip:"Italic",richTextUnderlineTooltip:"Underline",richTextBulletListTooltip:"Bulleted list",richTextNumberListTooltip:"Numbered list",richTextIncreaseIndentTooltip:"Increase indent",richTextDecreaseIndentTooltip:"Decrease indent",richTextInsertTableTooltip:"Insert table",richTextFormatButtonTooltip:"Format",richTextInsertRowOrColumnMenu:"Insert",richTextInsertTableMenuTitle:"Insert {column} x {row} table",richTextInsertRowAboveMenu:"Insert above",richTextInsertRowBelowMenu:"Insert below",richTextInsertColumnLeftMenu:"Insert left",richTextInsertColumnRightMenu:"Insert right",richTextDeleteRowOrColumnMenu:"Delete",richTextDeleteColumnMenu:"Delete column",richTextDeleteRowMenu:"Delete row",richTextDeleteTableMenu:"Delete table",richTextToolbarMoreButtonAriaLabel:"More options",attachmentMoreMenu:"More Options"};var mentionPopover$k={mentionPopoverHeader:"Suggestions"};var imageOverlay$k={downloadButtonLabel:"Download",dismissButtonAriaLabel:"Close"};var messageStatusIndicator$k={deliveredAriaLabel:"Message sent",deliveredTooltipText:"Sent",seenAriaLabel:"Message seen by others",seenTooltipText:"Seen",readByTooltipText:"Read by {messageThreadReadCount} of {remoteParticipantsCount}",sendingAriaLabel:"Message sending",sendingTooltipText:"Sending",failedToSendAriaLabel:"Message failed to send",failedToSendTooltipText:"Failed to send"};var endCallButton$k={label:"Leave",tooltipContent:"Leave call",leaveOption:"Leave",endCallOption:"End call for everyone"};var cameraButton$k={onLabel:"Camera",offLabel:"Camera",tooltipDisabledContent:"Camera is disabled",tooltipOnContent:"Turn off camera",tooltipOffContent:"Turn on camera",tooltipVideoLoadingContent:"Video is loading",cameraMenuTitle:"Camera",cameraMenuTooltip:"Choose camera",cameraButtonSplitRoleDescription:"Split button",onSplitButtonAriaLabel:"Turn off camera and camera options",offSplitButtonAriaLabel:"Turn on camera and camera options",cameraActionTurnedOnAnnouncement:"Your camera has been turned on",cameraActionTurnedOffAnnouncement:"Your camera has been turned off",onSplitButtonPrimaryActionCamera:"Turn off camera",offSplitButtonPrimaryActionCamera:"Turn on camera",cameraPrimaryActionSplitButtonTitle:"Use camera",videoEffectsMenuItemTitle:"Effects"};var microphoneButton$k={onLabel:"Mic",offLabel:"Mic",tooltipDisabledContent:"Microphone is disabled",tooltipOnContent:"Mute microphone",tooltipOffContent:"Unmute microphone",microphoneMenuTitle:"Microphone",microphoneMenuTooltip:"Choose microphone",speakerMenuTitle:"Speaker",speakerMenuTooltip:"Choose speaker",microphoneButtonSplitRoleDescription:"Split button",onSplitButtonAriaLabel:"Mute microphone and audio options",offSplitButtonAriaLabel:"Unmute microphone and audio options",microphoneActionTurnedOnAnnouncement:"Your microphone has been turned on",microphoneActionTurnedOffAnnouncement:"Your microphone has been turned off",offSplitButtonMicrophonePrimaryAction:"Unmute microphone",onSplitButtonMicrophonePrimaryAction:"Mute microphone",microphonePrimaryActionSplitButtonTitle:"Use microphone"};var devicesButton$k={label:"Devices",tooltipContent:"Manage devices",cameraMenuTitle:"Camera",cameraMenuTooltip:"Choose camera",audioDeviceMenuTitle:"Audio Device",audioDeviceMenuTooltip:"Choose audio device",microphoneMenuTitle:"Microphone",microphoneMenuTooltip:"Choose microphone",speakerMenuTitle:"Speaker",speakerMenuTooltip:"Choose speaker"};var participantsButton$k={label:"People",tooltipContent:"Show participants",menuHeader:"In this call",participantsListButtonLabel:"{numParticipants} people",muteAllButtonLabel:"Mute all",copyInviteLinkButtonLabel:"Copy invite link",copyInviteLinkActionedAriaLabel:"Invite link copied"};var screenShareButton$k={onLabel:"Stop presenting",offLabel:"Present",tooltipDisabledContent:"Presenting is disabled",tooltipOnContent:"Presenting your screen",tooltipOffContent:"Present your screen"};var raiseHandButton$k={offLabel:"Raise",onLabel:"Lower",tooltipDisabledContent:"Raise Hand action is disabled",tooltipOnContent:"Lower Hand",tooltipOffContent:"Raise Hand"};var reactionButton$k={label:"React",ariaLabel:"React Button, Send a reaction",tooltipDisabledContent:"Reaction action is disabled",tooltipContent:"Send a reaction",likeReactionTooltipContent:"Like",heartReactionTooltipContent:"Love",laughReactionTooltipContent:"Laugh",applauseReactionTooltipContent:"Applause",surprisedReactionTooltipContent:"Surprised"};var messageThread$k={yesterday:"Yesterday",sunday:"Sunday",monday:"Monday",tuesday:"Tuesday",wednesday:"Wednesday",thursday:"Thursday",friday:"Friday",saturday:"Saturday",participantJoined:"joined the chat.",participantLeft:"left the chat.",editMessage:"Edit",removeMessage:"Delete",resendMessage:"Try sending again",failToSendTag:"Failed to send",editedTag:"Edited",liveAuthorIntro:"{author} says",messageContentAriaText:"{author} said {message}",messageContentMineAriaText:"You said {message}",editBoxTextLimit:"Your message is over the limit of {limitNumber} characters",editBoxPlaceholderText:"Edit your message",newMessagesIndicator:"New messages",noDisplayNameSub:"No name",editBoxCancelButton:"Cancel",editBoxSubmitButton:"Done",messageReadCount:"Read by {messageReadByCount} of {remoteParticipantsCount}",actionMenuMoreOptions:"More Options",downloadAttachment:"Download file",openAttachment:"Open file",blockedWarningText:"This message was deleted due to organizational policy.",blockedWarningLinkText:"Details",attachmentCardGroupMessage:"The message has {attachmentCount} attachment",messageDeletedAnnouncementAriaLabel:"The message is deleted",richTextBoldTooltip:"Bold",richTextItalicTooltip:"Italic",richTextUnderlineTooltip:"Underline",richTextBulletListTooltip:"Bulleted list",richTextNumberListTooltip:"Numbered list",richTextIncreaseIndentTooltip:"Increase indent",richTextDecreaseIndentTooltip:"Decrease indent",richTextInsertTableTooltip:"Insert table",richTextFormatButtonTooltip:"Format",richTextInsertRowOrColumnMenu:"Insert",richTextInsertTableMenuTitle:"Insert {column} x {row} table",richTextInsertRowAboveMenu:"Insert above",richTextInsertRowBelowMenu:"Insert below",richTextInsertColumnLeftMenu:"Insert left",richTextInsertColumnRightMenu:"Insert right",richTextDeleteRowOrColumnMenu:"Delete",richTextDeleteColumnMenu:"Delete column",richTextDeleteRowMenu:"Delete row",richTextDeleteTableMenu:"Delete table",richTextToolbarMoreButtonAriaLabel:"More options"};var errorBar$k={unableToReachChatService:"You are offline",accessDenied:"Unable to access chat services - please check the user credentials provided",userNotInChatThread:"You are no longer in this chat thread",sendMessageNotInChatThread:"Failed to send message because you are no longer in this chat thread",sendMessageGeneric:"Failed to send message",callingNetworkFailure:"Troubling connecting call - you seem to be offline",startVideoGeneric:"Failed to start video",stopVideoGeneric:"Failed to stop video",muteGeneric:"Failed to mute microphone",unmuteGeneric:"Failed to unmute microphone",speakingWhileMuted:"Your microphone is muted",startScreenShareGeneric:"There was an issue starting screen share.",stopScreenShareGeneric:"Failed to stop screen sharing",callNetworkQualityLow:"Network quality is low.",callNoSpeakerFound:"No speakers or headphones found. Connect an audio device to hear the call.",callNoMicrophoneFound:"No microphones found. Connect an audio input device.",callMicrophoneAccessDenied:"Unable to access microphone. Click the lock in the address bar to grant permission to this webpage.",callMicrophoneAccessDeniedSafari:"Unable to access microphone. Refresh the page to allow permissions, or check this browser’s settings and verify permissions are enabled for this website.",callMicrophoneMutedBySystem:"You are muted by your system.",callMicrophoneUnmutedBySystem:"Your microphone recovered and you were unmuted by your system.",callMacOsMicrophoneAccessDenied:"Unable to access microphone. Grant microphone permission in your macOS privacy settings.",callLocalVideoFreeze:"Network bandwidth is poor. Your video may appear paused for others on the call.",callCameraAccessDenied:"Unable to access camera. Click the lock in the address bar to grant permission to this webpage.",callCameraAccessDeniedSafari:"Unable to access camera. Refresh the page to allow permissions, or check this browser’s settings and verify permissions are enabled for this website.",callCameraAlreadyInUse:"Unable to access camera. It may already be in use by another application.",callVideoStoppedBySystem:"Your video has been stopped by your system.",callVideoRecoveredBySystem:"Your video has resumed.",callMacOsCameraAccessDenied:"MacOS is blocking access to your camera. Update your privacy settings to allow this browser to access your camera.",callMacOsScreenShareAccessDenied:"MacOS is blocking screen sharing. Update your privacy settings to allow this browser to record your screen.",dismissButtonAriaLabel:"Close",failedToJoinCallGeneric:"Failed to join call.",failedToJoinCallInvalidMeetingLink:"Unable to join Meeting. Invalid Link.",cameraFrozenForRemoteParticipants:"Users in the call are having issues seeing your video. Please check your devices and network.",unableToStartVideoEffect:"Unable to apply video effect.",startSpotlightWhileMaxParticipantsAreSpotlighted:"Cannot start spotlight on participant(s) because the maximum number of participants are already spotlighted."};var notifications={unableToReachChatService:{title:"You are offline.",closeButtonAriaLabel:"Close"},accessDenied:{title:"Unable to access chat services",message:"Please check the user credentials provided",closeButtonAriaLabel:"Close"},userNotInChatThread:{title:"You are no longer in this chat thread.",closeButtonAriaLabel:"Close"},sendMessageNotInChatThread:{title:"Failed to send message",message:"You are no longer in this chat thread",closeButtonAriaLabel:"Close"},sendMessageGeneric:{title:"Failed to send message.",closeButtonAriaLabel:"Close"},callingNetworkFailure:{title:"Troubling connecting call",message:"You seem to be offline. Please check your network connection and try again.",closeButtonAriaLabel:"Close"},startVideoGeneric:{title:"Failed to start video.",closeButtonAriaLabel:"Close"},stopVideoGeneric:{title:"Failed to stop video.",closeButtonAriaLabel:"Close"},muteGeneric:{title:"Failed to mute microphone.",closeButtonAriaLabel:"Close"},unmuteGeneric:{title:"Failed to unmute microphone.",closeButtonAriaLabel:"Close"},speakingWhileMuted:{title:"You're muted.",closeButtonAriaLabel:"Close"},startScreenShareGeneric:{title:"There was an issue starting screen share.",closeButtonAriaLabel:"Close"},stopScreenShareGeneric:{title:"Failed to stop screen sharing.",closeButtonAriaLabel:"Close"},callNetworkQualityLow:{title:"Network quality is low.",closeButtonAriaLabel:"Close"},callNoSpeakerFound:{title:"No speakers or headphones found",message:"Connect an audio device to hear the call.",closeButtonAriaLabel:"Close"},callNoMicrophoneFound:{title:"No microphones found",message:"Connect an audio input device.",closeButtonAriaLabel:"Close"},callMicrophoneAccessDenied:{title:"Unable to access microphone",message:"Click the lock in the address bar to grant permission to this webpage.",closeButtonAriaLabel:"Close"},callMicrophoneAccessDeniedSafari:{title:"Unable to access microphone",message:"Refresh the page to allow permissions, or check this browser’s settings and verify permissions are enabled for this website.",closeButtonAriaLabel:"Close"},callMicrophoneMutedBySystem:{title:"You are muted by your system.",closeButtonAriaLabel:"Close"},callMicrophoneUnmutedBySystem:{title:"Your microphone recovered and you were unmuted by your system.",closeButtonAriaLabel:"Close"},callMacOsMicrophoneAccessDenied:{title:"Unable to access microphone",message:"Grant microphone permission in your macOS privacy settings.",closeButtonAriaLabel:"Close"},callLocalVideoFreeze:{title:"Network bandwidth is poor",message:"Your video may appear paused for others on the call.",closeButtonAriaLabel:"Close"},callCameraAccessDenied:{title:"Unable to access camera",message:"Click the lock in the address bar to grant permission to this webpage.",closeButtonAriaLabel:"Close"},callCameraAccessDeniedSafari:{title:"Unable to access camera",message:"Refresh the page to allow permissions, or check this browser’s settings and verify permissions are enabled for this website.",closeButtonAriaLabel:"Close"},callCameraAlreadyInUse:{title:"Unable to access camera",message:"It may already be in use by another application.",closeButtonAriaLabel:"Close"},callVideoStoppedBySystem:{title:"Your video has been stopped by your system.",closeButtonAriaLabel:"Close"},callVideoRecoveredBySystem:{title:"Your video has resumed.",closeButtonAriaLabel:"Close"},callMacOsCameraAccessDenied:{title:"MacOS is blocking access to your camera",message:"Update your privacy settings to allow this browser to access your camera.",closeButtonAriaLabel:"Close"},callMacOsScreenShareAccessDenied:{title:"MacOS is blocking screen sharing",message:"Update your privacy settings to allow this browser to record your screen.",closeButtonAriaLabel:"Close"},failedToJoinCallGeneric:{title:"Failed to join call.",closeButtonAriaLabel:"Close"},failedToJoinCallInvalidMeetingLink:{title:"Unable to join Meeting. Invalid Link.",closeButtonAriaLabel:"Close"},cameraFrozenForRemoteParticipants:{title:"Users in the call are having issues seeing your video",message:"Please check your devices and network.",closeButtonAriaLabel:"Close"},unableToStartVideoEffect:{title:"Unable to apply video effect.",closeButtonAriaLabel:"Close"},startSpotlightWhileMaxParticipantsAreSpotlighted:{title:"Cannot start spotlight on participant(s)",message:"The maximum number of participants are already spotlighted.",closeButtonAriaLabel:"Close"}};var videoGallery$k={screenIsBeingSharedMessage:"You are sharing your screen",screenShareLoadingMessage:"Loading {participant}'s screen",localVideoLabel:"You",localVideoCameraSwitcherLabel:"Switch camera",localVideoMovementLabel:"Movable Local Video Tile",localVideoMovementAriaLabel:"Movable Local Video Tile",localVideoSelectedDescription:"{cameraName} selected",displayNamePlaceholder:"Unnamed participant",fitRemoteParticipantToFrame:"Fit to frame",fillRemoteParticipantFrame:"Fill frame",pinParticipantForMe:"Pin for me",pinParticipantForMeLimitReached:"Pin (limit reached)",unpinParticipantForMe:"Unpin",pinParticipantMenuItemAriaLabel:"Pin {participantName}",unpinParticipantMenuItemAriaLabel:"Unpin {participantName}",pinnedParticipantAnnouncementAriaLabel:"Pinned {participantName}",unpinnedParticipantAnnouncementAriaLabel:"Unpinned {participantName}",startSpotlightVideoTileMenuLabel:"Spotlight for everyone",addSpotlightVideoTileMenuLabel:"Add spotlight",spotlightLimitReachedMenuTitle:"Spotlight limit reached",stopSpotlightVideoTileMenuLabel:"Stop spotlighting",stopSpotlightOnSelfVideoTileMenuLabel:"Exit spotlight",attendeeRole:"Attendee"};var dialpad$k={placeholderText:"Enter phone number",deleteButtonAriaLabel:"Delete"};var holdButton$k={onLabel:"Resume",offLabel:"Hold",tooltipOnContent:"Resume call",tooltipOffContent:"Hold call"};var videoTile$k={participantStateRinging:"Calling...",participantStateHold:"On hold",moreOptionsButtonAriaLabel:"More Options"};var CameraAndMicrophoneSitePermissionsRequest$k={primaryText:"Allow {appName} to use your camera and microphone",secondaryText:"This is so participants can see and hear you.",linkText:"Need help? Get troubleshooting help",primaryButtonText:"Continue without camera and microphone",ariaLabel:"Allow camera and microphone access"};var CameraSitePermissionsRequest$k={primaryText:"Allow {appName} to use your camera",secondaryText:"This is so participants can see you.",linkText:"Need help? Get troubleshooting help",primaryButtonText:"Continue without camera",ariaLabel:"Allow camera access"};var MicrophoneSitePermissionsRequest$k={primaryText:"Allow {appName} to use your microphone",secondaryText:"This is so participants can hear you.",linkText:"Need help? Get troubleshooting help",primaryButtonText:"Continue without microphone",ariaLabel:"Allow microphone access"};var CameraAndMicrophoneSitePermissionsCheck$k={primaryText:"Checking for camera and microphone access",secondaryText:"Allow access if prompted. This is so participants can see and hear you.",linkText:"Need help? Get troubleshooting help",primaryButtonText:"Continue without camera and microphone",ariaLabel:"Checking for camera and microphone access. Allow access if prompted."};var CameraSitePermissionsCheck$k={primaryText:"Checking for camera access",secondaryText:"Allow access if prompted. This is so participants can see you.",linkText:"Need help? Get troubleshooting help",primaryButtonText:"Continue without camera",ariaLabel:"Checking for camera access. Allow access if prompted."};var MicrophoneSitePermissionsCheck$k={primaryText:"Checking for microphone access",secondaryText:"Allow access if prompted. This is so participants can hear you.",linkText:"Need help? Get troubleshooting help",primaryButtonText:"Continue without microphone",ariaLabel:"Checking for microphone access. Allow access if prompted."};var CameraAndMicrophoneSitePermissionsDenied$k={primaryText:"Unable to access camera and microphone",secondaryText:"Click the lock icon in the address bar to grant microphone permissions to this webpage. A page refresh may be required.",primaryButtonText:"Continue without camera and microphone",linkText:"Need help? Get troubleshooting help"};var CameraAndMicrophoneSitePermissionsDeniedSafari$k={primaryText:"Unable to access camera and microphone",secondaryText:"Refresh the page to allow permissions, or check this browser’s settings and verify permissions are enabled for this website.",primaryButtonText:"Continue without camera and microphone",linkText:"Need help? Get troubleshooting help"};var CameraSitePermissionsDenied$k={primaryText:"Unable to access camera",secondaryText:"Click the lock icon in the address bar to grant camera permissions to this webpage. A page refresh may be required.",primaryButtonText:"Continue without camera",linkText:"Need help? Get troubleshooting help"};var MicrophoneSitePermissionsDenied$k={primaryText:"Unable to access microphone",secondaryText:"Click the lock icon in the address bar to grant microphone permissions to this webpage. A page refresh may be required.",primaryButtonText:"Continue without microphone",linkText:"Need help? Get troubleshooting help"};var CameraSitePermissionsDeniedSafari$k={primaryText:"Unable to access camera",secondaryText:"Refresh the page to allow permissions, or check this browser’s settings and verify permissions are enabled for this website.",primaryButtonText:"Continue without camera",linkText:"Need help? Get troubleshooting help"};var MicrophoneSitePermissionsDeniedSafari$k={primaryText:"Unable to access microphone",secondaryText:"Refresh the page to allow permissions, or check this browser’s settings and verify permissions are enabled for this website.",primaryButtonText:"Continue without microphone",linkText:"Need help? Get troubleshooting help"};var UnsupportedBrowser$l={primaryText:"Browser not supported",secondaryText:"Please join this call using a compatible browser.",moreHelpLinkText:"See compatibility requirements"};var UnsupportedBrowserVersion$l={primaryText:"Browser update needed",secondaryText:"To ensure the best call possible, please update your browser and then try joining the call again.",moreHelpLinkText:"See compatibility requirements",continueAnywayButtonText:"Start call without updating"};var UnsupportedOperatingSystem$l={primaryText:"Operating system not supported",secondaryText:"Please join this call using a device with a compatible operating system.",moreHelpLinkText:"See compatibility requirements"};var BrowserPermissionDenied$k={primaryText:"Can't use your camera or microphone",secondaryText:"Your browser might not have access to your camera or microphone. To fix this, open System Preferences.",primaryButtonText:"Try again",linkText:"Need help? Get troubleshooting help"};var BrowserPermissionDeniedIOS$k={primaryText:"Allow microphone access to continue",secondaryText:"So other participants can hear you.",primaryButtonText:"Try again",imageAltText:"Microphone and camera device permission location for iOS",linkText:"Need help? Get troubleshooting help",step1Text:"Go to the Settings app",step2Text:"Scroll down to settings for this browser",step3Text:"Turn on Microphone (Camera optional)",step4Text:"Try joining the call again",step1DigitText:"1",step2DigitText:"2",step3DigitText:"3",step4DigitText:"4"};var verticalGallery$k={leftNavButtonAriaLabel:"previous page",rightNavButtonAriaLabel:"next page"};var MeetingConferencePhoneInfo={meetingConferencePhoneInfoModalTitle:"Join call from your phone",meetingConferencePhoneInfoModalDialIn:"Dial number",meetingConferencePhoneInfoModalMeetingId:"Enter meeting ID",meetingConferencePhoneInfoModalWait:"Wait to be admitted by organizer",meetingConferencePhoneInfoModalNoPhoneAvailable:"No phone available",meetingConferencePhoneInfoModalTollFree:"{phoneNumber} (Toll-free) {country}, {city}",meetingConferencePhoneInfoModalTollFreeWithoutGeoData:"{phoneNumber} (Toll-free)",meetingConferencePhoneInfoModalToll:"{phoneNumber} (Toll) {country}, {city}",meetingConferencePhoneInfoModalTollWithoutGeoData:"{phoneNumber} (Toll)"};var en_US$1 = {participantItem:participantItem$k,ParticipantList:ParticipantList$l,typingIndicator:typingIndicator$k,sendBox:sendBox$k,richTextSendBox:richTextSendBox$k,mentionPopover:mentionPopover$k,imageOverlay:imageOverlay$k,messageStatusIndicator:messageStatusIndicator$k,endCallButton:endCallButton$k,cameraButton:cameraButton$k,microphoneButton:microphoneButton$k,devicesButton:devicesButton$k,participantsButton:participantsButton$k,screenShareButton:screenShareButton$k,raiseHandButton:raiseHandButton$k,reactionButton:reactionButton$k,messageThread:messageThread$k,errorBar:errorBar$k,notifications:notifications,videoGallery:videoGallery$k,dialpad:dialpad$k,holdButton:holdButton$k,videoTile:videoTile$k,CameraAndMicrophoneSitePermissionsRequest:CameraAndMicrophoneSitePermissionsRequest$k,CameraSitePermissionsRequest:CameraSitePermissionsRequest$k,MicrophoneSitePermissionsRequest:MicrophoneSitePermissionsRequest$k,CameraAndMicrophoneSitePermissionsCheck:CameraAndMicrophoneSitePermissionsCheck$k,CameraSitePermissionsCheck:CameraSitePermissionsCheck$k,MicrophoneSitePermissionsCheck:MicrophoneSitePermissionsCheck$k,CameraAndMicrophoneSitePermissionsDenied:CameraAndMicrophoneSitePermissionsDenied$k,CameraAndMicrophoneSitePermissionsDeniedSafari:CameraAndMicrophoneSitePermissionsDeniedSafari$k,CameraSitePermissionsDenied:CameraSitePermissionsDenied$k,MicrophoneSitePermissionsDenied:MicrophoneSitePermissionsDenied$k,CameraSitePermissionsDeniedSafari:CameraSitePermissionsDeniedSafari$k,MicrophoneSitePermissionsDeniedSafari:MicrophoneSitePermissionsDeniedSafari$k,UnsupportedBrowser:UnsupportedBrowser$l,UnsupportedBrowserVersion:UnsupportedBrowserVersion$l,UnsupportedOperatingSystem:UnsupportedOperatingSystem$l,BrowserPermissionDenied:BrowserPermissionDenied$k,BrowserPermissionDeniedIOS:BrowserPermissionDeniedIOS$k,verticalGallery:verticalGallery$k,MeetingConferencePhoneInfo:MeetingConferencePhoneInfo};
5746
5780
 
5747
5781
  // Copyright (c) Microsoft Corporation.
5748
5782
  // Licensed under the MIT License.
@@ -9554,7 +9588,7 @@ const mapBorderRadiusTokens = (effects) => {
9554
9588
  */
9555
9589
  const createV9Theme = (themeV8, baseThemeV9) => {
9556
9590
  const baseTheme = baseThemeV9 !== null && baseThemeV9 !== void 0 ? baseThemeV9 : reactComponents.webLightTheme;
9557
- return Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, baseTheme), mapAliasColors(themeV8.palette, themeV8.isInverted)), mapShadowTokens(themeV8.effects)), mapBorderRadiusTokens(themeV8.effects)), { colorBrandBackground2: themeV8.palette.themeLight, colorBrandBackground2Hover: themeV8.palette.themeLight, colorBrandBackground2Pressed: themeV8.palette.themeLight, colorStatusWarningBackground3: '#D83B01', errorText: themeV8.semanticColors.errorText, colorNeutralStroke1Selected: themeV8.palette.neutralQuaternary, colorNeutralForeground2: themeV8.palette.neutralSecondary, colorBrandForegroundLink: themeV8.palette.themePrimary, colorBrandForegroundLinkHover: themeV8.palette.themeDarker, colorNeutralBackground1Selected: themeV8.palette.neutralQuaternaryAlt, colorNeutralStroke2: themeV8.palette.neutralTertiaryAlt,
9591
+ return Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, baseTheme), mapAliasColors(themeV8.palette, themeV8.isInverted)), mapShadowTokens(themeV8.effects)), mapBorderRadiusTokens(themeV8.effects)), { colorBrandBackground2: themeV8.palette.themeLight, colorBrandBackground2Hover: themeV8.palette.themeLight, colorBrandBackground2Pressed: themeV8.palette.themeLight, colorStatusWarningBackground3: '#D83B01', errorText: themeV8.semanticColors.errorText, colorNeutralStroke1Selected: themeV8.palette.neutralQuaternary, colorNeutralForeground2: themeV8.palette.neutralSecondary, colorBrandForegroundLinkHover: themeV8.palette.themeDarker, colorNeutralBackground1Selected: themeV8.palette.neutralQuaternaryAlt, colorNeutralStroke2: themeV8.palette.neutralTertiaryAlt,
9558
9592
  // Fix for an issue with black borders for iOS that are added with 'after' selector
9559
9593
  colorStrokeFocus2: 'transparent' });
9560
9594
  };
@@ -10348,30 +10382,20 @@ class CopyPastePlugin {
10348
10382
  }
10349
10383
  dispose() { }
10350
10384
  onPluginEvent(event) {
10351
- removeImageElement(event);
10385
+ handleBeforePasteEvent(event, /* @conditional-compile-remove(rich-text-editor-image-upload) */ this.onPaste);
10352
10386
  if (this.editor !== null && !this.editor.isDisposed()) {
10353
10387
  // scroll the editor to the correct position after pasting content
10354
10388
  scrollToBottomAfterContentPaste(event, this.editor);
10355
10389
  }
10356
10390
  }
10357
10391
  }
10358
- /**
10359
- * @internal
10360
- * Exported only for unit testing
10361
- */
10362
- const removeImageElement = (event) => {
10363
- // We don't support the pasting options such as paste as image yet.
10392
+ const handleBeforePasteEvent = (event,
10393
+ /* @conditional-compile-remove(rich-text-editor-image-upload) */ onPaste) => {
10364
10394
  if (event.eventType === PluginEventType.BeforePaste && event.pasteType === 'normal') {
10365
- event.fragment.querySelectorAll('img').forEach((image) => {
10366
- // If the image is the only child of its parent, remove all the parents of this img element.
10367
- let parentNode = image.parentElement;
10368
- let currentNode = image;
10369
- while ((parentNode === null || parentNode === void 0 ? void 0 : parentNode.childNodes.length) === 1) {
10370
- currentNode = parentNode;
10371
- parentNode = parentNode.parentElement;
10372
- }
10373
- currentNode === null || currentNode === void 0 ? void 0 : currentNode.remove();
10374
- });
10395
+ /* @conditional-compile-remove(rich-text-editor-image-upload) */
10396
+ onPaste === null || onPaste === void 0 ? void 0 : onPaste({ content: event.fragment });
10397
+ /* @conditional-compile-remove(rich-text-editor-image-upload) */
10398
+ return;
10375
10399
  }
10376
10400
  };
10377
10401
  /**
@@ -11120,7 +11144,9 @@ class PlaceholderPlugin extends roosterjsContentModelPlugins.WatermarkPlugin {
11120
11144
  * @beta
11121
11145
  */
11122
11146
  const RichTextEditor = React.forwardRef((props, ref) => {
11123
- const { initialContent, onChange, placeholderText, strings, showRichTextEditorFormatting, autoFocus, onKeyDown, onContentModelUpdate, contentModel } = props;
11147
+ const { initialContent, onChange, placeholderText, strings, showRichTextEditorFormatting, autoFocus, onKeyDown, onContentModelUpdate, contentModel,
11148
+ /* @conditional-compile-remove(rich-text-editor-image-upload) */
11149
+ onPaste } = props;
11124
11150
  const editor = React.useRef(null);
11125
11151
  const editorDiv = React.useRef(null);
11126
11152
  const theme = useTheme();
@@ -11233,11 +11259,17 @@ const RichTextEditor = React.forwardRef((props, ref) => {
11233
11259
  }
11234
11260
  return lightColor;
11235
11261
  }, [theme.palette.neutralLight]);
11262
+ const copyPastePlugin = React.useMemo(() => {
11263
+ return new CopyPastePlugin();
11264
+ }, []);
11265
+ /* @conditional-compile-remove(rich-text-editor-image-upload) */
11266
+ React.useEffect(() => {
11267
+ copyPastePlugin.onPaste = onPaste;
11268
+ }, [copyPastePlugin, onPaste]);
11236
11269
  const plugins = React.useMemo(() => {
11237
11270
  const contentEdit = new roosterjsContentModelPlugins.EditPlugin();
11238
11271
  // AutoFormatPlugin previously was a part of the edit plugin
11239
11272
  const autoFormatPlugin = new roosterjsContentModelPlugins.AutoFormatPlugin({ autoBullet: true, autoNumbering: true, autoLink: true });
11240
- const copyPastePlugin = new CopyPastePlugin();
11241
11273
  const roosterPastePlugin = new roosterjsContentModelPlugins.PastePlugin(false);
11242
11274
  const shortcutPlugin = new roosterjsContentModelPlugins.ShortcutPlugin();
11243
11275
  const contextMenuPlugin = new ContextMenuPlugin(onContextMenuRender, onContextMenuDismiss);
@@ -11261,6 +11293,7 @@ const RichTextEditor = React.forwardRef((props, ref) => {
11261
11293
  placeholderPlugin,
11262
11294
  keyboardInputPlugin,
11263
11295
  updatePlugin,
11296
+ copyPastePlugin,
11264
11297
  toolbarPlugin,
11265
11298
  tableContextMenuPlugin
11266
11299
  ]);
@@ -11443,7 +11476,9 @@ const RichTextInputBoxComponent = (props) => {
11443
11476
  React.createElement(react.Stack, { grow: true, horizontal: useHorizontalLayout, horizontalAlign: useHorizontalLayout ? 'end' : 'space-between', className: inputBoxContentStackStyle, wrap: useHorizontalLayout },
11444
11477
  React.createElement(react.Stack, { grow: true, className: inputBoxRichTextStackStyle },
11445
11478
  React.createElement(react.Stack.Item, { className: inputBoxRichTextStackItemStyle },
11446
- React.createElement(RichTextEditor, { contentModel: contentModel, initialContent: initialContent, placeholderText: placeholderText, onChange: onChange, onKeyDown: onKeyDown, ref: editorComponentRef, strings: strings, showRichTextEditorFormatting: showRichTextEditorFormatting === true, styles: richTextEditorStyle, autoFocus: autoFocus, onContentModelUpdate: onContentModelUpdate })), /* @conditional-compile-remove(file-sharing-acs) */
11479
+ React.createElement(RichTextEditor, { contentModel: contentModel, initialContent: initialContent, placeholderText: placeholderText, onChange: onChange, onKeyDown: onKeyDown, ref: editorComponentRef, strings: strings, showRichTextEditorFormatting: showRichTextEditorFormatting === true, styles: richTextEditorStyle, autoFocus: autoFocus, onContentModelUpdate: onContentModelUpdate,
11480
+ /* @conditional-compile-remove(rich-text-editor-image-upload) */
11481
+ onPaste: props.onPaste })), /* @conditional-compile-remove(file-sharing-acs) */
11447
11482
  onRenderAttachmentUploads && onRenderAttachmentUploads()),
11448
11483
  actionButtons)));
11449
11484
  };
@@ -11526,7 +11561,9 @@ const RichTextSendBox = (props) => {
11526
11561
  /* @conditional-compile-remove(file-sharing-acs) */
11527
11562
  attachments,
11528
11563
  /* @conditional-compile-remove(file-sharing-acs) */
11529
- onCancelAttachmentUpload } = props;
11564
+ onCancelAttachmentUpload,
11565
+ /* @conditional-compile-remove(rich-text-editor-image-upload) */
11566
+ onPaste } = props;
11530
11567
  const theme = useTheme();
11531
11568
  const locale = useLocale$1();
11532
11569
  const localeStrings = React.useMemo(() => {
@@ -11707,7 +11744,9 @@ const RichTextSendBox = (props) => {
11707
11744
  /* @conditional-compile-remove(file-sharing-acs) */
11708
11745
  onRenderAttachmentUploads: onRenderAttachmentUploads,
11709
11746
  /* @conditional-compile-remove(file-sharing-acs) */
11710
- hasAttachments: hasAttachmentUploads })));
11747
+ hasAttachments: hasAttachmentUploads,
11748
+ /* @conditional-compile-remove(rich-text-editor-image-upload) */
11749
+ onPaste: onPaste })));
11711
11750
  };
11712
11751
 
11713
11752
  // Copyright (c) Microsoft Corporation.
@@ -12086,16 +12125,21 @@ const iconWrapperStyle = (theme, isSubMenuOpen) => ({
12086
12125
  /**
12087
12126
  * @private
12088
12127
  */
12089
- const chatMessageDateStyle = react.mergeStyles({
12090
- color: reactComponents.tokens.colorNeutralForeground2,
12128
+ const chatMessageDateStyle = (theme) => react.mergeStyles({
12129
+ color: theme.palette.neutralSecondary,
12091
12130
  fontWeight: react.FontWeights.regular,
12092
12131
  fontSize: '0.75rem'
12093
12132
  });
12094
12133
  /**
12095
12134
  * @private
12096
12135
  */
12097
- const chatMessageAuthorStyle = react.mergeStyles({
12098
- fontWeight: react.FontWeights.semibold,
12136
+ const chatMessageAuthorStyle = react.mergeStyles({ fontWeight: react.FontWeights.semibold, fontSize: '0.75rem' });
12137
+ /**
12138
+ * @private
12139
+ */
12140
+ const chatMessageDateFailedStyle = (theme) => react.mergeStyles({
12141
+ color: theme.palette.neutralPrimaryAlt,
12142
+ fontWeight: react.FontWeights.regular,
12099
12143
  fontSize: '0.75rem'
12100
12144
  });
12101
12145
  /**
@@ -13486,7 +13530,7 @@ const MessageBubble$1 = (props) => {
13486
13530
  // so when focus moves within actionMenu, the `focus` state in chatMessage remains true, and keeps actionMenu visible
13487
13531
  setFocused(true);
13488
13532
  }
13489
- }, "data-ui-id": "chat-composite-message", author: React.createElement(react.Text, { className: chatMessageDateStyle }, message.senderDisplayName), timestamp: React.createElement(react.Text, { className: chatMessageDateStyle, "data-ui-id": ids.messageTimestamp }, formattedTimestamp), details: getMessageDetails(), actions: {
13533
+ }, "data-ui-id": "chat-composite-message", author: React.createElement(react.Text, { className: chatMessageDateStyle(theme) }, message.senderDisplayName), timestamp: React.createElement(react.Text, { className: props.message.status === 'failed' ? chatMessageDateFailedStyle(theme) : chatMessageDateStyle(theme), "data-ui-id": ids.messageTimestamp }, formattedTimestamp), details: getMessageDetails(), actions: {
13490
13534
  children: actionMenuProps === null || actionMenuProps === void 0 ? void 0 : actionMenuProps.children,
13491
13535
  className: reactComponents.mergeClasses(chatMyMessageStyles.menu,
13492
13536
  // Make actions menu visible when the message is focused or the flyout is shown
@@ -13645,7 +13689,7 @@ class _ErrorBoundary extends React.Component {
13645
13689
  // Copyright (c) Microsoft Corporation.
13646
13690
  // Licensed under the MIT License.
13647
13691
  /* @conditional-compile-remove(rich-text-editor) */
13648
- const ChatMessageComponentAsRichTextEditBox = React.lazy(() => Promise.resolve().then(function () { return require('./ChatMessageComponentAsRichTextEditBox-CueWJlOs.js'); }));
13692
+ const ChatMessageComponentAsRichTextEditBox = React.lazy(() => Promise.resolve().then(function () { return require('./ChatMessageComponentAsRichTextEditBox-B4BPzX3o.js'); }));
13649
13693
  /**
13650
13694
  * @private
13651
13695
  * Use this function to load RoosterJS dependencies early in the lifecycle.
@@ -13653,21 +13697,23 @@ const ChatMessageComponentAsRichTextEditBox = React.lazy(() => Promise.resolve()
13653
13697
  *
13654
13698
  * @conditional-compile-remove(rich-text-editor)
13655
13699
  */
13656
- const loadChatMessageComponentAsRichTextEditBox = () => Promise.resolve().then(function () { return require('./ChatMessageComponentAsRichTextEditBox-CueWJlOs.js'); });
13700
+ const loadChatMessageComponentAsRichTextEditBox = () => Promise.resolve().then(function () { return require('./ChatMessageComponentAsRichTextEditBox-B4BPzX3o.js'); });
13657
13701
  /**
13658
13702
  * @private
13659
13703
  */
13660
13704
  const ChatMessageComponentAsEditBoxPicker = (props) => {
13661
13705
  /* @conditional-compile-remove(rich-text-editor) */
13662
- const { richTextEditor } = props;
13706
+ const { richTextEditorOptions } = props;
13663
13707
  const simpleEditBox = React.useMemo(() => {
13664
13708
  return React.createElement(ChatMessageComponentAsEditBox, Object.assign({}, props));
13665
13709
  }, [props]);
13666
13710
  /* @conditional-compile-remove(rich-text-editor) */
13667
- if (richTextEditor) {
13711
+ if (richTextEditorOptions) {
13668
13712
  return (React.createElement(_ErrorBoundary, { fallback: simpleEditBox },
13669
13713
  React.createElement(React.Suspense, { fallback: simpleEditBox },
13670
- React.createElement(ChatMessageComponentAsRichTextEditBox, Object.assign({}, props)))));
13714
+ React.createElement(ChatMessageComponentAsRichTextEditBox, Object.assign({}, props, {
13715
+ /* @conditional-compile-remove(rich-text-editor-image-upload) */
13716
+ onPaste: richTextEditorOptions === null || richTextEditorOptions === void 0 ? void 0 : richTextEditorOptions.onPaste })))));
13671
13717
  }
13672
13718
  return simpleEditBox;
13673
13719
  };
@@ -13742,7 +13788,7 @@ const ChatMyMessageComponent = (props) => {
13742
13788
  /* @conditional-compile-remove(mention) */
13743
13789
  mentionLookupOptions: (_a = props.mentionOptions) === null || _a === void 0 ? void 0 : _a.lookupOptions,
13744
13790
  /* @conditional-compile-remove(rich-text-editor) */
13745
- richTextEditor: props.richTextEditor }));
13791
+ richTextEditorOptions: props.richTextEditorOptions }));
13746
13792
  }
13747
13793
  else {
13748
13794
  return (React.createElement(ChatMyMessageComponentAsMessageBubble, Object.assign({}, props, { onRemoveClick: onRemoveClick, onEditClick: onEditClick, onResendClick: onResendClick, onRenderAvatar: props.onRenderAvatar,
@@ -13774,7 +13820,7 @@ const FluentChatMyMessageComponent = (props) => {
13774
13820
  /* @conditional-compile-remove(file-sharing-teams-interop) @conditional-compile-remove(file-sharing-acs) */
13775
13821
  onRenderAttachmentDownloads,
13776
13822
  /* @conditional-compile-remove(rich-text-editor) */
13777
- richTextEditor } = props;
13823
+ richTextEditorOptions } = props;
13778
13824
  const chatMessageRenderStyles = useChatMessageRenderStyles();
13779
13825
  /* @conditional-compile-remove(file-sharing-teams-interop) @conditional-compile-remove(file-sharing-acs) */
13780
13826
  const onRenderAttachmentDownloadsMemo = React.useMemo(() => {
@@ -13800,7 +13846,7 @@ const FluentChatMyMessageComponent = (props) => {
13800
13846
  /* @conditional-compile-remove(file-sharing-teams-interop) @conditional-compile-remove(file-sharing-acs) */
13801
13847
  actionsForAttachment: actionsForAttachment,
13802
13848
  /* @conditional-compile-remove(rich-text-editor) */
13803
- richTextEditor: richTextEditor })));
13849
+ richTextEditorOptions: richTextEditorOptions })));
13804
13850
  }
13805
13851
  return React.createElement(React.Fragment, null);
13806
13852
  }, [
@@ -13822,7 +13868,7 @@ const FluentChatMyMessageComponent = (props) => {
13822
13868
  // eslint-disable-next-line react-hooks/exhaustive-deps
13823
13869
  new Date().toDateString(),
13824
13870
  /* @conditional-compile-remove(rich-text-editor) */
13825
- richTextEditor
13871
+ richTextEditorOptions
13826
13872
  ]);
13827
13873
  const messageRenderer = React.useCallback((messageProps) => {
13828
13874
  return onRenderMessage === undefined
@@ -13944,7 +13990,7 @@ const MessageBubble = (props) => {
13944
13990
  }, author: React.createElement(react.Text, { className: chatMessageAuthorStyle }, message.senderDisplayName), body: {
13945
13991
  className: chatItemMessageContainerClassName,
13946
13992
  style: Object.assign({}, createStyleFromV8Style(messageContainerStyle))
13947
- }, "data-ui-id": "chat-composite-message", timestamp: React.createElement(react.Text, { className: chatMessageDateStyle, "data-ui-id": ids.messageTimestamp }, formattedTimestamp), details: getMessageDetails() }, getContent()))));
13993
+ }, "data-ui-id": "chat-composite-message", timestamp: React.createElement(react.Text, { className: props.message.status === 'failed' ? chatMessageDateFailedStyle(theme) : chatMessageDateStyle(theme), "data-ui-id": ids.messageTimestamp }, formattedTimestamp), details: getMessageDetails() }, getContent()))));
13948
13994
  return chatMessage;
13949
13995
  };
13950
13996
  /** @private */
@@ -14288,7 +14334,7 @@ const MessageThreadWrapper = (props) => {
14288
14334
  /* @conditional-compile-remove(file-sharing-acs) */
14289
14335
  onRenderAttachmentDownloads,
14290
14336
  /* @conditional-compile-remove(rich-text-editor) */
14291
- richTextEditor = false } = props;
14337
+ richTextEditorOptions } = props;
14292
14338
  // We need this state to wait for one tick and scroll to bottom after messages have been initialized.
14293
14339
  // Otherwise chatScrollDivRef.current.clientHeight is wrong if we scroll to bottom before messages are initialized.
14294
14340
  const [chatMessagesInitialized, setChatMessagesInitialized] = React.useState(false);
@@ -14317,12 +14363,12 @@ const MessageThreadWrapper = (props) => {
14317
14363
  /* @conditional-compile-remove(rich-text-editor) */
14318
14364
  React.useEffect(() => {
14319
14365
  // if rich text editor is enabled, the rich text editor component should be loaded early for good UX
14320
- if (richTextEditor !== undefined && richTextEditor) {
14366
+ if (richTextEditorOptions !== undefined) {
14321
14367
  // this line is needed to load the Rooster JS dependencies early in the lifecycle
14322
14368
  // when the rich text editor is enabled
14323
14369
  loadChatMessageComponentAsRichTextEditBox();
14324
14370
  }
14325
- }, [richTextEditor]);
14371
+ }, [richTextEditorOptions]);
14326
14372
  const onDeleteMessageCallback = React.useCallback((messageId) => __awaiter$B(void 0, void 0, void 0, function* () {
14327
14373
  if (!onDeleteMessage) {
14328
14374
  return;
@@ -14642,7 +14688,7 @@ const MessageThreadWrapper = (props) => {
14642
14688
  /* @conditional-compile-remove(file-sharing-acs) */
14643
14689
  onRenderAttachmentDownloads: onRenderAttachmentDownloads,
14644
14690
  /* @conditional-compile-remove(rich-text-editor) */
14645
- richTextEditor: richTextEditor })));
14691
+ richTextEditorOptions: richTextEditorOptions })));
14646
14692
  }))))));
14647
14693
  };
14648
14694
  const MemoChatMessageComponentWrapper = React.memo((obj) => {
@@ -21684,7 +21730,7 @@ const iconButtonStyles$1 = (theme) => {
21684
21730
  /**
21685
21731
  * @private
21686
21732
  */
21687
- const formatPhoneNumber = (phoneNumber) => {
21733
+ const formatPhoneNumber$1 = (phoneNumber) => {
21688
21734
  // if input value is falsy eg if the user deletes the input, then just return
21689
21735
  if (!phoneNumber) {
21690
21736
  return phoneNumber;
@@ -21943,7 +21989,7 @@ const DialpadContainer = (props) => {
21943
21989
  setText(modifiedInput);
21944
21990
  };
21945
21991
  return (React.createElement(react.Stack, { className: react.mergeStyles(containerStyles$4(theme), (_a = props.styles) === null || _a === void 0 ? void 0 : _a.root), "data-test-id": "dialpadContainer", "data-ui-id": "dialpadContainer", horizontalAlign: 'center' },
21946
- dialpadMode === 'dialer' && (React.createElement(react.TextField, { styles: react.concatStyleSets(textFieldStyles(theme, plainTextValue !== ''), (_b = props.styles) === null || _b === void 0 ? void 0 : _b.textField), value: textFieldValue ? textFieldValue : formatPhoneNumber(plainTextValue),
21992
+ dialpadMode === 'dialer' && (React.createElement(react.TextField, { styles: react.concatStyleSets(textFieldStyles(theme, plainTextValue !== ''), (_b = props.styles) === null || _b === void 0 ? void 0 : _b.textField), value: textFieldValue ? textFieldValue : formatPhoneNumber$1(plainTextValue),
21947
21993
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
21948
21994
  onChange: (e) => {
21949
21995
  setText(e.target.value);
@@ -22042,7 +22088,7 @@ const ratingStyles = (theme) => {
22042
22088
  /**
22043
22089
  * @private
22044
22090
  */
22045
- const titleContainerClassName$1 = react.mergeStyles({
22091
+ const titleContainerClassName$2 = react.mergeStyles({
22046
22092
  paddingBottom: _pxToRem(6)
22047
22093
  });
22048
22094
 
@@ -22089,7 +22135,7 @@ const _StarSurvey = (props) => {
22089
22135
  onStarRatingSelected
22090
22136
  ]);
22091
22137
  return (React.createElement(react.Stack, { verticalAlign: "center" },
22092
- React.createElement(react.Stack, { className: titleContainerClassName$1 },
22138
+ React.createElement(react.Stack, { className: titleContainerClassName$2 },
22093
22139
  React.createElement(react.Text, { className: helperTextStyle$1(theme) }, strings === null || strings === void 0 ? void 0 : strings.starSurveyHelperText)),
22094
22140
  React.createElement(react.Rating, { max: 5, size: react.RatingSize.Large, defaultRating: 0, allowZeroStars: true, rating: rating, onChange: onRatingChange, styles: ratingStyles(theme), icon: selectedIcon !== null && selectedIcon !== void 0 ? selectedIcon : 'SurveyStarIconFilled', unselectedIcon: unselectedIcon !== null && unselectedIcon !== void 0 ? unselectedIcon : 'SurveyStarIcon', ariaLabelFormat: strings === null || strings === void 0 ? void 0 : strings.starRatingAriaLabel }),
22095
22141
  React.createElement(react.Text, { className: ratingHelperTextStyle(theme) }, ratingHelperText)));
@@ -22872,7 +22918,7 @@ const themedCaptionsSettingsModalStyle = (theme) => ({
22872
22918
  /**
22873
22919
  * @private
22874
22920
  */
22875
- const titleClassName = react.mergeStyles({
22921
+ const titleClassName$1 = react.mergeStyles({
22876
22922
  fontWeight: 600,
22877
22923
  fontSize: _pxToRem(20),
22878
22924
  lineHeight: _pxToRem(28)
@@ -22880,7 +22926,7 @@ const titleClassName = react.mergeStyles({
22880
22926
  /**
22881
22927
  * @private
22882
22928
  */
22883
- const titleContainerClassName = react.mergeStyles({
22929
+ const titleContainerClassName$1 = react.mergeStyles({
22884
22930
  paddingBottom: _pxToRem(20)
22885
22931
  });
22886
22932
  /**
@@ -23115,8 +23161,8 @@ const _CaptionsSettingsModal = (props) => {
23115
23161
  ]);
23116
23162
  const CaptionsSettingsModalStyle = React.useMemo(() => themedCaptionsSettingsModalStyle(theme), [theme]);
23117
23163
  return (React.createElement(React.Fragment, null, React.createElement(react.Modal, { titleAriaId: strings === null || strings === void 0 ? void 0 : strings.captionsSettingsModalAriaLabel, isOpen: showModal, onDismiss: onDismiss, isBlocking: true, styles: CaptionsSettingsModalStyle },
23118
- React.createElement(react.Stack, { horizontal: true, horizontalAlign: "space-between", verticalAlign: "center", className: titleContainerClassName },
23119
- React.createElement(react.Text, { className: titleClassName }, strings === null || strings === void 0 ? void 0 : strings.captionsSettingsModalTitle),
23164
+ React.createElement(react.Stack, { horizontal: true, horizontalAlign: "space-between", verticalAlign: "center", className: titleContainerClassName$1 },
23165
+ React.createElement(react.Text, { className: titleClassName$1 }, strings === null || strings === void 0 ? void 0 : strings.captionsSettingsModalTitle),
23120
23166
  React.createElement(react.IconButton, { iconProps: { iconName: 'Cancel' }, ariaLabel: strings === null || strings === void 0 ? void 0 : strings.captionsSettingsCloseModalButtonAriaLabel, onClick: onDismiss, style: { color: theme.palette.black } })),
23121
23167
  React.createElement(react.Stack, { className: dropdownContainerClassName }, CaptionsSettingsComponent()),
23122
23168
  React.createElement(react.Stack, { horizontal: true, horizontalAlign: "end", className: buttonsContainerClassName },
@@ -23126,6 +23172,200 @@ const _CaptionsSettingsModal = (props) => {
23126
23172
  React.createElement("span", null, strings === null || strings === void 0 ? void 0 : strings.captionsSettingsCancelButtonLabel))))));
23127
23173
  };
23128
23174
 
23175
+ // Copyright (c) Microsoft Corporation.
23176
+ // Licensed under the MIT License.
23177
+ /**
23178
+ * @private
23179
+ */
23180
+ const themedPhoneInfoModalStyle = (theme) => ({
23181
+ main: {
23182
+ borderRadius: theme.effects.roundedCorner6,
23183
+ padding: _pxToRem(24),
23184
+ width: _pxToRem(600),
23185
+ height: 'fit-content',
23186
+ overflow: 'hidden'
23187
+ }
23188
+ });
23189
+ /**
23190
+ * @private
23191
+ */
23192
+ const titleClassName = react.mergeStyles({
23193
+ fontWeight: 600,
23194
+ fontSize: _pxToRem(20),
23195
+ lineHeight: _pxToRem(28)
23196
+ });
23197
+ /**
23198
+ * @private
23199
+ */
23200
+ const titleContainerClassName = react.mergeStyles({
23201
+ paddingBottom: _pxToRem(30)
23202
+ });
23203
+ /**
23204
+ * @private
23205
+ */
23206
+ const stepTextStyle = react.mergeStyles({
23207
+ fontSize: _pxToRem(14),
23208
+ lineHeight: _pxToRem(40)
23209
+ });
23210
+ /**
23211
+ * @private
23212
+ */
23213
+ const phoneInfoTextStyle = react.mergeStyles({
23214
+ fontSize: _pxToRem(14),
23215
+ lineHeight: _pxToRem(40),
23216
+ fontWeight: react.FontWeights.semibold
23217
+ });
23218
+ /**
23219
+ * @private
23220
+ */
23221
+ const phoneInfoIcon = (theme) => {
23222
+ return react.mergeStyles({
23223
+ background: `${theme.palette.themeLighter}`,
23224
+ height: _pxToRem(36),
23225
+ width: _pxToRem(36),
23226
+ marginRight: _pxToRem(12),
23227
+ borderRadius: _pxToRem(18)
23228
+ });
23229
+ };
23230
+ /**
23231
+ * @private
23232
+ */
23233
+ const phoneInfoInctructionLine = react.mergeStyles({
23234
+ marginBottom: _pxToRem(20)
23235
+ });
23236
+ /**
23237
+ * @private
23238
+ */
23239
+ const phoneInfoStep = react.mergeStyles({
23240
+ textAlign: 'right'
23241
+ });
23242
+ /**
23243
+ * @private
23244
+ */
23245
+ const phoneInfoIconStyle = (theme) => {
23246
+ return react.mergeStyles({
23247
+ padding: _pxToRem(8),
23248
+ color: `${theme.palette.themePrimary}`,
23249
+ zIndex: 2
23250
+ });
23251
+ };
23252
+ /**
23253
+ * @private
23254
+ */
23255
+ const infoConnectionLinkStyle = (theme) => {
23256
+ return react.mergeStyles({
23257
+ background: `${theme.palette.themeLighter}`,
23258
+ width: _pxToRem(2),
23259
+ position: 'relative',
23260
+ left: _pxToRem(19),
23261
+ top: _pxToRem(20),
23262
+ zIndex: 1
23263
+ });
23264
+ };
23265
+
23266
+ // Copyright (c) Microsoft Corporation.
23267
+ // Licensed under the MIT License.
23268
+ /* @conditional-compile-remove(teams-meeting-conference) */
23269
+ /* @conditional-compile-remove(teams-meeting-conference) */
23270
+ /**
23271
+ * @beta
23272
+ * a component for setting spoken languages
23273
+ */
23274
+ const MeetingConferencePhoneInfoModal = (props) => {
23275
+ const { conferencePhoneInfoList, showModal, onDismissMeetingPhoneInfoSettings } = props;
23276
+ const theme = react.useTheme();
23277
+ const strings = useLocale$1().strings.MeetingConferencePhoneInfo;
23278
+ const onDismiss = React.useCallback(() => {
23279
+ if (onDismissMeetingPhoneInfoSettings) {
23280
+ onDismissMeetingPhoneInfoSettings();
23281
+ }
23282
+ }, [onDismissMeetingPhoneInfoSettings]);
23283
+ const PhoneInfoModalStyle = React.useMemo(() => themedPhoneInfoModalStyle(theme), [theme]);
23284
+ return (React.createElement(React.Fragment, null,
23285
+ React.createElement(react.Modal, { titleAriaId: strings === null || strings === void 0 ? void 0 : strings.meetingConferencePhoneInfoModalTitle, isOpen: showModal, onDismiss: onDismiss, isBlocking: true, styles: PhoneInfoModalStyle },
23286
+ React.createElement(react.Stack, { horizontal: true, horizontalAlign: "space-between", verticalAlign: "center", className: titleContainerClassName },
23287
+ React.createElement(react.Text, { className: titleClassName }, strings === null || strings === void 0 ? void 0 : strings.meetingConferencePhoneInfoModalTitle),
23288
+ React.createElement(react.IconButton, { iconProps: { iconName: 'Cancel' }, ariaLabel: strings === null || strings === void 0 ? void 0 : strings.meetingConferencePhoneInfoModalTitle, onClick: onDismiss, style: { color: theme.palette.black } })),
23289
+ conferencePhoneInfoList.length === 0 && (React.createElement(react.Stack, { horizontal: true },
23290
+ React.createElement(react.Text, { className: stepTextStyle }, strings === null || strings === void 0 ? void 0 : strings.meetingConferencePhoneInfoModalNoPhoneAvailable))),
23291
+ conferencePhoneInfoList.length > 0 && (React.createElement(react.Stack, null,
23292
+ React.createElement(react.Stack, { horizontal: true, horizontalAlign: "space-between", className: phoneInfoInctructionLine },
23293
+ React.createElement(react.Stack.Item, { style: { display: 'flex' } },
23294
+ React.createElement(react.Stack, { horizontal: true, className: phoneInfoStep },
23295
+ React.createElement(react.Stack, { className: infoConnectionLinkStyle(theme) }),
23296
+ React.createElement(react.Stack.Item, { className: phoneInfoIcon(theme) },
23297
+ React.createElement(react.Stack, { verticalAlign: "center", horizontalAlign: "center" },
23298
+ React.createElement(react.Icon, { iconName: "PhoneNumberButton", className: phoneInfoIconStyle(theme) }))),
23299
+ React.createElement(react.Stack.Item, null,
23300
+ React.createElement(react.Text, { className: stepTextStyle }, strings === null || strings === void 0 ? void 0 : strings.meetingConferencePhoneInfoModalDialIn)))),
23301
+ React.createElement(react.Stack.Item, { className: phoneInfoStep }, conferencePhoneInfoList.map((phoneNumber, index) => (React.createElement(react.Stack.Item, { key: index },
23302
+ React.createElement(react.Text, { className: phoneInfoTextStyle }, formatPhoneNumberInfo(phoneNumber, strings))))))),
23303
+ React.createElement(react.Stack, { horizontal: true, horizontalAlign: "space-between", verticalAlign: "center", className: phoneInfoInctructionLine },
23304
+ React.createElement(react.Stack.Item, { style: { display: 'flex' } },
23305
+ React.createElement(react.Stack, { horizontal: true },
23306
+ React.createElement(react.Stack, { className: infoConnectionLinkStyle(theme) }),
23307
+ React.createElement(react.Stack.Item, { className: phoneInfoIcon(theme) },
23308
+ React.createElement(react.Stack, { verticalAlign: "center", horizontalAlign: "center" },
23309
+ React.createElement(react.Icon, { iconName: "DtmfDialpadButton", className: phoneInfoIconStyle(theme) }))),
23310
+ React.createElement(react.Stack.Item, null,
23311
+ React.createElement(react.Text, { className: stepTextStyle }, strings === null || strings === void 0 ? void 0 : strings.meetingConferencePhoneInfoModalMeetingId)))),
23312
+ React.createElement(react.Text, { className: phoneInfoTextStyle }, formatMeetingId(conferencePhoneInfoList[0].conferenceId))),
23313
+ React.createElement(react.Stack, { horizontal: true, horizontalAlign: "space-between", verticalAlign: "center" },
23314
+ React.createElement(react.Stack, { horizontal: true },
23315
+ React.createElement(react.Stack.Item, { className: phoneInfoIcon(theme), style: { marginLeft: _pxToRem(2) } },
23316
+ React.createElement(react.Icon, { iconName: "PhoneInfoWait", className: phoneInfoIconStyle(theme) })),
23317
+ React.createElement(react.Stack.Item, null,
23318
+ React.createElement(react.Text, { className: stepTextStyle }, strings === null || strings === void 0 ? void 0 : strings.meetingConferencePhoneInfoModalWait)))))))));
23319
+ };
23320
+ /* @conditional-compile-remove(teams-meeting-conference) */
23321
+ /**
23322
+ * @internal
23323
+ * format phone number
23324
+ */
23325
+ const formatPhoneNumber = (phoneNumber) => {
23326
+ var _a;
23327
+ if (!phoneNumber) {
23328
+ return '';
23329
+ }
23330
+ let enchantedPhoneNumber = phoneNumber;
23331
+ if (!phoneNumber.startsWith('+')) {
23332
+ enchantedPhoneNumber = `+${phoneNumber}`;
23333
+ }
23334
+ if (libphonenumberJs.isPossiblePhoneNumber(enchantedPhoneNumber)) {
23335
+ return ((_a = libphonenumberJs.parsePhoneNumber(enchantedPhoneNumber)) === null || _a === void 0 ? void 0 : _a.formatInternational()) || enchantedPhoneNumber;
23336
+ }
23337
+ return phoneNumber;
23338
+ };
23339
+ /* @conditional-compile-remove(teams-meeting-conference) */
23340
+ /**
23341
+ * @internal
23342
+ * format phone number
23343
+ */
23344
+ const formatPhoneNumberInfo = (phoneNumber, strings) => {
23345
+ const templateText = phoneNumber.isTollFree
23346
+ ? phoneNumber.country && phoneNumber.city
23347
+ ? strings === null || strings === void 0 ? void 0 : strings.meetingConferencePhoneInfoModalTollFree
23348
+ : strings === null || strings === void 0 ? void 0 : strings.meetingConferencePhoneInfoModalTollFreeWithoutGeoData
23349
+ : phoneNumber.country && phoneNumber.city
23350
+ ? strings === null || strings === void 0 ? void 0 : strings.meetingConferencePhoneInfoModalToll
23351
+ : strings === null || strings === void 0 ? void 0 : strings.meetingConferencePhoneInfoModalTollWithoutGeoData;
23352
+ return ((templateText === null || templateText === void 0 ? void 0 : templateText.replace('{phoneNumber}', formatPhoneNumber(phoneNumber.phoneNumber)).replace('{country}', phoneNumber.country || '').replace('{city}', phoneNumber.city || '').trim()) || '');
23353
+ };
23354
+ /* @conditional-compile-remove(teams-meeting-conference) */
23355
+ /**
23356
+ * @internal
23357
+ * format meeting id
23358
+ */
23359
+ const formatMeetingId = (meetingId) => {
23360
+ if (!meetingId) {
23361
+ return '';
23362
+ }
23363
+ if ((meetingId === null || meetingId === void 0 ? void 0 : meetingId.length) !== 9) {
23364
+ return meetingId;
23365
+ }
23366
+ return [meetingId.slice(0, 3), meetingId.slice(3, 6), meetingId.slice(6, 9)].join(' ') + '#';
23367
+ };
23368
+
23129
23369
  // Copyright (c) Microsoft Corporation.
23130
23370
  // Licensed under the MIT License.
23131
23371
  /**
@@ -23210,7 +23450,9 @@ const NotificationBar = (props) => {
23210
23450
  React.createElement(react.Text, { className: titleTextClassName }, strings === null || strings === void 0 ? void 0 : strings.title)),
23211
23451
  React.createElement(react.IconButton, { iconProps: cancelIcon, ariaLabel: strings === null || strings === void 0 ? void 0 : strings.closeButtonAriaLabel, "aria-live": 'polite', onClick: props.onDismiss })),
23212
23452
  React.createElement(react.Text, { className: messageTextStyle(theme) }, strings === null || strings === void 0 ? void 0 : strings.message),
23213
- (strings === null || strings === void 0 ? void 0 : strings.buttonLabel) && (React.createElement(react.PrimaryButton, { onClick: props.onClick, style: { marginTop: '1rem' } }, strings === null || strings === void 0 ? void 0 : strings.buttonLabel))),
23453
+ React.createElement(react.Stack, { horizontal: true, horizontalAlign: "space-evenly" },
23454
+ (strings === null || strings === void 0 ? void 0 : strings.secondaryButtonLabel) && (React.createElement(react.DefaultButton, { onClick: props.onClickSecondaryButton, style: { marginTop: '1rem' } }, strings === null || strings === void 0 ? void 0 : strings.secondaryButtonLabel)),
23455
+ (strings === null || strings === void 0 ? void 0 : strings.primaryButtonLabel) && (React.createElement(react.PrimaryButton, { onClick: props.onClickPrimaryButton, style: { marginTop: '1rem' } }, strings === null || strings === void 0 ? void 0 : strings.primaryButtonLabel)))),
23214
23456
  props.showStackedEffect && React.createElement(react.Stack, { className: hiddenContainerStyles(theme) })));
23215
23457
  };
23216
23458
 
@@ -23244,7 +23486,7 @@ const Notifications = (props) => {
23244
23486
  } }, activeNotifications.map((notification, index) => {
23245
23487
  if (index < maxNotificationsToShow) {
23246
23488
  return (React.createElement("div", { key: index, style: { marginBottom: `${index === maxNotificationsToShow - 1 ? 0 : '0.25rem'}` } },
23247
- React.createElement(NotificationBar, { notificationBarStrings: strings ? strings[notification.type] : undefined, notificationBarIconProps: NotificationIconProps(notification.type), onClick: () => { var _a; return (_a = notification.onClick) === null || _a === void 0 ? void 0 : _a.call(notification); }, onDismiss: () => {
23489
+ React.createElement(NotificationBar, { notificationBarStrings: strings ? strings[notification.type] : undefined, notificationBarIconProps: NotificationIconProps(notification.type), onClickPrimaryButton: () => { var _a; return (_a = notification.onClickPrimaryButton) === null || _a === void 0 ? void 0 : _a.call(notification); }, onClickSecondaryButton: () => { var _a; return (_a = notification.onClickSecondaryButton) === null || _a === void 0 ? void 0 : _a.call(notification); }, onDismiss: () => {
23248
23490
  activeNotifications.splice(index, 1);
23249
23491
  setActiveNotifications([...activeNotifications]);
23250
23492
  notification.onDismiss && notification.onDismiss();
@@ -24297,14 +24539,12 @@ const createDefaultChatHandlers = memoizeOne((chatClient, chatThreadClient) => {
24297
24539
  /* @conditional-compile-remove(file-sharing-acs) */
24298
24540
  options) {
24299
24541
  return __awaiter$v(this, void 0, void 0, function* () {
24300
- /* @conditional-compile-remove(file-sharing-acs) */
24301
24542
  const updateMessageOptions = {
24302
24543
  content,
24544
+ /* @conditional-compile-remove(file-sharing-acs) */
24303
24545
  metadata: Object.assign(Object.assign({}, options === null || options === void 0 ? void 0 : options.metadata), { fileSharingMetadata: JSON.stringify(options === null || options === void 0 ? void 0 : options.attachments) })
24304
24546
  };
24305
- yield chatThreadClient.updateMessage(messageId,
24306
- /* @conditional-compile-remove(file-sharing-acs) */
24307
- updateMessageOptions);
24547
+ yield chatThreadClient.updateMessage(messageId, updateMessageOptions);
24308
24548
  });
24309
24549
  },
24310
24550
  onDeleteMessage: (messageId) => __awaiter$v(void 0, void 0, void 0, function* () {
@@ -27024,7 +27264,7 @@ const isChatError = (e) => {
27024
27264
  return 'target' in e && e['target'] !== undefined && 'innerError' in e && e['innerError'] !== undefined;
27025
27265
  };
27026
27266
 
27027
- var call$k={cameraLabel:"Camera",noCamerasLabel:"No cameras found",cameraPermissionDenied:"Your browser is blocking access to your camera",cameraTurnedOff:"Your camera is turned off",chatButtonLabel:"Chat",close:"Close",complianceBannerNowOnlyRecording:"You are now only recording this meeting.",complianceBannerNowOnlyTranscription:"You are now only transcribing this meeting.",complianceBannerRecordingAndTranscriptionSaved:"Recording and transcription are being saved.",complianceBannerRecordingAndTranscriptionStarted:"Recording and transcription have started.",complianceBannerRecordingAndTranscriptionStopped:"Recording and transcription have stopped.",complianceBannerRecordingSaving:"Recording is being saved.",complianceBannerRecordingStarted:"Recording has started.",complianceBannerRecordingStopped:"Recording has stopped.",complianceBannerTranscriptionStarted:"Transcription has started.",complianceBannerTranscriptionConsent:"By joining, you are giving consent for this meeting to be transcribed.",complianceBannerTranscriptionSaving:"Transcription is being saved.",complianceBannerTranscriptionStopped:"Transcription has stopped.",configurationPageTitle:"Start a call",copyInviteLinkButtonLabel:"Copy invite link",copyInviteLinkButtonActionedLabel:"Link copied",copyInviteLinkActionedAriaLabel:"Invite link copied",defaultPlaceHolder:"Select an option",dismissSidePaneButtonLabel:"Close",videoEffectsPaneTitle:"Effects",videoEffectsPaneBackgroundSelectionTitle:"Background",configurationPageVideoEffectsButtonLabel:"Effects",unableToStartVideoEffect:"Unable to apply video effect.",blurBackgroundEffectButtonLabel:"Blur",blurBackgroundTooltip:"Blur Background",removeBackgroundEffectButtonLabel:"None",removeBackgroundTooltip:"Remove Background",cameraOffBackgroundEffectWarningText:"Your camera is off. Turn on camera to see video effect.",failedToJoinCallDueToNoNetworkMoreDetails:"Call was disconnected due to a network issue. Check your connection and join again.",failedToJoinCallDueToNoNetworkTitle:"Call disconnected",failedToJoinTeamsMeetingReasonAccessDeniedMoreDetails:"You were not granted entry in the call. If this was a mistake, re-join the call.",failedToJoinTeamsMeetingReasonAccessDeniedTitle:"Dismissed from lobby",learnMore:"Learn more",leavingCallTitle:"Leaving...",leftCallMoreDetails:"If this was a mistake, re-join the call.",leftCallTitle:"You left the call",lobbyScreenConnectingToCallTitle:"Joining call",lobbyScreenWaitingToBeAdmittedTitle:"Waiting to be admitted",microphonePermissionDenied:"Your browser is blocking access to your microphone",microphoneToggleInLobbyNotAllowed:"Cannot mute or unmute while in lobby.",mutedMessage:"You're muted",networkReconnectMoreDetails:"Looks like something went wrong. We're trying to get back into the call.",networkReconnectTitle:"Hold on",notInvitedToRoomDetails:"You are not able to join this room because you do not have an invite.",notInvitedToRoomTitle:"Not invited to room",peopleButtonLabel:"People",selectedPeopleButtonLabel:"People Button Selected",peoplePaneTitle:"People",peoplePaneMoreButtonAriaLabel:"More",peopleButtonTooltipOpen:"Show participants",peopleButtonTooltipClose:"Hide participants",peoplePaneSubTitle:"In this call {numberOfPeople}",privacyPolicy:"Privacy policy",rejoinCallButtonLabel:"Re-join call",removedFromCallMoreDetails:"Another participant removed you from the call.",removedFromCallTitle:"You were removed",removeMenuLabel:"Remove",startSpotlightMenuLabel:"Spotlight for everyone",addSpotlightMenuLabel:"Add spotlight",stopSpotlightMenuLabel:"Stop spotlighting",stopSpotlightOnSelfMenuLabel:"Exit spotlight",spotlightLimitReachedMenuTitle:"Spotlight limit reached",stopAllSpotlightMenuLabel:"Stop all spotlights",returnToCallButtonAriaDescription:"Return to Call",returnToCallButtonAriaLabel:"Back",roomNotFoundDetails:"The room ID provided could not be found.",roomNotFoundTitle:"Room not found",roomNotValidDetails:"This room is not valid at this current time.",roomNotValidTitle:"Room not valid",inviteToRoomRemovedDetails:"Your invite to join this room was removed.",inviteToRoomRemovedTitle:"Invite to room removed",soundLabel:"Sound",noMicrophonesLabel:"No microphones found",noSpeakersLabel:"No speakers found",startCallButtonLabel:"Start call",openDialpadButtonLabel:"Dial phone number",peoplePaneAddPeopleButtonLabel:"Add People",dialpadStartCallButtonLabel:"Call",dialpadModalTitle:"Dial Phone Number",dialpadModalAriaLabel:"Dialpad",dialpadCloseModalButtonAriaLabel:"Close dialpad",moreButtonCallingLabel:"More",resumeCallButtonLabel:"Resume",resumingCallButtonLabel:"Resuming...",resumeCallButtonAriaLabel:"Resume call",resumingCallButtonAriaLabel:"Resume call",holdScreenLabel:"You're on hold",openDtmfDialpadLabel:"Show dialpad",dtmfDialpadPlaceholderText:"Enter number",outboundCallingNoticeString:"Calling...",participantJoinedNoticeString:"{displayName} joined",twoParticipantJoinedNoticeString:"{displayName1} and {displayName2} have joined",threeParticipantJoinedNoticeString:"{displayName1}, {displayName2} and {displayName3} have joined",participantLeftNoticeString:"{displayName} left",twoParticipantLeftNoticeString:"{displayName1} and {displayName2} have left",threeParticipantLeftNoticeString:"{displayName1}, {displayName2} and {displayName3} have left",unnamedParticipantString:"unnamed participant",manyUnnamedParticipantsJoined:"unnamed participant and {numOfParticipants} other participants joined",manyUnnamedParticipantsLeft:"unnamed participant and {numOfParticipants} other participants left",manyParticipantsJoined:"{displayName1}, {displayName2}, {displayName3} and {numOfParticipants} other participants joined",manyParticipantsLeft:"{displayName1}, {displayName2}, {displayName3} and {numOfParticipants} other participants left",liveCaptionsLabel:"Live captions",captionsSettingsLabel:"Caption settings",startCaptionsButtonOnLabel:"Turn on captions",startCaptionsButtonOffLabel:"Turn off captions",startCaptionsButtonTooltipOnContent:"Turn off captions",startCaptionsButtonTooltipOffContent:"Turn on captions",captionsSettingsModalTitle:"Captions Settings",captionsSettingsSpokenLanguageDropdownLabel:"Spoken language",captionsSettingsCaptionLanguageDropdownLabel:"Captions language",captionsSettingsSpokenLanguageDropdownInfoText:"Language that everyone on this call is speaking.",captionsSettingsCaptionLanguageDropdownInfoText:"Captions will appear in this langugage.",captionsSettingsConfirmButtonLabel:"Confirm",captionsSettingsCancelButtonLabel:"Cancel",captionsSettingsModalAriaLabel:"Captions Setting Modal",captionsSettingsCloseModalButtonAriaLabel:"Close Captions Setting",captionsBannerMoreButtonCallingLabel:"More",captionsBannerMoreButtonTooltip:"More options",dismissModalAriaLabel:"Local and remote picture and picture, press enter to return to call",callRejectedTitle:"The call could not be completed",callRejectedMoreDetails:"The person you are trying to reach is unavailable. Please try again later.",callTimeoutTitle:"The call could not be completed",callTimeoutDetails:"The person you are trying to reach is unavailable. Please try again later.",callTimeoutBotTitle:"The call could not be completed",callTimeoutBotDetails:"The service that you are trying to reach is unavailable. Please try again later.",dtmfDialerButtonLabel:"Dialpad",dtmfDialerButtonTooltipOn:"Show dialpad",dtmfDialerButtonTooltipOff:"Hide dialpad",dtmfDialerMoreButtonLabelOn:"Show dialpad",dtmfDialerMoreButtonLabelOff:"Hide dialpad",spokenLanguageStrings:{"ar-ae":"Arabic - U.A.E.","ar-sa":"Arabic - Saudi Arabia","da-dk":"Danish","de-de":"German - Germany","en-au":"English - Australia","en-ca":"English - Canada","en-gb":"English - United Kingdom","en-in":"English - India","en-nz":"English - New Zealand","en-us":"English - United States","es-es":"Spanish - Spain (Modern Sort)","es-mx":"Spanish - Mexico","fi-fi":"Finnish","fr-ca":"French - Canada","fr-fr":"French - France","hi-in":"Hindi","it-it":"Italian - Italy","ja-jp":"Japanese","ko-kr":"Korean","nb-no":"Norwegian (Bokmål)","nl-be":"Dutch - Belgium","nl-nl":"Dutch - Netherlands","pl-pl":"Polish","pt-br":"Portuguese - Brazil","ru-ru":"Russian","sv-se":"Swedish","zh-cn":"Chinese - People's Republic of China","zh-hk":"Chinese - Hong Kong SAR","cs-cz":"Czech","pt-pt":"Portuguese - Portugal","tr-tr":"Turkish","vi-vn":"Vietnamese","th-th":"Thai","he-il":"Hebrew","cy-gb":"Welsh","uk-ua":"Ukrainian","el-gr":"Greek","hu-hu":"Hungarian","ro-ro":"Romanian","sk-sk":"Slovak","zh-tw":"Chinese - Taiwan"},captionLanguageStrings:{ar:"Arabic",da:"Danish",de:"German",en:"English",es:"Spanish",fi:"Finnish","fr-ca":"French - Canada",fr:"French - France",hi:"Hindi",it:"Italian",ja:"Japanese",ko:"Korean",nb:"Norwegian (Bokmål)",nl:"Dutch",pl:"Polish",pt:"Portuguese - Brazil",ru:"Russian",sv:"Swedish","zh-Hans":"Chinese (Simplified)","zh-Hant":"Chinese (Traditional)",cs:"Czech","pt-pt":"Portuguese - Portugal",tr:"Turkish",vi:"Vietnamese",th:"Thai",he:"Hebrew",cy:"Welsh",uk:"Ukrainian",el:"Greek",hu:"Hungarian",ro:"Romanian",sk:"Slovak"},captionsBannerSpinnerText:"Starting captions...",transferPageTransferorText:"Transferring...",transferPageTransferTargetText:"Connecting...",transferPageUnknownTransferorDisplayName:"Unknown",transferPageUnknownTransferTargetDisplayName:"Unknown",transferPageNoticeString:"You are being transferred",participantCouldNotBeReachedTitle:"Target participant is currently not available",participantCouldNotBeReachedMoreDetails:"Please contact participant when they are available",permissionToReachTargetParticipantNotAllowedTitle:"Permission to reach target participant is not allowed",permissionToReachTargetParticipantNotAllowedMoreDetails:"Please check that the target participant is in the same tenant",unableToResolveTenantTitle:"Unable to resolve tenant id for the target participant",unableToResolveTenantMoreDetails:"Please check the participant id is entered correctly",participantIdIsMalformedTitle:"Participant id is not in the correct format",participantIdIsMalformedMoreDetails:"Please check that the participant id is in the correct format",moreButtonGalleryControlLabel:"View",moreButtonGalleryPositionToggleLabel:"Move gallery to top",moreButtonGallerySpeakerLayoutLabel:"Speaker",moreButtonGalleryFloatingLocalLayoutLabel:"Dynamic",moreButtonGalleryDefaultLayoutLabel:"Gallery view",moreButtonGalleryFocusedContentLayoutLabel:"Focus on content",moreButtonLargeGalleryDefaultLayoutLabel:"Large Gallery",capabilityChangedNotification:{turnVideoOn:{lostDueToMeetingOption:"Your camera has been disabled. You can no longer share video.",grantedDueToMeetingOption:"Your camera has been enabled. Turn it on if you'd like to share video."},unmuteMic:{lostDueToMeetingOption:"Your mic has been disabled. You can no longer unmute.",grantedDueToMeetingOption:"Your mic has been enabled. Unmute if you'd like to speak."},shareScreen:{lostDueToRoleChangeToAttendee:"Your role has been changed. Some actions, like sharing content, won't be available to you.",grantedDueToRoleChangeToPresenter:"You're a presenter. You can share content and facilitate the meeting."},hideAttendeeNames:{hideAttendeeNameAttendee:"Your name is hidden from other attendees. Organizers and presenters can see your real name.",hideAttendeeNamePresenter:"Attendee names are hidden. Only organizers and presenters can see names to protect attendee privacy."}},surveyTitle:"Help us improve",starSurveyHelperText:"How was the quality of the call?",starSurveyOneStarText:"The quality was bad.",starSurveyTwoStarText:"The quality was poor.",starSurveyThreeStarText:"The quality was good.",starSurveyFourStarText:"The quality was great.",starSurveyFiveStarText:"The quality was excellent.",surveyConfirmButtonLabel:"Send Feedback",starRatingAriaLabel:"Select {0} of {1} stars",surveySkipButtonLabel:"Skip",tagsSurveyQuestion:"What could have been better?",tagsSurveyTextFieldDefaultText:"Other, please specify",tagsSurveyHelperText:"Check any issues you experienced",endOfSurveyText:"Thank you for your feedback!",surveyIssues:{overallRating:{callCannotJoin:"I could not join call",callCannotInvite:"I could not invite others into the call",hadToRejoin:"I had to rejoin the call",callEndedUnexpectedly:"Call ended for me unexpectedly",otherIssues:"I was having other issues with the call"},audioRating:{noLocalAudio:"The other side could not hear any sound",noRemoteAudio:"I could not hear any sound",echo:"I heard echos on the call",audioNoise:"I heard noise on the call",lowVolume:"Volume was low",audioStoppedUnexpectedly:"Audio stopped unexpectedly",distortedSpeech:"Audio was distorted",audioInterruption:"Audio was interrupted",otherIssues:"I was having other audio issues in this call"},videoRating:{noVideoReceived:"I could not see any video",noVideoSent:"Others could not see me",lowQuality:"Video quality was low",freezes:"Video frozen",stoppedUnexpectedly:"Video stopped unexpectedly",darkVideoReceived:"I can only see dark screens when others turn on their camera",audioVideoOutOfSync:"Audio and Video was out of sync",otherIssues:"I was having other video issues in this call"},screenshareRating:{noContentLocal:"Other people could not see my screenshare",noContentRemote:"I could not see other people's screenshare",cannotPresent:"I could not present my screen",lowQuality:"Screen share quality was low",freezes:"Screen share frozen",stoppedUnexpectedly:"Screen share stopped unexpectedly",largeDelay:"Screen share has a large delay",otherIssues:"I was having other screen share issues in this call"}},surveyIssuesHeadingStrings:{overallRating:"Overall",audioRating:"Audio",videoRating:"Video",screenshareRating:"Presenting"},spotlightPrompt:{startSpotlightHeading:"Spotlight for everyone?",startSpotlightText:"You'll highlight this video for everyone in the meeting.",startSpotlightOnSelfText:"You'll highlight your video for everyone in the meeting.",startSpotlightConfirmButtonLabel:"Spotlight for everyone",startSpotlightCancelButtonLabel:"Cancel",stopSpotlightHeading:"Stop spotlighting this video?",stopSpotlightOnSelfHeading:"Exit spotlight?",stopAllSpotlightHeading:"Stop spotlighting all videos?",stopSpotlightText:"This video will no longer be highlighted for everyone in the meeting.",stopSpotlightOnSelfText:"Your video will no longer be highlighted for everyone in the meeting.",stopAllSpotlightText:"The videos will no longer be highlighted for everyone in the meeting.",stopSpotlightConfirmButtonLabel:"Stop spotlighting",stopSpotlightOnSelfConfirmButtonLabel:"Exit spotlight",stopSpotlightCancelButtonLabel:"Cancel"},exitSpotlightButtonLabel:"Exit spotlight",exitSpotlightButtonTooltip:"Exit spotlight",leaveConfirmButtonLabel:"Leave",endCallConfirmButtonLabel:"End call",hangUpCancelButtonLabel:"Cancel",leaveConfirmDialogTitle:"Leave the call?",leaveConfirmDialogContent:"Are you sure you want to leave the call?",endCallConfirmDialogTitle:"End the call?",endCallConfirmDialogContent:"You'll end the call for everyone.",invalidMeetingIdentifier:"Invalid meeting ID or passcode"};var chat$k={chatListHeader:"In this chat",uploadAttachment:"Upload Attachment"};var callWithChat$k={chatButtonLabel:"Chat",chatButtonNewMessageNotificationLabel:"New Message",chatButtonTooltipClosedWithMessageCount:"Show chat ({unreadMessagesCount} unread)",chatButtonTooltipClose:"Hide chat",chatButtonTooltipOpen:"Show chat",chatPaneTitle:"Chat",copyInviteLinkButtonLabel:"Copy invite link",copyInviteLinkButtonActionedLabel:"Link copied",copyInviteLinkActionedAriaLabel:"Invite link copied",dismissSidePaneButtonLabel:"Close",moreDrawerAudioDeviceMenuTitle:"Audio Device",moreDrawerButtonLabel:"More options",moreDrawerButtonTooltip:"More options",moreDrawerMicrophoneMenuTitle:"Microphone",moreDrawerSpeakerMenuTitle:"Speaker",moreDrawerCaptionsMenuTitle:"Live captions",moreDrawerSpokenLanguageMenuTitle:"Spoken language",moreDrawerCaptionLanguageMenuTitle:"Caption language",moreDrawerGalleryOptionsMenuTitle:"Gallery options",peopleButtonLabel:"People",selectedPeopleButtonLabel:"People Button Selected",peopleButtonTooltipOpen:"Show participants",peopleButtonTooltipClose:"Hide participants",peopleButtonTooltipOpenAriaLabel:"People button, Show participants",peopleButtonTooltipCloseAriaLabel:"People button, Hide participants",peoplePaneSubTitle:"In this call",peoplePaneTitle:"People",pictureInPictureTileAriaLabel:"Video Feeds. Click to return to call screen.",removeMenuLabel:"Remove",openDialpadButtonLabel:"Dial phone number",returnToCallButtonAriaDescription:"Return to Call",returnToCallButtonAriaLabel:"Back",peoplePaneAddPeopleButtonLabel:"Add People",dialpadStartCallButtonLabel:"Call",dialpadModalTitle:"Dial Phone Number",dialpadModalAriaLabel:"Dialpad",dialpadCloseModalButtonAriaLabel:"Close dialpad",openDtmfDialpadLabel:"Show dialpad",dtmfDialpadPlaceholderText:"Enter number"};var en_US = {call:call$k,chat:chat$k,callWithChat:callWithChat$k};
27267
+ var call$k={cameraLabel:"Camera",noCamerasLabel:"No cameras found",cameraPermissionDenied:"Your browser is blocking access to your camera",cameraTurnedOff:"Your camera is turned off",chatButtonLabel:"Chat",close:"Close",complianceBannerNowOnlyRecording:"You are now only recording this meeting.",complianceBannerNowOnlyTranscription:"You are now only transcribing this meeting.",complianceBannerRecordingAndTranscriptionSaved:"Recording and transcription are being saved.",complianceBannerRecordingAndTranscriptionStarted:"Recording and transcription have started.",complianceBannerRecordingAndTranscriptionStopped:"Recording and transcription have stopped.",complianceBannerRecordingSaving:"Recording is being saved.",complianceBannerRecordingStarted:"Recording has started.",complianceBannerRecordingStopped:"Recording has stopped.",complianceBannerTranscriptionStarted:"Transcription has started.",complianceBannerTranscriptionConsent:"By joining, you are giving consent for this meeting to be transcribed.",complianceBannerTranscriptionSaving:"Transcription is being saved.",complianceBannerTranscriptionStopped:"Transcription has stopped.",configurationPageTitle:"Start a call",copyInviteLinkButtonLabel:"Copy invite link",copyInviteLinkButtonActionedLabel:"Link copied",copyInviteLinkActionedAriaLabel:"Invite link copied",defaultPlaceHolder:"Select an option",dismissSidePaneButtonLabel:"Close",videoEffectsPaneTitle:"Effects",videoEffectsPaneBackgroundSelectionTitle:"Background",configurationPageVideoEffectsButtonLabel:"Effects",unableToStartVideoEffect:"Unable to apply video effect.",blurBackgroundEffectButtonLabel:"Blur",blurBackgroundTooltip:"Blur Background",removeBackgroundEffectButtonLabel:"None",removeBackgroundTooltip:"Remove Background",cameraOffBackgroundEffectWarningText:"Your camera is off. Turn on camera to see video effect.",failedToJoinCallDueToNoNetworkMoreDetails:"Call was disconnected due to a network issue. Check your connection and join again.",failedToJoinCallDueToNoNetworkTitle:"Call disconnected",failedToJoinTeamsMeetingReasonAccessDeniedMoreDetails:"You were not granted entry in the call. If this was a mistake, re-join the call.",failedToJoinTeamsMeetingReasonAccessDeniedTitle:"Dismissed from lobby",learnMore:"Learn more",leavingCallTitle:"Leaving...",leftCallMoreDetails:"If this was a mistake, re-join the call.",leftCallTitle:"You left the call",lobbyScreenConnectingToCallTitle:"Joining call",lobbyScreenWaitingToBeAdmittedTitle:"Waiting to be admitted",microphonePermissionDenied:"Your browser is blocking access to your microphone",microphoneToggleInLobbyNotAllowed:"Cannot mute or unmute while in lobby.",mutedMessage:"You're muted",networkReconnectMoreDetails:"Looks like something went wrong. We're trying to get back into the call.",networkReconnectTitle:"Hold on",notInvitedToRoomDetails:"You are not able to join this room because you do not have an invite.",notInvitedToRoomTitle:"Not invited to room",peopleButtonLabel:"People",selectedPeopleButtonLabel:"People Button Selected",peoplePaneTitle:"People",peoplePaneMoreButtonAriaLabel:"More",peopleButtonTooltipOpen:"Show participants",peopleButtonTooltipClose:"Hide participants",peoplePaneSubTitle:"In this call {numberOfPeople}",privacyPolicy:"Privacy policy",rejoinCallButtonLabel:"Re-join call",removedFromCallMoreDetails:"Another participant removed you from the call.",removedFromCallTitle:"You were removed",removeMenuLabel:"Remove",startSpotlightMenuLabel:"Spotlight for everyone",addSpotlightMenuLabel:"Add spotlight",stopSpotlightMenuLabel:"Stop spotlighting",stopSpotlightOnSelfMenuLabel:"Exit spotlight",spotlightLimitReachedMenuTitle:"Spotlight limit reached",stopAllSpotlightMenuLabel:"Stop all spotlights",returnToCallButtonAriaDescription:"Return to Call",returnToCallButtonAriaLabel:"Back",roomNotFoundDetails:"The room ID provided could not be found.",roomNotFoundTitle:"Room not found",roomNotValidDetails:"This room is not valid at this current time.",roomNotValidTitle:"Room not valid",inviteToRoomRemovedDetails:"Your invite to join this room was removed.",inviteToRoomRemovedTitle:"Invite to room removed",soundLabel:"Sound",noMicrophonesLabel:"No microphones found",noSpeakersLabel:"No speakers found",startCallButtonLabel:"Start call",openDialpadButtonLabel:"Dial phone number",peoplePaneAddPeopleButtonLabel:"Add People",dialpadStartCallButtonLabel:"Call",dialpadModalTitle:"Dial Phone Number",dialpadModalAriaLabel:"Dialpad",dialpadCloseModalButtonAriaLabel:"Close dialpad",moreButtonCallingLabel:"More",resumeCallButtonLabel:"Resume",resumingCallButtonLabel:"Resuming...",resumeCallButtonAriaLabel:"Resume call",resumingCallButtonAriaLabel:"Resume call",holdScreenLabel:"You're on hold",openDtmfDialpadLabel:"Show dialpad",dtmfDialpadPlaceholderText:"Enter number",outboundCallingNoticeString:"Calling...",participantJoinedNoticeString:"{displayName} joined",twoParticipantJoinedNoticeString:"{displayName1} and {displayName2} have joined",threeParticipantJoinedNoticeString:"{displayName1}, {displayName2} and {displayName3} have joined",participantLeftNoticeString:"{displayName} left",twoParticipantLeftNoticeString:"{displayName1} and {displayName2} have left",threeParticipantLeftNoticeString:"{displayName1}, {displayName2} and {displayName3} have left",unnamedParticipantString:"unnamed participant",manyUnnamedParticipantsJoined:"unnamed participant and {numOfParticipants} other participants joined",manyUnnamedParticipantsLeft:"unnamed participant and {numOfParticipants} other participants left",manyParticipantsJoined:"{displayName1}, {displayName2}, {displayName3} and {numOfParticipants} other participants joined",manyParticipantsLeft:"{displayName1}, {displayName2}, {displayName3} and {numOfParticipants} other participants left",liveCaptionsLabel:"Live captions",captionsSettingsLabel:"Caption settings",startCaptionsButtonOnLabel:"Turn on captions",startCaptionsButtonOffLabel:"Turn off captions",startCaptionsButtonTooltipOnContent:"Turn off captions",startCaptionsButtonTooltipOffContent:"Turn on captions",captionsSettingsModalTitle:"Captions Settings",captionsSettingsSpokenLanguageDropdownLabel:"Spoken language",captionsSettingsCaptionLanguageDropdownLabel:"Captions language",captionsSettingsSpokenLanguageDropdownInfoText:"Language that everyone on this call is speaking.",captionsSettingsCaptionLanguageDropdownInfoText:"Captions will appear in this langugage.",captionsSettingsConfirmButtonLabel:"Confirm",captionsSettingsCancelButtonLabel:"Cancel",captionsSettingsModalAriaLabel:"Captions Setting Modal",captionsSettingsCloseModalButtonAriaLabel:"Close Captions Setting",captionsBannerMoreButtonCallingLabel:"More",captionsBannerMoreButtonTooltip:"More options",dismissModalAriaLabel:"Local and remote picture and picture, press enter to return to call",callRejectedTitle:"The call could not be completed",callRejectedMoreDetails:"The person you are trying to reach is unavailable. Please try again later.",callTimeoutTitle:"The call could not be completed",callTimeoutDetails:"The person you are trying to reach is unavailable. Please try again later.",callTimeoutBotTitle:"The call could not be completed",callTimeoutBotDetails:"The service that you are trying to reach is unavailable. Please try again later.",dtmfDialerButtonLabel:"Dialpad",dtmfDialerButtonTooltipOn:"Show dialpad",dtmfDialerButtonTooltipOff:"Hide dialpad",dtmfDialerMoreButtonLabelOn:"Show dialpad",dtmfDialerMoreButtonLabelOff:"Hide dialpad",phoneCallMoreButtonLabel:"Phone Call",spokenLanguageStrings:{"ar-ae":"Arabic - U.A.E.","ar-sa":"Arabic - Saudi Arabia","da-dk":"Danish","de-de":"German - Germany","en-au":"English - Australia","en-ca":"English - Canada","en-gb":"English - United Kingdom","en-in":"English - India","en-nz":"English - New Zealand","en-us":"English - United States","es-es":"Spanish - Spain (Modern Sort)","es-mx":"Spanish - Mexico","fi-fi":"Finnish","fr-ca":"French - Canada","fr-fr":"French - France","hi-in":"Hindi","it-it":"Italian - Italy","ja-jp":"Japanese","ko-kr":"Korean","nb-no":"Norwegian (Bokmål)","nl-be":"Dutch - Belgium","nl-nl":"Dutch - Netherlands","pl-pl":"Polish","pt-br":"Portuguese - Brazil","ru-ru":"Russian","sv-se":"Swedish","zh-cn":"Chinese - People's Republic of China","zh-hk":"Chinese - Hong Kong SAR","cs-cz":"Czech","pt-pt":"Portuguese - Portugal","tr-tr":"Turkish","vi-vn":"Vietnamese","th-th":"Thai","he-il":"Hebrew","cy-gb":"Welsh","uk-ua":"Ukrainian","el-gr":"Greek","hu-hu":"Hungarian","ro-ro":"Romanian","sk-sk":"Slovak","zh-tw":"Chinese - Taiwan"},captionLanguageStrings:{ar:"Arabic",da:"Danish",de:"German",en:"English",es:"Spanish",fi:"Finnish","fr-ca":"French - Canada",fr:"French - France",hi:"Hindi",it:"Italian",ja:"Japanese",ko:"Korean",nb:"Norwegian (Bokmål)",nl:"Dutch",pl:"Polish",pt:"Portuguese - Brazil",ru:"Russian",sv:"Swedish","zh-Hans":"Chinese (Simplified)","zh-Hant":"Chinese (Traditional)",cs:"Czech","pt-pt":"Portuguese - Portugal",tr:"Turkish",vi:"Vietnamese",th:"Thai",he:"Hebrew",cy:"Welsh",uk:"Ukrainian",el:"Greek",hu:"Hungarian",ro:"Romanian",sk:"Slovak"},captionsBannerSpinnerText:"Starting captions...",transferPageTransferorText:"Transferring...",transferPageTransferTargetText:"Connecting...",transferPageUnknownTransferorDisplayName:"Unknown",transferPageUnknownTransferTargetDisplayName:"Unknown",transferPageNoticeString:"You are being transferred",participantCouldNotBeReachedTitle:"Target participant is currently not available",participantCouldNotBeReachedMoreDetails:"Please contact participant when they are available",permissionToReachTargetParticipantNotAllowedTitle:"Permission to reach target participant is not allowed",permissionToReachTargetParticipantNotAllowedMoreDetails:"Please check that the target participant is in the same tenant",unableToResolveTenantTitle:"Unable to resolve tenant id for the target participant",unableToResolveTenantMoreDetails:"Please check the participant id is entered correctly",participantIdIsMalformedTitle:"Participant id is not in the correct format",participantIdIsMalformedMoreDetails:"Please check that the participant id is in the correct format",moreButtonGalleryControlLabel:"View",moreButtonGalleryPositionToggleLabel:"Move gallery to top",moreButtonGallerySpeakerLayoutLabel:"Speaker",moreButtonGalleryFloatingLocalLayoutLabel:"Dynamic",moreButtonGalleryDefaultLayoutLabel:"Gallery view",moreButtonGalleryFocusedContentLayoutLabel:"Focus on content",moreButtonLargeGalleryDefaultLayoutLabel:"Large Gallery",capabilityChangedNotification:{turnVideoOn:{lostDueToMeetingOption:"Your camera has been disabled. You can no longer share video.",grantedDueToMeetingOption:"Your camera has been enabled. Turn it on if you'd like to share video."},unmuteMic:{lostDueToMeetingOption:"Your mic has been disabled. You can no longer unmute.",grantedDueToMeetingOption:"Your mic has been enabled. Unmute if you'd like to speak."},shareScreen:{lostDueToRoleChangeToAttendee:"Your role has been changed. Some actions, like sharing content, won't be available to you.",grantedDueToRoleChangeToPresenter:"You're a presenter. You can share content and facilitate the meeting."},hideAttendeeNames:{hideAttendeeNameAttendee:"Your name is hidden from other attendees. Organizers and presenters can see your real name.",hideAttendeeNamePresenter:"Attendee names are hidden. Only organizers and presenters can see names to protect attendee privacy."}},surveyTitle:"Help us improve",starSurveyHelperText:"How was the quality of the call?",starSurveyOneStarText:"The quality was bad.",starSurveyTwoStarText:"The quality was poor.",starSurveyThreeStarText:"The quality was good.",starSurveyFourStarText:"The quality was great.",starSurveyFiveStarText:"The quality was excellent.",surveyConfirmButtonLabel:"Send Feedback",starRatingAriaLabel:"Select {0} of {1} stars",surveySkipButtonLabel:"Skip",tagsSurveyQuestion:"What could have been better?",tagsSurveyTextFieldDefaultText:"Other, please specify",tagsSurveyHelperText:"Check any issues you experienced",endOfSurveyText:"Thank you for your feedback!",surveyIssues:{overallRating:{callCannotJoin:"I could not join call",callCannotInvite:"I could not invite others into the call",hadToRejoin:"I had to rejoin the call",callEndedUnexpectedly:"Call ended for me unexpectedly",otherIssues:"I was having other issues with the call"},audioRating:{noLocalAudio:"The other side could not hear any sound",noRemoteAudio:"I could not hear any sound",echo:"I heard echos on the call",audioNoise:"I heard noise on the call",lowVolume:"Volume was low",audioStoppedUnexpectedly:"Audio stopped unexpectedly",distortedSpeech:"Audio was distorted",audioInterruption:"Audio was interrupted",otherIssues:"I was having other audio issues in this call"},videoRating:{noVideoReceived:"I could not see any video",noVideoSent:"Others could not see me",lowQuality:"Video quality was low",freezes:"Video frozen",stoppedUnexpectedly:"Video stopped unexpectedly",darkVideoReceived:"I can only see dark screens when others turn on their camera",audioVideoOutOfSync:"Audio and Video was out of sync",otherIssues:"I was having other video issues in this call"},screenshareRating:{noContentLocal:"Other people could not see my screenshare",noContentRemote:"I could not see other people's screenshare",cannotPresent:"I could not present my screen",lowQuality:"Screen share quality was low",freezes:"Screen share frozen",stoppedUnexpectedly:"Screen share stopped unexpectedly",largeDelay:"Screen share has a large delay",otherIssues:"I was having other screen share issues in this call"}},surveyIssuesHeadingStrings:{overallRating:"Overall",audioRating:"Audio",videoRating:"Video",screenshareRating:"Presenting"},spotlightPrompt:{startSpotlightHeading:"Spotlight for everyone?",startSpotlightText:"You'll highlight this video for everyone in the meeting.",startSpotlightOnSelfText:"You'll highlight your video for everyone in the meeting.",startSpotlightConfirmButtonLabel:"Spotlight for everyone",startSpotlightCancelButtonLabel:"Cancel",stopSpotlightHeading:"Stop spotlighting this video?",stopSpotlightOnSelfHeading:"Exit spotlight?",stopAllSpotlightHeading:"Stop spotlighting all videos?",stopSpotlightText:"This video will no longer be highlighted for everyone in the meeting.",stopSpotlightOnSelfText:"Your video will no longer be highlighted for everyone in the meeting.",stopAllSpotlightText:"The videos will no longer be highlighted for everyone in the meeting.",stopSpotlightConfirmButtonLabel:"Stop spotlighting",stopSpotlightOnSelfConfirmButtonLabel:"Exit spotlight",stopSpotlightCancelButtonLabel:"Cancel"},exitSpotlightButtonLabel:"Exit spotlight",exitSpotlightButtonTooltip:"Exit spotlight",leaveConfirmButtonLabel:"Leave",endCallConfirmButtonLabel:"End call",hangUpCancelButtonLabel:"Cancel",leaveConfirmDialogTitle:"Leave the call?",leaveConfirmDialogContent:"Are you sure you want to leave the call?",endCallConfirmDialogTitle:"End the call?",endCallConfirmDialogContent:"You'll end the call for everyone.",invalidMeetingIdentifier:"Invalid meeting ID or passcode"};var chat$k={chatListHeader:"In this chat",uploadAttachment:"Upload Attachment"};var callWithChat$k={chatButtonLabel:"Chat",chatButtonNewMessageNotificationLabel:"New Message",chatButtonTooltipClosedWithMessageCount:"Show chat ({unreadMessagesCount} unread)",chatButtonTooltipClose:"Hide chat",chatButtonTooltipOpen:"Show chat",chatPaneTitle:"Chat",copyInviteLinkButtonLabel:"Copy invite link",copyInviteLinkButtonActionedLabel:"Link copied",copyInviteLinkActionedAriaLabel:"Invite link copied",dismissSidePaneButtonLabel:"Close",moreDrawerAudioDeviceMenuTitle:"Audio Device",moreDrawerButtonLabel:"More options",moreDrawerButtonTooltip:"More options",moreDrawerMicrophoneMenuTitle:"Microphone",moreDrawerSpeakerMenuTitle:"Speaker",moreDrawerCaptionsMenuTitle:"Live captions",moreDrawerSpokenLanguageMenuTitle:"Spoken language",moreDrawerCaptionLanguageMenuTitle:"Caption language",moreDrawerGalleryOptionsMenuTitle:"Gallery options",peopleButtonLabel:"People",selectedPeopleButtonLabel:"People Button Selected",peopleButtonTooltipOpen:"Show participants",peopleButtonTooltipClose:"Hide participants",peopleButtonTooltipOpenAriaLabel:"People button, Show participants",peopleButtonTooltipCloseAriaLabel:"People button, Hide participants",peoplePaneSubTitle:"In this call",peoplePaneTitle:"People",pictureInPictureTileAriaLabel:"Video Feeds. Click to return to call screen.",removeMenuLabel:"Remove",openDialpadButtonLabel:"Dial phone number",returnToCallButtonAriaDescription:"Return to Call",returnToCallButtonAriaLabel:"Back",peoplePaneAddPeopleButtonLabel:"Add People",dialpadStartCallButtonLabel:"Call",dialpadModalTitle:"Dial Phone Number",dialpadModalAriaLabel:"Dialpad",dialpadCloseModalButtonAriaLabel:"Close dialpad",openDtmfDialpadLabel:"Show dialpad",dtmfDialpadPlaceholderText:"Enter number"};var en_US = {call:call$k,chat:chat$k,callWithChat:callWithChat$k};
27028
27268
 
27029
27269
  // Copyright (c) Microsoft Corporation.
27030
27270
  // Licensed under the MIT License.
@@ -27122,6 +27362,10 @@ const COMPOSITE_ONLY_ICONS = {
27122
27362
  LargeGalleryLayout: React.createElement(reactIcons.Table20Regular, null),
27123
27363
  DefaultCustomButton: React.createElement(reactIcons.Circle20Regular, null),
27124
27364
  DtmfDialpadButton: React.createElement(reactIcons.Dialpad20Regular, null),
27365
+ /* @conditional-compile-remove(teams-meeting-conference) */
27366
+ PhoneNumberButton: React.createElement(reactIcons.PersonCall20Regular, null),
27367
+ /* @conditional-compile-remove(teams-meeting-conference) */
27368
+ PhoneInfoWait: React.createElement(reactIcons.Clock20Filled, null),
27125
27369
  /* @conditional-compile-remove(spotlight) */
27126
27370
  PeoplePaneMoreButton: React.createElement(reactIcons.MoreHorizontal20Filled, null),
27127
27371
  /* @conditional-compile-remove(spotlight) */
@@ -27964,7 +28208,7 @@ const AttachmentDownloadErrorBar = (props) => {
27964
28208
  /**
27965
28209
  * Wrapper for RichTextSendBox component to allow us to use usePropsFor with richTextSendBox with lazy loading
27966
28210
  */
27967
- const RichTextSendBoxWrapper = React.lazy(() => Promise.resolve().then(function () { return require('./RichTextSendBoxWrapper-DORQ6cdT.js'); }).then((module) => ({ default: module.RichTextSendBoxWrapper })));
28211
+ const RichTextSendBoxWrapper = React.lazy(() => Promise.resolve().then(function () { return require('./RichTextSendBoxWrapper-DoEtNInF.js'); }).then((module) => ({ default: module.RichTextSendBoxWrapper })));
27968
28212
  /**
27969
28213
  * @private
27970
28214
  * Use this function to load RoosterJS dependencies early in the lifecycle.
@@ -27972,21 +28216,21 @@ const RichTextSendBoxWrapper = React.lazy(() => Promise.resolve().then(function
27972
28216
  *
27973
28217
  /* @conditional-compile-remove(rich-text-editor-composite-support)
27974
28218
  */
27975
- const loadRichTextSendBox = () => Promise.resolve().then(function () { return require('./RichTextSendBoxWrapper-DORQ6cdT.js'); }).then((module) => ({ default: module.RichTextSendBoxWrapper }));
28219
+ const loadRichTextSendBox = () => Promise.resolve().then(function () { return require('./RichTextSendBoxWrapper-DoEtNInF.js'); }).then((module) => ({ default: module.RichTextSendBoxWrapper }));
27976
28220
  /**
27977
28221
  * @private
27978
28222
  */
27979
28223
  const SendBoxPicker = (props) => {
27980
28224
  const {
27981
- /* @conditional-compile-remove(rich-text-editor-composite-support) */
27982
- richTextEditor } = props;
28225
+ /* @conditional-compile-remove(rich-text-editor-composite-support) @conditional-compile-remove(rich-text-editor) */
28226
+ richTextEditorOptions } = props;
27983
28227
  const sendBoxProps = usePropsFor$2(SendBox);
27984
- /* @conditional-compile-remove(rich-text-editor-composite-support) */
28228
+ /* @conditional-compile-remove(rich-text-editor-composite-support) @conditional-compile-remove(rich-text-editor) */
27985
28229
  const isRichTextEditorEnabled = React.useMemo(() => {
27986
- return richTextEditor;
27987
- }, [richTextEditor]);
28230
+ return richTextEditorOptions !== undefined;
28231
+ }, [richTextEditorOptions]);
27988
28232
  const sendBox = React.useMemo(() => React.createElement(SendBox, Object.assign({}, sendBoxProps, props)), [props, sendBoxProps]);
27989
- /* @conditional-compile-remove(rich-text-editor-composite-support) */
28233
+ /* @conditional-compile-remove(rich-text-editor-composite-support) @conditional-compile-remove(rich-text-editor) */
27990
28234
  if (isRichTextEditorEnabled) {
27991
28235
  return (React.createElement(_ErrorBoundary, { fallback: sendBox },
27992
28236
  React.createElement(React.Suspense, { fallback: sendBox },
@@ -28036,12 +28280,12 @@ const ChatScreen = (props) => {
28036
28280
  /* @conditional-compile-remove(rich-text-editor-composite-support) */
28037
28281
  React.useEffect(() => {
28038
28282
  // if rich text editor is enabled, the rich text editor component should be loaded early for good UX
28039
- if ((options === null || options === void 0 ? void 0 : options.richTextEditor) !== undefined && options.richTextEditor) {
28283
+ if ((options === null || options === void 0 ? void 0 : options.richTextEditorOptions) !== undefined) {
28040
28284
  // this line is needed to load the Rooster JS dependencies early in the lifecycle
28041
28285
  // when the rich text editor is enabled
28042
28286
  loadRichTextSendBox();
28043
28287
  }
28044
- }, [options === null || options === void 0 ? void 0 : options.richTextEditor]);
28288
+ }, [options === null || options === void 0 ? void 0 : options.richTextEditorOptions]);
28045
28289
  const messageThreadProps = usePropsFor$2(MessageThread);
28046
28290
  const typingIndicatorProps = usePropsFor$2(TypingIndicator);
28047
28291
  const headerProps = useAdaptedSelector$1(getHeaderProps);
@@ -28272,8 +28516,8 @@ const ChatScreen = (props) => {
28272
28516
  React.createElement(MessageThread, Object.assign({}, messageThreadProps, { onRenderAvatar: onRenderAvatarCallback, onRenderMessage: onRenderMessage,
28273
28517
  /* @conditional-compile-remove(file-sharing-acs) */
28274
28518
  onRenderAttachmentDownloads: onRenderAttachmentDownloads, inlineImageOptions: inlineImageOptions, numberOfChatMessagesToReload: defaultNumberOfChatMessagesToReload, styles: messageThreadStyles,
28275
- /* @conditional-compile-remove(rich-text-editor-composite-support) */
28276
- richTextEditor: options === null || options === void 0 ? void 0 : options.richTextEditor })),
28519
+ /* @conditional-compile-remove(rich-text-editor-composite-support) @conditional-compile-remove(rich-text-editor) */
28520
+ richTextEditorOptions: options === null || options === void 0 ? void 0 : options.richTextEditorOptions })),
28277
28521
  React.createElement(react.Stack, { className: react.mergeStyles(sendboxContainerStyles) },
28278
28522
  React.createElement("div", { className: react.mergeStyles(typingIndicatorContainerStyles) }, onRenderTypingIndicator ? (onRenderTypingIndicator(typingIndicatorProps.typingUsers)) : (React.createElement(TypingIndicator, Object.assign({}, typingIndicatorProps, { styles: typingIndicatorStyles })))),
28279
28523
  React.createElement(react.Stack, { horizontal: formFactor === 'mobile' },
@@ -28284,7 +28528,7 @@ const ChatScreen = (props) => {
28284
28528
  React.createElement(react.Stack, { grow: true },
28285
28529
  React.createElement(SendBoxPicker, { styles: sendBoxStyles, autoFocus: options === null || options === void 0 ? void 0 : options.autoFocus,
28286
28530
  /* @conditional-compile-remove(rich-text-editor-composite-support) */
28287
- richTextEditor: options === null || options === void 0 ? void 0 : options.richTextEditor,
28531
+ richTextEditorOptions: options === null || options === void 0 ? void 0 : options.richTextEditorOptions,
28288
28532
  /* @conditional-compile-remove(file-sharing-acs) */
28289
28533
  attachments: attachments,
28290
28534
  /* @conditional-compile-remove(file-sharing-acs) */
@@ -29720,6 +29964,11 @@ const getIsTeamsCall = (state) => state.isTeamsCall;
29720
29964
  * @private
29721
29965
  */
29722
29966
  const getIsTeamsMeeting = (state) => state.isTeamsMeeting;
29967
+ /* @conditional-compile-remove(teams-meeting-conference) */
29968
+ /**
29969
+ * @private
29970
+ */
29971
+ const getTeamsMeetingCoordinates = (state) => { var _a; return (_a = state.call) === null || _a === void 0 ? void 0 : _a.teamsMeetingConference; };
29723
29972
  /**
29724
29973
  * @private
29725
29974
  */
@@ -30517,6 +30766,10 @@ const DesktopMoreButton = (props) => {
30517
30766
  const [previousLayout, setPreviousLayout] = React.useState((_a = props.userSetGalleryLayout) !== null && _a !== void 0 ? _a : 'floatingLocalVideo');
30518
30767
  const callees = useSelector$1(getTargetCallees);
30519
30768
  const allowDtmfDialer = showDtmfDialer(callees);
30769
+ /* @conditional-compile-remove(teams-meeting-conference) */
30770
+ const isTeamsMeeting = useSelector$1(getIsTeamsMeeting);
30771
+ /* @conditional-compile-remove(teams-meeting-conference) */
30772
+ const teamsMeetingCoordinates = useSelector$1(getTeamsMeetingCoordinates);
30520
30773
  const [dtmfDialerChecked, setDtmfDialerChecked] = React.useState((_b = props.dtmfDialerPresent) !== null && _b !== void 0 ? _b : false);
30521
30774
  const moreButtonStrings = React.useMemo(() => ({
30522
30775
  label: localeStrings.strings.call.moreButtonCallingLabel,
@@ -30629,6 +30882,28 @@ const DesktopMoreButton = (props) => {
30629
30882
  if (props.onSetDialpadPage && allowDtmfDialer) {
30630
30883
  moreButtonContextualMenuItems.push(dtmfDialerScreenOption);
30631
30884
  }
30885
+ /* @conditional-compile-remove(teams-meeting-conference) */
30886
+ const joinByPhoneOption = {
30887
+ key: 'phoneCallKey',
30888
+ itemProps: {
30889
+ styles: buttonFlyoutIncreasedSizeStyles
30890
+ },
30891
+ text: localeStrings.strings.call.phoneCallMoreButtonLabel,
30892
+ onClick: () => {
30893
+ props.onMeetingPhoneInfoClick && props.onMeetingPhoneInfoClick();
30894
+ },
30895
+ iconProps: {
30896
+ iconName: 'PhoneNumberButton',
30897
+ styles: { root: { lineHeight: 0 } }
30898
+ }
30899
+ };
30900
+ /**
30901
+ * Only render the phone call button if meeting conordinates are present
30902
+ */
30903
+ /* @conditional-compile-remove(teams-meeting-conference) */
30904
+ if (props.teamsMeetingPhoneCallEnable && isTeamsMeeting && teamsMeetingCoordinates) {
30905
+ moreButtonContextualMenuItems.push(joinByPhoneOption);
30906
+ }
30632
30907
  if (props.onUserSetOverflowGalleryPositionChange) {
30633
30908
  const galleryOptions = {
30634
30909
  key: 'overflowGalleryPositionKey',
@@ -31021,7 +31296,7 @@ const inferCommonCallControlOptions = (mobileView, commonCallControlOptions) =>
31021
31296
  * @private
31022
31297
  */
31023
31298
  const CommonCallControlBar = (props) => {
31024
- var _a, _b, _c, _d, _e, _f, _g;
31299
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j;
31025
31300
  const theme = react.useTheme();
31026
31301
  const rtl = theme.rtl;
31027
31302
  const controlBarContainerRef = React.useRef(null);
@@ -31035,6 +31310,8 @@ const CommonCallControlBar = (props) => {
31035
31310
  const callWithChatStrings = useCallWithChatCompositeStrings();
31036
31311
  const options = inferCommonCallControlOptions(props.mobileView, props.callControls);
31037
31312
  const [showCaptionsSettingsModal, setShowCaptionsSettingsModal] = React.useState(false);
31313
+ /* @conditional-compile-remove(teams-meeting-conference) */
31314
+ const [showTeamsMeetingConferenceModal, setShowTeamsMeetingConferenceModal] = React.useState(false);
31038
31315
  /* @conditional-compile-remove(end-call-options) */
31039
31316
  // If the hangup capability is not present, we default to true
31040
31317
  const isHangUpForEveryoneAllowed = (_a = useSelector$1((state) => { var _a, _b; return (_b = (_a = state.call) === null || _a === void 0 ? void 0 : _a.capabilitiesFeature) === null || _b === void 0 ? void 0 : _b.capabilities.hangUpForEveryOne.isPresent; })) !== null && _a !== void 0 ? _a : true;
@@ -31072,6 +31349,10 @@ const CommonCallControlBar = (props) => {
31072
31349
  const onDismissCaptionsSettings = React.useCallback(() => {
31073
31350
  setShowCaptionsSettingsModal(false);
31074
31351
  }, []);
31352
+ /* @conditional-compile-remove(teams-meeting-conference) */
31353
+ const toggleTeamsMeetingConferenceModal = React.useCallback(() => {
31354
+ setShowTeamsMeetingConferenceModal(!showTeamsMeetingConferenceModal);
31355
+ }, [showTeamsMeetingConferenceModal]);
31075
31356
  const peopleButtonStrings = React.useMemo(() => ({
31076
31357
  label: callWithChatStrings.peopleButtonLabel,
31077
31358
  selectedLabel: callWithChatStrings.selectedPeopleButtonLabel,
@@ -31126,6 +31407,8 @@ const CommonCallControlBar = (props) => {
31126
31407
  const showExitSpotlightButton = (options === null || options === void 0 ? void 0 : options.exitSpotlightButton) !== false;
31127
31408
  const showCaptionsButton = props.isCaptionsSupported &&
31128
31409
  /* @conditional-compile-remove(acs-close-captions) */ isEnabled$1(options.captionsButton);
31410
+ /* @conditional-compile-remove(teams-meeting-conference) */
31411
+ const showTeamsMeetingPhoneCallButton = isEnabled$1(options === null || options === void 0 ? void 0 : options.teamsMeetingPhoneCallButton);
31129
31412
  const showDesktopMoreButton = isEnabled$1(options === null || options === void 0 ? void 0 : options.moreButton) &&
31130
31413
  (/*@conditional-compile-remove(PSTN-calls) */ /* @conditional-compile-remove(one-to-n-calling) */ isEnabled$1(options === null || options === void 0 ? void 0 : options.holdButton) ||
31131
31414
  showCaptionsButton ||
@@ -31134,7 +31417,9 @@ const CommonCallControlBar = (props) => {
31134
31417
  const hideRaiseHandButtonInRoomsCall = props.callAdapter.getState().isRoomsCall && role && ['Consumer', 'Unknown'].includes(role);
31135
31418
  const reactionResources = props.callAdapter.getState().reactions;
31136
31419
  return (React.createElement("div", { ref: controlBarSizeRef },
31137
- React.createElement(CallAdapterProvider, { adapter: props.callAdapter }, showCaptionsSettingsModal && (React.createElement(CaptionsSettingsModal, { showCaptionsSettingsModal: showCaptionsSettingsModal, onDismissCaptionsSettings: onDismissCaptionsSettings, changeCaptionLanguage: props.isCaptionsOn && props.useTeamsCaptions }))),
31420
+ React.createElement(CallAdapterProvider, { adapter: props.callAdapter },
31421
+ showCaptionsSettingsModal && (React.createElement(CaptionsSettingsModal, { showCaptionsSettingsModal: showCaptionsSettingsModal, onDismissCaptionsSettings: onDismissCaptionsSettings, changeCaptionLanguage: props.isCaptionsOn && props.useTeamsCaptions })),
31422
+ /* @conditional-compile-remove(teams-meeting-conference) */ showTeamsMeetingConferenceModal && (React.createElement(MeetingConferencePhoneInfoModal, { conferencePhoneInfoList: (_d = (_c = props.callAdapter.getState().call) === null || _c === void 0 ? void 0 : _c.teamsMeetingConference) !== null && _d !== void 0 ? _d : [], showModal: showTeamsMeetingConferenceModal, onDismissMeetingPhoneInfoSettings: toggleTeamsMeetingConferenceModal }))),
31138
31423
  React.createElement(react.Stack, { horizontal: true, reversed: !props.mobileView && !isOutOfSpace, horizontalAlign: "space-between", className: react.mergeStyles(callControlsContainerStyles, controlBarContainerStyles, controlBarDesktopContainerStyles) },
31139
31424
  React.createElement(react.Stack.Item, { grow: true, className: react.mergeStyles(controlBarWrapperDesktopStyles) },
31140
31425
  React.createElement(CallAdapterProvider, { adapter: props.callAdapter },
@@ -31165,8 +31450,8 @@ const CommonCallControlBar = (props) => {
31165
31450
  props.onStopLocalSpotlight && (React.createElement(ExitSpotlightButton, { displayType: options.displayType, onClick: props.onStopLocalSpotlight, styles: commonButtonStyles, strings: exitSpotlightButtonStrings })),
31166
31451
  screenShareButtonIsEnabled && (React.createElement(ScreenShare, { option: options.screenShareButton, displayType: options.displayType, styles: screenShareButtonStyles,
31167
31452
  /* @conditional-compile-remove(PSTN-calls) */ /* @conditional-compile-remove(one-to-n-calling) */
31168
- disabled: props.disableButtonsForHoldScreen || isDisabled$4(options.screenShareButton) })), (_c = customButtons['primary']) === null || _c === void 0 ? void 0 :
31169
- _c.slice(0, props.mobileView
31453
+ disabled: props.disableButtonsForHoldScreen || isDisabled$4(options.screenShareButton) })), (_e = customButtons['primary']) === null || _e === void 0 ? void 0 :
31454
+ _e.slice(0, props.mobileView
31170
31455
  ? CUSTOM_BUTTON_OPTIONS.MAX_PRIMARY_MOBILE_CUSTOM_BUTTONS
31171
31456
  : CUSTOM_BUTTON_OPTIONS.MAX_PRIMARY_DESKTOP_CUSTOM_BUTTONS).map((CustomButton, i) => {
31172
31457
  return (React.createElement(CustomButton, { key: `primary-custom-button-${i}`, styles: commonButtonStyles, showLabel: options.displayType !== 'compact', disableTooltip: props.mobileView }));
@@ -31174,15 +31459,19 @@ const CommonCallControlBar = (props) => {
31174
31459
  props.mobileView && (React.createElement(MoreButton, { "data-ui-id": "common-call-composite-more-button", strings: moreButtonStrings, onClick: props.onMoreButtonClicked, disabled: props.disableButtonsForLobbyPage, disableTooltip: props.mobileView })),
31175
31460
  !props.mobileView && showDesktopMoreButton && (React.createElement(DesktopMoreButton, { disableButtonsForHoldScreen: props.disableButtonsForHoldScreen, styles: commonButtonStyles,
31176
31461
  /*@conditional-compile-remove(PSTN-calls) */
31177
- onClickShowDialpad: props.onClickShowDialpad, callControls: props.callControls, isCaptionsSupported: showCaptionsButton, onCaptionsSettingsClick: openCaptionsSettingsModal, onUserSetOverflowGalleryPositionChange: props.onUserSetOverflowGalleryPositionChange, onUserSetGalleryLayout: props.onUserSetGalleryLayout, userSetGalleryLayout: props.userSetGalleryLayout, dtmfDialerPresent: props.dtmfDialerPresent, onSetDialpadPage: props.onSetDialpadPage })),
31462
+ onClickShowDialpad: props.onClickShowDialpad, callControls: props.callControls, isCaptionsSupported: showCaptionsButton, onCaptionsSettingsClick: openCaptionsSettingsModal, onUserSetOverflowGalleryPositionChange: props.onUserSetOverflowGalleryPositionChange, onUserSetGalleryLayout: props.onUserSetGalleryLayout, userSetGalleryLayout: props.userSetGalleryLayout, dtmfDialerPresent: props.dtmfDialerPresent, onSetDialpadPage: props.onSetDialpadPage,
31463
+ /* @conditional-compile-remove(teams-meeting-conference) */
31464
+ teamsMeetingPhoneCallEnable: showTeamsMeetingPhoneCallButton,
31465
+ /* @conditional-compile-remove(teams-meeting-conference) */
31466
+ onMeetingPhoneInfoClick: toggleTeamsMeetingConferenceModal })),
31178
31467
  React.createElement(EndCall, { displayType: "compact", mobileView: props.mobileView, styles: endCallButtonStyles,
31179
31468
  /* @conditional-compile-remove(end-call-options) */
31180
31469
  enableEndCallMenu: !isBoolean(props.callControls) &&
31181
- !isBoolean((_d = props.callControls) === null || _d === void 0 ? void 0 : _d.endCallButton) &&
31470
+ !isBoolean((_f = props.callControls) === null || _f === void 0 ? void 0 : _f.endCallButton) &&
31182
31471
  !props.mobileView &&
31183
31472
  isHangUpForEveryoneAllowed &&
31184
31473
  !isTeams && // Temporary disable it for Teams call, since capability does not give the right value
31185
- ((_f = (_e = props.callControls) === null || _e === void 0 ? void 0 : _e.endCallButton) === null || _f === void 0 ? void 0 : _f.hangUpForEveryone) === 'endCallOptions' }))))))),
31474
+ ((_h = (_g = props.callControls) === null || _g === void 0 ? void 0 : _g.endCallButton) === null || _h === void 0 ? void 0 : _h.hangUpForEveryone) === 'endCallOptions' }))))))),
31186
31475
  !props.mobileView && sideButtonsPresent && (React.createElement(react.Stack.Item, null,
31187
31476
  React.createElement("div", { ref: sidepaneControlsRef },
31188
31477
  React.createElement(react.Stack, { horizontal: true, className: !props.mobileView ? react.mergeStyles(desktopButtonContainerStyle) : undefined },
@@ -31190,8 +31479,8 @@ const CommonCallControlBar = (props) => {
31190
31479
  ? peopleButtonStrings === null || peopleButtonStrings === void 0 ? void 0 : peopleButtonStrings.tooltipCloseAriaLabel
31191
31480
  : peopleButtonStrings === null || peopleButtonStrings === void 0 ? void 0 : peopleButtonStrings.tooltipOpenAriaLabel, showLabel: options.displayType !== 'compact', onClick: props.onPeopleButtonClicked, "data-ui-id": "common-call-composite-people-button", disabled: props.disableButtonsForLobbyPage ||
31192
31481
  props.disableButtonsForHoldScreen ||
31193
- isDisabled$4(options.peopleButton), strings: peopleButtonStrings, styles: commonButtonStyles, componentRef: props.peopleButtonRef })), (_g = customButtons['secondary']) === null || _g === void 0 ? void 0 :
31194
- _g.slice(0, CUSTOM_BUTTON_OPTIONS.MAX_SECONDARY_DESKTOP_CUSTOM_BUTTONS).map((CustomButton, i) => {
31482
+ isDisabled$4(options.peopleButton), strings: peopleButtonStrings, styles: commonButtonStyles, componentRef: props.peopleButtonRef })), (_j = customButtons['secondary']) === null || _j === void 0 ? void 0 :
31483
+ _j.slice(0, CUSTOM_BUTTON_OPTIONS.MAX_SECONDARY_DESKTOP_CUSTOM_BUTTONS).map((CustomButton, i) => {
31195
31484
  return (React.createElement(CustomButton, { key: `secondary-custom-button-${i}`, styles: commonButtonStyles, showLabel: options.displayType !== 'compact' }));
31196
31485
  }))))))));
31197
31486
  };
@@ -39029,14 +39318,14 @@ const CallWithChatScreen = (props) => {
39029
39318
  participantPane: false,
39030
39319
  /* @conditional-compile-remove(file-sharing-acs) */
39031
39320
  attachmentOptions: props.attachmentOptions,
39032
- /* @conditional-compile-remove(rich-text-editor-composite-support) */
39033
- richTextEditor: props.richTextEditor
39321
+ /* @conditional-compile-remove(rich-text-editor-composite-support) @conditional-compile-remove(rich-text-editor) */
39322
+ richTextEditorOptions: props.richTextEditorOptions
39034
39323
  }, onFetchAvatarPersonaData: props.onFetchAvatarPersonaData })), [
39035
39324
  chatAdapter,
39036
39325
  /* @conditional-compile-remove(file-sharing-acs) */
39037
39326
  props.attachmentOptions,
39038
39327
  props.onFetchAvatarPersonaData,
39039
- /* @conditional-compile-remove(rich-text-editor-composite-support) */ props.richTextEditor,
39328
+ /* @conditional-compile-remove(rich-text-editor-composite-support) */ props.richTextEditorOptions,
39040
39329
  theme
39041
39330
  ]);
39042
39331
  const sidePaneHeaderRenderer = React.useCallback(() => {
@@ -40711,4 +41000,4 @@ exports.useTeamsCall = useTeamsCall;
40711
41000
  exports.useTeamsCallAdapter = useTeamsCallAdapter;
40712
41001
  exports.useTeamsCallAgent = useTeamsCallAgent;
40713
41002
  exports.useTheme = useTheme;
40714
- //# sourceMappingURL=index-B4rHuheV.js.map
41003
+ //# sourceMappingURL=index-DU2Ijnbn.js.map