@azure/communication-react 1.11.1-alpha-202401140014 → 1.11.1-alpha-202401160013

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 (52) hide show
  1. package/dist/communication-react.d.ts +25 -1
  2. package/dist/dist-cjs/communication-react/index.js +248 -39
  3. package/dist/dist-cjs/communication-react/index.js.map +1 -1
  4. package/dist/dist-esm/acs-ui-common/src/telemetryVersion.js +1 -1
  5. package/dist/dist-esm/acs-ui-common/src/telemetryVersion.js.map +1 -1
  6. package/dist/dist-esm/calling-component-bindings/src/callControlSelectors.d.ts +15 -0
  7. package/dist/dist-esm/calling-component-bindings/src/callControlSelectors.js +14 -0
  8. package/dist/dist-esm/calling-component-bindings/src/callControlSelectors.js.map +1 -1
  9. package/dist/dist-esm/calling-component-bindings/src/handlers/createCommonHandlers.d.ts +2 -0
  10. package/dist/dist-esm/calling-component-bindings/src/handlers/createCommonHandlers.js +23 -6
  11. package/dist/dist-esm/calling-component-bindings/src/handlers/createCommonHandlers.js.map +1 -1
  12. package/dist/dist-esm/calling-component-bindings/src/hooks/usePropsFor.js +12 -0
  13. package/dist/dist-esm/calling-component-bindings/src/hooks/usePropsFor.js.map +1 -1
  14. package/dist/dist-esm/calling-component-bindings/src/videoGallerySelector.js +1 -1
  15. package/dist/dist-esm/calling-component-bindings/src/videoGallerySelector.js.map +1 -1
  16. package/dist/dist-esm/react-components/src/components/ReactionButton.d.ts +1 -1
  17. package/dist/dist-esm/react-components/src/components/ReactionButton.js +1 -1
  18. package/dist/dist-esm/react-components/src/components/ReactionButton.js.map +1 -1
  19. package/dist/dist-esm/react-components/src/components/styles/ReactionButton.styles.d.ts +6 -2
  20. package/dist/dist-esm/react-components/src/components/styles/ReactionButton.styles.js +20 -4
  21. package/dist/dist-esm/react-components/src/components/styles/ReactionButton.styles.js.map +1 -1
  22. package/dist/dist-esm/react-components/src/components/styles/VideoTile.styles.js +4 -1
  23. package/dist/dist-esm/react-components/src/components/styles/VideoTile.styles.js.map +1 -1
  24. package/dist/dist-esm/react-components/src/theming/icons.js +12 -2
  25. package/dist/dist-esm/react-components/src/theming/icons.js.map +1 -1
  26. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/AzureCommunicationCallAdapter.d.ts +2 -0
  27. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/AzureCommunicationCallAdapter.js +10 -1
  28. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/AzureCommunicationCallAdapter.js.map +1 -1
  29. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/CallAdapter.d.ts +7 -0
  30. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/CallAdapter.js.map +1 -1
  31. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/CallControls.js +10 -0
  32. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/CallControls.js.map +1 -1
  33. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/buttons/Reaction.d.ts +13 -0
  34. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/buttons/Reaction.js +26 -0
  35. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/buttons/Reaction.js.map +1 -0
  36. package/dist/dist-esm/react-composites/src/composites/CallComposite/hooks/useHandlers.js +4 -0
  37. package/dist/dist-esm/react-composites/src/composites/CallComposite/hooks/useHandlers.js.map +1 -1
  38. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/AzureCommunicationCallWithChatAdapter.d.ts +2 -0
  39. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/AzureCommunicationCallWithChatAdapter.js +8 -0
  40. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/AzureCommunicationCallWithChatAdapter.js.map +1 -1
  41. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/CallWithChatAdapter.d.ts +8 -0
  42. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/CallWithChatAdapter.js.map +1 -1
  43. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/CallWithChatBackedCallAdapter.d.ts +2 -0
  44. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/CallWithChatBackedCallAdapter.js +2 -0
  45. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/CallWithChatBackedCallAdapter.js.map +1 -1
  46. package/dist/dist-esm/react-composites/src/composites/common/ControlBar/CommonCallControlBar.js +4 -0
  47. package/dist/dist-esm/react-composites/src/composites/common/ControlBar/CommonCallControlBar.js.map +1 -1
  48. package/dist/dist-esm/react-composites/src/composites/common/icons.d.ts +2 -0
  49. package/dist/dist-esm/react-composites/src/composites/common/icons.js.map +1 -1
  50. package/dist/dist-esm/react-composites/src/composites/common/types/CommonCallControlOptions.d.ts +7 -0
  51. package/dist/dist-esm/react-composites/src/composites/common/types/CommonCallControlOptions.js.map +1 -1
  52. package/package.json +1 -1
@@ -170,7 +170,7 @@ function getDefaultExportFromCjs (x) {
170
170
  // Copyright (c) Microsoft Corporation.
171
171
  // Licensed under the MIT License.
172
172
  // GENERATED FILE. DO NOT EDIT MANUALLY.
173
- var telemetryVersion = '1.11.1-alpha-202401140014';
173
+ var telemetryVersion = '1.11.1-alpha-202401160013';
174
174
 
175
175
 
176
176
  var telemetryVersion$1 = /*@__PURE__*/getDefaultExportFromCjs(telemetryVersion);
@@ -698,6 +698,18 @@ const raiseHandButtonSelector = reselect__namespace.createSelector([getLocalPart
698
698
  disabled: callState === 'InLobby' ? true : (_a = callState === 'Connecting') !== null && _a !== void 0 ? _a : false
699
699
  };
700
700
  });
701
+ /* @conditional-compile-remove(reaction) */
702
+ /**
703
+ * Selector for {@link ReactionButton} component.
704
+ *
705
+ * @beta
706
+ */
707
+ const reactionButtonSelector = reselect__namespace.createSelector([getLocalParticipantReactionState, getCallState], (reaction, callState) => {
708
+ return {
709
+ checked: reaction ? true : false,
710
+ disabled: callState !== 'Connected'
711
+ };
712
+ });
701
713
  /**
702
714
  * Selector for {@link ScreenShareButton} component.
703
715
  *
@@ -922,6 +934,21 @@ const createDefaultCommonCallingHandlers = memoizeOne((callClient, deviceManager
922
934
  yield (raiseHandFeature === null || raiseHandFeature === void 0 ? void 0 : raiseHandFeature.raiseHand());
923
935
  }
924
936
  });
937
+ /* @conditional-compile-remove(reaction) */
938
+ const onReactionClicked = (reaction) => __awaiter$M(void 0, void 0, void 0, function* () {
939
+ var _c;
940
+ if (reaction === 'like' ||
941
+ reaction === 'applause' ||
942
+ reaction === 'heart' ||
943
+ reaction === 'laugh' ||
944
+ reaction === 'surprised') {
945
+ yield ((_c = call === null || call === void 0 ? void 0 : call.feature(communicationCalling.Features.Reaction)) === null || _c === void 0 ? void 0 : _c.sendReaction({ reactionType: reaction }));
946
+ }
947
+ else {
948
+ console.warn(`Can not recognize ${reaction} as meeting reaction`);
949
+ }
950
+ return;
951
+ });
925
952
  const onToggleMicrophone = () => __awaiter$M(void 0, void 0, void 0, function* () {
926
953
  if (!call || !(_isInCall(call.state) || _isInLobbyOrConnecting(call.state))) {
927
954
  throw new Error(`Please invoke onToggleMicrophone after call is started`);
@@ -935,7 +962,7 @@ const createDefaultCommonCallingHandlers = memoizeOne((callClient, deviceManager
935
962
  /* @conditional-compile-remove(PSTN-calls) */
936
963
  const onToggleHold = () => __awaiter$M(void 0, void 0, void 0, function* () { return (call === null || call === void 0 ? void 0 : call.state) === 'LocalHold' ? yield (call === null || call === void 0 ? void 0 : call.resume()) : yield (call === null || call === void 0 ? void 0 : call.hold()); });
937
964
  const onCreateLocalStreamView = (options = { scalingMode: 'Crop', isMirrored: true }) => __awaiter$M(void 0, void 0, void 0, function* () {
938
- var _c;
965
+ var _d;
939
966
  if (!call || call.localVideoStreams.length === 0) {
940
967
  return;
941
968
  }
@@ -947,7 +974,7 @@ const createDefaultCommonCallingHandlers = memoizeOne((callClient, deviceManager
947
974
  if (!localStream) {
948
975
  return;
949
976
  }
950
- const { view } = (_c = (yield callClient.createView(call.id, undefined, localStream, options))) !== null && _c !== void 0 ? _c : {};
977
+ const { view } = (_d = (yield callClient.createView(call.id, undefined, localStream, options))) !== null && _d !== void 0 ? _d : {};
951
978
  return view ? { view } : undefined;
952
979
  });
953
980
  const onCreateRemoteStreamView = (userId, options = { scalingMode: 'Crop' }) => __awaiter$M(void 0, void 0, void 0, function* () {
@@ -1074,7 +1101,7 @@ const createDefaultCommonCallingHandlers = memoizeOne((callClient, deviceManager
1074
1101
  });
1075
1102
  /* @conditional-compile-remove(video-background-effects) */
1076
1103
  const onBlurVideoBackground = (backgroundBlurConfig) => __awaiter$M(void 0, void 0, void 0, function* () {
1077
- var _d;
1104
+ var _e;
1078
1105
  const stream = (call === null || call === void 0 ? void 0 : call.localVideoStreams.find((stream) => stream.mediaStreamType === 'Video')) ||
1079
1106
  (deviceManager === null || deviceManager === void 0 ? void 0 : deviceManager.getUnparentedVideoStreams().find((stream) => stream.mediaStreamType === 'Video'));
1080
1107
  if (stream) {
@@ -1082,13 +1109,13 @@ const createDefaultCommonCallingHandlers = memoizeOne((callClient, deviceManager
1082
1109
  throw new Error(`Video background effects dependency not resolved`);
1083
1110
  }
1084
1111
  const createEffect = (options === null || options === void 0 ? void 0 : options.onResolveVideoBackgroundEffectsDependency) &&
1085
- ((_d = (yield options.onResolveVideoBackgroundEffectsDependency())) === null || _d === void 0 ? void 0 : _d.createBackgroundBlurEffect);
1112
+ ((_e = (yield options.onResolveVideoBackgroundEffectsDependency())) === null || _e === void 0 ? void 0 : _e.createBackgroundBlurEffect);
1086
1113
  return createEffect && stream.feature(communicationCalling.Features.VideoEffects).startEffects(createEffect(backgroundBlurConfig));
1087
1114
  }
1088
1115
  });
1089
1116
  /* @conditional-compile-remove(video-background-effects) */
1090
1117
  const onReplaceVideoBackground = (backgroundReplacementConfig) => __awaiter$M(void 0, void 0, void 0, function* () {
1091
- var _e;
1118
+ var _f;
1092
1119
  const stream = (call === null || call === void 0 ? void 0 : call.localVideoStreams.find((stream) => stream.mediaStreamType === 'Video')) ||
1093
1120
  (deviceManager === null || deviceManager === void 0 ? void 0 : deviceManager.getUnparentedVideoStreams().find((stream) => stream.mediaStreamType === 'Video'));
1094
1121
  if (stream) {
@@ -1096,7 +1123,7 @@ const createDefaultCommonCallingHandlers = memoizeOne((callClient, deviceManager
1096
1123
  throw new Error(`Video background effects dependency not resolved`);
1097
1124
  }
1098
1125
  const createEffect = (options === null || options === void 0 ? void 0 : options.onResolveVideoBackgroundEffectsDependency) &&
1099
- ((_e = (yield options.onResolveVideoBackgroundEffectsDependency())) === null || _e === void 0 ? void 0 : _e.createBackgroundReplacementEffect);
1126
+ ((_f = (yield options.onResolveVideoBackgroundEffectsDependency())) === null || _f === void 0 ? void 0 : _f.createBackgroundReplacementEffect);
1100
1127
  return (createEffect && stream.feature(communicationCalling.Features.VideoEffects).startEffects(createEffect(backgroundReplacementConfig)));
1101
1128
  }
1102
1129
  });
@@ -1157,6 +1184,8 @@ const createDefaultCommonCallingHandlers = memoizeOne((callClient, deviceManager
1157
1184
  onLowerHand,
1158
1185
  /* @conditional-compile-remove(raise-hand) */
1159
1186
  onToggleRaiseHand,
1187
+ /* @conditional-compile-remove(reaction) */
1188
+ onReactionClicked,
1160
1189
  /* @conditional-compile-remove(PSTN-calls) */
1161
1190
  onAddParticipant: notImplemented,
1162
1191
  onRemoveParticipant: notImplemented,
@@ -6301,6 +6330,14 @@ const GalleryRightButton = () => {
6301
6330
  const rtl = useTheme().rtl;
6302
6331
  return rtl ? React.createElement(reactIcons.ChevronLeft20Regular, null) : React.createElement(reactIcons.ChevronRight20Regular, null);
6303
6332
  };
6333
+ const ControlButtonRaiseHandIcon = () => {
6334
+ /* @conditional-compile-remove(reaction) */
6335
+ return React.createElement(reactIcons.HandRight20Regular, null);
6336
+ };
6337
+ const ControlButtonLowerHandIcon = () => {
6338
+ /* @conditional-compile-remove(reaction) */
6339
+ return React.createElement(reactIcons.HandRightOff20Regular, null);
6340
+ };
6304
6341
  /**
6305
6342
  * The default set of icons that are available to use in the UI components.
6306
6343
  *
@@ -6322,9 +6359,9 @@ const DEFAULT_COMPONENT_ICONS = {
6322
6359
  ControlButtonScreenShareStart: React.createElement(reactIcons.ShareScreenStart20Filled, null),
6323
6360
  ControlButtonScreenShareStop: React.createElement(reactIcons.ShareScreenStop20Filled, null),
6324
6361
  /* @conditional-compile-remove(raise-hand) */
6325
- ControlButtonRaiseHand: React.createElement(reactIcons.HandRight20Filled, null),
6362
+ ControlButtonRaiseHand: React.createElement(ControlButtonRaiseHandIcon, null),
6326
6363
  /* @conditional-compile-remove(raise-hand) */
6327
- ControlButtonLowerHand: React.createElement(reactIcons.HandRightOff20Filled, null),
6364
+ ControlButtonLowerHand: React.createElement(ControlButtonLowerHandIcon, null),
6328
6365
  /* @conditional-compile-remove(raise-hand) */
6329
6366
  RaiseHandContextualMenuItem: React.createElement(reactIcons.HandRight20Regular, null),
6330
6367
  /* @conditional-compile-remove(raise-hand) */
@@ -12954,10 +12991,11 @@ const raiseHandLimitedSpaceStyles = {
12954
12991
  // position at the bottom
12955
12992
  bottom: 0
12956
12993
  };
12994
+ /* @conditional-compile-remove(reaction) */
12957
12995
  /**
12958
12996
  * @private
12959
12997
  */
12960
- const playFrames = react.memoizeFunction(() => react.keyframes({
12998
+ const playFrames$1 = react.memoizeFunction(() => react.keyframes({
12961
12999
  from: {
12962
13000
  backgroundPosition: '0px 8568px'
12963
13001
  },
@@ -12973,7 +13011,7 @@ const reactionRenderingStyle = (args) => react.mergeStyles({
12973
13011
  height: '100%',
12974
13012
  width: '100%',
12975
13013
  overflow: 'hidden',
12976
- animationName: playFrames(),
13014
+ animationName: playFrames$1(),
12977
13015
  backgroundImage: args.backgroundImageUrl,
12978
13016
  animationDuration: '5.12s',
12979
13017
  animationTimingFunction: `steps(102)`,
@@ -17448,6 +17486,117 @@ const raiseHandButtonStyles = (theme) => ({
17448
17486
  labelChecked: { color: react.DefaultPalette.white }
17449
17487
  });
17450
17488
 
17489
+ // Copyright (c) Microsoft Corporation.
17490
+ // Licensed under the MIT License.
17491
+ /* @conditional-compile-remove(reaction) */
17492
+ /* @conditional-compile-remove(reaction) */
17493
+ /**
17494
+ * @private
17495
+ */
17496
+ const playFrames = react.memoizeFunction(() => react.keyframes({
17497
+ from: {
17498
+ backgroundPosition: '0px 8568px'
17499
+ },
17500
+ to: {
17501
+ backgroundPosition: '0px 0px'
17502
+ }
17503
+ }));
17504
+ /* @conditional-compile-remove(reaction) */
17505
+ /**
17506
+ * @param backgroundImage - the uri for the reaction emoji resource
17507
+ * @param animationPlayState - the value is either 'running' or 'paused' based on the mouse hover event
17508
+ *
17509
+ * @private
17510
+ */
17511
+ const emojiStyles = (backgroundImage, animationPlayState) => {
17512
+ return {
17513
+ display: 'flex',
17514
+ flexDirection: 'column',
17515
+ height: '100%',
17516
+ width: '100%',
17517
+ backgroundImage: backgroundImage,
17518
+ animationName: playFrames(),
17519
+ animationDuration: '8.12s',
17520
+ animationTimingFunction: `steps(102)`,
17521
+ animationPlayState: animationPlayState,
17522
+ animationIterationCount: 'infinite',
17523
+ justifyContent: 'center',
17524
+ alignItems: 'center',
17525
+ backgroundPosition: 'center',
17526
+ backgroundSize: `44px 2142px`,
17527
+ transition: 'opacity 2s',
17528
+ backgroundColor: 'transparent',
17529
+ transform: `scale(0.6)`
17530
+ };
17531
+ };
17532
+ /* @conditional-compile-remove(reaction) */
17533
+ /**
17534
+ *
17535
+ * @private
17536
+ */
17537
+ const reactionEmojiMenuStyles = () => {
17538
+ return {
17539
+ display: 'flex',
17540
+ justifyContent: 'center',
17541
+ alignItems: 'center',
17542
+ flexDirection: 'row',
17543
+ width: '220px',
17544
+ height: '42px'
17545
+ };
17546
+ };
17547
+
17548
+ // Copyright (c) Microsoft Corporation.
17549
+ // Licensed under the MIT License.
17550
+ /* @conditional-compile-remove(reaction) */
17551
+ /* @conditional-compile-remove(reaction) */
17552
+ /**
17553
+ * A button to send reactions.
17554
+ *
17555
+ * Can be used with {@link ControlBar}.
17556
+ *
17557
+ * @beta
17558
+ */
17559
+ const ReactionButton = (props) => {
17560
+ var _a, _b;
17561
+ const localeStrings = useLocale$1().strings.reactionButton;
17562
+ const strings = Object.assign(Object.assign({}, localeStrings), props.strings);
17563
+ const theme = react.useTheme();
17564
+ const styles = reactionButtonStyles(theme);
17565
+ const onRenderIcon = () => React.createElement(_HighContrastAwareIcon, { iconName: "ReactionButtonIcon" });
17566
+ const [isHoveredMap, setIsHoveredMap] = React.useState(new Map());
17567
+ const emojis = ['like', 'heart', 'laugh', 'applause', 'surprised'];
17568
+ const renderEmoji = (item, dismissMenu) => (React.createElement("div", { style: reactionEmojiMenuStyles() }, emojis.map((emoji, index) => (React.createElement("div", { key: index, onClick: () => {
17569
+ props.onReactionClicked(emoji);
17570
+ setIsHoveredMap((prevMap) => {
17571
+ return new Map(prevMap).set(emoji, false);
17572
+ });
17573
+ dismissMenu();
17574
+ }, style: emojiStyles(reactionEmoji.get(emoji), isHoveredMap.get(emoji) ? 'running' : 'paused'), onMouseEnter: () => setIsHoveredMap((prevMap) => {
17575
+ return new Map(prevMap).set(emoji, true);
17576
+ }), onMouseLeave: () => setIsHoveredMap((prevMap) => {
17577
+ return new Map(prevMap).set(emoji, false);
17578
+ }) })))));
17579
+ const emojiList = [
17580
+ { key: 'reactions', itemType: react.ContextualMenuItemType.Normal, onRender: renderEmoji }
17581
+ ];
17582
+ return (React.createElement(ControlBarButton, Object.assign({}, props, { className: react.mergeStyles(styles, props.styles), menuProps: {
17583
+ shouldFocusOnMount: true,
17584
+ items: emojiList
17585
+ }, onRenderIcon: (_a = props.onRenderIcon) !== null && _a !== void 0 ? _a : onRenderIcon, strings: strings, labelKey: (_b = props.labelKey) !== null && _b !== void 0 ? _b : 'reactionButtonLabel', onRenderMenuIcon: () => React.createElement("div", null) })));
17586
+ };
17587
+ /* @conditional-compile-remove(reaction) */
17588
+ const reactionButtonStyles = (theme) => ({
17589
+ rootChecked: {
17590
+ background: theme.palette.themePrimary,
17591
+ color: react.DefaultPalette.white
17592
+ },
17593
+ rootCheckedHovered: {
17594
+ background: theme.palette.themePrimary,
17595
+ color: react.DefaultPalette.white
17596
+ },
17597
+ labelChecked: { color: react.DefaultPalette.white }
17598
+ });
17599
+
17451
17600
  // Copyright (c) Microsoft Corporation.
17452
17601
  // Licensed under the MIT License.
17453
17602
  /** @private */
@@ -20233,6 +20382,10 @@ const getSelector$1 = (component) => {
20233
20382
  if (component === RaiseHandButton) {
20234
20383
  return findConditionalCompiledSelector(component);
20235
20384
  }
20385
+ /* @conditional-compile-remove(reaction) */
20386
+ if (component === ReactionButton) {
20387
+ return findConditionalCompiledSelector(component);
20388
+ }
20236
20389
  return findSelector$1(component);
20237
20390
  };
20238
20391
  const findSelector$1 = (component) => {
@@ -20274,6 +20427,10 @@ const findConditionalCompiledSelector = (component) => {
20274
20427
  case RaiseHandButton:
20275
20428
  /* @conditional-compile-remove(raise-hand) */
20276
20429
  return raiseHandButtonSelector;
20430
+ /* @conditional-compile-remove(reaction) */
20431
+ case ReactionButton:
20432
+ /* @conditional-compile-remove(reaction) */
20433
+ return reactionButtonSelector;
20277
20434
  }
20278
20435
  };
20279
20436
 
@@ -24528,7 +24685,7 @@ const disableCallControls = (callControlOptions, disabledControls) => {
24528
24685
  * @returns whether a button is disabled
24529
24686
  * @private
24530
24687
  */
24531
- const isDisabled$3 = (option) => {
24688
+ const isDisabled$4 = (option) => {
24532
24689
  if (option === undefined || typeof option === 'boolean') {
24533
24690
  return false;
24534
24691
  }
@@ -24705,6 +24862,10 @@ const createCompositeHandlers = memoizeOne((adapter) => ({
24705
24862
  ? yield adapter.lowerHand()
24706
24863
  : yield adapter.raiseHand();
24707
24864
  }),
24865
+ /* @conditional-compile-remove(reaction) */
24866
+ onReactionClicked: (reaction) => __awaiter$g(void 0, void 0, void 0, function* () {
24867
+ yield adapter.onReactionClicked(reaction);
24868
+ }),
24708
24869
  onSelectCamera: (deviceInfo, options) => __awaiter$g(void 0, void 0, void 0, function* () {
24709
24870
  yield adapter.setCamera(deviceInfo, options);
24710
24871
  }),
@@ -25367,9 +25528,9 @@ const Participants = (props) => {
25367
25528
  var _a;
25368
25529
  return concatButtonBaseStyles(props.increaseFlyoutItemSize ? participantButtonWithIncreasedTouchTargets : {}, (_a = props.styles) !== null && _a !== void 0 ? _a : {});
25369
25530
  }, [props.increaseFlyoutItemSize, props.styles]);
25370
- return (React.createElement(ParticipantsButton, Object.assign({ "data-ui-id": "call-composite-participants-button" }, participantsButtonProps, { showLabel: props.displayType !== 'compact', callInvitationURL: props.callInvitationURL, onFetchParticipantMenuItems: props.onFetchParticipantMenuItems, disabled: isDisabled$2(props.option) || props.disabled, styles: participantsButtonStyles, showParticipantOverflowTooltip: !props.isMobile })));
25531
+ return (React.createElement(ParticipantsButton, Object.assign({ "data-ui-id": "call-composite-participants-button" }, participantsButtonProps, { showLabel: props.displayType !== 'compact', callInvitationURL: props.callInvitationURL, onFetchParticipantMenuItems: props.onFetchParticipantMenuItems, disabled: isDisabled$3(props.option) || props.disabled, styles: participantsButtonStyles, showParticipantOverflowTooltip: !props.isMobile })));
25371
25532
  };
25372
- const isDisabled$2 = (option) => {
25533
+ const isDisabled$3 = (option) => {
25373
25534
  if (option === undefined || option === true || option === false) {
25374
25535
  return false;
25375
25536
  }
@@ -25390,13 +25551,13 @@ const ScreenShare = (props) => {
25390
25551
  const screenShareButtonDisabled = () => {
25391
25552
  var _a;
25392
25553
  /* @conditional-compile-remove(capabilities) */ /* @conditional-compile-remove(PSTN-calls) */
25393
- return (_a = screenShareButtonProps === null || screenShareButtonProps === void 0 ? void 0 : screenShareButtonProps.disabled) !== null && _a !== void 0 ? _a : isDisabled$1(props.option);
25554
+ return (_a = screenShareButtonProps === null || screenShareButtonProps === void 0 ? void 0 : screenShareButtonProps.disabled) !== null && _a !== void 0 ? _a : isDisabled$2(props.option);
25394
25555
  };
25395
25556
  return (React.createElement(ScreenShareButton, Object.assign({ "data-ui-id": "call-composite-screenshare-button" }, screenShareButtonProps, { showLabel: props.displayType !== 'compact', disabled: screenShareButtonDisabled() ||
25396
25557
  props.disabled ||
25397
25558
  /* @conditional-compile-remove(rooms) */ (isRoomsCall && ((_a = adapter.getState().call) === null || _a === void 0 ? void 0 : _a.role) === 'Unknown'), styles: styles })));
25398
25559
  };
25399
- const isDisabled$1 = (option) => {
25560
+ const isDisabled$2 = (option) => {
25400
25561
  if (option === undefined || option === true || option === false) {
25401
25562
  return false;
25402
25563
  }
@@ -25639,14 +25800,14 @@ const RaiseHand = (props) => {
25639
25800
  const raiseHandButtonProps = usePropsFor$1(RaiseHandButton);
25640
25801
  const callStatus = useSelector$1(getCallStatus);
25641
25802
  const styles = React.useMemo(() => { var _a; return concatButtonBaseStyles((_a = props.styles) !== null && _a !== void 0 ? _a : {}); }, [props.styles]);
25642
- let raiseHandButtonDisabled = isDisabled(props.option);
25803
+ let raiseHandButtonDisabled = isDisabled$1(props.option);
25643
25804
  if (_isInLobbyOrConnecting(callStatus)) {
25644
25805
  raiseHandButtonDisabled = true;
25645
25806
  }
25646
25807
  return (React.createElement(RaiseHandButton, Object.assign({ "data-ui-id": "call-composite-raisehand-button" }, raiseHandButtonProps, { showLabel: props.displayType !== 'compact', disabled: raiseHandButtonDisabled || props.disabled, styles: styles })));
25647
25808
  };
25648
25809
  /* @conditional-compile-remove(raise-hand) */
25649
- const isDisabled = (option) => {
25810
+ const isDisabled$1 = (option) => {
25650
25811
  if (option === undefined || option === true || option === false) {
25651
25812
  return false;
25652
25813
  }
@@ -25736,6 +25897,25 @@ const onFetchCustomButtonPropsTrampoline = (options) => {
25736
25897
  return response;
25737
25898
  };
25738
25899
 
25900
+ // Copyright (c) Microsoft Corporation.
25901
+ // Licensed under the MIT License.
25902
+ /* @conditional-compile-remove(reaction) */
25903
+ /* @conditional-compile-remove(reaction) */
25904
+ /** @private */
25905
+ const Reaction = (props) => {
25906
+ const reactionButtonProps = usePropsFor$1(ReactionButton);
25907
+ const styles = React.useMemo(() => { var _a; return concatButtonBaseStyles((_a = props.styles) !== null && _a !== void 0 ? _a : {}); }, [props.styles]);
25908
+ const reactionButtonDisabled = isDisabled(props.option) || reactionButtonProps.disabled;
25909
+ return (React.createElement(ReactionButton, Object.assign({ "data-ui-id": "call-composite-reaction-button" }, reactionButtonProps, { showLabel: props.displayType !== 'compact', disabled: reactionButtonDisabled || props.disabled, styles: styles })));
25910
+ };
25911
+ /* @conditional-compile-remove(reaction) */
25912
+ const isDisabled = (option) => {
25913
+ if (option === undefined || option === true || option === false) {
25914
+ return false;
25915
+ }
25916
+ return option.disabled;
25917
+ };
25918
+
25739
25919
  // Copyright (c) Microsoft Corporation.
25740
25920
  // Licensed under the MIT License.
25741
25921
  // Enforce a background color on control bar to ensure it matches the composite background color.
@@ -25807,6 +25987,12 @@ const CallControls = (props) => {
25807
25987
  if (showParticipantsButtonInControlBar) {
25808
25988
  numberOfButtons++;
25809
25989
  }
25990
+ /* @conditional-compile-remove(reaction) */
25991
+ const showReactionButtonInControlBar = isEnabled$2(options === null || options === void 0 ? void 0 : options.reactionButton) && !props.isMobile;
25992
+ /* @conditional-compile-remove(reaction) */
25993
+ if (showReactionButtonInControlBar) {
25994
+ numberOfButtons++;
25995
+ }
25810
25996
  const moreButtonContextualMenuItems = () => {
25811
25997
  const items = [];
25812
25998
  if (props.isMobile && props.onPeopleButtonClicked && isEnabled$2(options === null || options === void 0 ? void 0 : options.participantsButton)) {
@@ -25822,7 +26008,7 @@ const CallControls = (props) => {
25822
26008
  itemProps: {
25823
26009
  styles: buttonFlyoutIncreasedSizeStyles
25824
26010
  },
25825
- disabled: isDisabled$3(options === null || options === void 0 ? void 0 : options.participantsButton),
26011
+ disabled: isDisabled$4(options === null || options === void 0 ? void 0 : options.participantsButton),
25826
26012
  ['data-ui-id']: 'call-composite-more-menu-people-button'
25827
26013
  });
25828
26014
  }
@@ -25838,7 +26024,7 @@ const CallControls = (props) => {
25838
26024
  itemProps: {
25839
26025
  styles: buttonFlyoutIncreasedSizeStyles
25840
26026
  },
25841
- disabled: isDisabled$3(options === null || options === void 0 ? void 0 : options.holdButton),
26027
+ disabled: isDisabled$4(options === null || options === void 0 ? void 0 : options.holdButton),
25842
26028
  ['data-ui-id']: 'hold-button'
25843
26029
  });
25844
26030
  }
@@ -25921,7 +26107,7 @@ const CallControls = (props) => {
25921
26107
  itemProps: {
25922
26108
  styles: buttonFlyoutIncreasedSizeStyles
25923
26109
  },
25924
- disabled: isDisabled$3(options === null || options === void 0 ? void 0 : options.raiseHandButton),
26110
+ disabled: isDisabled$4(options === null || options === void 0 ? void 0 : options.raiseHandButton),
25925
26111
  ['data-ui-id']: 'call-composite-more-menu-raise-hand-button'
25926
26112
  });
25927
26113
  }
@@ -25967,15 +26153,17 @@ const CallControls = (props) => {
25967
26153
  React.createElement(SendDtmfDialpad, { isMobile: !!props.isMobile, strings: dialpadStrings, showDialpad: showDialpad, onDismissDialpad: onDismissDialpad }),
25968
26154
  React.createElement(react.Stack.Item, null,
25969
26155
  React.createElement(ControlBar, { layout: props.displayVertical ? 'vertical' : 'horizontal', styles: controlBarStyles(theme.semanticColors.bodyBackground) },
25970
- microphoneButtonIsEnabled && (React.createElement(Microphone, { displayType: options === null || options === void 0 ? void 0 : options.displayType, disabled: isDisabled$3(options === null || options === void 0 ? void 0 : options.microphoneButton) })),
25971
- cameraButtonIsEnabled && (React.createElement(Camera, { displayType: options === null || options === void 0 ? void 0 : options.displayType, disabled: isDisabled$3(options === null || options === void 0 ? void 0 : options.cameraButton) })),
26156
+ microphoneButtonIsEnabled && (React.createElement(Microphone, { displayType: options === null || options === void 0 ? void 0 : options.displayType, disabled: isDisabled$4(options === null || options === void 0 ? void 0 : options.microphoneButton) })),
26157
+ cameraButtonIsEnabled && (React.createElement(Camera, { displayType: options === null || options === void 0 ? void 0 : options.displayType, disabled: isDisabled$4(options === null || options === void 0 ? void 0 : options.cameraButton) })),
26158
+ /* @conditional-compile-remove(reaction) */
26159
+ showReactionButtonInControlBar && React.createElement(Reaction, { displayType: options === null || options === void 0 ? void 0 : options.displayType }),
25972
26160
  /* @conditional-compile-remove(raise-hand) */ showRaiseHandButtonInControlBar &&
25973
26161
  /* @conditional-compile-remove(rooms) */ !hideRaiseHandButtonInRoomsCall && (React.createElement(RaiseHand, { displayType: options === null || options === void 0 ? void 0 : options.displayType })),
25974
- screenShareButtonIsEnabled && (React.createElement(ScreenShare, { option: options === null || options === void 0 ? void 0 : options.screenShareButton, displayType: options === null || options === void 0 ? void 0 : options.displayType, disabled: isDisabled$3(options === null || options === void 0 ? void 0 : options.screenShareButton) })),
25975
- showParticipantsButtonInControlBar && (React.createElement(Participants, { option: options === null || options === void 0 ? void 0 : options.participantsButton, callInvitationURL: props.callInvitationURL, onFetchParticipantMenuItems: props.onFetchParticipantMenuItems, displayType: options === null || options === void 0 ? void 0 : options.displayType, increaseFlyoutItemSize: props.increaseFlyoutItemSize, isMobile: props.isMobile, disabled: isDisabled$3(options === null || options === void 0 ? void 0 : options.participantsButton) })) && (
26162
+ screenShareButtonIsEnabled && (React.createElement(ScreenShare, { option: options === null || options === void 0 ? void 0 : options.screenShareButton, displayType: options === null || options === void 0 ? void 0 : options.displayType, disabled: isDisabled$4(options === null || options === void 0 ? void 0 : options.screenShareButton) })),
26163
+ showParticipantsButtonInControlBar && (React.createElement(Participants, { option: options === null || options === void 0 ? void 0 : options.participantsButton, callInvitationURL: props.callInvitationURL, onFetchParticipantMenuItems: props.onFetchParticipantMenuItems, displayType: options === null || options === void 0 ? void 0 : options.displayType, increaseFlyoutItemSize: props.increaseFlyoutItemSize, isMobile: props.isMobile, disabled: isDisabled$4(options === null || options === void 0 ? void 0 : options.participantsButton) })) && (
25976
26164
  /* @conditional-compile-remove(one-to-n-calling) */ /* @conditional-compile-remove(PSTN-calls) */
25977
- React.createElement(People, { checked: props.peopleButtonChecked, ariaLabel: peopleButtonStrings === null || peopleButtonStrings === void 0 ? void 0 : peopleButtonStrings.label, showLabel: (options === null || options === void 0 ? void 0 : options.displayType) !== 'compact', onClick: props.onPeopleButtonClicked, "data-ui-id": "call-composite-people-button", strings: peopleButtonStrings, disabled: isDisabled$3(options === null || options === void 0 ? void 0 : options.participantsButton), disableTooltip: props.isMobile })),
25978
- showDevicesButtonInControlBar && (React.createElement(Devices, { displayType: options === null || options === void 0 ? void 0 : options.displayType, increaseFlyoutItemSize: props.increaseFlyoutItemSize, disabled: isDisabled$3(options === null || options === void 0 ? void 0 : options.devicesButton) })), (_b = customButtons['primary']) === null || _b === void 0 ? void 0 :
26165
+ React.createElement(People, { checked: props.peopleButtonChecked, ariaLabel: peopleButtonStrings === null || peopleButtonStrings === void 0 ? void 0 : peopleButtonStrings.label, showLabel: (options === null || options === void 0 ? void 0 : options.displayType) !== 'compact', onClick: props.onPeopleButtonClicked, "data-ui-id": "call-composite-people-button", strings: peopleButtonStrings, disabled: isDisabled$4(options === null || options === void 0 ? void 0 : options.participantsButton), disableTooltip: props.isMobile })),
26166
+ showDevicesButtonInControlBar && (React.createElement(Devices, { displayType: options === null || options === void 0 ? void 0 : options.displayType, increaseFlyoutItemSize: props.increaseFlyoutItemSize, disabled: isDisabled$4(options === null || options === void 0 ? void 0 : options.devicesButton) })), (_b = customButtons['primary']) === null || _b === void 0 ? void 0 :
25979
26167
  _b.slice(0, props.isMobile
25980
26168
  ? CUSTOM_BUTTON_OPTIONS.MAX_PRIMARY_MOBILE_CUSTOM_BUTTONS
25981
26169
  : CUSTOM_BUTTON_OPTIONS.MAX_PRIMARY_DESKTOP_CUSTOM_BUTTONS).map((CustomButton, i) => {
@@ -26519,20 +26707,22 @@ const CommonCallControlBar = (props) => {
26519
26707
  React.createElement(ControlBar, { layout: props.displayVertical ? 'vertical' : 'horizontal', styles: centerContainerStyles },
26520
26708
  microphoneButtonIsEnabled && (React.createElement(Microphone, { displayType: options.displayType, styles: commonButtonStyles, splitButtonsForDeviceSelection: !props.mobileView,
26521
26709
  /* @conditional-compile-remove(PSTN-calls) */ /* @conditional-compile-remove(one-to-n-calling) */
26522
- disabled: props.disableButtonsForHoldScreen || isDisabled$3(options.microphoneButton), disableTooltip: props.mobileView })),
26710
+ disabled: props.disableButtonsForHoldScreen || isDisabled$4(options.microphoneButton), disableTooltip: props.mobileView })),
26523
26711
  cameraButtonIsEnabled && (React.createElement(Camera, { displayType: options.displayType, styles: commonButtonStyles, splitButtonsForDeviceSelection: !props.mobileView,
26524
26712
  /* @conditional-compile-remove(PSTN-calls) */ /* @conditional-compile-remove(one-to-n-calling) */
26525
- disabled: props.disableButtonsForHoldScreen || isDisabled$3(options.cameraButton),
26713
+ disabled: props.disableButtonsForHoldScreen || isDisabled$4(options.cameraButton),
26526
26714
  /* @conditional-compile-remove(video-background-effects) */
26527
26715
  onClickVideoEffects: props.onClickVideoEffects, componentRef: props.cameraButtonRef, disableTooltip: props.mobileView })),
26716
+ /* @conditional-compile-remove(reaction) */
26717
+ !props.mobileView && isEnabled$1(options.reactionButton) && (React.createElement(Reaction, { displayType: options.displayType, styles: commonButtonStyles, disabled: props.disableButtonsForHoldScreen })),
26528
26718
  /* @conditional-compile-remove(raise-hand) */ !props.mobileView &&
26529
26719
  isEnabled$1(options.raiseHandButton) &&
26530
26720
  /* @conditional-compile-remove(rooms) */ !hideRaiseHandButtonInRoomsCall && (React.createElement(RaiseHand, { displayType: options.displayType, styles: commonButtonStyles,
26531
26721
  /* @conditional-compile-remove(PSTN-calls) */ /* @conditional-compile-remove(one-to-n-calling) */
26532
- disabled: props.disableButtonsForHoldScreen || isDisabled$3(options.microphoneButton) })),
26722
+ disabled: props.disableButtonsForHoldScreen || isDisabled$4(options.microphoneButton) })),
26533
26723
  screenShareButtonIsEnabled && (React.createElement(ScreenShare, { option: options.screenShareButton, displayType: options.displayType, styles: screenShareButtonStyles,
26534
26724
  /* @conditional-compile-remove(PSTN-calls) */ /* @conditional-compile-remove(one-to-n-calling) */
26535
- disabled: props.disableButtonsForHoldScreen || isDisabled$3(options.screenShareButton) })), (_b = customButtons['primary']) === null || _b === void 0 ? void 0 :
26725
+ disabled: props.disableButtonsForHoldScreen || isDisabled$4(options.screenShareButton) })), (_b = customButtons['primary']) === null || _b === void 0 ? void 0 :
26536
26726
  _b.slice(0, props.mobileView
26537
26727
  ? CUSTOM_BUTTON_OPTIONS.MAX_PRIMARY_MOBILE_CUSTOM_BUTTONS
26538
26728
  : CUSTOM_BUTTON_OPTIONS.MAX_PRIMARY_DESKTOP_CUSTOM_BUTTONS).map((CustomButton, i) => {
@@ -26560,7 +26750,7 @@ const CommonCallControlBar = (props) => {
26560
26750
  React.createElement(react.Stack, { horizontal: true, className: !props.mobileView ? react.mergeStyles(desktopButtonContainerStyle) : undefined },
26561
26751
  isEnabled$1(options === null || options === void 0 ? void 0 : options.peopleButton) && (React.createElement(PeopleButton, { checked: props.peopleButtonChecked, ariaLabel: props.peopleButtonChecked ? peopleButtonStrings === null || peopleButtonStrings === void 0 ? void 0 : peopleButtonStrings.selectedLabel : peopleButtonStrings === null || peopleButtonStrings === void 0 ? void 0 : peopleButtonStrings.label, showLabel: options.displayType !== 'compact', onClick: props.onPeopleButtonClicked, "data-ui-id": "common-call-composite-people-button", disabled: props.disableButtonsForLobbyPage ||
26562
26752
  props.disableButtonsForHoldScreen ||
26563
- isDisabled$3(options.peopleButton), strings: peopleButtonStrings, styles: commonButtonStyles, componentRef: props.peopleButtonRef })), (_c = customButtons['secondary']) === null || _c === void 0 ? void 0 :
26753
+ isDisabled$4(options.peopleButton), strings: peopleButtonStrings, styles: commonButtonStyles, componentRef: props.peopleButtonRef })), (_c = customButtons['secondary']) === null || _c === void 0 ? void 0 :
26564
26754
  _c.slice(0, CUSTOM_BUTTON_OPTIONS.MAX_SECONDARY_DESKTOP_CUSTOM_BUTTONS).map((CustomButton, i) => {
26565
26755
  return (React.createElement(CustomButton, { key: `secondary-custom-button-${i}`, styles: commonButtonStyles, showLabel: options.displayType !== 'compact' }));
26566
26756
  }))))))));
@@ -26893,7 +27083,7 @@ const MoreDrawer = (props) => {
26893
27083
  text: mic.name,
26894
27084
  onItemClick: onMicrophoneItemClick,
26895
27085
  secondaryIconProps: isDeviceSelected(mic, props.selectedMicrophone) ? { iconName: 'Accept' } : undefined,
26896
- disabled: drawerSelectionOptions !== false ? isDisabled$3(drawerSelectionOptions.microphoneButton) : undefined
27086
+ disabled: drawerSelectionOptions !== false ? isDisabled$4(drawerSelectionOptions.microphoneButton) : undefined
26897
27087
  })),
26898
27088
  secondaryText: (_b = props.selectedMicrophone) === null || _b === void 0 ? void 0 : _b.name
26899
27089
  });
@@ -26961,14 +27151,14 @@ const MoreDrawer = (props) => {
26961
27151
  text: props.strings.peopleButtonLabel,
26962
27152
  iconProps: { iconName: 'MoreDrawerPeople' },
26963
27153
  onItemClick: props.onPeopleButtonClicked,
26964
- disabled: isDisabled$3(drawerSelectionOptions.peopleButton) || props.disableButtonsForHoldScreen
27154
+ disabled: isDisabled$4(drawerSelectionOptions.peopleButton) || props.disableButtonsForHoldScreen
26965
27155
  });
26966
27156
  }
26967
27157
  /* @conditional-compile-remove(PSTN-calls) */ /* @conditional-compile-remove(one-to-n-calling) */
26968
27158
  if (drawerSelectionOptions !== false && isEnabled(drawerSelectionOptions === null || drawerSelectionOptions === void 0 ? void 0 : drawerSelectionOptions.holdButton)) {
26969
27159
  drawerMenuItems.push({
26970
27160
  itemKey: 'holdButtonKey',
26971
- disabled: props.disableButtonsForHoldScreen || isDisabled$3(drawerSelectionOptions.holdButton),
27161
+ disabled: props.disableButtonsForHoldScreen || isDisabled$4(drawerSelectionOptions.holdButton),
26972
27162
  text: localeStrings.component.strings.holdButton.tooltipOffContent,
26973
27163
  onItemClick: () => {
26974
27164
  holdButtonProps.onToggleHold();
@@ -26988,7 +27178,7 @@ const MoreDrawer = (props) => {
26988
27178
  const raiseHandIcon = raiseHandButtonProps.checked ? 'LowerHandContextualMenuItem' : 'RaiseHandContextualMenuItem';
26989
27179
  drawerMenuItems.push({
26990
27180
  itemKey: 'raiseHandButtonKey',
26991
- disabled: props.disableButtonsForHoldScreen || isDisabled$3(drawerSelectionOptions.raiseHandButton),
27181
+ disabled: props.disableButtonsForHoldScreen || isDisabled$4(drawerSelectionOptions.raiseHandButton),
26992
27182
  text: raiseHandButtonProps.checked
26993
27183
  ? localeStrings.component.strings.raiseHandButton.onLabel
26994
27184
  : localeStrings.component.strings.raiseHandButton.offLabel,
@@ -28817,7 +29007,7 @@ const CallArrangement = (props) => {
28817
29007
  maxWidth: isVideoPaneOpen ? `${VIDEO_EFFECTS_SIDE_PANE_WIDTH_REM}rem` : undefined, minWidth: isVideoPaneOpen ? `${VIDEO_EFFECTS_SIDE_PANE_WIDTH_REM}rem` : undefined, updateSidePaneRenderer: props.updateSidePaneRenderer, onPeopleButtonClicked: props.mobileView && !shouldShowPeopleTabHeaderButton(props.callControlProps.options)
28818
29008
  ? undefined
28819
29009
  : togglePeoplePane, disablePeopleButton: typeof props.callControlProps.options !== 'boolean' &&
28820
- isDisabled$3((_j = props.callControlProps.options) === null || _j === void 0 ? void 0 : _j.participantsButton), onChatButtonClicked: (_k = props.mobileChatTabHeader) === null || _k === void 0 ? void 0 : _k.onClick, disableChatButton: (_l = props.mobileChatTabHeader) === null || _l === void 0 ? void 0 : _l.disabled }),
29010
+ isDisabled$4((_j = props.callControlProps.options) === null || _j === void 0 ? void 0 : _j.participantsButton), onChatButtonClicked: (_k = props.mobileChatTabHeader) === null || _k === void 0 ? void 0 : _k.onClick, disableChatButton: (_l = props.mobileChatTabHeader) === null || _l === void 0 ? void 0 : _l.disabled }),
28821
29011
  props.mobileView && (React.createElement(ModalLocalAndRemotePIP, { modalLayerHostId: props.modalLayerHostId, hidden: !isSidePaneOpen, styles: pipStyles, strings: modalStrings, minDragPosition: minMaxDragPosition.minDragPosition, maxDragPosition: minMaxDragPosition.maxDragPosition, onDismissSidePane: () => {
28822
29012
  closePeoplePane();
28823
29013
  if (props.onCloseChatPane) {
@@ -32274,7 +32464,8 @@ class AzureCommunicationCallAdapter {
32274
32464
  this.stopScreenShare.bind(this);
32275
32465
  /* @conditional-compile-remove(raise-hand) */
32276
32466
  this.raiseHand.bind(this);
32277
- /* @conditional-compile-remove(raise-hand) */
32467
+ /* @conditional-compile-remove(reaction) */
32468
+ this.onReactionClicked.bind(this);
32278
32469
  this.lowerHand.bind(this);
32279
32470
  this.removeParticipant.bind(this);
32280
32471
  this.createStreamView.bind(this);
@@ -32598,6 +32789,14 @@ class AzureCommunicationCallAdapter {
32598
32789
  }));
32599
32790
  });
32600
32791
  }
32792
+ /* @conditional-compile-remove(reaction) */
32793
+ onReactionClicked(reaction) {
32794
+ return __awaiter$5(this, void 0, void 0, function* () {
32795
+ return yield this.asyncTeeErrorToEventEmitter(() => __awaiter$5(this, void 0, void 0, function* () {
32796
+ yield this.handlers.onReactionClicked(reaction);
32797
+ }));
32798
+ });
32799
+ }
32601
32800
  /* @conditional-compile-remove(unsupported-browser) */
32602
32801
  allowUnsupportedBrowserVersion() {
32603
32802
  this.context.setAllowedUnsupportedBrowser();
@@ -33402,6 +33601,8 @@ class CallWithChatBackedCallAdapter {
33402
33601
  this.raiseHand = () => __awaiter$4(this, void 0, void 0, function* () { return yield this.callWithChatAdapter.raiseHand(); });
33403
33602
  /* @conditional-compile-remove(raise-hand) */
33404
33603
  this.lowerHand = () => __awaiter$4(this, void 0, void 0, function* () { return yield this.callWithChatAdapter.lowerHand(); });
33604
+ /* @conditional-compile-remove(reaction) */
33605
+ this.onReactionClicked = (reaction) => __awaiter$4(this, void 0, void 0, function* () { return yield this.callWithChatAdapter.onReactionClicked(reaction); });
33405
33606
  this.removeParticipant = (userId) => __awaiter$4(this, void 0, void 0, function* () {
33406
33607
  let participant = userId;
33407
33608
  /* @conditional-compile-remove(PSTN-calls) */
@@ -34058,7 +34259,7 @@ const checkShowChatButton = (callControls) => {
34058
34259
  return callControls.chatButton !== false;
34059
34260
  };
34060
34261
  const checkChatButtonIsDisabled = (callControls) => {
34061
- return typeof callControls === 'object' && isDisabled$3(callControls === null || callControls === void 0 ? void 0 : callControls.chatButton);
34262
+ return typeof callControls === 'object' && isDisabled$4(callControls === null || callControls === void 0 ? void 0 : callControls.chatButton);
34062
34263
  };
34063
34264
  const isOnHoldTrampoline = (page) => {
34064
34265
  /* @conditional-compile-remove(PSTN-calls) */ /* @conditional-compile-remove(one-to-n-calling) */
@@ -34261,6 +34462,8 @@ class AzureCommunicationCallWithChatAdapter {
34261
34462
  this.raiseHand.bind(this);
34262
34463
  /* @conditional-compile-remove(raise-hand) */
34263
34464
  this.lowerHand.bind(this);
34465
+ /* @conditional-compile-remove(reaction) */
34466
+ this.onReactionClicked.bind(this);
34264
34467
  this.removeParticipant.bind(this);
34265
34468
  this.createStreamView.bind(this);
34266
34469
  this.disposeStreamView.bind(this);
@@ -34459,6 +34662,12 @@ class AzureCommunicationCallWithChatAdapter {
34459
34662
  yield this.callAdapter.lowerHand();
34460
34663
  });
34461
34664
  }
34665
+ /* @conditional-compile-remove(reaction) */
34666
+ onReactionClicked(reaction) {
34667
+ return __awaiter$2(this, void 0, void 0, function* () {
34668
+ yield this.callAdapter.onReactionClicked(reaction);
34669
+ });
34670
+ }
34462
34671
  /** Create a stream view for a remote participants video feed. */
34463
34672
  createStreamView(remoteUserId, options) {
34464
34673
  return __awaiter$2(this, void 0, void 0, function* () {