@azure/communication-react 1.16.0-alpha-202405030013 → 1.16.0-alpha-202405050014

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 (67) hide show
  1. package/dist/communication-react.d.ts +16 -0
  2. package/dist/dist-cjs/communication-react/{ChatMessageComponentAsRichTextEditBox-BvKVyyIP.js → ChatMessageComponentAsRichTextEditBox-CPqryVoJ.js} +2 -2
  3. package/dist/dist-cjs/communication-react/{ChatMessageComponentAsRichTextEditBox-BvKVyyIP.js.map → ChatMessageComponentAsRichTextEditBox-CPqryVoJ.js.map} +1 -1
  4. package/dist/dist-cjs/communication-react/{index-yLuXmjqk.js → index-CvXWWlDZ.js} +107 -53
  5. package/dist/dist-cjs/communication-react/index-CvXWWlDZ.js.map +1 -0
  6. package/dist/dist-cjs/communication-react/index.js +1 -1
  7. package/dist/dist-esm/acs-ui-common/src/telemetryVersion.js +1 -1
  8. package/dist/dist-esm/acs-ui-common/src/telemetryVersion.js.map +1 -1
  9. package/dist/dist-esm/react-components/src/components/ImageOverlay.js +1 -1
  10. package/dist/dist-esm/react-components/src/components/ImageOverlay.js.map +1 -1
  11. package/dist/dist-esm/react-components/src/localization/locales/ar-SA/strings.json +5 -3
  12. package/dist/dist-esm/react-components/src/localization/locales/cs-CZ/strings.json +5 -3
  13. package/dist/dist-esm/react-components/src/localization/locales/de-DE/strings.json +5 -3
  14. package/dist/dist-esm/react-components/src/localization/locales/en-GB/strings.json +5 -3
  15. package/dist/dist-esm/react-components/src/localization/locales/es-ES/strings.json +5 -3
  16. package/dist/dist-esm/react-components/src/localization/locales/fi-FI/strings.json +5 -3
  17. package/dist/dist-esm/react-components/src/localization/locales/fr-FR/strings.json +5 -3
  18. package/dist/dist-esm/react-components/src/localization/locales/he-IL/strings.json +5 -3
  19. package/dist/dist-esm/react-components/src/localization/locales/it-IT/strings.json +5 -3
  20. package/dist/dist-esm/react-components/src/localization/locales/ja-JP/strings.json +5 -3
  21. package/dist/dist-esm/react-components/src/localization/locales/ko-KR/strings.json +5 -3
  22. package/dist/dist-esm/react-components/src/localization/locales/nb-NO/strings.json +5 -3
  23. package/dist/dist-esm/react-components/src/localization/locales/nl-NL/strings.json +5 -3
  24. package/dist/dist-esm/react-components/src/localization/locales/pl-PL/strings.json +5 -3
  25. package/dist/dist-esm/react-components/src/localization/locales/pt-BR/strings.json +5 -3
  26. package/dist/dist-esm/react-components/src/localization/locales/ru-RU/strings.json +5 -3
  27. package/dist/dist-esm/react-components/src/localization/locales/sv-SE/strings.json +5 -3
  28. package/dist/dist-esm/react-components/src/localization/locales/tr-TR/strings.json +5 -3
  29. package/dist/dist-esm/react-components/src/localization/locales/zh-CN/strings.json +5 -3
  30. package/dist/dist-esm/react-components/src/localization/locales/zh-TW/strings.json +5 -3
  31. package/dist/dist-esm/react-composites/src/composites/CallComposite/Strings.d.ts +4 -0
  32. package/dist/dist-esm/react-composites/src/composites/CallComposite/Strings.js.map +1 -1
  33. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/Strings.d.ts +12 -0
  34. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/Strings.js.map +1 -1
  35. package/dist/dist-esm/react-composites/src/composites/common/AddPeopleButton.js +25 -7
  36. package/dist/dist-esm/react-composites/src/composites/common/AddPeopleButton.js.map +1 -1
  37. package/dist/dist-esm/react-composites/src/composites/common/AddPeopleDropdown.d.ts +3 -0
  38. package/dist/dist-esm/react-composites/src/composites/common/AddPeopleDropdown.js +11 -4
  39. package/dist/dist-esm/react-composites/src/composites/common/AddPeopleDropdown.js.map +1 -1
  40. package/dist/dist-esm/react-composites/src/composites/common/CalloutWithIcon.d.ts +10 -0
  41. package/dist/dist-esm/react-composites/src/composites/common/CalloutWithIcon.js +37 -0
  42. package/dist/dist-esm/react-composites/src/composites/common/CalloutWithIcon.js.map +1 -0
  43. package/dist/dist-esm/react-composites/src/composites/common/ControlBar/CommonCallControlBar.js +5 -1
  44. package/dist/dist-esm/react-composites/src/composites/common/ControlBar/CommonCallControlBar.js.map +1 -1
  45. package/dist/dist-esm/react-composites/src/composites/localization/locales/ar-SA/strings.json +7 -3
  46. package/dist/dist-esm/react-composites/src/composites/localization/locales/cs-CZ/strings.json +7 -3
  47. package/dist/dist-esm/react-composites/src/composites/localization/locales/de-DE/strings.json +7 -3
  48. package/dist/dist-esm/react-composites/src/composites/localization/locales/en-GB/strings.json +7 -3
  49. package/dist/dist-esm/react-composites/src/composites/localization/locales/en-US/strings.json +4 -0
  50. package/dist/dist-esm/react-composites/src/composites/localization/locales/es-ES/strings.json +7 -3
  51. package/dist/dist-esm/react-composites/src/composites/localization/locales/fi-FI/strings.json +7 -3
  52. package/dist/dist-esm/react-composites/src/composites/localization/locales/fr-FR/strings.json +7 -3
  53. package/dist/dist-esm/react-composites/src/composites/localization/locales/he-IL/strings.json +7 -3
  54. package/dist/dist-esm/react-composites/src/composites/localization/locales/it-IT/strings.json +7 -3
  55. package/dist/dist-esm/react-composites/src/composites/localization/locales/ja-JP/strings.json +7 -3
  56. package/dist/dist-esm/react-composites/src/composites/localization/locales/ko-KR/strings.json +7 -3
  57. package/dist/dist-esm/react-composites/src/composites/localization/locales/nb-NO/strings.json +7 -3
  58. package/dist/dist-esm/react-composites/src/composites/localization/locales/nl-NL/strings.json +7 -3
  59. package/dist/dist-esm/react-composites/src/composites/localization/locales/pl-PL/strings.json +7 -3
  60. package/dist/dist-esm/react-composites/src/composites/localization/locales/pt-BR/strings.json +8 -4
  61. package/dist/dist-esm/react-composites/src/composites/localization/locales/ru-RU/strings.json +7 -3
  62. package/dist/dist-esm/react-composites/src/composites/localization/locales/sv-SE/strings.json +7 -3
  63. package/dist/dist-esm/react-composites/src/composites/localization/locales/tr-TR/strings.json +7 -3
  64. package/dist/dist-esm/react-composites/src/composites/localization/locales/zh-CN/strings.json +7 -3
  65. package/dist/dist-esm/react-composites/src/composites/localization/locales/zh-TW/strings.json +7 -3
  66. package/package.json +1 -1
  67. package/dist/dist-cjs/communication-react/index-yLuXmjqk.js.map +0 -1
@@ -27,7 +27,8 @@
27
27
  "attachmentUploadsPendingError": "正在上载...请稍候。",
28
28
  "removeAttachment": "删除文件",
29
29
  "uploading": "正在上传",
30
- "uploadCompleted": "已完成上传"
30
+ "uploadCompleted": "已完成上传",
31
+ "attachmentMoreMenu": "更多选项"
31
32
  },
32
33
  "richTextSendBox": {
33
34
  "placeholderText": "输入消息",
@@ -55,7 +56,8 @@
55
56
  "deleteRowOrColumnMenu": "删除",
56
57
  "deleteColumnMenu": "删除列",
57
58
  "deleteRowMenu": "删除行",
58
- "deleteTableMenu": "删除表格"
59
+ "deleteTableMenu": "删除表格",
60
+ "attachmentMoreMenu": "更多选项"
59
61
  },
60
62
  "mentionPopover": {
61
63
  "mentionPopoverHeader": "建议"
@@ -79,7 +81,7 @@
79
81
  "label": "退出",
80
82
  "tooltipContent": "离开通话",
81
83
  "leaveOption": "退出",
82
- "endCallOption": "结束通话"
84
+ "endCallOption": "结束所有人的通话"
83
85
  },
84
86
  "cameraButton": {
85
87
  "onLabel": "相机",
@@ -27,7 +27,8 @@
27
27
  "attachmentUploadsPendingError": "正在上傳... 請稍候。",
28
28
  "removeAttachment": "移除檔案",
29
29
  "uploading": "正在上傳",
30
- "uploadCompleted": "上傳完成"
30
+ "uploadCompleted": "上傳完成",
31
+ "attachmentMoreMenu": "其他選項"
31
32
  },
32
33
  "richTextSendBox": {
33
34
  "placeholderText": "輸入訊息",
@@ -55,7 +56,8 @@
55
56
  "deleteRowOrColumnMenu": "刪除",
56
57
  "deleteColumnMenu": "刪除欄",
57
58
  "deleteRowMenu": "刪除列",
58
- "deleteTableMenu": "刪除表格"
59
+ "deleteTableMenu": "刪除表格",
60
+ "attachmentMoreMenu": "其他選項"
59
61
  },
60
62
  "mentionPopover": {
61
63
  "mentionPopoverHeader": "建議"
@@ -79,7 +81,7 @@
79
81
  "label": "離開",
80
82
  "tooltipContent": "離開通話",
81
83
  "leaveOption": "離開",
82
- "endCallOption": "結束通話"
84
+ "endCallOption": "每個人都結束通話"
83
85
  },
84
86
  "cameraButton": {
85
87
  "onLabel": "相機",
@@ -230,6 +230,10 @@ export interface CallCompositeStrings {
230
230
  * Label for button to copy invite link
231
231
  */
232
232
  copyInviteLinkButtonLabel: string;
233
+ /**
234
+ * Label for button to copy invite link when it has been actioned
235
+ */
236
+ copyInviteLinkButtonActionedLabel: string;
233
237
  /**
234
238
  * Label for button to open dialpad
235
239
  */
@@ -1 +1 @@
1
- {"version":3,"file":"Strings.js","sourceRoot":"","sources":["../../../../../../../react-composites/src/composites/CallComposite/Strings.tsx"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { SpokenLanguageStrings, CaptionLanguageStrings } from '@internal/react-components';\n/* @conditional-compile-remove(end-of-call-survey) */\nimport { SurveyIssues, SurveyIssuesHeadingStrings } from '@internal/react-components';\n\nimport { CapabilityChangedNotificationStrings } from './components/CapabilitiesChangedNotificationBar';\n/* @conditional-compile-remove(spotlight) */\nimport { SpotlightPromptStrings } from './components/Prompt';\n\n/**\n * Strings used by the {@link CallComposite} directly.\n *\n * This strings are in addition to those used by the components from the component library.\n *\n * @public\n */\nexport interface CallCompositeStrings {\n /**\n * Title of configuration page.\n */\n configurationPageTitle: string;\n /**\n * Optional 1-2 lines on the call details used on the configuration page.\n */\n configurationPageCallDetails?: string;\n /**\n * Text in button to start call in configuration page.\n */\n startCallButtonLabel: string;\n /**\n * Text in button to rejoin an ended call.\n */\n rejoinCallButtonLabel: string;\n /**\n * Placeholder text for local device settings dropdowns.\n */\n defaultPlaceHolder: string;\n /**\n * Label for camera dropdown.\n */\n cameraLabel: string;\n /**\n * Label for when there are no cameras present on configuration screen.\n */\n noCamerasLabel: string;\n /**\n * Label for sound dropdown.\n */\n soundLabel: string;\n /**\n * Label for when no microphones were found on the configuration screen\n */\n noMicrophonesLabel: string;\n /**\n * Label for when no speakers were found on the configuration screen.\n */\n noSpeakersLabel: string;\n /**\n * Error shown when camera access is blocked by the browser.\n */\n cameraPermissionDenied: string;\n /**\n * Error shown when the camera is turned off.\n */\n cameraTurnedOff: string;\n /**\n * Error shown when microphone access is blocked by the browser.\n */\n microphonePermissionDenied: string;\n /**\n * Title text of the page shown to the user when joining a Teams meeting fails because meeting owner denied access.\n */\n failedToJoinTeamsMeetingReasonAccessDeniedTitle: string;\n /**\n * More details text of the page shown to the user when joining a Teams meeting fails because meeting owner denied access.\n */\n failedToJoinTeamsMeetingReasonAccessDeniedMoreDetails?: string;\n /**\n * Title text of the page shown to the user when joining a call fails due to a network problem.\n */\n failedToJoinCallDueToNoNetworkTitle: string;\n /**\n * More details text of the page shown to the user when joining a call fails due to a network problem.\n */\n failedToJoinCallDueToNoNetworkMoreDetails?: string;\n /**\n * Text to display on a leaving page.\n */\n leavingCallTitle?: string;\n /**\n * Title text of the page shown to the user when they leave a call in the call composite.\n */\n leftCallTitle: string;\n /**\n * More details text of the page shown to the user when they leave a call in the call composite.\n */\n leftCallMoreDetails?: string;\n /**\n * Title text of the page shown to the user when they are removed from a call in the call composite.\n */\n removedFromCallTitle: string;\n /**\n * More details text of the page shown to the user when they are removed from a call in the call composite.\n */\n removedFromCallMoreDetails?: string;\n /**\n * Text shown to the user on the lobby screen when connecting to a call.\n */\n lobbyScreenConnectingToCallTitle: string;\n /**\n * Optional addition details shown to the user on the lobby screen when connection to a call.\n */\n lobbyScreenConnectingToCallMoreDetails?: string;\n /**\n * Text shown to the user on the lobby screen when waiting to be admitted to a call.\n */\n lobbyScreenWaitingToBeAdmittedTitle: string;\n /**\n * Optional additional details shown to the user on the lobby screen when waiting to be admitted to a call.\n */\n lobbyScreenWaitingToBeAdmittedMoreDetails?: string;\n /**\n * Message shown to the user when they are speaking while muted.\n */\n mutedMessage: string;\n /**\n * Text for link to MS privacy policy in Compliance Banner.\n */\n privacyPolicy: string;\n /**\n * Text for link to learn more about a specific subject.\n */\n learnMore: string;\n /**\n * Message to let user know the meeting is only being recorded (no transcription) in ComplianceBanner.\n */\n complianceBannerNowOnlyRecording: string;\n /**\n * Message to let user know the meeting is only being transcripted (no recording) in ComplianceBanner.\n */\n complianceBannerNowOnlyTranscription: string;\n /**\n * Message to let user know recording and transcription of the meeting are saved in ComplianceBanner.\n */\n complianceBannerRecordingAndTranscriptionSaved: string;\n /**\n * Message to let user know recording and transcription of the meeting have started in ComplianceBanner.\n */\n complianceBannerRecordingAndTranscriptionStarted: string;\n /**\n * Message to let user know recording and transcription of the meeting have stopped in ComplianceBanner.\n */\n complianceBannerRecordingAndTranscriptionStopped: string;\n /**\n * Message to let user know recording of the meeting is being saved in ComplianceBanner.\n */\n complianceBannerRecordingSaving: string;\n /**\n * Message to let user know recording of the meeting has started in ComplianceBanner.\n */\n complianceBannerRecordingStarted: string;\n /**\n * Message to let user know recording of the meeting has stopped in ComplianceBanner.\n */\n complianceBannerRecordingStopped: string;\n /**\n * Message to let user know they are giving consent to meeting being transcripted in ComplianceBanner.\n */\n complianceBannerTranscriptionConsent: string;\n /**\n * Message to let user know transcription of the meeting is being saved in ComplianceBanner.\n */\n complianceBannerTranscriptionSaving: string;\n /**\n * Message to let user know transcription of the meeting has started in ComplianceBanner.\n */\n complianceBannerTranscriptionStarted: string;\n /**\n * Message to let user know the transcription of the meeting has stopped in ComplianceBanner.\n */\n complianceBannerTranscriptionStopped: string;\n /**\n * Text for close button.\n */\n close: string;\n /**\n * Title text of the page shown to the user when there is intermittent network failure during a call.\n */\n networkReconnectTitle: string;\n /**\n * More details text of the page shown to the user when there is intermittent network failure during a call.\n */\n networkReconnectMoreDetails: string;\n /**\n * Tooltip text used to inform a user that toggling microphone in lobby is not supported.\n */\n microphoneToggleInLobbyNotAllowed: string;\n /**\n * Side pane People section Title.\n */\n peoplePaneTitle: string;\n /**\n * Aria label of more button in people pane\n */\n peoplePaneMoreButtonAriaLabel: string;\n /**\n * Aria label string for return to call back button\n */\n returnToCallButtonAriaLabel?: string;\n /**\n * Aria Description string for return to call button\n */\n returnToCallButtonAriaDescription?: string;\n /**\n * control bar People button label\n */\n peopleButtonLabel: string;\n /**\n * control bar People button label when checked\n */\n selectedPeopleButtonLabel: string;\n /**\n * control bar Chat button label.\n */\n chatButtonLabel: string;\n /**\n * Label for SidePaneHeader dismiss button\n */\n dismissSidePaneButtonLabel?: string;\n /* @conditional-compile-remove(one-to-n-calling) @conditional-compile-remove(PSTN-calls) */\n /**\n * Side pane People section subheader.\n */\n peoplePaneSubTitle: string;\n /* @conditional-compile-remove(one-to-n-calling) @conditional-compile-remove(PSTN-calls) */\n /**\n * Label for button to copy invite link\n */\n copyInviteLinkButtonLabel: string;\n /* @conditional-compile-remove(PSTN-calls) */\n /**\n * Label for button to open dialpad\n */\n openDialpadButtonLabel: string;\n /* @conditional-compile-remove(one-to-n-calling) @conditional-compile-remove(PSTN-calls) */\n /**\n * Label for menu item to remove participant\n */\n removeMenuLabel: string;\n /* @conditional-compile-remove(spotlight) */\n /**\n * Label for menu item to start spotlight on participant\n */\n startSpotlightMenuLabel: string;\n /* @conditional-compile-remove(spotlight) */\n /**\n * Label for menu item to add spotlight on participant\n */\n addSpotlightMenuLabel: string;\n /* @conditional-compile-remove(spotlight) */\n /**\n * Label for menu item to stop spotlight on participant\n */\n stopSpotlightMenuLabel: string;\n /* @conditional-compile-remove(spotlight) */\n /**\n * Label for menu item to stop spotlight on local user\n */\n stopSpotlightOnSelfMenuLabel: string;\n /* @conditional-compile-remove(spotlight) */\n /**\n * Label for menu item to stop spotlight on local user\n */\n spotlightLimitReachedMenuTitle: string;\n /* @conditional-compile-remove(spotlight) */\n /**\n * Label for menu item to stop all spotlight\n */\n stopAllSpotlightMenuLabel: string;\n /* @conditional-compile-remove(PSTN-calls) */\n /**\n * Label for add people dropdown\n */\n peoplePaneAddPeopleButtonLabel: string;\n /* @conditional-compile-remove(PSTN-calls) */\n /**\n * Label for button to start a call\n */\n dialpadStartCallButtonLabel: string;\n /* @conditional-compile-remove(PSTN-calls) */\n /**\n * Title for dialpad Modal\n */\n dialpadModalTitle: string;\n /* @conditional-compile-remove(PSTN-calls) */\n /**\n * Aria Label for dialpad Modal\n */\n dialpadModalAriaLabel: string;\n /* @conditional-compile-remove(PSTN-calls) */\n /**\n * Aria Label for dialpad Modal close button\n */\n dialpadCloseModalButtonAriaLabel: string;\n /**\n * label for more button in the Calling composite\n */\n moreButtonCallingLabel: string;\n /* @conditional-compile-remove(PSTN-calls) */ /* @conditional-compile-remove(one-to-n-calling) */\n /**\n * Label for the resume call button on the hold pane\n */\n resumeCallButtonLabel: string;\n /* @conditional-compile-remove(PSTN-calls) */ /* @conditional-compile-remove(one-to-n-calling) */\n /**\n * Label for the resume call button on the hold pane when call is resuming\n */\n resumingCallButtonLabel: string;\n /* @conditional-compile-remove(PSTN-calls) */ /* @conditional-compile-remove(one-to-n-calling) */\n /**\n * Aria label for the resume call button on the hold pane\n */\n resumeCallButtonAriaLabel: string;\n /* @conditional-compile-remove(PSTN-calls) */ /* @conditional-compile-remove(one-to-n-calling) */\n /**\n * Aria label for the resume call button on the hold pane when call is resuming\n */\n resumingCallButtonAriaLabel: string;\n /* @conditional-compile-remove(PSTN-calls) */ /* @conditional-compile-remove(one-to-n-calling) */\n /**\n * Label for the hold pane\n */\n holdScreenLabel: string;\n /* @conditional-compile-remove(PSTN-calls) */\n /**\n * Placeholder text for dtmf dialpad\n */\n dtmfDialpadPlaceholderText: string;\n /* @conditional-compile-remove(PSTN-calls) */\n /**\n * Label for the button to open dtmf dialpad\n */\n openDtmfDialpadLabel: string;\n /**\n * aria label for when the invite link has been actioned\n */\n copyInviteLinkActionedAriaLabel: string;\n /**\n * Title text of the page shown to the user when the user attempts to join a room that cannot be found.\n */\n roomNotFoundTitle: string;\n /**\n * More details text of the page shown to the user when the user attempts to join a room that cannot be found.\n */\n roomNotFoundDetails?: string;\n /**\n * Title text of the page shown to the user when the user attempts to join a room that is not valid.\n */\n roomNotValidTitle: string;\n /**\n * More details text of the page shown to the user when the user attempts to join a room that is not valid.\n */\n roomNotValidDetails?: string;\n /**\n * Title text of the page shown to the user when the user's permission to join the room is removed.\n */\n inviteToRoomRemovedTitle: string;\n /**\n * More details text of the page shown to the user when the user's permission to join the room is removed.\n */\n inviteToRoomRemovedDetails?: string;\n\n /**\n * Video Effects pane title.\n */\n videoEffectsPaneTitle: string;\n\n /**\n * Video Effects pane sub section title for choosing background.\n */\n videoEffectsPaneBackgroundSelectionTitle: string;\n\n /**\n * Label for the button to open effects\n */\n configurationPageVideoEffectsButtonLabel?: string;\n\n /**\n * Error message for video effect failure\n */\n unableToStartVideoEffect?: string;\n\n /**\n * Label for the blur video background effect item\n */\n blurBackgroundEffectButtonLabel?: string;\n\n /**\n * Tooltip text for the blur video background effect item\n */\n blurBackgroundTooltip?: string;\n\n /**\n * Label for the remove video background effect item\n */\n removeBackgroundEffectButtonLabel?: string;\n\n /**\n * Tooltip text for the blur video background effect item\n */\n removeBackgroundTooltip?: string;\n\n /**\n * Text to show when warning the user the camera is off and inform the user to turn the camera on to see the selected video background effect.\n */\n cameraOffBackgroundEffectWarningText?: string;\n /**\n * Title text of the page shown to the user when the user attempts to join a room they are not invited to.\n */\n notInvitedToRoomTitle: string;\n /**\n * More details text of the page shown to the user when the user attempts to join a room they are not invited to.\n */\n notInvitedToRoomDetails?: string;\n /* @conditional-compile-remove(one-to-n-calling) @conditional-compile-remove(PSTN-calls) */\n /**\n * Control bar People button ToolTipContent\n */\n peopleButtonTooltipOpen: string;\n /* @conditional-compile-remove(one-to-n-calling) @conditional-compile-remove(PSTN-calls) */\n /**\n * Control bar People button ToolTipContent\n */\n peopleButtonTooltipClose: string;\n /**\n * Label disaplayed on the lobby screen during a 1:1 outbound call.\n */\n outboundCallingNoticeString?: string;\n /**\n * Notice to be announced by narrator when a participant joins a call\n */\n participantJoinedNoticeString: string;\n /**\n * Notice to be announced by narrator when a participant joins a call\n */\n twoParticipantJoinedNoticeString: string;\n /**\n * Notice to be announced by narrator when a participant joins a call\n */\n threeParticipantJoinedNoticeString: string;\n /**\n * Notice to be announced by narrator when a participant leaves a call\n */\n participantLeftNoticeString: string;\n /**\n * Notice to be announced by narrator when 2 participants leave a call\n */\n twoParticipantLeftNoticeString: string;\n /**\n * Notice to be announced by narrator when 3 participants leave a call\n */\n threeParticipantLeftNoticeString: string;\n /**\n * string to be used to announce a change in participant if they have no displayName\n */\n unnamedParticipantString: string;\n /**\n * string to be used to announce when more than 3 participants have joined at the same time.\n */\n manyParticipantsJoined: string;\n /**\n * string to be used to announce when more than 3 participants have left at the same time.\n */\n manyParticipantsLeft: string;\n /**\n * string to be used to announce when multiple unnamed participants have joined at the same time.\n */\n manyUnnamedParticipantsJoined: string;\n /**\n * string to be used to announce when multiple unnamed participants have left at the same time.\n */\n manyUnnamedParticipantsLeft: string;\n /**\n * string to be used to open live captions contextual menu\n */\n liveCaptionsLabel?: string;\n /**\n * label for opening captions setting modal\n */\n captionsSettingsLabel?: string;\n /**\n * string to be used to start captions\n */\n startCaptionsButtonOnLabel?: string;\n /**\n * string to be used to stop captions\n */\n startCaptionsButtonOffLabel?: string;\n /**\n * tooltip string to be used to show captions is on\n */\n startCaptionsButtonTooltipOnContent?: string;\n /**\n *tooltip string to be used to show captions is off\n */\n startCaptionsButtonTooltipOffContent?: string;\n /**\n * captions setting modal title\n */\n captionsSettingsModalTitle?: string;\n /**\n * label for spoken language dropdown inside captions setting modal\n */\n captionsSettingsSpokenLanguageDropdownLabel?: string;\n /**\n * label for captions language inside captions setting modal\n */\n captionsSettingsCaptionLanguageDropdownLabel?: string;\n /**\n * text under captions setting dropdown indicating what the dropdown is for\n */\n captionsSettingsSpokenLanguageDropdownInfoText?: string;\n /**\n * text under captions setting dropdown indicating what the dropdown is for\n */\n captionsSettingsCaptionLanguageDropdownInfoText?: string;\n /**\n * confirm button label in captions setting modal\n */\n captionsSettingsConfirmButtonLabel?: string;\n /**\n * cancel button label in captions setting modal\n */\n captionsSettingsCancelButtonLabel?: string;\n /**\n * arial label for captions setting modal\n */\n captionsSettingsModalAriaLabel?: string;\n /**\n * arial label for captions setting modal close button\n */\n captionsSettingsCloseModalButtonAriaLabel?: string;\n /**\n * label for more button inside captions banner\n */\n captionsBannerMoreButtonCallingLabel?: string;\n /**\n * arial label for more button inside captions banner\n */\n captionsBannerMoreButtonTooltip?: string;\n /**\n * list of key value pairs that pairs spoken language code to language names\n */\n spokenLanguageStrings?: SpokenLanguageStrings;\n /**\n * list of key value pairs that pairs caption language code to language names\n */\n captionLanguageStrings?: CaptionLanguageStrings;\n /**\n * captions banner loading spinner label\n */\n captionsBannerSpinnerText?: string;\n /**\n * transfer page text when showing the transferor who initiated the transfer\n */\n transferPageTransferorText: string;\n /**\n * transfer page text when showing the transfer target\n */\n transferPageTransferTargetText: string;\n /**\n * transfer page display name for unknown participant\n */\n transferPageUnknownTransferorDisplayName: string;\n /**\n * transfer page display name for unknown participant\n */\n transferPageUnknownTransferTargetDisplayName: string;\n /**\n * notice to be announced by narrator the transfer page is showing\n */\n transferPageNoticeString: string;\n /* @conditional-compile-remove(teams-adhoc-call) */\n /**\n * Title text of the page shown to the user when target participant could not be reached\n */\n participantCouldNotBeReachedTitle?: string;\n /* @conditional-compile-remove(teams-adhoc-call) */\n /**\n * More details text of the page shown to the user when target participant could not be reached\n */\n participantCouldNotBeReachedMoreDetails?: string;\n /* @conditional-compile-remove(teams-adhoc-call) */\n /**\n * Title text of the page shown to the user when permission to reach participant is not allowed\n */\n permissionToReachTargetParticipantNotAllowedTitle?: string;\n /* @conditional-compile-remove(teams-adhoc-call) */\n /**\n * More details text of the page shown to the user when permission to reach participant is not allowed\n */\n permissionToReachTargetParticipantNotAllowedMoreDetails?: string;\n /* @conditional-compile-remove(teams-adhoc-call) */\n /**\n * Title text of the page shown to the user when tenant id for the target participant could not be resolved\n */\n unableToResolveTenantTitle?: string;\n /* @conditional-compile-remove(teams-adhoc-call) */\n /**\n * More details text of the page shown to the user when tenant id for the target participant could not be resolved\n */\n unableToResolveTenantMoreDetails?: string;\n /* @conditional-compile-remove(teams-adhoc-call) */\n /**\n * Title text of the page shown to the user when target participant id is malformed\n */\n participantIdIsMalformedTitle?: string;\n /* @conditional-compile-remove(teams-adhoc-call) */\n /**\n * More details text of the page shown to the user when target participant id is malformed\n */\n participantIdIsMalformedMoreDetails?: string;\n /**\n * Controls label to move the overflow gallery around\n */\n moreButtonGalleryControlLabel?: string;\n /**\n * Label for the toggle to move the overflow gallery to the top\n */\n moreButtonGalleryPositionToggleLabel?: string;\n /**\n * Label for the selection of the speaker layout\n */\n moreButtonGallerySpeakerLayoutLabel?: string;\n /**\n * Label for the selection of the default (Gallery) layout\n */\n moreButtonGalleryDefaultLayoutLabel?: string;\n /**\n * Label for the selection of the default (Gallery) layout\n */\n moreButtonLargeGalleryDefaultLayoutLabel?: string;\n /**\n * Label for the selection of the floatingLocalVideo (Dynamic) layout\n */\n moreButtonGalleryFloatingLocalLayoutLabel?: string;\n /**\n * Label for the selection of the focusedContentLayout (Focused content) layout\n */\n moreButtonGalleryFocusedContentLayoutLabel?: string;\n\n /**\n * All strings for capability changed notification\n */\n capabilityChangedNotification?: CapabilityChangedNotificationStrings;\n /* @conditional-compile-remove(end-of-call-survey) */\n /**\n * Title for the survey\n */\n surveyTitle: string;\n /* @conditional-compile-remove(end-of-call-survey) */\n /**\n * Helper text to explain what the survey is for\n */\n starSurveyHelperText: string;\n /* @conditional-compile-remove(end-of-call-survey) */\n /**\n * Helper text displayed below survey question after user select one star\n */\n starSurveyOneStarText: string;\n /* @conditional-compile-remove(end-of-call-survey) */\n /**\n * Helper text displayed below survey question after user select two star\n */\n starSurveyTwoStarText: string;\n /* @conditional-compile-remove(end-of-call-survey) */\n /**\n * Helper text displayed below survey question after user select three star\n */\n starSurveyThreeStarText: string;\n /* @conditional-compile-remove(end-of-call-survey) */\n /**\n * Helper text displayed below survey question after user select four star\n */\n starSurveyFourStarText: string;\n /* @conditional-compile-remove(end-of-call-survey) */\n /**\n * Helper text displayed below survey question after user select five star\n */\n starSurveyFiveStarText: string;\n /* @conditional-compile-remove(end-of-call-survey) */\n /**\n * Aria Label for each individual star rating\n */\n starRatingAriaLabel: string;\n /* @conditional-compile-remove(end-of-call-survey) */\n /**\n * Tags Survey Question\n */\n tagsSurveyQuestion: string;\n /* @conditional-compile-remove(end-of-call-survey) */\n /**\n * Default text for free form text field inside tags survey\n */\n tagsSurveyTextFieldDefaultText: string;\n /* @conditional-compile-remove(end-of-call-survey) */\n /**\n * Tags Survey helper text\n */\n tagsSurveyHelperText: string;\n /* @conditional-compile-remove(end-of-call-survey) */\n /**\n * Confirm button label for survey\n */\n surveyConfirmButtonLabel: string;\n /* @conditional-compile-remove(end-of-call-survey) */\n /**\n * Cancel button label for survey\n */\n surveySkipButtonLabel: string;\n /* @conditional-compile-remove(end-of-call-survey) */\n /**\n * Thank you text appeared on screen after survey is submitted\n */\n endOfSurveyText: string;\n /* @conditional-compile-remove(end-of-call-survey) */\n /**\n * Corresponding texts to each call issue\n */\n surveyIssues: SurveyIssues;\n /* @conditional-compile-remove(end-of-call-survey) */\n /**\n * Corresponding texts to each call category\n */\n surveyIssuesHeadingStrings: SurveyIssuesHeadingStrings;\n /**\n * String for the dismiss control on the local and remote PIP on mobile\n */\n dismissModalAriaLabel?: string;\n /**\n * String for title when the call is rejected by the callee\n */\n callRejectedTitle?: string;\n /**\n * String for more details when the call is rejected by the callee\n */\n callRejectedMoreDetails?: string;\n /**\n * String for title when the call times out because the remote user does not answer\n */\n callTimeoutTitle?: string;\n /**\n * String for title when the call times out when calling a bot.\n */\n callTimeoutBotTitle?: string;\n /**\n * String for more details when the call times out because the remote user does not answer\n */\n callTimeoutDetails?: string;\n /**\n * String for more details when the call times out when calling a bot\n */\n callTimeoutBotDetails?: string;\n /**\n * Label for the control bar button to show the dtmf dialer when the more button is disabled\n */\n dtmfDialerButtonLabel?: string;\n /**\n * Tooltip for the control bar button to show the dtmf dialer when the more button is disabled\n */\n dtmfDialerButtonTooltipOn?: string;\n /**\n * Tooltip for the control bar button to hide the dtmf dialer when the more button is disabled\n */\n dtmfDialerButtonTooltipOff?: string;\n /**\n * Label to show the dtmf dialer in the more button menu\n */\n dtmfDialerMoreButtonLabelOn?: string;\n /**\n * Label to hide the dtmf dialer in the more button menu\n */\n dtmfDialerMoreButtonLabelOff?: string;\n /* @conditional-compile-remove(spotlight) */\n /**\n * Strings for spotlight prompt\n */\n spotlightPrompt: SpotlightPromptStrings;\n /* @conditional-compile-remove(spotlight) */\n /**\n * Label for button to exit spotlight\n */\n exitSpotlightButtonLabel: string;\n /* @conditional-compile-remove(spotlight) */\n /**\n * Tooltip for button to exit spotlight\n */\n exitSpotlightButtonTooltip: string;\n /* @conditional-compile-remove(end-call-options) */\n /**\n * Label for confirm button of hang up for everyone dialog\n */\n leaveConfirmButtonLabel?: string;\n /* @conditional-compile-remove(end-call-options) */\n /**\n * Label for confirm button of leave confim dialog\n */\n endCallConfirmButtonLabel?: string;\n /* @conditional-compile-remove(end-call-options) */\n /**\n * Label for cancel button in hang up confirm dialog\n */\n hangUpCancelButtonLabel?: string;\n /* @conditional-compile-remove(end-call-options) */\n /**\n * Title of confirm dialog when leaving\n */\n leaveConfirmDialogTitle?: string;\n /* @conditional-compile-remove(end-call-options) */\n /**\n * Content of confirm dialog when leaving\n */\n leaveConfirmDialogContent?: string;\n /* @conditional-compile-remove(end-call-options) */\n /**\n * Title of confirm dialog when leaving\n */\n endCallConfirmDialogTitle?: string;\n /* @conditional-compile-remove(end-call-options) */\n /**\n * Content of confirm dialog when leaving\n */\n endCallConfirmDialogContent?: string;\n /* @conditional-compile-remove(meeting-id) */\n /**\n * Error message when the meeting identifier or passcode is invalid\n */\n invalidMeetingIdentifier: string;\n}\n"]}
1
+ {"version":3,"file":"Strings.js","sourceRoot":"","sources":["../../../../../../../react-composites/src/composites/CallComposite/Strings.tsx"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { SpokenLanguageStrings, CaptionLanguageStrings } from '@internal/react-components';\n/* @conditional-compile-remove(end-of-call-survey) */\nimport { SurveyIssues, SurveyIssuesHeadingStrings } from '@internal/react-components';\n\nimport { CapabilityChangedNotificationStrings } from './components/CapabilitiesChangedNotificationBar';\n/* @conditional-compile-remove(spotlight) */\nimport { SpotlightPromptStrings } from './components/Prompt';\n\n/**\n * Strings used by the {@link CallComposite} directly.\n *\n * This strings are in addition to those used by the components from the component library.\n *\n * @public\n */\nexport interface CallCompositeStrings {\n /**\n * Title of configuration page.\n */\n configurationPageTitle: string;\n /**\n * Optional 1-2 lines on the call details used on the configuration page.\n */\n configurationPageCallDetails?: string;\n /**\n * Text in button to start call in configuration page.\n */\n startCallButtonLabel: string;\n /**\n * Text in button to rejoin an ended call.\n */\n rejoinCallButtonLabel: string;\n /**\n * Placeholder text for local device settings dropdowns.\n */\n defaultPlaceHolder: string;\n /**\n * Label for camera dropdown.\n */\n cameraLabel: string;\n /**\n * Label for when there are no cameras present on configuration screen.\n */\n noCamerasLabel: string;\n /**\n * Label for sound dropdown.\n */\n soundLabel: string;\n /**\n * Label for when no microphones were found on the configuration screen\n */\n noMicrophonesLabel: string;\n /**\n * Label for when no speakers were found on the configuration screen.\n */\n noSpeakersLabel: string;\n /**\n * Error shown when camera access is blocked by the browser.\n */\n cameraPermissionDenied: string;\n /**\n * Error shown when the camera is turned off.\n */\n cameraTurnedOff: string;\n /**\n * Error shown when microphone access is blocked by the browser.\n */\n microphonePermissionDenied: string;\n /**\n * Title text of the page shown to the user when joining a Teams meeting fails because meeting owner denied access.\n */\n failedToJoinTeamsMeetingReasonAccessDeniedTitle: string;\n /**\n * More details text of the page shown to the user when joining a Teams meeting fails because meeting owner denied access.\n */\n failedToJoinTeamsMeetingReasonAccessDeniedMoreDetails?: string;\n /**\n * Title text of the page shown to the user when joining a call fails due to a network problem.\n */\n failedToJoinCallDueToNoNetworkTitle: string;\n /**\n * More details text of the page shown to the user when joining a call fails due to a network problem.\n */\n failedToJoinCallDueToNoNetworkMoreDetails?: string;\n /**\n * Text to display on a leaving page.\n */\n leavingCallTitle?: string;\n /**\n * Title text of the page shown to the user when they leave a call in the call composite.\n */\n leftCallTitle: string;\n /**\n * More details text of the page shown to the user when they leave a call in the call composite.\n */\n leftCallMoreDetails?: string;\n /**\n * Title text of the page shown to the user when they are removed from a call in the call composite.\n */\n removedFromCallTitle: string;\n /**\n * More details text of the page shown to the user when they are removed from a call in the call composite.\n */\n removedFromCallMoreDetails?: string;\n /**\n * Text shown to the user on the lobby screen when connecting to a call.\n */\n lobbyScreenConnectingToCallTitle: string;\n /**\n * Optional addition details shown to the user on the lobby screen when connection to a call.\n */\n lobbyScreenConnectingToCallMoreDetails?: string;\n /**\n * Text shown to the user on the lobby screen when waiting to be admitted to a call.\n */\n lobbyScreenWaitingToBeAdmittedTitle: string;\n /**\n * Optional additional details shown to the user on the lobby screen when waiting to be admitted to a call.\n */\n lobbyScreenWaitingToBeAdmittedMoreDetails?: string;\n /**\n * Message shown to the user when they are speaking while muted.\n */\n mutedMessage: string;\n /**\n * Text for link to MS privacy policy in Compliance Banner.\n */\n privacyPolicy: string;\n /**\n * Text for link to learn more about a specific subject.\n */\n learnMore: string;\n /**\n * Message to let user know the meeting is only being recorded (no transcription) in ComplianceBanner.\n */\n complianceBannerNowOnlyRecording: string;\n /**\n * Message to let user know the meeting is only being transcripted (no recording) in ComplianceBanner.\n */\n complianceBannerNowOnlyTranscription: string;\n /**\n * Message to let user know recording and transcription of the meeting are saved in ComplianceBanner.\n */\n complianceBannerRecordingAndTranscriptionSaved: string;\n /**\n * Message to let user know recording and transcription of the meeting have started in ComplianceBanner.\n */\n complianceBannerRecordingAndTranscriptionStarted: string;\n /**\n * Message to let user know recording and transcription of the meeting have stopped in ComplianceBanner.\n */\n complianceBannerRecordingAndTranscriptionStopped: string;\n /**\n * Message to let user know recording of the meeting is being saved in ComplianceBanner.\n */\n complianceBannerRecordingSaving: string;\n /**\n * Message to let user know recording of the meeting has started in ComplianceBanner.\n */\n complianceBannerRecordingStarted: string;\n /**\n * Message to let user know recording of the meeting has stopped in ComplianceBanner.\n */\n complianceBannerRecordingStopped: string;\n /**\n * Message to let user know they are giving consent to meeting being transcripted in ComplianceBanner.\n */\n complianceBannerTranscriptionConsent: string;\n /**\n * Message to let user know transcription of the meeting is being saved in ComplianceBanner.\n */\n complianceBannerTranscriptionSaving: string;\n /**\n * Message to let user know transcription of the meeting has started in ComplianceBanner.\n */\n complianceBannerTranscriptionStarted: string;\n /**\n * Message to let user know the transcription of the meeting has stopped in ComplianceBanner.\n */\n complianceBannerTranscriptionStopped: string;\n /**\n * Text for close button.\n */\n close: string;\n /**\n * Title text of the page shown to the user when there is intermittent network failure during a call.\n */\n networkReconnectTitle: string;\n /**\n * More details text of the page shown to the user when there is intermittent network failure during a call.\n */\n networkReconnectMoreDetails: string;\n /**\n * Tooltip text used to inform a user that toggling microphone in lobby is not supported.\n */\n microphoneToggleInLobbyNotAllowed: string;\n /**\n * Side pane People section Title.\n */\n peoplePaneTitle: string;\n /**\n * Aria label of more button in people pane\n */\n peoplePaneMoreButtonAriaLabel: string;\n /**\n * Aria label string for return to call back button\n */\n returnToCallButtonAriaLabel?: string;\n /**\n * Aria Description string for return to call button\n */\n returnToCallButtonAriaDescription?: string;\n /**\n * control bar People button label\n */\n peopleButtonLabel: string;\n /**\n * control bar People button label when checked\n */\n selectedPeopleButtonLabel: string;\n /**\n * control bar Chat button label.\n */\n chatButtonLabel: string;\n /**\n * Label for SidePaneHeader dismiss button\n */\n dismissSidePaneButtonLabel?: string;\n /* @conditional-compile-remove(one-to-n-calling) @conditional-compile-remove(PSTN-calls) */\n /**\n * Side pane People section subheader.\n */\n peoplePaneSubTitle: string;\n /* @conditional-compile-remove(one-to-n-calling) @conditional-compile-remove(PSTN-calls) */\n /**\n * Label for button to copy invite link\n */\n copyInviteLinkButtonLabel: string;\n /* @conditional-compile-remove(one-to-n-calling) @conditional-compile-remove(PSTN-calls) */\n /**\n * Label for button to copy invite link when it has been actioned\n */\n copyInviteLinkButtonActionedLabel: string;\n /* @conditional-compile-remove(PSTN-calls) */\n /**\n * Label for button to open dialpad\n */\n openDialpadButtonLabel: string;\n /* @conditional-compile-remove(one-to-n-calling) @conditional-compile-remove(PSTN-calls) */\n /**\n * Label for menu item to remove participant\n */\n removeMenuLabel: string;\n /* @conditional-compile-remove(spotlight) */\n /**\n * Label for menu item to start spotlight on participant\n */\n startSpotlightMenuLabel: string;\n /* @conditional-compile-remove(spotlight) */\n /**\n * Label for menu item to add spotlight on participant\n */\n addSpotlightMenuLabel: string;\n /* @conditional-compile-remove(spotlight) */\n /**\n * Label for menu item to stop spotlight on participant\n */\n stopSpotlightMenuLabel: string;\n /* @conditional-compile-remove(spotlight) */\n /**\n * Label for menu item to stop spotlight on local user\n */\n stopSpotlightOnSelfMenuLabel: string;\n /* @conditional-compile-remove(spotlight) */\n /**\n * Label for menu item to stop spotlight on local user\n */\n spotlightLimitReachedMenuTitle: string;\n /* @conditional-compile-remove(spotlight) */\n /**\n * Label for menu item to stop all spotlight\n */\n stopAllSpotlightMenuLabel: string;\n /* @conditional-compile-remove(PSTN-calls) */\n /**\n * Label for add people dropdown\n */\n peoplePaneAddPeopleButtonLabel: string;\n /* @conditional-compile-remove(PSTN-calls) */\n /**\n * Label for button to start a call\n */\n dialpadStartCallButtonLabel: string;\n /* @conditional-compile-remove(PSTN-calls) */\n /**\n * Title for dialpad Modal\n */\n dialpadModalTitle: string;\n /* @conditional-compile-remove(PSTN-calls) */\n /**\n * Aria Label for dialpad Modal\n */\n dialpadModalAriaLabel: string;\n /* @conditional-compile-remove(PSTN-calls) */\n /**\n * Aria Label for dialpad Modal close button\n */\n dialpadCloseModalButtonAriaLabel: string;\n /**\n * label for more button in the Calling composite\n */\n moreButtonCallingLabel: string;\n /* @conditional-compile-remove(PSTN-calls) */ /* @conditional-compile-remove(one-to-n-calling) */\n /**\n * Label for the resume call button on the hold pane\n */\n resumeCallButtonLabel: string;\n /* @conditional-compile-remove(PSTN-calls) */ /* @conditional-compile-remove(one-to-n-calling) */\n /**\n * Label for the resume call button on the hold pane when call is resuming\n */\n resumingCallButtonLabel: string;\n /* @conditional-compile-remove(PSTN-calls) */ /* @conditional-compile-remove(one-to-n-calling) */\n /**\n * Aria label for the resume call button on the hold pane\n */\n resumeCallButtonAriaLabel: string;\n /* @conditional-compile-remove(PSTN-calls) */ /* @conditional-compile-remove(one-to-n-calling) */\n /**\n * Aria label for the resume call button on the hold pane when call is resuming\n */\n resumingCallButtonAriaLabel: string;\n /* @conditional-compile-remove(PSTN-calls) */ /* @conditional-compile-remove(one-to-n-calling) */\n /**\n * Label for the hold pane\n */\n holdScreenLabel: string;\n /* @conditional-compile-remove(PSTN-calls) */\n /**\n * Placeholder text for dtmf dialpad\n */\n dtmfDialpadPlaceholderText: string;\n /* @conditional-compile-remove(PSTN-calls) */\n /**\n * Label for the button to open dtmf dialpad\n */\n openDtmfDialpadLabel: string;\n /**\n * aria label for when the invite link has been actioned\n */\n copyInviteLinkActionedAriaLabel: string;\n /**\n * Title text of the page shown to the user when the user attempts to join a room that cannot be found.\n */\n roomNotFoundTitle: string;\n /**\n * More details text of the page shown to the user when the user attempts to join a room that cannot be found.\n */\n roomNotFoundDetails?: string;\n /**\n * Title text of the page shown to the user when the user attempts to join a room that is not valid.\n */\n roomNotValidTitle: string;\n /**\n * More details text of the page shown to the user when the user attempts to join a room that is not valid.\n */\n roomNotValidDetails?: string;\n /**\n * Title text of the page shown to the user when the user's permission to join the room is removed.\n */\n inviteToRoomRemovedTitle: string;\n /**\n * More details text of the page shown to the user when the user's permission to join the room is removed.\n */\n inviteToRoomRemovedDetails?: string;\n\n /**\n * Video Effects pane title.\n */\n videoEffectsPaneTitle: string;\n\n /**\n * Video Effects pane sub section title for choosing background.\n */\n videoEffectsPaneBackgroundSelectionTitle: string;\n\n /**\n * Label for the button to open effects\n */\n configurationPageVideoEffectsButtonLabel?: string;\n\n /**\n * Error message for video effect failure\n */\n unableToStartVideoEffect?: string;\n\n /**\n * Label for the blur video background effect item\n */\n blurBackgroundEffectButtonLabel?: string;\n\n /**\n * Tooltip text for the blur video background effect item\n */\n blurBackgroundTooltip?: string;\n\n /**\n * Label for the remove video background effect item\n */\n removeBackgroundEffectButtonLabel?: string;\n\n /**\n * Tooltip text for the blur video background effect item\n */\n removeBackgroundTooltip?: string;\n\n /**\n * Text to show when warning the user the camera is off and inform the user to turn the camera on to see the selected video background effect.\n */\n cameraOffBackgroundEffectWarningText?: string;\n /**\n * Title text of the page shown to the user when the user attempts to join a room they are not invited to.\n */\n notInvitedToRoomTitle: string;\n /**\n * More details text of the page shown to the user when the user attempts to join a room they are not invited to.\n */\n notInvitedToRoomDetails?: string;\n /* @conditional-compile-remove(one-to-n-calling) @conditional-compile-remove(PSTN-calls) */\n /**\n * Control bar People button ToolTipContent\n */\n peopleButtonTooltipOpen: string;\n /* @conditional-compile-remove(one-to-n-calling) @conditional-compile-remove(PSTN-calls) */\n /**\n * Control bar People button ToolTipContent\n */\n peopleButtonTooltipClose: string;\n /**\n * Label disaplayed on the lobby screen during a 1:1 outbound call.\n */\n outboundCallingNoticeString?: string;\n /**\n * Notice to be announced by narrator when a participant joins a call\n */\n participantJoinedNoticeString: string;\n /**\n * Notice to be announced by narrator when a participant joins a call\n */\n twoParticipantJoinedNoticeString: string;\n /**\n * Notice to be announced by narrator when a participant joins a call\n */\n threeParticipantJoinedNoticeString: string;\n /**\n * Notice to be announced by narrator when a participant leaves a call\n */\n participantLeftNoticeString: string;\n /**\n * Notice to be announced by narrator when 2 participants leave a call\n */\n twoParticipantLeftNoticeString: string;\n /**\n * Notice to be announced by narrator when 3 participants leave a call\n */\n threeParticipantLeftNoticeString: string;\n /**\n * string to be used to announce a change in participant if they have no displayName\n */\n unnamedParticipantString: string;\n /**\n * string to be used to announce when more than 3 participants have joined at the same time.\n */\n manyParticipantsJoined: string;\n /**\n * string to be used to announce when more than 3 participants have left at the same time.\n */\n manyParticipantsLeft: string;\n /**\n * string to be used to announce when multiple unnamed participants have joined at the same time.\n */\n manyUnnamedParticipantsJoined: string;\n /**\n * string to be used to announce when multiple unnamed participants have left at the same time.\n */\n manyUnnamedParticipantsLeft: string;\n /**\n * string to be used to open live captions contextual menu\n */\n liveCaptionsLabel?: string;\n /**\n * label for opening captions setting modal\n */\n captionsSettingsLabel?: string;\n /**\n * string to be used to start captions\n */\n startCaptionsButtonOnLabel?: string;\n /**\n * string to be used to stop captions\n */\n startCaptionsButtonOffLabel?: string;\n /**\n * tooltip string to be used to show captions is on\n */\n startCaptionsButtonTooltipOnContent?: string;\n /**\n *tooltip string to be used to show captions is off\n */\n startCaptionsButtonTooltipOffContent?: string;\n /**\n * captions setting modal title\n */\n captionsSettingsModalTitle?: string;\n /**\n * label for spoken language dropdown inside captions setting modal\n */\n captionsSettingsSpokenLanguageDropdownLabel?: string;\n /**\n * label for captions language inside captions setting modal\n */\n captionsSettingsCaptionLanguageDropdownLabel?: string;\n /**\n * text under captions setting dropdown indicating what the dropdown is for\n */\n captionsSettingsSpokenLanguageDropdownInfoText?: string;\n /**\n * text under captions setting dropdown indicating what the dropdown is for\n */\n captionsSettingsCaptionLanguageDropdownInfoText?: string;\n /**\n * confirm button label in captions setting modal\n */\n captionsSettingsConfirmButtonLabel?: string;\n /**\n * cancel button label in captions setting modal\n */\n captionsSettingsCancelButtonLabel?: string;\n /**\n * arial label for captions setting modal\n */\n captionsSettingsModalAriaLabel?: string;\n /**\n * arial label for captions setting modal close button\n */\n captionsSettingsCloseModalButtonAriaLabel?: string;\n /**\n * label for more button inside captions banner\n */\n captionsBannerMoreButtonCallingLabel?: string;\n /**\n * arial label for more button inside captions banner\n */\n captionsBannerMoreButtonTooltip?: string;\n /**\n * list of key value pairs that pairs spoken language code to language names\n */\n spokenLanguageStrings?: SpokenLanguageStrings;\n /**\n * list of key value pairs that pairs caption language code to language names\n */\n captionLanguageStrings?: CaptionLanguageStrings;\n /**\n * captions banner loading spinner label\n */\n captionsBannerSpinnerText?: string;\n /**\n * transfer page text when showing the transferor who initiated the transfer\n */\n transferPageTransferorText: string;\n /**\n * transfer page text when showing the transfer target\n */\n transferPageTransferTargetText: string;\n /**\n * transfer page display name for unknown participant\n */\n transferPageUnknownTransferorDisplayName: string;\n /**\n * transfer page display name for unknown participant\n */\n transferPageUnknownTransferTargetDisplayName: string;\n /**\n * notice to be announced by narrator the transfer page is showing\n */\n transferPageNoticeString: string;\n /* @conditional-compile-remove(teams-adhoc-call) */\n /**\n * Title text of the page shown to the user when target participant could not be reached\n */\n participantCouldNotBeReachedTitle?: string;\n /* @conditional-compile-remove(teams-adhoc-call) */\n /**\n * More details text of the page shown to the user when target participant could not be reached\n */\n participantCouldNotBeReachedMoreDetails?: string;\n /* @conditional-compile-remove(teams-adhoc-call) */\n /**\n * Title text of the page shown to the user when permission to reach participant is not allowed\n */\n permissionToReachTargetParticipantNotAllowedTitle?: string;\n /* @conditional-compile-remove(teams-adhoc-call) */\n /**\n * More details text of the page shown to the user when permission to reach participant is not allowed\n */\n permissionToReachTargetParticipantNotAllowedMoreDetails?: string;\n /* @conditional-compile-remove(teams-adhoc-call) */\n /**\n * Title text of the page shown to the user when tenant id for the target participant could not be resolved\n */\n unableToResolveTenantTitle?: string;\n /* @conditional-compile-remove(teams-adhoc-call) */\n /**\n * More details text of the page shown to the user when tenant id for the target participant could not be resolved\n */\n unableToResolveTenantMoreDetails?: string;\n /* @conditional-compile-remove(teams-adhoc-call) */\n /**\n * Title text of the page shown to the user when target participant id is malformed\n */\n participantIdIsMalformedTitle?: string;\n /* @conditional-compile-remove(teams-adhoc-call) */\n /**\n * More details text of the page shown to the user when target participant id is malformed\n */\n participantIdIsMalformedMoreDetails?: string;\n /**\n * Controls label to move the overflow gallery around\n */\n moreButtonGalleryControlLabel?: string;\n /**\n * Label for the toggle to move the overflow gallery to the top\n */\n moreButtonGalleryPositionToggleLabel?: string;\n /**\n * Label for the selection of the speaker layout\n */\n moreButtonGallerySpeakerLayoutLabel?: string;\n /**\n * Label for the selection of the default (Gallery) layout\n */\n moreButtonGalleryDefaultLayoutLabel?: string;\n /**\n * Label for the selection of the default (Gallery) layout\n */\n moreButtonLargeGalleryDefaultLayoutLabel?: string;\n /**\n * Label for the selection of the floatingLocalVideo (Dynamic) layout\n */\n moreButtonGalleryFloatingLocalLayoutLabel?: string;\n /**\n * Label for the selection of the focusedContentLayout (Focused content) layout\n */\n moreButtonGalleryFocusedContentLayoutLabel?: string;\n\n /**\n * All strings for capability changed notification\n */\n capabilityChangedNotification?: CapabilityChangedNotificationStrings;\n /* @conditional-compile-remove(end-of-call-survey) */\n /**\n * Title for the survey\n */\n surveyTitle: string;\n /* @conditional-compile-remove(end-of-call-survey) */\n /**\n * Helper text to explain what the survey is for\n */\n starSurveyHelperText: string;\n /* @conditional-compile-remove(end-of-call-survey) */\n /**\n * Helper text displayed below survey question after user select one star\n */\n starSurveyOneStarText: string;\n /* @conditional-compile-remove(end-of-call-survey) */\n /**\n * Helper text displayed below survey question after user select two star\n */\n starSurveyTwoStarText: string;\n /* @conditional-compile-remove(end-of-call-survey) */\n /**\n * Helper text displayed below survey question after user select three star\n */\n starSurveyThreeStarText: string;\n /* @conditional-compile-remove(end-of-call-survey) */\n /**\n * Helper text displayed below survey question after user select four star\n */\n starSurveyFourStarText: string;\n /* @conditional-compile-remove(end-of-call-survey) */\n /**\n * Helper text displayed below survey question after user select five star\n */\n starSurveyFiveStarText: string;\n /* @conditional-compile-remove(end-of-call-survey) */\n /**\n * Aria Label for each individual star rating\n */\n starRatingAriaLabel: string;\n /* @conditional-compile-remove(end-of-call-survey) */\n /**\n * Tags Survey Question\n */\n tagsSurveyQuestion: string;\n /* @conditional-compile-remove(end-of-call-survey) */\n /**\n * Default text for free form text field inside tags survey\n */\n tagsSurveyTextFieldDefaultText: string;\n /* @conditional-compile-remove(end-of-call-survey) */\n /**\n * Tags Survey helper text\n */\n tagsSurveyHelperText: string;\n /* @conditional-compile-remove(end-of-call-survey) */\n /**\n * Confirm button label for survey\n */\n surveyConfirmButtonLabel: string;\n /* @conditional-compile-remove(end-of-call-survey) */\n /**\n * Cancel button label for survey\n */\n surveySkipButtonLabel: string;\n /* @conditional-compile-remove(end-of-call-survey) */\n /**\n * Thank you text appeared on screen after survey is submitted\n */\n endOfSurveyText: string;\n /* @conditional-compile-remove(end-of-call-survey) */\n /**\n * Corresponding texts to each call issue\n */\n surveyIssues: SurveyIssues;\n /* @conditional-compile-remove(end-of-call-survey) */\n /**\n * Corresponding texts to each call category\n */\n surveyIssuesHeadingStrings: SurveyIssuesHeadingStrings;\n /**\n * String for the dismiss control on the local and remote PIP on mobile\n */\n dismissModalAriaLabel?: string;\n /**\n * String for title when the call is rejected by the callee\n */\n callRejectedTitle?: string;\n /**\n * String for more details when the call is rejected by the callee\n */\n callRejectedMoreDetails?: string;\n /**\n * String for title when the call times out because the remote user does not answer\n */\n callTimeoutTitle?: string;\n /**\n * String for title when the call times out when calling a bot.\n */\n callTimeoutBotTitle?: string;\n /**\n * String for more details when the call times out because the remote user does not answer\n */\n callTimeoutDetails?: string;\n /**\n * String for more details when the call times out when calling a bot\n */\n callTimeoutBotDetails?: string;\n /**\n * Label for the control bar button to show the dtmf dialer when the more button is disabled\n */\n dtmfDialerButtonLabel?: string;\n /**\n * Tooltip for the control bar button to show the dtmf dialer when the more button is disabled\n */\n dtmfDialerButtonTooltipOn?: string;\n /**\n * Tooltip for the control bar button to hide the dtmf dialer when the more button is disabled\n */\n dtmfDialerButtonTooltipOff?: string;\n /**\n * Label to show the dtmf dialer in the more button menu\n */\n dtmfDialerMoreButtonLabelOn?: string;\n /**\n * Label to hide the dtmf dialer in the more button menu\n */\n dtmfDialerMoreButtonLabelOff?: string;\n /* @conditional-compile-remove(spotlight) */\n /**\n * Strings for spotlight prompt\n */\n spotlightPrompt: SpotlightPromptStrings;\n /* @conditional-compile-remove(spotlight) */\n /**\n * Label for button to exit spotlight\n */\n exitSpotlightButtonLabel: string;\n /* @conditional-compile-remove(spotlight) */\n /**\n * Tooltip for button to exit spotlight\n */\n exitSpotlightButtonTooltip: string;\n /* @conditional-compile-remove(end-call-options) */\n /**\n * Label for confirm button of hang up for everyone dialog\n */\n leaveConfirmButtonLabel?: string;\n /* @conditional-compile-remove(end-call-options) */\n /**\n * Label for confirm button of leave confim dialog\n */\n endCallConfirmButtonLabel?: string;\n /* @conditional-compile-remove(end-call-options) */\n /**\n * Label for cancel button in hang up confirm dialog\n */\n hangUpCancelButtonLabel?: string;\n /* @conditional-compile-remove(end-call-options) */\n /**\n * Title of confirm dialog when leaving\n */\n leaveConfirmDialogTitle?: string;\n /* @conditional-compile-remove(end-call-options) */\n /**\n * Content of confirm dialog when leaving\n */\n leaveConfirmDialogContent?: string;\n /* @conditional-compile-remove(end-call-options) */\n /**\n * Title of confirm dialog when leaving\n */\n endCallConfirmDialogTitle?: string;\n /* @conditional-compile-remove(end-call-options) */\n /**\n * Content of confirm dialog when leaving\n */\n endCallConfirmDialogContent?: string;\n /* @conditional-compile-remove(meeting-id) */\n /**\n * Error message when the meeting identifier or passcode is invalid\n */\n invalidMeetingIdentifier: string;\n}\n"]}
@@ -14,6 +14,14 @@ export interface CallWithChatCompositeStrings {
14
14
  * {@link CallWithChatComposite} control bar People button label when checked
15
15
  */
16
16
  selectedPeopleButtonLabel: string;
17
+ /**
18
+ * {@link CallWithChatComposite} aria label for control bar People button when unchecked
19
+ */
20
+ peopleButtonTooltipOpenAriaLabel: string;
21
+ /**
22
+ * {@link CallWithChatComposite} aria label for control bar People button when checked
23
+ */
24
+ peopleButtonTooltipCloseAriaLabel: string;
17
25
  /**
18
26
  * {@link CallWithChatComposite} control bar People button ToolTipContent
19
27
  */
@@ -118,6 +126,10 @@ export interface CallWithChatCompositeStrings {
118
126
  * Label for button to copy invite link
119
127
  */
120
128
  copyInviteLinkButtonLabel: string;
129
+ /**
130
+ * Label for button to copy invite link when it has been actioned
131
+ */
132
+ copyInviteLinkButtonActionedLabel: string;
121
133
  /**
122
134
  * Label for button to open dialpad
123
135
  */
@@ -1 +1 @@
1
- {"version":3,"file":"Strings.js","sourceRoot":"","sources":["../../../../../../../react-composites/src/composites/CallWithChatComposite/Strings.tsx"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\n/**\n * Strings used by the {@link CallWithChatComposite} directly.\n *\n * This strings are in addition to those used by the components from the component library.\n *\n * @public\n */\nexport interface CallWithChatCompositeStrings {\n /**\n * {@link CallWithChatComposite} control bar People button label\n */\n peopleButtonLabel: string;\n /**\n * {@link CallWithChatComposite} control bar People button label when checked\n */\n selectedPeopleButtonLabel: string;\n /**\n * {@link CallWithChatComposite} control bar People button ToolTipContent\n */\n peopleButtonTooltipOpen: string;\n /**\n * {@link CallWithChatComposite} control bar People button ToolTipContent\n */\n peopleButtonTooltipClose: string;\n /**\n * {@link CallWithChatComposite} control bar Chat button label.\n */\n chatButtonLabel: string;\n /**\n * {@Link CallWithChatComposite} control bar Chat button ToolTipContent.\n */\n chatButtonTooltipOpen: string;\n /**\n * {@Link CallWithChatComposite} control bar Chat button ToolTipContent.\n */\n chatButtonTooltipClose: string;\n /**\n * {@link CallWithChatComposite} control bar Chat button enhanced tooltip string.\n */\n chatButtonTooltipClosedWithMessageCount: string;\n /**\n * Title for the audio device selection sub-menu in more button drawer.\n *\n * Only used with `mobileView` set to `true` and when no speakers are available.\n */\n moreDrawerAudioDeviceMenuTitle?: string;\n /**\n * Title for the microphone selection sub-menu in more button drawer.\n *\n * Only used with `mobileView` set to `true` and when speakers are available.\n */\n moreDrawerMicrophoneMenuTitle: string;\n /**\n * Title for the speaker selection sub-menu in more button drawer.\n *\n * Only used with `mobileView` set to `true`.\n */\n moreDrawerSpeakerMenuTitle: string;\n /**\n * Title for the captions sub-menu in more button drawer.\n *\n * Only used with `mobileView` set to `true`.\n */\n moreDrawerCaptionsMenuTitle: string;\n /**\n * Title for the spoken language sub-menu in more button drawer.\n *\n * Only used with `mobileView` set to `true`.\n */\n moreDrawerSpokenLanguageMenuTitle: string;\n /**\n * Title for the caption language sub-menu in more button drawer.\n *\n * Only used with `mobileView` set to `true`.\n */\n moreDrawerCaptionLanguageMenuTitle: string;\n /**\n * Title for the gallery options sub-menu in the more button drawer.\n */\n moreDrawerGalleryOptionsMenuTitle: string;\n /**\n * {@Link CallWithChatComposite} control bar More button label\n */\n moreDrawerButtonLabel: string;\n /**\n * {@Link CallWithChatComposite} control bar More button tooltip content\n */\n moreDrawerButtonTooltip: string;\n /**\n * Side pane People section Title.\n */\n peoplePaneTitle: string;\n /**\n * Side pane People section subheader.\n */\n peoplePaneSubTitle: string;\n /**\n * Side pane Chat screen title.\n */\n chatPaneTitle: string;\n /**\n * New Message label for chat button with notification icon component.\n */\n chatButtonNewMessageNotificationLabel: string;\n /**\n * Aria label for the picture in picture in picture tile that.\n * This feature currently only shows on mobileView when the chat or people pane is expanded.\n * @remarks\n * This component displays the local and most-dominant remote participant and when clicked\n * returns the user to the call screen.\n */\n pictureInPictureTileAriaLabel: string;\n /**\n * Label for menu item to remove participant\n */\n removeMenuLabel: string;\n /**\n * Label for button to copy invite link\n */\n copyInviteLinkButtonLabel: string;\n /* @conditional-compile-remove(PSTN-calls) */\n /**\n * Label for button to open dialpad\n */\n openDialpadButtonLabel: string;\n /**\n * Label for SidePaneHeader dismiss button\n */\n dismissSidePaneButtonLabel?: string;\n /**\n * Aria Description string for return to call button\n */\n returnToCallButtonAriaDescription?: string;\n /**\n * Aria label string for return to call back button\n */\n returnToCallButtonAriaLabel?: string;\n\n /* @conditional-compile-remove(PSTN-calls) */\n /**\n * Label for add people dropdown\n */\n peoplePaneAddPeopleButtonLabel: string;\n /* @conditional-compile-remove(PSTN-calls) */\n /**\n * Label for button to start a call\n */\n dialpadStartCallButtonLabel: string;\n /* @conditional-compile-remove(PSTN-calls) */\n /**\n * Title for dialpad Modal\n */\n dialpadModalTitle: string;\n /* @conditional-compile-remove(PSTN-calls) */\n /**\n * Aria Label for dialpad Modal\n */\n dialpadModalAriaLabel: string;\n /* @conditional-compile-remove(PSTN-calls) */\n /**\n * Aria Label for dialpad Modal close button\n */\n dialpadCloseModalButtonAriaLabel: string;\n /* @conditional-compile-remove(PSTN-calls) */\n /**\n * Placeholder text for dtmf dialpad\n */\n dtmfDialpadPlaceholderText: string;\n /* @conditional-compile-remove(PSTN-calls) */\n /**\n * Label for the button to open dtmf dialpad\n */\n openDtmfDialpadLabel: string;\n /**\n * aria label for when the invite link has been actioned\n */\n copyInviteLinkActionedAriaLabel: string;\n}\n"]}
1
+ {"version":3,"file":"Strings.js","sourceRoot":"","sources":["../../../../../../../react-composites/src/composites/CallWithChatComposite/Strings.tsx"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\n/**\n * Strings used by the {@link CallWithChatComposite} directly.\n *\n * This strings are in addition to those used by the components from the component library.\n *\n * @public\n */\nexport interface CallWithChatCompositeStrings {\n /**\n * {@link CallWithChatComposite} control bar People button label\n */\n peopleButtonLabel: string;\n /**\n * {@link CallWithChatComposite} control bar People button label when checked\n */\n selectedPeopleButtonLabel: string;\n /**\n * {@link CallWithChatComposite} aria label for control bar People button when unchecked\n */\n peopleButtonTooltipOpenAriaLabel: string;\n /**\n * {@link CallWithChatComposite} aria label for control bar People button when checked\n */\n peopleButtonTooltipCloseAriaLabel: string;\n /**\n * {@link CallWithChatComposite} control bar People button ToolTipContent\n */\n peopleButtonTooltipOpen: string;\n /**\n * {@link CallWithChatComposite} control bar People button ToolTipContent\n */\n peopleButtonTooltipClose: string;\n /**\n * {@link CallWithChatComposite} control bar Chat button label.\n */\n chatButtonLabel: string;\n /**\n * {@Link CallWithChatComposite} control bar Chat button ToolTipContent.\n */\n chatButtonTooltipOpen: string;\n /**\n * {@Link CallWithChatComposite} control bar Chat button ToolTipContent.\n */\n chatButtonTooltipClose: string;\n /**\n * {@link CallWithChatComposite} control bar Chat button enhanced tooltip string.\n */\n chatButtonTooltipClosedWithMessageCount: string;\n /**\n * Title for the audio device selection sub-menu in more button drawer.\n *\n * Only used with `mobileView` set to `true` and when no speakers are available.\n */\n moreDrawerAudioDeviceMenuTitle?: string;\n /**\n * Title for the microphone selection sub-menu in more button drawer.\n *\n * Only used with `mobileView` set to `true` and when speakers are available.\n */\n moreDrawerMicrophoneMenuTitle: string;\n /**\n * Title for the speaker selection sub-menu in more button drawer.\n *\n * Only used with `mobileView` set to `true`.\n */\n moreDrawerSpeakerMenuTitle: string;\n /**\n * Title for the captions sub-menu in more button drawer.\n *\n * Only used with `mobileView` set to `true`.\n */\n moreDrawerCaptionsMenuTitle: string;\n /**\n * Title for the spoken language sub-menu in more button drawer.\n *\n * Only used with `mobileView` set to `true`.\n */\n moreDrawerSpokenLanguageMenuTitle: string;\n /**\n * Title for the caption language sub-menu in more button drawer.\n *\n * Only used with `mobileView` set to `true`.\n */\n moreDrawerCaptionLanguageMenuTitle: string;\n /**\n * Title for the gallery options sub-menu in the more button drawer.\n */\n moreDrawerGalleryOptionsMenuTitle: string;\n /**\n * {@Link CallWithChatComposite} control bar More button label\n */\n moreDrawerButtonLabel: string;\n /**\n * {@Link CallWithChatComposite} control bar More button tooltip content\n */\n moreDrawerButtonTooltip: string;\n /**\n * Side pane People section Title.\n */\n peoplePaneTitle: string;\n /**\n * Side pane People section subheader.\n */\n peoplePaneSubTitle: string;\n /**\n * Side pane Chat screen title.\n */\n chatPaneTitle: string;\n /**\n * New Message label for chat button with notification icon component.\n */\n chatButtonNewMessageNotificationLabel: string;\n /**\n * Aria label for the picture in picture in picture tile that.\n * This feature currently only shows on mobileView when the chat or people pane is expanded.\n * @remarks\n * This component displays the local and most-dominant remote participant and when clicked\n * returns the user to the call screen.\n */\n pictureInPictureTileAriaLabel: string;\n /**\n * Label for menu item to remove participant\n */\n removeMenuLabel: string;\n /**\n * Label for button to copy invite link\n */\n copyInviteLinkButtonLabel: string;\n /**\n * Label for button to copy invite link when it has been actioned\n */\n copyInviteLinkButtonActionedLabel: string;\n /* @conditional-compile-remove(PSTN-calls) */\n /**\n * Label for button to open dialpad\n */\n openDialpadButtonLabel: string;\n /**\n * Label for SidePaneHeader dismiss button\n */\n dismissSidePaneButtonLabel?: string;\n /**\n * Aria Description string for return to call button\n */\n returnToCallButtonAriaDescription?: string;\n /**\n * Aria label string for return to call back button\n */\n returnToCallButtonAriaLabel?: string;\n\n /* @conditional-compile-remove(PSTN-calls) */\n /**\n * Label for add people dropdown\n */\n peoplePaneAddPeopleButtonLabel: string;\n /* @conditional-compile-remove(PSTN-calls) */\n /**\n * Label for button to start a call\n */\n dialpadStartCallButtonLabel: string;\n /* @conditional-compile-remove(PSTN-calls) */\n /**\n * Title for dialpad Modal\n */\n dialpadModalTitle: string;\n /* @conditional-compile-remove(PSTN-calls) */\n /**\n * Aria Label for dialpad Modal\n */\n dialpadModalAriaLabel: string;\n /* @conditional-compile-remove(PSTN-calls) */\n /**\n * Aria Label for dialpad Modal close button\n */\n dialpadCloseModalButtonAriaLabel: string;\n /* @conditional-compile-remove(PSTN-calls) */\n /**\n * Placeholder text for dtmf dialpad\n */\n dtmfDialpadPlaceholderText: string;\n /* @conditional-compile-remove(PSTN-calls) */\n /**\n * Label for the button to open dtmf dialpad\n */\n openDtmfDialpadLabel: string;\n /**\n * aria label for when the invite link has been actioned\n */\n copyInviteLinkActionedAriaLabel: string;\n}\n"]}
@@ -2,13 +2,15 @@
2
2
  // Licensed under the MIT License.
3
3
  import { concatStyleSets, DefaultButton, PrimaryButton, Stack, useTheme } from '@fluentui/react';
4
4
  import copy from 'copy-to-clipboard';
5
- import React, { useCallback, useMemo, useState } from 'react';
5
+ import React, { useCallback, useMemo, useRef, useState } from 'react';
6
6
  import { CallWithChatCompositeIcon } from './icons';
7
7
  import { peoplePaneContainerTokens } from './styles/ParticipantContainer.styles';
8
8
  import { copyLinkButtonContainerStyles, copyLinkButtonStackStyles, copyLinkButtonStyles, linkIconStyles, themedCopyLinkButtonStyles } from './styles/PeoplePaneContent.styles';
9
9
  /* @conditional-compile-remove(PSTN-calls) */
10
10
  import { AddPeopleDropdown } from './AddPeopleDropdown';
11
11
  import { Announcer } from "../../../../react-components/src";
12
+ import { useId } from '@fluentui/react-hooks';
13
+ import { CalloutWithIcon } from './CalloutWithIcon';
12
14
  /** @private */
13
15
  export const AddPeopleButton = (props) => {
14
16
  const { inviteLink, mobileView, strings, participantList } = props;
@@ -28,31 +30,47 @@ export const AddPeopleButton = (props) => {
28
30
  setCopyInviteLinkAnnouncerStrings('');
29
31
  }, 3000);
30
32
  }, [strings.copyInviteLinkActionedAriaLabel]);
33
+ const dateInviteLinkCopied = useRef(undefined);
34
+ const [inviteLinkCopiedRecently, setInviteLinkCopiedRecently] = useState(false);
35
+ const onCopyInviteLink = useCallback(() => {
36
+ setInviteLinkCopiedRecently(true);
37
+ dateInviteLinkCopied.current = Date.now();
38
+ setTimeout(() => {
39
+ if (dateInviteLinkCopied.current && Date.now() - dateInviteLinkCopied.current >= 2000) {
40
+ setInviteLinkCopiedRecently(false);
41
+ }
42
+ }, 2000);
43
+ }, [setInviteLinkCopiedRecently, dateInviteLinkCopied]);
44
+ const calloutButtonId = useId('callout-button');
31
45
  /* @conditional-compile-remove(PSTN-calls) */
32
46
  if (mobileView) {
33
- return (React.createElement(AddPeopleDropdown, { strings: strings, mobileView: mobileView, inviteLink: inviteLink, onAddParticipant: props.onAddParticipant, alternateCallerId: props.alternateCallerId }));
47
+ return (React.createElement(AddPeopleDropdown, { strings: strings, mobileView: mobileView, inviteLink: inviteLink, onAddParticipant: props.onAddParticipant, alternateCallerId: props.alternateCallerId, onCopyInviteLink: onCopyInviteLink, inviteLinkCopiedRecently: inviteLinkCopiedRecently }));
34
48
  }
35
49
  else {
36
50
  return (React.createElement(Stack, { tokens: peoplePaneContainerTokens, "data-ui-id": "people-pane-content", verticalFill: true },
37
- React.createElement(AddPeopleDropdown, { strings: strings, mobileView: mobileView, inviteLink: inviteLink, onAddParticipant: props.onAddParticipant, alternateCallerId: props.alternateCallerId }),
51
+ React.createElement(AddPeopleDropdown, { strings: strings, mobileView: mobileView, inviteLink: inviteLink, onAddParticipant: props.onAddParticipant, alternateCallerId: props.alternateCallerId, onCopyInviteLink: onCopyInviteLink, inviteLinkCopiedRecently: inviteLinkCopiedRecently }),
38
52
  React.createElement(Stack.Item, { grow: true, styles: { root: { overflowY: 'hidden' } } }, participantList)));
39
53
  }
40
54
  if (mobileView) {
41
55
  return (React.createElement(Stack, null, inviteLink && (React.createElement(Stack.Item, { styles: copyLinkButtonContainerStyles },
42
56
  React.createElement(Announcer, { announcementString: copyInviteLinkAnnouncerStrings, ariaLive: 'polite' }),
43
- React.createElement(PrimaryButton, { onClick: () => {
57
+ React.createElement(PrimaryButton, { id: calloutButtonId, onClick: () => {
44
58
  copy(inviteLink !== null && inviteLink !== void 0 ? inviteLink : '');
45
59
  toggleAnnouncerString();
46
- }, styles: copyLinkButtonStylesThemed, onRenderIcon: () => React.createElement(CallWithChatCompositeIcon, { iconName: "Link", style: linkIconStyles }), text: strings.copyInviteLinkButtonLabel })))));
60
+ onCopyInviteLink();
61
+ }, styles: copyLinkButtonStylesThemed, onRenderIcon: () => React.createElement(CallWithChatCompositeIcon, { iconName: "Link", style: linkIconStyles }), text: strings.copyInviteLinkButtonLabel }),
62
+ inviteLinkCopiedRecently && (React.createElement(CalloutWithIcon, { targetId: calloutButtonId, text: strings.copyInviteLinkButtonActionedLabel, doNotLayer: true }))))));
47
63
  }
48
64
  else {
49
65
  return (React.createElement(Stack, { tokens: peoplePaneContainerTokens, "data-ui-id": "people-pane-content", verticalFill: true },
50
66
  inviteLink && (React.createElement(Stack, { styles: copyLinkButtonStackStyles },
51
67
  React.createElement(Announcer, { announcementString: copyInviteLinkAnnouncerStrings, ariaLive: 'polite' }),
52
- React.createElement(DefaultButton, { text: strings.copyInviteLinkButtonLabel, onRenderIcon: () => React.createElement(CallWithChatCompositeIcon, { iconName: "Link", style: linkIconStyles }), onClick: () => {
68
+ React.createElement(DefaultButton, { id: calloutButtonId, text: strings.copyInviteLinkButtonLabel, onRenderIcon: () => React.createElement(CallWithChatCompositeIcon, { iconName: "Link", style: linkIconStyles }), onClick: () => {
53
69
  copy(inviteLink !== null && inviteLink !== void 0 ? inviteLink : '');
54
70
  toggleAnnouncerString();
55
- }, styles: copyLinkButtonStylesThemed }))),
71
+ onCopyInviteLink();
72
+ }, styles: copyLinkButtonStylesThemed }),
73
+ inviteLinkCopiedRecently && (React.createElement(CalloutWithIcon, { targetId: calloutButtonId, text: strings.copyInviteLinkButtonActionedLabel })))),
56
74
  React.createElement(Stack.Item, { grow: true, styles: { root: { overflowY: 'hidden' } } }, participantList)));
57
75
  }
58
76
  };
@@ -1 +1 @@
1
- {"version":3,"file":"AddPeopleButton.js","sourceRoot":"","sources":["../../../../../../../react-composites/src/composites/common/AddPeopleButton.tsx"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { concatStyleSets, DefaultButton, IButtonStyles, PrimaryButton, Stack, useTheme } from '@fluentui/react';\nimport copy from 'copy-to-clipboard';\nimport React, { useCallback, useMemo, useState } from 'react';\nimport { CallWithChatCompositeStrings } from '../../index-public';\n/* @conditional-compile-remove(one-to-n-calling) @conditional-compile-remove(PSTN-calls) */\nimport { CallCompositeStrings } from '../../index-public';\nimport { CallWithChatCompositeIcon } from './icons';\nimport { peoplePaneContainerTokens } from './styles/ParticipantContainer.styles';\nimport {\n copyLinkButtonContainerStyles,\n copyLinkButtonStackStyles,\n copyLinkButtonStyles,\n linkIconStyles,\n themedCopyLinkButtonStyles\n} from './styles/PeoplePaneContent.styles';\n/* @conditional-compile-remove(PSTN-calls) */\nimport { AddPeopleDropdown } from './AddPeopleDropdown';\n/* @conditional-compile-remove(PSTN-calls) */\nimport { PhoneNumberIdentifier } from '@azure/communication-common';\n/* @conditional-compile-remove(PSTN-calls) */\nimport { AddPhoneNumberOptions } from '@azure/communication-calling';\nimport { Announcer } from '@internal/react-components';\n\n/** @private */\nexport interface AddPeopleButtonProps {\n inviteLink?: string;\n mobileView?: boolean;\n participantList?: JSX.Element;\n strings:\n | CallWithChatCompositeStrings\n | /* @conditional-compile-remove(one-to-n-calling) @conditional-compile-remove(PSTN-calls) */ CallCompositeStrings;\n /* @conditional-compile-remove(PSTN-calls) */\n onAddParticipant: (participant: PhoneNumberIdentifier, options?: AddPhoneNumberOptions) => void;\n alternateCallerId?: string;\n}\n\n/** @private */\nexport const AddPeopleButton = (props: AddPeopleButtonProps): JSX.Element => {\n const { inviteLink, mobileView, strings, participantList } = props;\n\n const theme = useTheme();\n\n const [copyInviteLinkAnnouncerStrings, setCopyInviteLinkAnnouncerStrings] = useState<string>('');\n\n const copyLinkButtonStylesThemed = useMemo(\n (): IButtonStyles => concatStyleSets(copyLinkButtonStyles, themedCopyLinkButtonStyles(mobileView, theme)),\n [mobileView, theme]\n );\n /**\n * sets the announcement string for when the link is copied.\n */\n const toggleAnnouncerString = useCallback(() => {\n setCopyInviteLinkAnnouncerStrings(strings.copyInviteLinkActionedAriaLabel);\n /**\n * Clears the announcer string after the user clicks the\n * copyInviteLink button allowing it to be re-announced.\n */\n setTimeout(() => {\n setCopyInviteLinkAnnouncerStrings('');\n }, 3000);\n }, [strings.copyInviteLinkActionedAriaLabel]);\n\n /* @conditional-compile-remove(PSTN-calls) */\n if (mobileView) {\n return (\n <AddPeopleDropdown\n strings={strings}\n mobileView={mobileView}\n inviteLink={inviteLink}\n onAddParticipant={props.onAddParticipant}\n alternateCallerId={props.alternateCallerId}\n />\n );\n } else {\n return (\n <Stack tokens={peoplePaneContainerTokens} data-ui-id=\"people-pane-content\" verticalFill>\n <AddPeopleDropdown\n strings={strings}\n mobileView={mobileView}\n inviteLink={inviteLink}\n onAddParticipant={props.onAddParticipant}\n alternateCallerId={props.alternateCallerId}\n />\n <Stack.Item grow styles={{ root: { overflowY: 'hidden' } }}>\n {participantList}\n </Stack.Item>\n </Stack>\n );\n }\n\n if (mobileView) {\n return (\n <Stack>\n {inviteLink && (\n <Stack.Item styles={copyLinkButtonContainerStyles}>\n <Announcer announcementString={copyInviteLinkAnnouncerStrings} ariaLive={'polite'} />\n <PrimaryButton\n onClick={() => {\n copy(inviteLink ?? '');\n toggleAnnouncerString();\n }}\n styles={copyLinkButtonStylesThemed}\n onRenderIcon={() => <CallWithChatCompositeIcon iconName=\"Link\" style={linkIconStyles} />}\n text={strings.copyInviteLinkButtonLabel}\n />\n </Stack.Item>\n )}\n </Stack>\n );\n } else {\n return (\n <Stack tokens={peoplePaneContainerTokens} data-ui-id=\"people-pane-content\" verticalFill>\n {inviteLink && (\n <Stack styles={copyLinkButtonStackStyles}>\n <Announcer announcementString={copyInviteLinkAnnouncerStrings} ariaLive={'polite'} />\n <DefaultButton\n text={strings.copyInviteLinkButtonLabel}\n onRenderIcon={() => <CallWithChatCompositeIcon iconName=\"Link\" style={linkIconStyles} />}\n onClick={() => {\n copy(inviteLink ?? '');\n toggleAnnouncerString();\n }}\n styles={copyLinkButtonStylesThemed}\n />\n </Stack>\n )}\n <Stack.Item grow styles={{ root: { overflowY: 'hidden' } }}>\n {participantList}\n </Stack.Item>\n </Stack>\n );\n }\n};\n"]}
1
+ {"version":3,"file":"AddPeopleButton.js","sourceRoot":"","sources":["../../../../../../../react-composites/src/composites/common/AddPeopleButton.tsx"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { concatStyleSets, DefaultButton, IButtonStyles, PrimaryButton, Stack, useTheme } from '@fluentui/react';\nimport copy from 'copy-to-clipboard';\nimport React, { useCallback, useMemo, useRef, useState } from 'react';\nimport { CallWithChatCompositeStrings } from '../../index-public';\n/* @conditional-compile-remove(one-to-n-calling) @conditional-compile-remove(PSTN-calls) */\nimport { CallCompositeStrings } from '../../index-public';\nimport { CallWithChatCompositeIcon } from './icons';\nimport { peoplePaneContainerTokens } from './styles/ParticipantContainer.styles';\nimport {\n copyLinkButtonContainerStyles,\n copyLinkButtonStackStyles,\n copyLinkButtonStyles,\n linkIconStyles,\n themedCopyLinkButtonStyles\n} from './styles/PeoplePaneContent.styles';\n/* @conditional-compile-remove(PSTN-calls) */\nimport { AddPeopleDropdown } from './AddPeopleDropdown';\n/* @conditional-compile-remove(PSTN-calls) */\nimport { PhoneNumberIdentifier } from '@azure/communication-common';\n/* @conditional-compile-remove(PSTN-calls) */\nimport { AddPhoneNumberOptions } from '@azure/communication-calling';\nimport { Announcer } from '@internal/react-components';\nimport { useId } from '@fluentui/react-hooks';\nimport { CalloutWithIcon } from './CalloutWithIcon';\n\n/** @private */\nexport interface AddPeopleButtonProps {\n inviteLink?: string;\n mobileView?: boolean;\n participantList?: JSX.Element;\n strings:\n | CallWithChatCompositeStrings\n | /* @conditional-compile-remove(one-to-n-calling) @conditional-compile-remove(PSTN-calls) */ CallCompositeStrings;\n /* @conditional-compile-remove(PSTN-calls) */\n onAddParticipant: (participant: PhoneNumberIdentifier, options?: AddPhoneNumberOptions) => void;\n alternateCallerId?: string;\n}\n\n/** @private */\nexport const AddPeopleButton = (props: AddPeopleButtonProps): JSX.Element => {\n const { inviteLink, mobileView, strings, participantList } = props;\n\n const theme = useTheme();\n\n const [copyInviteLinkAnnouncerStrings, setCopyInviteLinkAnnouncerStrings] = useState<string>('');\n\n const copyLinkButtonStylesThemed = useMemo(\n (): IButtonStyles => concatStyleSets(copyLinkButtonStyles, themedCopyLinkButtonStyles(mobileView, theme)),\n [mobileView, theme]\n );\n /**\n * sets the announcement string for when the link is copied.\n */\n const toggleAnnouncerString = useCallback(() => {\n setCopyInviteLinkAnnouncerStrings(strings.copyInviteLinkActionedAriaLabel);\n /**\n * Clears the announcer string after the user clicks the\n * copyInviteLink button allowing it to be re-announced.\n */\n setTimeout(() => {\n setCopyInviteLinkAnnouncerStrings('');\n }, 3000);\n }, [strings.copyInviteLinkActionedAriaLabel]);\n\n const dateInviteLinkCopied = useRef<number | undefined>(undefined);\n const [inviteLinkCopiedRecently, setInviteLinkCopiedRecently] = useState(false);\n const onCopyInviteLink = useCallback(() => {\n setInviteLinkCopiedRecently(true);\n dateInviteLinkCopied.current = Date.now();\n setTimeout(() => {\n if (dateInviteLinkCopied.current && Date.now() - dateInviteLinkCopied.current >= 2000) {\n setInviteLinkCopiedRecently(false);\n }\n }, 2000);\n }, [setInviteLinkCopiedRecently, dateInviteLinkCopied]);\n\n const calloutButtonId = useId('callout-button');\n\n /* @conditional-compile-remove(PSTN-calls) */\n if (mobileView) {\n return (\n <AddPeopleDropdown\n strings={strings}\n mobileView={mobileView}\n inviteLink={inviteLink}\n onAddParticipant={props.onAddParticipant}\n alternateCallerId={props.alternateCallerId}\n onCopyInviteLink={onCopyInviteLink}\n inviteLinkCopiedRecently={inviteLinkCopiedRecently}\n />\n );\n } else {\n return (\n <Stack tokens={peoplePaneContainerTokens} data-ui-id=\"people-pane-content\" verticalFill>\n <AddPeopleDropdown\n strings={strings}\n mobileView={mobileView}\n inviteLink={inviteLink}\n onAddParticipant={props.onAddParticipant}\n alternateCallerId={props.alternateCallerId}\n onCopyInviteLink={onCopyInviteLink}\n inviteLinkCopiedRecently={inviteLinkCopiedRecently}\n />\n <Stack.Item grow styles={{ root: { overflowY: 'hidden' } }}>\n {participantList}\n </Stack.Item>\n </Stack>\n );\n }\n\n if (mobileView) {\n return (\n <Stack>\n {inviteLink && (\n <Stack.Item styles={copyLinkButtonContainerStyles}>\n <Announcer announcementString={copyInviteLinkAnnouncerStrings} ariaLive={'polite'} />\n <PrimaryButton\n id={calloutButtonId}\n onClick={() => {\n copy(inviteLink ?? '');\n toggleAnnouncerString();\n onCopyInviteLink();\n }}\n styles={copyLinkButtonStylesThemed}\n onRenderIcon={() => <CallWithChatCompositeIcon iconName=\"Link\" style={linkIconStyles} />}\n text={strings.copyInviteLinkButtonLabel}\n />\n {inviteLinkCopiedRecently && (\n <CalloutWithIcon\n targetId={calloutButtonId}\n text={strings.copyInviteLinkButtonActionedLabel}\n doNotLayer={true}\n />\n )}\n </Stack.Item>\n )}\n </Stack>\n );\n } else {\n return (\n <Stack tokens={peoplePaneContainerTokens} data-ui-id=\"people-pane-content\" verticalFill>\n {inviteLink && (\n <Stack styles={copyLinkButtonStackStyles}>\n <Announcer announcementString={copyInviteLinkAnnouncerStrings} ariaLive={'polite'} />\n <DefaultButton\n id={calloutButtonId}\n text={strings.copyInviteLinkButtonLabel}\n onRenderIcon={() => <CallWithChatCompositeIcon iconName=\"Link\" style={linkIconStyles} />}\n onClick={() => {\n copy(inviteLink ?? '');\n toggleAnnouncerString();\n onCopyInviteLink();\n }}\n styles={copyLinkButtonStylesThemed}\n />\n {inviteLinkCopiedRecently && (\n <CalloutWithIcon targetId={calloutButtonId} text={strings.copyInviteLinkButtonActionedLabel} />\n )}\n </Stack>\n )}\n <Stack.Item grow styles={{ root: { overflowY: 'hidden' } }}>\n {participantList}\n </Stack.Item>\n </Stack>\n );\n }\n};\n"]}
@@ -5,6 +5,7 @@ import { AddPhoneNumberOptions } from '@azure/communication-calling';
5
5
  /** @private */
6
6
  export interface AddPeopleDropdownStrings extends CallingDialpadStrings {
7
7
  copyInviteLinkButtonLabel: string;
8
+ copyInviteLinkButtonActionedLabel: string;
8
9
  openDialpadButtonLabel: string;
9
10
  peoplePaneAddPeopleButtonLabel: string;
10
11
  copyInviteLinkActionedAriaLabel: string;
@@ -16,6 +17,8 @@ export interface AddPeopleDropdownProps {
16
17
  strings: AddPeopleDropdownStrings;
17
18
  onAddParticipant: (participant: PhoneNumberIdentifier, options?: AddPhoneNumberOptions) => void;
18
19
  alternateCallerId?: string;
20
+ onCopyInviteLink?: () => void;
21
+ inviteLinkCopiedRecently?: boolean;
19
22
  }
20
23
  /** @private */
21
24
  export declare const AddPeopleDropdown: (props: AddPeopleDropdownProps) => JSX.Element;
@@ -13,10 +13,12 @@ import { _preventDismissOnEvent as preventDismissOnEvent } from "../../../../acs
13
13
  import { copyLinkButtonContainerStyles, copyLinkButtonStackStyles } from './styles/PeoplePaneContent.styles';
14
14
  import { drawerContainerStyles } from '../CallComposite/styles/CallComposite.styles';
15
15
  import { convertContextualMenuItemToDrawerMenuItem } from './ConvertContextualMenuItemToDrawerMenuItem';
16
+ import { useId } from '@fluentui/react-hooks';
17
+ import { CalloutWithIcon } from './CalloutWithIcon';
16
18
  /** @private */
17
19
  export const AddPeopleDropdown = (props) => {
18
20
  const theme = useTheme();
19
- const { inviteLink, strings, mobileView, onAddParticipant, alternateCallerId } = props;
21
+ const { inviteLink, strings, mobileView, onAddParticipant, alternateCallerId, onCopyInviteLink, inviteLinkCopiedRecently } = props;
20
22
  const [showDialpad, setShowDialpad] = useState(false);
21
23
  const [announcerStrings, setAnnouncerStrings] = useState();
22
24
  const menuStyleThemed = useMemo(() => themedMenuStyle(theme), [theme]);
@@ -43,6 +45,7 @@ export const AddPeopleDropdown = (props) => {
43
45
  onClick: () => {
44
46
  setAnnouncerStrings(strings.copyInviteLinkActionedAriaLabel);
45
47
  copy(inviteLink);
48
+ onCopyInviteLink === null || onCopyInviteLink === void 0 ? void 0 : onCopyInviteLink();
46
49
  }
47
50
  });
48
51
  }
@@ -65,7 +68,8 @@ export const AddPeopleDropdown = (props) => {
65
68
  strings.copyInviteLinkButtonLabel,
66
69
  strings.copyInviteLinkActionedAriaLabel,
67
70
  strings.openDialpadButtonLabel,
68
- copyLinkButtonStylesThemed
71
+ copyLinkButtonStylesThemed,
72
+ onCopyInviteLink
69
73
  ]);
70
74
  const onDismissDialpad = () => {
71
75
  setShowDialpad(false);
@@ -77,11 +81,13 @@ export const AddPeopleDropdown = (props) => {
77
81
  setAddPeopleDrawerMenuItems(drawerMenuItems);
78
82
  };
79
83
  }, [defaultMenuProps, setAddPeopleDrawerMenuItems]);
84
+ const calloutButtonId = useId('callout-button');
80
85
  if (mobileView) {
81
86
  return (React.createElement(Stack, null,
82
87
  React.createElement(Announcer, { ariaLive: 'assertive', announcementString: announcerStrings }),
83
88
  defaultMenuProps.items.length > 0 && (React.createElement(Stack.Item, { styles: copyLinkButtonContainerStyles },
84
- React.createElement(PrimaryButton, { onClick: setDrawerMenuItemsForAddPeople, styles: copyLinkButtonStylesThemed, onRenderIcon: () => PeoplePaneAddPersonIconTrampoline(), text: strings.peoplePaneAddPeopleButtonLabel, "data-ui-id": "call-add-people-button" }))),
89
+ React.createElement(PrimaryButton, { id: calloutButtonId, onClick: setDrawerMenuItemsForAddPeople, styles: copyLinkButtonStylesThemed, onRenderIcon: () => PeoplePaneAddPersonIconTrampoline(), text: strings.peoplePaneAddPeopleButtonLabel, "data-ui-id": "call-add-people-button" }),
90
+ inviteLinkCopiedRecently && (React.createElement(CalloutWithIcon, { targetId: calloutButtonId, text: strings.copyInviteLinkButtonActionedLabel, doNotLayer: true })))),
85
91
  addPeopleDrawerMenuItems.length > 0 && (React.createElement(Stack, { styles: drawerContainerStyles(), "data-ui-id": "call-add-people-dropdown" },
86
92
  React.createElement(_DrawerMenu, { disableMaxHeight: true, onLightDismiss: () => setAddPeopleDrawerMenuItems([]), items: addPeopleDrawerMenuItems }))),
87
93
  alternateCallerId && (React.createElement(CallingDialpad, { isMobile: true, strings: strings, showDialpad: showDialpad, onDismissDialpad: onDismissDialpad, onAddParticipant: onAddParticipant, alternateCallerId: alternateCallerId }))));
@@ -90,7 +96,8 @@ export const AddPeopleDropdown = (props) => {
90
96
  React.createElement(Announcer, { ariaLive: 'assertive', announcementString: announcerStrings }),
91
97
  alternateCallerId && (React.createElement(CallingDialpad, { isMobile: false, strings: strings, showDialpad: showDialpad, onDismissDialpad: onDismissDialpad, onAddParticipant: onAddParticipant, alternateCallerId: alternateCallerId })),
92
98
  defaultMenuProps.items.length > 0 && (React.createElement(Stack, { styles: copyLinkButtonStackStyles },
93
- React.createElement(DefaultButton, { onRenderIcon: () => PeoplePaneAddPersonIconTrampoline(), text: strings.peoplePaneAddPeopleButtonLabel, menuProps: defaultMenuProps, styles: copyLinkButtonStylesThemed, "data-ui-id": "call-add-people-button" }))))));
99
+ React.createElement(DefaultButton, { id: calloutButtonId, onRenderIcon: () => PeoplePaneAddPersonIconTrampoline(), text: strings.peoplePaneAddPeopleButtonLabel, menuProps: defaultMenuProps, styles: copyLinkButtonStylesThemed, "data-ui-id": "call-add-people-button" }),
100
+ inviteLinkCopiedRecently && (React.createElement(CalloutWithIcon, { targetId: calloutButtonId, text: strings.copyInviteLinkButtonActionedLabel })))))));
94
101
  };
95
102
  function PeoplePaneOpenDialpadIconNameTrampoline() {
96
103
  /* @conditional-compile-remove(PSTN-calls) */
@@ -1 +1 @@
1
- {"version":3,"file":"AddPeopleDropdown.js","sourceRoot":"","sources":["../../../../../../../react-composites/src/composites/common/AddPeopleDropdown.tsx"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport React from 'react';\nimport {\n DefaultButton,\n IContextualMenuItem,\n IContextualMenuProps,\n PrimaryButton,\n Stack,\n useTheme\n} from '@fluentui/react';\n\nimport { _DrawerMenu, _DrawerMenuItemProps, Announcer } from '@internal/react-components';\nimport copy from 'copy-to-clipboard';\nimport { useMemo, useState } from 'react';\n/* @conditional-compile-remove(PSTN-calls) */\nimport { CallWithChatCompositeIcon } from './icons';\nimport { iconStyles, themedCopyLinkButtonStyles, themedMenuStyle } from './AddPeopleDropdown.styles';\nimport { CallingDialpad } from './CallingDialpad';\nimport { CallingDialpadStrings } from './CallingDialpad';\nimport { _preventDismissOnEvent as preventDismissOnEvent } from '@internal/acs-ui-common';\nimport { copyLinkButtonContainerStyles, copyLinkButtonStackStyles } from './styles/PeoplePaneContent.styles';\nimport { drawerContainerStyles } from '../CallComposite/styles/CallComposite.styles';\nimport { convertContextualMenuItemToDrawerMenuItem } from './ConvertContextualMenuItemToDrawerMenuItem';\nimport { PhoneNumberIdentifier } from '@azure/communication-common';\nimport { AddPhoneNumberOptions } from '@azure/communication-calling';\n\n/** @private */\nexport interface AddPeopleDropdownStrings extends CallingDialpadStrings {\n copyInviteLinkButtonLabel: string;\n openDialpadButtonLabel: string;\n peoplePaneAddPeopleButtonLabel: string;\n copyInviteLinkActionedAriaLabel: string;\n}\n\n/** @private */\nexport interface AddPeopleDropdownProps {\n inviteLink?: string;\n mobileView?: boolean;\n strings: AddPeopleDropdownStrings;\n onAddParticipant: (participant: PhoneNumberIdentifier, options?: AddPhoneNumberOptions) => void;\n alternateCallerId?: string;\n}\n\n/** @private */\nexport const AddPeopleDropdown = (props: AddPeopleDropdownProps): JSX.Element => {\n const theme = useTheme();\n\n const { inviteLink, strings, mobileView, onAddParticipant, alternateCallerId } = props;\n\n const [showDialpad, setShowDialpad] = useState(false);\n\n const [announcerStrings, setAnnouncerStrings] = useState<string>();\n\n const menuStyleThemed = useMemo(() => themedMenuStyle(theme), [theme]);\n\n const copyLinkButtonStylesThemed = useMemo(() => themedCopyLinkButtonStyles(theme, mobileView), [mobileView, theme]);\n\n const defaultMenuProps = useMemo((): IContextualMenuProps => {\n const menuProps: IContextualMenuProps = {\n styles: menuStyleThemed,\n items: [],\n useTargetWidth: true,\n calloutProps: {\n preventDismissOnEvent\n },\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n onMenuOpened(contextualMenu?) {\n setAnnouncerStrings(undefined);\n }\n };\n\n if (inviteLink) {\n menuProps.items.push({\n key: 'InviteLinkKey',\n text: strings.copyInviteLinkButtonLabel,\n itemProps: { styles: copyLinkButtonStylesThemed },\n iconProps: { iconName: 'Link', style: iconStyles },\n onClick: () => {\n setAnnouncerStrings(strings.copyInviteLinkActionedAriaLabel);\n copy(inviteLink);\n }\n });\n }\n\n // only show the dialpad option when alternateCallerId is set\n if (alternateCallerId) {\n menuProps.items.push({\n key: 'DialpadKey',\n text: strings.openDialpadButtonLabel,\n itemProps: { styles: copyLinkButtonStylesThemed },\n iconProps: { iconName: PeoplePaneOpenDialpadIconNameTrampoline(), style: iconStyles },\n onClick: () => setShowDialpad(true),\n 'data-ui-id': 'call-dial-phone-number-button'\n });\n }\n\n return menuProps;\n }, [\n menuStyleThemed,\n inviteLink,\n alternateCallerId,\n strings.copyInviteLinkButtonLabel,\n strings.copyInviteLinkActionedAriaLabel,\n strings.openDialpadButtonLabel,\n copyLinkButtonStylesThemed\n ]);\n\n const onDismissDialpad = (): void => {\n setShowDialpad(false);\n };\n\n const [addPeopleDrawerMenuItems, setAddPeopleDrawerMenuItems] = useState<_DrawerMenuItemProps[]>([]);\n\n const setDrawerMenuItemsForAddPeople: () => void = useMemo(() => {\n return () => {\n const drawerMenuItems = defaultMenuProps.items.map((contextualMenu: IContextualMenuItem) =>\n convertContextualMenuItemToDrawerMenuItem(contextualMenu, () => setAddPeopleDrawerMenuItems([]))\n );\n setAddPeopleDrawerMenuItems(drawerMenuItems);\n };\n }, [defaultMenuProps, setAddPeopleDrawerMenuItems]);\n\n if (mobileView) {\n return (\n <Stack>\n <Announcer ariaLive={'assertive'} announcementString={announcerStrings} />\n {defaultMenuProps.items.length > 0 && (\n <Stack.Item styles={copyLinkButtonContainerStyles}>\n <PrimaryButton\n onClick={setDrawerMenuItemsForAddPeople}\n styles={copyLinkButtonStylesThemed}\n onRenderIcon={() => PeoplePaneAddPersonIconTrampoline()}\n text={strings.peoplePaneAddPeopleButtonLabel}\n data-ui-id=\"call-add-people-button\"\n />\n </Stack.Item>\n )}\n\n {addPeopleDrawerMenuItems.length > 0 && (\n <Stack styles={drawerContainerStyles()} data-ui-id=\"call-add-people-dropdown\">\n <_DrawerMenu\n disableMaxHeight={true}\n onLightDismiss={() => setAddPeopleDrawerMenuItems([])}\n items={addPeopleDrawerMenuItems}\n />\n </Stack>\n )}\n {alternateCallerId && (\n <CallingDialpad\n isMobile={true}\n strings={strings}\n showDialpad={showDialpad}\n onDismissDialpad={onDismissDialpad}\n onAddParticipant={onAddParticipant}\n alternateCallerId={alternateCallerId}\n />\n )}\n </Stack>\n );\n }\n\n return (\n <>\n {\n <Stack>\n <Announcer ariaLive={'assertive'} announcementString={announcerStrings} />\n {alternateCallerId && (\n <CallingDialpad\n isMobile={false}\n strings={strings}\n showDialpad={showDialpad}\n onDismissDialpad={onDismissDialpad}\n onAddParticipant={onAddParticipant}\n alternateCallerId={alternateCallerId}\n />\n )}\n\n {defaultMenuProps.items.length > 0 && (\n <Stack styles={copyLinkButtonStackStyles}>\n <DefaultButton\n onRenderIcon={() => PeoplePaneAddPersonIconTrampoline()}\n text={strings.peoplePaneAddPeopleButtonLabel}\n menuProps={defaultMenuProps}\n styles={copyLinkButtonStylesThemed}\n data-ui-id=\"call-add-people-button\"\n />\n </Stack>\n )}\n </Stack>\n }\n </>\n );\n};\n\nfunction PeoplePaneOpenDialpadIconNameTrampoline(): string {\n /* @conditional-compile-remove(PSTN-calls) */\n return 'PeoplePaneOpenDialpad';\n\n return '';\n}\n\nfunction PeoplePaneAddPersonIconTrampoline(): JSX.Element {\n /* @conditional-compile-remove(PSTN-calls) */\n return <CallWithChatCompositeIcon iconName=\"PeoplePaneAddPerson\" />;\n\n return <></>;\n}\n"]}
1
+ {"version":3,"file":"AddPeopleDropdown.js","sourceRoot":"","sources":["../../../../../../../react-composites/src/composites/common/AddPeopleDropdown.tsx"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport React from 'react';\nimport {\n DefaultButton,\n IContextualMenuItem,\n IContextualMenuProps,\n PrimaryButton,\n Stack,\n useTheme\n} from '@fluentui/react';\n\nimport { _DrawerMenu, _DrawerMenuItemProps, Announcer } from '@internal/react-components';\nimport copy from 'copy-to-clipboard';\nimport { useMemo, useState } from 'react';\n/* @conditional-compile-remove(PSTN-calls) */\nimport { CallWithChatCompositeIcon } from './icons';\nimport { iconStyles, themedCopyLinkButtonStyles, themedMenuStyle } from './AddPeopleDropdown.styles';\nimport { CallingDialpad } from './CallingDialpad';\nimport { CallingDialpadStrings } from './CallingDialpad';\nimport { _preventDismissOnEvent as preventDismissOnEvent } from '@internal/acs-ui-common';\nimport { copyLinkButtonContainerStyles, copyLinkButtonStackStyles } from './styles/PeoplePaneContent.styles';\nimport { drawerContainerStyles } from '../CallComposite/styles/CallComposite.styles';\nimport { convertContextualMenuItemToDrawerMenuItem } from './ConvertContextualMenuItemToDrawerMenuItem';\nimport { PhoneNumberIdentifier } from '@azure/communication-common';\nimport { AddPhoneNumberOptions } from '@azure/communication-calling';\nimport { useId } from '@fluentui/react-hooks';\nimport { CalloutWithIcon } from './CalloutWithIcon';\n\n/** @private */\nexport interface AddPeopleDropdownStrings extends CallingDialpadStrings {\n copyInviteLinkButtonLabel: string;\n copyInviteLinkButtonActionedLabel: string;\n openDialpadButtonLabel: string;\n peoplePaneAddPeopleButtonLabel: string;\n copyInviteLinkActionedAriaLabel: string;\n}\n\n/** @private */\nexport interface AddPeopleDropdownProps {\n inviteLink?: string;\n mobileView?: boolean;\n strings: AddPeopleDropdownStrings;\n onAddParticipant: (participant: PhoneNumberIdentifier, options?: AddPhoneNumberOptions) => void;\n alternateCallerId?: string;\n onCopyInviteLink?: () => void;\n inviteLinkCopiedRecently?: boolean;\n}\n\n/** @private */\nexport const AddPeopleDropdown = (props: AddPeopleDropdownProps): JSX.Element => {\n const theme = useTheme();\n\n const {\n inviteLink,\n strings,\n mobileView,\n onAddParticipant,\n alternateCallerId,\n onCopyInviteLink,\n inviteLinkCopiedRecently\n } = props;\n\n const [showDialpad, setShowDialpad] = useState(false);\n\n const [announcerStrings, setAnnouncerStrings] = useState<string>();\n\n const menuStyleThemed = useMemo(() => themedMenuStyle(theme), [theme]);\n\n const copyLinkButtonStylesThemed = useMemo(() => themedCopyLinkButtonStyles(theme, mobileView), [mobileView, theme]);\n\n const defaultMenuProps = useMemo((): IContextualMenuProps => {\n const menuProps: IContextualMenuProps = {\n styles: menuStyleThemed,\n items: [],\n useTargetWidth: true,\n calloutProps: {\n preventDismissOnEvent\n },\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n onMenuOpened(contextualMenu?) {\n setAnnouncerStrings(undefined);\n }\n };\n\n if (inviteLink) {\n menuProps.items.push({\n key: 'InviteLinkKey',\n text: strings.copyInviteLinkButtonLabel,\n itemProps: { styles: copyLinkButtonStylesThemed },\n iconProps: { iconName: 'Link', style: iconStyles },\n onClick: () => {\n setAnnouncerStrings(strings.copyInviteLinkActionedAriaLabel);\n copy(inviteLink);\n onCopyInviteLink?.();\n }\n });\n }\n\n // only show the dialpad option when alternateCallerId is set\n if (alternateCallerId) {\n menuProps.items.push({\n key: 'DialpadKey',\n text: strings.openDialpadButtonLabel,\n itemProps: { styles: copyLinkButtonStylesThemed },\n iconProps: { iconName: PeoplePaneOpenDialpadIconNameTrampoline(), style: iconStyles },\n onClick: () => setShowDialpad(true),\n 'data-ui-id': 'call-dial-phone-number-button'\n });\n }\n\n return menuProps;\n }, [\n menuStyleThemed,\n inviteLink,\n alternateCallerId,\n strings.copyInviteLinkButtonLabel,\n strings.copyInviteLinkActionedAriaLabel,\n strings.openDialpadButtonLabel,\n copyLinkButtonStylesThemed,\n onCopyInviteLink\n ]);\n\n const onDismissDialpad = (): void => {\n setShowDialpad(false);\n };\n\n const [addPeopleDrawerMenuItems, setAddPeopleDrawerMenuItems] = useState<_DrawerMenuItemProps[]>([]);\n\n const setDrawerMenuItemsForAddPeople: () => void = useMemo(() => {\n return () => {\n const drawerMenuItems = defaultMenuProps.items.map((contextualMenu: IContextualMenuItem) =>\n convertContextualMenuItemToDrawerMenuItem(contextualMenu, () => setAddPeopleDrawerMenuItems([]))\n );\n setAddPeopleDrawerMenuItems(drawerMenuItems);\n };\n }, [defaultMenuProps, setAddPeopleDrawerMenuItems]);\n\n const calloutButtonId = useId('callout-button');\n\n if (mobileView) {\n return (\n <Stack>\n <Announcer ariaLive={'assertive'} announcementString={announcerStrings} />\n {defaultMenuProps.items.length > 0 && (\n <Stack.Item styles={copyLinkButtonContainerStyles}>\n <PrimaryButton\n id={calloutButtonId}\n onClick={setDrawerMenuItemsForAddPeople}\n styles={copyLinkButtonStylesThemed}\n onRenderIcon={() => PeoplePaneAddPersonIconTrampoline()}\n text={strings.peoplePaneAddPeopleButtonLabel}\n data-ui-id=\"call-add-people-button\"\n />\n {inviteLinkCopiedRecently && (\n <CalloutWithIcon\n targetId={calloutButtonId}\n text={strings.copyInviteLinkButtonActionedLabel}\n doNotLayer={true}\n />\n )}\n </Stack.Item>\n )}\n\n {addPeopleDrawerMenuItems.length > 0 && (\n <Stack styles={drawerContainerStyles()} data-ui-id=\"call-add-people-dropdown\">\n <_DrawerMenu\n disableMaxHeight={true}\n onLightDismiss={() => setAddPeopleDrawerMenuItems([])}\n items={addPeopleDrawerMenuItems}\n />\n </Stack>\n )}\n {alternateCallerId && (\n <CallingDialpad\n isMobile={true}\n strings={strings}\n showDialpad={showDialpad}\n onDismissDialpad={onDismissDialpad}\n onAddParticipant={onAddParticipant}\n alternateCallerId={alternateCallerId}\n />\n )}\n </Stack>\n );\n }\n\n return (\n <>\n {\n <Stack>\n <Announcer ariaLive={'assertive'} announcementString={announcerStrings} />\n {alternateCallerId && (\n <CallingDialpad\n isMobile={false}\n strings={strings}\n showDialpad={showDialpad}\n onDismissDialpad={onDismissDialpad}\n onAddParticipant={onAddParticipant}\n alternateCallerId={alternateCallerId}\n />\n )}\n\n {defaultMenuProps.items.length > 0 && (\n <Stack styles={copyLinkButtonStackStyles}>\n <DefaultButton\n id={calloutButtonId}\n onRenderIcon={() => PeoplePaneAddPersonIconTrampoline()}\n text={strings.peoplePaneAddPeopleButtonLabel}\n menuProps={defaultMenuProps}\n styles={copyLinkButtonStylesThemed}\n data-ui-id=\"call-add-people-button\"\n />\n {inviteLinkCopiedRecently && (\n <CalloutWithIcon targetId={calloutButtonId} text={strings.copyInviteLinkButtonActionedLabel} />\n )}\n </Stack>\n )}\n </Stack>\n }\n </>\n );\n};\n\nfunction PeoplePaneOpenDialpadIconNameTrampoline(): string {\n /* @conditional-compile-remove(PSTN-calls) */\n return 'PeoplePaneOpenDialpad';\n\n return '';\n}\n\nfunction PeoplePaneAddPersonIconTrampoline(): JSX.Element {\n /* @conditional-compile-remove(PSTN-calls) */\n return <CallWithChatCompositeIcon iconName=\"PeoplePaneAddPerson\" />;\n\n return <></>;\n}\n"]}
@@ -0,0 +1,10 @@
1
+ /// <reference types="react" />
2
+ /** @private */
3
+ export interface CalloutWithIconProps {
4
+ targetId: string;
5
+ text: string;
6
+ doNotLayer?: boolean;
7
+ }
8
+ /** @private */
9
+ export declare const CalloutWithIcon: (props: CalloutWithIconProps) => JSX.Element;
10
+ //# sourceMappingURL=CalloutWithIcon.d.ts.map
@@ -0,0 +1,37 @@
1
+ // Copyright (c) Microsoft Corporation.
2
+ // Licensed under the MIT License.
3
+ import { Callout, DirectionalHint, mergeStyles, Stack, Text } from '@fluentui/react';
4
+ // eslint-disable-next-line no-restricted-imports
5
+ import { FontIcon } from '@fluentui/react';
6
+ import React from 'react';
7
+ /** @private */
8
+ export const CalloutWithIcon = (props) => {
9
+ return (React.createElement(Callout, { styles: calloutStyle, target: `#${props.targetId}`, directionalHint: DirectionalHint.topCenter, beakWidth: BEAK_WIDTH_PX, gapSpace: GAP_SPACE_PX, doNotLayer: props.doNotLayer },
10
+ React.createElement(Stack, { horizontal: true, styles: calloutRootStackStyle, tokens: { childrenGap: '0.375rem' } },
11
+ React.createElement(FontIcon, { iconName: "Checkmark", className: iconClass }),
12
+ React.createElement(Text, null, props.text))));
13
+ };
14
+ const calloutStyle = {
15
+ root: {
16
+ padding: '0.375rem 0.75rem 0.375rem 0.5rem',
17
+ borderRadius: '0.25rem'
18
+ },
19
+ beakCurtain: {
20
+ borderRadius: '0.25rem'
21
+ },
22
+ container: {
23
+ zIndex: 0
24
+ }
25
+ };
26
+ const calloutRootStackStyle = {
27
+ root: {
28
+ display: 'flex',
29
+ alignItems: 'center'
30
+ }
31
+ };
32
+ const BEAK_WIDTH_PX = 8;
33
+ const GAP_SPACE_PX = 2;
34
+ const iconClass = mergeStyles({
35
+ fontSize: 18
36
+ });
37
+ //# sourceMappingURL=CalloutWithIcon.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CalloutWithIcon.js","sourceRoot":"","sources":["../../../../../../../react-composites/src/composites/common/CalloutWithIcon.tsx"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAElC,OAAO,EAAE,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AACrF,iDAAiD;AACjD,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC3C,OAAO,KAAK,MAAM,OAAO,CAAC;AAS1B,eAAe;AACf,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,KAA2B,EAAe,EAAE;IAC1E,OAAO,CACL,oBAAC,OAAO,IACN,MAAM,EAAE,YAAY,EACpB,MAAM,EAAE,IAAI,KAAK,CAAC,QAAQ,EAAE,EAC5B,eAAe,EAAE,eAAe,CAAC,SAAS,EAC1C,SAAS,EAAE,aAAa,EACxB,QAAQ,EAAE,YAAY,EACtB,UAAU,EAAE,KAAK,CAAC,UAAU;QAE5B,oBAAC,KAAK,IAAC,UAAU,QAAC,MAAM,EAAE,qBAAqB,EAAE,MAAM,EAAE,EAAE,WAAW,EAAE,UAAU,EAAE;YAClF,oBAAC,QAAQ,IAAC,QAAQ,EAAC,WAAW,EAAC,SAAS,EAAE,SAAS,GAAI;YACvD,oBAAC,IAAI,QAAE,KAAK,CAAC,IAAI,CAAQ,CACnB,CACA,CACX,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,YAAY,GAAG;IACnB,IAAI,EAAE;QACJ,OAAO,EAAE,kCAAkC;QAC3C,YAAY,EAAE,SAAS;KACxB;IACD,WAAW,EAAE;QACX,YAAY,EAAE,SAAS;KACxB;IACD,SAAS,EAAE;QACT,MAAM,EAAE,CAAC;KACV;CACF,CAAC;AAEF,MAAM,qBAAqB,GAAG;IAC5B,IAAI,EAAE;QACJ,OAAO,EAAE,MAAM;QACf,UAAU,EAAE,QAAQ;KACrB;CACF,CAAC;AAEF,MAAM,aAAa,GAAG,CAAC,CAAC;AAExB,MAAM,YAAY,GAAG,CAAC,CAAC;AAEvB,MAAM,SAAS,GAAG,WAAW,CAAC;IAC5B,QAAQ,EAAE,EAAE;CACb,CAAC,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { Callout, DirectionalHint, mergeStyles, Stack, Text } from '@fluentui/react';\n// eslint-disable-next-line no-restricted-imports\nimport { FontIcon } from '@fluentui/react';\nimport React from 'react';\n\n/** @private */\nexport interface CalloutWithIconProps {\n targetId: string;\n text: string;\n doNotLayer?: boolean;\n}\n\n/** @private */\nexport const CalloutWithIcon = (props: CalloutWithIconProps): JSX.Element => {\n return (\n <Callout\n styles={calloutStyle}\n target={`#${props.targetId}`}\n directionalHint={DirectionalHint.topCenter}\n beakWidth={BEAK_WIDTH_PX}\n gapSpace={GAP_SPACE_PX}\n doNotLayer={props.doNotLayer}\n >\n <Stack horizontal styles={calloutRootStackStyle} tokens={{ childrenGap: '0.375rem' }}>\n <FontIcon iconName=\"Checkmark\" className={iconClass} />\n <Text>{props.text}</Text>\n </Stack>\n </Callout>\n );\n};\n\nconst calloutStyle = {\n root: {\n padding: '0.375rem 0.75rem 0.375rem 0.5rem',\n borderRadius: '0.25rem'\n },\n beakCurtain: {\n borderRadius: '0.25rem'\n },\n container: {\n zIndex: 0\n }\n};\n\nconst calloutRootStackStyle = {\n root: {\n display: 'flex',\n alignItems: 'center'\n }\n};\n\nconst BEAK_WIDTH_PX = 8;\n\nconst GAP_SPACE_PX = 2;\n\nconst iconClass = mergeStyles({\n fontSize: 18\n});\n"]}