@azure/communication-react 1.18.0-alpha-202407200014 → 1.18.0-alpha-202407262302
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.
- package/dist/communication-react.d.ts +33 -94
 - package/dist/dist-cjs/communication-react/{ChatMessageComponentAsRichTextEditBox-D4ctXnw1.js → ChatMessageComponentAsRichTextEditBox-CmXCpkwp.js} +9 -58
 - package/dist/dist-cjs/communication-react/ChatMessageComponentAsRichTextEditBox-CmXCpkwp.js.map +1 -0
 - package/dist/dist-cjs/communication-react/{RichTextSendBoxWrapper-F6eqVXer.js → RichTextSendBoxWrapper-DI4k0qyf.js} +2 -2
 - package/dist/dist-cjs/communication-react/{RichTextSendBoxWrapper-F6eqVXer.js.map → RichTextSendBoxWrapper-DI4k0qyf.js.map} +1 -1
 - package/dist/dist-cjs/communication-react/{index-BJO_NOTU.js → index-BSczaURy.js} +479 -831
 - package/dist/dist-cjs/communication-react/index-BSczaURy.js.map +1 -0
 - package/dist/dist-cjs/communication-react/index.js +1 -1
 - package/dist/dist-esm/acs-ui-common/src/telemetryVersion.js +1 -1
 - package/dist/dist-esm/acs-ui-common/src/telemetryVersion.js.map +1 -1
 - package/dist/dist-esm/calling-component-bindings/src/baseSelectors.d.ts +1 -1
 - package/dist/dist-esm/calling-component-bindings/src/baseSelectors.js +3 -3
 - package/dist/dist-esm/calling-component-bindings/src/baseSelectors.js.map +1 -1
 - package/dist/dist-esm/calling-component-bindings/src/notificationStackSelector.js +2 -2
 - package/dist/dist-esm/calling-component-bindings/src/notificationStackSelector.js.map +1 -1
 - package/dist/dist-esm/calling-stateful-client/src/CallAgentDeclarative.d.ts +3 -3
 - package/dist/dist-esm/calling-stateful-client/src/CallAgentDeclarative.js.map +1 -1
 - package/dist/dist-esm/calling-stateful-client/src/CallAgentDeclarativeCommon.d.ts +1 -1
 - package/dist/dist-esm/calling-stateful-client/src/CallAgentDeclarativeCommon.js +7 -15
 - package/dist/dist-esm/calling-stateful-client/src/CallAgentDeclarativeCommon.js.map +1 -1
 - package/dist/dist-esm/calling-stateful-client/src/CallClientState.d.ts +1 -3
 - package/dist/dist-esm/calling-stateful-client/src/CallClientState.js.map +1 -1
 - package/dist/dist-esm/calling-stateful-client/src/CallContext.js +2 -2
 - package/dist/dist-esm/calling-stateful-client/src/CallContext.js.map +1 -1
 - package/dist/dist-esm/calling-stateful-client/src/Converter.js +1 -1
 - package/dist/dist-esm/calling-stateful-client/src/Converter.js.map +1 -1
 - package/dist/dist-esm/calling-stateful-client/src/IncomingCallDeclarative.d.ts +8 -2
 - package/dist/dist-esm/calling-stateful-client/src/IncomingCallDeclarative.js.map +1 -1
 - package/dist/dist-esm/calling-stateful-client/src/TeamsCallAgentDeclarative.d.ts +2 -14
 - package/dist/dist-esm/calling-stateful-client/src/TeamsCallAgentDeclarative.js.map +1 -1
 - package/dist/dist-esm/calling-stateful-client/src/TypeGuards.d.ts +1 -9
 - package/dist/dist-esm/calling-stateful-client/src/TypeGuards.js +0 -16
 - package/dist/dist-esm/calling-stateful-client/src/TypeGuards.js.map +1 -1
 - package/dist/dist-esm/calling-stateful-client/src/index-public.d.ts +1 -1
 - package/dist/dist-esm/calling-stateful-client/src/index-public.js.map +1 -1
 - package/dist/dist-esm/chat-stateful-client/src/ChatClientState.d.ts +3 -5
 - package/dist/dist-esm/chat-stateful-client/src/ChatClientState.js.map +1 -1
 - package/dist/dist-esm/communication-react/src/index.d.ts +1 -1
 - package/dist/dist-esm/communication-react/src/index.js.map +1 -1
 - package/dist/dist-esm/react-components/src/components/Attachment/AttachmentCard.js +8 -14
 - package/dist/dist-esm/react-components/src/components/Attachment/AttachmentCard.js.map +1 -1
 - package/dist/dist-esm/react-components/src/components/ChatMessage/ChatMessageComponentWrapper.d.ts +2 -8
 - package/dist/dist-esm/react-components/src/components/ChatMessage/ChatMessageComponentWrapper.js.map +1 -1
 - package/dist/dist-esm/react-components/src/components/ChatMessage/MyMessageComponents/ChatMessageComponentAsEditBoxPicker.d.ts +4 -6
 - package/dist/dist-esm/react-components/src/components/ChatMessage/MyMessageComponents/ChatMessageComponentAsEditBoxPicker.js +12 -2
 - package/dist/dist-esm/react-components/src/components/ChatMessage/MyMessageComponents/ChatMessageComponentAsEditBoxPicker.js.map +1 -1
 - package/dist/dist-esm/react-components/src/components/ChatMessage/MyMessageComponents/ChatMessageComponentAsRichTextEditBox.d.ts +2 -2
 - package/dist/dist-esm/react-components/src/components/ChatMessage/MyMessageComponents/ChatMessageComponentAsRichTextEditBox.js +8 -60
 - package/dist/dist-esm/react-components/src/components/ChatMessage/MyMessageComponents/ChatMessageComponentAsRichTextEditBox.js.map +1 -1
 - package/dist/dist-esm/react-components/src/components/ChatMessage/MyMessageComponents/ChatMyMessageComponent.d.ts +6 -8
 - package/dist/dist-esm/react-components/src/components/ChatMessage/MyMessageComponents/ChatMyMessageComponent.js +4 -18
 - package/dist/dist-esm/react-components/src/components/ChatMessage/MyMessageComponents/ChatMyMessageComponent.js.map +1 -1
 - package/dist/dist-esm/react-components/src/components/ChatMessage/MyMessageComponents/FluentChatMyMessageComponent.js +3 -27
 - package/dist/dist-esm/react-components/src/components/ChatMessage/MyMessageComponents/FluentChatMyMessageComponent.js.map +1 -1
 - package/dist/dist-esm/react-components/src/components/MeetingConferencePhoneInfo.d.ts +8 -8
 - package/dist/dist-esm/react-components/src/components/MeetingConferencePhoneInfo.js +4 -4
 - package/dist/dist-esm/react-components/src/components/MeetingConferencePhoneInfo.js.map +1 -1
 - package/dist/dist-esm/react-components/src/components/MessageThread.d.ts +15 -9
 - package/dist/dist-esm/react-components/src/components/MessageThread.js +1 -10
 - package/dist/dist-esm/react-components/src/components/MessageThread.js.map +1 -1
 - package/dist/dist-esm/react-components/src/components/RichTextEditor/Plugins/CopyPastePlugin.js +1 -0
 - package/dist/dist-esm/react-components/src/components/RichTextEditor/Plugins/CopyPastePlugin.js.map +1 -1
 - package/dist/dist-esm/react-components/src/components/RichTextEditor/RichTextEditor.js +22 -28
 - package/dist/dist-esm/react-components/src/components/RichTextEditor/RichTextEditor.js.map +1 -1
 - package/dist/dist-esm/react-components/src/components/RichTextEditor/RichTextSendBox.d.ts +0 -49
 - package/dist/dist-esm/react-components/src/components/RichTextEditor/RichTextSendBox.js +18 -37
 - package/dist/dist-esm/react-components/src/components/RichTextEditor/RichTextSendBox.js.map +1 -1
 - package/dist/dist-esm/react-components/src/components/RichTextEditor/Toolbar/RichTextToolbar.js +2 -20
 - package/dist/dist-esm/react-components/src/components/RichTextEditor/Toolbar/RichTextToolbar.js.map +1 -1
 - package/dist/dist-esm/react-components/src/components/index.d.ts +1 -2
 - package/dist/dist-esm/react-components/src/components/index.js.map +1 -1
 - package/dist/dist-esm/react-components/src/components/styles/AttachmentCard.styles.d.ts +2 -2
 - package/dist/dist-esm/react-components/src/components/styles/AttachmentCard.styles.js +17 -15
 - package/dist/dist-esm/react-components/src/components/styles/AttachmentCard.styles.js.map +1 -1
 - package/dist/dist-esm/react-components/src/components/styles/Common.style.d.ts +1 -1
 - package/dist/dist-esm/react-components/src/components/styles/Common.style.js +1 -2
 - package/dist/dist-esm/react-components/src/components/styles/Common.style.js.map +1 -1
 - package/dist/dist-esm/react-components/src/components/styles/MessageThread.styles.js +2 -5
 - package/dist/dist-esm/react-components/src/components/styles/MessageThread.styles.js.map +1 -1
 - package/dist/dist-esm/react-components/src/components/styles/RichTextEditor.styles.js +3 -3
 - package/dist/dist-esm/react-components/src/components/styles/RichTextEditor.styles.js.map +1 -1
 - package/dist/dist-esm/react-components/src/components/utils/RichTextEditorUtils.d.ts +5 -1
 - package/dist/dist-esm/react-components/src/components/utils/RichTextEditorUtils.js +21 -0
 - package/dist/dist-esm/react-components/src/components/utils/RichTextEditorUtils.js.map +1 -1
 - package/dist/dist-esm/react-components/src/components/utils/SendBoxUtils.d.ts +3 -15
 - package/dist/dist-esm/react-components/src/components/utils/SendBoxUtils.js +14 -67
 - package/dist/dist-esm/react-components/src/components/utils/SendBoxUtils.js.map +1 -1
 - package/dist/dist-esm/react-components/src/localization/LocalizationProvider.d.ts +1 -1
 - package/dist/dist-esm/react-components/src/localization/LocalizationProvider.js.map +1 -1
 - package/dist/dist-esm/react-components/src/localization/locales/ar-SA/strings.json +64 -102
 - package/dist/dist-esm/react-components/src/localization/locales/cs-CZ/strings.json +62 -100
 - package/dist/dist-esm/react-components/src/localization/locales/de-DE/strings.json +62 -100
 - package/dist/dist-esm/react-components/src/localization/locales/en-GB/strings.json +62 -100
 - package/dist/dist-esm/react-components/src/localization/locales/en-US/strings.json +3 -9
 - package/dist/dist-esm/react-components/src/localization/locales/es-ES/strings.json +62 -100
 - package/dist/dist-esm/react-components/src/localization/locales/fi-FI/strings.json +62 -100
 - package/dist/dist-esm/react-components/src/localization/locales/fr-FR/strings.json +65 -103
 - package/dist/dist-esm/react-components/src/localization/locales/he-IL/strings.json +62 -100
 - package/dist/dist-esm/react-components/src/localization/locales/it-IT/strings.json +62 -100
 - package/dist/dist-esm/react-components/src/localization/locales/ja-JP/strings.json +64 -102
 - package/dist/dist-esm/react-components/src/localization/locales/ko-KR/strings.json +69 -107
 - package/dist/dist-esm/react-components/src/localization/locales/nb-NO/strings.json +62 -100
 - package/dist/dist-esm/react-components/src/localization/locales/nl-NL/strings.json +68 -106
 - package/dist/dist-esm/react-components/src/localization/locales/pl-PL/strings.json +67 -105
 - package/dist/dist-esm/react-components/src/localization/locales/pt-BR/strings.json +65 -103
 - package/dist/dist-esm/react-components/src/localization/locales/ru-RU/strings.json +63 -101
 - package/dist/dist-esm/react-components/src/localization/locales/sv-SE/strings.json +62 -100
 - package/dist/dist-esm/react-components/src/localization/locales/tr-TR/strings.json +63 -101
 - package/dist/dist-esm/react-components/src/localization/locales/zh-CN/strings.json +64 -102
 - package/dist/dist-esm/react-components/src/localization/locales/zh-TW/strings.json +63 -101
 - package/dist/dist-esm/react-composites/src/composites/CallComposite/components/NetworkReconnectTile.js +4 -4
 - package/dist/dist-esm/react-composites/src/composites/CallComposite/components/NetworkReconnectTile.js.map +1 -1
 - package/dist/dist-esm/react-composites/src/composites/CallComposite/components/SidePane/useMeetingPhoneInfo.js +1 -1
 - package/dist/dist-esm/react-composites/src/composites/CallComposite/components/SidePane/useMeetingPhoneInfo.js.map +1 -1
 - package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/baseSelectors.js +1 -1
 - package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/baseSelectors.js.map +1 -1
 - package/dist/dist-esm/react-composites/src/composites/ChatComposite/ChatScreen.js +31 -66
 - package/dist/dist-esm/react-composites/src/composites/ChatComposite/ChatScreen.js.map +1 -1
 - package/dist/dist-esm/react-composites/src/composites/ChatComposite/ImageUpload/ImageUploadUtils.d.ts +1 -33
 - package/dist/dist-esm/react-composites/src/composites/ChatComposite/ImageUpload/ImageUploadUtils.js +6 -198
 - package/dist/dist-esm/react-composites/src/composites/ChatComposite/ImageUpload/ImageUploadUtils.js.map +1 -1
 - package/dist/dist-esm/react-composites/src/composites/ChatComposite/ImageUpload/useImageUpload.d.ts +12 -0
 - package/dist/dist-esm/react-composites/src/composites/ChatComposite/ImageUpload/useImageUpload.js +115 -0
 - package/dist/dist-esm/react-composites/src/composites/ChatComposite/ImageUpload/useImageUpload.js.map +1 -0
 - package/dist/dist-esm/react-composites/src/composites/ChatComposite/file-sharing/AttachmentUpload.d.ts +7 -7
 - package/dist/dist-esm/react-composites/src/composites/ChatComposite/file-sharing/AttachmentUpload.js.map +1 -1
 - package/dist/dist-esm/react-composites/src/composites/common/ControlBar/CommonCallControlBar.js +10 -10
 - package/dist/dist-esm/react-composites/src/composites/common/ControlBar/CommonCallControlBar.js.map +1 -1
 - package/dist/dist-esm/react-composites/src/composites/common/MeetingPhoneInfoPaneContent.js +4 -4
 - package/dist/dist-esm/react-composites/src/composites/common/MeetingPhoneInfoPaneContent.js.map +1 -1
 - package/dist/dist-esm/react-composites/src/composites/common/SendBoxPicker.d.ts +5 -2
 - package/dist/dist-esm/react-composites/src/composites/common/SendBoxPicker.js.map +1 -1
 - package/dist/dist-esm/react-composites/src/composites/common/constants.d.ts +0 -4
 - package/dist/dist-esm/react-composites/src/composites/common/constants.js +0 -4
 - package/dist/dist-esm/react-composites/src/composites/common/constants.js.map +1 -1
 - package/dist/dist-esm/react-composites/src/composites/common/icons.d.ts +2 -6
 - package/dist/dist-esm/react-composites/src/composites/common/icons.js +1 -5
 - package/dist/dist-esm/react-composites/src/composites/common/icons.js.map +1 -1
 - package/dist/dist-esm/react-composites/src/composites/localization/locales/ar-SA/strings.json +5 -10
 - package/dist/dist-esm/react-composites/src/composites/localization/locales/cs-CZ/strings.json +1 -6
 - package/dist/dist-esm/react-composites/src/composites/localization/locales/de-DE/strings.json +1 -6
 - package/dist/dist-esm/react-composites/src/composites/localization/locales/en-GB/strings.json +1 -6
 - package/dist/dist-esm/react-composites/src/composites/localization/locales/es-ES/strings.json +1 -6
 - package/dist/dist-esm/react-composites/src/composites/localization/locales/fi-FI/strings.json +5 -10
 - package/dist/dist-esm/react-composites/src/composites/localization/locales/fr-FR/strings.json +5 -10
 - package/dist/dist-esm/react-composites/src/composites/localization/locales/he-IL/strings.json +5 -10
 - package/dist/dist-esm/react-composites/src/composites/localization/locales/it-IT/strings.json +5 -10
 - package/dist/dist-esm/react-composites/src/composites/localization/locales/ja-JP/strings.json +1 -6
 - package/dist/dist-esm/react-composites/src/composites/localization/locales/ko-KR/strings.json +5 -10
 - package/dist/dist-esm/react-composites/src/composites/localization/locales/nb-NO/strings.json +1 -6
 - package/dist/dist-esm/react-composites/src/composites/localization/locales/nl-NL/strings.json +1 -6
 - package/dist/dist-esm/react-composites/src/composites/localization/locales/pl-PL/strings.json +1 -6
 - package/dist/dist-esm/react-composites/src/composites/localization/locales/pt-BR/strings.json +5 -10
 - package/dist/dist-esm/react-composites/src/composites/localization/locales/ru-RU/strings.json +1 -6
 - package/dist/dist-esm/react-composites/src/composites/localization/locales/sv-SE/strings.json +5 -10
 - package/dist/dist-esm/react-composites/src/composites/localization/locales/tr-TR/strings.json +1 -6
 - package/dist/dist-esm/react-composites/src/composites/localization/locales/zh-CN/strings.json +5 -10
 - package/dist/dist-esm/react-composites/src/composites/localization/locales/zh-TW/strings.json +5 -10
 - package/package.json +14 -14
 - package/dist/dist-cjs/communication-react/ChatMessageComponentAsRichTextEditBox-D4ctXnw1.js.map +0 -1
 - package/dist/dist-cjs/communication-react/index-BJO_NOTU.js.map +0 -1
 - package/dist/dist-esm/calling-stateful-client/src/TeamsIncomingCallDeclarative.d.ts +0 -17
 - package/dist/dist-esm/calling-stateful-client/src/TeamsIncomingCallDeclarative.js +0 -49
 - package/dist/dist-esm/calling-stateful-client/src/TeamsIncomingCallDeclarative.js.map +0 -1
 - package/dist/dist-esm/react-composites/src/composites/ChatComposite/ImageUpload/ImageUploadReducer.d.ts +0 -49
 - package/dist/dist-esm/react-composites/src/composites/ChatComposite/ImageUpload/ImageUploadReducer.js +0 -48
 - package/dist/dist-esm/react-composites/src/composites/ChatComposite/ImageUpload/ImageUploadReducer.js.map +0 -1
 
| 
         @@ -1,14 +1,5 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            // Copyright (c) Microsoft Corporation.
         
     | 
| 
       2 
2 
     | 
    
         
             
            // Licensed under the MIT License.
         
     | 
| 
       3 
     | 
    
         
            -
            var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
         
     | 
| 
       4 
     | 
    
         
            -
                function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
         
     | 
| 
       5 
     | 
    
         
            -
                return new (P || (P = Promise))(function (resolve, reject) {
         
     | 
| 
       6 
     | 
    
         
            -
                    function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
         
     | 
| 
       7 
     | 
    
         
            -
                    function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
         
     | 
| 
       8 
     | 
    
         
            -
                    function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
         
     | 
| 
       9 
     | 
    
         
            -
                    step((generator = generator.apply(thisArg, _arguments || [])).next());
         
     | 
| 
       10 
     | 
    
         
            -
                });
         
     | 
| 
       11 
     | 
    
         
            -
            };
         
     | 
| 
       12 
3 
     | 
    
         
             
            /**
         
     | 
| 
       13 
4 
     | 
    
         
             
             * @private
         
     | 
| 
       14 
5 
     | 
    
         
             
             */
         
     | 
| 
         @@ -36,45 +27,22 @@ export const isAttachmentUploadCompleted = (attachmentsWithProgress) => { 
     | 
|
| 
       36 
27 
     | 
    
         
             
             * @internal
         
     | 
| 
       37 
28 
     | 
    
         
             
             */
         
     | 
| 
       38 
29 
     | 
    
         
             
            // Before sending the image, we need to add the image id we get back after uploading the images to the message content.
         
     | 
| 
       39 
     | 
    
         
            -
            export const addUploadedImagesToMessage = (message, uploadInlineImages) =>  
     | 
| 
      
 30 
     | 
    
         
            +
            export const addUploadedImagesToMessage = (message, uploadInlineImages) => {
         
     | 
| 
       40 
31 
     | 
    
         
             
                if (message === '') {
         
     | 
| 
       41 
32 
     | 
    
         
             
                    return message;
         
     | 
| 
       42 
33 
     | 
    
         
             
                }
         
     | 
| 
       43 
34 
     | 
    
         
             
                const document = new DOMParser().parseFromString(message !== null && message !== void 0 ? message : '', 'text/html');
         
     | 
| 
       44 
     | 
    
         
            -
                 
     | 
| 
       45 
     | 
    
         
            -
                     
     | 
| 
      
 35 
     | 
    
         
            +
                document.querySelectorAll('img').forEach((img) => {
         
     | 
| 
      
 36 
     | 
    
         
            +
                    var _a;
         
     | 
| 
      
 37 
     | 
    
         
            +
                    if (!img.id) {
         
     | 
| 
       46 
38 
     | 
    
         
             
                        const uploadInlineImage = uploadInlineImages.find((imageUpload) => !imageUpload.error && (imageUpload.url === img.src || imageUpload.id === img.id));
         
     | 
| 
       47 
     | 
    
         
            -
                         
     | 
| 
       48 
     | 
    
         
            -
                         
     | 
| 
       49 
     | 
    
         
            -
             
     | 
| 
       50 
     | 
    
         
            -
                            resolve();
         
     | 
| 
       51 
     | 
    
         
            -
                            return;
         
     | 
| 
       52 
     | 
    
         
            -
                        }
         
     | 
| 
       53 
     | 
    
         
            -
                        const imageElement = new Image();
         
     | 
| 
       54 
     | 
    
         
            -
                        imageElement.src = img.src;
         
     | 
| 
       55 
     | 
    
         
            -
                        imageElement.onload = () => {
         
     | 
| 
       56 
     | 
    
         
            -
                            var _a;
         
     | 
| 
       57 
     | 
    
         
            -
                            // imageElement is a copy of original img element, so changes need to be made to the original img element
         
     | 
| 
       58 
     | 
    
         
            -
                            img.id = (_a = uploadInlineImage === null || uploadInlineImage === void 0 ? void 0 : uploadInlineImage.id) !== null && _a !== void 0 ? _a : '';
         
     | 
| 
       59 
     | 
    
         
            -
                            img.src = '';
         
     | 
| 
       60 
     | 
    
         
            -
                            img.width = imageElement.width;
         
     | 
| 
       61 
     | 
    
         
            -
                            img.height = imageElement.height;
         
     | 
| 
       62 
     | 
    
         
            -
                            img.style.aspectRatio = `${imageElement.width} / ${imageElement.height}`;
         
     | 
| 
       63 
     | 
    
         
            -
                            // Clear maxWidth and maxHeight styles so that they can set in the style attribute
         
     | 
| 
       64 
     | 
    
         
            -
                            img.style.maxWidth = '';
         
     | 
| 
       65 
     | 
    
         
            -
                            img.style.maxHeight = '';
         
     | 
| 
       66 
     | 
    
         
            -
                            resolve();
         
     | 
| 
       67 
     | 
    
         
            -
                        };
         
     | 
| 
       68 
     | 
    
         
            -
                        imageElement.onerror = () => {
         
     | 
| 
       69 
     | 
    
         
            -
                            console.log('Error loading image', img.src);
         
     | 
| 
       70 
     | 
    
         
            -
                            rejects();
         
     | 
| 
       71 
     | 
    
         
            -
                        };
         
     | 
| 
       72 
     | 
    
         
            -
                    });
         
     | 
| 
      
 39 
     | 
    
         
            +
                        img.id = (_a = uploadInlineImage === null || uploadInlineImage === void 0 ? void 0 : uploadInlineImage.id) !== null && _a !== void 0 ? _a : '';
         
     | 
| 
      
 40 
     | 
    
         
            +
                        img.src = '';
         
     | 
| 
      
 41 
     | 
    
         
            +
                    }
         
     | 
| 
       73 
42 
     | 
    
         
             
                });
         
     | 
| 
       74 
     | 
    
         
            -
                yield Promise.all(imagesPromise);
         
     | 
| 
       75 
43 
     | 
    
         
             
                const newMessage = document.body.innerHTML;
         
     | 
| 
       76 
44 
     | 
    
         
             
                return newMessage;
         
     | 
| 
       77 
     | 
    
         
            -
            } 
     | 
| 
      
 45 
     | 
    
         
            +
            };
         
     | 
| 
       78 
46 
     | 
    
         
             
            /**
         
     | 
| 
       79 
47 
     | 
    
         
             
             * @private
         
     | 
| 
       80 
48 
     | 
    
         
             
             */
         
     | 
| 
         @@ -115,13 +83,11 @@ hasCompletedAttachmentUploads, hasError, disabled }) => { 
     | 
|
| 
       115 
83 
     | 
    
         
             
            /**
         
     | 
| 
       116 
84 
     | 
    
         
             
             * @internal
         
     | 
| 
       117 
85 
     | 
    
         
             
             */
         
     | 
| 
       118 
     | 
    
         
            -
            export const cancelInlineImageUpload = ( 
     | 
| 
       119 
     | 
    
         
            -
                const { imageSrcArray, imageUploadsInProgress, messageId, editBoxOnCancelInlineImageUpload, sendBoxOnCancelInlineImageUpload } = props;
         
     | 
| 
      
 86 
     | 
    
         
            +
            export const cancelInlineImageUpload = (imageSrcArray, imageUploadsInProgress, onCancelInlineImageUpload) => {
         
     | 
| 
       120 
87 
     | 
    
         
             
                if (imageSrcArray && imageUploadsInProgress && (imageUploadsInProgress === null || imageUploadsInProgress === void 0 ? void 0 : imageUploadsInProgress.length) > 0) {
         
     | 
| 
       121 
88 
     | 
    
         
             
                    imageUploadsInProgress === null || imageUploadsInProgress === void 0 ? void 0 : imageUploadsInProgress.map((uploadImage) => {
         
     | 
| 
       122 
89 
     | 
    
         
             
                        if (uploadImage.url && !(imageSrcArray === null || imageSrcArray === void 0 ? void 0 : imageSrcArray.includes(uploadImage.url))) {
         
     | 
| 
       123 
     | 
    
         
            -
                             
     | 
| 
       124 
     | 
    
         
            -
                            editBoxOnCancelInlineImageUpload && editBoxOnCancelInlineImageUpload(uploadImage.id, messageId || '');
         
     | 
| 
      
 90 
     | 
    
         
            +
                            onCancelInlineImageUpload === null || onCancelInlineImageUpload === void 0 ? void 0 : onCancelInlineImageUpload(uploadImage.id);
         
     | 
| 
       125 
91 
     | 
    
         
             
                        }
         
     | 
| 
       126 
92 
     | 
    
         
             
                    });
         
     | 
| 
       127 
93 
     | 
    
         
             
                }
         
     | 
| 
         @@ -147,30 +113,11 @@ export const toAttachmentMetadata = (attachmentsWithProgress) => { 
     | 
|
| 
       147 
113 
     | 
    
         
             
            /**
         
     | 
| 
       148 
114 
     | 
    
         
             
             * @internal
         
     | 
| 
       149 
115 
     | 
    
         
             
             */
         
     | 
| 
       150 
     | 
    
         
            -
            export const insertImagesToContentString = (content, imageUploadsInProgress 
     | 
| 
      
 116 
     | 
    
         
            +
            export const insertImagesToContentString = (content, imageUploadsInProgress) => {
         
     | 
| 
       151 
117 
     | 
    
         
             
                if (!imageUploadsInProgress || imageUploadsInProgress.length <= 0) {
         
     | 
| 
       152 
     | 
    
         
            -
                     
     | 
| 
      
 118 
     | 
    
         
            +
                    return content;
         
     | 
| 
       153 
119 
     | 
    
         
             
                }
         
     | 
| 
       154 
     | 
    
         
            -
                const newContent =  
     | 
| 
       155 
     | 
    
         
            -
                 
     | 
| 
       156 
     | 
    
         
            -
            });
         
     | 
| 
       157 
     | 
    
         
            -
            /* @conditional-compile-remove(rich-text-editor-image-upload) */
         
     | 
| 
       158 
     | 
    
         
            -
            /**
         
     | 
| 
       159 
     | 
    
         
            -
             * @internal
         
     | 
| 
       160 
     | 
    
         
            -
             */
         
     | 
| 
       161 
     | 
    
         
            -
            export const removeBrokenImageContent = (content) => {
         
     | 
| 
       162 
     | 
    
         
            -
                const document = new DOMParser().parseFromString(content, 'text/html');
         
     | 
| 
       163 
     | 
    
         
            -
                document.querySelectorAll('img').forEach((img) => {
         
     | 
| 
       164 
     | 
    
         
            -
                    // Before submitting/resend the message, we need to trim the unnecessary attributes such as src,
         
     | 
| 
       165 
     | 
    
         
            -
                    // which is set to a local svg of a broken image icon at this point.
         
     | 
| 
       166 
     | 
    
         
            -
                    // Once message is submitted/resent, it will be fetched again and might not be a broken image anymore,
         
     | 
| 
       167 
     | 
    
         
            -
                    // That's why we need to remove the class and data-ui-id attribute of 'broken-image-wrapper'
         
     | 
| 
       168 
     | 
    
         
            -
                    if (img.className === 'broken-image-wrapper') {
         
     | 
| 
       169 
     | 
    
         
            -
                        img.removeAttribute('class');
         
     | 
| 
       170 
     | 
    
         
            -
                        img.removeAttribute('src');
         
     | 
| 
       171 
     | 
    
         
            -
                        img.removeAttribute('data-ui-id');
         
     | 
| 
       172 
     | 
    
         
            -
                    }
         
     | 
| 
       173 
     | 
    
         
            -
                });
         
     | 
| 
       174 
     | 
    
         
            -
                return document.body.innerHTML;
         
     | 
| 
      
 120 
     | 
    
         
            +
                const newContent = addUploadedImagesToMessage(content, imageUploadsInProgress);
         
     | 
| 
      
 121 
     | 
    
         
            +
                return newContent;
         
     | 
| 
       175 
122 
     | 
    
         
             
            };
         
     | 
| 
       176 
123 
     | 
    
         
             
            //# sourceMappingURL=SendBoxUtils.js.map
         
     | 
| 
         @@ -1 +1 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            {"version":3,"file":"SendBoxUtils.js","sourceRoot":"","sources":["../../../../../../../react-components/src/components/utils/SendBoxUtils.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\n/* @conditional-compile-remove(file-sharing-acs) */\nimport { AttachmentMetadataInProgress } from '@internal/acs-ui-common';\n/* @conditional-compile-remove(file-sharing-acs) */\nimport { AttachmentMetadata } from '@internal/acs-ui-common';\n\n/**\n * @private\n */\nexport const MAXIMUM_LENGTH_OF_MESSAGE = 8000;\nconst EMPTY_MESSAGE_REGEX = /^\\s*$/;\n\n/* @conditional-compile-remove(file-sharing-acs) */\n/**\n * @private\n */\nexport const hasIncompleteAttachmentUploads = (\n  attachmentsWithProgress: AttachmentMetadataInProgress[] | undefined\n): boolean => {\n  return !!(\n    attachmentsWithProgress?.length &&\n    !attachmentsWithProgress\n      .filter((attachmentUpload) => !attachmentUpload.error)\n      .every((attachmentUpload) => attachmentUpload.progress === 1 && attachmentUpload.progress !== undefined)\n  );\n};\n\n/* @conditional-compile-remove(file-sharing-acs) */\n/**\n * @private\n */\nexport const isAttachmentUploadCompleted = (\n  attachmentsWithProgress: AttachmentMetadataInProgress[] | undefined\n): boolean => {\n  return !!attachmentsWithProgress?.find((attachment) => !attachment.error);\n};\n\n/* @conditional-compile-remove(rich-text-editor-image-upload) */\n/**\n * @internal\n */\n// Before sending the image, we need to add the image id we get back after uploading the images to the message content.\nexport const addUploadedImagesToMessage = async (\n  message: string,\n  uploadInlineImages: AttachmentMetadataInProgress[]\n): Promise<string> => {\n  if (message === '') {\n    return message;\n  }\n  const document = new DOMParser().parseFromString(message ?? '', 'text/html');\n  const imagesPromise = Array.from(document.querySelectorAll('img')).map((img) => {\n    return new Promise<void>((resolve, rejects) => {\n      const uploadInlineImage = uploadInlineImages.find(\n        (imageUpload) => !imageUpload.error && (imageUpload.url === img.src || imageUpload.id === img.id)\n      );\n      // The message might content images that comes with the message before editing, those images are not in the uploadInlineImages array.\n      // This function should only modify the message content for images in the uploadInlineImages array.\n      if (!uploadInlineImage) {\n        resolve();\n        return;\n      }\n      const imageElement = new Image();\n      imageElement.src = img.src;\n      imageElement.onload = () => {\n        // imageElement is a copy of original img element, so changes need to be made to the original img element\n        img.id = uploadInlineImage?.id ?? '';\n        img.src = '';\n        img.width = imageElement.width;\n        img.height = imageElement.height;\n        img.style.aspectRatio = `${imageElement.width} / ${imageElement.height}`;\n        // Clear maxWidth and maxHeight styles so that they can set in the style attribute\n        img.style.maxWidth = '';\n        img.style.maxHeight = '';\n        resolve();\n      };\n      imageElement.onerror = () => {\n        console.log('Error loading image', img.src);\n        rejects();\n      };\n    });\n  });\n  await Promise.all(imagesPromise);\n  const newMessage = document.body.innerHTML;\n  return newMessage;\n};\n\n/**\n * @private\n */\nexport const isMessageTooLong = (valueLength: number): boolean => {\n  return valueLength > MAXIMUM_LENGTH_OF_MESSAGE;\n};\n\n/**\n * @private\n */\nexport const sanitizeText = (message: string): string => {\n  if (EMPTY_MESSAGE_REGEX.test(message)) {\n    return '';\n  } else {\n    return message;\n  }\n};\n\n/**\n * Determines whether the send box should be disabled for ARIA accessibility.\n *\n * @param hasContent - Indicates whether the send box has content.\n * @param hasCompletedAttachmentUploads - Indicates whether attachment uploads have completed.\n * @param hasError - Indicates whether there is an error.\n * @param disabled - Indicates whether the send box is disabled.\n * @returns A boolean value indicating whether the send box should be disabled for ARIA accessibility.\n */\nexport const isSendBoxButtonAriaDisabled = ({\n  hasContent,\n  /* @conditional-compile-remove(file-sharing-acs) */\n  hasCompletedAttachmentUploads,\n  hasError,\n  disabled\n}: {\n  hasContent: boolean;\n  /* @conditional-compile-remove(file-sharing-acs) */\n  hasCompletedAttachmentUploads: boolean;\n  hasError: boolean;\n  disabled: boolean;\n}): boolean => {\n  return (\n    // no content\n    !(hasContent || /* @conditional-compile-remove(file-sharing-acs) */ hasCompletedAttachmentUploads) ||\n    //error message exists\n    hasError ||\n    disabled\n  );\n};\n\n/* @conditional-compile-remove(rich-text-editor-image-upload) */\ninterface CancelInlineImageUploadProps {\n  imageSrcArray: string[] | undefined;\n  imageUploadsInProgress: AttachmentMetadataInProgress[] | undefined;\n  messageId?: string;\n  editBoxOnCancelInlineImageUpload?: (id: string, messageId: string) => void;\n  sendBoxOnCancelInlineImageUpload?: (id: string) => void;\n}\n\n/* @conditional-compile-remove(rich-text-editor-image-upload) */\n/**\n * @internal\n */\nexport const cancelInlineImageUpload = (props: CancelInlineImageUploadProps): void => {\n  const {\n    imageSrcArray,\n    imageUploadsInProgress,\n    messageId,\n    editBoxOnCancelInlineImageUpload,\n    sendBoxOnCancelInlineImageUpload\n  } = props;\n  if (imageSrcArray && imageUploadsInProgress && imageUploadsInProgress?.length > 0) {\n    imageUploadsInProgress?.map((uploadImage) => {\n      if (uploadImage.url && !imageSrcArray?.includes(uploadImage.url)) {\n        sendBoxOnCancelInlineImageUpload && sendBoxOnCancelInlineImageUpload(uploadImage.id);\n        editBoxOnCancelInlineImageUpload && editBoxOnCancelInlineImageUpload(uploadImage.id, messageId || '');\n      }\n    });\n  }\n};\n\n/* @conditional-compile-remove(file-sharing-acs) */\n/**\n * @internal\n */\nexport const toAttachmentMetadata = (\n  attachmentsWithProgress: AttachmentMetadataInProgress[] | undefined\n): AttachmentMetadata[] | undefined => {\n  return attachmentsWithProgress\n    ?.filter((attachment) => {\n      return !('error' in attachment) && !attachment.error?.message;\n    })\n    .map((attachment) => {\n      return {\n        id: attachment.id,\n        name: attachment.name,\n        url: attachment.url ?? ''\n      };\n    });\n};\n\n/* @conditional-compile-remove(rich-text-editor-image-upload) */\n/**\n * @internal\n */\nexport const insertImagesToContentString = async (\n  content: string,\n  imageUploadsInProgress?: AttachmentMetadataInProgress[],\n  onCompleted?: (content: string) => void\n): Promise<void> => {\n  if (!imageUploadsInProgress || imageUploadsInProgress.length <= 0) {\n    onCompleted?.(content);\n  }\n  const newContent = await addUploadedImagesToMessage(content, imageUploadsInProgress ?? []);\n  onCompleted?.(newContent);\n};\n\n/* @conditional-compile-remove(rich-text-editor-image-upload) */\n/**\n * @internal\n */\nexport const removeBrokenImageContent = (content: string): string => {\n  const document = new DOMParser().parseFromString(content, 'text/html');\n  document.querySelectorAll('img').forEach((img) => {\n    // Before submitting/resend the message, we need to trim the unnecessary attributes such as src,\n    // which is set to a local svg of a broken image icon at this point.\n    // Once message is submitted/resent, it will be fetched again and might not be a broken image anymore,\n    // That's why we need to remove the class and data-ui-id attribute of 'broken-image-wrapper'\n    if (img.className === 'broken-image-wrapper') {\n      img.removeAttribute('class');\n      img.removeAttribute('src');\n      img.removeAttribute('data-ui-id');\n    }\n  });\n  return document.body.innerHTML;\n};\n"]}
         
     | 
| 
      
 1 
     | 
    
         
            +
            {"version":3,"file":"SendBoxUtils.js","sourceRoot":"","sources":["../../../../../../../react-components/src/components/utils/SendBoxUtils.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\n/* @conditional-compile-remove(file-sharing-acs) */\nimport { AttachmentMetadataInProgress } from '@internal/acs-ui-common';\n/* @conditional-compile-remove(file-sharing-acs) */\nimport { AttachmentMetadata } from '@internal/acs-ui-common';\n\n/**\n * @private\n */\nexport const MAXIMUM_LENGTH_OF_MESSAGE = 8000;\nconst EMPTY_MESSAGE_REGEX = /^\\s*$/;\n\n/* @conditional-compile-remove(file-sharing-acs) */\n/**\n * @private\n */\nexport const hasIncompleteAttachmentUploads = (\n  attachmentsWithProgress: AttachmentMetadataInProgress[] | undefined\n): boolean => {\n  return !!(\n    attachmentsWithProgress?.length &&\n    !attachmentsWithProgress\n      .filter((attachmentUpload) => !attachmentUpload.error)\n      .every((attachmentUpload) => attachmentUpload.progress === 1 && attachmentUpload.progress !== undefined)\n  );\n};\n\n/* @conditional-compile-remove(file-sharing-acs) */\n/**\n * @private\n */\nexport const isAttachmentUploadCompleted = (\n  attachmentsWithProgress: AttachmentMetadataInProgress[] | undefined\n): boolean => {\n  return !!attachmentsWithProgress?.find((attachment) => !attachment.error);\n};\n\n/* @conditional-compile-remove(rich-text-editor-image-upload) */\n/**\n * @internal\n */\n// Before sending the image, we need to add the image id we get back after uploading the images to the message content.\nexport const addUploadedImagesToMessage = (\n  message: string,\n  uploadInlineImages: AttachmentMetadataInProgress[]\n): string => {\n  if (message === '') {\n    return message;\n  }\n  const document = new DOMParser().parseFromString(message ?? '', 'text/html');\n  document.querySelectorAll('img').forEach((img) => {\n    if (!img.id) {\n      const uploadInlineImage = uploadInlineImages.find(\n        (imageUpload) => !imageUpload.error && (imageUpload.url === img.src || imageUpload.id === img.id)\n      );\n      img.id = uploadInlineImage?.id ?? '';\n      img.src = '';\n    }\n  });\n  const newMessage = document.body.innerHTML;\n  return newMessage;\n};\n\n/**\n * @private\n */\nexport const isMessageTooLong = (valueLength: number): boolean => {\n  return valueLength > MAXIMUM_LENGTH_OF_MESSAGE;\n};\n\n/**\n * @private\n */\nexport const sanitizeText = (message: string): string => {\n  if (EMPTY_MESSAGE_REGEX.test(message)) {\n    return '';\n  } else {\n    return message;\n  }\n};\n\n/**\n * Determines whether the send box should be disabled for ARIA accessibility.\n *\n * @param hasContent - Indicates whether the send box has content.\n * @param hasCompletedAttachmentUploads - Indicates whether attachment uploads have completed.\n * @param hasError - Indicates whether there is an error.\n * @param disabled - Indicates whether the send box is disabled.\n * @returns A boolean value indicating whether the send box should be disabled for ARIA accessibility.\n */\nexport const isSendBoxButtonAriaDisabled = ({\n  hasContent,\n  /* @conditional-compile-remove(file-sharing-acs) */\n  hasCompletedAttachmentUploads,\n  hasError,\n  disabled\n}: {\n  hasContent: boolean;\n  /* @conditional-compile-remove(file-sharing-acs) */\n  hasCompletedAttachmentUploads: boolean;\n  hasError: boolean;\n  disabled: boolean;\n}): boolean => {\n  return (\n    // no content\n    !(hasContent || /* @conditional-compile-remove(file-sharing-acs) */ hasCompletedAttachmentUploads) ||\n    //error message exists\n    hasError ||\n    disabled\n  );\n};\n\n/* @conditional-compile-remove(rich-text-editor-image-upload) */\n/**\n * @internal\n */\nexport const cancelInlineImageUpload = (\n  imageSrcArray: string[] | undefined,\n  imageUploadsInProgress: AttachmentMetadataInProgress[] | undefined,\n  onCancelInlineImageUpload?: (id: string) => void\n): void => {\n  if (imageSrcArray && imageUploadsInProgress && imageUploadsInProgress?.length > 0) {\n    imageUploadsInProgress?.map((uploadImage) => {\n      if (uploadImage.url && !imageSrcArray?.includes(uploadImage.url)) {\n        onCancelInlineImageUpload?.(uploadImage.id);\n      }\n    });\n  }\n};\n\n/* @conditional-compile-remove(file-sharing-acs) */\n/**\n * @internal\n */\nexport const toAttachmentMetadata = (\n  attachmentsWithProgress: AttachmentMetadataInProgress[] | undefined\n): AttachmentMetadata[] | undefined => {\n  return attachmentsWithProgress\n    ?.filter((attachment) => {\n      return !('error' in attachment) && !attachment.error?.message;\n    })\n    .map((attachment) => {\n      return {\n        id: attachment.id,\n        name: attachment.name,\n        url: attachment.url ?? ''\n      };\n    });\n};\n\n/* @conditional-compile-remove(rich-text-editor-image-upload) */\n/**\n * @internal\n */\nexport const insertImagesToContentString = (\n  content: string,\n  imageUploadsInProgress?: AttachmentMetadataInProgress[]\n): string => {\n  if (!imageUploadsInProgress || imageUploadsInProgress.length <= 0) {\n    return content;\n  }\n  const newContent = addUploadedImagesToMessage(content, imageUploadsInProgress);\n  return newContent;\n};\n"]}
         
     | 
| 
         @@ -126,7 +126,7 @@ export interface ComponentStrings { 
     | 
|
| 
       126 
126 
     | 
    
         
             
                /** Strings for the participant list component */
         
     | 
| 
       127 
127 
     | 
    
         
             
                ParticipantList: ParticipantListStrings;
         
     | 
| 
       128 
128 
     | 
    
         
             
                /** Strings for the MeetingConferencePhoneInfoModal */
         
     | 
| 
       129 
     | 
    
         
            -
                 
     | 
| 
      
 129 
     | 
    
         
            +
                MeetingConferencePhoneInfo: MeetingConferencePhoneInfoModalStrings;
         
     | 
| 
       130 
130 
     | 
    
         
             
                IncomingCallNotification: IncomingCallNotificationStrings;
         
     | 
| 
       131 
131 
     | 
    
         
             
            }
         
     | 
| 
       132 
132 
     | 
    
         
             
            /**
         
     | 
| 
         @@ -1 +1 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            {"version":3,"file":"LocalizationProvider.js","sourceRoot":"","sources":["../../../../../../react-components/src/localization/LocalizationProvider.tsx"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAElC,OAAO,KAAK,EAAE,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAgCzD,OAAO,EAAE,sBAAsB,EAAE,MAAM,WAAW,CAAC;AA6JnD;;;;GAIG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,aAAa,CAAkB,sBAAsB,CAAC,CAAC;AAcpF;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,KAAgC,EAAe,EAAE;IACpF,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,KAAK,CAAC;IACnC,OAAO,oBAAC,aAAa,CAAC,QAAQ,IAAC,KAAK,EAAE,MAAM,IAAG,QAAQ,CAA0B,CAAC;AACpF,CAAC,CAAC;AAEF,kCAAkC;AAClC,MAAM,CAAC,MAAM,SAAS,GAAG,GAAoB,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport React, { createContext, useContext } from 'react';\nimport {\n  CameraButtonStrings,\n  EndCallButtonStrings,\n  ErrorBarStrings,\n  MessageStatusIndicatorStrings,\n  MessageThreadStrings,\n  MicrophoneButtonStrings,\n  DevicesButtonStrings,\n  ParticipantsButtonStrings,\n  ParticipantItemStrings,\n  ScreenShareButtonStrings,\n  SendBoxStrings,\n  TypingIndicatorStrings,\n  VideoGalleryStrings\n} from '../components';\n/* @conditional-compile-remove(notifications) */\nimport { NotificationStackStrings } from '../components';\n\nimport { RaiseHandButtonStrings } from '../components';\n/* @conditional-compile-remove(PSTN-calls) */ /* @conditional-compile-remove(one-to-n-calling) */\nimport { HoldButtonStrings } from '../components';\nimport { DialpadStrings } from '../components';\n/* @conditional-compile-remove(call-readiness) */\nimport { SitePermissionsStrings } from '../components/DevicePermissions/SitePermissionsScaffolding';\n/* @conditional-compile-remove(call-readiness) */\nimport { BrowserPermissionDeniedStrings } from '../components/DevicePermissions/BrowserPermissionDenied';\n/* @conditional-compile-remove(call-readiness) */\nimport { BrowserPermissionDeniedIOSStrings } from '../components/DevicePermissions/BrowserPermissionDeniedIOS';\n/* @conditional-compile-remove(call-readiness) */ /* @conditional-compile-remove(unsupported-browser) */\nimport { UnsupportedBrowserStrings } from '../components/UnsupportedBrowser';\nimport { VideoTileStrings } from '../components/VideoTile';\nimport { COMPONENT_LOCALE_EN_US } from './locales';\n/* @conditional-compile-remove(unsupported-browser) */\nimport { UnsupportedBrowserVersionStrings } from '../components/UnsupportedBrowserVersion';\n/* @conditional-compile-remove(unsupported-browser) */\nimport { UnsupportedOperatingSystemStrings } from '../components/UnsupportedOperatingSystem';\nimport { VerticalGalleryStrings } from '../components/VerticalGallery';\n/* @conditional-compile-remove(total-participant-count) */\nimport { ParticipantListStrings } from '../components/ParticipantList';\n/* @conditional-compile-remove(mention) */\nimport { MentionPopoverStrings } from '../components/MentionPopover';\nimport { ImageOverlayStrings } from '../components/ImageOverlay';\nimport { ReactionButtonStrings } from '../components';\n/* @conditional-compile-remove(rich-text-editor) */\nimport { RichTextSendBoxStrings } from '../components/RichTextEditor/RichTextSendBox';\n/* @conditional-compile-remove(teams-meeting-conference) */\nimport { MeetingConferencePhoneInfoModalStrings } from '../components/MeetingConferencePhoneInfo';\n/* @conditional-compile-remove(one-to-n-calling) */\nimport { IncomingCallNotificationStrings } from '../components/IncomingCallNotification';\n\n/**\n * Locale information for all components exported from this library.\n *\n * @public\n */\nexport interface ComponentLocale {\n  /** Strings for components */\n  strings: ComponentStrings;\n  /* @conditional-compile-remove(date-time-customization) */\n  /**\n   * Optional function to provide customized date format.\n   * @beta\n   */\n  onDisplayDateTimeString?: (messageDate: Date) => string;\n}\n\n/**\n * Strings used by all components exported from this library.\n *\n * @public\n */\nexport interface ComponentStrings {\n  /** Strings for MessageThread */\n  messageThread: MessageThreadStrings;\n  /** Strings for ParticipantItem */\n  participantItem: ParticipantItemStrings;\n  /** Strings for CameraButton */\n  cameraButton: CameraButtonStrings;\n  /** Strings for MicrophoneButton */\n  microphoneButton: MicrophoneButtonStrings;\n  /** Strings for EndCallButton */\n  endCallButton: EndCallButtonStrings;\n  /** Strings for DevicesButton */\n  devicesButton: DevicesButtonStrings;\n  /** Strings for ParticipantsButton */\n  participantsButton: ParticipantsButtonStrings;\n  /** Strings for ScreenShareButton */\n  screenShareButton: ScreenShareButtonStrings;\n  /** Strings for RaiseHandButton */\n  raiseHandButton: RaiseHandButtonStrings;\n  /**\n   * Strings for ReactionButton\n   * */\n  reactionButton: ReactionButtonStrings;\n  /** Strings for TypingIndicator */\n  typingIndicator: TypingIndicatorStrings;\n  /** Strings for SendBox */\n  sendBox: SendBoxStrings;\n  /* @conditional-compile-remove(rich-text-editor) */\n  /** Strings for RichTextSendBox */\n  richTextSendBox: RichTextSendBoxStrings;\n  /* @conditional-compile-remove(mention) */\n  /** Strings for MentionPopover */\n  mentionPopover: MentionPopoverStrings;\n  /** Strings for ImageOverlay */\n  imageOverlay: ImageOverlayStrings;\n  /** Strings for MessageStatusIndicator */\n  messageStatusIndicator: MessageStatusIndicatorStrings;\n  /** Strings for ErrorBar */\n  errorBar: ErrorBarStrings;\n  /* @conditional-compile-remove(notifications) */\n  /** Strings for NotificationStack */\n  notificationStack: NotificationStackStrings;\n  /** Strings for VideoGallery */\n  videoGallery: VideoGalleryStrings;\n  /** Strings for Dialpad */\n  dialpad: DialpadStrings;\n  /** Strings for VideoTile */\n  videoTile: VideoTileStrings;\n  /* @conditional-compile-remove(one-to-n-calling) @conditional-compile-remove(PSTN-calls) */\n  /** Strings for HoldButton */\n  holdButton: HoldButtonStrings;\n  /* @conditional-compile-remove(call-readiness) */\n  /** Strings for a site's permission request prompt */\n  CameraAndMicrophoneSitePermissionsRequest: SitePermissionsStrings;\n  /* @conditional-compile-remove(call-readiness) */\n  /** Strings for a site's permission request prompt */\n  CameraSitePermissionsRequest: SitePermissionsStrings;\n  /* @conditional-compile-remove(call-readiness) */\n  /** Strings for a site's permission request prompt */\n  MicrophoneSitePermissionsRequest: SitePermissionsStrings;\n  /* @conditional-compile-remove(call-readiness) */\n  /** Strings for a site's permission generic checking prompt */\n  CameraAndMicrophoneSitePermissionsCheck: SitePermissionsStrings;\n  /* @conditional-compile-remove(call-readiness) */\n  /** Strings for a site's permission generic checking prompt */\n  CameraSitePermissionsCheck: SitePermissionsStrings;\n  /* @conditional-compile-remove(call-readiness) */\n  /** Strings for a site's permission generic checking prompt */\n  MicrophoneSitePermissionsCheck: SitePermissionsStrings;\n  /* @conditional-compile-remove(call-readiness) */\n  /** Strings for a site's permission denied prompt */\n  CameraAndMicrophoneSitePermissionsDenied: SitePermissionsStrings;\n  /* @conditional-compile-remove(call-readiness) */\n  /** Strings for a site's permission denied prompt for safari browsers*/\n  CameraAndMicrophoneSitePermissionsDeniedSafari: SitePermissionsStrings;\n  /* @conditional-compile-remove(call-readiness) */\n  /** Strings for a site's permission denied prompt */\n  CameraSitePermissionsDenied: SitePermissionsStrings;\n  /* @conditional-compile-remove(call-readiness) */\n  /** Strings for a site's permission denied prompt */\n  MicrophoneSitePermissionsDenied: SitePermissionsStrings;\n  /* @conditional-compile-remove(call-readiness) */\n  /** Strings for a site's permission denied prompt for safari browsers*/\n  CameraSitePermissionsDeniedSafari: SitePermissionsStrings;\n  /* @conditional-compile-remove(call-readiness) */\n  /** Strings for a site's permission denied prompt for safari browsers*/\n  MicrophoneSitePermissionsDeniedSafari: SitePermissionsStrings;\n  /* @conditional-compile-remove(unsupported-browser) */\n  /** Strings for unsupported browser UI */\n  UnsupportedBrowser: UnsupportedBrowserStrings;\n  /* @conditional-compile-remove(unsupported-browser) */\n  /** Strings for unsupported browser version UI */\n  UnsupportedBrowserVersion: UnsupportedBrowserVersionStrings;\n  /* @conditional-compile-remove(unsupported-browser) */\n  /** Strings for unsupported browser version UI */\n  UnsupportedOperatingSystem: UnsupportedOperatingSystemStrings;\n  /* @conditional-compile-remove(call-readiness) */\n  /** Strings for BrowserPemissionDenied */\n  BrowserPermissionDenied: BrowserPermissionDeniedStrings;\n  /* @conditional-compile-remove(call-readiness) */\n  /** Strings for BrowserPemissionDeniedIOS */\n  BrowserPermissionDeniedIOS: BrowserPermissionDeniedIOSStrings;\n\n  /**\n   * Strings for the VerticalGallery.\n   */\n  verticalGallery: VerticalGalleryStrings;\n  /* @conditional-compile-remove(total-participant-count) */\n  /** Strings for the participant list component */\n  ParticipantList: ParticipantListStrings;\n  /* @conditional-compile-remove(teams-meeting-conference) */\n  /** Strings for the MeetingConferencePhoneInfoModal */\n  meetingConferencePhoneInfo: MeetingConferencePhoneInfoModalStrings;\n  /* @conditional-compile-remove(one-to-n-calling) */\n  IncomingCallNotification: IncomingCallNotificationStrings;\n}\n\n/**\n * Context for providing localized strings to components exported from this library.\n *\n * @public\n */\nexport const LocaleContext = createContext<ComponentLocale>(COMPONENT_LOCALE_EN_US);\n\n/**\n * Props for {@link LocalizationProvider}.\n *\n * @public\n */\nexport type LocalizationProviderProps = {\n  /** Locale context to provide components */\n  locale: ComponentLocale;\n  /** Children to provide locale context. */\n  children: React.ReactNode;\n};\n\n/**\n * Provider to provide localized strings for this library's react components.\n *\n * @remarks Components will be provided localized strings in English (US) by default if this\n * provider is not used.\n *\n * @public\n */\nexport const LocalizationProvider = (props: LocalizationProviderProps): JSX.Element => {\n  const { locale, children } = props;\n  return <LocaleContext.Provider value={locale}>{children}</LocaleContext.Provider>;\n};\n\n/** React hook to access locale */\nexport const useLocale = (): ComponentLocale => useContext(LocaleContext);\n"]}
         
     | 
| 
      
 1 
     | 
    
         
            +
            {"version":3,"file":"LocalizationProvider.js","sourceRoot":"","sources":["../../../../../../react-components/src/localization/LocalizationProvider.tsx"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAElC,OAAO,KAAK,EAAE,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAgCzD,OAAO,EAAE,sBAAsB,EAAE,MAAM,WAAW,CAAC;AA6JnD;;;;GAIG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,aAAa,CAAkB,sBAAsB,CAAC,CAAC;AAcpF;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,KAAgC,EAAe,EAAE;IACpF,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,KAAK,CAAC;IACnC,OAAO,oBAAC,aAAa,CAAC,QAAQ,IAAC,KAAK,EAAE,MAAM,IAAG,QAAQ,CAA0B,CAAC;AACpF,CAAC,CAAC;AAEF,kCAAkC;AAClC,MAAM,CAAC,MAAM,SAAS,GAAG,GAAoB,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport React, { createContext, useContext } from 'react';\nimport {\n  CameraButtonStrings,\n  EndCallButtonStrings,\n  ErrorBarStrings,\n  MessageStatusIndicatorStrings,\n  MessageThreadStrings,\n  MicrophoneButtonStrings,\n  DevicesButtonStrings,\n  ParticipantsButtonStrings,\n  ParticipantItemStrings,\n  ScreenShareButtonStrings,\n  SendBoxStrings,\n  TypingIndicatorStrings,\n  VideoGalleryStrings\n} from '../components';\n/* @conditional-compile-remove(notifications) */\nimport { NotificationStackStrings } from '../components';\n\nimport { RaiseHandButtonStrings } from '../components';\n/* @conditional-compile-remove(PSTN-calls) */ /* @conditional-compile-remove(one-to-n-calling) */\nimport { HoldButtonStrings } from '../components';\nimport { DialpadStrings } from '../components';\n/* @conditional-compile-remove(call-readiness) */\nimport { SitePermissionsStrings } from '../components/DevicePermissions/SitePermissionsScaffolding';\n/* @conditional-compile-remove(call-readiness) */\nimport { BrowserPermissionDeniedStrings } from '../components/DevicePermissions/BrowserPermissionDenied';\n/* @conditional-compile-remove(call-readiness) */\nimport { BrowserPermissionDeniedIOSStrings } from '../components/DevicePermissions/BrowserPermissionDeniedIOS';\n/* @conditional-compile-remove(call-readiness) */ /* @conditional-compile-remove(unsupported-browser) */\nimport { UnsupportedBrowserStrings } from '../components/UnsupportedBrowser';\nimport { VideoTileStrings } from '../components/VideoTile';\nimport { COMPONENT_LOCALE_EN_US } from './locales';\n/* @conditional-compile-remove(unsupported-browser) */\nimport { UnsupportedBrowserVersionStrings } from '../components/UnsupportedBrowserVersion';\n/* @conditional-compile-remove(unsupported-browser) */\nimport { UnsupportedOperatingSystemStrings } from '../components/UnsupportedOperatingSystem';\nimport { VerticalGalleryStrings } from '../components/VerticalGallery';\n/* @conditional-compile-remove(total-participant-count) */\nimport { ParticipantListStrings } from '../components/ParticipantList';\n/* @conditional-compile-remove(mention) */\nimport { MentionPopoverStrings } from '../components/MentionPopover';\nimport { ImageOverlayStrings } from '../components/ImageOverlay';\nimport { ReactionButtonStrings } from '../components';\n/* @conditional-compile-remove(rich-text-editor) */\nimport { RichTextSendBoxStrings } from '../components/RichTextEditor/RichTextSendBox';\n/* @conditional-compile-remove(teams-meeting-conference) */\nimport { MeetingConferencePhoneInfoModalStrings } from '../components/MeetingConferencePhoneInfo';\n/* @conditional-compile-remove(one-to-n-calling) */\nimport { IncomingCallNotificationStrings } from '../components/IncomingCallNotification';\n\n/**\n * Locale information for all components exported from this library.\n *\n * @public\n */\nexport interface ComponentLocale {\n  /** Strings for components */\n  strings: ComponentStrings;\n  /* @conditional-compile-remove(date-time-customization) */\n  /**\n   * Optional function to provide customized date format.\n   * @beta\n   */\n  onDisplayDateTimeString?: (messageDate: Date) => string;\n}\n\n/**\n * Strings used by all components exported from this library.\n *\n * @public\n */\nexport interface ComponentStrings {\n  /** Strings for MessageThread */\n  messageThread: MessageThreadStrings;\n  /** Strings for ParticipantItem */\n  participantItem: ParticipantItemStrings;\n  /** Strings for CameraButton */\n  cameraButton: CameraButtonStrings;\n  /** Strings for MicrophoneButton */\n  microphoneButton: MicrophoneButtonStrings;\n  /** Strings for EndCallButton */\n  endCallButton: EndCallButtonStrings;\n  /** Strings for DevicesButton */\n  devicesButton: DevicesButtonStrings;\n  /** Strings for ParticipantsButton */\n  participantsButton: ParticipantsButtonStrings;\n  /** Strings for ScreenShareButton */\n  screenShareButton: ScreenShareButtonStrings;\n  /** Strings for RaiseHandButton */\n  raiseHandButton: RaiseHandButtonStrings;\n  /**\n   * Strings for ReactionButton\n   * */\n  reactionButton: ReactionButtonStrings;\n  /** Strings for TypingIndicator */\n  typingIndicator: TypingIndicatorStrings;\n  /** Strings for SendBox */\n  sendBox: SendBoxStrings;\n  /* @conditional-compile-remove(rich-text-editor) */\n  /** Strings for RichTextSendBox */\n  richTextSendBox: RichTextSendBoxStrings;\n  /* @conditional-compile-remove(mention) */\n  /** Strings for MentionPopover */\n  mentionPopover: MentionPopoverStrings;\n  /** Strings for ImageOverlay */\n  imageOverlay: ImageOverlayStrings;\n  /** Strings for MessageStatusIndicator */\n  messageStatusIndicator: MessageStatusIndicatorStrings;\n  /** Strings for ErrorBar */\n  errorBar: ErrorBarStrings;\n  /* @conditional-compile-remove(notifications) */\n  /** Strings for NotificationStack */\n  notificationStack: NotificationStackStrings;\n  /** Strings for VideoGallery */\n  videoGallery: VideoGalleryStrings;\n  /** Strings for Dialpad */\n  dialpad: DialpadStrings;\n  /** Strings for VideoTile */\n  videoTile: VideoTileStrings;\n  /* @conditional-compile-remove(one-to-n-calling) @conditional-compile-remove(PSTN-calls) */\n  /** Strings for HoldButton */\n  holdButton: HoldButtonStrings;\n  /* @conditional-compile-remove(call-readiness) */\n  /** Strings for a site's permission request prompt */\n  CameraAndMicrophoneSitePermissionsRequest: SitePermissionsStrings;\n  /* @conditional-compile-remove(call-readiness) */\n  /** Strings for a site's permission request prompt */\n  CameraSitePermissionsRequest: SitePermissionsStrings;\n  /* @conditional-compile-remove(call-readiness) */\n  /** Strings for a site's permission request prompt */\n  MicrophoneSitePermissionsRequest: SitePermissionsStrings;\n  /* @conditional-compile-remove(call-readiness) */\n  /** Strings for a site's permission generic checking prompt */\n  CameraAndMicrophoneSitePermissionsCheck: SitePermissionsStrings;\n  /* @conditional-compile-remove(call-readiness) */\n  /** Strings for a site's permission generic checking prompt */\n  CameraSitePermissionsCheck: SitePermissionsStrings;\n  /* @conditional-compile-remove(call-readiness) */\n  /** Strings for a site's permission generic checking prompt */\n  MicrophoneSitePermissionsCheck: SitePermissionsStrings;\n  /* @conditional-compile-remove(call-readiness) */\n  /** Strings for a site's permission denied prompt */\n  CameraAndMicrophoneSitePermissionsDenied: SitePermissionsStrings;\n  /* @conditional-compile-remove(call-readiness) */\n  /** Strings for a site's permission denied prompt for safari browsers*/\n  CameraAndMicrophoneSitePermissionsDeniedSafari: SitePermissionsStrings;\n  /* @conditional-compile-remove(call-readiness) */\n  /** Strings for a site's permission denied prompt */\n  CameraSitePermissionsDenied: SitePermissionsStrings;\n  /* @conditional-compile-remove(call-readiness) */\n  /** Strings for a site's permission denied prompt */\n  MicrophoneSitePermissionsDenied: SitePermissionsStrings;\n  /* @conditional-compile-remove(call-readiness) */\n  /** Strings for a site's permission denied prompt for safari browsers*/\n  CameraSitePermissionsDeniedSafari: SitePermissionsStrings;\n  /* @conditional-compile-remove(call-readiness) */\n  /** Strings for a site's permission denied prompt for safari browsers*/\n  MicrophoneSitePermissionsDeniedSafari: SitePermissionsStrings;\n  /* @conditional-compile-remove(unsupported-browser) */\n  /** Strings for unsupported browser UI */\n  UnsupportedBrowser: UnsupportedBrowserStrings;\n  /* @conditional-compile-remove(unsupported-browser) */\n  /** Strings for unsupported browser version UI */\n  UnsupportedBrowserVersion: UnsupportedBrowserVersionStrings;\n  /* @conditional-compile-remove(unsupported-browser) */\n  /** Strings for unsupported browser version UI */\n  UnsupportedOperatingSystem: UnsupportedOperatingSystemStrings;\n  /* @conditional-compile-remove(call-readiness) */\n  /** Strings for BrowserPemissionDenied */\n  BrowserPermissionDenied: BrowserPermissionDeniedStrings;\n  /* @conditional-compile-remove(call-readiness) */\n  /** Strings for BrowserPemissionDeniedIOS */\n  BrowserPermissionDeniedIOS: BrowserPermissionDeniedIOSStrings;\n\n  /**\n   * Strings for the VerticalGallery.\n   */\n  verticalGallery: VerticalGalleryStrings;\n  /* @conditional-compile-remove(total-participant-count) */\n  /** Strings for the participant list component */\n  ParticipantList: ParticipantListStrings;\n  /* @conditional-compile-remove(teams-meeting-conference) */\n  /** Strings for the MeetingConferencePhoneInfoModal */\n  MeetingConferencePhoneInfo: MeetingConferencePhoneInfoModalStrings;\n  /* @conditional-compile-remove(one-to-n-calling) */\n  IncomingCallNotification: IncomingCallNotificationStrings;\n}\n\n/**\n * Context for providing localized strings to components exported from this library.\n *\n * @public\n */\nexport const LocaleContext = createContext<ComponentLocale>(COMPONENT_LOCALE_EN_US);\n\n/**\n * Props for {@link LocalizationProvider}.\n *\n * @public\n */\nexport type LocalizationProviderProps = {\n  /** Locale context to provide components */\n  locale: ComponentLocale;\n  /** Children to provide locale context. */\n  children: React.ReactNode;\n};\n\n/**\n * Provider to provide localized strings for this library's react components.\n *\n * @remarks Components will be provided localized strings in English (US) by default if this\n * provider is not used.\n *\n * @public\n */\nexport const LocalizationProvider = (props: LocalizationProviderProps): JSX.Element => {\n  const { locale, children } = props;\n  return <LocaleContext.Provider value={locale}>{children}</LocaleContext.Provider>;\n};\n\n/** React hook to access locale */\nexport const useLocale = (): ComponentLocale => useContext(LocaleContext);\n"]}
         
     | 
| 
         @@ -185,8 +185,8 @@ 
     | 
|
| 
       185 
185 
     | 
    
         
             
                    "failToSendTag": "فشل الإرسال",
         
     | 
| 
       186 
186 
     | 
    
         
             
                    "editedTag": "تم التحرير",
         
     | 
| 
       187 
187 
     | 
    
         
             
                    "liveAuthorIntro": "قال {author}",
         
     | 
| 
       188 
     | 
    
         
            -
                    "messageContentAriaText": "{ 
     | 
| 
       189 
     | 
    
         
            -
                    "messageContentMineAriaText": " 
     | 
| 
      
 188 
     | 
    
         
            +
                    "messageContentAriaText": "{author} قال {message}",
         
     | 
| 
      
 189 
     | 
    
         
            +
                    "messageContentMineAriaText": "لقد قلت {message}",
         
     | 
| 
       190 
190 
     | 
    
         
             
                    "editBoxTextLimit": "تجاوزت رسالتك الحد الأقصى لعدد الأحرف {limitNumber}",
         
     | 
| 
       191 
191 
     | 
    
         
             
                    "editBoxPlaceholderText": "تحرير رسالتك",
         
     | 
| 
       192 
192 
     | 
    
         
             
                    "newMessagesIndicator": "رسائل جديدة",
         
     | 
| 
         @@ -220,8 +220,7 @@ 
     | 
|
| 
       220 
220 
     | 
    
         
             
                    "richTextDeleteColumnMenu": "حذف العمود",
         
     | 
| 
       221 
221 
     | 
    
         
             
                    "richTextDeleteRowMenu": "حذف الصف",
         
     | 
| 
       222 
222 
     | 
    
         
             
                    "richTextDeleteTableMenu": "حذف الجدول",
         
     | 
| 
       223 
     | 
    
         
            -
                    "richTextToolbarMoreButtonAriaLabel": "خيارات إضافية" 
     | 
| 
       224 
     | 
    
         
            -
                    "attachmentUploadsPendingError": "يتم الآن التحميل... الرجاء الانتظار."
         
     | 
| 
      
 223 
     | 
    
         
            +
                    "richTextToolbarMoreButtonAriaLabel": "خيارات إضافية"
         
     | 
| 
       225 
224 
     | 
    
         
             
                },
         
     | 
| 
       226 
225 
     | 
    
         
             
                "errorBar": {
         
     | 
| 
       227 
226 
     | 
    
         
             
                    "unableToReachChatService": "أنت غير متصل",
         
     | 
| 
         @@ -238,7 +237,6 @@ 
     | 
|
| 
       238 
237 
     | 
    
         
             
                    "startScreenShareGeneric": "حدثت مشكلة أثناء بدء مشاركة الشاشة.",
         
     | 
| 
       239 
238 
     | 
    
         
             
                    "stopScreenShareGeneric": "فشل إيقاف مشاركة الشاشة",
         
     | 
| 
       240 
239 
     | 
    
         
             
                    "callNetworkQualityLow": "جودة الشبكة مقبولة.",
         
     | 
| 
       241 
     | 
    
         
            -
                    "teamsMeetingCallNetworkQualityLow": "جودة الشبكة منخفضة.",
         
     | 
| 
       242 
240 
     | 
    
         
             
                    "callNoSpeakerFound": "لم يتم العثور على سماعات أو سماعات رأس. قم بتوصيل جهاز صوت لسماع المكالمة.",
         
     | 
| 
       243 
241 
     | 
    
         
             
                    "callNoMicrophoneFound": "لم يتم العثور على ميكروفونات. قم بتوصيل جهاز إدخال صوت.",
         
     | 
| 
       244 
242 
     | 
    
         
             
                    "callMicrophoneAccessDenied": "يتعذر الوصول إلى الميكروفون. انقر فوق التأمين في شريط العناوين لمنح الإذن لصفحة ويب هذه.",
         
     | 
| 
         @@ -259,189 +257,160 @@ 
     | 
|
| 
       259 
257 
     | 
    
         
             
                    "failedToJoinCallInvalidMeetingLink": "تعذر الانضمام إلى الاجتماع. ارتباط غير صالح.",
         
     | 
| 
       260 
258 
     | 
    
         
             
                    "cameraFrozenForRemoteParticipants": "يواجه المستخدمون في المكالمة مشكلات في رؤية الفيديو الخاص بك. الرجاء التحقق من أجهزتك وشبكتك.",
         
     | 
| 
       261 
259 
     | 
    
         
             
                    "unableToStartVideoEffect": "يتعذر تطبيق تأثير الفيديو.",
         
     | 
| 
       262 
     | 
    
         
            -
                    "startSpotlightWhileMaxParticipantsAreSpotlighted": "لا يمكن بدء تسليط الضوء على المشاركين (المشاركين) لأنه تم بالفعل تسليط الضوء على الحد الأقصى لعدد المشاركين." 
     | 
| 
       263 
     | 
    
         
            -
                    "mutedByRemoteParticipant": "تم كتم صوتك من قبل مشارك آخر."
         
     | 
| 
      
 260 
     | 
    
         
            +
                    "startSpotlightWhileMaxParticipantsAreSpotlighted": "لا يمكن بدء تسليط الضوء على المشاركين (المشاركين) لأنه تم بالفعل تسليط الضوء على الحد الأقصى لعدد المشاركين."
         
     | 
| 
       264 
261 
     | 
    
         
             
                },
         
     | 
| 
       265 
     | 
    
         
            -
                " 
     | 
| 
      
 262 
     | 
    
         
            +
                "notifications": {
         
     | 
| 
      
 263 
     | 
    
         
            +
                    "unableToReachChatService": {
         
     | 
| 
      
 264 
     | 
    
         
            +
                        "title": "أنت غير متصل.",
         
     | 
| 
      
 265 
     | 
    
         
            +
                        "closeButtonAriaLabel": "إغلاق"
         
     | 
| 
      
 266 
     | 
    
         
            +
                    },
         
     | 
| 
      
 267 
     | 
    
         
            +
                    "accessDenied": {
         
     | 
| 
      
 268 
     | 
    
         
            +
                        "title": "غير قادر على الوصول إلى خدمات الدردشة",
         
     | 
| 
      
 269 
     | 
    
         
            +
                        "message": "الرجاء التحقق من بيانات اعتماد المستخدم المقدمة",
         
     | 
| 
      
 270 
     | 
    
         
            +
                        "closeButtonAriaLabel": "إغلاق"
         
     | 
| 
      
 271 
     | 
    
         
            +
                    },
         
     | 
| 
      
 272 
     | 
    
         
            +
                    "userNotInChatThread": {
         
     | 
| 
      
 273 
     | 
    
         
            +
                        "title": "لم تعد في مؤشر ترابط الدردشة هذا.",
         
     | 
| 
      
 274 
     | 
    
         
            +
                        "closeButtonAriaLabel": "إغلاق"
         
     | 
| 
      
 275 
     | 
    
         
            +
                    },
         
     | 
| 
      
 276 
     | 
    
         
            +
                    "sendMessageNotInChatThread": {
         
     | 
| 
      
 277 
     | 
    
         
            +
                        "title": "فشل إرسال الرسالة",
         
     | 
| 
      
 278 
     | 
    
         
            +
                        "message": "لم تعد مضمناً في هذا ترابط الدردشة هذا",
         
     | 
| 
      
 279 
     | 
    
         
            +
                        "closeButtonAriaLabel": "إغلاق"
         
     | 
| 
      
 280 
     | 
    
         
            +
                    },
         
     | 
| 
      
 281 
     | 
    
         
            +
                    "sendMessageGeneric": {
         
     | 
| 
      
 282 
     | 
    
         
            +
                        "title": "فشل إرسال الرسالة.",
         
     | 
| 
      
 283 
     | 
    
         
            +
                        "closeButtonAriaLabel": "إغلاق"
         
     | 
| 
      
 284 
     | 
    
         
            +
                    },
         
     | 
| 
       266 
285 
     | 
    
         
             
                    "callingNetworkFailure": {
         
     | 
| 
       267 
286 
     | 
    
         
             
                        "title": "مكالمة مزعجة",
         
     | 
| 
       268 
287 
     | 
    
         
             
                        "message": "يبدو أنك غير متصل. الرجاء التحقق من اتصال الشبكة والمحاولة مرة أخرى.",
         
     | 
| 
       269 
     | 
    
         
            -
                        " 
     | 
| 
      
 288 
     | 
    
         
            +
                        "closeButtonAriaLabel": "إغلاق"
         
     | 
| 
       270 
289 
     | 
    
         
             
                    },
         
     | 
| 
       271 
290 
     | 
    
         
             
                    "startVideoGeneric": {
         
     | 
| 
       272 
291 
     | 
    
         
             
                        "title": "فشل بدء الفيديو.",
         
     | 
| 
       273 
     | 
    
         
            -
                        " 
     | 
| 
      
 292 
     | 
    
         
            +
                        "closeButtonAriaLabel": "إغلاق"
         
     | 
| 
       274 
293 
     | 
    
         
             
                    },
         
     | 
| 
       275 
294 
     | 
    
         
             
                    "stopVideoGeneric": {
         
     | 
| 
       276 
295 
     | 
    
         
             
                        "title": "فشل إيقاف الفيديو.",
         
     | 
| 
       277 
     | 
    
         
            -
                        " 
     | 
| 
      
 296 
     | 
    
         
            +
                        "closeButtonAriaLabel": "إغلاق"
         
     | 
| 
       278 
297 
     | 
    
         
             
                    },
         
     | 
| 
       279 
298 
     | 
    
         
             
                    "muteGeneric": {
         
     | 
| 
       280 
299 
     | 
    
         
             
                        "title": "فشل كتم صوت الميكروفون.",
         
     | 
| 
       281 
     | 
    
         
            -
                        " 
     | 
| 
      
 300 
     | 
    
         
            +
                        "closeButtonAriaLabel": "إغلاق"
         
     | 
| 
       282 
301 
     | 
    
         
             
                    },
         
     | 
| 
       283 
302 
     | 
    
         
             
                    "unmuteGeneric": {
         
     | 
| 
       284 
     | 
    
         
            -
                        "title": "فشل إلغاء كتم صوت  
     | 
| 
       285 
     | 
    
         
            -
                        " 
     | 
| 
      
 303 
     | 
    
         
            +
                        "title": "فشل إلغاء كتم صوت الميكروفون",
         
     | 
| 
      
 304 
     | 
    
         
            +
                        "closeButtonAriaLabel": "إغلاق"
         
     | 
| 
       286 
305 
     | 
    
         
             
                    },
         
     | 
| 
       287 
306 
     | 
    
         
             
                    "speakingWhileMuted": {
         
     | 
| 
       288 
307 
     | 
    
         
             
                        "title": "تم كتم صوتك.",
         
     | 
| 
       289 
     | 
    
         
            -
                        " 
     | 
| 
      
 308 
     | 
    
         
            +
                        "closeButtonAriaLabel": "إغلاق"
         
     | 
| 
       290 
309 
     | 
    
         
             
                    },
         
     | 
| 
       291 
310 
     | 
    
         
             
                    "startScreenShareGeneric": {
         
     | 
| 
       292 
311 
     | 
    
         
             
                        "title": "حدثت مشكلة أثناء بدء مشاركة الشاشة.",
         
     | 
| 
       293 
     | 
    
         
            -
                        " 
     | 
| 
      
 312 
     | 
    
         
            +
                        "closeButtonAriaLabel": "إغلاق"
         
     | 
| 
       294 
313 
     | 
    
         
             
                    },
         
     | 
| 
       295 
314 
     | 
    
         
             
                    "stopScreenShareGeneric": {
         
     | 
| 
       296 
315 
     | 
    
         
             
                        "title": "فشل إيقاف مشاركة الشاشة",
         
     | 
| 
       297 
     | 
    
         
            -
                        " 
     | 
| 
      
 316 
     | 
    
         
            +
                        "closeButtonAriaLabel": "إغلاق"
         
     | 
| 
       298 
317 
     | 
    
         
             
                    },
         
     | 
| 
       299 
318 
     | 
    
         
             
                    "callNetworkQualityLow": {
         
     | 
| 
       300 
319 
     | 
    
         
             
                        "title": "جودة الشبكة مقبولة.",
         
     | 
| 
       301 
     | 
    
         
            -
                        " 
     | 
| 
       302 
     | 
    
         
            -
                    },
         
     | 
| 
       303 
     | 
    
         
            -
                    "teamsMeetingCallNetworkQualityLow": {
         
     | 
| 
       304 
     | 
    
         
            -
                        "title": "جودة الشبكة منخفضة.",
         
     | 
| 
       305 
     | 
    
         
            -
                        "dismissButtonAriaLabel": "إغلاق",
         
     | 
| 
       306 
     | 
    
         
            -
                        "message": "انضم إلى هذه المكالمة من هاتفك للحصول على صوت أفضل. يمكنك متابعة عرض الاجتماع على هذا الجهاز.",
         
     | 
| 
       307 
     | 
    
         
            -
                        "primaryButtonLabel": "انضمام عبر الهاتف"
         
     | 
| 
      
 320 
     | 
    
         
            +
                        "closeButtonAriaLabel": "إغلاق"
         
     | 
| 
       308 
321 
     | 
    
         
             
                    },
         
     | 
| 
       309 
322 
     | 
    
         
             
                    "callNoSpeakerFound": {
         
     | 
| 
       310 
323 
     | 
    
         
             
                        "title": "لم يتم العثور على سماعات أو سماعات رأس",
         
     | 
| 
       311 
324 
     | 
    
         
             
                        "message": "قم بتوصيل جهاز صوت لسماع المكالمة.",
         
     | 
| 
       312 
     | 
    
         
            -
                        " 
     | 
| 
      
 325 
     | 
    
         
            +
                        "closeButtonAriaLabel": "إغلاق"
         
     | 
| 
       313 
326 
     | 
    
         
             
                    },
         
     | 
| 
       314 
327 
     | 
    
         
             
                    "callNoMicrophoneFound": {
         
     | 
| 
       315 
328 
     | 
    
         
             
                        "title": "لم يتم العثور على ميكروفونات",
         
     | 
| 
       316 
329 
     | 
    
         
             
                        "message": "قم بتوصيل جهاز إدخال صوت.",
         
     | 
| 
       317 
     | 
    
         
            -
                        " 
     | 
| 
      
 330 
     | 
    
         
            +
                        "closeButtonAriaLabel": "إغلاق"
         
     | 
| 
       318 
331 
     | 
    
         
             
                    },
         
     | 
| 
       319 
332 
     | 
    
         
             
                    "callMicrophoneAccessDenied": {
         
     | 
| 
       320 
333 
     | 
    
         
             
                        "title": "يتعذر الوصول إلى الميكروفون",
         
     | 
| 
       321 
334 
     | 
    
         
             
                        "message": "انقر فوق التأمين في شريط العناوين لمنح الإذن لصفحة ويب هذه.",
         
     | 
| 
       322 
     | 
    
         
            -
                        " 
     | 
| 
      
 335 
     | 
    
         
            +
                        "closeButtonAriaLabel": "إغلاق"
         
     | 
| 
       323 
336 
     | 
    
         
             
                    },
         
     | 
| 
       324 
337 
     | 
    
         
             
                    "callMicrophoneAccessDeniedSafari": {
         
     | 
| 
       325 
338 
     | 
    
         
             
                        "title": "يتعذر الوصول إلى الميكروفون",
         
     | 
| 
       326 
339 
     | 
    
         
             
                        "message": "قم بتحديث الصفحة للسماح بالأذونات، أو تحقق من إعدادات هذا المستعرض وتحقق من تمكين الأذونات لموقع الويب هذا.",
         
     | 
| 
       327 
     | 
    
         
            -
                        " 
     | 
| 
      
 340 
     | 
    
         
            +
                        "closeButtonAriaLabel": "إغلاق"
         
     | 
| 
       328 
341 
     | 
    
         
             
                    },
         
     | 
| 
       329 
342 
     | 
    
         
             
                    "callMicrophoneMutedBySystem": {
         
     | 
| 
       330 
343 
     | 
    
         
             
                        "title": "تم كتم صوتك بواسطة النظام.",
         
     | 
| 
       331 
     | 
    
         
            -
                        " 
     | 
| 
      
 344 
     | 
    
         
            +
                        "closeButtonAriaLabel": "إغلاق"
         
     | 
| 
       332 
345 
     | 
    
         
             
                    },
         
     | 
| 
       333 
346 
     | 
    
         
             
                    "callMicrophoneUnmutedBySystem": {
         
     | 
| 
       334 
347 
     | 
    
         
             
                        "title": "تم استرداد الميكروفون وتم إلغاء كتم صوتك من قبل النظام.",
         
     | 
| 
       335 
     | 
    
         
            -
                        " 
     | 
| 
      
 348 
     | 
    
         
            +
                        "closeButtonAriaLabel": "إغلاق"
         
     | 
| 
       336 
349 
     | 
    
         
             
                    },
         
     | 
| 
       337 
350 
     | 
    
         
             
                    "callMacOsMicrophoneAccessDenied": {
         
     | 
| 
       338 
351 
     | 
    
         
             
                        "title": "يتعذر الوصول إلى الميكروفون",
         
     | 
| 
       339 
352 
     | 
    
         
             
                        "message": "امنح الميكروفون إذنا في إعدادات خصوصية macOS.",
         
     | 
| 
       340 
     | 
    
         
            -
                        " 
     | 
| 
      
 353 
     | 
    
         
            +
                        "closeButtonAriaLabel": "إغلاق"
         
     | 
| 
       341 
354 
     | 
    
         
             
                    },
         
     | 
| 
       342 
355 
     | 
    
         
             
                    "callLocalVideoFreeze": {
         
     | 
| 
       343 
356 
     | 
    
         
             
                        "title": "النطاق الترددي للشبكة ضعيف.",
         
     | 
| 
       344 
357 
     | 
    
         
             
                        "message": "قد يظهر الفيديو متوقفا مؤقتا للآخرين في المكالمة.",
         
     | 
| 
       345 
     | 
    
         
            -
                        " 
     | 
| 
      
 358 
     | 
    
         
            +
                        "closeButtonAriaLabel": "إغلاق"
         
     | 
| 
       346 
359 
     | 
    
         
             
                    },
         
     | 
| 
       347 
360 
     | 
    
         
             
                    "callCameraAccessDenied": {
         
     | 
| 
       348 
361 
     | 
    
         
             
                        "title": "تعذر الوصول إلى الكاميرا",
         
     | 
| 
       349 
362 
     | 
    
         
             
                        "message": "انقر فوق التأمين في شريط العناوين لمنح الإذن لصفحة ويب هذه.",
         
     | 
| 
       350 
     | 
    
         
            -
                        " 
     | 
| 
      
 363 
     | 
    
         
            +
                        "closeButtonAriaLabel": "إغلاق"
         
     | 
| 
       351 
364 
     | 
    
         
             
                    },
         
     | 
| 
       352 
365 
     | 
    
         
             
                    "callCameraAccessDeniedSafari": {
         
     | 
| 
       353 
366 
     | 
    
         
             
                        "title": "تعذر الوصول إلى الكاميرا",
         
     | 
| 
       354 
367 
     | 
    
         
             
                        "message": "قم بتحديث الصفحة للسماح بالأذونات، أو تحقق من إعدادات هذا المستعرض وتحقق من تمكين الأذونات لموقع الويب هذا.",
         
     | 
| 
       355 
     | 
    
         
            -
                        " 
     | 
| 
      
 368 
     | 
    
         
            +
                        "closeButtonAriaLabel": "إغلاق"
         
     | 
| 
       356 
369 
     | 
    
         
             
                    },
         
     | 
| 
       357 
370 
     | 
    
         
             
                    "callCameraAlreadyInUse": {
         
     | 
| 
       358 
371 
     | 
    
         
             
                        "title": "تعذر الوصول إلى الكاميرا",
         
     | 
| 
       359 
372 
     | 
    
         
             
                        "message": "قد يكون قيد الاستخدام بالفعل بواسطة تطبيق آخر.",
         
     | 
| 
       360 
     | 
    
         
            -
                        " 
     | 
| 
      
 373 
     | 
    
         
            +
                        "closeButtonAriaLabel": "إغلاق"
         
     | 
| 
       361 
374 
     | 
    
         
             
                    },
         
     | 
| 
       362 
375 
     | 
    
         
             
                    "callVideoStoppedBySystem": {
         
     | 
| 
       363 
376 
     | 
    
         
             
                        "title": "تم إيقاف الفيديو الخاص بك من قبل النظام.",
         
     | 
| 
       364 
     | 
    
         
            -
                        " 
     | 
| 
      
 377 
     | 
    
         
            +
                        "closeButtonAriaLabel": "إغلاق"
         
     | 
| 
       365 
378 
     | 
    
         
             
                    },
         
     | 
| 
       366 
379 
     | 
    
         
             
                    "callVideoRecoveredBySystem": {
         
     | 
| 
       367 
380 
     | 
    
         
             
                        "title": "تم استئناف الفيديو الخاص بك.",
         
     | 
| 
       368 
     | 
    
         
            -
                        " 
     | 
| 
      
 381 
     | 
    
         
            +
                        "closeButtonAriaLabel": "إغلاق"
         
     | 
| 
       369 
382 
     | 
    
         
             
                    },
         
     | 
| 
       370 
383 
     | 
    
         
             
                    "callMacOsCameraAccessDenied": {
         
     | 
| 
       371 
384 
     | 
    
         
             
                        "title": "يقوم MacOS بحظر الوصول إلى الكاميرا",
         
     | 
| 
       372 
385 
     | 
    
         
             
                        "message": "قم بتحديث إعدادات الخصوصية للسماح لهذا المستعرض بالوصول إلى الكاميرا.",
         
     | 
| 
       373 
     | 
    
         
            -
                        " 
     | 
| 
      
 386 
     | 
    
         
            +
                        "closeButtonAriaLabel": "إغلاق"
         
     | 
| 
       374 
387 
     | 
    
         
             
                    },
         
     | 
| 
       375 
388 
     | 
    
         
             
                    "callMacOsScreenShareAccessDenied": {
         
     | 
| 
       376 
389 
     | 
    
         
             
                        "title": "يقوم MacOS بحظر مشاركة الشاشة",
         
     | 
| 
       377 
390 
     | 
    
         
             
                        "message": "قم بتحديث إعدادات الخصوصية للسماح لهذا المستعرض بتسجيل الشاشة.",
         
     | 
| 
       378 
     | 
    
         
            -
                        " 
     | 
| 
      
 391 
     | 
    
         
            +
                        "closeButtonAriaLabel": "إغلاق"
         
     | 
| 
       379 
392 
     | 
    
         
             
                    },
         
     | 
| 
       380 
393 
     | 
    
         
             
                    "failedToJoinCallGeneric": {
         
     | 
| 
       381 
     | 
    
         
            -
                        "title": "فشل الانضمام إلى المكالمة.",
         
     | 
| 
       382 
     | 
    
         
            -
                        " 
     | 
| 
      
 394 
     | 
    
         
            +
                        "title": "فشل في الانضمام إلى المكالمة.",
         
     | 
| 
      
 395 
     | 
    
         
            +
                        "closeButtonAriaLabel": "إغلاق"
         
     | 
| 
       383 
396 
     | 
    
         
             
                    },
         
     | 
| 
       384 
397 
     | 
    
         
             
                    "failedToJoinCallInvalidMeetingLink": {
         
     | 
| 
       385 
398 
     | 
    
         
             
                        "title": "تعذر الانضمام إلى الاجتماع. ارتباط غير صالح.",
         
     | 
| 
       386 
     | 
    
         
            -
                        " 
     | 
| 
      
 399 
     | 
    
         
            +
                        "closeButtonAriaLabel": "إغلاق"
         
     | 
| 
       387 
400 
     | 
    
         
             
                    },
         
     | 
| 
       388 
401 
     | 
    
         
             
                    "cameraFrozenForRemoteParticipants": {
         
     | 
| 
       389 
402 
     | 
    
         
             
                        "title": "يواجه المستخدمون في المكالمة مشكلات في رؤية الفيديو الخاص بك.",
         
     | 
| 
       390 
403 
     | 
    
         
             
                        "message": "الرجاء التحقق من أجهزتك وشبكتك.",
         
     | 
| 
       391 
     | 
    
         
            -
                        " 
     | 
| 
      
 404 
     | 
    
         
            +
                        "closeButtonAriaLabel": "إغلاق"
         
     | 
| 
       392 
405 
     | 
    
         
             
                    },
         
     | 
| 
       393 
406 
     | 
    
         
             
                    "unableToStartVideoEffect": {
         
     | 
| 
       394 
407 
     | 
    
         
             
                        "title": "يتعذر تطبيق تأثير الفيديو.",
         
     | 
| 
       395 
     | 
    
         
            -
                        " 
     | 
| 
      
 408 
     | 
    
         
            +
                        "closeButtonAriaLabel": "إغلاق"
         
     | 
| 
       396 
409 
     | 
    
         
             
                    },
         
     | 
| 
       397 
410 
     | 
    
         
             
                    "startSpotlightWhileMaxParticipantsAreSpotlighted": {
         
     | 
| 
       398 
411 
     | 
    
         
             
                        "title": "يتعذر بدء تسليط ضوء على المشاركين.",
         
     | 
| 
       399 
412 
     | 
    
         
             
                        "message": "يتم تسليط الضوء على الحد الأقصى لعدد المشاركين بالفعل.",
         
     | 
| 
       400 
     | 
    
         
            -
                        " 
     | 
| 
       401 
     | 
    
         
            -
                    },
         
     | 
| 
       402 
     | 
    
         
            -
                    "mutedByRemoteParticipant": {
         
     | 
| 
       403 
     | 
    
         
            -
                        "title": "تم كتم صوتك من قبل مشارك آخر.",
         
     | 
| 
       404 
     | 
    
         
            -
                        "dismissButtonAriaLabel": "إغلاق"
         
     | 
| 
       405 
     | 
    
         
            -
                    },
         
     | 
| 
       406 
     | 
    
         
            -
                    "recordingStarted": {
         
     | 
| 
       407 
     | 
    
         
            -
                        "title": "بدأ التسجيل.",
         
     | 
| 
       408 
     | 
    
         
            -
                        "message": "من خلال الانضمام، فأنت توافق على كتابة هذا الاجتماع.",
         
     | 
| 
       409 
     | 
    
         
            -
                        "dismissButtonAriaLabel": "إغلاق"
         
     | 
| 
       410 
     | 
    
         
            -
                    },
         
     | 
| 
       411 
     | 
    
         
            -
                    "transcriptionStarted": {
         
     | 
| 
       412 
     | 
    
         
            -
                        "title": "بدأت كتابة الحديث.",
         
     | 
| 
       413 
     | 
    
         
            -
                        "message": "من خلال الانضمام، فأنت توافق على كتابة هذا الاجتماع.",
         
     | 
| 
       414 
     | 
    
         
            -
                        "dismissButtonAriaLabel": "إغلاق"
         
     | 
| 
       415 
     | 
    
         
            -
                    },
         
     | 
| 
       416 
     | 
    
         
            -
                    "recordingStopped": {
         
     | 
| 
       417 
     | 
    
         
            -
                        "title": "يتم الآن حفظ التسجيل.",
         
     | 
| 
       418 
     | 
    
         
            -
                        "message": "لقد توقف التسجيل.",
         
     | 
| 
       419 
     | 
    
         
            -
                        "dismissButtonAriaLabel": "إغلاق"
         
     | 
| 
       420 
     | 
    
         
            -
                    },
         
     | 
| 
       421 
     | 
    
         
            -
                    "transcriptionStopped": {
         
     | 
| 
       422 
     | 
    
         
            -
                        "title": "يتم الآن حفظ كتابة الحديث.",
         
     | 
| 
       423 
     | 
    
         
            -
                        "message": "توقفت كتابة الحديث.",
         
     | 
| 
       424 
     | 
    
         
            -
                        "dismissButtonAriaLabel": "إغلاق"
         
     | 
| 
       425 
     | 
    
         
            -
                    },
         
     | 
| 
       426 
     | 
    
         
            -
                    "recordingAndTranscriptionStarted": {
         
     | 
| 
       427 
     | 
    
         
            -
                        "title": "بدء التسجيل والنسخ. ",
         
     | 
| 
       428 
     | 
    
         
            -
                        "message": "من خلال الانضمام، فأنت توافق على كتابة هذا الاجتماع.",
         
     | 
| 
       429 
     | 
    
         
            -
                        "dismissButtonAriaLabel": "إغلاق"
         
     | 
| 
       430 
     | 
    
         
            -
                    },
         
     | 
| 
       431 
     | 
    
         
            -
                    "recordingAndTranscriptionStopped": {
         
     | 
| 
       432 
     | 
    
         
            -
                        "title": "يتم حفظ التسجيل وكتابة الحديث.",
         
     | 
| 
       433 
     | 
    
         
            -
                        "message": "التسجيل وكتابة الحديث متوقفان.",
         
     | 
| 
       434 
     | 
    
         
            -
                        "dismissButtonAriaLabel": "إغلاق"
         
     | 
| 
       435 
     | 
    
         
            -
                    },
         
     | 
| 
       436 
     | 
    
         
            -
                    "recordingStoppedStillTranscribing": {
         
     | 
| 
       437 
     | 
    
         
            -
                        "title": "لقد توقف التسجيل.",
         
     | 
| 
       438 
     | 
    
         
            -
                        "message": "أنت الآن تقوم فقط بكتابة الحديث لهذا الاجتماع.",
         
     | 
| 
       439 
     | 
    
         
            -
                        "dismissButtonAriaLabel": "إغلاق"
         
     | 
| 
       440 
     | 
    
         
            -
                    },
         
     | 
| 
       441 
     | 
    
         
            -
                    "transcriptionStoppedStillRecording": {
         
     | 
| 
       442 
     | 
    
         
            -
                        "title": "توقفت كتابة الحديث.",
         
     | 
| 
       443 
     | 
    
         
            -
                        "message": "أنت الآن تسجل هذا الاجتماع فقط.",
         
     | 
| 
       444 
     | 
    
         
            -
                        "dismissButtonAriaLabel": "إغلاق"
         
     | 
| 
      
 413 
     | 
    
         
            +
                        "closeButtonAriaLabel": "إغلاق"
         
     | 
| 
       445 
414 
     | 
    
         
             
                    }
         
     | 
| 
       446 
415 
     | 
    
         
             
                },
         
     | 
| 
       447 
416 
     | 
    
         
             
                "videoGallery": {
         
     | 
| 
         @@ -467,8 +436,7 @@ 
     | 
|
| 
       467 
436 
     | 
    
         
             
                    "spotlightLimitReachedMenuTitle": "تم الوصول إلى الحد الأقصى لتسليط الضوء",
         
     | 
| 
       468 
437 
     | 
    
         
             
                    "stopSpotlightVideoTileMenuLabel": "التوقف عن تسليط الضوء",
         
     | 
| 
       469 
438 
     | 
    
         
             
                    "stopSpotlightOnSelfVideoTileMenuLabel": "الخروج من وضع تسليط الضوء",
         
     | 
| 
       470 
     | 
    
         
            -
                    "attendeeRole": "الحضور" 
     | 
| 
       471 
     | 
    
         
            -
                    "muteParticipantMenuItemLabel": "كتم الصوت"
         
     | 
| 
      
 439 
     | 
    
         
            +
                    "attendeeRole": "الحضور"
         
     | 
| 
       472 
440 
     | 
    
         
             
                },
         
     | 
| 
       473 
441 
     | 
    
         
             
                "dialpad": {
         
     | 
| 
       474 
442 
     | 
    
         
             
                    "placeholderText": "أدخل رقم الهاتف",
         
     | 
| 
         @@ -604,21 +572,15 @@ 
     | 
|
| 
       604 
572 
     | 
    
         
             
                    "leftNavButtonAriaLabel": "الصفحة السابقة",
         
     | 
| 
       605 
573 
     | 
    
         
             
                    "rightNavButtonAriaLabel": "الصفحة التالية"
         
     | 
| 
       606 
574 
     | 
    
         
             
                },
         
     | 
| 
       607 
     | 
    
         
            -
                " 
     | 
| 
      
 575 
     | 
    
         
            +
                "MeetingConferencePhoneInfo": {
         
     | 
| 
       608 
576 
     | 
    
         
             
                    "meetingConferencePhoneInfoModalTitle": "الانضمام إلى مكالمة من هاتفك",
         
     | 
| 
       609 
577 
     | 
    
         
             
                    "meetingConferencePhoneInfoModalDialIn": "رقم الاتصال",
         
     | 
| 
       610 
578 
     | 
    
         
             
                    "meetingConferencePhoneInfoModalMeetingId": "أدخل معرف الاجتماع",
         
     | 
| 
       611 
579 
     | 
    
         
             
                    "meetingConferencePhoneInfoModalWait": "انتظر حتى يتم القبول من قبل المنظم",
         
     | 
| 
       612 
580 
     | 
    
         
             
                    "meetingConferencePhoneInfoModalNoPhoneAvailable": "لا يتوفر هاتف",
         
     | 
| 
       613 
     | 
    
         
            -
                    " 
     | 
| 
       614 
     | 
    
         
            -
                    " 
     | 
| 
       615 
     | 
    
         
            -
                    "meetingConferencePhoneInfoModalToll": "( 
     | 
| 
       616 
     | 
    
         
            -
             
     | 
| 
       617 
     | 
    
         
            -
                "IncomingCallNotification": {
         
     | 
| 
       618 
     | 
    
         
            -
                    "incomingCallNotificationPlaceholderId": "مستخدم غير معروف",
         
     | 
| 
       619 
     | 
    
         
            -
                    "incomingCallNotificationPlaceholderAlert": "مكالمة واردة",
         
     | 
| 
       620 
     | 
    
         
            -
                    "incomingCallNoticicationAcceptWithAudioAriaLabel": "قبول مع الصوت",
         
     | 
| 
       621 
     | 
    
         
            -
                    "incomingCallNoticicationAcceptWithVideoAriaLabel": "قبول مع الفيديو",
         
     | 
| 
       622 
     | 
    
         
            -
                    "incomingCallNoticicationRejectAriaLabel": "رفض"
         
     | 
| 
      
 581 
     | 
    
         
            +
                    "meetingConferencePhoneInfoModalTollFree": "{phoneNumber} (رقم مجاني) {country}، {city}",
         
     | 
| 
      
 582 
     | 
    
         
            +
                    "meetingConferencePhoneInfoModalTollFreeWithoutGeoData": "{phoneNumber} (رقم مجاني)",
         
     | 
| 
      
 583 
     | 
    
         
            +
                    "meetingConferencePhoneInfoModalToll": "{country} {phoneNumber} (رقم غير مجاني)، {city}",
         
     | 
| 
      
 584 
     | 
    
         
            +
                    "meetingConferencePhoneInfoModalTollWithoutGeoData": "{phoneNumber} (رقم غير مجاني)"
         
     | 
| 
       623 
585 
     | 
    
         
             
                }
         
     | 
| 
       624 
586 
     | 
    
         
             
            }
         
     |