@azure/communication-react 1.20.0-alpha-202410130017 → 1.20.0-alpha-202410170016

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 (106) hide show
  1. package/dist/communication-react.d.ts +10 -10
  2. package/dist/dist-cjs/communication-react/{ChatMessageComponentAsRichTextEditBox-Cfp-l5FZ.js → ChatMessageComponentAsRichTextEditBox-Dg2BkrN6.js} +2 -2
  3. package/dist/dist-cjs/communication-react/{ChatMessageComponentAsRichTextEditBox-Cfp-l5FZ.js.map → ChatMessageComponentAsRichTextEditBox-Dg2BkrN6.js.map} +1 -1
  4. package/dist/dist-cjs/communication-react/{RichTextSendBoxWrapper-4qfX6tfT.js → RichTextSendBoxWrapper-D4pLWFtj.js} +2 -2
  5. package/dist/dist-cjs/communication-react/{RichTextSendBoxWrapper-4qfX6tfT.js.map → RichTextSendBoxWrapper-D4pLWFtj.js.map} +1 -1
  6. package/dist/dist-cjs/communication-react/{index-BzKaW_nR.js → index-BlNmEm_b.js} +225 -163
  7. package/dist/dist-cjs/communication-react/{index-BzKaW_nR.js.map → index-BlNmEm_b.js.map} +1 -1
  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/acs-ui-javascript-loaders/src/callCompositeLoader.d.ts +3 -2
  12. package/dist/dist-esm/acs-ui-javascript-loaders/src/callCompositeLoader.js +3 -5
  13. package/dist/dist-esm/acs-ui-javascript-loaders/src/callCompositeLoader.js.map +1 -1
  14. package/dist/dist-esm/acs-ui-javascript-loaders/src/callWithChatCompositeLoader.d.ts +3 -2
  15. package/dist/dist-esm/acs-ui-javascript-loaders/src/callWithChatCompositeLoader.js +3 -5
  16. package/dist/dist-esm/acs-ui-javascript-loaders/src/callWithChatCompositeLoader.js.map +1 -1
  17. package/dist/dist-esm/acs-ui-javascript-loaders/src/chatCompositeLoader.d.ts +3 -2
  18. package/dist/dist-esm/acs-ui-javascript-loaders/src/chatCompositeLoader.js +3 -5
  19. package/dist/dist-esm/acs-ui-javascript-loaders/src/chatCompositeLoader.js.map +1 -1
  20. package/dist/dist-esm/acs-ui-javascript-loaders/src/outboundCallCompositeLoader.d.ts +3 -2
  21. package/dist/dist-esm/acs-ui-javascript-loaders/src/outboundCallCompositeLoader.js +3 -4
  22. package/dist/dist-esm/acs-ui-javascript-loaders/src/outboundCallCompositeLoader.js.map +1 -1
  23. package/dist/dist-esm/chat-component-bindings/src/chatParticipantListSelector.js +10 -14
  24. package/dist/dist-esm/chat-component-bindings/src/chatParticipantListSelector.js.map +1 -1
  25. package/dist/dist-esm/chat-component-bindings/src/hooks/usePropsFor.js +2 -2
  26. package/dist/dist-esm/chat-component-bindings/src/hooks/usePropsFor.js.map +1 -1
  27. package/dist/dist-esm/chat-component-bindings/src/typingIndicatorSelector.js +2 -2
  28. package/dist/dist-esm/chat-component-bindings/src/typingIndicatorSelector.js.map +1 -1
  29. package/dist/dist-esm/chat-stateful-client/src/ChatContext.js +6 -8
  30. package/dist/dist-esm/chat-stateful-client/src/ChatContext.js.map +1 -1
  31. package/dist/dist-esm/chat-stateful-client/src/ResourceDownloadQueue.js +4 -3
  32. package/dist/dist-esm/chat-stateful-client/src/ResourceDownloadQueue.js.map +1 -1
  33. package/dist/dist-esm/react-components/src/components/VideoGallery/styles/FloatingLocalVideo.styles.js +1 -1
  34. package/dist/dist-esm/react-components/src/components/VideoGallery/styles/FloatingLocalVideo.styles.js.map +1 -1
  35. package/dist/dist-esm/react-composites/src/composites/CallComposite/CallComposite.js +14 -5
  36. package/dist/dist-esm/react-composites/src/composites/CallComposite/CallComposite.js.map +1 -1
  37. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/AzureCommunicationCallAdapter.d.ts +2 -1
  38. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/AzureCommunicationCallAdapter.js +39 -26
  39. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/AzureCommunicationCallAdapter.js.map +1 -1
  40. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/CallAdapter.d.ts +2 -2
  41. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/CallAdapter.js.map +1 -1
  42. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/CallingSoundSubscriber.d.ts +2 -2
  43. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/CallingSoundSubscriber.js +8 -9
  44. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/CallingSoundSubscriber.js.map +1 -1
  45. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/OnFetchProfileCallback.js +9 -4
  46. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/OnFetchProfileCallback.js.map +1 -1
  47. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/CallReadinessModal.js +4 -4
  48. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/CallReadinessModal.js.map +1 -1
  49. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/LocalDeviceSettings.js +27 -8
  50. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/LocalDeviceSettings.js.map +1 -1
  51. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/NetworkReconnectTile.js +1 -1
  52. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/NetworkReconnectTile.js.map +1 -1
  53. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/SidePane/usePeoplePane.js +1 -1
  54. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/SidePane/usePeoplePane.js.map +1 -1
  55. package/dist/dist-esm/react-composites/src/composites/CallComposite/hooks/useHandlers.js +1 -1
  56. package/dist/dist-esm/react-composites/src/composites/CallComposite/hooks/useHandlers.js.map +1 -1
  57. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/TransferPage.js +3 -0
  58. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/TransferPage.js.map +1 -1
  59. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/dominantRemoteParticipantSelector.js +1 -1
  60. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/dominantRemoteParticipantSelector.js.map +1 -1
  61. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/localPreviewSelector.js +2 -1
  62. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/localPreviewSelector.js.map +1 -1
  63. package/dist/dist-esm/react-composites/src/composites/CallComposite/utils/MediaGalleryUtils.js +10 -11
  64. package/dist/dist-esm/react-composites/src/composites/CallComposite/utils/MediaGalleryUtils.js.map +1 -1
  65. package/dist/dist-esm/react-composites/src/composites/CallComposite/utils/Utils.js +12 -8
  66. package/dist/dist-esm/react-composites/src/composites/CallComposite/utils/Utils.js.map +1 -1
  67. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/AzureCommunicationCallWithChatAdapter.d.ts +2 -2
  68. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/AzureCommunicationCallWithChatAdapter.js +1 -4
  69. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/AzureCommunicationCallWithChatAdapter.js.map +1 -1
  70. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/CallWithChatAdapter.d.ts +2 -2
  71. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/CallWithChatAdapter.js.map +1 -1
  72. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/CallWithChatBackedCallAdapter.d.ts +2 -2
  73. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/CallWithChatBackedCallAdapter.js.map +1 -1
  74. package/dist/dist-esm/react-composites/src/composites/ChatComposite/ChatScreen.js +18 -19
  75. package/dist/dist-esm/react-composites/src/composites/ChatComposite/ChatScreen.js.map +1 -1
  76. package/dist/dist-esm/react-composites/src/composites/ChatComposite/ImageUpload/ImageUploadUtils.js +17 -5
  77. package/dist/dist-esm/react-composites/src/composites/ChatComposite/ImageUpload/ImageUploadUtils.js.map +1 -1
  78. package/dist/dist-esm/react-composites/src/composites/common/MeetingPhoneInfoPaneContent.js +1 -1
  79. package/dist/dist-esm/react-composites/src/composites/common/MeetingPhoneInfoPaneContent.js.map +1 -1
  80. package/dist/dist-esm/react-composites/src/composites/common/ModalLocalAndRemotePIP.js +5 -1
  81. package/dist/dist-esm/react-composites/src/composites/common/ModalLocalAndRemotePIP.js.map +1 -1
  82. package/dist/dist-esm/react-composites/src/composites/localization/locales/ar-SA/strings.json +2 -1
  83. package/dist/dist-esm/react-composites/src/composites/localization/locales/cs-CZ/strings.json +2 -1
  84. package/dist/dist-esm/react-composites/src/composites/localization/locales/cy-GB/strings.json +2 -1
  85. package/dist/dist-esm/react-composites/src/composites/localization/locales/de-DE/strings.json +2 -1
  86. package/dist/dist-esm/react-composites/src/composites/localization/locales/en-GB/strings.json +2 -1
  87. package/dist/dist-esm/react-composites/src/composites/localization/locales/es-ES/strings.json +2 -1
  88. package/dist/dist-esm/react-composites/src/composites/localization/locales/fi-FI/strings.json +2 -1
  89. package/dist/dist-esm/react-composites/src/composites/localization/locales/fr-FR/strings.json +2 -1
  90. package/dist/dist-esm/react-composites/src/composites/localization/locales/he-IL/strings.json +2 -1
  91. package/dist/dist-esm/react-composites/src/composites/localization/locales/it-IT/strings.json +2 -1
  92. package/dist/dist-esm/react-composites/src/composites/localization/locales/ja-JP/strings.json +2 -1
  93. package/dist/dist-esm/react-composites/src/composites/localization/locales/ko-KR/strings.json +1 -0
  94. package/dist/dist-esm/react-composites/src/composites/localization/locales/nb-NO/strings.json +2 -1
  95. package/dist/dist-esm/react-composites/src/composites/localization/locales/nl-NL/strings.json +2 -1
  96. package/dist/dist-esm/react-composites/src/composites/localization/locales/pl-PL/strings.json +2 -1
  97. package/dist/dist-esm/react-composites/src/composites/localization/locales/pt-BR/strings.json +2 -1
  98. package/dist/dist-esm/react-composites/src/composites/localization/locales/ru-RU/strings.json +2 -1
  99. package/dist/dist-esm/react-composites/src/composites/localization/locales/sv-SE/strings.json +2 -1
  100. package/dist/dist-esm/react-composites/src/composites/localization/locales/tr-TR/strings.json +2 -1
  101. package/dist/dist-esm/react-composites/src/composites/localization/locales/zh-CN/strings.json +2 -1
  102. package/dist/dist-esm/react-composites/src/composites/localization/locales/zh-TW/strings.json +2 -1
  103. package/package.json +2 -2
  104. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/parseTeamsUrl.d.ts +0 -8
  105. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/parseTeamsUrl.js +0 -25
  106. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/parseTeamsUrl.js.map +0 -1
@@ -17,7 +17,7 @@ export const MeetingPhoneInfoPaneContent = (props) => {
17
17
  return (React.createElement(Stack, { verticalFill: true, styles: phoneInfoContainerStyle, tokens: phoneInfoContainerTokens, "data-ui-id": "phone-info-pane-content" },
18
18
  (conferencePhoneInfoList === undefined || conferencePhoneInfoList.length === 0) && (React.createElement(Stack, { horizontal: true },
19
19
  React.createElement(Text, { className: phoneInfoTextStyle }, localeStrings.meetingConferencePhoneInfoModalNoPhoneAvailable))),
20
- conferencePhoneInfoList && conferencePhoneInfoList.length > 0 && (React.createElement(Stack, null,
20
+ conferencePhoneInfoList && conferencePhoneInfoList[0] && (React.createElement(Stack, null,
21
21
  React.createElement(Stack, { horizontal: true, horizontalAlign: "space-between", className: phoneInfoInstructionLine },
22
22
  React.createElement(Stack.Item, null,
23
23
  React.createElement(Stack, { horizontal: true, className: phoneInfoStep },
@@ -1 +1 @@
1
- {"version":3,"file":"MeetingPhoneInfoPaneContent.js","sourceRoot":"","sources":["../../../../../../../react-composites/src/composites/common/MeetingPhoneInfoPaneContent.tsx"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\n// eslint-disable-next-line no-restricted-imports\nimport { Stack, Text, useTheme, Icon, Link } from '@fluentui/react';\nimport { _DrawerMenuItemProps } from '@internal/react-components';\nimport React from 'react';\nimport {\n ConferencePhoneInfo,\n formatPhoneNumberInfo,\n _formatPhoneNumber,\n formatPhoneNumberLink\n} from '@internal/react-components';\nimport {\n phoneInfoTextStyle,\n phoneInfoIcon,\n phoneInfoInstructionLine,\n phoneInfoStep,\n phoneInfoIconStyle,\n phoneInfoLabelStyle,\n phoneInfoContainerTokens,\n phoneInfoContainerStyle\n} from './styles/TeamsMeetingConferenceInfo.style';\nimport { useLocale } from '../localization';\n\n/**\n * @private\n */\nexport const MeetingPhoneInfoPaneContent = (props: {\n mobileView?: boolean;\n conferencePhoneInfoList?: ConferencePhoneInfo[];\n}): JSX.Element => {\n const { conferencePhoneInfoList } = props;\n const theme = useTheme();\n const localeStrings = useLocale().component.strings.meetingConferencePhoneInfo;\n\n if (props.mobileView) {\n return (\n <Stack\n verticalFill\n styles={phoneInfoContainerStyle}\n tokens={phoneInfoContainerTokens}\n data-ui-id=\"phone-info-pane-content\"\n >\n {(conferencePhoneInfoList === undefined || conferencePhoneInfoList.length === 0) && (\n <Stack horizontal>\n <Text className={phoneInfoTextStyle}>{localeStrings.meetingConferencePhoneInfoModalNoPhoneAvailable}</Text>\n </Stack>\n )}\n {conferencePhoneInfoList && conferencePhoneInfoList.length > 0 && (\n <Stack>\n <Stack horizontal horizontalAlign=\"space-between\" className={phoneInfoInstructionLine}>\n <Stack.Item>\n <Stack horizontal className={phoneInfoStep}>\n <Stack.Item className={phoneInfoIcon(theme)}>\n <Stack verticalAlign=\"center\" horizontalAlign=\"center\">\n <Icon iconName=\"JoinByPhoneDialStepIcon\" className={phoneInfoIconStyle(theme)} />\n </Stack>\n </Stack.Item>\n <Stack.Item>\n <Text className={phoneInfoLabelStyle}>{localeStrings.meetingConferencePhoneInfoModalDialIn}</Text>\n </Stack.Item>\n </Stack>\n </Stack.Item>\n <Stack.Item className={phoneInfoStep}>\n {conferencePhoneInfoList.map((phoneNumber, index) => (\n <Stack.Item key={index}>\n <Link className={phoneInfoTextStyle} href={formatPhoneNumberLink(phoneNumber)}>\n {_formatPhoneNumber(phoneNumber.phoneNumber, true)}\n </Link>\n <Text className={phoneInfoTextStyle}>\n {' '}\n {phoneNumber.isTollFree\n ? localeStrings.meetingConferencePhoneInfoModalTollFree\n : localeStrings.meetingConferencePhoneInfoModalToll}\n </Text>\n <br />\n <Text className={phoneInfoTextStyle}> {formatPhoneNumberInfo(phoneNumber, localeStrings)}</Text>\n </Stack.Item>\n ))}\n </Stack.Item>\n </Stack>\n <Stack\n horizontal\n horizontalAlign=\"space-between\"\n verticalAlign=\"center\"\n className={phoneInfoInstructionLine}\n >\n <Stack.Item>\n <Stack horizontal>\n <Stack.Item className={phoneInfoIcon(theme)}>\n <Icon iconName=\"JoinByPhoneConferenceIdIcon\" className={phoneInfoIconStyle(theme)} />\n </Stack.Item>\n <Stack.Item>\n <Text className={phoneInfoLabelStyle}>\n {localeStrings.meetingConferencePhoneInfoModalMeetingId}\n </Text>\n </Stack.Item>\n </Stack>\n </Stack.Item>\n <Text className={phoneInfoTextStyle}>{conferencePhoneInfoList[0].conferenceId}#</Text>\n </Stack>\n <Stack\n horizontal\n horizontalAlign=\"space-between\"\n verticalAlign=\"center\"\n className={phoneInfoInstructionLine}\n >\n <Stack horizontal>\n <Stack.Item className={phoneInfoIcon(theme)}>\n <Icon iconName=\"JoinByPhoneWaitToBeAdmittedIcon\" className={phoneInfoIconStyle(theme)} />\n </Stack.Item>\n <Stack.Item>\n <Text className={phoneInfoLabelStyle}>{localeStrings.meetingConferencePhoneInfoModalWait}</Text>\n </Stack.Item>\n </Stack>\n </Stack>\n </Stack>\n )}\n </Stack>\n );\n }\n\n return (\n <Stack\n verticalFill\n styles={phoneInfoContainerStyle}\n tokens={phoneInfoContainerTokens}\n data-ui-id=\"phone-info-pane-content\"\n ></Stack>\n );\n};\n"]}
1
+ {"version":3,"file":"MeetingPhoneInfoPaneContent.js","sourceRoot":"","sources":["../../../../../../../react-composites/src/composites/common/MeetingPhoneInfoPaneContent.tsx"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\n// eslint-disable-next-line no-restricted-imports\nimport { Stack, Text, useTheme, Icon, Link } from '@fluentui/react';\nimport { _DrawerMenuItemProps } from '@internal/react-components';\nimport React from 'react';\nimport {\n ConferencePhoneInfo,\n formatPhoneNumberInfo,\n _formatPhoneNumber,\n formatPhoneNumberLink\n} from '@internal/react-components';\nimport {\n phoneInfoTextStyle,\n phoneInfoIcon,\n phoneInfoInstructionLine,\n phoneInfoStep,\n phoneInfoIconStyle,\n phoneInfoLabelStyle,\n phoneInfoContainerTokens,\n phoneInfoContainerStyle\n} from './styles/TeamsMeetingConferenceInfo.style';\nimport { useLocale } from '../localization';\n\n/**\n * @private\n */\nexport const MeetingPhoneInfoPaneContent = (props: {\n mobileView?: boolean;\n conferencePhoneInfoList?: ConferencePhoneInfo[];\n}): JSX.Element => {\n const { conferencePhoneInfoList } = props;\n const theme = useTheme();\n const localeStrings = useLocale().component.strings.meetingConferencePhoneInfo;\n\n if (props.mobileView) {\n return (\n <Stack\n verticalFill\n styles={phoneInfoContainerStyle}\n tokens={phoneInfoContainerTokens}\n data-ui-id=\"phone-info-pane-content\"\n >\n {(conferencePhoneInfoList === undefined || conferencePhoneInfoList.length === 0) && (\n <Stack horizontal>\n <Text className={phoneInfoTextStyle}>{localeStrings.meetingConferencePhoneInfoModalNoPhoneAvailable}</Text>\n </Stack>\n )}\n {conferencePhoneInfoList && conferencePhoneInfoList[0] && (\n <Stack>\n <Stack horizontal horizontalAlign=\"space-between\" className={phoneInfoInstructionLine}>\n <Stack.Item>\n <Stack horizontal className={phoneInfoStep}>\n <Stack.Item className={phoneInfoIcon(theme)}>\n <Stack verticalAlign=\"center\" horizontalAlign=\"center\">\n <Icon iconName=\"JoinByPhoneDialStepIcon\" className={phoneInfoIconStyle(theme)} />\n </Stack>\n </Stack.Item>\n <Stack.Item>\n <Text className={phoneInfoLabelStyle}>{localeStrings.meetingConferencePhoneInfoModalDialIn}</Text>\n </Stack.Item>\n </Stack>\n </Stack.Item>\n <Stack.Item className={phoneInfoStep}>\n {conferencePhoneInfoList.map((phoneNumber, index) => (\n <Stack.Item key={index}>\n <Link className={phoneInfoTextStyle} href={formatPhoneNumberLink(phoneNumber)}>\n {_formatPhoneNumber(phoneNumber.phoneNumber, true)}\n </Link>\n <Text className={phoneInfoTextStyle}>\n {' '}\n {phoneNumber.isTollFree\n ? localeStrings.meetingConferencePhoneInfoModalTollFree\n : localeStrings.meetingConferencePhoneInfoModalToll}\n </Text>\n <br />\n <Text className={phoneInfoTextStyle}> {formatPhoneNumberInfo(phoneNumber, localeStrings)}</Text>\n </Stack.Item>\n ))}\n </Stack.Item>\n </Stack>\n <Stack\n horizontal\n horizontalAlign=\"space-between\"\n verticalAlign=\"center\"\n className={phoneInfoInstructionLine}\n >\n <Stack.Item>\n <Stack horizontal>\n <Stack.Item className={phoneInfoIcon(theme)}>\n <Icon iconName=\"JoinByPhoneConferenceIdIcon\" className={phoneInfoIconStyle(theme)} />\n </Stack.Item>\n <Stack.Item>\n <Text className={phoneInfoLabelStyle}>\n {localeStrings.meetingConferencePhoneInfoModalMeetingId}\n </Text>\n </Stack.Item>\n </Stack>\n </Stack.Item>\n <Text className={phoneInfoTextStyle}>{conferencePhoneInfoList[0].conferenceId}#</Text>\n </Stack>\n <Stack\n horizontal\n horizontalAlign=\"space-between\"\n verticalAlign=\"center\"\n className={phoneInfoInstructionLine}\n >\n <Stack horizontal>\n <Stack.Item className={phoneInfoIcon(theme)}>\n <Icon iconName=\"JoinByPhoneWaitToBeAdmittedIcon\" className={phoneInfoIconStyle(theme)} />\n </Stack.Item>\n <Stack.Item>\n <Text className={phoneInfoLabelStyle}>{localeStrings.meetingConferencePhoneInfoModalWait}</Text>\n </Stack.Item>\n </Stack>\n </Stack>\n </Stack>\n )}\n </Stack>\n );\n }\n\n return (\n <Stack\n verticalFill\n styles={phoneInfoContainerStyle}\n tokens={phoneInfoContainerTokens}\n data-ui-id=\"phone-info-pane-content\"\n ></Stack>\n );\n};\n"]}
@@ -34,7 +34,11 @@ export const ModalLocalAndRemotePIP = (props) => {
34
34
  const [touchStartTouches, setTouchStartTouches] = useState(null);
35
35
  const onTouchEnd = useCallback((event) => {
36
36
  var _a;
37
- if (touchStartTouches && touchStartTouches.length === 1 && event.changedTouches.length === 1) {
37
+ if (touchStartTouches &&
38
+ touchStartTouches[0] &&
39
+ touchStartTouches.length === 1 &&
40
+ event.changedTouches[0] &&
41
+ event.changedTouches.length === 1) {
38
42
  const touchStartTouch = touchStartTouches[0];
39
43
  const touchEndTouch = event.changedTouches[0];
40
44
  if (Math.abs(touchStartTouch.clientX - touchEndTouch.clientX) < 10 &&
@@ -1 +1 @@
1
- {"version":3,"file":"ModalLocalAndRemotePIP.js","sourceRoot":"","sources":["../../../../../../../react-composites/src/composites/common/ModalLocalAndRemotePIP.tsx"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { concatStyleSets, ContextualMenu, IDragOptions, Stack } from '@fluentui/react';\nimport React, { useCallback, useMemo, useState } from 'react';\nimport { LocalAndRemotePIP } from '../CallComposite/components/LocalAndRemotePIP';\nimport { useHandlers } from '../CallComposite/hooks/useHandlers';\nimport { useSelector } from '../CallComposite/hooks/useSelector';\nimport { localAndRemotePIPSelector } from '../CallComposite/selectors/localAndRemotePIPSelector';\nimport { _ModalClone, _ICoordinates } from '@internal/react-components';\nimport { _RemoteVideoTile } from '@internal/react-components';\nimport {\n hiddenStyle,\n ModalLocalAndRemotePIPStyles,\n modalStyle,\n PIPContainerStyle\n} from './styles/ModalLocalAndRemotePIP.styles';\nimport { useLocale } from '../localization';\nimport { getRole } from '../CallComposite/selectors/baseSelectors';\n\n/**\n * Drag options for Modal in {@link ModalLocalAndRemotePIP} component\n */\nconst DRAG_OPTIONS: IDragOptions = {\n moveMenuItemText: 'Move',\n closeMenuItemText: 'Close',\n menu: ContextualMenu,\n keepInBounds: true\n};\n\n/**\n * @private\n */\nexport interface ModalLocalAndRemotePIPStrings {\n /**\n * Aria label for dismiss control when using keyboard\n */\n dismissModalAriaLabel?: string;\n}\n\n/**\n * A wrapping component with a draggable {@link LocalAndRemotePIP} component that is bound to a LayerHost component with id\n * specified by `modalLayerHostId` prop\n * @private\n */\nexport const ModalLocalAndRemotePIP = (props: {\n hidden: boolean;\n modalLayerHostId: string;\n styles?: ModalLocalAndRemotePIPStyles;\n minDragPosition?: _ICoordinates;\n maxDragPosition?: _ICoordinates;\n onDismissSidePane?: () => void;\n strings?: ModalLocalAndRemotePIPStrings;\n}): JSX.Element | null => {\n const rootStyles = props.hidden ? hiddenStyle : PIPContainerStyle;\n\n const role = useSelector(getRole);\n\n const locale = useLocale();\n\n const pictureInPictureProps = useSelector(localAndRemotePIPSelector);\n\n const [touchStartTouches, setTouchStartTouches] = useState<React.TouchList | null>(null);\n\n const onTouchEnd = useCallback(\n (event: React.TouchEvent) => {\n if (touchStartTouches && touchStartTouches.length === 1 && event.changedTouches.length === 1) {\n const touchStartTouch = touchStartTouches[0];\n const touchEndTouch = event.changedTouches[0];\n if (\n Math.abs(touchStartTouch.clientX - touchEndTouch.clientX) < 10 &&\n Math.abs(touchStartTouch.clientY - touchEndTouch.clientY) < 10\n ) {\n props.onDismissSidePane?.();\n }\n }\n },\n [props, touchStartTouches]\n );\n\n const onTouchStart = useCallback((event: React.TouchEvent) => {\n setTouchStartTouches(event.touches);\n }, []);\n\n const onKeyDown = useCallback(\n (event: React.KeyboardEvent) => {\n if (event.key === 'Enter' || event.key === ' ') {\n props.onDismissSidePane?.();\n }\n },\n [props]\n );\n\n const pictureInPictureHandlers = useHandlers(LocalAndRemotePIP);\n const remoteParticipant = pictureInPictureProps.remoteParticipant;\n\n const localAndRemotePIP = useMemo(() => {\n if (role === 'Consumer' && remoteParticipant?.userId) {\n return (\n <Stack tabIndex={0} aria-label={props.strings?.dismissModalAriaLabel ?? ''} onKeyDown={onKeyDown}>\n <_RemoteVideoTile\n strings={locale.component.strings.videoGallery}\n {...remoteParticipant}\n remoteParticipant={remoteParticipant}\n />\n </Stack>\n );\n }\n return (\n <Stack tabIndex={0} aria-label={props.strings?.dismissModalAriaLabel ?? ''} onKeyDown={onKeyDown}>\n <LocalAndRemotePIP\n {...pictureInPictureProps}\n {...pictureInPictureHandlers}\n remoteParticipant={remoteParticipant}\n />\n </Stack>\n );\n }, [\n role,\n onKeyDown,\n pictureInPictureProps,\n props,\n pictureInPictureHandlers,\n locale.component.strings.videoGallery,\n remoteParticipant\n ]);\n\n if (role === 'Consumer' && !remoteParticipant) {\n return null;\n }\n\n const modalStylesThemed = concatStyleSets(modalStyle, props.styles?.modal);\n\n return (\n <Stack styles={rootStyles}>\n <Stack onTouchStart={onTouchStart} onTouchEnd={onTouchEnd}>\n <_ModalClone\n isOpen={true}\n isModeless={true}\n dragOptions={DRAG_OPTIONS}\n styles={modalStylesThemed}\n layerProps={{ hostId: props.modalLayerHostId }}\n minDragPosition={props.minDragPosition}\n maxDragPosition={props.maxDragPosition}\n >\n {\n // Only render LocalAndRemotePIP when this component is NOT hidden because VideoGallery needs to have\n // possession of the dominant remote participant video stream\n !props.hidden && localAndRemotePIP\n }\n </_ModalClone>\n </Stack>\n </Stack>\n );\n};\n"]}
1
+ {"version":3,"file":"ModalLocalAndRemotePIP.js","sourceRoot":"","sources":["../../../../../../../react-composites/src/composites/common/ModalLocalAndRemotePIP.tsx"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { concatStyleSets, ContextualMenu, IDragOptions, Stack } from '@fluentui/react';\nimport React, { useCallback, useMemo, useState } from 'react';\nimport { LocalAndRemotePIP } from '../CallComposite/components/LocalAndRemotePIP';\nimport { useHandlers } from '../CallComposite/hooks/useHandlers';\nimport { useSelector } from '../CallComposite/hooks/useSelector';\nimport { localAndRemotePIPSelector } from '../CallComposite/selectors/localAndRemotePIPSelector';\nimport { _ModalClone, _ICoordinates } from '@internal/react-components';\nimport { _RemoteVideoTile } from '@internal/react-components';\nimport {\n hiddenStyle,\n ModalLocalAndRemotePIPStyles,\n modalStyle,\n PIPContainerStyle\n} from './styles/ModalLocalAndRemotePIP.styles';\nimport { useLocale } from '../localization';\nimport { getRole } from '../CallComposite/selectors/baseSelectors';\n\n/**\n * Drag options for Modal in {@link ModalLocalAndRemotePIP} component\n */\nconst DRAG_OPTIONS: IDragOptions = {\n moveMenuItemText: 'Move',\n closeMenuItemText: 'Close',\n menu: ContextualMenu,\n keepInBounds: true\n};\n\n/**\n * @private\n */\nexport interface ModalLocalAndRemotePIPStrings {\n /**\n * Aria label for dismiss control when using keyboard\n */\n dismissModalAriaLabel?: string;\n}\n\n/**\n * A wrapping component with a draggable {@link LocalAndRemotePIP} component that is bound to a LayerHost component with id\n * specified by `modalLayerHostId` prop\n * @private\n */\nexport const ModalLocalAndRemotePIP = (props: {\n hidden: boolean;\n modalLayerHostId: string;\n styles?: ModalLocalAndRemotePIPStyles;\n minDragPosition?: _ICoordinates;\n maxDragPosition?: _ICoordinates;\n onDismissSidePane?: () => void;\n strings?: ModalLocalAndRemotePIPStrings;\n}): JSX.Element | null => {\n const rootStyles = props.hidden ? hiddenStyle : PIPContainerStyle;\n\n const role = useSelector(getRole);\n\n const locale = useLocale();\n\n const pictureInPictureProps = useSelector(localAndRemotePIPSelector);\n\n const [touchStartTouches, setTouchStartTouches] = useState<React.TouchList | null>(null);\n\n const onTouchEnd = useCallback(\n (event: React.TouchEvent) => {\n if (\n touchStartTouches &&\n touchStartTouches[0] &&\n touchStartTouches.length === 1 &&\n event.changedTouches[0] &&\n event.changedTouches.length === 1\n ) {\n const touchStartTouch = touchStartTouches[0];\n const touchEndTouch = event.changedTouches[0];\n if (\n Math.abs(touchStartTouch.clientX - touchEndTouch.clientX) < 10 &&\n Math.abs(touchStartTouch.clientY - touchEndTouch.clientY) < 10\n ) {\n props.onDismissSidePane?.();\n }\n }\n },\n [props, touchStartTouches]\n );\n\n const onTouchStart = useCallback((event: React.TouchEvent) => {\n setTouchStartTouches(event.touches);\n }, []);\n\n const onKeyDown = useCallback(\n (event: React.KeyboardEvent) => {\n if (event.key === 'Enter' || event.key === ' ') {\n props.onDismissSidePane?.();\n }\n },\n [props]\n );\n\n const pictureInPictureHandlers = useHandlers(LocalAndRemotePIP);\n const remoteParticipant = pictureInPictureProps.remoteParticipant;\n\n const localAndRemotePIP = useMemo(() => {\n if (role === 'Consumer' && remoteParticipant?.userId) {\n return (\n <Stack tabIndex={0} aria-label={props.strings?.dismissModalAriaLabel ?? ''} onKeyDown={onKeyDown}>\n <_RemoteVideoTile\n strings={locale.component.strings.videoGallery}\n {...remoteParticipant}\n remoteParticipant={remoteParticipant}\n />\n </Stack>\n );\n }\n return (\n <Stack tabIndex={0} aria-label={props.strings?.dismissModalAriaLabel ?? ''} onKeyDown={onKeyDown}>\n <LocalAndRemotePIP\n {...pictureInPictureProps}\n {...pictureInPictureHandlers}\n remoteParticipant={remoteParticipant}\n />\n </Stack>\n );\n }, [\n role,\n onKeyDown,\n pictureInPictureProps,\n props,\n pictureInPictureHandlers,\n locale.component.strings.videoGallery,\n remoteParticipant\n ]);\n\n if (role === 'Consumer' && !remoteParticipant) {\n return null;\n }\n\n const modalStylesThemed = concatStyleSets(modalStyle, props.styles?.modal);\n\n return (\n <Stack styles={rootStyles}>\n <Stack onTouchStart={onTouchStart} onTouchEnd={onTouchEnd}>\n <_ModalClone\n isOpen={true}\n isModeless={true}\n dragOptions={DRAG_OPTIONS}\n styles={modalStylesThemed}\n layerProps={{ hostId: props.modalLayerHostId }}\n minDragPosition={props.minDragPosition}\n maxDragPosition={props.maxDragPosition}\n >\n {\n // Only render LocalAndRemotePIP when this component is NOT hidden because VideoGallery needs to have\n // possession of the dominant remote participant video stream\n !props.hidden && localAndRemotePIP\n }\n </_ModalClone>\n </Stack>\n </Stack>\n );\n};\n"]}
@@ -26,6 +26,7 @@
26
26
  "dismissSidePaneButtonLabel": "إغلاق",
27
27
  "videoEffectsPaneTitle": "التأثيرات",
28
28
  "videoEffectsPaneBackgroundSelectionTitle": "الخلفية",
29
+ "videoEffectsPaneAriaLabel": "جزء تأثيرات الفيديو",
29
30
  "configurationPageVideoEffectsButtonLabel": "التأثيرات",
30
31
  "unableToStartVideoEffect": "يتعذر تطبيق تأثير الفيديو.",
31
32
  "blurBackgroundEffectButtonLabel": "تمويه",
@@ -341,7 +342,7 @@
341
342
  "pinParticipantMenuLabel": "تثبيت نيابة عني",
342
343
  "pinParticipantLimitReachedMenuLabel": "تثبيت (تم بلوغ الحد الأقصى)",
343
344
  "unpinParticipantMenuLabel": "إزالة التثبيت",
344
- "pinParticipantMenuItemAriaLabel": "تثبيت",
345
+ "pinParticipantMenuItemAriaLabel": "تثبيت نيابة عني",
345
346
  "unpinParticipantMenuItemAriaLabel": "إزالة التثبيت",
346
347
  "muteAllMenuLabel": "كتم صوت الجميع",
347
348
  "muteAllDialogTitle": "هل تريد كتم صوت الجميع؟",
@@ -26,6 +26,7 @@
26
26
  "dismissSidePaneButtonLabel": "Zavřít",
27
27
  "videoEffectsPaneTitle": "Efekty",
28
28
  "videoEffectsPaneBackgroundSelectionTitle": "Pozadí",
29
+ "videoEffectsPaneAriaLabel": "Podokno video efektů",
29
30
  "configurationPageVideoEffectsButtonLabel": "Efekty",
30
31
  "unableToStartVideoEffect": "Nelze použít efekt videa.",
31
32
  "blurBackgroundEffectButtonLabel": "Rozostření",
@@ -341,7 +342,7 @@
341
342
  "pinParticipantMenuLabel": "Připnout pro mě",
342
343
  "pinParticipantLimitReachedMenuLabel": "Připnout (dosáhlo se limitu)",
343
344
  "unpinParticipantMenuLabel": "Odepnout",
344
- "pinParticipantMenuItemAriaLabel": "Připnout",
345
+ "pinParticipantMenuItemAriaLabel": "Připnout pro mě",
345
346
  "unpinParticipantMenuItemAriaLabel": "Odepnout",
346
347
  "muteAllMenuLabel": "Ztlumit všechny",
347
348
  "muteAllDialogTitle": "Chcete všechny ztlumit?",
@@ -26,6 +26,7 @@
26
26
  "dismissSidePaneButtonLabel": "Cau",
27
27
  "videoEffectsPaneTitle": "Effeithiau",
28
28
  "videoEffectsPaneBackgroundSelectionTitle": "Cefndir",
29
+ "videoEffectsPaneAriaLabel": "Cwarel effeithiau fideo",
29
30
  "configurationPageVideoEffectsButtonLabel": "Effeithiau",
30
31
  "unableToStartVideoEffect": "Does dim modd defnyddio'r effaith fideo.",
31
32
  "blurBackgroundEffectButtonLabel": "Pylu",
@@ -341,7 +342,7 @@
341
342
  "pinParticipantMenuLabel": "Pinio ar fy nghyfer i",
342
343
  "pinParticipantLimitReachedMenuLabel": "Pinio (wedi cyrraedd y terfyn)",
343
344
  "unpinParticipantMenuLabel": "Dadbinio",
344
- "pinParticipantMenuItemAriaLabel": "Pinio",
345
+ "pinParticipantMenuItemAriaLabel": "Pinio ar fy nghyfer i",
345
346
  "unpinParticipantMenuItemAriaLabel": "Dadbinio",
346
347
  "muteAllMenuLabel": "Tewi pawb",
347
348
  "muteAllDialogTitle": "Tewi pawb?",
@@ -26,6 +26,7 @@
26
26
  "dismissSidePaneButtonLabel": "Schließen",
27
27
  "videoEffectsPaneTitle": "Effekte",
28
28
  "videoEffectsPaneBackgroundSelectionTitle": "Hintergrund",
29
+ "videoEffectsPaneAriaLabel": "Bereich \"Videoeffekte\"",
29
30
  "configurationPageVideoEffectsButtonLabel": "Effekte",
30
31
  "unableToStartVideoEffect": "Videoeffekt kann nicht angewendet werden.",
31
32
  "blurBackgroundEffectButtonLabel": "Unscharf machen",
@@ -341,7 +342,7 @@
341
342
  "pinParticipantMenuLabel": "Für mich anheften",
342
343
  "pinParticipantLimitReachedMenuLabel": "Anheften (Limit erreicht)",
343
344
  "unpinParticipantMenuLabel": "Lösen",
344
- "pinParticipantMenuItemAriaLabel": "Anheften",
345
+ "pinParticipantMenuItemAriaLabel": "Für mich anheften",
345
346
  "unpinParticipantMenuItemAriaLabel": "Lösen",
346
347
  "muteAllMenuLabel": "Alle stummschalten",
347
348
  "muteAllDialogTitle": "Alle stummschalten?",
@@ -26,6 +26,7 @@
26
26
  "dismissSidePaneButtonLabel": "Close",
27
27
  "videoEffectsPaneTitle": "Effects",
28
28
  "videoEffectsPaneBackgroundSelectionTitle": "Background",
29
+ "videoEffectsPaneAriaLabel": "Video effects pane",
29
30
  "configurationPageVideoEffectsButtonLabel": "Effects",
30
31
  "unableToStartVideoEffect": "Unable to apply video effect.",
31
32
  "blurBackgroundEffectButtonLabel": "Blur",
@@ -341,7 +342,7 @@
341
342
  "pinParticipantMenuLabel": "Pin for me",
342
343
  "pinParticipantLimitReachedMenuLabel": "Pin (limit reached)",
343
344
  "unpinParticipantMenuLabel": "Unpin",
344
- "pinParticipantMenuItemAriaLabel": "Pin",
345
+ "pinParticipantMenuItemAriaLabel": "Pin for me",
345
346
  "unpinParticipantMenuItemAriaLabel": "Unpin",
346
347
  "muteAllMenuLabel": "Mute all",
347
348
  "muteAllDialogTitle": "Mute everyone?",
@@ -26,6 +26,7 @@
26
26
  "dismissSidePaneButtonLabel": "Cerrar",
27
27
  "videoEffectsPaneTitle": "Efectos",
28
28
  "videoEffectsPaneBackgroundSelectionTitle": "Fondo",
29
+ "videoEffectsPaneAriaLabel": "Panel de efectos de vídeo",
29
30
  "configurationPageVideoEffectsButtonLabel": "Efectos",
30
31
  "unableToStartVideoEffect": "No se puede aplicar el efecto de vídeo.",
31
32
  "blurBackgroundEffectButtonLabel": "Desenfoque",
@@ -341,7 +342,7 @@
341
342
  "pinParticipantMenuLabel": "Anclar para mí",
342
343
  "pinParticipantLimitReachedMenuLabel": "Pin (límite alcanzado)",
343
344
  "unpinParticipantMenuLabel": "Desanclar",
344
- "pinParticipantMenuItemAriaLabel": "Anclar",
345
+ "pinParticipantMenuItemAriaLabel": "Anclar para mí",
345
346
  "unpinParticipantMenuItemAriaLabel": "Desanclar",
346
347
  "muteAllMenuLabel": "Silenciar todo",
347
348
  "muteAllDialogTitle": "¿Silenciar a todos?",
@@ -26,6 +26,7 @@
26
26
  "dismissSidePaneButtonLabel": "Sulje",
27
27
  "videoEffectsPaneTitle": "Tehosteet",
28
28
  "videoEffectsPaneBackgroundSelectionTitle": "Tausta",
29
+ "videoEffectsPaneAriaLabel": "Videotehosteet-ruutu",
29
30
  "configurationPageVideoEffectsButtonLabel": "Tehosteet",
30
31
  "unableToStartVideoEffect": "Videotehosteen käyttäminen ei onnistu.",
31
32
  "blurBackgroundEffectButtonLabel": "Sumenna",
@@ -341,7 +342,7 @@
341
342
  "pinParticipantMenuLabel": "Kiinnitä minulle",
342
343
  "pinParticipantLimitReachedMenuLabel": "Kiinnitä (enimmäisraja saavutettu)",
343
344
  "unpinParticipantMenuLabel": "Poista kiinnitys",
344
- "pinParticipantMenuItemAriaLabel": "Kiinnitä",
345
+ "pinParticipantMenuItemAriaLabel": "Kiinnitä minulle",
345
346
  "unpinParticipantMenuItemAriaLabel": "Poista kiinnitys",
346
347
  "muteAllMenuLabel": "Mykistä kaikki",
347
348
  "muteAllDialogTitle": "Mykistetäänkö kaikki?",
@@ -26,6 +26,7 @@
26
26
  "dismissSidePaneButtonLabel": "Fermer",
27
27
  "videoEffectsPaneTitle": "Effets",
28
28
  "videoEffectsPaneBackgroundSelectionTitle": "Arrière-plan",
29
+ "videoEffectsPaneAriaLabel": "Volet Effets vidéo",
29
30
  "configurationPageVideoEffectsButtonLabel": "Effets",
30
31
  "unableToStartVideoEffect": "Impossible d’appliquer l’effet vidéo.",
31
32
  "blurBackgroundEffectButtonLabel": "Flouter",
@@ -341,7 +342,7 @@
341
342
  "pinParticipantMenuLabel": "Épingler pour moi",
342
343
  "pinParticipantLimitReachedMenuLabel": "Épingler (limite atteinte)",
343
344
  "unpinParticipantMenuLabel": "Désépingler",
344
- "pinParticipantMenuItemAriaLabel": "Épingler",
345
+ "pinParticipantMenuItemAriaLabel": "Épingler pour moi",
345
346
  "unpinParticipantMenuItemAriaLabel": "Désépingler",
346
347
  "muteAllMenuLabel": "Désactiver le son de tous",
347
348
  "muteAllDialogTitle": "Désactiver le son de tout le monde ?",
@@ -26,6 +26,7 @@
26
26
  "dismissSidePaneButtonLabel": "סגור",
27
27
  "videoEffectsPaneTitle": "אפקטים",
28
28
  "videoEffectsPaneBackgroundSelectionTitle": "רקע",
29
+ "videoEffectsPaneAriaLabel": "חלונית אפקטי וידאו",
29
30
  "configurationPageVideoEffectsButtonLabel": "אפקטים",
30
31
  "unableToStartVideoEffect": "לא ניתן להחיל אפקט וידאו.",
31
32
  "blurBackgroundEffectButtonLabel": "טשטוש",
@@ -341,7 +342,7 @@
341
342
  "pinParticipantMenuLabel": "הצמד עבורי",
342
343
  "pinParticipantLimitReachedMenuLabel": "הצמדה (הגעת למגבלה)",
343
344
  "unpinParticipantMenuLabel": "בטל הצמדה",
344
- "pinParticipantMenuItemAriaLabel": "הצמד",
345
+ "pinParticipantMenuItemAriaLabel": "הצמד עבורי",
345
346
  "unpinParticipantMenuItemAriaLabel": "בטל הצמדה",
346
347
  "muteAllMenuLabel": "השתק הכל",
347
348
  "muteAllDialogTitle": "האם להשתיק את כולם?",
@@ -26,6 +26,7 @@
26
26
  "dismissSidePaneButtonLabel": "Chiudi",
27
27
  "videoEffectsPaneTitle": "Effetti",
28
28
  "videoEffectsPaneBackgroundSelectionTitle": "In background",
29
+ "videoEffectsPaneAriaLabel": "Riquadro Effetti video",
29
30
  "configurationPageVideoEffectsButtonLabel": "Effetti",
30
31
  "unableToStartVideoEffect": "Non è possibile applicare l'effetto video.",
31
32
  "blurBackgroundEffectButtonLabel": "Sfocatura",
@@ -341,7 +342,7 @@
341
342
  "pinParticipantMenuLabel": "Aggiungi per me",
342
343
  "pinParticipantLimitReachedMenuLabel": "Segnaposto (limite raggiunto)",
343
344
  "unpinParticipantMenuLabel": "Rimuovere dall’alto",
344
- "pinParticipantMenuItemAriaLabel": "Aggiungi in alto",
345
+ "pinParticipantMenuItemAriaLabel": "Aggiungi per me",
345
346
  "unpinParticipantMenuItemAriaLabel": "Rimuovere dall’alto",
346
347
  "muteAllMenuLabel": "Disattivare l'audio di tutti",
347
348
  "muteAllDialogTitle": "Disattivare l'audio di tutti?",
@@ -26,6 +26,7 @@
26
26
  "dismissSidePaneButtonLabel": "閉じる",
27
27
  "videoEffectsPaneTitle": "効果",
28
28
  "videoEffectsPaneBackgroundSelectionTitle": "バックグラウンド",
29
+ "videoEffectsPaneAriaLabel": "ビデオ効果ウィンドウ",
29
30
  "configurationPageVideoEffectsButtonLabel": "効果",
30
31
  "unableToStartVideoEffect": "ビデオ効果を適用できません。",
31
32
  "blurBackgroundEffectButtonLabel": "ぼかし",
@@ -341,7 +342,7 @@
341
342
  "pinParticipantMenuLabel": "自分用にピン留め",
342
343
  "pinParticipantLimitReachedMenuLabel": "ピン留め (上限に達しました)",
343
344
  "unpinParticipantMenuLabel": "ピン留めを外す",
344
- "pinParticipantMenuItemAriaLabel": "ピン留めします",
345
+ "pinParticipantMenuItemAriaLabel": "自分用にピン留め",
345
346
  "unpinParticipantMenuItemAriaLabel": "ピン留めを外す",
346
347
  "muteAllMenuLabel": "全員をミュート",
347
348
  "muteAllDialogTitle": "全員をミュートにしますか?",
@@ -26,6 +26,7 @@
26
26
  "dismissSidePaneButtonLabel": "닫기",
27
27
  "videoEffectsPaneTitle": "효과",
28
28
  "videoEffectsPaneBackgroundSelectionTitle": "백그라운드",
29
+ "videoEffectsPaneAriaLabel": "동영상 효과 창",
29
30
  "configurationPageVideoEffectsButtonLabel": "효과",
30
31
  "unableToStartVideoEffect": "비디오 효과를 적용할 수 없습니다.",
31
32
  "blurBackgroundEffectButtonLabel": "흐리기",
@@ -26,6 +26,7 @@
26
26
  "dismissSidePaneButtonLabel": "Lukk",
27
27
  "videoEffectsPaneTitle": "Effekter",
28
28
  "videoEffectsPaneBackgroundSelectionTitle": "Bakgrunn",
29
+ "videoEffectsPaneAriaLabel": "Videoeffekter-ruten",
29
30
  "configurationPageVideoEffectsButtonLabel": "Effekter",
30
31
  "unableToStartVideoEffect": "Kan ikke bruke videoeffekt.",
31
32
  "blurBackgroundEffectButtonLabel": "Uskarp bakgrunn",
@@ -341,7 +342,7 @@
341
342
  "pinParticipantMenuLabel": "Fest for meg",
342
343
  "pinParticipantLimitReachedMenuLabel": "Fest (grensen er nådd)",
343
344
  "unpinParticipantMenuLabel": "Løsne",
344
- "pinParticipantMenuItemAriaLabel": "Fest",
345
+ "pinParticipantMenuItemAriaLabel": "Fest for meg",
345
346
  "unpinParticipantMenuItemAriaLabel": "Løsne",
346
347
  "muteAllMenuLabel": "Demp alle",
347
348
  "muteAllDialogTitle": "Vil du dempe alle?",
@@ -26,6 +26,7 @@
26
26
  "dismissSidePaneButtonLabel": "Sluiten",
27
27
  "videoEffectsPaneTitle": "Effecten",
28
28
  "videoEffectsPaneBackgroundSelectionTitle": "Achtergrond",
29
+ "videoEffectsPaneAriaLabel": "Deelvenster video-effectenVideo",
29
30
  "configurationPageVideoEffectsButtonLabel": "Effecten",
30
31
  "unableToStartVideoEffect": "Kan video-effect niet toepassen.",
31
32
  "blurBackgroundEffectButtonLabel": "Vervagen",
@@ -341,7 +342,7 @@
341
342
  "pinParticipantMenuLabel": "Voor mij vastmaken",
342
343
  "pinParticipantLimitReachedMenuLabel": "Pin (limiet bereikt)",
343
344
  "unpinParticipantMenuLabel": "Losmaken",
344
- "pinParticipantMenuItemAriaLabel": "Vastmaken",
345
+ "pinParticipantMenuItemAriaLabel": "Voor mij vastmaken",
345
346
  "unpinParticipantMenuItemAriaLabel": "Losmaken",
346
347
  "muteAllMenuLabel": "Allen dempen",
347
348
  "muteAllDialogTitle": "Iedereen dempen?",
@@ -26,6 +26,7 @@
26
26
  "dismissSidePaneButtonLabel": "Zamknij",
27
27
  "videoEffectsPaneTitle": "Efekty",
28
28
  "videoEffectsPaneBackgroundSelectionTitle": "Tło",
29
+ "videoEffectsPaneAriaLabel": "Okienko efektów wideo",
29
30
  "configurationPageVideoEffectsButtonLabel": "Efekty",
30
31
  "unableToStartVideoEffect": "Nie można zastosować efektu wideo.",
31
32
  "blurBackgroundEffectButtonLabel": "Rozmycie",
@@ -341,7 +342,7 @@
341
342
  "pinParticipantMenuLabel": "Przypnij dla mnie",
342
343
  "pinParticipantLimitReachedMenuLabel": "Przypięcie (osiągnięto limit)",
343
344
  "unpinParticipantMenuLabel": "Odepnij",
344
- "pinParticipantMenuItemAriaLabel": "Przypnij",
345
+ "pinParticipantMenuItemAriaLabel": "Przypnij dla mnie",
345
346
  "unpinParticipantMenuItemAriaLabel": "Odepnij",
346
347
  "muteAllMenuLabel": "Wycisz wszystkich",
347
348
  "muteAllDialogTitle": "Wyciszyć wszystkich?",
@@ -26,6 +26,7 @@
26
26
  "dismissSidePaneButtonLabel": "Fechar",
27
27
  "videoEffectsPaneTitle": "Efeitos",
28
28
  "videoEffectsPaneBackgroundSelectionTitle": "Tela de fundo",
29
+ "videoEffectsPaneAriaLabel": "Painel de efeitos de vídeo",
29
30
  "configurationPageVideoEffectsButtonLabel": "Efeitos",
30
31
  "unableToStartVideoEffect": "Não é possível aplicar o efeito de vídeo.",
31
32
  "blurBackgroundEffectButtonLabel": "Desfoque",
@@ -341,7 +342,7 @@
341
342
  "pinParticipantMenuLabel": "Fixar para mim",
342
343
  "pinParticipantLimitReachedMenuLabel": "Fixar (limite alcançado)",
343
344
  "unpinParticipantMenuLabel": "Desafixar",
344
- "pinParticipantMenuItemAriaLabel": "Fixar",
345
+ "pinParticipantMenuItemAriaLabel": "Fixar para mim",
345
346
  "unpinParticipantMenuItemAriaLabel": "Desafixar",
346
347
  "muteAllMenuLabel": "Ativar mudo de todos",
347
348
  "muteAllDialogTitle": "Ativar mudo para todos?",
@@ -26,6 +26,7 @@
26
26
  "dismissSidePaneButtonLabel": "Закрыть",
27
27
  "videoEffectsPaneTitle": "Эффекты",
28
28
  "videoEffectsPaneBackgroundSelectionTitle": "Фон",
29
+ "videoEffectsPaneAriaLabel": "Панель видеоэффектов",
29
30
  "configurationPageVideoEffectsButtonLabel": "Эффекты",
30
31
  "unableToStartVideoEffect": "Не удалось применить эффект видео.",
31
32
  "blurBackgroundEffectButtonLabel": "Размытие",
@@ -341,7 +342,7 @@
341
342
  "pinParticipantMenuLabel": "Закрепить для меня",
342
343
  "pinParticipantLimitReachedMenuLabel": "Закрепить (достигнуто ограничение)",
343
344
  "unpinParticipantMenuLabel": "Открепить",
344
- "pinParticipantMenuItemAriaLabel": "Закрепить",
345
+ "pinParticipantMenuItemAriaLabel": "Закрепить для меня",
345
346
  "unpinParticipantMenuItemAriaLabel": "Открепить",
346
347
  "muteAllMenuLabel": "Отключить все микрофоны",
347
348
  "muteAllDialogTitle": "Отключить микрофоны всех участников?",
@@ -26,6 +26,7 @@
26
26
  "dismissSidePaneButtonLabel": "Stäng",
27
27
  "videoEffectsPaneTitle": "Effekter",
28
28
  "videoEffectsPaneBackgroundSelectionTitle": "Bakgrund",
29
+ "videoEffectsPaneAriaLabel": "Fönstret Videoeffekter",
29
30
  "configurationPageVideoEffectsButtonLabel": "Effekter",
30
31
  "unableToStartVideoEffect": "Det går inte att tillämpa videoeffekten.",
31
32
  "blurBackgroundEffectButtonLabel": "Oskärpa",
@@ -341,7 +342,7 @@
341
342
  "pinParticipantMenuLabel": "Fäst åt mig",
342
343
  "pinParticipantLimitReachedMenuLabel": "Fäst (gränsen har nåtts)",
343
344
  "unpinParticipantMenuLabel": "Ta bort",
344
- "pinParticipantMenuItemAriaLabel": "Fäst",
345
+ "pinParticipantMenuItemAriaLabel": "Fäst åt mig",
345
346
  "unpinParticipantMenuItemAriaLabel": "Ta bort",
346
347
  "muteAllMenuLabel": "Stäng av ljudet för alla",
347
348
  "muteAllDialogTitle": "Stäng av ljudet för alla?",
@@ -26,6 +26,7 @@
26
26
  "dismissSidePaneButtonLabel": "Kapat",
27
27
  "videoEffectsPaneTitle": "Efektler",
28
28
  "videoEffectsPaneBackgroundSelectionTitle": "Arka plan",
29
+ "videoEffectsPaneAriaLabel": "Video efektleri paneli",
29
30
  "configurationPageVideoEffectsButtonLabel": "Efektler",
30
31
  "unableToStartVideoEffect": "Video efekti uygulanamıyor.",
31
32
  "blurBackgroundEffectButtonLabel": "Bulanıklaştır",
@@ -341,7 +342,7 @@
341
342
  "pinParticipantMenuLabel": "Benim için sabitle",
342
343
  "pinParticipantLimitReachedMenuLabel": "Sabitleme (sınıra ulaşıldı)",
343
344
  "unpinParticipantMenuLabel": "Sabitlemeyi kaldır",
344
- "pinParticipantMenuItemAriaLabel": "Sabitle",
345
+ "pinParticipantMenuItemAriaLabel": "Benim için sabitle",
345
346
  "unpinParticipantMenuItemAriaLabel": "Sabitlemeyi kaldır",
346
347
  "muteAllMenuLabel": "Tümünü sessize al",
347
348
  "muteAllDialogTitle": "Herkesi sessize almak mı istiyorsunuz?",
@@ -26,6 +26,7 @@
26
26
  "dismissSidePaneButtonLabel": "关闭",
27
27
  "videoEffectsPaneTitle": "效果",
28
28
  "videoEffectsPaneBackgroundSelectionTitle": "背景",
29
+ "videoEffectsPaneAriaLabel": "视频效果窗格",
29
30
  "configurationPageVideoEffectsButtonLabel": "效果",
30
31
  "unableToStartVideoEffect": "无法应用视频效果。",
31
32
  "blurBackgroundEffectButtonLabel": "模糊",
@@ -341,7 +342,7 @@
341
342
  "pinParticipantMenuLabel": "为我固定",
342
343
  "pinParticipantLimitReachedMenuLabel": "固定(已达到上限)",
343
344
  "unpinParticipantMenuLabel": "取消固定",
344
- "pinParticipantMenuItemAriaLabel": "固定",
345
+ "pinParticipantMenuItemAriaLabel": "为我固定",
345
346
  "unpinParticipantMenuItemAriaLabel": "取消固定",
346
347
  "muteAllMenuLabel": "全部静音",
347
348
  "muteAllDialogTitle": "对所有人静音?",
@@ -26,6 +26,7 @@
26
26
  "dismissSidePaneButtonLabel": "關閉",
27
27
  "videoEffectsPaneTitle": "效果",
28
28
  "videoEffectsPaneBackgroundSelectionTitle": "背景",
29
+ "videoEffectsPaneAriaLabel": "視訊效果​​窗格",
29
30
  "configurationPageVideoEffectsButtonLabel": "效果",
30
31
  "unableToStartVideoEffect": "無法套用視訊效果。",
31
32
  "blurBackgroundEffectButtonLabel": "模糊",
@@ -341,7 +342,7 @@
341
342
  "pinParticipantMenuLabel": "為我釘選",
342
343
  "pinParticipantLimitReachedMenuLabel": "釘選 (已達到限制)",
343
344
  "unpinParticipantMenuLabel": "取消釘選",
344
- "pinParticipantMenuItemAriaLabel": "釘選",
345
+ "pinParticipantMenuItemAriaLabel": "為我釘選",
345
346
  "unpinParticipantMenuItemAriaLabel": "取消釘選",
346
347
  "muteAllMenuLabel": "將所有人設為靜音",
347
348
  "muteAllDialogTitle": "將所有人設為靜音?",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@azure/communication-react",
3
- "version": "1.20.0-alpha-202410130017",
3
+ "version": "1.20.0-alpha-202410170016",
4
4
  "sideEffects": false,
5
5
  "description": "React library for building modern communication user experiences utilizing Azure Communication Services",
6
6
  "keywords": [
@@ -56,7 +56,7 @@
56
56
  },
57
57
  "peerDependencies": {
58
58
  "@azure/communication-calling": "1.30.1-beta.1",
59
- "@azure/communication-calling-effects": "1.0.1",
59
+ "@azure/communication-calling-effects": "1.1.1-beta.1",
60
60
  "@azure/communication-chat": "1.6.0-beta.3",
61
61
  "@types/react": ">=16.8.0 <19.0.0",
62
62
  "@types/react-dom": ">=16.8.0 <19.0.0",
@@ -1,8 +0,0 @@
1
- /**
2
- * Get chat thread from a teams url.
3
- * As per documented on the Chat SDK: https://docs.microsoft.com/en-us/azure/communication-services/quickstarts/chat/meeting-interop?pivots=platform-web#get-a-teams-meeting-chat-thread-for-a-communication-services-user
4
- *
5
- * @private
6
- */
7
- export declare const getChatThreadFromTeamsLink: (teamsMeetingLink: string) => string;
8
- //# sourceMappingURL=parseTeamsUrl.d.ts.map
@@ -1,25 +0,0 @@
1
- // Copyright (c) Microsoft Corporation.
2
- // Licensed under the MIT License.
3
- import { UNSUPPORTED_CHAT_THREAD_TYPE, TEAMS_LIMITATION_LEARN_MORE } from '../../common/constants';
4
- /**
5
- * Get chat thread from a teams url.
6
- * As per documented on the Chat SDK: https://docs.microsoft.com/en-us/azure/communication-services/quickstarts/chat/meeting-interop?pivots=platform-web#get-a-teams-meeting-chat-thread-for-a-communication-services-user
7
- *
8
- * @private
9
- */
10
- export const getChatThreadFromTeamsLink = (teamsMeetingLink) => {
11
- // Get the threadId from the url - this also contains the call locator ID that will be removed in the threadId.split
12
- let threadId = teamsMeetingLink.replace('https://teams.microsoft.com/l/meetup-join/', '');
13
- // Unescape characters that applications like Outlook encode when creating joinable links
14
- threadId = decodeURIComponent(threadId);
15
- // Extract just the chat guid from the link, stripping away the call locator ID
16
- threadId = threadId.split(/^(.*?@thread\.v2)/gm)[1];
17
- if (!threadId || threadId.length === 0) {
18
- if (UNSUPPORTED_CHAT_THREAD_TYPE.some((t) => teamsMeetingLink.includes(t))) {
19
- throw new Error(`Teams Channel Meetings are not currently supported, read more ${TEAMS_LIMITATION_LEARN_MORE}`);
20
- }
21
- throw new Error('Could not get chat thread from teams link');
22
- }
23
- return threadId;
24
- };
25
- //# sourceMappingURL=parseTeamsUrl.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"parseTeamsUrl.js","sourceRoot":"","sources":["../../../../../../../../react-composites/src/composites/CallWithChatComposite/adapter/parseTeamsUrl.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAElC,OAAO,EAAE,4BAA4B,EAAE,2BAA2B,EAAE,MAAM,wBAAwB,CAAC;AACnG;;;;;GAKG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAC,gBAAwB,EAAU,EAAE;IAC7E,oHAAoH;IACpH,IAAI,QAAQ,GAAG,gBAAgB,CAAC,OAAO,CAAC,4CAA4C,EAAE,EAAE,CAAC,CAAC;IAC1F,yFAAyF;IACzF,QAAQ,GAAG,kBAAkB,CAAC,QAAQ,CAAC,CAAC;IACxC,+EAA+E;IAC/E,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC;IACpD,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvC,IAAI,4BAA4B,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YAC3E,MAAM,IAAI,KAAK,CAAC,iEAAiE,2BAA2B,EAAE,CAAC,CAAC;QAClH,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC;IAC/D,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { UNSUPPORTED_CHAT_THREAD_TYPE, TEAMS_LIMITATION_LEARN_MORE } from '../../common/constants';\n/**\n * Get chat thread from a teams url.\n * As per documented on the Chat SDK: https://docs.microsoft.com/en-us/azure/communication-services/quickstarts/chat/meeting-interop?pivots=platform-web#get-a-teams-meeting-chat-thread-for-a-communication-services-user\n *\n * @private\n */\nexport const getChatThreadFromTeamsLink = (teamsMeetingLink: string): string => {\n // Get the threadId from the url - this also contains the call locator ID that will be removed in the threadId.split\n let threadId = teamsMeetingLink.replace('https://teams.microsoft.com/l/meetup-join/', '');\n // Unescape characters that applications like Outlook encode when creating joinable links\n threadId = decodeURIComponent(threadId);\n // Extract just the chat guid from the link, stripping away the call locator ID\n threadId = threadId.split(/^(.*?@thread\\.v2)/gm)[1];\n if (!threadId || threadId.length === 0) {\n if (UNSUPPORTED_CHAT_THREAD_TYPE.some((t) => teamsMeetingLink.includes(t))) {\n throw new Error(`Teams Channel Meetings are not currently supported, read more ${TEAMS_LIMITATION_LEARN_MORE}`);\n }\n throw new Error('Could not get chat thread from teams link');\n }\n\n return threadId;\n};\n"]}