@azure/communication-react 1.18.0-alpha-202406280014 → 1.18.0-alpha-202407030014

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 (53) hide show
  1. package/dist/communication-react.d.ts +31 -2
  2. package/dist/dist-cjs/communication-react/{ChatMessageComponentAsRichTextEditBox-Bl9FzI6X.js → ChatMessageComponentAsRichTextEditBox-C4T9YdwD.js} +2 -2
  3. package/dist/dist-cjs/communication-react/{ChatMessageComponentAsRichTextEditBox-Bl9FzI6X.js.map → ChatMessageComponentAsRichTextEditBox-C4T9YdwD.js.map} +1 -1
  4. package/dist/dist-cjs/communication-react/{RichTextSendBoxWrapper-G-04IaQB.js → RichTextSendBoxWrapper-DlqoU3q2.js} +2 -2
  5. package/dist/dist-cjs/communication-react/{RichTextSendBoxWrapper-G-04IaQB.js.map → RichTextSendBoxWrapper-DlqoU3q2.js.map} +1 -1
  6. package/dist/dist-cjs/communication-react/{index-CWs0GTYF.js → index-C4EF4-G7.js} +74 -59
  7. package/dist/dist-cjs/communication-react/index-C4EF4-G7.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/calling-component-bindings/src/hooks/usePropsFor.d.ts +3 -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/notificationStackSelector.js +7 -2
  15. package/dist/dist-esm/calling-component-bindings/src/notificationStackSelector.js.map +1 -1
  16. package/dist/dist-esm/calling-stateful-client/src/CallClientState.d.ts +15 -0
  17. package/dist/dist-esm/calling-stateful-client/src/CallClientState.js.map +1 -1
  18. package/dist/dist-esm/communication-react/src/index.d.ts +1 -0
  19. package/dist/dist-esm/communication-react/src/index.js.map +1 -1
  20. package/dist/dist-esm/react-components/src/components/MeetingConferencePhoneInfo.d.ts +3 -3
  21. package/dist/dist-esm/react-components/src/components/MeetingConferencePhoneInfo.js +1 -1
  22. package/dist/dist-esm/react-components/src/components/MeetingConferencePhoneInfo.js.map +1 -1
  23. package/dist/dist-esm/react-components/src/components/NotificationStack.d.ts +4 -0
  24. package/dist/dist-esm/react-components/src/components/NotificationStack.js.map +1 -1
  25. package/dist/dist-esm/react-components/src/components/RichTextEditor/RichTextEditor.js +1 -1
  26. package/dist/dist-esm/react-components/src/components/RichTextEditor/RichTextEditor.js.map +1 -1
  27. package/dist/dist-esm/react-components/src/components/utils.js +3 -1
  28. package/dist/dist-esm/react-components/src/components/utils.js.map +1 -1
  29. package/dist/dist-esm/react-components/src/theming/icons.js +1 -2
  30. package/dist/dist-esm/react-components/src/theming/icons.js.map +1 -1
  31. package/dist/dist-esm/react-composites/src/composites/CallComposite/CallComposite.js +17 -9
  32. package/dist/dist-esm/react-composites/src/composites/CallComposite/CallComposite.js.map +1 -1
  33. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/CallArrangement.d.ts +1 -0
  34. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/CallArrangement.js +12 -2
  35. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/CallArrangement.js.map +1 -1
  36. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/CallPage.d.ts +1 -0
  37. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/CallPage.js +6 -2
  38. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/CallPage.js.map +1 -1
  39. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/HoldPage.d.ts +4 -2
  40. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/HoldPage.js +3 -1
  41. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/HoldPage.js.map +1 -1
  42. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/LobbyPage.d.ts +4 -2
  43. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/LobbyPage.js +3 -1
  44. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/LobbyPage.js.map +1 -1
  45. package/dist/dist-esm/react-composites/src/composites/CallComposite/styles/CallPage.styles.d.ts +4 -0
  46. package/dist/dist-esm/react-composites/src/composites/CallComposite/styles/CallPage.styles.js +10 -0
  47. package/dist/dist-esm/react-composites/src/composites/CallComposite/styles/CallPage.styles.js.map +1 -1
  48. package/dist/dist-esm/react-composites/src/composites/CallComposite/types/ErrorTracking.d.ts +6 -2
  49. package/dist/dist-esm/react-composites/src/composites/CallComposite/types/ErrorTracking.js.map +1 -1
  50. package/dist/dist-esm/react-composites/src/composites/CallComposite/utils/TrackErrors.d.ts +5 -4
  51. package/dist/dist-esm/react-composites/src/composites/CallComposite/utils/TrackErrors.js.map +1 -1
  52. package/package.json +6 -6
  53. package/dist/dist-cjs/communication-react/index-CWs0GTYF.js.map +0 -1
@@ -29,7 +29,9 @@ import { Prompt } from '../components/Prompt';
29
29
  */
30
30
  export const CallPage = (props) => {
31
31
  var _a, _b;
32
- const { callInvitationURL, onFetchAvatarPersonaData, onFetchParticipantMenuItems, options, mobileView, galleryLayout = 'floatingLocalVideo', onUserSetGalleryLayoutChange, userSetOverflowGalleryPosition = 'Responsive', onSetUserSetOverflowGalleryPosition, onCloseChatPane, pinnedParticipants, setPinnedParticipants, compositeAudioContext, disableAutoShowDtmfDialer = false } = props;
32
+ const { callInvitationURL, onFetchAvatarPersonaData, onFetchParticipantMenuItems, options, mobileView, galleryLayout = 'floatingLocalVideo', onUserSetGalleryLayoutChange, userSetOverflowGalleryPosition = 'Responsive', onSetUserSetOverflowGalleryPosition, onCloseChatPane, pinnedParticipants, setPinnedParticipants, compositeAudioContext, disableAutoShowDtmfDialer = false,
33
+ /* @conditional-compile-remove(notifications) */
34
+ latestNotifications } = props;
33
35
  // To use useProps to get these states, we need to create another file wrapping Call,
34
36
  // It seems unnecessary in this case, so we get the updated states using this approach.
35
37
  const { callStatus } = useSelector(callStatusSelector);
@@ -67,7 +69,9 @@ export const CallPage = (props) => {
67
69
  options: callControlOptions,
68
70
  increaseFlyoutItemSize: mobileView
69
71
  }, onFetchAvatarPersonaData: onFetchAvatarPersonaData, mobileView: mobileView, modalLayerHostId: props.modalLayerHostId, onRenderGalleryContent: () => _isInCall(callStatus) ? (isNetworkHealthy(networkReconnectTileProps.networkReconnectValue) ? (onRenderGalleryContentTrampoline()) : (React.createElement(NetworkReconnectTile, Object.assign({}, networkReconnectTileProps, {
70
- /* /* @conditional-compile-remove(teams-meeting-conference) */ isMobile: mobileView })))) : (React.createElement(React.Fragment, null)), updateSidePaneRenderer: props.updateSidePaneRenderer, mobileChatTabHeader: props.mobileChatTabHeader, onCloseChatPane: onCloseChatPane, dataUiId: 'call-page', latestErrors: props.latestErrors, onDismissError: props.onDismissError, onUserSetOverflowGalleryPositionChange: onSetUserSetOverflowGalleryPosition, onUserSetGalleryLayoutChange: onUserSetGalleryLayoutChange, userSetGalleryLayout: galleryLayout, capabilitiesChangedNotificationBarProps: props.capabilitiesChangedNotificationBarProps, onSetDialpadPage: () => setDtmfDialerPresent(!dtmfDialerPresent), dtmfDialerPresent: dtmfDialerPresent, setIsPromptOpen: setIsPromptOpen, setPromptProps: setPromptProps, hideSpotlightButtons: (_b = options === null || options === void 0 ? void 0 : options.spotlight) === null || _b === void 0 ? void 0 : _b.hideSpotlightButtons, pinnedParticipants: pinnedParticipants, setPinnedParticipants: setPinnedParticipants }),
72
+ /* /* @conditional-compile-remove(teams-meeting-conference) */ isMobile: mobileView })))) : (React.createElement(React.Fragment, null)), updateSidePaneRenderer: props.updateSidePaneRenderer, mobileChatTabHeader: props.mobileChatTabHeader, onCloseChatPane: onCloseChatPane, dataUiId: 'call-page', latestErrors: props.latestErrors,
73
+ /* @conditional-compile-remove(notifications) */
74
+ latestNotifications: latestNotifications, onDismissError: props.onDismissError, onUserSetOverflowGalleryPositionChange: onSetUserSetOverflowGalleryPosition, onUserSetGalleryLayoutChange: onUserSetGalleryLayoutChange, userSetGalleryLayout: galleryLayout, capabilitiesChangedNotificationBarProps: props.capabilitiesChangedNotificationBarProps, onSetDialpadPage: () => setDtmfDialerPresent(!dtmfDialerPresent), dtmfDialerPresent: dtmfDialerPresent, setIsPromptOpen: setIsPromptOpen, setPromptProps: setPromptProps, hideSpotlightButtons: (_b = options === null || options === void 0 ? void 0 : options.spotlight) === null || _b === void 0 ? void 0 : _b.hideSpotlightButtons, pinnedParticipants: pinnedParticipants, setPinnedParticipants: setPinnedParticipants }),
71
75
  React.createElement(Prompt, Object.assign({ isOpen: isPromptOpen, onDismiss: () => setIsPromptOpen(false) }, promptProps))));
72
76
  };
73
77
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"CallPage.js","sourceRoot":"","sources":["../../../../../../../../react-composites/src/composites/CallComposite/pages/CallPage.tsx"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAElC,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AACjE,OAAO,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,sDAA6C;AACjE,OAAO,EAAsB,QAAQ,EAAgC,4CAAmC;AAIxG,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAEjC,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAE/C,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EAAE,oBAAoB,EAAE,MAAM,oCAAoC,CAAC;AAC1E,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AACrE,OAAO,EAAE,wBAAwB,EAAE,MAAM,uCAAuC,CAAC;AACjF,OAAO,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;AACzE,OAAO,EAAE,sCAAsC,EAAE,MAAM,mCAAmC,CAAC;AAC3F,OAAO,EAAE,yBAAyB,EAAE,MAAM,wCAAwC,CAAC;AACnF,OAAO,EAAE,4BAA4B,EAAE,MAAM,2CAA2C,CAAC;AACzF,OAAO,EAAE,2BAA2B,EAAE,MAAM,UAAU,CAAC;AAKvD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,EAAE,MAAM,EAAe,MAAM,sBAAsB,CAAC;AA8B3D;;GAEG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,KAAoB,EAAe,EAAE;;IAC5D,MAAM,EACJ,iBAAiB,EACjB,wBAAwB,EACxB,2BAA2B,EAC3B,OAAO,EACP,UAAU,EACV,aAAa,GAAG,oBAAoB,EACpC,4BAA4B,EAC5B,8BAA8B,GAAG,YAAY,EAC7C,mCAAmC,EACnC,eAAe,EACf,kBAAkB,EAClB,qBAAqB,EACrB,qBAAqB,EACrB,yBAAyB,GAAG,KAAK,EAClC,GAAG,KAAK,CAAC;IAEV,qFAAqF;IACrF,uFAAuF;IACvF,MAAM,EAAE,UAAU,EAAE,GAAG,WAAW,CAAC,kBAAkB,CAAC,CAAC;IACvD,MAAM,iBAAiB,GAAG,WAAW,CAAC,oBAAoB,CAAC,CAAC;IAC5D,MAAM,oBAAoB,GAAG,WAAW,CAAC,YAAY,CAAC,CAAC;IACvD,MAAM,qBAAqB,GAAG,WAAW,CAAC,wBAAwB,CAAC,CAAC;IACpE,MAAM,aAAa,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAC;IAC5C,MAAM,sBAAsB,GAAG,WAAW,CAAC,yBAAyB,CAAC,CAAC;IACtE,MAAM,yBAAyB,GAAG,WAAW,CAAC,4BAA4B,CAAC,CAAC;IAC5E,MAAM,2BAA2B,GAAG,WAAW,CAAC,sCAAsC,CAAC,CAAC;IACxF,MAAM,OAAO,GAAG,WAAW,CAAC,gBAAgB,CAAC,CAAC;IAC9C,MAAM,yBAAyB,GAAG,cAAc,CAAC,OAAO,EAAE,2BAA2B,CAAC,CAAC;IACvF,MAAM,CAAC,iBAAiB,EAAE,oBAAoB,CAAC,GAAG,QAAQ,CACxD,yBAAyB,IAAI,yBAAyB,CACvD,CAAC;IAEF,MAAM,OAAO,GAAG,SAAS,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;IAEzC,yDAAyD;IACzD,MAAM,kBAAkB,GAAG,UAAU,CAAC,CAAC,CAAC,2BAA2B,CAAC,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,YAAY,CAAC,CAAC,CAAC,CAAC,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,YAAY,CAAC;IAEnH,MAAM,gBAAgB,GAAG,KAAK,CAAC,gBAAgB,CAAC,CAAC;IACjD,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,QAAQ,CAAU,KAAK,CAAC,CAAC;IACjE,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,QAAQ,EAAe,CAAC;IAE9D,MAAM,gCAAgC,GAAG,GAAgB,EAAE;;QACzD,IAAI,iBAAiB,EAAE,CAAC;YACtB,OAAO,CACL,oBAAC,eAAe,IACd,UAAU,EAAE,KAAK,CAAC,UAAU,EAC5B,gBAAgB,EAAE,KAAK,CAAC,gBAAgB,EACxC,OAAO,EAAE,KAAK,CAAC,OAAO,EACtB,sBAAsB,EAAE,KAAK,CAAC,sBAAsB,EACpD,mBAAmB,EAAE,KAAK,CAAC,mBAAmB,EAC9C,YAAY,EAAE,KAAK,CAAC,YAAY,EAChC,cAAc,EAAE,KAAK,CAAC,cAAc,EACpC,uCAAuC,EAAE,KAAK,CAAC,uCAAuC,EACtF,gBAAgB,EAAE,GAAG,EAAE,CAAC,oBAAoB,CAAC,CAAC,iBAAiB,CAAC,EAChE,iBAAiB,EAAE,iBAAiB,EACpC,qBAAqB,EAAE,qBAAqB,GAC5C,CACH,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,OAAO,CACL,oBAAC,YAAY,kBACX,QAAQ,EAAE,UAAU,IAChB,iBAAiB,EACjB,oBAAoB,IACxB,wBAAwB,EAAE,wBAAwB,EAClD,0BAA0B,EAAE,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,0BAA0B,EAC/D,gBAAgB,EAAE,gBAAgB,EAClC,qBAAqB,EAAE,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,cAAc,EAC9C,8BAA8B,EAAE,8BAA8B,EAC9D,oBAAoB,EAAE,aAAa,EACnC,kBAAkB,EAAE,kBAAkB,EACtC,qBAAqB,EAAE,qBAAqB,EAC5C,eAAe,EAAE,eAAe,EAChC,cAAc,EAAE,cAAc,EAC9B,oBAAoB,EAAE,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,SAAS,0CAAE,oBAAoB,EAC9D,iBAAiB,EAAE,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,iBAAiB,IAC7C,CACH,CAAC;QACJ,CAAC;IACH,CAAC,CAAC;IAEF,OAAO,CACL;QACE,oBAAC,eAAe,IACd,EAAE,EAAE,gBAAgB,EACpB,qBAAqB,kCAAO,qBAAqB,KAAE,OAAO,KAC1D,aAAa,EAAE,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,QAAQ,MAAK,KAAK,IAAI,aAAa;YAC3D,gDAAgD;YAChD,sBAAsB,EAAE,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,QAAQ,mCAAI,IAAI,EACjD,sBAAsB,EAAE,sBAAsB,EAC9C,gBAAgB,EAAE;gBAChB,iBAAiB,EAAE,iBAAiB;gBACpC,2BAA2B,EAAE,2BAA2B;gBACxD,OAAO,EAAE,kBAAkB;gBAC3B,sBAAsB,EAAE,UAAU;aACnC,EACD,wBAAwB,EAAE,wBAAwB,EAClD,UAAU,EAAE,UAAU,EACtB,gBAAgB,EAAE,KAAK,CAAC,gBAAgB,EACxC,sBAAsB,EAAE,GAAG,EAAE,CAC3B,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CACtB,gBAAgB,CAAC,yBAAyB,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAClE,gCAAgC,EAAE,CACnC,CAAC,CAAC,CAAC,CACF,oBAAC,oBAAoB,oBACf,yBAAyB;gBAC7B,8DAA8D,CAAC,QAAQ,EAAE,UAAU,IACnF,CACH,CACF,CAAC,CAAC,CAAC,CACF,yCAAK,CACN,EAEH,sBAAsB,EAAE,KAAK,CAAC,sBAAsB,EACpD,mBAAmB,EAAE,KAAK,CAAC,mBAAmB,EAC9C,eAAe,EAAE,eAAe,EAChC,QAAQ,EAAE,WAAW,EACrB,YAAY,EAAE,KAAK,CAAC,YAAY,EAChC,cAAc,EAAE,KAAK,CAAC,cAAc,EACpC,sCAAsC,EAAE,mCAAmC,EAC3E,4BAA4B,EAAE,4BAA4B,EAC1D,oBAAoB,EAAE,aAAa,EACnC,uCAAuC,EAAE,KAAK,CAAC,uCAAuC,EACtF,gBAAgB,EAAE,GAAG,EAAE,CAAC,oBAAoB,CAAC,CAAC,iBAAiB,CAAC,EAChE,iBAAiB,EAAE,iBAAiB,EACpC,eAAe,EAAE,eAAe,EAChC,cAAc,EAAE,cAAc,EAC9B,oBAAoB,EAAE,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,SAAS,0CAAE,oBAAoB,EAC9D,kBAAkB,EAAE,kBAAkB,EACtC,qBAAqB,EAAE,qBAAqB,GAC5C;QACD,oBAAC,MAAM,kBAAC,MAAM,EAAE,YAAY,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC,eAAe,CAAC,KAAK,CAAC,IAAM,WAAW,EAAI,CAC1F,CACJ,CAAC;AACJ,CAAC,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,KAA8C,EAAW,EAAE;IAC1F,oFAAoF;IACpF,4EAA4E;IAC5E,uEAAuE;IACvE,OAAO,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,KAAK,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,iBAAiB,CAAC,IAAI,CAAC;AACtG,CAAC,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { DiagnosticQuality } from '@azure/communication-calling';\nimport { useId } from '@fluentui/react-hooks';\nimport { _isInCall } from '@internal/calling-component-bindings';\nimport { ActiveErrorMessage, ErrorBar, ParticipantMenuItemsCallback } from '@internal/react-components';\n/* @conditional-compile-remove(notifications) */\nimport { ActiveNotification } from '@internal/react-components';\nimport { VideoGalleryLayout } from '@internal/react-components';\nimport React from 'react';\nimport { useState } from 'react';\nimport { AvatarPersonaDataCallback } from '../../common/AvatarPersona';\nimport { useLocale } from '../../localization';\nimport { CallCompositeOptions } from '../CallComposite';\nimport { CallArrangement } from '../components/CallArrangement';\nimport { MediaGallery } from '../components/MediaGallery';\nimport { NetworkReconnectTile } from '../components/NetworkReconnectTile';\nimport { useHandlers } from '../hooks/useHandlers';\nimport { usePropsFor } from '../hooks/usePropsFor';\nimport { useSelector } from '../hooks/useSelector';\nimport { callStatusSelector } from '../selectors/callStatusSelector';\nimport { complianceBannerSelector } from '../selectors/complianceBannerSelector';\nimport { mediaGallerySelector } from '../selectors/mediaGallerySelector';\nimport { getRemoteParticipantsConnectedSelector } from '../selectors/mediaGallerySelector';\nimport { mutedNotificationSelector } from '../selectors/mutedNotificationSelector';\nimport { networkReconnectTileSelector } from '../selectors/networkReconnectTileSelector';\nimport { reduceCallControlsForMobile } from '../utils';\nimport { MobileChatSidePaneTabHeaderProps } from '../../common/TabHeader';\nimport { SidePaneRenderer } from '../components/SidePane/SidePaneProvider';\n\nimport { CapabilitiesChangeNotificationBarProps } from '../components/CapabilitiesChangedNotificationBar';\nimport { DtmfDialpadPage } from './DtmfDialpadPage';\nimport { showDtmfDialer } from '../utils/MediaGalleryUtils';\nimport { getTargetCallees } from '../selectors/baseSelectors';\nimport { Prompt, PromptProps } from '../components/Prompt';\n\n/**\n * @private\n */\nexport interface CallPageProps {\n mobileView: boolean;\n modalLayerHostId: string;\n callInvitationURL?: string;\n onFetchAvatarPersonaData?: AvatarPersonaDataCallback;\n onFetchParticipantMenuItems?: ParticipantMenuItemsCallback;\n updateSidePaneRenderer: (renderer: SidePaneRenderer | undefined) => void;\n mobileChatTabHeader?: MobileChatSidePaneTabHeaderProps;\n options?: CallCompositeOptions;\n latestErrors: ActiveErrorMessage[] | /* @conditional-compile-remove(notifications) */ ActiveNotification[];\n onDismissError: (\n error: ActiveErrorMessage | /* @conditional-compile-remove(notifications) */ ActiveNotification\n ) => void;\n galleryLayout: VideoGalleryLayout;\n capabilitiesChangedNotificationBarProps?: CapabilitiesChangeNotificationBarProps;\n onUserSetGalleryLayoutChange?: (layout: VideoGalleryLayout) => void;\n userSetOverflowGalleryPosition?: 'Responsive' | 'horizontalTop';\n onSetUserSetOverflowGalleryPosition?: (position: 'Responsive' | 'horizontalTop') => void;\n onCloseChatPane?: () => void;\n pinnedParticipants?: string[];\n setPinnedParticipants?: (pinnedParticipants: string[]) => void;\n compositeAudioContext?: AudioContext;\n disableAutoShowDtmfDialer?: boolean;\n}\n\n/**\n * @private\n */\nexport const CallPage = (props: CallPageProps): JSX.Element => {\n const {\n callInvitationURL,\n onFetchAvatarPersonaData,\n onFetchParticipantMenuItems,\n options,\n mobileView,\n galleryLayout = 'floatingLocalVideo',\n onUserSetGalleryLayoutChange,\n userSetOverflowGalleryPosition = 'Responsive',\n onSetUserSetOverflowGalleryPosition,\n onCloseChatPane,\n pinnedParticipants,\n setPinnedParticipants,\n compositeAudioContext,\n disableAutoShowDtmfDialer = false\n } = props;\n\n // To use useProps to get these states, we need to create another file wrapping Call,\n // It seems unnecessary in this case, so we get the updated states using this approach.\n const { callStatus } = useSelector(callStatusSelector);\n const mediaGalleryProps = useSelector(mediaGallerySelector);\n const mediaGalleryHandlers = useHandlers(MediaGallery);\n const complianceBannerProps = useSelector(complianceBannerSelector);\n const errorBarProps = usePropsFor(ErrorBar);\n const mutedNotificationProps = useSelector(mutedNotificationSelector);\n const networkReconnectTileProps = useSelector(networkReconnectTileSelector);\n const remoteParticipantsConnected = useSelector(getRemoteParticipantsConnectedSelector);\n const callees = useSelector(getTargetCallees);\n const renderDtmfDialerFromStart = showDtmfDialer(callees, remoteParticipantsConnected);\n const [dtmfDialerPresent, setDtmfDialerPresent] = useState<boolean>(\n renderDtmfDialerFromStart && disableAutoShowDtmfDialer\n );\n\n const strings = useLocale().strings.call;\n\n // Reduce the controls shown when mobile view is enabled.\n const callControlOptions = mobileView ? reduceCallControlsForMobile(options?.callControls) : options?.callControls;\n\n const drawerMenuHostId = useId('drawerMenuHost');\n const [isPromptOpen, setIsPromptOpen] = useState<boolean>(false);\n const [promptProps, setPromptProps] = useState<PromptProps>();\n\n const onRenderGalleryContentTrampoline = (): JSX.Element => {\n if (dtmfDialerPresent) {\n return (\n <DtmfDialpadPage\n mobileView={props.mobileView}\n modalLayerHostId={props.modalLayerHostId}\n options={props.options}\n updateSidePaneRenderer={props.updateSidePaneRenderer}\n mobileChatTabHeader={props.mobileChatTabHeader}\n latestErrors={props.latestErrors}\n onDismissError={props.onDismissError}\n capabilitiesChangedNotificationBarProps={props.capabilitiesChangedNotificationBarProps}\n onSetDialpadPage={() => setDtmfDialerPresent(!dtmfDialerPresent)}\n dtmfDialerPresent={dtmfDialerPresent}\n compositeAudioContext={compositeAudioContext}\n />\n );\n } else {\n return (\n <MediaGallery\n isMobile={mobileView}\n {...mediaGalleryProps}\n {...mediaGalleryHandlers}\n onFetchAvatarPersonaData={onFetchAvatarPersonaData}\n remoteVideoTileMenuOptions={options?.remoteVideoTileMenuOptions}\n drawerMenuHostId={drawerMenuHostId}\n localVideoTileOptions={options?.localVideoTile}\n userSetOverflowGalleryPosition={userSetOverflowGalleryPosition}\n userSetGalleryLayout={galleryLayout}\n pinnedParticipants={pinnedParticipants}\n setPinnedParticipants={setPinnedParticipants}\n setIsPromptOpen={setIsPromptOpen}\n setPromptProps={setPromptProps}\n hideSpotlightButtons={options?.spotlight?.hideSpotlightButtons}\n videoTilesOptions={options?.videoTilesOptions}\n />\n );\n }\n };\n\n return (\n <>\n <CallArrangement\n id={drawerMenuHostId}\n complianceBannerProps={{ ...complianceBannerProps, strings }}\n errorBarProps={options?.errorBar !== false && errorBarProps}\n /* @conditional-compile-remove(notifications) */\n showErrorNotifications={options?.errorBar ?? true}\n mutedNotificationProps={mutedNotificationProps}\n callControlProps={{\n callInvitationURL: callInvitationURL,\n onFetchParticipantMenuItems: onFetchParticipantMenuItems,\n options: callControlOptions,\n increaseFlyoutItemSize: mobileView\n }}\n onFetchAvatarPersonaData={onFetchAvatarPersonaData}\n mobileView={mobileView}\n modalLayerHostId={props.modalLayerHostId}\n onRenderGalleryContent={() =>\n _isInCall(callStatus) ? (\n isNetworkHealthy(networkReconnectTileProps.networkReconnectValue) ? (\n onRenderGalleryContentTrampoline()\n ) : (\n <NetworkReconnectTile\n {...networkReconnectTileProps}\n /* /* @conditional-compile-remove(teams-meeting-conference) */ isMobile={mobileView}\n />\n )\n ) : (\n <></>\n )\n }\n updateSidePaneRenderer={props.updateSidePaneRenderer}\n mobileChatTabHeader={props.mobileChatTabHeader}\n onCloseChatPane={onCloseChatPane}\n dataUiId={'call-page'}\n latestErrors={props.latestErrors}\n onDismissError={props.onDismissError}\n onUserSetOverflowGalleryPositionChange={onSetUserSetOverflowGalleryPosition}\n onUserSetGalleryLayoutChange={onUserSetGalleryLayoutChange}\n userSetGalleryLayout={galleryLayout}\n capabilitiesChangedNotificationBarProps={props.capabilitiesChangedNotificationBarProps}\n onSetDialpadPage={() => setDtmfDialerPresent(!dtmfDialerPresent)}\n dtmfDialerPresent={dtmfDialerPresent}\n setIsPromptOpen={setIsPromptOpen}\n setPromptProps={setPromptProps}\n hideSpotlightButtons={options?.spotlight?.hideSpotlightButtons}\n pinnedParticipants={pinnedParticipants}\n setPinnedParticipants={setPinnedParticipants}\n />\n {<Prompt isOpen={isPromptOpen} onDismiss={() => setIsPromptOpen(false)} {...promptProps} />}\n </>\n );\n};\n\n/**\n * @private\n */\nexport const isNetworkHealthy = (value: DiagnosticQuality | boolean | undefined): boolean => {\n // We know that the value is actually of type DiagnosticQuality for this diagnostic.\n // We ignore any boolen values, considering the network to still be healthy.\n // Thus, only DiagnosticQuality.Poor or .Bad indicate network problems.\n return value === true || value === false || value === undefined || value === DiagnosticQuality.Good;\n};\n"]}
1
+ {"version":3,"file":"CallPage.js","sourceRoot":"","sources":["../../../../../../../../react-composites/src/composites/CallComposite/pages/CallPage.tsx"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { DiagnosticQuality } from '@azure/communication-calling';\nimport { useId } from '@fluentui/react-hooks';\nimport { _isInCall } from '@internal/calling-component-bindings';\nimport { ActiveErrorMessage, ErrorBar, ParticipantMenuItemsCallback } from '@internal/react-components';\n/* @conditional-compile-remove(notifications) */\nimport { ActiveNotification } from '@internal/react-components';\nimport { VideoGalleryLayout } from '@internal/react-components';\nimport React from 'react';\nimport { useState } from 'react';\nimport { AvatarPersonaDataCallback } from '../../common/AvatarPersona';\nimport { useLocale } from '../../localization';\nimport { CallCompositeOptions } from '../CallComposite';\nimport { CallArrangement } from '../components/CallArrangement';\nimport { MediaGallery } from '../components/MediaGallery';\nimport { NetworkReconnectTile } from '../components/NetworkReconnectTile';\nimport { useHandlers } from '../hooks/useHandlers';\nimport { usePropsFor } from '../hooks/usePropsFor';\nimport { useSelector } from '../hooks/useSelector';\nimport { callStatusSelector } from '../selectors/callStatusSelector';\nimport { complianceBannerSelector } from '../selectors/complianceBannerSelector';\nimport { mediaGallerySelector } from '../selectors/mediaGallerySelector';\nimport { getRemoteParticipantsConnectedSelector } from '../selectors/mediaGallerySelector';\nimport { mutedNotificationSelector } from '../selectors/mutedNotificationSelector';\nimport { networkReconnectTileSelector } from '../selectors/networkReconnectTileSelector';\nimport { reduceCallControlsForMobile } from '../utils';\nimport { MobileChatSidePaneTabHeaderProps } from '../../common/TabHeader';\nimport { SidePaneRenderer } from '../components/SidePane/SidePaneProvider';\n\nimport { CapabilitiesChangeNotificationBarProps } from '../components/CapabilitiesChangedNotificationBar';\nimport { DtmfDialpadPage } from './DtmfDialpadPage';\nimport { showDtmfDialer } from '../utils/MediaGalleryUtils';\nimport { getTargetCallees } from '../selectors/baseSelectors';\nimport { Prompt, PromptProps } from '../components/Prompt';\n\n/**\n * @private\n */\nexport interface CallPageProps {\n mobileView: boolean;\n modalLayerHostId: string;\n callInvitationURL?: string;\n onFetchAvatarPersonaData?: AvatarPersonaDataCallback;\n onFetchParticipantMenuItems?: ParticipantMenuItemsCallback;\n updateSidePaneRenderer: (renderer: SidePaneRenderer | undefined) => void;\n mobileChatTabHeader?: MobileChatSidePaneTabHeaderProps;\n options?: CallCompositeOptions;\n latestErrors: ActiveErrorMessage[] | /* @conditional-compile-remove(notifications) */ ActiveNotification[];\n /* @conditional-compile-remove(notifications) */\n latestNotifications: ActiveNotification[];\n onDismissError: (\n error: ActiveErrorMessage | /* @conditional-compile-remove(notifications) */ ActiveNotification\n ) => void;\n galleryLayout: VideoGalleryLayout;\n capabilitiesChangedNotificationBarProps?: CapabilitiesChangeNotificationBarProps;\n onUserSetGalleryLayoutChange?: (layout: VideoGalleryLayout) => void;\n userSetOverflowGalleryPosition?: 'Responsive' | 'horizontalTop';\n onSetUserSetOverflowGalleryPosition?: (position: 'Responsive' | 'horizontalTop') => void;\n onCloseChatPane?: () => void;\n pinnedParticipants?: string[];\n setPinnedParticipants?: (pinnedParticipants: string[]) => void;\n compositeAudioContext?: AudioContext;\n disableAutoShowDtmfDialer?: boolean;\n}\n\n/**\n * @private\n */\nexport const CallPage = (props: CallPageProps): JSX.Element => {\n const {\n callInvitationURL,\n onFetchAvatarPersonaData,\n onFetchParticipantMenuItems,\n options,\n mobileView,\n galleryLayout = 'floatingLocalVideo',\n onUserSetGalleryLayoutChange,\n userSetOverflowGalleryPosition = 'Responsive',\n onSetUserSetOverflowGalleryPosition,\n onCloseChatPane,\n pinnedParticipants,\n setPinnedParticipants,\n compositeAudioContext,\n disableAutoShowDtmfDialer = false,\n /* @conditional-compile-remove(notifications) */\n latestNotifications\n } = props;\n\n // To use useProps to get these states, we need to create another file wrapping Call,\n // It seems unnecessary in this case, so we get the updated states using this approach.\n const { callStatus } = useSelector(callStatusSelector);\n const mediaGalleryProps = useSelector(mediaGallerySelector);\n const mediaGalleryHandlers = useHandlers(MediaGallery);\n const complianceBannerProps = useSelector(complianceBannerSelector);\n const errorBarProps = usePropsFor(ErrorBar);\n const mutedNotificationProps = useSelector(mutedNotificationSelector);\n const networkReconnectTileProps = useSelector(networkReconnectTileSelector);\n const remoteParticipantsConnected = useSelector(getRemoteParticipantsConnectedSelector);\n const callees = useSelector(getTargetCallees);\n const renderDtmfDialerFromStart = showDtmfDialer(callees, remoteParticipantsConnected);\n const [dtmfDialerPresent, setDtmfDialerPresent] = useState<boolean>(\n renderDtmfDialerFromStart && disableAutoShowDtmfDialer\n );\n\n const strings = useLocale().strings.call;\n\n // Reduce the controls shown when mobile view is enabled.\n const callControlOptions = mobileView ? reduceCallControlsForMobile(options?.callControls) : options?.callControls;\n\n const drawerMenuHostId = useId('drawerMenuHost');\n const [isPromptOpen, setIsPromptOpen] = useState<boolean>(false);\n const [promptProps, setPromptProps] = useState<PromptProps>();\n\n const onRenderGalleryContentTrampoline = (): JSX.Element => {\n if (dtmfDialerPresent) {\n return (\n <DtmfDialpadPage\n mobileView={props.mobileView}\n modalLayerHostId={props.modalLayerHostId}\n options={props.options}\n updateSidePaneRenderer={props.updateSidePaneRenderer}\n mobileChatTabHeader={props.mobileChatTabHeader}\n latestErrors={props.latestErrors as ActiveErrorMessage[]}\n onDismissError={props.onDismissError}\n capabilitiesChangedNotificationBarProps={props.capabilitiesChangedNotificationBarProps}\n onSetDialpadPage={() => setDtmfDialerPresent(!dtmfDialerPresent)}\n dtmfDialerPresent={dtmfDialerPresent}\n compositeAudioContext={compositeAudioContext}\n />\n );\n } else {\n return (\n <MediaGallery\n isMobile={mobileView}\n {...mediaGalleryProps}\n {...mediaGalleryHandlers}\n onFetchAvatarPersonaData={onFetchAvatarPersonaData}\n remoteVideoTileMenuOptions={options?.remoteVideoTileMenuOptions}\n drawerMenuHostId={drawerMenuHostId}\n localVideoTileOptions={options?.localVideoTile}\n userSetOverflowGalleryPosition={userSetOverflowGalleryPosition}\n userSetGalleryLayout={galleryLayout}\n pinnedParticipants={pinnedParticipants}\n setPinnedParticipants={setPinnedParticipants}\n setIsPromptOpen={setIsPromptOpen}\n setPromptProps={setPromptProps}\n hideSpotlightButtons={options?.spotlight?.hideSpotlightButtons}\n videoTilesOptions={options?.videoTilesOptions}\n />\n );\n }\n };\n\n return (\n <>\n <CallArrangement\n id={drawerMenuHostId}\n complianceBannerProps={{ ...complianceBannerProps, strings }}\n errorBarProps={options?.errorBar !== false && errorBarProps}\n /* @conditional-compile-remove(notifications) */\n showErrorNotifications={options?.errorBar ?? true}\n mutedNotificationProps={mutedNotificationProps}\n callControlProps={{\n callInvitationURL: callInvitationURL,\n onFetchParticipantMenuItems: onFetchParticipantMenuItems,\n options: callControlOptions,\n increaseFlyoutItemSize: mobileView\n }}\n onFetchAvatarPersonaData={onFetchAvatarPersonaData}\n mobileView={mobileView}\n modalLayerHostId={props.modalLayerHostId}\n onRenderGalleryContent={() =>\n _isInCall(callStatus) ? (\n isNetworkHealthy(networkReconnectTileProps.networkReconnectValue) ? (\n onRenderGalleryContentTrampoline()\n ) : (\n <NetworkReconnectTile\n {...networkReconnectTileProps}\n /* /* @conditional-compile-remove(teams-meeting-conference) */ isMobile={mobileView}\n />\n )\n ) : (\n <></>\n )\n }\n updateSidePaneRenderer={props.updateSidePaneRenderer}\n mobileChatTabHeader={props.mobileChatTabHeader}\n onCloseChatPane={onCloseChatPane}\n dataUiId={'call-page'}\n latestErrors={props.latestErrors}\n /* @conditional-compile-remove(notifications) */\n latestNotifications={latestNotifications}\n onDismissError={props.onDismissError}\n onUserSetOverflowGalleryPositionChange={onSetUserSetOverflowGalleryPosition}\n onUserSetGalleryLayoutChange={onUserSetGalleryLayoutChange}\n userSetGalleryLayout={galleryLayout}\n capabilitiesChangedNotificationBarProps={props.capabilitiesChangedNotificationBarProps}\n onSetDialpadPage={() => setDtmfDialerPresent(!dtmfDialerPresent)}\n dtmfDialerPresent={dtmfDialerPresent}\n setIsPromptOpen={setIsPromptOpen}\n setPromptProps={setPromptProps}\n hideSpotlightButtons={options?.spotlight?.hideSpotlightButtons}\n pinnedParticipants={pinnedParticipants}\n setPinnedParticipants={setPinnedParticipants}\n />\n {<Prompt isOpen={isPromptOpen} onDismiss={() => setIsPromptOpen(false)} {...promptProps} />}\n </>\n );\n};\n\n/**\n * @private\n */\nexport const isNetworkHealthy = (value: DiagnosticQuality | boolean | undefined): boolean => {\n // We know that the value is actually of type DiagnosticQuality for this diagnostic.\n // We ignore any boolen values, considering the network to still be healthy.\n // Thus, only DiagnosticQuality.Poor or .Bad indicate network problems.\n return value === true || value === false || value === undefined || value === DiagnosticQuality.Good;\n};\n"]}
@@ -4,6 +4,7 @@ import { CallCompositeOptions } from '../../../index-public';
4
4
  import { MobileChatSidePaneTabHeaderProps } from '../../common/TabHeader';
5
5
  import { SidePaneRenderer } from '../components/SidePane/SidePaneProvider';
6
6
  import { CapabilitiesChangeNotificationBarProps } from '../components/CapabilitiesChangedNotificationBar';
7
+ import { ActiveNotification } from "../../../../../react-components/src";
7
8
  /**
8
9
  * @beta
9
10
  */
@@ -13,9 +14,10 @@ export interface HoldPageProps {
13
14
  modalLayerHostId: string;
14
15
  updateSidePaneRenderer: (renderer: SidePaneRenderer | undefined) => void;
15
16
  mobileChatTabHeader?: MobileChatSidePaneTabHeaderProps;
16
- latestErrors: ActiveErrorMessage[];
17
- onDismissError: (error: ActiveErrorMessage) => void;
17
+ latestErrors: ActiveErrorMessage[] | /* @conditional-compile-remove(notifications) */ ActiveNotification[];
18
+ onDismissError: (error: ActiveErrorMessage | /* @conditional-compile-remove(notifications) */ ActiveNotification) => void;
18
19
  capabilitiesChangedNotificationBarProps?: CapabilitiesChangeNotificationBarProps;
20
+ latestNotifications: ActiveNotification[];
19
21
  }
20
22
  /**
21
23
  * @beta
@@ -31,6 +31,8 @@ export const HoldPage = (props) => {
31
31
  showErrorNotifications: (_e = (_d = props.options) === null || _d === void 0 ? void 0 : _d.errorBar) !== null && _e !== void 0 ? _e : true, callControlProps: {
32
32
  options: callControlOptions,
33
33
  increaseFlyoutItemSize: props.mobileView
34
- }, mobileView: props.mobileView, modalLayerHostId: props.modalLayerHostId, onRenderGalleryContent: () => React.createElement(HoldPane, null), dataUiId: 'hold-page', updateSidePaneRenderer: props.updateSidePaneRenderer, mobileChatTabHeader: props.mobileChatTabHeader, latestErrors: props.latestErrors, onDismissError: props.onDismissError }));
34
+ }, mobileView: props.mobileView, modalLayerHostId: props.modalLayerHostId, onRenderGalleryContent: () => React.createElement(HoldPane, null), dataUiId: 'hold-page', updateSidePaneRenderer: props.updateSidePaneRenderer, mobileChatTabHeader: props.mobileChatTabHeader, latestErrors: props.latestErrors,
35
+ /* @conditional-compile-remove(notifications) */
36
+ latestNotifications: props.latestNotifications, onDismissError: props.onDismissError }));
35
37
  };
36
38
  //# sourceMappingURL=HoldPage.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"HoldPage.js","sourceRoot":"","sources":["../../../../../../../../react-composites/src/composites/CallComposite/pages/HoldPage.tsx"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAElC,OAAO,EAAsB,QAAQ,EAAE,4CAAmC;AAC1E,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,mBAAmB,EAAE,2BAA2B,EAAE,MAAM,UAAU,CAAC;AAqB5E;;GAEG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,KAAoB,EAAe,EAAE;;IAC5D,MAAM,aAAa,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAC;IAC5C,MAAM,OAAO,GAAG,SAAS,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;IAEzC,IAAI,kBAAkB,GAAG,KAAK,CAAC,UAAU;QACvC,CAAC,CAAC,2BAA2B,CAAC,MAAA,KAAK,CAAC,OAAO,0CAAE,YAAY,CAAC;QAC1D,CAAC,CAAC,MAAA,KAAK,CAAC,OAAO,0CAAE,YAAY,CAAC;IAEhC,kBAAkB,GAAG,mBAAmB,CAAC,kBAAkB,EAAE;QAC3D,cAAc;QACd,kBAAkB;QAClB,eAAe;QACf,mBAAmB;QACnB,6CAA6C;QAC7C,mDAAmD;QACnD,YAAY;KACb,CAAC,CAAC;IAEH,OAAO,CACL,oBAAC,eAAe,IACd,qBAAqB,EAAE,EAAE,OAAO,EAAE,EAClC,aAAa,EAAE,CAAA,MAAA,KAAK,CAAC,OAAO,0CAAE,QAAQ,MAAK,KAAK,IAAI,aAAa;QACjE,gDAAgD;QAChD,sBAAsB,EAAE,MAAA,MAAA,KAAK,CAAC,OAAO,0CAAE,QAAQ,mCAAI,IAAI,EACvD,gBAAgB,EAAE;YAChB,OAAO,EAAE,kBAAkB;YAC3B,sBAAsB,EAAE,KAAK,CAAC,UAAU;SACzC,EACD,UAAU,EAAE,KAAK,CAAC,UAAU,EAC5B,gBAAgB,EAAE,KAAK,CAAC,gBAAgB,EACxC,sBAAsB,EAAE,GAAG,EAAE,CAAC,oBAAC,QAAQ,OAAG,EAC1C,QAAQ,EAAE,WAAW,EACrB,sBAAsB,EAAE,KAAK,CAAC,sBAAsB,EACpD,mBAAmB,EAAE,KAAK,CAAC,mBAAmB,EAC9C,YAAY,EAAE,KAAK,CAAC,YAAY,EAChC,cAAc,EAAE,KAAK,CAAC,cAAc,GACpC,CACH,CAAC;AACJ,CAAC,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { ActiveErrorMessage, ErrorBar } from '@internal/react-components';\nimport React from 'react';\nimport { CallCompositeOptions } from '../../../index-public';\nimport { useLocale } from '../../localization';\nimport { CallArrangement } from '../components/CallArrangement';\nimport { HoldPane } from '../components/HoldPane';\nimport { usePropsFor } from '../hooks/usePropsFor';\nimport { disableCallControls, reduceCallControlsForMobile } from '../utils';\nimport { MobileChatSidePaneTabHeaderProps } from '../../common/TabHeader';\nimport { SidePaneRenderer } from '../components/SidePane/SidePaneProvider';\n\nimport { CapabilitiesChangeNotificationBarProps } from '../components/CapabilitiesChangedNotificationBar';\n\n/**\n * @beta\n */\nexport interface HoldPageProps {\n mobileView: boolean;\n options?: CallCompositeOptions;\n modalLayerHostId: string;\n updateSidePaneRenderer: (renderer: SidePaneRenderer | undefined) => void;\n mobileChatTabHeader?: MobileChatSidePaneTabHeaderProps;\n latestErrors: ActiveErrorMessage[];\n onDismissError: (error: ActiveErrorMessage) => void;\n\n capabilitiesChangedNotificationBarProps?: CapabilitiesChangeNotificationBarProps;\n}\n\n/**\n * @beta\n */\nexport const HoldPage = (props: HoldPageProps): JSX.Element => {\n const errorBarProps = usePropsFor(ErrorBar);\n const strings = useLocale().strings.call;\n\n let callControlOptions = props.mobileView\n ? reduceCallControlsForMobile(props.options?.callControls)\n : props.options?.callControls;\n\n callControlOptions = disableCallControls(callControlOptions, [\n 'cameraButton',\n 'microphoneButton',\n 'devicesButton',\n 'screenShareButton',\n /* @conditional-compile-remove(PSTN-calls) */\n /* @conditional-compile-remove(one-to-n-calling) */\n 'holdButton'\n ]);\n\n return (\n <CallArrangement\n complianceBannerProps={{ strings }}\n errorBarProps={props.options?.errorBar !== false && errorBarProps}\n /* @conditional-compile-remove(notifications) */\n showErrorNotifications={props.options?.errorBar ?? true}\n callControlProps={{\n options: callControlOptions,\n increaseFlyoutItemSize: props.mobileView\n }}\n mobileView={props.mobileView}\n modalLayerHostId={props.modalLayerHostId}\n onRenderGalleryContent={() => <HoldPane />}\n dataUiId={'hold-page'}\n updateSidePaneRenderer={props.updateSidePaneRenderer}\n mobileChatTabHeader={props.mobileChatTabHeader}\n latestErrors={props.latestErrors}\n onDismissError={props.onDismissError}\n />\n );\n};\n"]}
1
+ {"version":3,"file":"HoldPage.js","sourceRoot":"","sources":["../../../../../../../../react-composites/src/composites/CallComposite/pages/HoldPage.tsx"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAElC,OAAO,EAAsB,QAAQ,EAAE,4CAAmC;AAC1E,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,mBAAmB,EAAE,2BAA2B,EAAE,MAAM,UAAU,CAAC;AA0B5E;;GAEG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,KAAoB,EAAe,EAAE;;IAC5D,MAAM,aAAa,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAC;IAC5C,MAAM,OAAO,GAAG,SAAS,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;IAEzC,IAAI,kBAAkB,GAAG,KAAK,CAAC,UAAU;QACvC,CAAC,CAAC,2BAA2B,CAAC,MAAA,KAAK,CAAC,OAAO,0CAAE,YAAY,CAAC;QAC1D,CAAC,CAAC,MAAA,KAAK,CAAC,OAAO,0CAAE,YAAY,CAAC;IAEhC,kBAAkB,GAAG,mBAAmB,CAAC,kBAAkB,EAAE;QAC3D,cAAc;QACd,kBAAkB;QAClB,eAAe;QACf,mBAAmB;QACnB,6CAA6C;QAC7C,mDAAmD;QACnD,YAAY;KACb,CAAC,CAAC;IAEH,OAAO,CACL,oBAAC,eAAe,IACd,qBAAqB,EAAE,EAAE,OAAO,EAAE,EAClC,aAAa,EAAE,CAAA,MAAA,KAAK,CAAC,OAAO,0CAAE,QAAQ,MAAK,KAAK,IAAI,aAAa;QACjE,gDAAgD;QAChD,sBAAsB,EAAE,MAAA,MAAA,KAAK,CAAC,OAAO,0CAAE,QAAQ,mCAAI,IAAI,EACvD,gBAAgB,EAAE;YAChB,OAAO,EAAE,kBAAkB;YAC3B,sBAAsB,EAAE,KAAK,CAAC,UAAU;SACzC,EACD,UAAU,EAAE,KAAK,CAAC,UAAU,EAC5B,gBAAgB,EAAE,KAAK,CAAC,gBAAgB,EACxC,sBAAsB,EAAE,GAAG,EAAE,CAAC,oBAAC,QAAQ,OAAG,EAC1C,QAAQ,EAAE,WAAW,EACrB,sBAAsB,EAAE,KAAK,CAAC,sBAAsB,EACpD,mBAAmB,EAAE,KAAK,CAAC,mBAAmB,EAC9C,YAAY,EAAE,KAAK,CAAC,YAAY;QAChC,gDAAgD;QAChD,mBAAmB,EAAE,KAAK,CAAC,mBAAmB,EAC9C,cAAc,EAAE,KAAK,CAAC,cAAc,GACpC,CACH,CAAC;AACJ,CAAC,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { ActiveErrorMessage, ErrorBar } from '@internal/react-components';\nimport React from 'react';\nimport { CallCompositeOptions } from '../../../index-public';\nimport { useLocale } from '../../localization';\nimport { CallArrangement } from '../components/CallArrangement';\nimport { HoldPane } from '../components/HoldPane';\nimport { usePropsFor } from '../hooks/usePropsFor';\nimport { disableCallControls, reduceCallControlsForMobile } from '../utils';\nimport { MobileChatSidePaneTabHeaderProps } from '../../common/TabHeader';\nimport { SidePaneRenderer } from '../components/SidePane/SidePaneProvider';\n\nimport { CapabilitiesChangeNotificationBarProps } from '../components/CapabilitiesChangedNotificationBar';\n/* @conditional-compile-remove(notifications) */\nimport { ActiveNotification } from '@internal/react-components';\n\n/**\n * @beta\n */\nexport interface HoldPageProps {\n mobileView: boolean;\n options?: CallCompositeOptions;\n modalLayerHostId: string;\n updateSidePaneRenderer: (renderer: SidePaneRenderer | undefined) => void;\n mobileChatTabHeader?: MobileChatSidePaneTabHeaderProps;\n latestErrors: ActiveErrorMessage[] | /* @conditional-compile-remove(notifications) */ ActiveNotification[];\n onDismissError: (\n error: ActiveErrorMessage | /* @conditional-compile-remove(notifications) */ ActiveNotification\n ) => void;\n capabilitiesChangedNotificationBarProps?: CapabilitiesChangeNotificationBarProps;\n /* @conditional-compile-remove(notifications) */\n latestNotifications: ActiveNotification[];\n}\n\n/**\n * @beta\n */\nexport const HoldPage = (props: HoldPageProps): JSX.Element => {\n const errorBarProps = usePropsFor(ErrorBar);\n const strings = useLocale().strings.call;\n\n let callControlOptions = props.mobileView\n ? reduceCallControlsForMobile(props.options?.callControls)\n : props.options?.callControls;\n\n callControlOptions = disableCallControls(callControlOptions, [\n 'cameraButton',\n 'microphoneButton',\n 'devicesButton',\n 'screenShareButton',\n /* @conditional-compile-remove(PSTN-calls) */\n /* @conditional-compile-remove(one-to-n-calling) */\n 'holdButton'\n ]);\n\n return (\n <CallArrangement\n complianceBannerProps={{ strings }}\n errorBarProps={props.options?.errorBar !== false && errorBarProps}\n /* @conditional-compile-remove(notifications) */\n showErrorNotifications={props.options?.errorBar ?? true}\n callControlProps={{\n options: callControlOptions,\n increaseFlyoutItemSize: props.mobileView\n }}\n mobileView={props.mobileView}\n modalLayerHostId={props.modalLayerHostId}\n onRenderGalleryContent={() => <HoldPane />}\n dataUiId={'hold-page'}\n updateSidePaneRenderer={props.updateSidePaneRenderer}\n mobileChatTabHeader={props.mobileChatTabHeader}\n latestErrors={props.latestErrors}\n /* @conditional-compile-remove(notifications) */\n latestNotifications={props.latestNotifications}\n onDismissError={props.onDismissError}\n />\n );\n};\n"]}
@@ -1,5 +1,6 @@
1
1
  /// <reference types="react" />
2
2
  import { ActiveErrorMessage } from "../../../../../react-components/src";
3
+ import { ActiveNotification } from "../../../../../react-components/src";
3
4
  import { CallCompositeOptions } from '../CallComposite';
4
5
  import { MobileChatSidePaneTabHeaderProps } from '../../common/TabHeader';
5
6
  import { SidePaneRenderer } from '../components/SidePane/SidePaneProvider';
@@ -13,8 +14,9 @@ export interface LobbyPageProps {
13
14
  options?: CallCompositeOptions;
14
15
  mobileChatTabHeader: MobileChatSidePaneTabHeaderProps | undefined;
15
16
  updateSidePaneRenderer: (renderer: SidePaneRenderer | undefined) => void;
16
- latestErrors: ActiveErrorMessage[];
17
- onDismissError: (error: ActiveErrorMessage) => void;
17
+ latestErrors: ActiveErrorMessage[] | /* @conditional-compile-remove(notifications) */ ActiveNotification[];
18
+ latestNotifications: ActiveNotification[];
19
+ onDismissError: (error: ActiveErrorMessage | /* @conditional-compile-remove(notifications) */ ActiveNotification) => void;
18
20
  capabilitiesChangedNotificationBarProps?: CapabilitiesChangeNotificationBarProps;
19
21
  }
20
22
  /**
@@ -33,7 +33,9 @@ export const LobbyPage = (props) => {
33
33
  showErrorNotifications: (_f = (_e = props.options) === null || _e === void 0 ? void 0 : _e.errorBar) !== null && _f !== void 0 ? _f : true, callControlProps: {
34
34
  options: callControlOptions,
35
35
  increaseFlyoutItemSize: props.mobileView
36
- }, mobileView: props.mobileView, modalLayerHostId: props.modalLayerHostId, onRenderGalleryContent: () => (React.createElement(LobbyTile, Object.assign({}, lobbyProps, { showLocalVideoCameraCycleButton: props.mobileView, overlayProps: overlayProps(strings, inLobby, Object.values(participants)) }))), dataUiId: 'lobby-page', updateSidePaneRenderer: props.updateSidePaneRenderer, mobileChatTabHeader: props.mobileChatTabHeader, latestErrors: props.latestErrors, onDismissError: props.onDismissError }));
36
+ }, mobileView: props.mobileView, modalLayerHostId: props.modalLayerHostId, onRenderGalleryContent: () => (React.createElement(LobbyTile, Object.assign({}, lobbyProps, { showLocalVideoCameraCycleButton: props.mobileView, overlayProps: overlayProps(strings, inLobby, Object.values(participants)) }))), dataUiId: 'lobby-page', updateSidePaneRenderer: props.updateSidePaneRenderer, mobileChatTabHeader: props.mobileChatTabHeader, latestErrors: props.latestErrors, onDismissError: props.onDismissError,
37
+ /* @conditional-compile-remove(notifications) */
38
+ latestNotifications: props.latestNotifications }));
37
39
  };
38
40
  const overlayProps = (strings, inLobby, remoteParticipants) => {
39
41
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"LobbyPage.js","sourceRoot":"","sources":["../../../../../../../../react-composites/src/composites/CallComposite/pages/LobbyPage.tsx"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport React from 'react';\nimport { ActiveErrorMessage, ErrorBar } from '@internal/react-components';\nimport { useSelector } from '../hooks/useSelector';\nimport { lobbySelector } from '../selectors/lobbySelector';\nimport { CallCompositeOptions } from '../CallComposite';\nimport { CallArrangement } from '../components/CallArrangement';\nimport { usePropsFor } from '../hooks/usePropsFor';\nimport { LobbyOverlayProps, LobbyTile } from '../components/LobbyTile';\nimport { getCallStatus, getRemoteParticipants } from '../selectors/baseSelectors';\nimport { disableCallControls, reduceCallControlsForMobile } from '../utils';\nimport { CallCompositeStrings } from '../Strings';\nimport { useLocale } from '../../localization';\nimport { CallCompositeIcon } from '../../common/icons';\nimport { isPhoneNumberIdentifier, PhoneNumberIdentifier } from '@azure/communication-common';\nimport { RemoteParticipantState } from '@internal/calling-stateful-client';\nimport { MobileChatSidePaneTabHeaderProps } from '../../common/TabHeader';\nimport { SidePaneRenderer } from '../components/SidePane/SidePaneProvider';\n\nimport { CapabilitiesChangeNotificationBarProps } from '../components/CapabilitiesChangedNotificationBar';\n\n/**\n * @private\n */\nexport interface LobbyPageProps {\n mobileView: boolean;\n modalLayerHostId: string;\n options?: CallCompositeOptions;\n mobileChatTabHeader: MobileChatSidePaneTabHeaderProps | undefined;\n updateSidePaneRenderer: (renderer: SidePaneRenderer | undefined) => void;\n latestErrors: ActiveErrorMessage[];\n onDismissError: (error: ActiveErrorMessage) => void;\n\n capabilitiesChangedNotificationBarProps?: CapabilitiesChangeNotificationBarProps;\n}\n\n/**\n * @private\n */\nexport const LobbyPage = (props: LobbyPageProps): JSX.Element => {\n const errorBarProps = usePropsFor(ErrorBar);\n const lobbyProps = useSelector(lobbySelector);\n const strings = useLocale().strings.call;\n\n const callState = useSelector(getCallStatus);\n const inLobby = callState === 'InLobby';\n\n const participants = useSelector(getRemoteParticipants) ?? {};\n\n // Reduce the controls shown when mobile view is enabled.\n let callControlOptions = props.mobileView\n ? reduceCallControlsForMobile(props.options?.callControls)\n : props.options?.callControls;\n\n callControlOptions = disableCallControls(callControlOptions, ['screenShareButton', 'participantsButton']);\n\n return (\n <CallArrangement\n complianceBannerProps={{ strings }}\n errorBarProps={props.options?.errorBar !== false && errorBarProps}\n /* @conditional-compile-remove(notifications) */\n showErrorNotifications={props.options?.errorBar ?? true}\n callControlProps={{\n options: callControlOptions,\n increaseFlyoutItemSize: props.mobileView\n }}\n mobileView={props.mobileView}\n modalLayerHostId={props.modalLayerHostId}\n onRenderGalleryContent={() => (\n <LobbyTile\n {...lobbyProps}\n showLocalVideoCameraCycleButton={props.mobileView}\n overlayProps={overlayProps(strings, inLobby, Object.values(participants))}\n />\n )}\n dataUiId={'lobby-page'}\n updateSidePaneRenderer={props.updateSidePaneRenderer}\n mobileChatTabHeader={props.mobileChatTabHeader}\n latestErrors={props.latestErrors}\n onDismissError={props.onDismissError}\n />\n );\n};\n\nconst overlayProps = (\n strings: CallCompositeStrings,\n inLobby: boolean,\n remoteParticipants: RemoteParticipantState[]\n): LobbyOverlayProps => {\n /**\n * Only grab the first participant because there will only be one in this situation.\n * when starting a call with multiple people the call goes to the connected state and composite goes directly to\n * videoGallery.\n *\n * We also need to check the participant state since in a group call the remote participants array will populate just before\n * the user joins. In this situation we also check the participant states. in a groupCall the state of the participants\n * will be 'Idle'.\n */\n const outboundCallParticipant: RemoteParticipantState | undefined =\n remoteParticipants[0] &&\n ['Ringing', 'Connecting'].includes(remoteParticipants[0].state) &&\n remoteParticipants.length === 1\n ? remoteParticipants[0]\n : undefined;\n\n return inLobby\n ? overlayPropsWaitingToBeAdmitted(strings)\n : outboundCallParticipant\n ? overlayPropsOutboundCall(strings, outboundCallParticipant)\n : overlayPropsConnectingToCall(strings);\n};\n\nconst overlayPropsConnectingToCall = (strings: CallCompositeStrings): LobbyOverlayProps => ({\n title: strings.lobbyScreenConnectingToCallTitle,\n moreDetails: strings.lobbyScreenConnectingToCallMoreDetails,\n overlayIcon: <CallCompositeIcon iconName=\"LobbyScreenConnectingToCall\" />\n});\n\nconst overlayPropsWaitingToBeAdmitted = (strings: CallCompositeStrings): LobbyOverlayProps => ({\n title: strings.lobbyScreenWaitingToBeAdmittedTitle,\n moreDetails: strings.lobbyScreenWaitingToBeAdmittedMoreDetails,\n overlayIcon: <CallCompositeIcon iconName=\"LobbyScreenWaitingToBeAdmitted\" />\n});\n\nconst overlayPropsOutboundCall = (\n strings: CallCompositeStrings,\n participant: RemoteParticipantState\n): LobbyOverlayProps => {\n if (isPhoneNumberIdentifier(participant.identifier)) {\n return {\n title: (participant.identifier as PhoneNumberIdentifier).phoneNumber,\n moreDetails: strings.outboundCallingNoticeString\n };\n } else {\n return {\n title: strings.outboundCallingNoticeString ?? ''\n };\n }\n};\n"]}
1
+ {"version":3,"file":"LobbyPage.js","sourceRoot":"","sources":["../../../../../../../../react-composites/src/composites/CallComposite/pages/LobbyPage.tsx"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport React from 'react';\nimport { ActiveErrorMessage, ErrorBar } from '@internal/react-components';\n/* @conditional-compile-remove(notifications) */\nimport { ActiveNotification } from '@internal/react-components';\nimport { useSelector } from '../hooks/useSelector';\nimport { lobbySelector } from '../selectors/lobbySelector';\nimport { CallCompositeOptions } from '../CallComposite';\nimport { CallArrangement } from '../components/CallArrangement';\nimport { usePropsFor } from '../hooks/usePropsFor';\nimport { LobbyOverlayProps, LobbyTile } from '../components/LobbyTile';\nimport { getCallStatus, getRemoteParticipants } from '../selectors/baseSelectors';\nimport { disableCallControls, reduceCallControlsForMobile } from '../utils';\nimport { CallCompositeStrings } from '../Strings';\nimport { useLocale } from '../../localization';\nimport { CallCompositeIcon } from '../../common/icons';\nimport { isPhoneNumberIdentifier, PhoneNumberIdentifier } from '@azure/communication-common';\nimport { RemoteParticipantState } from '@internal/calling-stateful-client';\nimport { MobileChatSidePaneTabHeaderProps } from '../../common/TabHeader';\nimport { SidePaneRenderer } from '../components/SidePane/SidePaneProvider';\n\nimport { CapabilitiesChangeNotificationBarProps } from '../components/CapabilitiesChangedNotificationBar';\n\n/**\n * @private\n */\nexport interface LobbyPageProps {\n mobileView: boolean;\n modalLayerHostId: string;\n options?: CallCompositeOptions;\n mobileChatTabHeader: MobileChatSidePaneTabHeaderProps | undefined;\n updateSidePaneRenderer: (renderer: SidePaneRenderer | undefined) => void;\n latestErrors: ActiveErrorMessage[] | /* @conditional-compile-remove(notifications) */ ActiveNotification[];\n /* @conditional-compile-remove(notifications) */\n latestNotifications: ActiveNotification[];\n onDismissError: (\n error: ActiveErrorMessage | /* @conditional-compile-remove(notifications) */ ActiveNotification\n ) => void;\n capabilitiesChangedNotificationBarProps?: CapabilitiesChangeNotificationBarProps;\n}\n\n/**\n * @private\n */\nexport const LobbyPage = (props: LobbyPageProps): JSX.Element => {\n const errorBarProps = usePropsFor(ErrorBar);\n const lobbyProps = useSelector(lobbySelector);\n const strings = useLocale().strings.call;\n\n const callState = useSelector(getCallStatus);\n const inLobby = callState === 'InLobby';\n\n const participants = useSelector(getRemoteParticipants) ?? {};\n\n // Reduce the controls shown when mobile view is enabled.\n let callControlOptions = props.mobileView\n ? reduceCallControlsForMobile(props.options?.callControls)\n : props.options?.callControls;\n\n callControlOptions = disableCallControls(callControlOptions, ['screenShareButton', 'participantsButton']);\n\n return (\n <CallArrangement\n complianceBannerProps={{ strings }}\n errorBarProps={props.options?.errorBar !== false && errorBarProps}\n /* @conditional-compile-remove(notifications) */\n showErrorNotifications={props.options?.errorBar ?? true}\n callControlProps={{\n options: callControlOptions,\n increaseFlyoutItemSize: props.mobileView\n }}\n mobileView={props.mobileView}\n modalLayerHostId={props.modalLayerHostId}\n onRenderGalleryContent={() => (\n <LobbyTile\n {...lobbyProps}\n showLocalVideoCameraCycleButton={props.mobileView}\n overlayProps={overlayProps(strings, inLobby, Object.values(participants))}\n />\n )}\n dataUiId={'lobby-page'}\n updateSidePaneRenderer={props.updateSidePaneRenderer}\n mobileChatTabHeader={props.mobileChatTabHeader}\n latestErrors={props.latestErrors}\n onDismissError={props.onDismissError}\n /* @conditional-compile-remove(notifications) */\n latestNotifications={props.latestNotifications}\n />\n );\n};\n\nconst overlayProps = (\n strings: CallCompositeStrings,\n inLobby: boolean,\n remoteParticipants: RemoteParticipantState[]\n): LobbyOverlayProps => {\n /**\n * Only grab the first participant because there will only be one in this situation.\n * when starting a call with multiple people the call goes to the connected state and composite goes directly to\n * videoGallery.\n *\n * We also need to check the participant state since in a group call the remote participants array will populate just before\n * the user joins. In this situation we also check the participant states. in a groupCall the state of the participants\n * will be 'Idle'.\n */\n const outboundCallParticipant: RemoteParticipantState | undefined =\n remoteParticipants[0] &&\n ['Ringing', 'Connecting'].includes(remoteParticipants[0].state) &&\n remoteParticipants.length === 1\n ? remoteParticipants[0]\n : undefined;\n\n return inLobby\n ? overlayPropsWaitingToBeAdmitted(strings)\n : outboundCallParticipant\n ? overlayPropsOutboundCall(strings, outboundCallParticipant)\n : overlayPropsConnectingToCall(strings);\n};\n\nconst overlayPropsConnectingToCall = (strings: CallCompositeStrings): LobbyOverlayProps => ({\n title: strings.lobbyScreenConnectingToCallTitle,\n moreDetails: strings.lobbyScreenConnectingToCallMoreDetails,\n overlayIcon: <CallCompositeIcon iconName=\"LobbyScreenConnectingToCall\" />\n});\n\nconst overlayPropsWaitingToBeAdmitted = (strings: CallCompositeStrings): LobbyOverlayProps => ({\n title: strings.lobbyScreenWaitingToBeAdmittedTitle,\n moreDetails: strings.lobbyScreenWaitingToBeAdmittedMoreDetails,\n overlayIcon: <CallCompositeIcon iconName=\"LobbyScreenWaitingToBeAdmitted\" />\n});\n\nconst overlayPropsOutboundCall = (\n strings: CallCompositeStrings,\n participant: RemoteParticipantState\n): LobbyOverlayProps => {\n if (isPhoneNumberIdentifier(participant.identifier)) {\n return {\n title: (participant.identifier as PhoneNumberIdentifier).phoneNumber,\n moreDetails: strings.outboundCallingNoticeString\n };\n } else {\n return {\n title: strings.outboundCallingNoticeString ?? ''\n };\n }\n};\n"]}
@@ -31,6 +31,10 @@ export declare const notificationsContainerStyles: IStackStyles;
31
31
  * @private
32
32
  */
33
33
  export declare const bannerNotificationStyles: IStackStyles;
34
+ /**
35
+ * @private
36
+ */
37
+ export declare const notificationStackStyles: IStackStyles;
34
38
  /**
35
39
  * @private
36
40
  */
@@ -70,6 +70,16 @@ export const bannerNotificationStyles = {
70
70
  pointerEvents: 'auto' // to allow the dismissal or error and warning bars in the notification container
71
71
  }
72
72
  };
73
+ /**
74
+ * @private
75
+ */
76
+ export const notificationStackStyles = {
77
+ root: {
78
+ zIndex: NOTIFICATION_CONTAINER_Z_INDEX,
79
+ pointerEvents: 'auto', // to allow the dismissal or error and warning bars in the notification container,
80
+ marginBottom: '0.5rem'
81
+ }
82
+ };
73
83
  /**
74
84
  * @private
75
85
  */
@@ -1 +1 @@
1
- {"version":3,"file":"CallPage.styles.js","sourceRoot":"","sources":["../../../../../../../../react-composites/src/composites/CallComposite/styles/CallPage.styles.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAElC,OAAO,EAA0C,WAAW,EAAE,MAAM,iBAAiB,CAAC;AACtF,OAAO,EAAE,yBAAyB,EAAE,MAAM,uBAAuB,CAAC;AAElE,MAAM,qBAAqB,GAAG,CAAC,CAAC;AAChC,2HAA2H;AAC3H,eAAe;AACf,MAAM,CAAC,MAAM,mBAAmB,GAAG,qBAAqB,GAAG,CAAC,CAAC;AAC7D,6GAA6G;AAC7G,MAAM,8BAA8B,GAAG,IAAI,CAAC,GAAG,CAAC,mBAAmB,EAAE,qBAAqB,CAAC,GAAG,CAAC,CAAC;AAEhG,eAAe;AACf,MAAM,CAAC,MAAM,cAAc,GAAG,8BAA8B,GAAG,CAAC,CAAC;AAEjE;;GAEG;AACH,MAAM,CAAC,MAAM,2BAA2B,GAAG,WAAW,CAAC,yBAAyB,EAAE;IAChF,MAAM,EAAE,mBAAmB;CAC5B,CAAC,CAAC;AAEH,MAAM,cAAc,GAAW;IAC7B,KAAK,EAAE,MAAM;IACb,QAAQ,EAAE,UAAU;IACpB,SAAS,EAAE,OAAO,CAAC,qDAAqD;CACzE,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,WAAW,iCAC3C,cAAc,KACjB,QAAQ,EAAE,OAAO,IACjB,CAAC;AAEH;;GAEG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,WAAW,iCAC1C,cAAc,KACjB,QAAQ,EAAE,SAAS,IACnB,CAAC;AAEH;;GAEG;AACH,MAAM,CAAC,MAAM,4BAA4B,GAAG,CAAC,eAAuB,EAAgB,EAAE,CAAC,CAAC;IACtF,IAAI,EAAE;QACJ,MAAM,EAAE,qBAAqB;QAC7B,KAAK,EAAE,MAAM;QACb,UAAU,EAAE,eAAe;KAC5B;CACF,CAAC,CAAC;AAEH;;GAEG;AACH,MAAM,CAAC,MAAM,2BAA2B,GAAqB;IAC3D,IAAI,EAAE;QACJ,MAAM,EAAE,MAAM;KACf;CACF,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,4BAA4B,GAAiB;IACxD,IAAI,EAAE;QACJ,KAAK,EAAE,MAAM;QACb,QAAQ,EAAE,UAAU;QACpB,GAAG,EAAE,CAAC;QACN,IAAI,EAAE,CAAC;QACP,OAAO,EAAE,MAAM;QACf,MAAM,EAAE,8BAA8B;QACtC,aAAa,EAAE,MAAM,CAAC,2EAA2E;KAClG;CACF,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAiB;IACpD,IAAI,EAAE;QACJ,MAAM,EAAE,8BAA8B;QACtC,aAAa,EAAE,MAAM,CAAC,iFAAiF;KACxG;CACF,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,8BAA8B,GAAG,CAAC,kBAA4B,EAAgB,EAAE;IAC3F,OAAO;QACL,IAAI,EAAE;YACJ,KAAK,EAAE,MAAM;YACb,MAAM,EAAE,MAAM;YACd,aAAa,EAAE,kBAAkB,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,gBAAgB,CAAC,sDAAsD;SACtH;KACF,CAAC;AACJ,CAAC,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAqB;IACxD,IAAI,EAAE;QACJ,MAAM,EAAE,MAAM;KACf;CACF,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { IStackItemStyles, IStackStyles, IStyle, mergeStyles } from '@fluentui/react';\nimport { controlBarContainerStyles } from './CallControls.styles';\n\nconst VIDEO_GALLERY_Z_INDEX = 1;\n// The control bar must be in a higher z-band than the video gallery so the drop shadow appears on top of the video gallery\n/** @private */\nexport const CONTROL_BAR_Z_INDEX = VIDEO_GALLERY_Z_INDEX + 1;\n// The notification container should be in the highest z-band to ensure it shows on top of all other content.\nconst NOTIFICATION_CONTAINER_Z_INDEX = Math.max(CONTROL_BAR_Z_INDEX, VIDEO_GALLERY_Z_INDEX) + 1;\n\n/** @private */\nexport const DRAWER_Z_INDEX = NOTIFICATION_CONTAINER_Z_INDEX + 1;\n\n/**\n * @private\n */\nexport const callControlsContainerStyles = mergeStyles(controlBarContainerStyles, {\n zIndex: CONTROL_BAR_Z_INDEX\n});\n\nconst containerStyle: IStyle = {\n width: '100%',\n position: 'relative',\n minHeight: '13rem' // linked to minimum space allocated to media gallery\n};\n\n/**\n * @private\n */\nexport const containerStyleDesktop = mergeStyles({\n ...containerStyle,\n minWidth: '30rem'\n});\n\n/**\n * @private\n */\nexport const containerStyleMobile = mergeStyles({\n ...containerStyle,\n minWidth: '17.5rem'\n});\n\n/**\n * @private\n */\nexport const galleryParentContainerStyles = (backgroundColor: string): IStackStyles => ({\n root: {\n zIndex: VIDEO_GALLERY_Z_INDEX,\n width: '100%',\n background: backgroundColor\n }\n});\n\n/**\n * @private\n */\nexport const mediaGalleryContainerStyles: IStackItemStyles = {\n root: {\n height: '100%'\n }\n};\n\n/**\n * @private\n */\nexport const notificationsContainerStyles: IStackStyles = {\n root: {\n width: '100%',\n position: 'absolute',\n top: 0,\n left: 0,\n padding: '1rem',\n zIndex: NOTIFICATION_CONTAINER_Z_INDEX,\n pointerEvents: 'none' // to allow the operation of controls underneath the notification container\n }\n};\n\n/**\n * @private\n */\nexport const bannerNotificationStyles: IStackStyles = {\n root: {\n zIndex: NOTIFICATION_CONTAINER_Z_INDEX,\n pointerEvents: 'auto' // to allow the dismissal or error and warning bars in the notification container\n }\n};\n\n/**\n * @private\n */\nexport const callArrangementContainerStyles = (verticalControlBar?: boolean): IStackStyles => {\n return {\n root: {\n width: '100%',\n height: '100%',\n flexDirection: verticalControlBar ? 'unset' : 'column-reverse' // to allow first initial keyboard focus on ControlBar\n }\n };\n};\n\n/**\n * @private\n */\nexport const verticalControlBarStyles: IStackItemStyles = {\n root: {\n margin: 'auto'\n }\n};\n"]}
1
+ {"version":3,"file":"CallPage.styles.js","sourceRoot":"","sources":["../../../../../../../../react-composites/src/composites/CallComposite/styles/CallPage.styles.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAElC,OAAO,EAA0C,WAAW,EAAE,MAAM,iBAAiB,CAAC;AACtF,OAAO,EAAE,yBAAyB,EAAE,MAAM,uBAAuB,CAAC;AAElE,MAAM,qBAAqB,GAAG,CAAC,CAAC;AAChC,2HAA2H;AAC3H,eAAe;AACf,MAAM,CAAC,MAAM,mBAAmB,GAAG,qBAAqB,GAAG,CAAC,CAAC;AAC7D,6GAA6G;AAC7G,MAAM,8BAA8B,GAAG,IAAI,CAAC,GAAG,CAAC,mBAAmB,EAAE,qBAAqB,CAAC,GAAG,CAAC,CAAC;AAEhG,eAAe;AACf,MAAM,CAAC,MAAM,cAAc,GAAG,8BAA8B,GAAG,CAAC,CAAC;AAEjE;;GAEG;AACH,MAAM,CAAC,MAAM,2BAA2B,GAAG,WAAW,CAAC,yBAAyB,EAAE;IAChF,MAAM,EAAE,mBAAmB;CAC5B,CAAC,CAAC;AAEH,MAAM,cAAc,GAAW;IAC7B,KAAK,EAAE,MAAM;IACb,QAAQ,EAAE,UAAU;IACpB,SAAS,EAAE,OAAO,CAAC,qDAAqD;CACzE,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,WAAW,iCAC3C,cAAc,KACjB,QAAQ,EAAE,OAAO,IACjB,CAAC;AAEH;;GAEG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,WAAW,iCAC1C,cAAc,KACjB,QAAQ,EAAE,SAAS,IACnB,CAAC;AAEH;;GAEG;AACH,MAAM,CAAC,MAAM,4BAA4B,GAAG,CAAC,eAAuB,EAAgB,EAAE,CAAC,CAAC;IACtF,IAAI,EAAE;QACJ,MAAM,EAAE,qBAAqB;QAC7B,KAAK,EAAE,MAAM;QACb,UAAU,EAAE,eAAe;KAC5B;CACF,CAAC,CAAC;AAEH;;GAEG;AACH,MAAM,CAAC,MAAM,2BAA2B,GAAqB;IAC3D,IAAI,EAAE;QACJ,MAAM,EAAE,MAAM;KACf;CACF,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,4BAA4B,GAAiB;IACxD,IAAI,EAAE;QACJ,KAAK,EAAE,MAAM;QACb,QAAQ,EAAE,UAAU;QACpB,GAAG,EAAE,CAAC;QACN,IAAI,EAAE,CAAC;QACP,OAAO,EAAE,MAAM;QACf,MAAM,EAAE,8BAA8B;QACtC,aAAa,EAAE,MAAM,CAAC,2EAA2E;KAClG;CACF,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAiB;IACpD,IAAI,EAAE;QACJ,MAAM,EAAE,8BAA8B;QACtC,aAAa,EAAE,MAAM,CAAC,iFAAiF;KACxG;CACF,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAiB;IACnD,IAAI,EAAE;QACJ,MAAM,EAAE,8BAA8B;QACtC,aAAa,EAAE,MAAM,EAAE,kFAAkF;QACzG,YAAY,EAAE,QAAQ;KACvB;CACF,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,8BAA8B,GAAG,CAAC,kBAA4B,EAAgB,EAAE;IAC3F,OAAO;QACL,IAAI,EAAE;YACJ,KAAK,EAAE,MAAM;YACb,MAAM,EAAE,MAAM;YACd,aAAa,EAAE,kBAAkB,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,gBAAgB,CAAC,sDAAsD;SACtH;KACF,CAAC;AACJ,CAAC,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAqB;IACxD,IAAI,EAAE;QACJ,MAAM,EAAE,MAAM;KACf;CACF,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { IStackItemStyles, IStackStyles, IStyle, mergeStyles } from '@fluentui/react';\nimport { controlBarContainerStyles } from './CallControls.styles';\n\nconst VIDEO_GALLERY_Z_INDEX = 1;\n// The control bar must be in a higher z-band than the video gallery so the drop shadow appears on top of the video gallery\n/** @private */\nexport const CONTROL_BAR_Z_INDEX = VIDEO_GALLERY_Z_INDEX + 1;\n// The notification container should be in the highest z-band to ensure it shows on top of all other content.\nconst NOTIFICATION_CONTAINER_Z_INDEX = Math.max(CONTROL_BAR_Z_INDEX, VIDEO_GALLERY_Z_INDEX) + 1;\n\n/** @private */\nexport const DRAWER_Z_INDEX = NOTIFICATION_CONTAINER_Z_INDEX + 1;\n\n/**\n * @private\n */\nexport const callControlsContainerStyles = mergeStyles(controlBarContainerStyles, {\n zIndex: CONTROL_BAR_Z_INDEX\n});\n\nconst containerStyle: IStyle = {\n width: '100%',\n position: 'relative',\n minHeight: '13rem' // linked to minimum space allocated to media gallery\n};\n\n/**\n * @private\n */\nexport const containerStyleDesktop = mergeStyles({\n ...containerStyle,\n minWidth: '30rem'\n});\n\n/**\n * @private\n */\nexport const containerStyleMobile = mergeStyles({\n ...containerStyle,\n minWidth: '17.5rem'\n});\n\n/**\n * @private\n */\nexport const galleryParentContainerStyles = (backgroundColor: string): IStackStyles => ({\n root: {\n zIndex: VIDEO_GALLERY_Z_INDEX,\n width: '100%',\n background: backgroundColor\n }\n});\n\n/**\n * @private\n */\nexport const mediaGalleryContainerStyles: IStackItemStyles = {\n root: {\n height: '100%'\n }\n};\n\n/**\n * @private\n */\nexport const notificationsContainerStyles: IStackStyles = {\n root: {\n width: '100%',\n position: 'absolute',\n top: 0,\n left: 0,\n padding: '1rem',\n zIndex: NOTIFICATION_CONTAINER_Z_INDEX,\n pointerEvents: 'none' // to allow the operation of controls underneath the notification container\n }\n};\n\n/**\n * @private\n */\nexport const bannerNotificationStyles: IStackStyles = {\n root: {\n zIndex: NOTIFICATION_CONTAINER_Z_INDEX,\n pointerEvents: 'auto' // to allow the dismissal or error and warning bars in the notification container\n }\n};\n\n/**\n * @private\n */\nexport const notificationStackStyles: IStackStyles = {\n root: {\n zIndex: NOTIFICATION_CONTAINER_Z_INDEX,\n pointerEvents: 'auto', // to allow the dismissal or error and warning bars in the notification container,\n marginBottom: '0.5rem'\n }\n};\n\n/**\n * @private\n */\nexport const callArrangementContainerStyles = (verticalControlBar?: boolean): IStackStyles => {\n return {\n root: {\n width: '100%',\n height: '100%',\n flexDirection: verticalControlBar ? 'unset' : 'column-reverse' // to allow first initial keyboard focus on ControlBar\n }\n };\n};\n\n/**\n * @private\n */\nexport const verticalControlBarStyles: IStackItemStyles = {\n root: {\n margin: 'auto'\n }\n};\n"]}
@@ -1,9 +1,13 @@
1
+ import { NotificationType } from "../../../../../react-components/src";
1
2
  import { ErrorType } from "../../../../../react-components/src";
2
3
  /** @private */
3
- export interface ErrorTrackingInfo {
4
+ export interface NotificationTrackingInfo {
4
5
  mostRecentlyActive: Date;
5
6
  lastDismissedAt?: Date;
6
7
  }
7
8
  /** @private */
8
- export type TrackedErrors = Partial<Record<ErrorType, ErrorTrackingInfo>>;
9
+ type NotificationTypes = ErrorType | /* @conditional-compile-remove(notifications) */ NotificationType;
10
+ /** @private */
11
+ export type TrackedNotifications = Partial<Record<NotificationTypes, NotificationTrackingInfo>>;
12
+ export {};
9
13
  //# sourceMappingURL=ErrorTracking.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ErrorTracking.js","sourceRoot":"","sources":["../../../../../../../../react-composites/src/composites/CallComposite/types/ErrorTracking.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { ErrorType } from '@internal/react-components';\n\n/** @private */\nexport interface ErrorTrackingInfo {\n mostRecentlyActive: Date;\n lastDismissedAt?: Date;\n}\n\n/** @private */\nexport type TrackedErrors = Partial<Record<ErrorType, ErrorTrackingInfo>>;\n"]}
1
+ {"version":3,"file":"ErrorTracking.js","sourceRoot":"","sources":["../../../../../../../../react-composites/src/composites/CallComposite/types/ErrorTracking.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\n/* @conditional-compile-remove(notifications) */\nimport { NotificationType } from '@internal/react-components';\nimport { ErrorType } from '@internal/react-components';\n\n/** @private */\nexport interface NotificationTrackingInfo {\n mostRecentlyActive: Date;\n lastDismissedAt?: Date;\n}\n\n/** @private */\ntype NotificationTypes = ErrorType | /* @conditional-compile-remove(notifications) */ NotificationType;\n\n/** @private */\nexport type TrackedNotifications = Partial<Record<NotificationTypes, NotificationTrackingInfo>>;\n"]}
@@ -1,21 +1,22 @@
1
1
  import { ActiveErrorMessage, ErrorType } from "../../../../../react-components/src";
2
- import { TrackedErrors } from '../types/ErrorTracking';
2
+ import { TrackedNotifications } from '../types/ErrorTracking';
3
+ import { NotificationType, ActiveNotification } from "../../../../../react-components/src";
3
4
  /**
4
5
  * Take the set of active errors, and filter to only those that are newer than previously dismissed errors or have never been dismissed.
5
6
  *
6
7
  * @private
7
8
  */
8
- export declare const filterLatestErrors: (activeErrors: ActiveErrorMessage[], trackedErrors: TrackedErrors) => ActiveErrorMessage[];
9
+ export declare const filterLatestErrors: (activeErrors: ActiveErrorMessage[] | /* @conditional-compile-remove(notifications) */ ActiveNotification[], trackedErrors: TrackedNotifications) => ActiveErrorMessage[] | /* @conditional-compile-remove(notifications) */ ActiveNotification[];
9
10
  /**
10
11
  * Maintain a record of the most recently active error for each error type.
11
12
  *
12
13
  * @private
13
14
  */
14
- export declare const updateTrackedErrorsWithActiveErrors: (existingTrackedErrors: TrackedErrors, activeErrors: ActiveErrorMessage[]) => TrackedErrors;
15
+ export declare const updateTrackedErrorsWithActiveErrors: (existingTrackedErrors: TrackedNotifications, activeErrors: ActiveErrorMessage[] | /* @conditional-compile-remove(notifications) */ ActiveNotification[]) => TrackedNotifications;
15
16
  /**
16
17
  * Create a record for when the error was most recently dismissed for tracking dismissed errors.
17
18
  *
18
19
  * @private
19
20
  */
20
- export declare const trackErrorAsDismissed: (errorType: ErrorType, trackedErrors: TrackedErrors) => TrackedErrors;
21
+ export declare const trackErrorAsDismissed: (errorType: ErrorType | /* @conditional-compile-remove(notifications) */ NotificationType, trackedErrors: TrackedNotifications) => TrackedNotifications;
21
22
  //# sourceMappingURL=TrackErrors.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"TrackErrors.js","sourceRoot":"","sources":["../../../../../../../../react-composites/src/composites/CallComposite/utils/TrackErrors.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAKlC;;;;GAIG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAChC,YAAkC,EAClC,aAA4B,EACN,EAAE;IACxB,MAAM,cAAc,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,EAAE;QACzD,MAAM,YAAY,GAAG,aAAa,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QACrD,OAAO,CACL,CAAC,YAAY,IAAI,CAAC,YAAY,CAAC,eAAe,IAAI,YAAY,CAAC,eAAe,GAAG,YAAY,CAAC,kBAAkB,CACjH,CAAC;IACJ,CAAC,CAAC,CAAC;IACH,OAAO,cAAc,CAAC;AACxB,CAAC,CAAC;AAEF;;;;GAIG;AACH,MAAM,CAAC,MAAM,mCAAmC,GAAG,CACjD,qBAAoC,EACpC,YAAkC,EACnB,EAAE;;IACjB,MAAM,aAAa,GAAkB,EAAE,CAAC;IAExC,0HAA0H;IAC1H,KAAK,MAAM,WAAW,IAAI,YAAY,EAAE,CAAC;QACvC,MAAM,oBAAoB,GAAG,qBAAqB,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QACrE,aAAa,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG;YAChC,kBAAkB,EAAE,MAAA,MAAA,WAAW,CAAC,SAAS,mCAAI,oBAAoB,aAApB,oBAAoB,uBAApB,oBAAoB,CAAE,kBAAkB,mCAAI,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;YAC7G,eAAe,EAAE,oBAAoB,aAApB,oBAAoB,uBAApB,oBAAoB,CAAE,eAAe;SACvD,CAAC;IACJ,CAAC;IAED,OAAO,aAAa,CAAC;AACvB,CAAC,CAAC;AAEF;;;;GAIG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,SAAoB,EAAE,aAA4B,EAAiB,EAAE;IACzG,MAAM,GAAG,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;IACjC,MAAM,aAAa,GAAG,aAAa,CAAC,SAAS,CAAC,CAAC;IAE/C,uCACK,aAAa,KAChB,CAAC,SAAS,CAAC,kCACN,CAAC,aAAa,IAAI,EAAE,CAAC,KACxB,eAAe,EAAE,GAAG,OAEtB;AACJ,CAAC,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { ActiveErrorMessage, ErrorType } from '@internal/react-components';\nimport { TrackedErrors } from '../types/ErrorTracking';\n\n/**\n * Take the set of active errors, and filter to only those that are newer than previously dismissed errors or have never been dismissed.\n *\n * @private\n */\nexport const filterLatestErrors = (\n activeErrors: ActiveErrorMessage[],\n trackedErrors: TrackedErrors\n): ActiveErrorMessage[] => {\n const filteredErrors = activeErrors.filter((activeError) => {\n const trackedError = trackedErrors[activeError.type];\n return (\n !trackedError || !trackedError.lastDismissedAt || trackedError.lastDismissedAt < trackedError.mostRecentlyActive\n );\n });\n return filteredErrors;\n};\n\n/**\n * Maintain a record of the most recently active error for each error type.\n *\n * @private\n */\nexport const updateTrackedErrorsWithActiveErrors = (\n existingTrackedErrors: TrackedErrors,\n activeErrors: ActiveErrorMessage[]\n): TrackedErrors => {\n const trackedErrors: TrackedErrors = {};\n\n // Only care about active errors. If errors are no longer active we do not track that they have been previously dismissed.\n for (const activeError of activeErrors) {\n const existingTrackedError = existingTrackedErrors[activeError.type];\n trackedErrors[activeError.type] = {\n mostRecentlyActive: activeError.timestamp ?? existingTrackedError?.mostRecentlyActive ?? new Date(Date.now()),\n lastDismissedAt: existingTrackedError?.lastDismissedAt\n };\n }\n\n return trackedErrors;\n};\n\n/**\n * Create a record for when the error was most recently dismissed for tracking dismissed errors.\n *\n * @private\n */\nexport const trackErrorAsDismissed = (errorType: ErrorType, trackedErrors: TrackedErrors): TrackedErrors => {\n const now = new Date(Date.now());\n const existingError = trackedErrors[errorType];\n\n return {\n ...trackedErrors,\n [errorType]: {\n ...(existingError || {}),\n lastDismissedAt: now\n }\n };\n};\n"]}
1
+ {"version":3,"file":"TrackErrors.js","sourceRoot":"","sources":["../../../../../../../../react-composites/src/composites/CallComposite/utils/TrackErrors.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAOlC;;;;GAIG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAChC,YAA0G,EAC1G,aAAmC,EAC2D,EAAE;IAChG,MAAM,cAAc,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,EAAE;QACzD,MAAM,YAAY,GAAG,aAAa,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QACrD,OAAO,CACL,CAAC,YAAY,IAAI,CAAC,YAAY,CAAC,eAAe,IAAI,YAAY,CAAC,eAAe,GAAG,YAAY,CAAC,kBAAkB,CACjH,CAAC;IACJ,CAAC,CAAC,CAAC;IACH,OAAO,cAA8G,CAAC;AACxH,CAAC,CAAC;AAEF;;;;GAIG;AACH,MAAM,CAAC,MAAM,mCAAmC,GAAG,CACjD,qBAA2C,EAC3C,YAA0G,EACpF,EAAE;;IACxB,MAAM,aAAa,GAAyB,EAAE,CAAC;IAE/C,0HAA0H;IAC1H,KAAK,MAAM,WAAW,IAAI,YAAY,EAAE,CAAC;QACvC,MAAM,oBAAoB,GAAG,qBAAqB,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QACrE,aAAa,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG;YAChC,kBAAkB,EAAE,MAAA,MAAA,WAAW,CAAC,SAAS,mCAAI,oBAAoB,aAApB,oBAAoB,uBAApB,oBAAoB,CAAE,kBAAkB,mCAAI,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;YAC7G,eAAe,EAAE,oBAAoB,aAApB,oBAAoB,uBAApB,oBAAoB,CAAE,eAAe;SACvD,CAAC;IACJ,CAAC;IAED,OAAO,aAAa,CAAC;AACvB,CAAC,CAAC;AAEF;;;;GAIG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,CACnC,SAAwF,EACxF,aAAmC,EACb,EAAE;IACxB,MAAM,GAAG,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;IACjC,MAAM,aAAa,GAAG,aAAa,CAAC,SAAS,CAAC,CAAC;IAE/C,uCACK,aAAa,KAChB,CAAC,SAAS,CAAC,kCACN,CAAC,aAAa,IAAI,EAAE,CAAC,KACxB,eAAe,EAAE,GAAG,OAEtB;AACJ,CAAC,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { ActiveErrorMessage, ErrorType } from '@internal/react-components';\nimport { TrackedNotifications } from '../types/ErrorTracking';\n/* @conditional-compile-remove(notifications) */\nimport { NotificationType, ActiveNotification } from '@internal/react-components';\n\n/**\n * Take the set of active errors, and filter to only those that are newer than previously dismissed errors or have never been dismissed.\n *\n * @private\n */\nexport const filterLatestErrors = (\n activeErrors: ActiveErrorMessage[] | /* @conditional-compile-remove(notifications) */ ActiveNotification[],\n trackedErrors: TrackedNotifications\n): ActiveErrorMessage[] | /* @conditional-compile-remove(notifications) */ ActiveNotification[] => {\n const filteredErrors = activeErrors.filter((activeError) => {\n const trackedError = trackedErrors[activeError.type];\n return (\n !trackedError || !trackedError.lastDismissedAt || trackedError.lastDismissedAt < trackedError.mostRecentlyActive\n );\n });\n return filteredErrors as ActiveErrorMessage[] | /* @conditional-compile-remove(notifications) */ ActiveNotification[];\n};\n\n/**\n * Maintain a record of the most recently active error for each error type.\n *\n * @private\n */\nexport const updateTrackedErrorsWithActiveErrors = (\n existingTrackedErrors: TrackedNotifications,\n activeErrors: ActiveErrorMessage[] | /* @conditional-compile-remove(notifications) */ ActiveNotification[]\n): TrackedNotifications => {\n const trackedErrors: TrackedNotifications = {};\n\n // Only care about active errors. If errors are no longer active we do not track that they have been previously dismissed.\n for (const activeError of activeErrors) {\n const existingTrackedError = existingTrackedErrors[activeError.type];\n trackedErrors[activeError.type] = {\n mostRecentlyActive: activeError.timestamp ?? existingTrackedError?.mostRecentlyActive ?? new Date(Date.now()),\n lastDismissedAt: existingTrackedError?.lastDismissedAt\n };\n }\n\n return trackedErrors;\n};\n\n/**\n * Create a record for when the error was most recently dismissed for tracking dismissed errors.\n *\n * @private\n */\nexport const trackErrorAsDismissed = (\n errorType: ErrorType | /* @conditional-compile-remove(notifications) */ NotificationType,\n trackedErrors: TrackedNotifications\n): TrackedNotifications => {\n const now = new Date(Date.now());\n const existingError = trackedErrors[errorType];\n\n return {\n ...trackedErrors,\n [errorType]: {\n ...(existingError || {}),\n lastDismissedAt: now\n }\n };\n};\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@azure/communication-react",
3
- "version": "1.18.0-alpha-202406280014",
3
+ "version": "1.18.0-alpha-202407030014",
4
4
  "sideEffects": false,
5
5
  "description": "React library for building modern communication user experiences utilizing Azure Communication Services",
6
6
  "keywords": [
@@ -45,11 +45,11 @@
45
45
  "react-linkify": "^1.0.0-alpha",
46
46
  "react-use-draggable-scroll": "^0.4.7",
47
47
  "reselect": "^4.0.0",
48
- "roosterjs-content-model-api": "^9.6.0",
49
- "roosterjs-content-model-core": "^9.6.0",
50
- "roosterjs-content-model-dom": "^9.6.0",
51
- "roosterjs-content-model-plugins": "^9.6.1",
52
- "roosterjs-content-model-types": "^9.6.0",
48
+ "roosterjs-content-model-api": "^9.7.0",
49
+ "roosterjs-content-model-core": "^9.7.0",
50
+ "roosterjs-content-model-dom": "^9.7.0",
51
+ "roosterjs-content-model-plugins": "^9.7.0",
52
+ "roosterjs-content-model-types": "^9.7.0",
53
53
  "textarea-caret-ts": "^4.1.1",
54
54
  "use-debounce": "^10.0.1",
55
55
  "uuid": "^9.0.0"