@azure/communication-react 1.18.0-alpha-202407180014 → 1.18.0-alpha-202407200014

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (129) hide show
  1. package/dist/communication-react.d.ts +71 -18
  2. package/dist/dist-cjs/communication-react/{ChatMessageComponentAsRichTextEditBox-Bi4Or6hk.js → ChatMessageComponentAsRichTextEditBox-D4ctXnw1.js} +27 -6
  3. package/dist/dist-cjs/communication-react/ChatMessageComponentAsRichTextEditBox-D4ctXnw1.js.map +1 -0
  4. package/dist/dist-cjs/communication-react/{RichTextSendBoxWrapper-CaXswhPn.js → RichTextSendBoxWrapper-F6eqVXer.js} +2 -2
  5. package/dist/dist-cjs/communication-react/{RichTextSendBoxWrapper-CaXswhPn.js.map → RichTextSendBoxWrapper-F6eqVXer.js.map} +1 -1
  6. package/dist/dist-cjs/communication-react/{index-B3X0l4SB.js → index-BJO_NOTU.js} +658 -367
  7. package/dist/dist-cjs/communication-react/index-BJO_NOTU.js.map +1 -0
  8. package/dist/dist-cjs/communication-react/index.js +1 -1
  9. package/dist/dist-esm/acs-ui-common/src/telemetryVersion.js +1 -1
  10. package/dist/dist-esm/acs-ui-common/src/telemetryVersion.js.map +1 -1
  11. package/dist/dist-esm/calling-stateful-client/src/CallAgentDeclarative.d.ts +3 -3
  12. package/dist/dist-esm/calling-stateful-client/src/CallAgentDeclarative.js.map +1 -1
  13. package/dist/dist-esm/calling-stateful-client/src/CallAgentDeclarativeCommon.d.ts +1 -1
  14. package/dist/dist-esm/calling-stateful-client/src/CallAgentDeclarativeCommon.js +15 -7
  15. package/dist/dist-esm/calling-stateful-client/src/CallAgentDeclarativeCommon.js.map +1 -1
  16. package/dist/dist-esm/calling-stateful-client/src/IncomingCallDeclarative.d.ts +2 -8
  17. package/dist/dist-esm/calling-stateful-client/src/IncomingCallDeclarative.js.map +1 -1
  18. package/dist/dist-esm/calling-stateful-client/src/TeamsCallAgentDeclarative.d.ts +14 -2
  19. package/dist/dist-esm/calling-stateful-client/src/TeamsCallAgentDeclarative.js.map +1 -1
  20. package/dist/dist-esm/calling-stateful-client/src/TeamsIncomingCallDeclarative.d.ts +17 -0
  21. package/dist/dist-esm/calling-stateful-client/src/TeamsIncomingCallDeclarative.js +49 -0
  22. package/dist/dist-esm/calling-stateful-client/src/TeamsIncomingCallDeclarative.js.map +1 -0
  23. package/dist/dist-esm/calling-stateful-client/src/TypeGuards.d.ts +9 -1
  24. package/dist/dist-esm/calling-stateful-client/src/TypeGuards.js +16 -0
  25. package/dist/dist-esm/calling-stateful-client/src/TypeGuards.js.map +1 -1
  26. package/dist/dist-esm/calling-stateful-client/src/index-public.d.ts +1 -1
  27. package/dist/dist-esm/calling-stateful-client/src/index-public.js.map +1 -1
  28. package/dist/dist-esm/communication-react/src/index.d.ts +1 -1
  29. package/dist/dist-esm/communication-react/src/index.js.map +1 -1
  30. package/dist/dist-esm/react-components/src/components/Attachment/AttachmentCard.js +14 -8
  31. package/dist/dist-esm/react-components/src/components/Attachment/AttachmentCard.js.map +1 -1
  32. package/dist/dist-esm/react-components/src/components/ChatMessage/ChatMessageComponentWrapper.d.ts +8 -2
  33. package/dist/dist-esm/react-components/src/components/ChatMessage/ChatMessageComponentWrapper.js.map +1 -1
  34. package/dist/dist-esm/react-components/src/components/ChatMessage/MyMessageComponents/ChatMessageComponentAsEditBoxPicker.d.ts +6 -4
  35. package/dist/dist-esm/react-components/src/components/ChatMessage/MyMessageComponents/ChatMessageComponentAsEditBoxPicker.js +2 -12
  36. package/dist/dist-esm/react-components/src/components/ChatMessage/MyMessageComponents/ChatMessageComponentAsEditBoxPicker.js.map +1 -1
  37. package/dist/dist-esm/react-components/src/components/ChatMessage/MyMessageComponents/ChatMessageComponentAsRichTextEditBox.d.ts +2 -2
  38. package/dist/dist-esm/react-components/src/components/ChatMessage/MyMessageComponents/ChatMessageComponentAsRichTextEditBox.js +25 -4
  39. package/dist/dist-esm/react-components/src/components/ChatMessage/MyMessageComponents/ChatMessageComponentAsRichTextEditBox.js.map +1 -1
  40. package/dist/dist-esm/react-components/src/components/ChatMessage/MyMessageComponents/ChatMyMessageComponent.d.ts +8 -6
  41. package/dist/dist-esm/react-components/src/components/ChatMessage/MyMessageComponents/ChatMyMessageComponent.js +12 -3
  42. package/dist/dist-esm/react-components/src/components/ChatMessage/MyMessageComponents/ChatMyMessageComponent.js.map +1 -1
  43. package/dist/dist-esm/react-components/src/components/ChatMessage/MyMessageComponents/FluentChatMyMessageComponent.js +27 -3
  44. package/dist/dist-esm/react-components/src/components/ChatMessage/MyMessageComponents/FluentChatMyMessageComponent.js.map +1 -1
  45. package/dist/dist-esm/react-components/src/components/MessageThread.d.ts +9 -15
  46. package/dist/dist-esm/react-components/src/components/MessageThread.js +10 -1
  47. package/dist/dist-esm/react-components/src/components/MessageThread.js.map +1 -1
  48. package/dist/dist-esm/react-components/src/components/RichTextEditor/RichTextEditor.js +28 -22
  49. package/dist/dist-esm/react-components/src/components/RichTextEditor/RichTextEditor.js.map +1 -1
  50. package/dist/dist-esm/react-components/src/components/RichTextEditor/RichTextSendBox.d.ts +49 -0
  51. package/dist/dist-esm/react-components/src/components/RichTextEditor/RichTextSendBox.js +16 -4
  52. package/dist/dist-esm/react-components/src/components/RichTextEditor/RichTextSendBox.js.map +1 -1
  53. package/dist/dist-esm/react-components/src/components/RichTextEditor/Toolbar/RichTextToolbar.js +20 -2
  54. package/dist/dist-esm/react-components/src/components/RichTextEditor/Toolbar/RichTextToolbar.js.map +1 -1
  55. package/dist/dist-esm/react-components/src/components/index.d.ts +2 -1
  56. package/dist/dist-esm/react-components/src/components/index.js.map +1 -1
  57. package/dist/dist-esm/react-components/src/components/styles/AttachmentCard.styles.d.ts +2 -2
  58. package/dist/dist-esm/react-components/src/components/styles/AttachmentCard.styles.js +15 -17
  59. package/dist/dist-esm/react-components/src/components/styles/AttachmentCard.styles.js.map +1 -1
  60. package/dist/dist-esm/react-components/src/components/styles/RichTextEditor.styles.js +3 -0
  61. package/dist/dist-esm/react-components/src/components/styles/RichTextEditor.styles.js.map +1 -1
  62. package/dist/dist-esm/react-components/src/components/utils/RichTextEditorUtils.d.ts +1 -5
  63. package/dist/dist-esm/react-components/src/components/utils/RichTextEditorUtils.js +0 -21
  64. package/dist/dist-esm/react-components/src/components/utils/RichTextEditorUtils.js.map +1 -1
  65. package/dist/dist-esm/react-components/src/components/utils/SendBoxUtils.d.ts +9 -1
  66. package/dist/dist-esm/react-components/src/components/utils/SendBoxUtils.js +10 -2
  67. package/dist/dist-esm/react-components/src/components/utils/SendBoxUtils.js.map +1 -1
  68. package/dist/dist-esm/react-components/src/localization/locales/ar-SA/strings.json +101 -63
  69. package/dist/dist-esm/react-components/src/localization/locales/cs-CZ/strings.json +99 -61
  70. package/dist/dist-esm/react-components/src/localization/locales/de-DE/strings.json +99 -61
  71. package/dist/dist-esm/react-components/src/localization/locales/en-GB/strings.json +99 -61
  72. package/dist/dist-esm/react-components/src/localization/locales/en-US/strings.json +8 -2
  73. package/dist/dist-esm/react-components/src/localization/locales/es-ES/strings.json +99 -61
  74. package/dist/dist-esm/react-components/src/localization/locales/fi-FI/strings.json +99 -61
  75. package/dist/dist-esm/react-components/src/localization/locales/fr-FR/strings.json +102 -64
  76. package/dist/dist-esm/react-components/src/localization/locales/he-IL/strings.json +99 -61
  77. package/dist/dist-esm/react-components/src/localization/locales/it-IT/strings.json +99 -61
  78. package/dist/dist-esm/react-components/src/localization/locales/ja-JP/strings.json +101 -63
  79. package/dist/dist-esm/react-components/src/localization/locales/ko-KR/strings.json +106 -68
  80. package/dist/dist-esm/react-components/src/localization/locales/nb-NO/strings.json +99 -61
  81. package/dist/dist-esm/react-components/src/localization/locales/nl-NL/strings.json +105 -67
  82. package/dist/dist-esm/react-components/src/localization/locales/pl-PL/strings.json +104 -66
  83. package/dist/dist-esm/react-components/src/localization/locales/pt-BR/strings.json +102 -64
  84. package/dist/dist-esm/react-components/src/localization/locales/ru-RU/strings.json +100 -62
  85. package/dist/dist-esm/react-components/src/localization/locales/sv-SE/strings.json +99 -61
  86. package/dist/dist-esm/react-components/src/localization/locales/tr-TR/strings.json +100 -62
  87. package/dist/dist-esm/react-components/src/localization/locales/zh-CN/strings.json +101 -63
  88. package/dist/dist-esm/react-components/src/localization/locales/zh-TW/strings.json +100 -62
  89. package/dist/dist-esm/react-composites/src/composites/ChatComposite/ChatScreen.js +66 -31
  90. package/dist/dist-esm/react-composites/src/composites/ChatComposite/ChatScreen.js.map +1 -1
  91. package/dist/dist-esm/react-composites/src/composites/ChatComposite/ImageUpload/ImageUploadReducer.d.ts +49 -0
  92. package/dist/dist-esm/react-composites/src/composites/ChatComposite/ImageUpload/ImageUploadReducer.js +48 -0
  93. package/dist/dist-esm/react-composites/src/composites/ChatComposite/ImageUpload/ImageUploadReducer.js.map +1 -0
  94. package/dist/dist-esm/react-composites/src/composites/ChatComposite/ImageUpload/ImageUploadUtils.d.ts +33 -1
  95. package/dist/dist-esm/react-composites/src/composites/ChatComposite/ImageUpload/ImageUploadUtils.js +198 -6
  96. package/dist/dist-esm/react-composites/src/composites/ChatComposite/ImageUpload/ImageUploadUtils.js.map +1 -1
  97. package/dist/dist-esm/react-composites/src/composites/ChatComposite/file-sharing/AttachmentUpload.d.ts +7 -7
  98. package/dist/dist-esm/react-composites/src/composites/ChatComposite/file-sharing/AttachmentUpload.js.map +1 -1
  99. package/dist/dist-esm/react-composites/src/composites/common/SendBoxPicker.d.ts +2 -5
  100. package/dist/dist-esm/react-composites/src/composites/common/SendBoxPicker.js.map +1 -1
  101. package/dist/dist-esm/react-composites/src/composites/common/constants.d.ts +4 -0
  102. package/dist/dist-esm/react-composites/src/composites/common/constants.js +4 -0
  103. package/dist/dist-esm/react-composites/src/composites/common/constants.js.map +1 -1
  104. package/dist/dist-esm/react-composites/src/composites/localization/locales/ar-SA/strings.json +10 -5
  105. package/dist/dist-esm/react-composites/src/composites/localization/locales/cs-CZ/strings.json +6 -1
  106. package/dist/dist-esm/react-composites/src/composites/localization/locales/de-DE/strings.json +6 -1
  107. package/dist/dist-esm/react-composites/src/composites/localization/locales/en-GB/strings.json +6 -1
  108. package/dist/dist-esm/react-composites/src/composites/localization/locales/es-ES/strings.json +6 -1
  109. package/dist/dist-esm/react-composites/src/composites/localization/locales/fi-FI/strings.json +10 -5
  110. package/dist/dist-esm/react-composites/src/composites/localization/locales/fr-FR/strings.json +10 -5
  111. package/dist/dist-esm/react-composites/src/composites/localization/locales/he-IL/strings.json +10 -5
  112. package/dist/dist-esm/react-composites/src/composites/localization/locales/it-IT/strings.json +10 -5
  113. package/dist/dist-esm/react-composites/src/composites/localization/locales/ja-JP/strings.json +6 -1
  114. package/dist/dist-esm/react-composites/src/composites/localization/locales/ko-KR/strings.json +10 -5
  115. package/dist/dist-esm/react-composites/src/composites/localization/locales/nb-NO/strings.json +6 -1
  116. package/dist/dist-esm/react-composites/src/composites/localization/locales/nl-NL/strings.json +6 -1
  117. package/dist/dist-esm/react-composites/src/composites/localization/locales/pl-PL/strings.json +6 -1
  118. package/dist/dist-esm/react-composites/src/composites/localization/locales/pt-BR/strings.json +10 -5
  119. package/dist/dist-esm/react-composites/src/composites/localization/locales/ru-RU/strings.json +6 -1
  120. package/dist/dist-esm/react-composites/src/composites/localization/locales/sv-SE/strings.json +10 -5
  121. package/dist/dist-esm/react-composites/src/composites/localization/locales/tr-TR/strings.json +6 -1
  122. package/dist/dist-esm/react-composites/src/composites/localization/locales/zh-CN/strings.json +10 -5
  123. package/dist/dist-esm/react-composites/src/composites/localization/locales/zh-TW/strings.json +10 -5
  124. package/package.json +14 -14
  125. package/dist/dist-cjs/communication-react/ChatMessageComponentAsRichTextEditBox-Bi4Or6hk.js.map +0 -1
  126. package/dist/dist-cjs/communication-react/index-B3X0l4SB.js.map +0 -1
  127. package/dist/dist-esm/react-composites/src/composites/ChatComposite/ImageUpload/useImageUpload.d.ts +0 -12
  128. package/dist/dist-esm/react-composites/src/composites/ChatComposite/ImageUpload/useImageUpload.js +0 -115
  129. package/dist/dist-esm/react-composites/src/composites/ChatComposite/ImageUpload/useImageUpload.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"ImageUploadUtils.js","sourceRoot":"","sources":["../../../../../../../../react-composites/src/composites/ChatComposite/ImageUpload/ImageUploadUtils.tsx"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;;;;;;;;;;AAElC,gEAAgE;AAChE,MAAM,aAAa,GAAG,CACpB,QAAgC,EAChC,OAAkF,EAC/D,EAAE;IACrB,gCAAgC;IAChC,MAAM,EAAE,OAAO,GAAG,KAAK,EAAE,eAAe,EAAE,GAAG,OAAO,CAAC;IAErD,MAAM,EAAE,GAAG,UAAU,CAAC,GAAG,EAAE;QACzB,eAAe,CAAC,KAAK,EAAE,CAAC;IAC1B,CAAC,EAAE,OAAO,CAAC,CAAC;IAEZ,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,QAAQ,kCAChC,OAAO,KACV,MAAM,EAAE,eAAe,CAAC,MAAM,IAC9B,CAAC;IACH,YAAY,CAAC,EAAE,CAAC,CAAC;IACjB,OAAO,QAAQ,CAAC;AAClB,CAAC,CAAA,CAAC;AAEF,gEAAgE;AAChE;;GAEG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAO,KAAa,EAA6B,EAAE;IACnF,MAAM,SAAS,GAAqB,SAAS,CAAC;IAC9C,IAAI,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;QACzD,MAAM,GAAG,GAAG,MAAM,aAAa,CAAC,KAAK,EAAE,EAAE,eAAe,EAAE,IAAI,eAAe,EAAE,EAAE,CAAC,CAAC;QACnF,MAAM,SAAS,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC;QACnC,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC,CAAA,CAAC;AAEF,gEAAgE;AAChE;;;GAGG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,KAAoC,EAAQ,EAAE;IAC5E,KAAK,CAAC,OAAO,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;QACtD,4FAA4F;QAC5F,IAAI,UAAU,GAAuB,KAAK,CAAC,aAAa,CAAC;QACzD,IAAI,WAAW,GAAgB,KAAK,CAAC;QACrC,OAAO,CAAA,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,UAAU,CAAC,MAAM,MAAK,CAAC,EAAE,CAAC;YAC3C,WAAW,GAAG,UAAU,CAAC;YACzB,UAAU,GAAG,UAAU,CAAC,aAAa,CAAC;QACxC,CAAC;QACD,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,MAAM,EAAE,CAAC;IACxB,CAAC,CAAC,CAAC;AACL,CAAC,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\n/* @conditional-compile-remove(rich-text-editor-image-upload) */\nconst fetchBlobData = async (\n resource: string | URL | Request,\n options: { timeout?: number; headers?: Headers; abortController: AbortController }\n): Promise<Response> => {\n // default timeout is 30 seconds\n const { timeout = 30000, abortController } = options;\n\n const id = setTimeout(() => {\n abortController.abort();\n }, timeout);\n\n const response = await fetch(resource, {\n ...options,\n signal: abortController.signal\n });\n clearTimeout(id);\n return response;\n};\n\n/* @conditional-compile-remove(rich-text-editor-image-upload) */\n/**\n * @private\n */\nexport const getInlineImageData = async (image: string): Promise<Blob | undefined> => {\n const blobImage: Blob | undefined = undefined;\n if (image.startsWith('blob') || image.startsWith('http')) {\n const res = await fetchBlobData(image, { abortController: new AbortController() });\n const blobImage = await res.blob();\n return blobImage;\n }\n return blobImage;\n};\n\n/* @conditional-compile-remove(rich-text-editor-image-upload) */\n/**\n * @internal\n * Exported only for unit testing\n */\nexport const removeImageTags = (event: { content: DocumentFragment }): void => {\n event.content.querySelectorAll('img').forEach((image) => {\n // If the image is the only child of its parent, remove all the parents of this img element.\n let parentNode: HTMLElement | null = image.parentElement;\n let currentNode: HTMLElement = image;\n while (parentNode?.childNodes.length === 1) {\n currentNode = parentNode;\n parentNode = parentNode.parentElement;\n }\n currentNode?.remove();\n });\n};\n"]}
1
+ {"version":3,"file":"ImageUploadUtils.js","sourceRoot":"","sources":["../../../../../../../../react-composites/src/composites/ChatComposite/ImageUpload/ImageUploadUtils.tsx"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;;;;;;;;;;AAIlC,gEAAgE;AAChE,OAAO,EAAoB,0BAA0B,EAAwB,MAAM,kCAAkC,CAAC;AACtH,gEAAgE;AAChE,OAAO,EAAE,0BAA0B,EAAE,MAAM,wBAAwB,CAAC;AAOpE,gEAAgE;AAChE,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEhC,gEAAgE;AAChE,MAAM,+BAA+B,GAAG,EAAE,CAAC;AAE3C,gEAAgE;AAChE,MAAM,aAAa,GAAG,CACpB,QAAgC,EAChC,OAAkF,EAC/D,EAAE;IACrB,gCAAgC;IAChC,MAAM,EAAE,OAAO,GAAG,KAAK,EAAE,eAAe,EAAE,GAAG,OAAO,CAAC;IAErD,MAAM,EAAE,GAAG,UAAU,CAAC,GAAG,EAAE;QACzB,eAAe,CAAC,KAAK,EAAE,CAAC;IAC1B,CAAC,EAAE,OAAO,CAAC,CAAC;IAEZ,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,QAAQ,kCAChC,OAAO,KACV,MAAM,EAAE,eAAe,CAAC,MAAM,IAC9B,CAAC;IACH,YAAY,CAAC,EAAE,CAAC,CAAC;IACjB,OAAO,QAAQ,CAAC;AAClB,CAAC,CAAA,CAAC;AAEF,gEAAgE;AAChE;;GAEG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAO,KAAa,EAA6B,EAAE;IACnF,IAAI,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;QACzD,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,MAAM,aAAa,CAAC,KAAK,EAAE,EAAE,eAAe,EAAE,IAAI,eAAe,EAAE,EAAE,CAAC,CAAC;YACnF,MAAM,SAAS,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC;YACnC,OAAO,SAAS,CAAC;QACnB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,2BAA2B,EAAE,KAAK,CAAC,CAAC;YAClD,OAAO;QACT,CAAC;IACH,CAAC;IACD,OAAO;AACT,CAAC,CAAA,CAAC;AAEF,gEAAgE;AAChE;;GAEG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,KAAoC,EAAQ,EAAE;IAC5E,KAAK,CAAC,OAAO,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;QACtD,4FAA4F;QAC5F,IAAI,UAAU,GAAuB,KAAK,CAAC,aAAa,CAAC;QACzD,IAAI,WAAW,GAAgB,KAAK,CAAC;QACrC,OAAO,CAAA,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,UAAU,CAAC,MAAM,MAAK,CAAC,EAAE,CAAC;YAC3C,WAAW,GAAG,UAAU,CAAC;YACzB,UAAU,GAAG,UAAU,CAAC,aAAa,CAAC;QACxC,CAAC;QACD,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,MAAM,EAAE,CAAC;IACxB,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;AAEF,gEAAgE;AAChE;;GAEG;AACH,MAAM,CAAC,MAAM,wCAAwC,GAAG,CACtD,yBAAyE,EACb,EAAE;IAC9D,IAAI,CAAC,yBAAyB,EAAE,CAAC;QAC/B,OAAO;IACT,CAAC;IACD,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,yBAAyB,IAAI,EAAE,CAAC,CAAC;IAChE,MAAM,8BAA8B,GAAmD,EAAE,CAAC;IAC1F,UAAU,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE;QAC3B,MAAM,cAAc,GAAG,yBAAyB,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE;YACzE,OAAO,MAAM,CAAC,QAAQ,CAAC;QACzB,CAAC,CAAC,CAAC;QACH,8BAA8B,CAAC,SAAS,CAAC,GAAG,cAAc,CAAC;IAC7D,CAAC,CAAC,CAAC;IACH,OAAO,8BAA8B,CAAC;AACxC,CAAC,CAAC;AAEF,gEAAgE;AAChE;;GAEG;AACH,MAAM,CAAC,MAAM,gCAAgC,GAAG,CAC9C,yBAAyE,EAC7B,EAAE;;IAC9C,IAAI,CAAC,yBAAyB,EAAE,CAAC;QAC/B,OAAO;IACT,CAAC;IACD,OAAO,MAAA,yBAAyB,CAAC,0BAA0B,CAAC,0CAAE,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;AACjG,CAAC,CAAC;AAEF,gEAAgE;AAChE,MAAM,wBAAwB,GAAG,CAAO,WAA+B,EAAE,OAAoB,EAAiB,EAAE;;IAC9G,KAAK,MAAM,IAAI,IAAI,WAAW,EAAE,CAAC;QAC/B,MAAM,UAAU,GAAG,IAA4B,CAAC;QAChD,MAAM,KAAK,GAAqB,UAAU,CAAC,KAAK,CAAC;QACjD,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,UAAU,CAAC,kBAAkB,CAAC,mBAAmB,MAAA,IAAI,CAAC,QAAQ,0CAAE,IAAI,oBAAoB,CAAC,CAAC;YAC1F,SAAS;QACX,CAAC;QACD,IAAI,KAAK,IAAI,KAAK,CAAC,IAAI,GAAG,+BAA+B,GAAG,IAAI,GAAG,IAAI,EAAE,CAAC;YACxE,UAAU,CAAC,kBAAkB,CAC3B,IAAI,MAAA,IAAI,CAAC,QAAQ,0CAAE,IAAI,qCAAqC,+BAA+B,KAAK,CACjG,CAAC;YACF,SAAS;QACX,CAAC;QAED,MAAM,eAAe,GAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;QACrF,MAAM,cAAc,GAAG,MAAA,MAAA,IAAI,CAAC,QAAQ,0CAAE,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE,mCAAI,EAAE,CAAC;QAClE,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC;YAC9C,UAAU,CAAC,kBAAkB,CAAC,eAAe,cAAc,yBAAyB,CAAC,CAAC;YACtF,SAAS;QACX,CAAC;QAED,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,WAAW,CAAC,KAAK,EAAE,MAAA,IAAI,CAAC,QAAQ,0CAAE,IAAI,CAAC,CAAC;YACvE,UAAU,CAAC,qBAAqB,CAAC,QAAQ,CAAC,EAAE,EAAE,IAAI,CAAC,QAAQ,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC;QACzE,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YACrB,UAAU,CAAC,kBAAkB,CAAC,wDAAwD,CAAC,CAAC;QAC1F,CAAC;IACH,CAAC;AACH,CAAC,CAAA,CAAC;AAEF,gEAAgE;AAChE,MAAM,kBAAkB,GAAG,CACzB,KAAa,EACb,QAAgB,EAChB,SAAiB,EACjB,8BAAsD,EACf,EAAE;IACzC,MAAM,SAAS,GAAG,MAAM,kBAAkB,CAAC,KAAK,CAAC,CAAC;IAClD,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,OAAO;IACT,CAAC;IACD,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC;IACxB,MAAM,UAAU,GAAqB;QACnC,KAAK,EAAE,SAAS;QAChB,MAAM;QACN,QAAQ,EAAE;YACR,EAAE,EAAE,MAAM;YACV,IAAI,EAAE,QAAQ;YACd,GAAG,EAAE,KAAK;YACV,QAAQ,EAAE,CAAC;SACZ;QACD,2BAA2B,EAAE,CAAC,KAAa,EAAE,EAAE;YAC7C,8BAA8B,CAAC;gBAC7B,IAAI,EAAE,0BAA0B,CAAC,QAAQ;gBACzC,MAAM;gBACN,QAAQ,EAAE,KAAK;gBACf,SAAS;aACV,CAAC,CAAC;QACL,CAAC;QACD,qBAAqB,EAAE,CAAC,EAAU,EAAE,GAAW,EAAE,EAAE;YACjD,8BAA8B,CAAC;gBAC7B,IAAI,EAAE,0BAA0B,CAAC,SAAS;gBAC1C,MAAM;gBACN,EAAE;gBACF,GAAG;gBACH,SAAS;aACV,CAAC,CAAC;QACL,CAAC;QACD,kBAAkB,EAAE,CAAC,OAAe,EAAE,EAAE;YACtC,8BAA8B,CAAC,EAAE,IAAI,EAAE,0BAA0B,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,CAAC;YACxG,qFAAqF;YACrF,yDAAyD;YACzD,UAAU,CAAC,GAAG,EAAE;gBACd,8BAA8B,CAAC,EAAE,IAAI,EAAE,0BAA0B,CAAC,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC;YACrG,CAAC,EAAE,EAAE,GAAG,IAAI,CAAC,CAAC;QAChB,CAAC;KACF,CAAC;IACF,OAAO,UAAU,CAAC;AACpB,CAAC,CAAA,CAAC;AAEF,gEAAgE;AAChE;;GAEG;AACH,MAAM,CAAC,MAAM,6BAA6B,GAAG,CAC3C,KAAa,EACb,QAAgB,EAChB,SAAiB,EACjB,OAAoB,EACpB,oCAA4D,EAC7C,EAAE;IACjB,MAAM,UAAU,GAAiC,MAAM,kBAAkB,CACvE,KAAK,EACL,QAAQ,EACR,SAAS,EACT,oCAAoC,CACrC,CAAC;IACF,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,OAAO;IACT,CAAC;IAED,oCAAoC,CAAC;QACnC,IAAI,EAAE,0BAA0B,CAAC,GAAG;QACpC,UAAU,EAAE,CAAC,UAAU,CAAC;QACxB,SAAS;KACV,CAAC,CAAC;IACH,wBAAwB,CAAC,CAAC,UAAU,CAAC,EAAE,OAAO,CAAC,CAAC;AAClD,CAAC,CAAA,CAAC;AAEF,gEAAgE;AAChE;;GAEG;AACH,MAAM,CAAC,MAAM,6BAA6B,GAAG,CAC3C,KAAa,EACb,QAAgB,EAChB,OAAoB,EACpB,oCAA4D,EAC7C,EAAE;IACjB,MAAM,UAAU,GAAiC,MAAM,kBAAkB,CACvE,KAAK,EACL,QAAQ,EACR,0BAA0B,EAC1B,oCAAoC,CACrC,CAAC;IAEF,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,OAAO;IACT,CAAC;IAED,oCAAoC,CAAC;QACnC,IAAI,EAAE,0BAA0B,CAAC,GAAG;QACpC,UAAU,EAAE,CAAC,UAAU,CAAC;QACxB,SAAS,EAAE,0BAA0B;KACtC,CAAC,CAAC;IACH,wBAAwB,CAAC,CAAC,UAAU,CAAC,EAAE,OAAO,CAAC,CAAC;AAClD,CAAC,CAAA,CAAC;AAEF,gEAAgE;AAChE;;GAEG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,CACrC,OAAe,EACf,WAAyC,EACzC,SAAiB,EACjB,8BAAsD,EACtD,OAAoB,EACd,EAAE;IACR,IAAI,CAAC,WAAW,IAAI,CAAC,CAAA,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,QAAQ,CAAC,EAAE,CAAA,EAAE,CAAC;QAC9C,OAAO;IACT,CAAC;IAED,8BAA8B,CAAC;QAC7B,IAAI,EAAE,0BAA0B,CAAC,MAAM;QACvC,EAAE,EAAE,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,QAAQ,CAAC,EAAE;QAC5B,SAAS;KACV,CAAC,CAAC;IACH,0BAA0B;IAC1B,IAAI,CAAA,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,QAAQ,CAAC,QAAQ,MAAK,CAAC,EAAE,CAAC;QACzC,IAAI,CAAC;YACH,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QAC/B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACvB,CAAC;IACH,CAAC;AACH,CAAC,CAAC;AAEF,gEAAgE;AAChE;;GAEG;AACH,MAAM,CAAC,MAAM,0CAA0C,GAAG,CACxD,OAAe,EACf,SAAiB,EACjB,yBAAyE,EACzE,OAAoB,EACpB,oCAA4D,EACtD,EAAE;IACR,IAAI,CAAC,yBAAyB,EAAE,CAAC;QAC/B,OAAO;IACT,CAAC;IACD,MAAM,WAAW,GAAG,yBAAyB,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,KAAK,OAAO,CAAC,CAAC;IAE1G,uBAAuB,CAAC,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,oCAAoC,EAAE,OAAO,CAAC,CAAC;AAC1G,CAAC,CAAC;AAEF,gEAAgE;AAChE;;GAEG;AACH,MAAM,CAAC,MAAM,0CAA0C,GAAG,CACxD,OAAe,EACf,yBAAyE,EACzE,OAAoB,EACpB,oCAA4D,EACtD,EAAE;IACR,IAAI,CAAC,yBAAyB,EAAE,CAAC;QAC/B,OAAO;IACT,CAAC;IACD,MAAM,WAAW,GAAG,yBAAyB,CAAC,0BAA0B,CAAC,CAAC,IAAI,CAC5E,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,KAAK,OAAO,CAC3C,CAAC;IAEF,uBAAuB,CACrB,OAAO,EACP,WAAW,EACX,0BAA0B,EAC1B,oCAAoC,EACpC,OAAO,CACR,CAAC;AACJ,CAAC,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\n/* @conditional-compile-remove(rich-text-editor-image-upload) */\nimport { AttachmentMetadataInProgress } from '@internal/acs-ui-common';\n/* @conditional-compile-remove(rich-text-editor-image-upload) */\nimport { AttachmentUpload, AttachmentUploadActionType, AttachmentUploadTask } from '../file-sharing/AttachmentUpload';\n/* @conditional-compile-remove(rich-text-editor-image-upload) */\nimport { SEND_BOX_UPLOADS_KEY_VALUE } from '../../common/constants';\n/* @conditional-compile-remove(rich-text-editor-image-upload) */\nimport { ChatAdapter } from '../adapter/ChatAdapter';\n/* @conditional-compile-remove(rich-text-editor-image-upload) */\nimport { Dispatch } from 'react';\n/* @conditional-compile-remove(rich-text-editor-image-upload) */\nimport { ImageActions } from './ImageUploadReducer';\n/* @conditional-compile-remove(rich-text-editor-image-upload) */\nimport { nanoid } from 'nanoid';\n\n/* @conditional-compile-remove(rich-text-editor-image-upload) */\nconst MAX_INLINE_IMAGE_UPLOAD_SIZE_MB = 20;\n\n/* @conditional-compile-remove(rich-text-editor-image-upload) */\nconst fetchBlobData = async (\n resource: string | URL | Request,\n options: { timeout?: number; headers?: Headers; abortController: AbortController }\n): Promise<Response> => {\n // default timeout is 30 seconds\n const { timeout = 30000, abortController } = options;\n\n const id = setTimeout(() => {\n abortController.abort();\n }, timeout);\n\n const response = await fetch(resource, {\n ...options,\n signal: abortController.signal\n });\n clearTimeout(id);\n return response;\n};\n\n/* @conditional-compile-remove(rich-text-editor-image-upload) */\n/**\n * @private\n */\nexport const getInlineImageData = async (image: string): Promise<Blob | undefined> => {\n if (image.startsWith('blob') || image.startsWith('http')) {\n try {\n const res = await fetchBlobData(image, { abortController: new AbortController() });\n const blobImage = await res.blob();\n return blobImage;\n } catch (error) {\n console.error('Error fetching image data', error);\n return;\n }\n }\n return;\n};\n\n/* @conditional-compile-remove(rich-text-editor-image-upload) */\n/**\n * @internal\n */\nexport const removeImageTags = (event: { content: DocumentFragment }): void => {\n event.content.querySelectorAll('img').forEach((image) => {\n // If the image is the only child of its parent, remove all the parents of this img element.\n let parentNode: HTMLElement | null = image.parentElement;\n let currentNode: HTMLElement = image;\n while (parentNode?.childNodes.length === 1) {\n currentNode = parentNode;\n parentNode = parentNode.parentElement;\n }\n currentNode?.remove();\n });\n};\n\n/* @conditional-compile-remove(rich-text-editor-image-upload) */\n/**\n * @internal\n */\nexport const getEditBoxMessagesImageUploadsInProgress = (\n editBoxInlineImageUploads: Record<string, AttachmentUpload[]> | undefined\n): Record<string, AttachmentMetadataInProgress[]> | undefined => {\n if (!editBoxInlineImageUploads) {\n return;\n }\n const messageIds = Object.keys(editBoxInlineImageUploads || {});\n const messagesImageUploadsInProgress: Record<string, AttachmentMetadataInProgress[]> = {};\n messageIds.map((messageId) => {\n const messageUploads = editBoxInlineImageUploads[messageId].map((upload) => {\n return upload.metadata;\n });\n messagesImageUploadsInProgress[messageId] = messageUploads;\n });\n return messagesImageUploadsInProgress;\n};\n\n/* @conditional-compile-remove(rich-text-editor-image-upload) */\n/**\n * @internal\n */\nexport const getSendBoxImageUploadsInProgress = (\n sendBoxInlineImageUploads: Record<string, AttachmentUpload[]> | undefined\n): AttachmentMetadataInProgress[] | undefined => {\n if (!sendBoxInlineImageUploads) {\n return;\n }\n return sendBoxInlineImageUploads[SEND_BOX_UPLOADS_KEY_VALUE]?.map((upload) => upload.metadata);\n};\n\n/* @conditional-compile-remove(rich-text-editor-image-upload) */\nconst inlineImageUploadHandler = async (uploadTasks: AttachmentUpload[], adapter: ChatAdapter): Promise<void> => {\n for (const task of uploadTasks) {\n const uploadTask = task as AttachmentUploadTask;\n const image: Blob | undefined = uploadTask.image;\n if (!image) {\n uploadTask.notifyUploadFailed(`Image data for \"${task.metadata?.name}\" is not provided.`);\n continue;\n }\n if (image && image.size > MAX_INLINE_IMAGE_UPLOAD_SIZE_MB * 1024 * 1024) {\n uploadTask.notifyUploadFailed(\n `\"${task.metadata?.name}\" is too big. Select a file under ${MAX_INLINE_IMAGE_UPLOAD_SIZE_MB}MB.`\n );\n continue;\n }\n\n const SUPPORTED_FILES: Array<string> = ['jpg', 'jpeg', 'png', 'gif', 'heic', 'webp'];\n const imageExtension = task.metadata?.name.split('.').pop() ?? '';\n if (!SUPPORTED_FILES.includes(imageExtension)) {\n uploadTask.notifyUploadFailed(`Uploading \".${imageExtension}\" image is not allowed.`);\n continue;\n }\n\n try {\n const response = await adapter.uploadImage(image, task.metadata?.name);\n uploadTask.notifyUploadCompleted(response.id, task.metadata.url || '');\n } catch (error) {\n console.error(error);\n uploadTask.notifyUploadFailed('Unable to upload inline image. Please try again later.');\n }\n }\n};\n\n/* @conditional-compile-remove(rich-text-editor-image-upload) */\nconst generateUploadTask = async (\n image: string,\n fileName: string,\n messageId: string,\n inlineImageUploadActionHandler: Dispatch<ImageActions>\n): Promise<AttachmentUpload | undefined> => {\n const imageData = await getInlineImageData(image);\n if (!imageData) {\n return;\n }\n const taskId = nanoid();\n const uploadTask: AttachmentUpload = {\n image: imageData,\n taskId,\n metadata: {\n id: taskId,\n name: fileName,\n url: image,\n progress: 0\n },\n notifyUploadProgressChanged: (value: number) => {\n inlineImageUploadActionHandler({\n type: AttachmentUploadActionType.Progress,\n taskId,\n progress: value,\n messageId\n });\n },\n notifyUploadCompleted: (id: string, url: string) => {\n inlineImageUploadActionHandler({\n type: AttachmentUploadActionType.Completed,\n taskId,\n id,\n url,\n messageId\n });\n },\n notifyUploadFailed: (message: string) => {\n inlineImageUploadActionHandler({ type: AttachmentUploadActionType.Failed, taskId, message, messageId });\n // remove the failed upload task when error banner is auto dismissed after 10 seconds\n // so the banner won't be shown again on UI re-rendering.\n setTimeout(() => {\n inlineImageUploadActionHandler({ type: AttachmentUploadActionType.Remove, id: taskId, messageId });\n }, 10 * 1000);\n }\n };\n return uploadTask;\n};\n\n/* @conditional-compile-remove(rich-text-editor-image-upload) */\n/**\n * @internal\n */\nexport const onUploadInlineImageForEditBox = async (\n image: string,\n fileName: string,\n messageId: string,\n adapter: ChatAdapter,\n handleEditBoxInlineImageUploadAction: Dispatch<ImageActions>\n): Promise<void> => {\n const uploadTask: AttachmentUpload | undefined = await generateUploadTask(\n image,\n fileName,\n messageId,\n handleEditBoxInlineImageUploadAction\n );\n if (!uploadTask) {\n return;\n }\n\n handleEditBoxInlineImageUploadAction({\n type: AttachmentUploadActionType.Set,\n newUploads: [uploadTask],\n messageId\n });\n inlineImageUploadHandler([uploadTask], adapter);\n};\n\n/* @conditional-compile-remove(rich-text-editor-image-upload) */\n/**\n * @internal\n */\nexport const onUploadInlineImageForSendBox = async (\n image: string,\n fileName: string,\n adapter: ChatAdapter,\n handleSendBoxInlineImageUploadAction: Dispatch<ImageActions>\n): Promise<void> => {\n const uploadTask: AttachmentUpload | undefined = await generateUploadTask(\n image,\n fileName,\n SEND_BOX_UPLOADS_KEY_VALUE,\n handleSendBoxInlineImageUploadAction\n );\n\n if (!uploadTask) {\n return;\n }\n\n handleSendBoxInlineImageUploadAction({\n type: AttachmentUploadActionType.Set,\n newUploads: [uploadTask],\n messageId: SEND_BOX_UPLOADS_KEY_VALUE\n });\n inlineImageUploadHandler([uploadTask], adapter);\n};\n\n/* @conditional-compile-remove(rich-text-editor-image-upload) */\n/**\n * @internal\n */\nexport const cancelInlineImageUpload = (\n imageId: string,\n imageUpload: AttachmentUpload | undefined,\n messageId: string,\n inlineImageUploadActionHandler: Dispatch<ImageActions>,\n adapter: ChatAdapter\n): void => {\n if (!imageUpload || !imageUpload?.metadata.id) {\n return;\n }\n\n inlineImageUploadActionHandler({\n type: AttachmentUploadActionType.Remove,\n id: imageUpload?.metadata.id,\n messageId\n });\n // TODO: remove local blob\n if (imageUpload?.metadata.progress === 1) {\n try {\n adapter.deleteImage(imageId);\n } catch (error) {\n console.error(error);\n }\n }\n};\n\n/* @conditional-compile-remove(rich-text-editor-image-upload) */\n/**\n * @internal\n */\nexport const onCancelInlineImageUploadHandlerForEditBox = (\n imageId: string,\n messageId: string,\n editBoxInlineImageUploads: Record<string, AttachmentUpload[]> | undefined,\n adapter: ChatAdapter,\n handleEditBoxInlineImageUploadAction: Dispatch<ImageActions>\n): void => {\n if (!editBoxInlineImageUploads) {\n return;\n }\n const imageUpload = editBoxInlineImageUploads[messageId].find((upload) => upload.metadata.id === imageId);\n\n cancelInlineImageUpload(imageId, imageUpload, messageId, handleEditBoxInlineImageUploadAction, adapter);\n};\n\n/* @conditional-compile-remove(rich-text-editor-image-upload) */\n/**\n * @internal\n */\nexport const onCancelInlineImageUploadHandlerForSendBox = (\n imageId: string,\n sendBoxInlineImageUploads: Record<string, AttachmentUpload[]> | undefined,\n adapter: ChatAdapter,\n handleSendBoxInlineImageUploadAction: Dispatch<ImageActions>\n): void => {\n if (!sendBoxInlineImageUploads) {\n return;\n }\n const imageUpload = sendBoxInlineImageUploads[SEND_BOX_UPLOADS_KEY_VALUE].find(\n (upload) => upload.metadata.id === imageId\n );\n\n cancelInlineImageUpload(\n imageId,\n imageUpload,\n SEND_BOX_UPLOADS_KEY_VALUE,\n handleSendBoxInlineImageUploadAction,\n adapter\n );\n};\n"]}
@@ -20,7 +20,7 @@ export declare enum AttachmentUploadActionType {
20
20
  /**
21
21
  * @private
22
22
  */
23
- interface Action {
23
+ export interface Action {
24
24
  type: AttachmentUploadActionType;
25
25
  }
26
26
  /**
@@ -33,7 +33,7 @@ interface SetAction extends Action {
33
33
  /**
34
34
  * @private
35
35
  */
36
- interface ProgressAction extends Action {
36
+ export interface ProgressAction extends Action {
37
37
  type: AttachmentUploadActionType.Progress;
38
38
  taskId: string;
39
39
  progress: number;
@@ -41,7 +41,7 @@ interface ProgressAction extends Action {
41
41
  /**
42
42
  * @private
43
43
  */
44
- interface CompleteAction extends Action {
44
+ export interface CompleteAction extends Action {
45
45
  type: AttachmentUploadActionType.Completed;
46
46
  taskId: string;
47
47
  id: string;
@@ -50,7 +50,7 @@ interface CompleteAction extends Action {
50
50
  /**
51
51
  * @private
52
52
  */
53
- interface FailedAction extends Action {
53
+ export interface FailedAction extends Action {
54
54
  type: AttachmentUploadActionType.Failed;
55
55
  taskId: string;
56
56
  message: string;
@@ -58,20 +58,20 @@ interface FailedAction extends Action {
58
58
  /**
59
59
  * @private
60
60
  */
61
- interface RemoveAction extends Action {
61
+ export interface RemoveAction extends Action {
62
62
  type: AttachmentUploadActionType.Remove;
63
63
  id: string;
64
64
  }
65
65
  /**
66
66
  * @private
67
67
  */
68
- interface ClearAction extends Action {
68
+ export interface ClearAction extends Action {
69
69
  type: AttachmentUploadActionType.Clear;
70
70
  }
71
71
  /**
72
72
  * @private
73
73
  */
74
- export type Actions = SetAction | ProgressAction | CompleteAction | FailedAction | RemoveAction | ClearAction;
74
+ type Actions = SetAction | ProgressAction | CompleteAction | FailedAction | RemoveAction | ClearAction;
75
75
  /**
76
76
  * @internal
77
77
  */
@@ -1 +1 @@
1
- {"version":3,"file":"AttachmentUpload.js","sourceRoot":"","sources":["../../../../../../../../react-composites/src/composites/ChatComposite/file-sharing/AttachmentUpload.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAelC;;GAEG;AACH,MAAM,CAAN,IAAY,0BAOX;AAPD,WAAY,0BAA0B;IACpC,yCAAW,CAAA;IACX,mDAAqB,CAAA;IACrB,qDAAuB,CAAA;IACvB,+CAAiB,CAAA;IACjB,+CAAiB,CAAA;IACjB,6CAAe,CAAA;AACjB,CAAC,EAPW,0BAA0B,KAA1B,0BAA0B,QAOrC;AAyED,mDAAmD;AACnD;;GAEG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,KAAyB,EAAE,MAAe,EAAsB,EAAE;IACxG,QAAQ,MAAM,CAAC,IAAI,EAAE,CAAC;QACpB,KAAK,0BAA0B,CAAC,GAAG;YACjC,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QAE1E,KAAK,0BAA0B,CAAC,SAAS;YACvC,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CACrB,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,MAAM;gBACxB,CAAC,iCAAM,CAAC,KAAE,QAAQ,kCAAO,CAAC,CAAC,QAAQ,KAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,EAAE,QAAQ,EAAE,CAAC,OAChF,CAAC,CAAC,CAAC,CACN,CAAC;QAEJ,KAAK,0BAA0B,CAAC,MAAM;YACpC,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CACrB,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,MAAM;gBACxB,CAAC,iCACM,CAAC,KACJ,QAAQ,kCACH,CAAC,CAAC,QAAQ,KACb,KAAK,EAAE;4BACL,OAAO,EAAE,MAAM,CAAC,OAAO;yBACxB,OAGP,CAAC,CAAC,CAAC,CACN,CAAC;QAEJ,KAAK,0BAA0B,CAAC,MAAM;YACpC,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,KAAK,MAAM,CAAC,EAAE,CAAC,CAAC;QAE3F,KAAK,0BAA0B,CAAC,QAAQ;YACtC,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CACrB,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,MAAM,CAAC,CAAC,iCAAM,CAAC,KAAE,QAAQ,kCAAO,CAAC,CAAC,QAAQ,KAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,OAAK,CAAC,CAAC,CAAC,CAClG,CAAC;QAEJ,KAAK,0BAA0B,CAAC,KAAK;YACnC,OAAO,EAAE,CAAC;QACZ;YACE,OAAO,KAAK,CAAC;IACjB,CAAC;AACH,CAAC,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\n/* @conditional-compile-remove(file-sharing-acs) */\nimport { AttachmentUploadTask, AttachmentSelectionHandler, AttachmentActionHandler } from '@internal/react-components';\n/* @conditional-compile-remove(file-sharing-acs) */\nimport { AttachmentMetadata, AttachmentMetadataInProgress, AttachmentProgressError } from '@internal/acs-ui-common';\n\n/* @conditional-compile-remove(file-sharing-acs) */\n/**\n * @internal\n */\nexport interface AttachmentUpload extends AttachmentUploadTask {\n metadata: AttachmentMetadataInProgress;\n}\n\n/**\n * @private\n */\nexport enum AttachmentUploadActionType {\n Set = 'set',\n Progress = 'progress',\n Completed = 'completed',\n Failed = 'failed',\n Remove = 'remove',\n Clear = 'clear'\n}\n\n/* @conditional-compile-remove(file-sharing-acs) */\n/**\n * @private\n */\ninterface Action {\n type: AttachmentUploadActionType;\n}\n\n/* @conditional-compile-remove(file-sharing-acs) */\n/**\n * @private\n */\ninterface SetAction extends Action {\n type: AttachmentUploadActionType.Set;\n newUploads: AttachmentUpload[];\n}\n\n/* @conditional-compile-remove(file-sharing-acs) */\n/**\n * @private\n */\ninterface ProgressAction extends Action {\n type: AttachmentUploadActionType.Progress;\n taskId: string;\n progress: number;\n}\n\n/* @conditional-compile-remove(file-sharing-acs) */\n/**\n * @private\n */\ninterface CompleteAction extends Action {\n type: AttachmentUploadActionType.Completed;\n taskId: string;\n id: string;\n url: string;\n}\n\n/* @conditional-compile-remove(file-sharing-acs) */\n/**\n * @private\n */\ninterface FailedAction extends Action {\n type: AttachmentUploadActionType.Failed;\n taskId: string;\n message: string;\n}\n\n/* @conditional-compile-remove(file-sharing-acs) */\n/**\n * @private\n */\ninterface RemoveAction extends Action {\n type: AttachmentUploadActionType.Remove;\n id: string;\n}\n\n/* @conditional-compile-remove(file-sharing-acs) */\n/**\n * @private\n */\ninterface ClearAction extends Action {\n type: AttachmentUploadActionType.Clear;\n}\n\n/* @conditional-compile-remove(file-sharing-acs) */\n/**\n * @private\n */\nexport type Actions = SetAction | ProgressAction | CompleteAction | FailedAction | RemoveAction | ClearAction;\n\n/* @conditional-compile-remove(file-sharing-acs) */\n/**\n * @internal\n */\nexport const AttachmentUploadReducer = (state: AttachmentUpload[], action: Actions): AttachmentUpload[] => {\n switch (action.type) {\n case AttachmentUploadActionType.Set:\n return state.filter((v) => !v.metadata.error).concat(action.newUploads);\n\n case AttachmentUploadActionType.Completed:\n return state.map((v) =>\n v.taskId === action.taskId\n ? { ...v, metadata: { ...v.metadata, id: action.id, url: action.url, progress: 1 } }\n : v\n );\n\n case AttachmentUploadActionType.Failed:\n return state.map((v) =>\n v.taskId === action.taskId\n ? {\n ...v,\n metadata: {\n ...v.metadata,\n error: {\n message: action.message\n }\n }\n }\n : v\n );\n\n case AttachmentUploadActionType.Remove:\n return state.filter((v) => !v.metadata.error).filter((v) => v.metadata.id !== action.id);\n\n case AttachmentUploadActionType.Progress:\n return state.map((v) =>\n v.taskId === action.taskId ? { ...v, metadata: { ...v.metadata, progress: action.progress } } : v\n );\n\n case AttachmentUploadActionType.Clear:\n return [];\n default:\n return state;\n }\n};\n\n/* @conditional-compile-remove(file-sharing-acs) */\nexport type {\n AttachmentMetadata,\n AttachmentSelectionHandler,\n AttachmentActionHandler,\n AttachmentUploadTask,\n AttachmentProgressError\n};\n"]}
1
+ {"version":3,"file":"AttachmentUpload.js","sourceRoot":"","sources":["../../../../../../../../react-composites/src/composites/ChatComposite/file-sharing/AttachmentUpload.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAelC;;GAEG;AACH,MAAM,CAAN,IAAY,0BAOX;AAPD,WAAY,0BAA0B;IACpC,yCAAW,CAAA;IACX,mDAAqB,CAAA;IACrB,qDAAuB,CAAA;IACvB,+CAAiB,CAAA;IACjB,+CAAiB,CAAA;IACjB,6CAAe,CAAA;AACjB,CAAC,EAPW,0BAA0B,KAA1B,0BAA0B,QAOrC;AAyED,mDAAmD;AACnD;;GAEG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,KAAyB,EAAE,MAAe,EAAsB,EAAE;IACxG,QAAQ,MAAM,CAAC,IAAI,EAAE,CAAC;QACpB,KAAK,0BAA0B,CAAC,GAAG;YACjC,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QAE1E,KAAK,0BAA0B,CAAC,SAAS;YACvC,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CACrB,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,MAAM;gBACxB,CAAC,iCAAM,CAAC,KAAE,QAAQ,kCAAO,CAAC,CAAC,QAAQ,KAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,EAAE,QAAQ,EAAE,CAAC,OAChF,CAAC,CAAC,CAAC,CACN,CAAC;QAEJ,KAAK,0BAA0B,CAAC,MAAM;YACpC,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CACrB,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,MAAM;gBACxB,CAAC,iCACM,CAAC,KACJ,QAAQ,kCACH,CAAC,CAAC,QAAQ,KACb,KAAK,EAAE;4BACL,OAAO,EAAE,MAAM,CAAC,OAAO;yBACxB,OAGP,CAAC,CAAC,CAAC,CACN,CAAC;QAEJ,KAAK,0BAA0B,CAAC,MAAM;YACpC,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,KAAK,MAAM,CAAC,EAAE,CAAC,CAAC;QAE3F,KAAK,0BAA0B,CAAC,QAAQ;YACtC,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CACrB,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,MAAM,CAAC,CAAC,iCAAM,CAAC,KAAE,QAAQ,kCAAO,CAAC,CAAC,QAAQ,KAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,OAAK,CAAC,CAAC,CAAC,CAClG,CAAC;QAEJ,KAAK,0BAA0B,CAAC,KAAK;YACnC,OAAO,EAAE,CAAC;QACZ;YACE,OAAO,KAAK,CAAC;IACjB,CAAC;AACH,CAAC,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\n/* @conditional-compile-remove(file-sharing-acs) */\nimport { AttachmentUploadTask, AttachmentSelectionHandler, AttachmentActionHandler } from '@internal/react-components';\n/* @conditional-compile-remove(file-sharing-acs) */\nimport { AttachmentMetadata, AttachmentMetadataInProgress, AttachmentProgressError } from '@internal/acs-ui-common';\n\n/* @conditional-compile-remove(file-sharing-acs) */\n/**\n * @internal\n */\nexport interface AttachmentUpload extends AttachmentUploadTask {\n metadata: AttachmentMetadataInProgress;\n}\n\n/**\n * @private\n */\nexport enum AttachmentUploadActionType {\n Set = 'set',\n Progress = 'progress',\n Completed = 'completed',\n Failed = 'failed',\n Remove = 'remove',\n Clear = 'clear'\n}\n\n/* @conditional-compile-remove(file-sharing-acs) */\n/**\n * @private\n */\nexport interface Action {\n type: AttachmentUploadActionType;\n}\n\n/* @conditional-compile-remove(file-sharing-acs) */\n/**\n * @private\n */\ninterface SetAction extends Action {\n type: AttachmentUploadActionType.Set;\n newUploads: AttachmentUpload[];\n}\n\n/* @conditional-compile-remove(file-sharing-acs) */\n/**\n * @private\n */\nexport interface ProgressAction extends Action {\n type: AttachmentUploadActionType.Progress;\n taskId: string;\n progress: number;\n}\n\n/* @conditional-compile-remove(file-sharing-acs) */\n/**\n * @private\n */\nexport interface CompleteAction extends Action {\n type: AttachmentUploadActionType.Completed;\n taskId: string;\n id: string;\n url: string;\n}\n\n/* @conditional-compile-remove(file-sharing-acs) */\n/**\n * @private\n */\nexport interface FailedAction extends Action {\n type: AttachmentUploadActionType.Failed;\n taskId: string;\n message: string;\n}\n\n/* @conditional-compile-remove(file-sharing-acs) */\n/**\n * @private\n */\nexport interface RemoveAction extends Action {\n type: AttachmentUploadActionType.Remove;\n id: string;\n}\n\n/* @conditional-compile-remove(file-sharing-acs) */\n/**\n * @private\n */\nexport interface ClearAction extends Action {\n type: AttachmentUploadActionType.Clear;\n}\n\n/* @conditional-compile-remove(file-sharing-acs) */\n/**\n * @private\n */\ntype Actions = SetAction | ProgressAction | CompleteAction | FailedAction | RemoveAction | ClearAction;\n\n/* @conditional-compile-remove(file-sharing-acs) */\n/**\n * @internal\n */\nexport const AttachmentUploadReducer = (state: AttachmentUpload[], action: Actions): AttachmentUpload[] => {\n switch (action.type) {\n case AttachmentUploadActionType.Set:\n return state.filter((v) => !v.metadata.error).concat(action.newUploads);\n\n case AttachmentUploadActionType.Completed:\n return state.map((v) =>\n v.taskId === action.taskId\n ? { ...v, metadata: { ...v.metadata, id: action.id, url: action.url, progress: 1 } }\n : v\n );\n\n case AttachmentUploadActionType.Failed:\n return state.map((v) =>\n v.taskId === action.taskId\n ? {\n ...v,\n metadata: {\n ...v.metadata,\n error: {\n message: action.message\n }\n }\n }\n : v\n );\n\n case AttachmentUploadActionType.Remove:\n return state.filter((v) => !v.metadata.error).filter((v) => v.metadata.id !== action.id);\n\n case AttachmentUploadActionType.Progress:\n return state.map((v) =>\n v.taskId === action.taskId ? { ...v, metadata: { ...v.metadata, progress: action.progress } } : v\n );\n\n case AttachmentUploadActionType.Clear:\n return [];\n default:\n return state;\n }\n};\n\n/* @conditional-compile-remove(file-sharing-acs) */\nexport type {\n AttachmentMetadata,\n AttachmentSelectionHandler,\n AttachmentActionHandler,\n AttachmentUploadTask,\n AttachmentProgressError\n};\n"]}
@@ -1,6 +1,6 @@
1
1
  import React from 'react';
2
2
  import { SendBoxStylesProps } from "../../../../react-components/src";
3
- import { RichTextEditorOptions } from "../../../../react-components/src";
3
+ import { RichTextSendBoxOptions } from "../../../../react-components/src";
4
4
  import { RichTextSendBoxProps } from "../../../../react-components/src";
5
5
  import { AttachmentMetadataInProgress, MessageOptions } from "../../../../acs-ui-common/src";
6
6
  /**
@@ -20,12 +20,9 @@ export type SendBoxPickerProps = {
20
20
  styles?: SendBoxStylesProps;
21
21
  autoFocus?: 'sendBoxTextField';
22
22
  onSendMessage: (content: string, options?: MessageOptions) => Promise<void>;
23
- richTextEditorOptions?: RichTextEditorOptions;
23
+ richTextEditorOptions?: RichTextSendBoxOptions;
24
24
  attachments?: AttachmentMetadataInProgress[];
25
25
  onCancelAttachmentUpload?: (attachmentId: string) => void;
26
- onUploadInlineImage?: (imageUrl: string, imageFileName: string) => void;
27
- imageUploadsInProgress?: AttachmentMetadataInProgress[];
28
- onCancelInlineImageUpload?: (imageId: string) => void;
29
26
  };
30
27
  /**
31
28
  * @private
@@ -1 +1 @@
1
- {"version":3,"file":"SendBoxPicker.js","sourceRoot":"","sources":["../../../../../../../react-composites/src/composites/common/SendBoxPicker.tsx"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAElC,OAAO,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,EAAE,OAAO,EAAsB,yCAAmC;AAGzE,OAAO,EAAE,WAAW,EAAE,MAAM,oCAAoC,CAAC;AACjE,qEAAqE;AACrE,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACjC,qEAAqE;AACrE,OAAO,EAAE,cAAc,EAAwB,yCAAmC;AAIlF,qEAAqE;AACrE;;GAEG;AACH,MAAM,sBAAsB,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,CAC7C,MAAM,CAAC,0BAA0B,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,sBAAsB,EAAE,CAAC,CAAC,CAClG,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,GAEhC,EAAE,CAAC,MAAM,CAAC,0BAA0B,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,sBAAsB,EAAE,CAAC,CAAC,CAAC;AA0BxG;;GAEG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,KAAyB,EAAe,EAAE;IACtE,qEAAqE;IACrE,MAAM,EAAE,qBAAqB,EAAE,GAAG,KAAK,CAAC;IACxC,gEAAgE;IAChE,MAAM,EAAE,OAAO,EAAE,mBAAmB,EAAE,sBAAsB,EAAE,yBAAyB,EAAE,GACvF,qBAAqB,IAAI,EAAE,CAAC;IAE9B,MAAM,YAAY,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC;IAE1C,qEAAqE;IACrE,MAAM,uBAAuB,GAAG,OAAO,CAAC,GAAG,EAAE;QAC3C,OAAO,qBAAqB,KAAK,SAAS,CAAC;IAC7C,CAAC,EAAE,CAAC,qBAAqB,CAAC,CAAC,CAAC;IAE5B,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,oBAAC,OAAO,oBAAK,YAAY,EAAM,KAAK,EAAI,EAAE,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC,CAAC;IAE/F,qEAAqE;IACrE,IAAI,uBAAuB,EAAE,CAAC;QAC5B,OAAO,CACL,oBAAC,cAAc,IAAC,QAAQ,EAAE,OAAO;YAC/B,oBAAC,QAAQ,IAAC,QAAQ,EAAE,OAAO;gBACzB,oBAAC,sBAAsB,oBACjB,KAAK,IACT,OAAO,EAAE,OAAO,EAChB,mBAAmB,EAAE,mBAAmB,EACxC,sBAAsB,EAAE,sBAAsB,EAC9C,yBAAyB,EAAE,yBAAyB,IACpD,CACO,CACI,CAClB,CAAC;IACJ,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport React, { useMemo } from 'react';\nimport { SendBox, SendBoxStylesProps } from '@internal/react-components';\n/* @conditional-compile-remove(rich-text-editor-composite-support) */\nimport { RichTextEditorOptions } from '@internal/react-components';\nimport { usePropsFor } from '../ChatComposite/hooks/usePropsFor';\n/* @conditional-compile-remove(rich-text-editor-composite-support) */\nimport { Suspense } from 'react';\n/* @conditional-compile-remove(rich-text-editor-composite-support) */\nimport { _ErrorBoundary, RichTextSendBoxProps } from '@internal/react-components';\n/* @conditional-compile-remove(file-sharing-acs) */\nimport { AttachmentMetadataInProgress, MessageOptions } from '@internal/acs-ui-common';\n\n/* @conditional-compile-remove(rich-text-editor-composite-support) */\n/**\n * Wrapper for RichTextSendBox component to allow us to use usePropsFor with richTextSendBox with lazy loading\n */\nconst RichTextSendBoxWrapper = React.lazy(() =>\n import('./RichTextSendBoxWrapper').then((module) => ({ default: module.RichTextSendBoxWrapper }))\n);\n\n/**\n * @private\n * Use this function to load RoosterJS dependencies early in the lifecycle.\n * It should be the same import as used for lazy loading.\n *\n/* @conditional-compile-remove(rich-text-editor-composite-support)\n */\nexport const loadRichTextSendBox = (): Promise<{\n default: React.ComponentType<RichTextSendBoxProps>;\n}> => import('./RichTextSendBoxWrapper').then((module) => ({ default: module.RichTextSendBoxWrapper }));\n\n/**\n * @private\n */\nexport type SendBoxPickerProps = {\n styles?: SendBoxStylesProps;\n autoFocus?: 'sendBoxTextField';\n onSendMessage: (\n content: string,\n /* @conditional-compile-remove(file-sharing-acs) */ options?: MessageOptions\n ) => Promise<void>;\n /* @conditional-compile-remove(rich-text-editor-composite-support) */\n richTextEditorOptions?: RichTextEditorOptions;\n /* @conditional-compile-remove(file-sharing-acs) */\n attachments?: AttachmentMetadataInProgress[];\n /* @conditional-compile-remove(file-sharing-acs) */\n onCancelAttachmentUpload?: (attachmentId: string) => void;\n /* @conditional-compile-remove(rich-text-editor-image-upload) */\n onUploadInlineImage?: (imageUrl: string, imageFileName: string) => void;\n /* @conditional-compile-remove(rich-text-editor-image-upload) */\n imageUploadsInProgress?: AttachmentMetadataInProgress[];\n /* @conditional-compile-remove(rich-text-editor-image-upload) */\n onCancelInlineImageUpload?: (imageId: string) => void;\n};\n\n/**\n * @private\n */\nexport const SendBoxPicker = (props: SendBoxPickerProps): JSX.Element => {\n /* @conditional-compile-remove(rich-text-editor-composite-support) */\n const { richTextEditorOptions } = props;\n /* @conditional-compile-remove(rich-text-editor-image-upload) */\n const { onPaste, onUploadInlineImage, imageUploadsInProgress, onCancelInlineImageUpload } =\n richTextEditorOptions || {};\n\n const sendBoxProps = usePropsFor(SendBox);\n\n /* @conditional-compile-remove(rich-text-editor-composite-support) */\n const isRichTextEditorEnabled = useMemo(() => {\n return richTextEditorOptions !== undefined;\n }, [richTextEditorOptions]);\n\n const sendBox = useMemo(() => <SendBox {...sendBoxProps} {...props} />, [props, sendBoxProps]);\n\n /* @conditional-compile-remove(rich-text-editor-composite-support) */\n if (isRichTextEditorEnabled) {\n return (\n <_ErrorBoundary fallback={sendBox}>\n <Suspense fallback={sendBox}>\n <RichTextSendBoxWrapper\n {...props}\n onPaste={onPaste}\n onUploadInlineImage={onUploadInlineImage}\n imageUploadsInProgress={imageUploadsInProgress}\n onCancelInlineImageUpload={onCancelInlineImageUpload}\n />\n </Suspense>\n </_ErrorBoundary>\n );\n }\n return sendBox;\n};\n"]}
1
+ {"version":3,"file":"SendBoxPicker.js","sourceRoot":"","sources":["../../../../../../../react-composites/src/composites/common/SendBoxPicker.tsx"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAElC,OAAO,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,EAAE,OAAO,EAAsB,yCAAmC;AAGzE,OAAO,EAAE,WAAW,EAAE,MAAM,oCAAoC,CAAC;AACjE,qEAAqE;AACrE,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACjC,qEAAqE;AACrE,OAAO,EAAE,cAAc,EAAwB,yCAAmC;AAIlF,qEAAqE;AACrE;;GAEG;AACH,MAAM,sBAAsB,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,CAC7C,MAAM,CAAC,0BAA0B,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,sBAAsB,EAAE,CAAC,CAAC,CAClG,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,GAEhC,EAAE,CAAC,MAAM,CAAC,0BAA0B,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,sBAAsB,EAAE,CAAC,CAAC,CAAC;AAoBxG;;GAEG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,KAAyB,EAAe,EAAE;IACtE,qEAAqE;IACrE,MAAM,EAAE,qBAAqB,EAAE,GAAG,KAAK,CAAC;IACxC,gEAAgE;IAChE,MAAM,EAAE,OAAO,EAAE,mBAAmB,EAAE,sBAAsB,EAAE,yBAAyB,EAAE,GACvF,qBAAqB,IAAI,EAAE,CAAC;IAE9B,MAAM,YAAY,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC;IAE1C,qEAAqE;IACrE,MAAM,uBAAuB,GAAG,OAAO,CAAC,GAAG,EAAE;QAC3C,OAAO,qBAAqB,KAAK,SAAS,CAAC;IAC7C,CAAC,EAAE,CAAC,qBAAqB,CAAC,CAAC,CAAC;IAE5B,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,oBAAC,OAAO,oBAAK,YAAY,EAAM,KAAK,EAAI,EAAE,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC,CAAC;IAE/F,qEAAqE;IACrE,IAAI,uBAAuB,EAAE,CAAC;QAC5B,OAAO,CACL,oBAAC,cAAc,IAAC,QAAQ,EAAE,OAAO;YAC/B,oBAAC,QAAQ,IAAC,QAAQ,EAAE,OAAO;gBACzB,oBAAC,sBAAsB,oBACjB,KAAK,IACT,OAAO,EAAE,OAAO,EAChB,mBAAmB,EAAE,mBAAmB,EACxC,sBAAsB,EAAE,sBAAsB,EAC9C,yBAAyB,EAAE,yBAAyB,IACpD,CACO,CACI,CAClB,CAAC;IACJ,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport React, { useMemo } from 'react';\nimport { SendBox, SendBoxStylesProps } from '@internal/react-components';\n/* @conditional-compile-remove(rich-text-editor-composite-support) */\nimport { RichTextSendBoxOptions } from '@internal/react-components';\nimport { usePropsFor } from '../ChatComposite/hooks/usePropsFor';\n/* @conditional-compile-remove(rich-text-editor-composite-support) */\nimport { Suspense } from 'react';\n/* @conditional-compile-remove(rich-text-editor-composite-support) */\nimport { _ErrorBoundary, RichTextSendBoxProps } from '@internal/react-components';\n/* @conditional-compile-remove(file-sharing-acs) */\nimport { AttachmentMetadataInProgress, MessageOptions } from '@internal/acs-ui-common';\n\n/* @conditional-compile-remove(rich-text-editor-composite-support) */\n/**\n * Wrapper for RichTextSendBox component to allow us to use usePropsFor with richTextSendBox with lazy loading\n */\nconst RichTextSendBoxWrapper = React.lazy(() =>\n import('./RichTextSendBoxWrapper').then((module) => ({ default: module.RichTextSendBoxWrapper }))\n);\n\n/**\n * @private\n * Use this function to load RoosterJS dependencies early in the lifecycle.\n * It should be the same import as used for lazy loading.\n *\n/* @conditional-compile-remove(rich-text-editor-composite-support)\n */\nexport const loadRichTextSendBox = (): Promise<{\n default: React.ComponentType<RichTextSendBoxProps>;\n}> => import('./RichTextSendBoxWrapper').then((module) => ({ default: module.RichTextSendBoxWrapper }));\n\n/**\n * @private\n */\nexport type SendBoxPickerProps = {\n styles?: SendBoxStylesProps;\n autoFocus?: 'sendBoxTextField';\n onSendMessage: (\n content: string,\n /* @conditional-compile-remove(file-sharing-acs) */ options?: MessageOptions\n ) => Promise<void>;\n /* @conditional-compile-remove(rich-text-editor-composite-support) */\n richTextEditorOptions?: RichTextSendBoxOptions;\n /* @conditional-compile-remove(file-sharing-acs) */\n attachments?: AttachmentMetadataInProgress[];\n /* @conditional-compile-remove(file-sharing-acs) */\n onCancelAttachmentUpload?: (attachmentId: string) => void;\n};\n\n/**\n * @private\n */\nexport const SendBoxPicker = (props: SendBoxPickerProps): JSX.Element => {\n /* @conditional-compile-remove(rich-text-editor-composite-support) */\n const { richTextEditorOptions } = props;\n /* @conditional-compile-remove(rich-text-editor-image-upload) */\n const { onPaste, onUploadInlineImage, imageUploadsInProgress, onCancelInlineImageUpload } =\n richTextEditorOptions || {};\n\n const sendBoxProps = usePropsFor(SendBox);\n\n /* @conditional-compile-remove(rich-text-editor-composite-support) */\n const isRichTextEditorEnabled = useMemo(() => {\n return richTextEditorOptions !== undefined;\n }, [richTextEditorOptions]);\n\n const sendBox = useMemo(() => <SendBox {...sendBoxProps} {...props} />, [props, sendBoxProps]);\n\n /* @conditional-compile-remove(rich-text-editor-composite-support) */\n if (isRichTextEditorEnabled) {\n return (\n <_ErrorBoundary fallback={sendBox}>\n <Suspense fallback={sendBox}>\n <RichTextSendBoxWrapper\n {...props}\n onPaste={onPaste}\n onUploadInlineImage={onUploadInlineImage}\n imageUploadsInProgress={imageUploadsInProgress}\n onCancelInlineImageUpload={onCancelInlineImageUpload}\n />\n </Suspense>\n </_ErrorBoundary>\n );\n }\n return sendBox;\n};\n"]}
@@ -12,4 +12,8 @@ export declare const TEAMS_LIMITATION_LEARN_MORE = "https://learn.microsoft.com/
12
12
  * Changing this value will require updating the API documentation.
13
13
  */
14
14
  export declare const CHAT_CONTAINER_MIN_WIDTH_REM = 17.5;
15
+ /**
16
+ * @private
17
+ */
18
+ export declare const SEND_BOX_UPLOADS_KEY_VALUE = "send-box";
15
19
  //# sourceMappingURL=constants.d.ts.map
@@ -14,4 +14,8 @@ export const TEAMS_LIMITATION_LEARN_MORE = 'https://learn.microsoft.com/en-us/az
14
14
  * Changing this value will require updating the API documentation.
15
15
  */
16
16
  export const CHAT_CONTAINER_MIN_WIDTH_REM = 17.5;
17
+ /**
18
+ * @private
19
+ */
20
+ export const SEND_BOX_UPLOADS_KEY_VALUE = 'send-box';
17
21
  //# sourceMappingURL=constants.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../../../../../react-composites/src/composites/common/constants.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAElC;;GAEG;AACH,MAAM,CAAC,MAAM,4BAA4B,GAAG,CAAC,eAAe,EAAE,eAAe,CAAC,CAAC;AAE/E;;GAEG;AACH,MAAM,CAAC,MAAM,2BAA2B,GACtC,yHAAyH,CAAC;AAE5H;;;;GAIG;AACH,MAAM,CAAC,MAAM,4BAA4B,GAAG,IAAI,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\n/**\n * @private\n */\nexport const UNSUPPORTED_CHAT_THREAD_TYPE = ['@thread.tacv2', '@thread.skype'];\n\n/**\n * @private\n */\nexport const TEAMS_LIMITATION_LEARN_MORE =\n 'https://learn.microsoft.com/en-us/azure/communication-services/concepts/join-teams-meeting#limitations-and-known-issues';\n\n/**\n * @remarks\n * This value is publicly documented in the ChatComposite API documentation.\n * Changing this value will require updating the API documentation.\n */\nexport const CHAT_CONTAINER_MIN_WIDTH_REM = 17.5;\n"]}
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../../../../../react-composites/src/composites/common/constants.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAElC;;GAEG;AACH,MAAM,CAAC,MAAM,4BAA4B,GAAG,CAAC,eAAe,EAAE,eAAe,CAAC,CAAC;AAE/E;;GAEG;AACH,MAAM,CAAC,MAAM,2BAA2B,GACtC,yHAAyH,CAAC;AAE5H;;;;GAIG;AACH,MAAM,CAAC,MAAM,4BAA4B,GAAG,IAAI,CAAC;AAEjD;;GAEG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAAG,UAAU,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\n/**\n * @private\n */\nexport const UNSUPPORTED_CHAT_THREAD_TYPE = ['@thread.tacv2', '@thread.skype'];\n\n/**\n * @private\n */\nexport const TEAMS_LIMITATION_LEARN_MORE =\n 'https://learn.microsoft.com/en-us/azure/communication-services/concepts/join-teams-meeting#limitations-and-known-issues';\n\n/**\n * @remarks\n * This value is publicly documented in the ChatComposite API documentation.\n * Changing this value will require updating the API documentation.\n */\nexport const CHAT_CONTAINER_MIN_WIDTH_REM = 17.5;\n\n/**\n * @private\n */\nexport const SEND_BOX_UPLOADS_KEY_VALUE = 'send-box';\n"]}
@@ -338,11 +338,16 @@
338
338
  "endCallConfirmDialogTitle": "هل تريد إنهاء المكالمة؟",
339
339
  "endCallConfirmDialogContent": "ستنهي المكالمة لدى الجميع.",
340
340
  "invalidMeetingIdentifier": "معرف اجتماع أو رمز مرور غير صالح",
341
- "pinParticipantMenuLabel": "Pin for me",
342
- "pinParticipantLimitReachedMenuLabel": "Pin (limit reached)",
343
- "unpinParticipantMenuLabel": "Unpin",
344
- "pinParticipantMenuItemAriaLabel": "Pin",
345
- "unpinParticipantMenuItemAriaLabel": "Unpin"
341
+ "pinParticipantMenuLabel": "تثبيت نيابة عني",
342
+ "pinParticipantLimitReachedMenuLabel": "تثبيت (تم بلوغ الحد الأقصى)",
343
+ "unpinParticipantMenuLabel": "إزالة التثبيت",
344
+ "pinParticipantMenuItemAriaLabel": "تثبيت",
345
+ "unpinParticipantMenuItemAriaLabel": "إزالة التثبيت",
346
+ "muteAllMenuLabel": "كتم صوت الجميع",
347
+ "muteAllDialogTitle": "هل تريد كتم صوت الجميع؟",
348
+ "muteAllDialogContent": "سيؤدي ذلك إلى كتم صوت الجميع في الاجتماع باستثننائك.",
349
+ "muteAllConfirmButtonLabel": "كتم صوت الجميع",
350
+ "muteAllCancelButtonLabel": "إلغاء"
346
351
  },
347
352
  "chat": {
348
353
  "chatListHeader": "في هذه الدردشة",
@@ -342,7 +342,12 @@
342
342
  "pinParticipantLimitReachedMenuLabel": "Připnout (dosáhlo se limitu)",
343
343
  "unpinParticipantMenuLabel": "Odepnout",
344
344
  "pinParticipantMenuItemAriaLabel": "Připnout",
345
- "unpinParticipantMenuItemAriaLabel": "Odepnout"
345
+ "unpinParticipantMenuItemAriaLabel": "Odepnout",
346
+ "muteAllMenuLabel": "Ztlumit všechny",
347
+ "muteAllDialogTitle": "Chcete všechny ztlumit?",
348
+ "muteAllDialogContent": "Ztlumí všechny účastníky schůzky kromě vás.",
349
+ "muteAllConfirmButtonLabel": "Ztlumit všechny",
350
+ "muteAllCancelButtonLabel": "Zrušit"
346
351
  },
347
352
  "chat": {
348
353
  "chatListHeader": "V tomto chatu",
@@ -342,7 +342,12 @@
342
342
  "pinParticipantLimitReachedMenuLabel": "Anheften (Limit erreicht)",
343
343
  "unpinParticipantMenuLabel": "Lösen",
344
344
  "pinParticipantMenuItemAriaLabel": "Anheften",
345
- "unpinParticipantMenuItemAriaLabel": "Lösen"
345
+ "unpinParticipantMenuItemAriaLabel": "Lösen",
346
+ "muteAllMenuLabel": "Alle stummschalten",
347
+ "muteAllDialogTitle": "Alle stummschalten?",
348
+ "muteAllDialogContent": "Hierdurch werden alle in der Besprechung stummgeschaltet, außer Ihnen.",
349
+ "muteAllConfirmButtonLabel": "Alle stummschalten",
350
+ "muteAllCancelButtonLabel": "Abbrechen"
346
351
  },
347
352
  "chat": {
348
353
  "chatListHeader": "In diesem Chat",
@@ -342,7 +342,12 @@
342
342
  "pinParticipantLimitReachedMenuLabel": "Pin (limit reached)",
343
343
  "unpinParticipantMenuLabel": "Unpin",
344
344
  "pinParticipantMenuItemAriaLabel": "Pin",
345
- "unpinParticipantMenuItemAriaLabel": "Unpin"
345
+ "unpinParticipantMenuItemAriaLabel": "Unpin",
346
+ "muteAllMenuLabel": "Mute all",
347
+ "muteAllDialogTitle": "Mute everyone?",
348
+ "muteAllDialogContent": "This will mute everyone in the meeting but you.",
349
+ "muteAllConfirmButtonLabel": "Mute all",
350
+ "muteAllCancelButtonLabel": "Cancel"
346
351
  },
347
352
  "chat": {
348
353
  "chatListHeader": "In this chat",
@@ -342,7 +342,12 @@
342
342
  "pinParticipantLimitReachedMenuLabel": "Pin (límite alcanzado)",
343
343
  "unpinParticipantMenuLabel": "Desanclar",
344
344
  "pinParticipantMenuItemAriaLabel": "Anclar",
345
- "unpinParticipantMenuItemAriaLabel": "Desanclar"
345
+ "unpinParticipantMenuItemAriaLabel": "Desanclar",
346
+ "muteAllMenuLabel": "Silenciar todo",
347
+ "muteAllDialogTitle": "¿Silenciar a todos?",
348
+ "muteAllDialogContent": "Esto silenciará a todos los participantes de la reunión, excepto usted.",
349
+ "muteAllConfirmButtonLabel": "Silenciar todo",
350
+ "muteAllCancelButtonLabel": "Cancelar"
346
351
  },
347
352
  "chat": {
348
353
  "chatListHeader": "En este chat",
@@ -338,11 +338,16 @@
338
338
  "endCallConfirmDialogTitle": "Lopetetaanko puhelu?",
339
339
  "endCallConfirmDialogContent": "Puhelu lopetetaan kaikkien osallistujien osalta.",
340
340
  "invalidMeetingIdentifier": "Virheellinen kokoustunnus tai tunnuskoodi",
341
- "pinParticipantMenuLabel": "Pin for me",
342
- "pinParticipantLimitReachedMenuLabel": "Pin (limit reached)",
343
- "unpinParticipantMenuLabel": "Unpin",
344
- "pinParticipantMenuItemAriaLabel": "Pin",
345
- "unpinParticipantMenuItemAriaLabel": "Unpin"
341
+ "pinParticipantMenuLabel": "Kiinnitä minulle",
342
+ "pinParticipantLimitReachedMenuLabel": "Kiinnitä (enimmäisraja saavutettu)",
343
+ "unpinParticipantMenuLabel": "Poista kiinnitys",
344
+ "pinParticipantMenuItemAriaLabel": "Kiinnitä",
345
+ "unpinParticipantMenuItemAriaLabel": "Poista kiinnitys",
346
+ "muteAllMenuLabel": "Mykistä kaikki",
347
+ "muteAllDialogTitle": "Mykistetäänkö kaikki?",
348
+ "muteAllDialogContent": "Tämä toiminto mykistää kaikki muut kokouksen osallistujat paitsi sinut.",
349
+ "muteAllConfirmButtonLabel": "Mykistä kaikki",
350
+ "muteAllCancelButtonLabel": "Peruuta"
346
351
  },
347
352
  "chat": {
348
353
  "chatListHeader": "Tässä keskustelussa",
@@ -338,11 +338,16 @@
338
338
  "endCallConfirmDialogTitle": "Mettre fin à l'appel ?",
339
339
  "endCallConfirmDialogContent": "Vous mettrez fin à l'appel pour tout le monde.",
340
340
  "invalidMeetingIdentifier": "ID ou code secret de réunion non valide",
341
- "pinParticipantMenuLabel": "Pin for me",
342
- "pinParticipantLimitReachedMenuLabel": "Pin (limit reached)",
343
- "unpinParticipantMenuLabel": "Unpin",
344
- "pinParticipantMenuItemAriaLabel": "Pin",
345
- "unpinParticipantMenuItemAriaLabel": "Unpin"
341
+ "pinParticipantMenuLabel": "Épingler pour moi",
342
+ "pinParticipantLimitReachedMenuLabel": "Épingler (limite atteinte)",
343
+ "unpinParticipantMenuLabel": "Désépingler",
344
+ "pinParticipantMenuItemAriaLabel": "Épingler",
345
+ "unpinParticipantMenuItemAriaLabel": "Désépingler",
346
+ "muteAllMenuLabel": "Désactiver le son de tous",
347
+ "muteAllDialogTitle": "Désactiver le son de tout le monde ?",
348
+ "muteAllDialogContent": "Cette opération va désactiver le son de tous les participants à la réunion, sauf vous.",
349
+ "muteAllConfirmButtonLabel": "Désactiver le son de tous",
350
+ "muteAllCancelButtonLabel": "Annuler"
346
351
  },
347
352
  "chat": {
348
353
  "chatListHeader": "Dans cette conversation",
@@ -338,11 +338,16 @@
338
338
  "endCallConfirmDialogTitle": "לסיים את השיחה?",
339
339
  "endCallConfirmDialogContent": "פעולה זאת תסיים את השיחה עבור כל המשתתפים.",
340
340
  "invalidMeetingIdentifier": "מזהה פגישה או קוד סיסמה לא חוקיים",
341
- "pinParticipantMenuLabel": "Pin for me",
342
- "pinParticipantLimitReachedMenuLabel": "Pin (limit reached)",
343
- "unpinParticipantMenuLabel": "Unpin",
344
- "pinParticipantMenuItemAriaLabel": "Pin",
345
- "unpinParticipantMenuItemAriaLabel": "Unpin"
341
+ "pinParticipantMenuLabel": "הצמד עבורי",
342
+ "pinParticipantLimitReachedMenuLabel": "הצמדה (הגעת למגבלה)",
343
+ "unpinParticipantMenuLabel": "בטל הצמדה",
344
+ "pinParticipantMenuItemAriaLabel": "הצמד",
345
+ "unpinParticipantMenuItemAriaLabel": "בטל הצמדה",
346
+ "muteAllMenuLabel": "השתק הכל",
347
+ "muteAllDialogTitle": "האם להשתיק את כולם?",
348
+ "muteAllDialogContent": "פעולה זו תשתיק את כל האנשים בפגישה חוץ ממך.",
349
+ "muteAllConfirmButtonLabel": "השתק הכל",
350
+ "muteAllCancelButtonLabel": "ביטול"
346
351
  },
347
352
  "chat": {
348
353
  "chatListHeader": "בצ'אט זה",
@@ -338,11 +338,16 @@
338
338
  "endCallConfirmDialogTitle": "Vuoi terminare la chiamata?",
339
339
  "endCallConfirmDialogContent": "La chiamata terminerà per tutti gli utenti.",
340
340
  "invalidMeetingIdentifier": "ID riunione o passcode non valido",
341
- "pinParticipantMenuLabel": "Pin for me",
342
- "pinParticipantLimitReachedMenuLabel": "Pin (limit reached)",
343
- "unpinParticipantMenuLabel": "Unpin",
344
- "pinParticipantMenuItemAriaLabel": "Pin",
345
- "unpinParticipantMenuItemAriaLabel": "Unpin"
341
+ "pinParticipantMenuLabel": "Aggiungi per me",
342
+ "pinParticipantLimitReachedMenuLabel": "Segnaposto (limite raggiunto)",
343
+ "unpinParticipantMenuLabel": "Rimuovere dall’alto",
344
+ "pinParticipantMenuItemAriaLabel": "Aggiungi in alto",
345
+ "unpinParticipantMenuItemAriaLabel": "Rimuovere dall’alto",
346
+ "muteAllMenuLabel": "Disattivare l'audio di tutti",
347
+ "muteAllDialogTitle": "Disattivare l'audio di tutti?",
348
+ "muteAllDialogContent": "Questa operazione disattiverà l'audio di tutte le persone nella riunione, tranne te.",
349
+ "muteAllConfirmButtonLabel": "Disattivare l'audio di tutti",
350
+ "muteAllCancelButtonLabel": "Annullare"
346
351
  },
347
352
  "chat": {
348
353
  "chatListHeader": "In questa chat",
@@ -342,7 +342,12 @@
342
342
  "pinParticipantLimitReachedMenuLabel": "ピン留め (上限に達しました)",
343
343
  "unpinParticipantMenuLabel": "ピン留めを外す",
344
344
  "pinParticipantMenuItemAriaLabel": "ピン留めします",
345
- "unpinParticipantMenuItemAriaLabel": "ピン留めを外す"
345
+ "unpinParticipantMenuItemAriaLabel": "ピン留めを外す",
346
+ "muteAllMenuLabel": "全員をミュート",
347
+ "muteAllDialogTitle": "全員をミュートにしますか?",
348
+ "muteAllDialogContent": "会議に参加している自分以外の全員がミュートになります。",
349
+ "muteAllConfirmButtonLabel": "全員をミュート",
350
+ "muteAllCancelButtonLabel": "取り消す"
346
351
  },
347
352
  "chat": {
348
353
  "chatListHeader": "このチャット内",
@@ -338,11 +338,16 @@
338
338
  "endCallConfirmDialogTitle": "통화를 종료하시겠습니까?",
339
339
  "endCallConfirmDialogContent": "모든 사용자의 통화가 종료됩니다.",
340
340
  "invalidMeetingIdentifier": "유효하지 않은 모임 ID 또는 암호",
341
- "pinParticipantMenuLabel": "Pin for me",
342
- "pinParticipantLimitReachedMenuLabel": "Pin (limit reached)",
343
- "unpinParticipantMenuLabel": "Unpin",
344
- "pinParticipantMenuItemAriaLabel": "Pin",
345
- "unpinParticipantMenuItemAriaLabel": "Unpin"
341
+ "pinParticipantMenuLabel": "고정",
342
+ "pinParticipantLimitReachedMenuLabel": "고정(제한에 도달함)",
343
+ "unpinParticipantMenuLabel": "고정 해제",
344
+ "pinParticipantMenuItemAriaLabel": "고정",
345
+ "unpinParticipantMenuItemAriaLabel": "고정 해제",
346
+ "muteAllMenuLabel": "모두 음소거",
347
+ "muteAllDialogTitle": "모든 사용자를 음소거하시겠습니까?",
348
+ "muteAllDialogContent": "나를 제외한 모임 참여자를 모두 음소거합니다.",
349
+ "muteAllConfirmButtonLabel": "모두 음소거",
350
+ "muteAllCancelButtonLabel": "취소"
346
351
  },
347
352
  "chat": {
348
353
  "chatListHeader": "채팅 참가자",
@@ -342,7 +342,12 @@
342
342
  "pinParticipantLimitReachedMenuLabel": "Fest (grensen er nådd)",
343
343
  "unpinParticipantMenuLabel": "Løsne",
344
344
  "pinParticipantMenuItemAriaLabel": "Fest",
345
- "unpinParticipantMenuItemAriaLabel": "Løsne"
345
+ "unpinParticipantMenuItemAriaLabel": "Løsne",
346
+ "muteAllMenuLabel": "Demp alle",
347
+ "muteAllDialogTitle": "Vil du dempe alle?",
348
+ "muteAllDialogContent": "Dette demper alle i møtet, bortsett fra deg selv.",
349
+ "muteAllConfirmButtonLabel": "Demp alle",
350
+ "muteAllCancelButtonLabel": "Avbryt"
346
351
  },
347
352
  "chat": {
348
353
  "chatListHeader": "I denne chatten",
@@ -342,7 +342,12 @@
342
342
  "pinParticipantLimitReachedMenuLabel": "Pin (limiet bereikt)",
343
343
  "unpinParticipantMenuLabel": "Losmaken",
344
344
  "pinParticipantMenuItemAriaLabel": "Vastmaken",
345
- "unpinParticipantMenuItemAriaLabel": "Losmaken"
345
+ "unpinParticipantMenuItemAriaLabel": "Losmaken",
346
+ "muteAllMenuLabel": "Allen dempen",
347
+ "muteAllDialogTitle": "Iedereen dempen?",
348
+ "muteAllDialogContent": "Hiermee wordt iedereen in de vergadering gedempt, behalve u.",
349
+ "muteAllConfirmButtonLabel": "Allen dempen",
350
+ "muteAllCancelButtonLabel": "Annuleren"
346
351
  },
347
352
  "chat": {
348
353
  "chatListHeader": "In deze chat",
@@ -342,7 +342,12 @@
342
342
  "pinParticipantLimitReachedMenuLabel": "Przypięcie (osiągnięto limit)",
343
343
  "unpinParticipantMenuLabel": "Odepnij",
344
344
  "pinParticipantMenuItemAriaLabel": "Przypnij",
345
- "unpinParticipantMenuItemAriaLabel": "Odepnij"
345
+ "unpinParticipantMenuItemAriaLabel": "Odepnij",
346
+ "muteAllMenuLabel": "Wycisz wszystkich",
347
+ "muteAllDialogTitle": "Wyciszyć wszystkich?",
348
+ "muteAllDialogContent": "Spowoduje to wyciszenie wszystkich osób na spotkaniu oprócz Ciebie.",
349
+ "muteAllConfirmButtonLabel": "Wycisz wszystkich",
350
+ "muteAllCancelButtonLabel": "Anuluj"
346
351
  },
347
352
  "chat": {
348
353
  "chatListHeader": "W tym czacie",
@@ -338,11 +338,16 @@
338
338
  "endCallConfirmDialogTitle": "Encerrar a chamada?",
339
339
  "endCallConfirmDialogContent": "Você encerrará a chamada para todos.",
340
340
  "invalidMeetingIdentifier": "ID ou senha de reunião inválida",
341
- "pinParticipantMenuLabel": "Pin for me",
342
- "pinParticipantLimitReachedMenuLabel": "Pin (limit reached)",
343
- "unpinParticipantMenuLabel": "Unpin",
344
- "pinParticipantMenuItemAriaLabel": "Pin",
345
- "unpinParticipantMenuItemAriaLabel": "Unpin"
341
+ "pinParticipantMenuLabel": "Fixar para mim",
342
+ "pinParticipantLimitReachedMenuLabel": "Fixar (limite alcançado)",
343
+ "unpinParticipantMenuLabel": "Desafixar",
344
+ "pinParticipantMenuItemAriaLabel": "Fixar",
345
+ "unpinParticipantMenuItemAriaLabel": "Desafixar",
346
+ "muteAllMenuLabel": "Ativar mudo de todos",
347
+ "muteAllDialogTitle": "Ativar mudo para todos?",
348
+ "muteAllDialogContent": "Isso ativará o mudo para todas as pessoas na reunião, exceto para você.",
349
+ "muteAllConfirmButtonLabel": "Ativar mudo de todos",
350
+ "muteAllCancelButtonLabel": "Cancelar"
346
351
  },
347
352
  "chat": {
348
353
  "chatListHeader": "Neste chat",
@@ -342,7 +342,12 @@
342
342
  "pinParticipantLimitReachedMenuLabel": "Закрепить (достигнуто ограничение)",
343
343
  "unpinParticipantMenuLabel": "Открепить",
344
344
  "pinParticipantMenuItemAriaLabel": "Закрепить",
345
- "unpinParticipantMenuItemAriaLabel": "Открепить"
345
+ "unpinParticipantMenuItemAriaLabel": "Открепить",
346
+ "muteAllMenuLabel": "Отключить все микрофоны",
347
+ "muteAllDialogTitle": "Отключить микрофоны всех участников?",
348
+ "muteAllDialogContent": "Будут отключены микрофоны всех участников собрания, кроме вас.",
349
+ "muteAllConfirmButtonLabel": "Отключить все микрофоны",
350
+ "muteAllCancelButtonLabel": "Отмена"
346
351
  },
347
352
  "chat": {
348
353
  "chatListHeader": "В этом чате",
@@ -338,11 +338,16 @@
338
338
  "endCallConfirmDialogTitle": "Vill du avsluta samtalet?",
339
339
  "endCallConfirmDialogContent": "Du avslutar samtalet för alla.",
340
340
  "invalidMeetingIdentifier": "Ogiltigt mötes-ID eller lösenord",
341
- "pinParticipantMenuLabel": "Pin for me",
342
- "pinParticipantLimitReachedMenuLabel": "Pin (limit reached)",
343
- "unpinParticipantMenuLabel": "Unpin",
344
- "pinParticipantMenuItemAriaLabel": "Pin",
345
- "unpinParticipantMenuItemAriaLabel": "Unpin"
341
+ "pinParticipantMenuLabel": "Fäst åt mig",
342
+ "pinParticipantLimitReachedMenuLabel": "Fäst (gränsen har nåtts)",
343
+ "unpinParticipantMenuLabel": "Ta bort",
344
+ "pinParticipantMenuItemAriaLabel": "Fäst",
345
+ "unpinParticipantMenuItemAriaLabel": "Ta bort",
346
+ "muteAllMenuLabel": "Stäng av ljudet för alla",
347
+ "muteAllDialogTitle": "Stäng av ljudet för alla?",
348
+ "muteAllDialogContent": "Detta stänger av ljudet för alla i mötet utom för dig.",
349
+ "muteAllConfirmButtonLabel": "Stäng av ljudet för alla",
350
+ "muteAllCancelButtonLabel": "Avbryt"
346
351
  },
347
352
  "chat": {
348
353
  "chatListHeader": "I den här chatten",
@@ -342,7 +342,12 @@
342
342
  "pinParticipantLimitReachedMenuLabel": "Sabitleme (sınıra ulaşıldı)",
343
343
  "unpinParticipantMenuLabel": "Sabitlemeyi kaldır",
344
344
  "pinParticipantMenuItemAriaLabel": "Sabitle",
345
- "unpinParticipantMenuItemAriaLabel": "Sabitlemeyi kaldır"
345
+ "unpinParticipantMenuItemAriaLabel": "Sabitlemeyi kaldır",
346
+ "muteAllMenuLabel": "Tümünü sessize al",
347
+ "muteAllDialogTitle": "Herkesi sessize almak mı istiyorsunuz?",
348
+ "muteAllDialogContent": "Bu, toplantıda sizin dışınızdaki herkesi sessize alır.",
349
+ "muteAllConfirmButtonLabel": "Tümünü sessize al",
350
+ "muteAllCancelButtonLabel": "İptal"
346
351
  },
347
352
  "chat": {
348
353
  "chatListHeader": "Bu sohbette",
@@ -338,11 +338,16 @@
338
338
  "endCallConfirmDialogTitle": "结束通话?",
339
339
  "endCallConfirmDialogContent": "你将结束所有人的通话。",
340
340
  "invalidMeetingIdentifier": "会议 ID 或密码无效",
341
- "pinParticipantMenuLabel": "Pin for me",
342
- "pinParticipantLimitReachedMenuLabel": "Pin (limit reached)",
343
- "unpinParticipantMenuLabel": "Unpin",
344
- "pinParticipantMenuItemAriaLabel": "Pin",
345
- "unpinParticipantMenuItemAriaLabel": "Unpin"
341
+ "pinParticipantMenuLabel": "为我固定",
342
+ "pinParticipantLimitReachedMenuLabel": "固定(已达到上限)",
343
+ "unpinParticipantMenuLabel": "取消固定",
344
+ "pinParticipantMenuItemAriaLabel": "固定",
345
+ "unpinParticipantMenuItemAriaLabel": "取消固定",
346
+ "muteAllMenuLabel": "全部静音",
347
+ "muteAllDialogTitle": "对所有人静音?",
348
+ "muteAllDialogContent": "这会将会议中除你之外的所有人静音。",
349
+ "muteAllConfirmButtonLabel": "全部静音",
350
+ "muteAllCancelButtonLabel": "取消"
346
351
  },
347
352
  "chat": {
348
353
  "chatListHeader": "在此聊天中",