@azure/communication-react 1.4.2-alpha-202211160016.0 → 1.4.2-alpha-202211190015.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (28) hide show
  1. package/dist/communication-react.d.ts +21 -0
  2. package/dist/dist-cjs/communication-react/index.js +86 -8
  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/communication-react/src/index.d.ts +1 -0
  7. package/dist/dist-esm/communication-react/src/index.js.map +1 -1
  8. package/dist/dist-esm/react-components/src/components/DevicePermissions/DomainPermissionsScaffolding.js +9 -5
  9. package/dist/dist-esm/react-components/src/components/DevicePermissions/DomainPermissionsScaffolding.js.map +1 -1
  10. package/dist/dist-esm/react-components/src/components/VideoTile.d.ts +16 -1
  11. package/dist/dist-esm/react-components/src/components/VideoTile.js +22 -2
  12. package/dist/dist-esm/react-components/src/components/VideoTile.js.map +1 -1
  13. package/dist/dist-esm/react-components/src/components/styles/DomainPermissions.styles.d.ts +4 -0
  14. package/dist/dist-esm/react-components/src/components/styles/DomainPermissions.styles.js +10 -1
  15. package/dist/dist-esm/react-components/src/components/styles/DomainPermissions.styles.js.map +1 -1
  16. package/dist/dist-esm/react-components/src/components/styles/SendBox.styles.js +1 -1
  17. package/dist/dist-esm/react-components/src/components/styles/SendBox.styles.js.map +1 -1
  18. package/dist/dist-esm/react-components/src/components/styles/VideoTile.styles.d.ts +5 -1
  19. package/dist/dist-esm/react-components/src/components/styles/VideoTile.styles.js +35 -0
  20. package/dist/dist-esm/react-components/src/components/styles/VideoTile.styles.js.map +1 -1
  21. package/dist/dist-esm/react-components/src/components/utils.d.ts +6 -1
  22. package/dist/dist-esm/react-components/src/components/utils.js +16 -0
  23. package/dist/dist-esm/react-components/src/components/utils.js.map +1 -1
  24. package/dist/dist-esm/react-components/src/index.d.ts +1 -0
  25. package/dist/dist-esm/react-components/src/index.js.map +1 -1
  26. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/AzureCommunicationCallAdapter.d.ts +4 -0
  27. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/AzureCommunicationCallAdapter.js.map +1 -1
  28. package/package.json +11 -11
@@ -52,6 +52,7 @@ import { IContextualMenuItemStyles } from '@fluentui/react';
52
52
  import { IContextualMenuStyles } from '@fluentui/react';
53
53
  import { IDropdownOption } from '@fluentui/react';
54
54
  import { IDropdownStyles } from '@fluentui/react';
55
+ import { IIconProps } from '@fluentui/react';
55
56
  import { ILinkStyles } from '@fluentui/react';
56
57
  import { IMessageBarProps } from '@fluentui/react';
57
58
  import { IncomingCall } from '@azure/communication-calling';
@@ -261,6 +262,10 @@ export declare type AzureCommunicationCallAdapterArgs = {
261
262
  displayName: string;
262
263
  credential: CommunicationTokenCredential;
263
264
  locator: CallAdapterLocator;
265
+ /**
266
+ * A phone number in E.164 format procured using Azure Communication Services that will be used to represent callers identity.
267
+ * E.164 numbers are formatted as [+] [country code] [phone number including area code]. For example, +14255550123 for a US phone number.
268
+ */
264
269
  alternateCallerId?: string;
265
270
  /**
266
271
  * Optional parameters for the {@link AzureCommunicationCallAdapter} created
@@ -8075,6 +8080,18 @@ export declare interface VideoStreamRendererViewState {
8075
8080
  */
8076
8081
  export declare const VideoTile: (props: VideoTileProps) => JSX.Element;
8077
8082
 
8083
+ /**
8084
+ * @beta
8085
+ * MenuItems to be diplayed in video tile in the contextual/drawer menu
8086
+ */
8087
+ export declare type VideoTileMenuItems = Array<{
8088
+ key: string;
8089
+ ariaLabel?: string;
8090
+ text: string;
8091
+ onClick: () => void;
8092
+ iconProps: IIconProps;
8093
+ }>;
8094
+
8078
8095
  /**
8079
8096
  * Props for {@link VideoTile}.
8080
8097
  *
@@ -8113,6 +8130,10 @@ export declare interface VideoTileProps {
8113
8130
  * Whether the video is muted or not.
8114
8131
  */
8115
8132
  isMuted?: boolean;
8133
+ /**
8134
+ * Display custom menu items in the VideoTile's contextual menu.
8135
+ */
8136
+ menuItems?: VideoTileMenuItems;
8116
8137
  /**
8117
8138
  * If true, the video tile will show the pin icon.
8118
8139
  */
@@ -202,7 +202,7 @@ const _toCommunicationIdentifier = (id) => {
202
202
  // Copyright (c) Microsoft Corporation.
203
203
  // Licensed under the MIT license.
204
204
  // GENERATED FILE. DO NOT EDIT MANUALLY.
205
- var telemetryVersion = '1.4.2-alpha-202211160016.0';
205
+ var telemetryVersion = '1.4.2-alpha-202211190015.0';
206
206
 
207
207
  // Copyright (c) Microsoft Corporation.
208
208
  /**
@@ -4354,6 +4354,22 @@ const messageBarType = (errorType) => {
4354
4354
  return react.MessageBarType.error;
4355
4355
  }
4356
4356
  };
4357
+ /**
4358
+ * @private
4359
+ */
4360
+ const mapMenuItemsToContextualMenuItems = (menuItems) => {
4361
+ const contextualMenuItems = [];
4362
+ menuItems.map((item) => {
4363
+ contextualMenuItems.push({
4364
+ key: item.key,
4365
+ text: item.text,
4366
+ ariaLabel: item.ariaLabel,
4367
+ onClick: item.onClick,
4368
+ iconProps: item.iconProps
4369
+ });
4370
+ });
4371
+ return contextualMenuItems;
4372
+ };
4357
4373
  /**
4358
4374
  * @private
4359
4375
  * @param errorType
@@ -4661,7 +4677,7 @@ const sendIconStyle = react.mergeStyles({
4661
4677
  * @private
4662
4678
  */
4663
4679
  const fileUploadCardsStyles = react.mergeStyles({
4664
- margin: '0.25rem',
4680
+ margin: '0 0.25rem 0.25rem 0.25rem',
4665
4681
  maxHeight: '12.5rem',
4666
4682
  overflow: 'auto'
4667
4683
  });
@@ -7955,6 +7971,41 @@ const participantStateStringStyles = (theme) => {
7955
7971
  padding: '0.1rem'
7956
7972
  };
7957
7973
  };
7974
+ /**
7975
+ * @private
7976
+ */
7977
+ const menuButtonStyles = {
7978
+ root: {
7979
+ background: 'none',
7980
+ border: 'none',
7981
+ borderRadius: 0,
7982
+ minHeight: '0.125rem',
7983
+ minWidth: '2rem',
7984
+ width: '100%',
7985
+ maxWidth: '3rem',
7986
+ svg: {
7987
+ verticalAlign: 'text-top'
7988
+ }
7989
+ },
7990
+ splitButtonMenuButton: {
7991
+ border: 'none'
7992
+ },
7993
+ flexContainer: {
7994
+ flexFlow: 'column',
7995
+ display: 'contents'
7996
+ },
7997
+ label: {
7998
+ fontSize: '0.625rem',
7999
+ fontWeight: '400',
8000
+ lineHeight: '1rem',
8001
+ cursor: 'pointer',
8002
+ display: 'block',
8003
+ margin: '0rem 0.25rem',
8004
+ overflow: 'hidden',
8005
+ textOverflow: 'ellipsis',
8006
+ whiteSpace: 'nowrap'
8007
+ }
8008
+ };
7958
8009
 
7959
8010
  // Copyright (c) Microsoft Corporation.
7960
8011
  /**
@@ -7976,7 +8027,17 @@ const DefaultPlaceholder = (props) => {
7976
8027
  React__default['default'].createElement(react.Stack, { styles: defaultPersonaStyles },
7977
8028
  React__default['default'].createElement(react.Persona, { coinSize: coinSize, hidePersonaDetails: hidePersonaDetails, text: text !== null && text !== void 0 ? text : '', initialsTextColor: "white", "aria-label": noVideoAvailableAriaLabel !== null && noVideoAvailableAriaLabel !== void 0 ? noVideoAvailableAriaLabel : '', showOverflowTooltip: false }))));
7978
8029
  };
8030
+ /* @conditional-compile-remove(pinned-participants) */
8031
+ const menuIcon = () => React__default['default'].createElement(reactIcons.MoreHorizontal20Filled, { primaryFill: "currentColor" });
7979
8032
  const defaultPersonaStyles = { root: { margin: 'auto', maxHeight: '100%' } };
8033
+ /* @conditional-compile-remove(pinned-participants) */
8034
+ const VideoTileMoreOptionsButton = (props) => {
8035
+ const { menuItems, menuStyles } = props;
8036
+ if (!menuItems || menuItems.length === 0) {
8037
+ return React__default['default'].createElement(React__default['default'].Fragment, null);
8038
+ }
8039
+ return (React__default['default'].createElement(react.DefaultButton, { styles: react.concatStyleSets(menuButtonStyles, menuStyles !== null && menuStyles !== void 0 ? menuStyles : {}), onRenderIcon: menuIcon, menuIconProps: { hidden: true }, menuProps: { items: mapMenuItemsToContextualMenuItems(menuItems), directionalHint: react.DirectionalHint.topRightEdge } }));
8040
+ };
7980
8041
  /**
7981
8042
  * A component to render the video stream for a single call participant.
7982
8043
  *
@@ -7987,7 +8048,9 @@ const defaultPersonaStyles = { root: { margin: 'auto', maxHeight: '100%' } };
7987
8048
  const VideoTile = (props) => {
7988
8049
  const { children, displayName, initialsName, isMirrored, isMuted,
7989
8050
  /* @conditional-compile-remove(pinned-participants) */
7990
- isPinned, onRenderPlaceholder, renderElement, showLabel = true, showMuteIndicator = true, styles, userId, noVideoAvailableAriaLabel, isSpeaking, personaMinSize = DEFAULT_PERSONA_MIN_SIZE_PX, personaMaxSize = DEFAULT_PERSONA_MAX_SIZE_PX } = props;
8051
+ isPinned, onRenderPlaceholder, renderElement, showLabel = true, showMuteIndicator = true, styles, userId, noVideoAvailableAriaLabel, isSpeaking,
8052
+ /* @conditional-compile-remove(pinned-participants) */
8053
+ menuItems, personaMinSize = DEFAULT_PERSONA_MIN_SIZE_PX, personaMaxSize = DEFAULT_PERSONA_MAX_SIZE_PX } = props;
7991
8054
  const [personaSize, setPersonaSize] = React.useState(100);
7992
8055
  const videoTileRef = React.useRef(null);
7993
8056
  const locale = useLocale$1();
@@ -8041,6 +8104,8 @@ const VideoTile = (props) => {
8041
8104
  showMuteIndicator && isMuted && (React__default['default'].createElement(react.Stack, { className: react.mergeStyles(iconContainerStyle) },
8042
8105
  React__default['default'].createElement(react.Icon, { iconName: "VideoTileMicOff" }))),
8043
8106
  /* @conditional-compile-remove(pinned-participants) */
8107
+ React__default['default'].createElement(VideoTileMoreOptionsButton, { menuItems: menuItems, menuStyles: props.styles }),
8108
+ /* @conditional-compile-remove(pinned-participants) */
8044
8109
  isPinned && (React__default['default'].createElement(react.Stack, { className: react.mergeStyles(iconContainerStyle) },
8045
8110
  React__default['default'].createElement(react.Icon, { iconName: "VideoTilePinned", className: react.mergeStyles(pinIconStyle) })))))),
8046
8111
  children && (React__default['default'].createElement(react.Stack, { className: react.mergeStyles(overlayContainerStyles, styles === null || styles === void 0 ? void 0 : styles.overlayContainer) }, children)))));
@@ -10078,10 +10143,19 @@ const MicrophoneButton = (props) => {
10078
10143
  */
10079
10144
  const iconContainerStyles = {
10080
10145
  root: {
10081
- margin: 'auto',
10146
+ marginTop: 'auto',
10147
+ marginBottom: 'auto',
10082
10148
  position: 'relative'
10083
10149
  }
10084
10150
  };
10151
+ /**
10152
+ * @internal
10153
+ */
10154
+ const iconBannerContainerStyles = {
10155
+ root: {
10156
+ paddingBottom: '1rem'
10157
+ }
10158
+ };
10085
10159
  /**
10086
10160
  * @internal
10087
10161
  */
@@ -10154,18 +10228,22 @@ const primaryButtonStyles = {
10154
10228
  };
10155
10229
 
10156
10230
  // Copyright (c) Microsoft Corporation.
10231
+ /**
10232
+ * spacing for the icons in the banner.
10233
+ */
10234
+ const tokens = { childrenGap: '2rem' };
10157
10235
  /** @private */
10158
10236
  const DomainPermissionsContainer = (props) => {
10159
10237
  var _a, _b;
10160
10238
  const { appName, onTroubleshootingClick, onPrimaryButtonClick, strings } = props;
10161
10239
  const theme = react.useTheme();
10162
10240
  return (React__default['default'].createElement(react.Stack, { style: { padding: '2rem', maxWidth: '25.375rem' }, "aria-label": strings === null || strings === void 0 ? void 0 : strings.ariaLabel },
10163
- React__default['default'].createElement(react.Stack, { horizontal: true, style: { paddingBottom: '1rem' }, horizontalAlign: 'space-between' },
10164
- props.cameraIconName && (React__default['default'].createElement(react.Stack, { styles: iconContainerStyles, horizontalAlign: 'center' },
10241
+ React__default['default'].createElement(react.Stack, { styles: iconBannerContainerStyles, horizontal: true, horizontalAlign: 'center', verticalFill: true, tokens: tokens },
10242
+ props.cameraIconName && (React__default['default'].createElement(react.Stack, null,
10165
10243
  React__default['default'].createElement(react.Icon, { styles: iconPrimaryStyles, iconName: props.cameraIconName }))),
10166
- props.connectorIconName && (React__default['default'].createElement(react.Stack, { styles: iconContainerStyles, horizontalAlign: 'center' },
10244
+ props.connectorIconName && (React__default['default'].createElement(react.Stack, { styles: iconContainerStyles, horizontal: true },
10167
10245
  React__default['default'].createElement(react.Icon, { styles: sparkleIconBackdropStyles(theme), iconName: props.connectorIconName }))),
10168
- props.microphoneIconName && (React__default['default'].createElement(react.Stack, { styles: iconContainerStyles, horizontalAlign: 'center' },
10246
+ props.microphoneIconName && (React__default['default'].createElement(react.Stack, null,
10169
10247
  React__default['default'].createElement(react.Icon, { styles: iconPrimaryStyles, iconName: props.microphoneIconName })))),
10170
10248
  React__default['default'].createElement(react.Stack, { styles: textContainerStyles },
10171
10249
  strings && isValidString(strings === null || strings === void 0 ? void 0 : strings.primaryText) && (React__default['default'].createElement(react.Text, { styles: primaryTextStyles }, appName ? _formatString(strings.primaryText, { appName: appName }) : strings.primaryText)),