@azure/communication-react 1.30.0-alpha-202507180020 → 1.30.0-alpha-202507230020

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 (25) hide show
  1. package/dist/communication-react.d.ts +2 -2
  2. package/dist/dist-cjs/communication-react/{ChatMessageComponentAsRichTextEditBox-BveMPJNM.js → ChatMessageComponentAsRichTextEditBox-BLkeEVpU.js} +2 -2
  3. package/dist/dist-cjs/communication-react/{ChatMessageComponentAsRichTextEditBox-BveMPJNM.js.map → ChatMessageComponentAsRichTextEditBox-BLkeEVpU.js.map} +1 -1
  4. package/dist/dist-cjs/communication-react/{RichTextSendBoxWrapper-BzNEIkLz.js → RichTextSendBoxWrapper-D02HH6FD.js} +2 -2
  5. package/dist/dist-cjs/communication-react/{RichTextSendBoxWrapper-BzNEIkLz.js.map → RichTextSendBoxWrapper-D02HH6FD.js.map} +1 -1
  6. package/dist/dist-cjs/communication-react/{index-DpimezMw.js → index-6oa3rQt8.js} +145 -88
  7. package/dist/dist-cjs/communication-react/index-6oa3rQt8.js.map +1 -0
  8. package/dist/dist-cjs/communication-react/index.js +1 -1
  9. package/dist/dist-esm/acs-ui-common/src/telemetryVersion.js +1 -1
  10. package/dist/dist-esm/acs-ui-common/src/telemetryVersion.js.map +1 -1
  11. package/dist/dist-esm/chat-stateful-client/src/ChatClientState.d.ts +1 -1
  12. package/dist/dist-esm/chat-stateful-client/src/ChatClientState.js.map +1 -1
  13. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/AzureCommunicationCallAdapter.d.ts +2 -2
  14. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/AzureCommunicationCallAdapter.js.map +1 -1
  15. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/CallWithChatAdapter.d.ts +1 -1
  16. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/CallWithChatAdapter.js.map +1 -1
  17. package/dist/dist-esm/react-composites/src/composites/common/AudioProvider.js +18 -0
  18. package/dist/dist-esm/react-composites/src/composites/common/AudioProvider.js.map +1 -1
  19. package/dist/dist-esm/react-composites/src/composites/common/BaseComposite.js +18 -1
  20. package/dist/dist-esm/react-composites/src/composites/common/BaseComposite.js.map +1 -1
  21. package/dist/dist-esm/react-composites/src/composites/common/logger.d.ts +20 -0
  22. package/dist/dist-esm/react-composites/src/composites/common/logger.js +27 -0
  23. package/dist/dist-esm/react-composites/src/composites/common/logger.js.map +1 -0
  24. package/package.json +1 -1
  25. package/dist/dist-cjs/communication-react/index-DpimezMw.js.map +0 -1
@@ -187,7 +187,7 @@ function getDefaultExportFromCjs (x) {
187
187
  // Copyright (c) Microsoft Corporation.
188
188
  // Licensed under the MIT License.
189
189
  // GENERATED FILE. DO NOT EDIT MANUALLY.
190
- var telemetryVersion = '1.30.0-alpha-202507180020';
190
+ var telemetryVersion = '1.30.0-alpha-202507230020';
191
191
 
192
192
 
193
193
  var telemetryVersion$1 = /*@__PURE__*/getDefaultExportFromCjs(telemetryVersion);
@@ -2644,7 +2644,7 @@ const callingStatefulLogger = logger.createClientLogger('communication-react:cal
2644
2644
  /**
2645
2645
  * @private
2646
2646
  */
2647
- var EventNames;
2647
+ var EventNames$1;
2648
2648
  (function (EventNames) {
2649
2649
  // Info
2650
2650
  EventNames["VIEW_RENDER_SUCCEED"] = "VIEW_RENDER_SUCCEED";
@@ -2666,7 +2666,7 @@ var EventNames;
2666
2666
  EventNames["DISPOSE_INFO_NOT_FOUND"] = "DISPOSE_INFO_NOT_FOUND";
2667
2667
  EventNames["RENDERER_NOT_FOUND"] = "RENDERER_NOT_FOUND";
2668
2668
  EventNames["CREATE_STREAM_FAIL"] = "CREATE_STREAM_FAIL";
2669
- })(EventNames || (EventNames = {}));
2669
+ })(EventNames$1 || (EventNames$1 = {}));
2670
2670
 
2671
2671
  // Copyright (c) Microsoft Corporation.
2672
2672
  // Licensed under the MIT License.
@@ -4268,57 +4268,57 @@ class RemoteVideoStreamSubscriber {
4268
4268
  */
4269
4269
  function _logDisposeStreamEvent(eventName, streamLogInfo) {
4270
4270
  switch (eventName) {
4271
- case EventNames.DISPOSE_STREAM_INVALID_PARAMS:
4271
+ case EventNames$1.DISPOSE_STREAM_INVALID_PARAMS:
4272
4272
  _logEvent(callingStatefulLogger, {
4273
- name: EventNames.DISPOSE_STREAM_INVALID_PARAMS,
4273
+ name: EventNames$1.DISPOSE_STREAM_INVALID_PARAMS,
4274
4274
  level: 'warning',
4275
4275
  message: 'Dispose View invalid combination of parameters.',
4276
4276
  data: { streamType: streamLogInfo.streamType }
4277
4277
  });
4278
4278
  return;
4279
- case EventNames.START_DISPOSE_STREAM:
4279
+ case EventNames$1.START_DISPOSE_STREAM:
4280
4280
  _logEvent(callingStatefulLogger, {
4281
- name: EventNames.START_DISPOSE_STREAM,
4281
+ name: EventNames$1.START_DISPOSE_STREAM,
4282
4282
  level: 'info',
4283
4283
  message: 'Start disposing stream.',
4284
4284
  data: streamLogInfo
4285
4285
  });
4286
4286
  return;
4287
- case EventNames.DISPOSE_INFO_NOT_FOUND:
4287
+ case EventNames$1.DISPOSE_INFO_NOT_FOUND:
4288
4288
  _logEvent(callingStatefulLogger, {
4289
- name: EventNames.DISPOSE_INFO_NOT_FOUND,
4289
+ name: EventNames$1.DISPOSE_INFO_NOT_FOUND,
4290
4290
  level: 'error',
4291
4291
  message: 'Cannot find render info when disposing stream.',
4292
4292
  data: streamLogInfo
4293
4293
  });
4294
4294
  return;
4295
- case EventNames.STREAM_STOPPING:
4295
+ case EventNames$1.STREAM_STOPPING:
4296
4296
  _logEvent(callingStatefulLogger, {
4297
- name: EventNames.STREAM_STOPPING,
4297
+ name: EventNames$1.STREAM_STOPPING,
4298
4298
  level: 'info',
4299
4299
  message: 'Stream is currently marked as stopping, will continue if is local preview',
4300
4300
  data: streamLogInfo
4301
4301
  });
4302
4302
  return;
4303
- case EventNames.DISPOSING_RENDERER:
4303
+ case EventNames$1.DISPOSING_RENDERER:
4304
4304
  _logEvent(callingStatefulLogger, {
4305
- name: EventNames.DISPOSING_RENDERER,
4305
+ name: EventNames$1.DISPOSING_RENDERER,
4306
4306
  level: 'info',
4307
4307
  message: 'Disposing view renderer.',
4308
4308
  data: streamLogInfo
4309
4309
  });
4310
4310
  return;
4311
- case EventNames.RENDERER_NOT_FOUND:
4311
+ case EventNames$1.RENDERER_NOT_FOUND:
4312
4312
  _logEvent(callingStatefulLogger, {
4313
- name: EventNames.RENDERER_NOT_FOUND,
4313
+ name: EventNames$1.RENDERER_NOT_FOUND,
4314
4314
  level: 'error',
4315
4315
  message: 'Cannot find renderer when disposing stream.',
4316
4316
  data: streamLogInfo
4317
4317
  });
4318
4318
  return;
4319
- case EventNames.STREAM_ALREADY_DISPOSED:
4319
+ case EventNames$1.STREAM_ALREADY_DISPOSED:
4320
4320
  _logEvent(callingStatefulLogger, {
4321
- name: EventNames.STREAM_ALREADY_DISPOSED,
4321
+ name: EventNames$1.STREAM_ALREADY_DISPOSED,
4322
4322
  level: 'info',
4323
4323
  message: 'Stream is already disposed.',
4324
4324
  data: streamLogInfo
@@ -4338,57 +4338,57 @@ function _logDisposeStreamEvent(eventName, streamLogInfo) {
4338
4338
  */
4339
4339
  function _logCreateStreamEvent(eventName, streamLogInfo, error) {
4340
4340
  switch (eventName) {
4341
- case EventNames.CREATE_STREAM_INVALID_PARAMS:
4341
+ case EventNames$1.CREATE_STREAM_INVALID_PARAMS:
4342
4342
  _logEvent(callingStatefulLogger, {
4343
- name: EventNames.CREATE_STREAM_INVALID_PARAMS,
4343
+ name: EventNames$1.CREATE_STREAM_INVALID_PARAMS,
4344
4344
  level: 'warning',
4345
4345
  message: 'Create View invalid combination of parameters.',
4346
4346
  data: { streamType: streamLogInfo.streamType }
4347
4347
  });
4348
4348
  return;
4349
- case EventNames.START_STREAM_RENDERING:
4349
+ case EventNames$1.START_STREAM_RENDERING:
4350
4350
  _logEvent(callingStatefulLogger, {
4351
- name: EventNames.START_STREAM_RENDERING,
4351
+ name: EventNames$1.START_STREAM_RENDERING,
4352
4352
  level: 'info',
4353
4353
  message: 'Start creating view for local video.',
4354
4354
  data: streamLogInfo
4355
4355
  });
4356
4356
  return;
4357
- case EventNames.STREAM_NOT_FOUND:
4357
+ case EventNames$1.STREAM_NOT_FOUND:
4358
4358
  _logEvent(callingStatefulLogger, {
4359
- name: EventNames.STREAM_NOT_FOUND,
4359
+ name: EventNames$1.STREAM_NOT_FOUND,
4360
4360
  level: 'error',
4361
4361
  message: 'Stream not found in state.',
4362
4362
  data: { callId: streamLogInfo.callId }
4363
4363
  });
4364
4364
  return;
4365
- case EventNames.STREAM_ALREADY_RENDERED:
4365
+ case EventNames$1.STREAM_ALREADY_RENDERED:
4366
4366
  _logEvent(callingStatefulLogger, {
4367
- name: EventNames.STREAM_ALREADY_RENDERED,
4367
+ name: EventNames$1.STREAM_ALREADY_RENDERED,
4368
4368
  level: 'warning',
4369
4369
  message: 'Stream is already rendered.',
4370
4370
  data: streamLogInfo
4371
4371
  });
4372
4372
  return;
4373
- case EventNames.STREAM_RENDERING:
4373
+ case EventNames$1.STREAM_RENDERING:
4374
4374
  _logEvent(callingStatefulLogger, {
4375
- name: EventNames.STREAM_RENDERING,
4375
+ name: EventNames$1.STREAM_RENDERING,
4376
4376
  level: 'warning',
4377
4377
  message: 'Stream is rendering.',
4378
4378
  data: streamLogInfo
4379
4379
  });
4380
4380
  return;
4381
- case EventNames.STREAM_STOPPING:
4381
+ case EventNames$1.STREAM_STOPPING:
4382
4382
  _logEvent(callingStatefulLogger, {
4383
- name: EventNames.STREAM_STOPPING,
4383
+ name: EventNames$1.STREAM_STOPPING,
4384
4384
  level: 'warning',
4385
4385
  message: 'Stream was marked as stopping by dispose view. Resetting state to "Rendering".',
4386
4386
  data: streamLogInfo
4387
4387
  });
4388
4388
  return;
4389
- case EventNames.CREATE_STREAM_FAIL:
4389
+ case EventNames$1.CREATE_STREAM_FAIL:
4390
4390
  _logEvent(callingStatefulLogger, {
4391
- name: EventNames.CREATE_STREAM_FAIL,
4391
+ name: EventNames$1.CREATE_STREAM_FAIL,
4392
4392
  level: 'error',
4393
4393
  message: 'Failed to create view.',
4394
4394
  data: {
@@ -4398,33 +4398,33 @@ function _logCreateStreamEvent(eventName, streamLogInfo, error) {
4398
4398
  }
4399
4399
  });
4400
4400
  return;
4401
- case EventNames.RENDER_INFO_NOT_FOUND:
4401
+ case EventNames$1.RENDER_INFO_NOT_FOUND:
4402
4402
  _logEvent(callingStatefulLogger, {
4403
- name: EventNames.RENDER_INFO_NOT_FOUND,
4403
+ name: EventNames$1.RENDER_INFO_NOT_FOUND,
4404
4404
  level: 'error',
4405
4405
  message: 'Cannot find render info after create the view. ',
4406
4406
  data: streamLogInfo
4407
4407
  });
4408
4408
  return;
4409
- case EventNames.CREATED_STREAM_STOPPING:
4409
+ case EventNames$1.CREATED_STREAM_STOPPING:
4410
4410
  _logEvent(callingStatefulLogger, {
4411
- name: EventNames.CREATED_STREAM_STOPPING,
4411
+ name: EventNames$1.CREATED_STREAM_STOPPING,
4412
4412
  level: 'warning',
4413
4413
  message: 'Render info status is stopping, dispose renderer.',
4414
4414
  data: streamLogInfo
4415
4415
  });
4416
4416
  return;
4417
- case EventNames.VIEW_RENDER_SUCCEED:
4417
+ case EventNames$1.VIEW_RENDER_SUCCEED:
4418
4418
  _logEvent(callingStatefulLogger, {
4419
- name: EventNames.VIEW_RENDER_SUCCEED,
4419
+ name: EventNames$1.VIEW_RENDER_SUCCEED,
4420
4420
  level: 'info',
4421
4421
  message: `Successfully render the view.`,
4422
4422
  data: streamLogInfo
4423
4423
  });
4424
4424
  return;
4425
- case EventNames.CREATING_VIEW:
4425
+ case EventNames$1.CREATING_VIEW:
4426
4426
  _logEvent(callingStatefulLogger, {
4427
- name: EventNames.CREATING_VIEW,
4427
+ name: EventNames$1.CREATING_VIEW,
4428
4428
  level: 'info',
4429
4429
  message: 'Start creating view for remote video.',
4430
4430
  data: streamLogInfo
@@ -4496,34 +4496,34 @@ function createViewVideo(context, internalContext, callId, stream, participantId
4496
4496
  streamEventType
4497
4497
  };
4498
4498
  // make different logging announcement based on whether or not we are starting a local or remote
4499
- _logStreamEvent(EventNames.CREATING_VIEW, streamLogInfo);
4499
+ _logStreamEvent(EventNames$1.CREATING_VIEW, streamLogInfo);
4500
4500
  // if we have a participant Id and a stream get the remote info, else get the local render info from state.
4501
4501
  const renderInfo = streamEventType === 'createViewRemote' && participantKey
4502
4502
  ? internalContext.getRemoteRenderInfoForParticipant(callId, participantKey, remoteStreamId)
4503
4503
  : internalContext.getLocalRenderInfo(callId, localStreamKey);
4504
4504
  if (!renderInfo) {
4505
- _logStreamEvent(EventNames.STREAM_NOT_FOUND, streamLogInfo);
4505
+ _logStreamEvent(EventNames$1.STREAM_NOT_FOUND, streamLogInfo);
4506
4506
  return;
4507
4507
  }
4508
4508
  if (renderInfo.status === 'Rendered') {
4509
- _logStreamEvent(EventNames.STREAM_ALREADY_RENDERED, streamLogInfo);
4509
+ _logStreamEvent(EventNames$1.STREAM_ALREADY_RENDERED, streamLogInfo);
4510
4510
  return;
4511
4511
  }
4512
4512
  if (renderInfo.status === 'Rendering') {
4513
4513
  // Do not log to console here as this is a very common situation due to UI rerenders while
4514
4514
  // the video rendering is in progress.
4515
- _logStreamEvent(EventNames.STREAM_RENDERING, streamLogInfo);
4515
+ _logStreamEvent(EventNames$1.STREAM_RENDERING, streamLogInfo);
4516
4516
  return;
4517
4517
  }
4518
4518
  // "Stopping" only happens if the stream was in "rendering" but `disposeView` was called.
4519
4519
  // Now that `createView` has been re-called, we can flip the state back to "rendering".
4520
4520
  if (renderInfo.status === 'Stopping') {
4521
4521
  if (streamEventType === 'createViewRemote' && participantKey) {
4522
- _logStreamEvent(EventNames.STREAM_STOPPING, streamLogInfo);
4522
+ _logStreamEvent(EventNames$1.STREAM_STOPPING, streamLogInfo);
4523
4523
  internalContext.setRemoteRenderInfo(callId, participantKey, remoteStreamId, renderInfo.stream, 'Rendering', renderInfo.renderer);
4524
4524
  }
4525
4525
  else if (streamEventType === 'createViewLocal') {
4526
- _logStreamEvent(EventNames.STREAM_STOPPING, streamLogInfo);
4526
+ _logStreamEvent(EventNames$1.STREAM_STOPPING, streamLogInfo);
4527
4527
  internalContext.setLocalRenderInfo(callId, localStreamKey, renderInfo.stream, 'Rendering', renderInfo.renderer);
4528
4528
  }
4529
4529
  return;
@@ -4541,11 +4541,11 @@ function createViewVideo(context, internalContext, callId, stream, participantId
4541
4541
  }
4542
4542
  catch (e) {
4543
4543
  if (streamEventType === 'createViewRemote' && participantKey) {
4544
- _logStreamEvent(EventNames.CREATE_STREAM_FAIL, streamLogInfo);
4544
+ _logStreamEvent(EventNames$1.CREATE_STREAM_FAIL, streamLogInfo);
4545
4545
  internalContext.setRemoteRenderInfo(callId, participantKey, remoteStreamId, renderInfo.stream, 'NotRendered', undefined);
4546
4546
  }
4547
4547
  else if (streamEventType === 'createViewLocal') {
4548
- _logStreamEvent(EventNames.CREATE_STREAM_FAIL, streamLogInfo, e);
4548
+ _logStreamEvent(EventNames$1.CREATE_STREAM_FAIL, streamLogInfo, e);
4549
4549
  internalContext.setLocalRenderInfo(callId, localStreamKey, renderInfo.stream, 'NotRendered', undefined);
4550
4550
  }
4551
4551
  throw e;
@@ -4558,7 +4558,7 @@ function createViewVideo(context, internalContext, callId, stream, participantId
4558
4558
  if (!refreshedRenderInfo) {
4559
4559
  // RenderInfo was removed. This should not happen unless stream was removed from the call so dispose the renderer
4560
4560
  // and clean up the state.
4561
- _logStreamEvent(EventNames.RENDER_INFO_NOT_FOUND, streamLogInfo);
4561
+ _logStreamEvent(EventNames$1.RENDER_INFO_NOT_FOUND, streamLogInfo);
4562
4562
  renderer.dispose();
4563
4563
  if (streamEventType === 'createViewRemote' && participantKey) {
4564
4564
  context.setRemoteVideoStreamRendererView(callId, participantKey, remoteStreamId, undefined);
@@ -4571,7 +4571,7 @@ function createViewVideo(context, internalContext, callId, stream, participantId
4571
4571
  if (refreshedRenderInfo.status === 'Stopping') {
4572
4572
  // Stop render was called on this stream after we had started rendering. We will dispose this view and do not
4573
4573
  // put the view into the state.
4574
- _logStreamEvent(EventNames.CREATED_STREAM_STOPPING, streamLogInfo);
4574
+ _logStreamEvent(EventNames$1.CREATED_STREAM_STOPPING, streamLogInfo);
4575
4575
  renderer.dispose();
4576
4576
  if (streamEventType === 'createViewRemote' && participantKey) {
4577
4577
  internalContext.setRemoteRenderInfo(callId, participantKey, remoteStreamId, refreshedRenderInfo.stream, 'NotRendered', undefined);
@@ -4588,12 +4588,12 @@ function createViewVideo(context, internalContext, callId, stream, participantId
4588
4588
  if (streamEventType === 'createViewRemote' && participantKey) {
4589
4589
  internalContext.setRemoteRenderInfo(callId, participantKey, remoteStreamId, refreshedRenderInfo.stream, 'Rendered', renderer);
4590
4590
  context.setRemoteVideoStreamRendererView(callId, participantKey, remoteStreamId, convertFromSDKToDeclarativeVideoStreamRendererView(view));
4591
- _logStreamEvent(EventNames.VIEW_RENDER_SUCCEED, streamLogInfo);
4591
+ _logStreamEvent(EventNames$1.VIEW_RENDER_SUCCEED, streamLogInfo);
4592
4592
  }
4593
4593
  else if (streamEventType === 'createViewLocal') {
4594
4594
  internalContext.setLocalRenderInfo(callId, localStreamKey, refreshedRenderInfo.stream, 'Rendered', renderer);
4595
4595
  context.setLocalVideoStreamRendererView(callId, localStreamKey, convertFromSDKToDeclarativeVideoStreamRendererView(view));
4596
- _logStreamEvent(EventNames.VIEW_RENDER_SUCCEED, streamLogInfo);
4596
+ _logStreamEvent(EventNames$1.VIEW_RENDER_SUCCEED, streamLogInfo);
4597
4597
  }
4598
4598
  return {
4599
4599
  renderer,
@@ -4685,7 +4685,7 @@ function disposeViewVideo(context, internalContext, callId, stream, participantI
4685
4685
  : toFlatCommunicationIdentifier(participantId)
4686
4686
  : undefined;
4687
4687
  const streamLogInfo = { callId, participantKey, streamId: remoteStreamId !== null && remoteStreamId !== void 0 ? remoteStreamId : localStreamKey, streamType };
4688
- _logStreamEvent(EventNames.START_DISPOSE_STREAM, streamLogInfo);
4688
+ _logStreamEvent(EventNames$1.START_DISPOSE_STREAM, streamLogInfo);
4689
4689
  if (streamEventType === 'disposeViewRemote' && participantKey) {
4690
4690
  context.setRemoteVideoStreamRendererView(callId, participantKey, remoteStreamId, undefined);
4691
4691
  }
@@ -4693,26 +4693,26 @@ function disposeViewVideo(context, internalContext, callId, stream, participantI
4693
4693
  ? internalContext.getRemoteRenderInfoForParticipant(callId, participantKey, remoteStreamId)
4694
4694
  : internalContext.getLocalRenderInfo(callId, localStreamKey);
4695
4695
  if (!renderInfo) {
4696
- _logStreamEvent(EventNames.DISPOSE_INFO_NOT_FOUND, streamLogInfo);
4696
+ _logStreamEvent(EventNames$1.DISPOSE_INFO_NOT_FOUND, streamLogInfo);
4697
4697
  return;
4698
4698
  }
4699
4699
  // Nothing to dispose of or clean up -- we can safely exit early here.
4700
4700
  if (renderInfo.status === 'NotRendered') {
4701
- _logStreamEvent(EventNames.STREAM_ALREADY_DISPOSED, streamLogInfo);
4701
+ _logStreamEvent(EventNames$1.STREAM_ALREADY_DISPOSED, streamLogInfo);
4702
4702
  return;
4703
4703
  }
4704
4704
  // Status is already marked as "stopping" so we can exit early here. This is because stopping only occurs
4705
4705
  // when the stream is being created in createView but hasn't been completed being created yet. The createView
4706
4706
  // method will see the "stopping" status and perform the cleanup
4707
4707
  if (renderInfo.status === 'Stopping') {
4708
- _logStreamEvent(EventNames.STREAM_STOPPING, streamLogInfo);
4708
+ _logStreamEvent(EventNames$1.STREAM_STOPPING, streamLogInfo);
4709
4709
  return;
4710
4710
  }
4711
4711
  // If the stream is in the middle of being rendered (i.e. has state "Rendering"), we need the status as
4712
4712
  // "stopping" without performing any cleanup. This will tell the `createView` method that it should stop
4713
4713
  // rendering and clean up the state once the view has finished being created.
4714
4714
  if (renderInfo.status === 'Rendering') {
4715
- _logStreamEvent(EventNames.STREAM_STOPPING, streamLogInfo);
4715
+ _logStreamEvent(EventNames$1.STREAM_STOPPING, streamLogInfo);
4716
4716
  if (streamEventType === 'disposeViewRemote' && participantKey) {
4717
4717
  internalContext.setRemoteRenderInfo(callId, participantKey, remoteStreamId, renderInfo.stream, 'Stopping', undefined);
4718
4718
  }
@@ -4722,7 +4722,7 @@ function disposeViewVideo(context, internalContext, callId, stream, participantI
4722
4722
  return;
4723
4723
  }
4724
4724
  if (renderInfo.renderer) {
4725
- _logStreamEvent(EventNames.DISPOSING_RENDERER, streamLogInfo);
4725
+ _logStreamEvent(EventNames$1.DISPOSING_RENDERER, streamLogInfo);
4726
4726
  renderInfo.renderer.dispose();
4727
4727
  // Else the state must be in the "Rendered" state, so we can dispose the renderer and clean up the state.
4728
4728
  if (streamEventType === 'disposeViewRemote' && participantKey) {
@@ -4734,32 +4734,32 @@ function disposeViewVideo(context, internalContext, callId, stream, participantI
4734
4734
  }
4735
4735
  }
4736
4736
  else {
4737
- _logStreamEvent(EventNames.RENDERER_NOT_FOUND, streamLogInfo);
4737
+ _logStreamEvent(EventNames$1.RENDERER_NOT_FOUND, streamLogInfo);
4738
4738
  }
4739
4739
  }
4740
4740
  function disposeViewUnparentedVideo(context, internalContext, stream) {
4741
4741
  const streamType = stream.mediaStreamType;
4742
4742
  const streamLogInfo = { streamType, streamEventType: 'disposeViewUnparented' };
4743
- _logStreamEvent(EventNames.START_DISPOSE_STREAM, streamLogInfo);
4743
+ _logStreamEvent(EventNames$1.START_DISPOSE_STREAM, streamLogInfo);
4744
4744
  context.deleteDeviceManagerUnparentedView(stream);
4745
4745
  const renderInfo = internalContext.getUnparentedRenderInfo(stream);
4746
4746
  if (!renderInfo) {
4747
- _logStreamEvent(EventNames.DISPOSE_INFO_NOT_FOUND, streamLogInfo);
4747
+ _logStreamEvent(EventNames$1.DISPOSE_INFO_NOT_FOUND, streamLogInfo);
4748
4748
  return;
4749
4749
  }
4750
4750
  if (renderInfo.status === 'Rendering') {
4751
- _logStreamEvent(EventNames.STREAM_STOPPING, streamLogInfo);
4751
+ _logStreamEvent(EventNames$1.STREAM_STOPPING, streamLogInfo);
4752
4752
  internalContext.setUnparentedRenderInfo(stream, renderInfo.stream, 'Stopping', undefined);
4753
4753
  }
4754
4754
  else {
4755
4755
  internalContext.deleteUnparentedRenderInfo(stream);
4756
4756
  }
4757
4757
  if (renderInfo.renderer) {
4758
- _logStreamEvent(EventNames.DISPOSING_RENDERER, streamLogInfo);
4758
+ _logStreamEvent(EventNames$1.DISPOSING_RENDERER, streamLogInfo);
4759
4759
  renderInfo.renderer.dispose();
4760
4760
  }
4761
4761
  else {
4762
- _logStreamEvent(EventNames.RENDERER_NOT_FOUND, streamLogInfo);
4762
+ _logStreamEvent(EventNames$1.RENDERER_NOT_FOUND, streamLogInfo);
4763
4763
  }
4764
4764
  }
4765
4765
  /**
@@ -4777,7 +4777,7 @@ function createView$1(context, internalContext, callId, participantId, stream, o
4777
4777
  return context.withAsyncErrorTeedToState(() => __awaiter$_(this, void 0, void 0, function* () { return yield createViewUnparentedVideo(context, internalContext, stream, options); }), 'Call.startVideo')();
4778
4778
  }
4779
4779
  else {
4780
- _logStreamEvent(EventNames.CREATE_STREAM_INVALID_PARAMS, { streamType });
4780
+ _logStreamEvent(EventNames$1.CREATE_STREAM_INVALID_PARAMS, { streamType });
4781
4781
  return Promise.resolve(undefined);
4782
4782
  }
4783
4783
  }
@@ -4796,7 +4796,7 @@ function disposeView$1(context, internalContext, callId, participantId, stream)
4796
4796
  context.withErrorTeedToState(() => disposeViewUnparentedVideo(context, internalContext, stream), 'Call.stopVideo')();
4797
4797
  }
4798
4798
  else {
4799
- _logStreamEvent(EventNames.DISPOSE_STREAM_INVALID_PARAMS, { streamType });
4799
+ _logStreamEvent(EventNames$1.DISPOSE_STREAM_INVALID_PARAMS, { streamType });
4800
4800
  return;
4801
4801
  }
4802
4802
  }
@@ -7025,7 +7025,7 @@ function createView(context, internalContext, callId, stream, options) {
7025
7025
  return createCallFeatureViewVideo(context, internalContext, callId, stream, options);
7026
7026
  }
7027
7027
  else {
7028
- _logStreamEvent(EventNames.CREATE_STREAM_INVALID_PARAMS, { streamType });
7028
+ _logStreamEvent(EventNames$1.CREATE_STREAM_INVALID_PARAMS, { streamType });
7029
7029
  return Promise.resolve(undefined);
7030
7030
  }
7031
7031
  }
@@ -7043,28 +7043,28 @@ function createCallFeatureViewVideo(context, internalContext, callId, stream, op
7043
7043
  streamEventType
7044
7044
  };
7045
7045
  // make different logging announcement based on whether or not we are starting a local or remote
7046
- _logStreamEvent(EventNames.CREATING_VIEW, streamLogInfo);
7046
+ _logStreamEvent(EventNames$1.CREATING_VIEW, streamLogInfo);
7047
7047
  const featureName = getStreamFeatureName(stream);
7048
7048
  // if we have a participant Id and a stream get the remote info, else get the local render info from state.
7049
7049
  const renderInfo = internalContext.getCallFeatureRenderInfo(callId, featureName, stream.mediaStreamType);
7050
7050
  if (!renderInfo) {
7051
- _logStreamEvent(EventNames.STREAM_NOT_FOUND, streamLogInfo);
7051
+ _logStreamEvent(EventNames$1.STREAM_NOT_FOUND, streamLogInfo);
7052
7052
  return;
7053
7053
  }
7054
7054
  if (renderInfo.status === 'Rendered') {
7055
- _logStreamEvent(EventNames.STREAM_ALREADY_RENDERED, streamLogInfo);
7055
+ _logStreamEvent(EventNames$1.STREAM_ALREADY_RENDERED, streamLogInfo);
7056
7056
  return;
7057
7057
  }
7058
7058
  if (renderInfo.status === 'Rendering') {
7059
7059
  // Do not log to console here as this is a very common situation due to UI rerenders while
7060
7060
  // the video rendering is in progress.
7061
- _logStreamEvent(EventNames.STREAM_RENDERING, streamLogInfo);
7061
+ _logStreamEvent(EventNames$1.STREAM_RENDERING, streamLogInfo);
7062
7062
  return;
7063
7063
  }
7064
7064
  // "Stopping" only happens if the stream was in "rendering" but `disposeView` was called.
7065
7065
  // Now that `createView` has been re-called, we can flip the state back to "rendering".
7066
7066
  if (renderInfo.status === 'Stopping') {
7067
- _logStreamEvent(EventNames.STREAM_STOPPING, streamLogInfo);
7067
+ _logStreamEvent(EventNames$1.STREAM_STOPPING, streamLogInfo);
7068
7068
  internalContext.setCallFeatureRenderInfo(callId, featureName, stream.mediaStreamType, renderInfo.stream, 'Rendering', renderInfo.renderer);
7069
7069
  return;
7070
7070
  }
@@ -7075,7 +7075,7 @@ function createCallFeatureViewVideo(context, internalContext, callId, stream, op
7075
7075
  view = yield renderer.createView(options);
7076
7076
  }
7077
7077
  catch (e) {
7078
- _logStreamEvent(EventNames.CREATE_STREAM_FAIL, streamLogInfo, e);
7078
+ _logStreamEvent(EventNames$1.CREATE_STREAM_FAIL, streamLogInfo, e);
7079
7079
  internalContext.setCallFeatureRenderInfo(callId, featureName, stream.mediaStreamType, renderInfo.stream, 'NotRendered', undefined);
7080
7080
  throw e;
7081
7081
  }
@@ -7085,7 +7085,7 @@ function createCallFeatureViewVideo(context, internalContext, callId, stream, op
7085
7085
  if (!refreshedRenderInfo) {
7086
7086
  // RenderInfo was removed. This should not happen unless stream was removed from the call so dispose the renderer
7087
7087
  // and clean up the state.
7088
- _logStreamEvent(EventNames.RENDER_INFO_NOT_FOUND, streamLogInfo);
7088
+ _logStreamEvent(EventNames$1.RENDER_INFO_NOT_FOUND, streamLogInfo);
7089
7089
  renderer.dispose();
7090
7090
  setCallFeatureVideoRendererView(callId, featureName, context, stream.mediaStreamType, undefined);
7091
7091
  return;
@@ -7093,7 +7093,7 @@ function createCallFeatureViewVideo(context, internalContext, callId, stream, op
7093
7093
  if (refreshedRenderInfo.status === 'Stopping') {
7094
7094
  // Stop render was called on this stream after we had started rendering. We will dispose this view and do not
7095
7095
  // put the view into the state.
7096
- _logStreamEvent(EventNames.CREATED_STREAM_STOPPING, streamLogInfo);
7096
+ _logStreamEvent(EventNames$1.CREATED_STREAM_STOPPING, streamLogInfo);
7097
7097
  renderer.dispose();
7098
7098
  internalContext.setCallFeatureRenderInfo(callId, featureName, stream.mediaStreamType, refreshedRenderInfo.stream, 'NotRendered', undefined);
7099
7099
  setCallFeatureVideoRendererView(callId, featureName, context, stream.mediaStreamType, undefined);
@@ -7103,7 +7103,7 @@ function createCallFeatureViewVideo(context, internalContext, callId, stream, op
7103
7103
  // updating the state.
7104
7104
  internalContext.setCallFeatureRenderInfo(callId, featureName, stream.mediaStreamType, refreshedRenderInfo.stream, 'Rendered', renderer);
7105
7105
  setCallFeatureVideoRendererView(callId, featureName, context, stream.mediaStreamType, convertFromSDKToDeclarativeVideoStreamRendererView(view));
7106
- _logStreamEvent(EventNames.VIEW_RENDER_SUCCEED, streamLogInfo);
7106
+ _logStreamEvent(EventNames$1.VIEW_RENDER_SUCCEED, streamLogInfo);
7107
7107
  return {
7108
7108
  renderer,
7109
7109
  view
@@ -7119,7 +7119,7 @@ function disposeView(context, internalContext, callId, stream) {
7119
7119
  return disposeCallFeatureViewVideo(context, internalContext, callId, stream);
7120
7120
  }
7121
7121
  else {
7122
- _logStreamEvent(EventNames.DISPOSE_STREAM_INVALID_PARAMS, { streamType });
7122
+ _logStreamEvent(EventNames$1.DISPOSE_STREAM_INVALID_PARAMS, { streamType });
7123
7123
  return;
7124
7124
  }
7125
7125
  }
@@ -7130,45 +7130,45 @@ function disposeCallFeatureViewVideo(context, internalContext, callId, stream) {
7130
7130
  const streamType = stream.mediaStreamType;
7131
7131
  const callFeatureStreamId = stream && stream.id;
7132
7132
  const streamLogInfo = { callId, undefined, streamId: callFeatureStreamId, streamType };
7133
- _logStreamEvent(EventNames.START_DISPOSE_STREAM, streamLogInfo);
7133
+ _logStreamEvent(EventNames$1.START_DISPOSE_STREAM, streamLogInfo);
7134
7134
  const featureName = getStreamFeatureName(stream);
7135
7135
  {
7136
7136
  setCallFeatureVideoRendererView(callId, featureName, context, streamType, undefined);
7137
7137
  }
7138
7138
  const renderInfo = internalContext.getCallFeatureRenderInfo(callId, featureName, stream.mediaStreamType);
7139
7139
  if (!renderInfo) {
7140
- _logStreamEvent(EventNames.DISPOSE_INFO_NOT_FOUND, streamLogInfo);
7140
+ _logStreamEvent(EventNames$1.DISPOSE_INFO_NOT_FOUND, streamLogInfo);
7141
7141
  return;
7142
7142
  }
7143
7143
  // Nothing to dispose of or clean up -- we can safely exit early here.
7144
7144
  if (renderInfo.status === 'NotRendered') {
7145
- _logStreamEvent(EventNames.STREAM_ALREADY_DISPOSED, streamLogInfo);
7145
+ _logStreamEvent(EventNames$1.STREAM_ALREADY_DISPOSED, streamLogInfo);
7146
7146
  return;
7147
7147
  }
7148
7148
  // Status is already marked as "stopping" so we can exit early here. This is because stopping only occurs
7149
7149
  // when the stream is being created in createView but hasn't been completed being created yet. The createView
7150
7150
  // method will see the "stopping" status and perform the cleanup
7151
7151
  if (renderInfo.status === 'Stopping') {
7152
- _logStreamEvent(EventNames.STREAM_STOPPING, streamLogInfo);
7152
+ _logStreamEvent(EventNames$1.STREAM_STOPPING, streamLogInfo);
7153
7153
  return;
7154
7154
  }
7155
7155
  // If the stream is in the middle of being rendered (i.e. has state "Rendering"), we need the status as
7156
7156
  // "stopping" without performing any cleanup. This will tell the `createView` method that it should stop
7157
7157
  // rendering and clean up the state once the view has finished being created.
7158
7158
  if (renderInfo.status === 'Rendering') {
7159
- _logStreamEvent(EventNames.STREAM_STOPPING, streamLogInfo);
7159
+ _logStreamEvent(EventNames$1.STREAM_STOPPING, streamLogInfo);
7160
7160
  internalContext.setCallFeatureRenderInfo(callId, featureName, streamType, renderInfo.stream, 'Stopping', renderInfo.renderer);
7161
7161
  return;
7162
7162
  }
7163
7163
  if (renderInfo.renderer) {
7164
- _logStreamEvent(EventNames.DISPOSING_RENDERER, streamLogInfo);
7164
+ _logStreamEvent(EventNames$1.DISPOSING_RENDERER, streamLogInfo);
7165
7165
  renderInfo.renderer.dispose();
7166
7166
  // Else the state must be in the "Rendered" state, so we can dispose the renderer and clean up the state.
7167
7167
  internalContext.setCallFeatureRenderInfo(callId, featureName, streamType, renderInfo.stream, 'NotRendered', undefined);
7168
7168
  setCallFeatureVideoRendererView(callId, featureName, context, streamType, undefined);
7169
7169
  }
7170
7170
  else {
7171
- _logStreamEvent(EventNames.RENDERER_NOT_FOUND, streamLogInfo);
7171
+ _logStreamEvent(EventNames$1.RENDERER_NOT_FOUND, streamLogInfo);
7172
7172
  }
7173
7173
  }
7174
7174
  /**
@@ -16429,7 +16429,7 @@ class _ErrorBoundary extends React.Component {
16429
16429
  // Copyright (c) Microsoft Corporation.
16430
16430
  // Licensed under the MIT License.
16431
16431
  /* @conditional-compile-remove(rich-text-editor) */
16432
- const ChatMessageComponentAsRichTextEditBox = React.lazy(() => Promise.resolve().then(function () { return require('./ChatMessageComponentAsRichTextEditBox-BveMPJNM.js'); }));
16432
+ const ChatMessageComponentAsRichTextEditBox = React.lazy(() => Promise.resolve().then(function () { return require('./ChatMessageComponentAsRichTextEditBox-BLkeEVpU.js'); }));
16433
16433
  /**
16434
16434
  * @private
16435
16435
  * Use this function to load RoosterJS dependencies early in the lifecycle.
@@ -16437,7 +16437,7 @@ const ChatMessageComponentAsRichTextEditBox = React.lazy(() => Promise.resolve()
16437
16437
  *
16438
16438
  * @conditional-compile-remove(rich-text-editor)
16439
16439
  */
16440
- const loadChatMessageComponentAsRichTextEditBox = () => Promise.resolve().then(function () { return require('./ChatMessageComponentAsRichTextEditBox-BveMPJNM.js'); });
16440
+ const loadChatMessageComponentAsRichTextEditBox = () => Promise.resolve().then(function () { return require('./ChatMessageComponentAsRichTextEditBox-BLkeEVpU.js'); });
16441
16441
  /**
16442
16442
  * @private
16443
16443
  */
@@ -31541,6 +31541,32 @@ const globalLayerHostStyle = {
31541
31541
  visibility: 'hidden'
31542
31542
  };
31543
31543
 
31544
+ // Copyright (c) Microsoft Corporation.
31545
+ // Licensed under the MIT License.
31546
+ /**
31547
+ * @private
31548
+ */
31549
+ const compositeLogger$1 = logger.createClientLogger('communication-react:composite');
31550
+ /**
31551
+ * @private
31552
+ * Enum for event names used in the composite logger.
31553
+ * These events are used to track various actions and states within the composite.
31554
+ */
31555
+ var EventNames;
31556
+ (function (EventNames) {
31557
+ // Info
31558
+ EventNames["COMPOSITE_INITIALIZED"] = "COMPOSITE_INITIALIZED";
31559
+ EventNames["COMPOSITE_RENDERED"] = "COMPOSITE_RENDERED";
31560
+ EventNames["COMPOSITE_CLOSED"] = "COMPOSITE_CLOSED";
31561
+ EventNames["COMPOSITE_AUDIO_CONTEXT_CREATED"] = "COMPOSITE_AUDIO_CONTEXT_CREATED";
31562
+ EventNames["COMPOSITE_AUDIO_CONTEXT_CLOSED"] = "COMPOSITE_AUDIO_CONTEXT_CLOSED";
31563
+ EventNames["COMPOSITE_AUDIO_CONTEXT_RECREATED"] = "COMPOSITE_AUDIO_CONTEXT_RECREATED";
31564
+ // Warning
31565
+ EventNames["COMPOSITE_WARNING"] = "COMPOSITE_WARNING";
31566
+ // Error
31567
+ EventNames["COMPOSITE_ERROR"] = "COMPOSITE_ERROR";
31568
+ })(EventNames || (EventNames = {}));
31569
+
31544
31570
  // Copyright (c) Microsoft Corporation.
31545
31571
  // Licensed under the MIT License.
31546
31572
  /**
@@ -31552,6 +31578,22 @@ const ACSAudioProvider = (props) => {
31552
31578
  const { audioContext, children } = props;
31553
31579
  const [stateAudioContext, setStateAudioContext] = React.useState(undefined);
31554
31580
  React.useEffect(() => {
31581
+ if (stateAudioContext) {
31582
+ _logEvent(compositeLogger$1, {
31583
+ name: EventNames.COMPOSITE_AUDIO_CONTEXT_RECREATED,
31584
+ level: 'warning',
31585
+ message: 'AudioContext recreated for composite.',
31586
+ data: { audioContextState: stateAudioContext.state }
31587
+ });
31588
+ }
31589
+ else {
31590
+ _logEvent(compositeLogger$1, {
31591
+ name: EventNames.COMPOSITE_AUDIO_CONTEXT_CREATED,
31592
+ level: 'info',
31593
+ message: 'AudioContext created for composite.',
31594
+ data: { audioContextState: audioContext.state }
31595
+ });
31596
+ }
31555
31597
  // Create the AudioContext only when the component is rendered
31556
31598
  setStateAudioContext(audioContext);
31557
31599
  }, [audioContext]);
@@ -31609,6 +31651,21 @@ const BaseProvider = (props) => {
31609
31651
  * We need to create one context for the AudioProvider to ensure that we only have one instance of the AudioContext.
31610
31652
  */
31611
31653
  const compositeAudioContext = new AudioContext();
31654
+ React.useEffect(() => {
31655
+ return () => {
31656
+ if (compositeAudioContext) {
31657
+ _logEvent(compositeLogger$1, {
31658
+ name: EventNames.COMPOSITE_AUDIO_CONTEXT_CLOSED,
31659
+ level: 'info',
31660
+ message: 'AudioContext is being closed.',
31661
+ data: {}
31662
+ });
31663
+ compositeAudioContext.close().catch((e) => {
31664
+ console.error('Failed to close AudioContext', e);
31665
+ });
31666
+ }
31667
+ };
31668
+ }, []);
31612
31669
  // we use Customizer to override default LayerHost injected to <body />
31613
31670
  // which stop polluting global dom tree and increase compatibility with react-full-screen
31614
31671
  const CompositeElement = (React.createElement(FluentThemeProvider, { fluentTheme: fluentTheme, rtl: rtl },
@@ -32332,7 +32389,7 @@ const AttachmentDownloadErrorBar = (props) => {
32332
32389
  /**
32333
32390
  * Wrapper for RichTextSendBox component to allow us to use usePropsFor with richTextSendBox with lazy loading
32334
32391
  */
32335
- const RichTextSendBoxWrapper = React.lazy(() => Promise.resolve().then(function () { return require('./RichTextSendBoxWrapper-BzNEIkLz.js'); }).then((module) => ({ default: module.RichTextSendBoxWrapper })));
32392
+ const RichTextSendBoxWrapper = React.lazy(() => Promise.resolve().then(function () { return require('./RichTextSendBoxWrapper-D02HH6FD.js'); }).then((module) => ({ default: module.RichTextSendBoxWrapper })));
32336
32393
  /**
32337
32394
  * @private
32338
32395
  * Use this function to load RoosterJS dependencies early in the lifecycle.
@@ -32340,7 +32397,7 @@ const RichTextSendBoxWrapper = React.lazy(() => Promise.resolve().then(function
32340
32397
  *
32341
32398
  /* @conditional-compile-remove(rich-text-editor-composite-support)
32342
32399
  */
32343
- const loadRichTextSendBox = () => Promise.resolve().then(function () { return require('./RichTextSendBoxWrapper-BzNEIkLz.js'); }).then((module) => ({ default: module.RichTextSendBoxWrapper }));
32400
+ const loadRichTextSendBox = () => Promise.resolve().then(function () { return require('./RichTextSendBoxWrapper-D02HH6FD.js'); }).then((module) => ({ default: module.RichTextSendBoxWrapper }));
32344
32401
  /**
32345
32402
  * @private
32346
32403
  */
@@ -47848,4 +47905,4 @@ exports.useTeamsCall = useTeamsCall;
47848
47905
  exports.useTeamsCallAdapter = useTeamsCallAdapter;
47849
47906
  exports.useTeamsCallAgent = useTeamsCallAgent;
47850
47907
  exports.useTheme = useTheme;
47851
- //# sourceMappingURL=index-DpimezMw.js.map
47908
+ //# sourceMappingURL=index-6oa3rQt8.js.map