@azure/communication-react 1.3.3-alpha-202210290014.0 → 1.4.1-beta.1

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 (236) hide show
  1. package/{CHANGELOG.md → CHANGELOG.beta.md} +52 -211
  2. package/CHANGELOG.json +2307 -0
  3. package/CHANGELOG.stable.md +287 -0
  4. package/dist/communication-react.d.ts +307 -91
  5. package/dist/dist-cjs/communication-react/index.js +11193 -10508
  6. package/dist/dist-cjs/communication-react/index.js.map +1 -1
  7. package/dist/dist-esm/acs-ui-common/src/telemetry.d.ts +10 -0
  8. package/dist/dist-esm/acs-ui-common/src/telemetry.js +10 -0
  9. package/dist/dist-esm/acs-ui-common/src/telemetry.js.map +1 -1
  10. package/dist/dist-esm/acs-ui-common/src/telemetryVersion.js +1 -1
  11. package/dist/dist-esm/acs-ui-common/src/telemetryVersion.js.map +1 -1
  12. package/dist/dist-esm/calling-component-bindings/src/baseSelectors.d.ts +5 -0
  13. package/dist/dist-esm/calling-component-bindings/src/baseSelectors.js +5 -0
  14. package/dist/dist-esm/calling-component-bindings/src/baseSelectors.js.map +1 -1
  15. package/dist/dist-esm/calling-component-bindings/src/handlers/createCommonHandlers.d.ts +51 -0
  16. package/dist/dist-esm/calling-component-bindings/src/handlers/createCommonHandlers.js +270 -0
  17. package/dist/dist-esm/calling-component-bindings/src/handlers/createCommonHandlers.js.map +1 -0
  18. package/dist/dist-esm/calling-component-bindings/src/handlers/createDefaultCallingHandlersForComponent.d.ts +20 -0
  19. package/dist/dist-esm/calling-component-bindings/src/handlers/createDefaultCallingHandlersForComponent.js +36 -0
  20. package/dist/dist-esm/calling-component-bindings/src/handlers/createDefaultCallingHandlersForComponent.js.map +1 -0
  21. package/dist/dist-esm/calling-component-bindings/src/handlers/createHandlers.d.ts +6 -51
  22. package/dist/dist-esm/calling-component-bindings/src/handlers/createHandlers.js +22 -299
  23. package/dist/dist-esm/calling-component-bindings/src/handlers/createHandlers.js.map +1 -1
  24. package/dist/dist-esm/calling-component-bindings/src/handlers/createTeamsCallHandlers.d.ts +43 -0
  25. package/dist/dist-esm/calling-component-bindings/src/handlers/createTeamsCallHandlers.js +81 -0
  26. package/dist/dist-esm/calling-component-bindings/src/handlers/createTeamsCallHandlers.js.map +1 -0
  27. package/dist/dist-esm/calling-component-bindings/src/hooks/useHandlers.d.ts +1 -1
  28. package/dist/dist-esm/calling-component-bindings/src/hooks/useHandlers.js +17 -5
  29. package/dist/dist-esm/calling-component-bindings/src/hooks/useHandlers.js.map +1 -1
  30. package/dist/dist-esm/calling-component-bindings/src/hooks/usePropsFor.d.ts +2 -2
  31. package/dist/dist-esm/calling-component-bindings/src/hooks/usePropsFor.js.map +1 -1
  32. package/dist/dist-esm/calling-component-bindings/src/hooks/useSelector.js +3 -3
  33. package/dist/dist-esm/calling-component-bindings/src/hooks/useSelector.js.map +1 -1
  34. package/dist/dist-esm/calling-component-bindings/src/index.d.ts +4 -0
  35. package/dist/dist-esm/calling-component-bindings/src/index.js +4 -0
  36. package/dist/dist-esm/calling-component-bindings/src/index.js.map +1 -1
  37. package/dist/dist-esm/calling-component-bindings/src/participantListSelector.js +10 -3
  38. package/dist/dist-esm/calling-component-bindings/src/participantListSelector.js.map +1 -1
  39. package/dist/dist-esm/calling-component-bindings/src/providers/CallAgentProvider.d.ts +12 -2
  40. package/dist/dist-esm/calling-component-bindings/src/providers/CallAgentProvider.js +25 -1
  41. package/dist/dist-esm/calling-component-bindings/src/providers/CallAgentProvider.js.map +1 -1
  42. package/dist/dist-esm/calling-component-bindings/src/providers/CallProvider.d.ts +16 -2
  43. package/dist/dist-esm/calling-component-bindings/src/providers/CallProvider.js +27 -1
  44. package/dist/dist-esm/calling-component-bindings/src/providers/CallProvider.js.map +1 -1
  45. package/dist/dist-esm/calling-component-bindings/src/utils/callUtils.d.ts +11 -0
  46. package/dist/dist-esm/calling-component-bindings/src/utils/callUtils.js +15 -1
  47. package/dist/dist-esm/calling-component-bindings/src/utils/callUtils.js.map +1 -1
  48. package/dist/dist-esm/calling-component-bindings/src/utils/participantListSelectorUtils.d.ts +7 -1
  49. package/dist/dist-esm/calling-component-bindings/src/utils/participantListSelectorUtils.js +11 -0
  50. package/dist/dist-esm/calling-component-bindings/src/utils/participantListSelectorUtils.js.map +1 -1
  51. package/dist/dist-esm/calling-stateful-client/src/BetaToStableTypes.d.ts +26 -0
  52. package/dist/dist-esm/calling-stateful-client/src/BetaToStableTypes.js +4 -0
  53. package/dist/dist-esm/calling-stateful-client/src/BetaToStableTypes.js.map +1 -0
  54. package/dist/dist-esm/calling-stateful-client/src/CallAgentDeclarative.d.ts +9 -6
  55. package/dist/dist-esm/calling-stateful-client/src/CallAgentDeclarative.js +37 -182
  56. package/dist/dist-esm/calling-stateful-client/src/CallAgentDeclarative.js.map +1 -1
  57. package/dist/dist-esm/calling-stateful-client/src/CallAgentDeclarativeCommon.d.ts +53 -0
  58. package/dist/dist-esm/calling-stateful-client/src/CallAgentDeclarativeCommon.js +204 -0
  59. package/dist/dist-esm/calling-stateful-client/src/CallAgentDeclarativeCommon.js.map +1 -0
  60. package/dist/dist-esm/calling-stateful-client/src/CallClientState.d.ts +5 -1
  61. package/dist/dist-esm/calling-stateful-client/src/CallClientState.js.map +1 -1
  62. package/dist/dist-esm/calling-stateful-client/src/CallDeclarative.js +4 -65
  63. package/dist/dist-esm/calling-stateful-client/src/CallDeclarative.js.map +1 -1
  64. package/dist/dist-esm/calling-stateful-client/src/CallDeclarativeCommon.d.ts +13 -0
  65. package/dist/dist-esm/calling-stateful-client/src/CallDeclarativeCommon.js +88 -0
  66. package/dist/dist-esm/calling-stateful-client/src/CallDeclarativeCommon.js.map +1 -0
  67. package/dist/dist-esm/calling-stateful-client/src/CallSubscriber.d.ts +2 -2
  68. package/dist/dist-esm/calling-stateful-client/src/CallSubscriber.js.map +1 -1
  69. package/dist/dist-esm/calling-stateful-client/src/Converter.d.ts +4 -3
  70. package/dist/dist-esm/calling-stateful-client/src/Converter.js +4 -0
  71. package/dist/dist-esm/calling-stateful-client/src/Converter.js.map +1 -1
  72. package/dist/dist-esm/calling-stateful-client/src/IncomingCallDeclarative.d.ts +2 -1
  73. package/dist/dist-esm/calling-stateful-client/src/IncomingCallDeclarative.js.map +1 -1
  74. package/dist/dist-esm/calling-stateful-client/src/IncomingCallSubscriber.d.ts +3 -2
  75. package/dist/dist-esm/calling-stateful-client/src/IncomingCallSubscriber.js.map +1 -1
  76. package/dist/dist-esm/calling-stateful-client/src/StatefulCallClient.js +16 -0
  77. package/dist/dist-esm/calling-stateful-client/src/StatefulCallClient.js.map +1 -1
  78. package/dist/dist-esm/calling-stateful-client/src/TeamsCallAgentDeclarative.d.ts +19 -0
  79. package/dist/dist-esm/calling-stateful-client/src/TeamsCallAgentDeclarative.js +89 -0
  80. package/dist/dist-esm/calling-stateful-client/src/TeamsCallAgentDeclarative.js.map +1 -0
  81. package/dist/dist-esm/calling-stateful-client/src/TeamsCallDeclarative.d.ts +23 -0
  82. package/dist/dist-esm/calling-stateful-client/src/TeamsCallDeclarative.js +48 -0
  83. package/dist/dist-esm/calling-stateful-client/src/TeamsCallDeclarative.js.map +1 -0
  84. package/dist/dist-esm/calling-stateful-client/src/TypeGuards.d.ts +19 -0
  85. package/dist/dist-esm/calling-stateful-client/src/TypeGuards.js +35 -0
  86. package/dist/dist-esm/calling-stateful-client/src/TypeGuards.js.map +1 -0
  87. package/dist/dist-esm/calling-stateful-client/src/index-public.d.ts +8 -0
  88. package/dist/dist-esm/calling-stateful-client/src/index-public.js +4 -0
  89. package/dist/dist-esm/calling-stateful-client/src/index-public.js.map +1 -0
  90. package/dist/dist-esm/calling-stateful-client/src/index.d.ts +3 -7
  91. package/dist/dist-esm/calling-stateful-client/src/index.js +2 -1
  92. package/dist/dist-esm/calling-stateful-client/src/index.js.map +1 -1
  93. package/dist/dist-esm/chat-stateful-client/src/StatefulChatThreadClient.js +5 -0
  94. package/dist/dist-esm/chat-stateful-client/src/StatefulChatThreadClient.js.map +1 -1
  95. package/dist/dist-esm/communication-react/src/index.d.ts +6 -4
  96. package/dist/dist-esm/communication-react/src/index.js +4 -2
  97. package/dist/dist-esm/communication-react/src/index.js.map +1 -1
  98. package/dist/dist-esm/react-components/src/components/{BrowserPermissionDenied.d.ts → DevicePermissions/BrowserPermissionDenied.d.ts} +4 -4
  99. package/dist/dist-esm/react-components/src/components/{BrowserPermissionDenied.js → DevicePermissions/BrowserPermissionDenied.js} +8 -6
  100. package/dist/dist-esm/react-components/src/components/DevicePermissions/BrowserPermissionDenied.js.map +1 -0
  101. package/dist/dist-esm/react-components/src/components/{BrowserPermissionDeniedIOS.d.ts → DevicePermissions/BrowserPermissionDeniedIOS.d.ts} +1 -1
  102. package/dist/dist-esm/react-components/src/components/DevicePermissions/BrowserPermissionDeniedIOS.js +58 -0
  103. package/dist/dist-esm/react-components/src/components/DevicePermissions/BrowserPermissionDeniedIOS.js.map +1 -0
  104. package/dist/dist-esm/react-components/src/components/{DevicePermissionDropdown.d.ts → DevicePermissions/DevicePermissionDropdown.d.ts} +4 -0
  105. package/dist/dist-esm/react-components/src/components/{DevicePermissionDropdown.js → DevicePermissions/DevicePermissionDropdown.js} +3 -2
  106. package/dist/dist-esm/react-components/src/components/DevicePermissions/DevicePermissionDropdown.js.map +1 -0
  107. package/dist/dist-esm/react-components/src/components/DevicePermissions/DomainPermissions.d.ts +101 -0
  108. package/dist/dist-esm/react-components/src/components/DevicePermissions/DomainPermissions.js +80 -0
  109. package/dist/dist-esm/react-components/src/components/DevicePermissions/DomainPermissions.js.map +1 -0
  110. package/dist/dist-esm/react-components/src/components/DevicePermissions/DomainPermissionsScaffolding.d.ts +86 -0
  111. package/dist/dist-esm/react-components/src/components/DevicePermissions/DomainPermissionsScaffolding.js +31 -0
  112. package/dist/dist-esm/react-components/src/components/DevicePermissions/DomainPermissionsScaffolding.js.map +1 -0
  113. package/dist/dist-esm/react-components/src/components/Dialpad/Dialpad.js +1 -1
  114. package/dist/dist-esm/react-components/src/components/Dialpad/Dialpad.js.map +1 -1
  115. package/dist/dist-esm/react-components/src/components/MessageThread.js +7 -11
  116. package/dist/dist-esm/react-components/src/components/MessageThread.js.map +1 -1
  117. package/dist/dist-esm/react-components/src/components/TroubleshootingGuideErrorBar.js +3 -3
  118. package/dist/dist-esm/react-components/src/components/TroubleshootingGuideErrorBar.js.map +1 -1
  119. package/dist/dist-esm/react-components/src/components/VideoTile.d.ts +4 -0
  120. package/dist/dist-esm/react-components/src/components/VideoTile.js +9 -2
  121. package/dist/dist-esm/react-components/src/components/VideoTile.js.map +1 -1
  122. package/dist/dist-esm/react-components/src/components/index.d.ts +9 -8
  123. package/dist/dist-esm/react-components/src/components/index.js +4 -4
  124. package/dist/dist-esm/react-components/src/components/index.js.map +1 -1
  125. package/dist/dist-esm/react-components/src/components/styles/Dialpad.styles.js +0 -2
  126. package/dist/dist-esm/react-components/src/components/styles/Dialpad.styles.js.map +1 -1
  127. package/dist/dist-esm/react-components/src/components/styles/DomainPermissions.styles.d.ts +4 -0
  128. package/dist/dist-esm/react-components/src/components/styles/DomainPermissions.styles.js +10 -1
  129. package/dist/dist-esm/react-components/src/components/styles/DomainPermissions.styles.js.map +1 -1
  130. package/dist/dist-esm/react-components/src/components/styles/SendBox.styles.js +1 -1
  131. package/dist/dist-esm/react-components/src/components/styles/SendBox.styles.js.map +1 -1
  132. package/dist/dist-esm/react-components/src/components/styles/TroubleshootingGuideErrorBar.styles.d.ts +1 -5
  133. package/dist/dist-esm/react-components/src/components/styles/TroubleshootingGuideErrorBar.styles.js +0 -11
  134. package/dist/dist-esm/react-components/src/components/styles/TroubleshootingGuideErrorBar.styles.js.map +1 -1
  135. package/dist/dist-esm/react-components/src/components/styles/VideoTile.styles.d.ts +4 -0
  136. package/dist/dist-esm/react-components/src/components/styles/VideoTile.styles.js +6 -0
  137. package/dist/dist-esm/react-components/src/components/styles/VideoTile.styles.js.map +1 -1
  138. package/dist/dist-esm/react-components/src/components/utils/merge.d.ts +7 -0
  139. package/dist/dist-esm/react-components/src/components/utils/merge.js +16 -0
  140. package/dist/dist-esm/react-components/src/components/utils/merge.js.map +1 -0
  141. package/dist/dist-esm/react-components/src/components/utils.d.ts +4 -0
  142. package/dist/dist-esm/react-components/src/components/utils.js +6 -0
  143. package/dist/dist-esm/react-components/src/components/utils.js.map +1 -1
  144. package/dist/dist-esm/react-components/src/localization/LocalizationProvider.d.ts +21 -5
  145. package/dist/dist-esm/react-components/src/localization/LocalizationProvider.js.map +1 -1
  146. package/dist/dist-esm/react-components/src/localization/locales/en-US/strings.json +56 -2
  147. package/dist/dist-esm/react-components/src/permissions/PermissionsProvider.d.ts +2 -1
  148. package/dist/dist-esm/react-components/src/permissions/PermissionsProvider.js.map +1 -1
  149. package/dist/dist-esm/react-components/src/theming/icons.d.ts +4 -1
  150. package/dist/dist-esm/react-components/src/theming/icons.js +30 -18
  151. package/dist/dist-esm/react-components/src/theming/icons.js.map +1 -1
  152. package/dist/dist-esm/react-components/src/theming/icons.styles.d.ts +6 -0
  153. package/dist/dist-esm/react-components/src/theming/icons.styles.js +25 -0
  154. package/dist/dist-esm/react-components/src/theming/icons.styles.js.map +1 -0
  155. package/dist/dist-esm/react-components/src/types/ParticipantListParticipant.d.ts +3 -0
  156. package/dist/dist-esm/react-components/src/types/ParticipantListParticipant.js.map +1 -1
  157. package/dist/dist-esm/react-composites/src/composites/CallComposite/CallComposite.d.ts +0 -5
  158. package/dist/dist-esm/react-composites/src/composites/CallComposite/CallComposite.js +23 -17
  159. package/dist/dist-esm/react-composites/src/composites/CallComposite/CallComposite.js.map +1 -1
  160. package/dist/dist-esm/react-composites/src/composites/CallComposite/Strings.js.map +1 -1
  161. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/AzureCommunicationCallAdapter.d.ts +25 -3
  162. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/AzureCommunicationCallAdapter.js +24 -11
  163. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/AzureCommunicationCallAdapter.js.map +1 -1
  164. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/CallAdapter.d.ts +7 -0
  165. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/CallAdapter.js.map +1 -1
  166. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/index.d.ts +1 -0
  167. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/index.js.map +1 -1
  168. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/CallArrangement.js +14 -12
  169. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/CallArrangement.js.map +1 -1
  170. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/CallControls.js +4 -4
  171. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/CallControls.js.map +1 -1
  172. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/CallPane.js +2 -2
  173. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/CallPane.js.map +1 -1
  174. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/ConfigurationpageCameraDropdown.d.ts +2 -0
  175. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/ConfigurationpageCameraDropdown.js +4 -2
  176. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/ConfigurationpageCameraDropdown.js.map +1 -1
  177. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/ConfigurationpageErrorBar.d.ts +1 -0
  178. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/ConfigurationpageErrorBar.js +4 -2
  179. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/ConfigurationpageErrorBar.js.map +1 -1
  180. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/ConfigurationpageMicDropdown.d.ts +2 -0
  181. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/ConfigurationpageMicDropdown.js +6 -4
  182. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/ConfigurationpageMicDropdown.js.map +1 -1
  183. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/LocalDeviceSettings.d.ts +2 -0
  184. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/LocalDeviceSettings.js +11 -3
  185. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/LocalDeviceSettings.js.map +1 -1
  186. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/ConfigurationPage.d.ts +1 -0
  187. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/ConfigurationPage.js +76 -5
  188. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/ConfigurationPage.js.map +1 -1
  189. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/baseSelectors.d.ts +5 -0
  190. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/baseSelectors.js +5 -0
  191. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/baseSelectors.js.map +1 -1
  192. package/dist/dist-esm/react-composites/src/composites/CallComposite/styles/CallComposite.styles.d.ts +6 -2
  193. package/dist/dist-esm/react-composites/src/composites/CallComposite/styles/CallComposite.styles.js +9 -4
  194. package/dist/dist-esm/react-composites/src/composites/CallComposite/styles/CallComposite.styles.js.map +1 -1
  195. package/dist/dist-esm/react-composites/src/composites/CallComposite/utils/Utils.d.ts +8 -0
  196. package/dist/dist-esm/react-composites/src/composites/CallComposite/utils/Utils.js +26 -0
  197. package/dist/dist-esm/react-composites/src/composites/CallComposite/utils/Utils.js.map +1 -1
  198. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/CallWithChatComposite.js +4 -3
  199. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/CallWithChatComposite.js.map +1 -1
  200. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/CallWithChatPane.js +3 -3
  201. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/CallWithChatPane.js.map +1 -1
  202. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/AzureCommunicationCallWithChatAdapter.js +2 -1
  203. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/AzureCommunicationCallWithChatAdapter.js.map +1 -1
  204. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/styles/CallWithChatCompositeStyles.d.ts +0 -2
  205. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/styles/CallWithChatCompositeStyles.js +0 -13
  206. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/styles/CallWithChatCompositeStyles.js.map +1 -1
  207. package/dist/dist-esm/react-composites/src/composites/ChatComposite/adapter/AzureCommunicationChatAdapter.js +3 -1
  208. package/dist/dist-esm/react-composites/src/composites/ChatComposite/adapter/AzureCommunicationChatAdapter.js.map +1 -1
  209. package/dist/dist-esm/react-composites/src/composites/common/AddPeopleButton.d.ts +1 -1
  210. package/dist/dist-esm/react-composites/src/composites/common/AddPeopleButton.js.map +1 -1
  211. package/dist/dist-esm/react-composites/src/composites/common/AddPeopleDropdown.js +1 -1
  212. package/dist/dist-esm/react-composites/src/composites/common/AddPeopleDropdown.js.map +1 -1
  213. package/dist/dist-esm/react-composites/src/composites/common/BaseComposite.js +10 -1
  214. package/dist/dist-esm/react-composites/src/composites/common/BaseComposite.js.map +1 -1
  215. package/dist/dist-esm/react-composites/src/composites/common/CallingDialpad.js +2 -2
  216. package/dist/dist-esm/react-composites/src/composites/common/CallingDialpad.js.map +1 -1
  217. package/dist/dist-esm/react-composites/src/composites/common/ParticipantContainer.js +1 -1
  218. package/dist/dist-esm/react-composites/src/composites/common/ParticipantContainer.js.map +1 -1
  219. package/dist/dist-esm/react-composites/src/composites/common/PeoplePaneContent.js.map +1 -1
  220. package/dist/dist-esm/react-composites/src/composites/common/SendDtmfDialpad.js +2 -2
  221. package/dist/dist-esm/react-composites/src/composites/common/SendDtmfDialpad.js.map +1 -1
  222. package/dist/dist-esm/react-composites/src/composites/common/SidePaneHeader.d.ts +1 -1
  223. package/dist/dist-esm/react-composites/src/composites/common/SidePaneHeader.js.map +1 -1
  224. package/dist/dist-esm/react-composites/src/composites/common/TabHeader.d.ts +1 -1
  225. package/dist/dist-esm/react-composites/src/composites/common/TabHeader.js.map +1 -1
  226. package/dist/dist-esm/react-composites/src/composites/common/icons.d.ts +4 -1
  227. package/dist/dist-esm/react-composites/src/composites/common/icons.js +2 -2
  228. package/dist/dist-esm/react-composites/src/composites/common/icons.js.map +1 -1
  229. package/package.json +12 -12
  230. package/dist/dist-esm/react-components/src/components/BrowserPermissionDenied.js.map +0 -1
  231. package/dist/dist-esm/react-components/src/components/BrowserPermissionDeniedIOS.js +0 -57
  232. package/dist/dist-esm/react-components/src/components/BrowserPermissionDeniedIOS.js.map +0 -1
  233. package/dist/dist-esm/react-components/src/components/DevicePermissionDropdown.js.map +0 -1
  234. package/dist/dist-esm/react-components/src/components/DomainPermissions.d.ts +0 -53
  235. package/dist/dist-esm/react-components/src/components/DomainPermissions.js +0 -43
  236. package/dist/dist-esm/react-components/src/components/DomainPermissions.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createTeamsCallHandlers.js","sourceRoot":"","sources":["../../../../../../calling-component-bindings/src/handlers/createTeamsCallHandlers.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;;;;;;;;;;AAQlC,OAAO,EAA2B,6BAA6B,EAAE,MAAM,6BAA6B,CAAC;AACrG,yDAAyD;AACzD,OAAO,EAAE,uBAAuB,EAAE,MAAM,6BAA6B,CAAC;AACtE,OAAO,EAAU,0BAA0B,EAAE,mCAAgC;AAE7E,OAAO,UAAU,MAAM,aAAa,CAAC;AAErC,OAAO,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAC;AAC7D,OAAO,EAAE,kCAAkC,EAAyB,MAAM,wBAAwB,CAAC;AAiBnG;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,iCAAiC,GAAG,UAAU,CACzD,CACE,UAA8B,EAC9B,SAA+F,EAC/F,aAAgD,EAChD,IAAqF,EACvD,EAAE;IAChC,uCACK,kCAAkC,CAAC,UAAU,EAAE,aAAa,EAAE,IAAI,CAAC,KACtE,WAAW,EAAE,CAAC,YAAY,EAAE,OAAO,EAAE,EAAE;YACrC,yDAAyD;YACzD,MAAM,QAAQ,GAAG,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,QAAQ,CAAC;YACnC,IAAI,CAAC,uBAAuB,CAAC,YAAY,CAAC,EAAE;gBAC1C,MAAM,IAAI,KAAK,CAAC,yDAAyD,CAAC,CAAC;aAC5E;YACD,yDAAyD;YACzD,IAAI,SAAS,EAAE;gBACb,OAAO,SAAS,CAAC,SAAS,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;aAC/E;YACD,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,yDAAyD;QACzD,6CAA6C;QAC7C,gBAAgB,EAAE,CAChB,MAAwC,EACxC,OAA+B,EAChB,EAAE;YACjB,MAAM,WAAW,GAAG,0BAA0B,CAAC,MAAM,CAAC,CAAC;YACvD,yDAAyD;YACzD,MAAM,QAAQ,GAAG,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,QAAQ,CAAC;YACnC,IAAI,6BAA6B,CAAC,WAAW,CAAC,EAAE;gBAC9C,MAAM,IAAI,KAAK,CAAC,yDAAyD,CAAC,CAAC;aAC5E;YACD,yDAAyD;YACzD,IAAI,uBAAuB,CAAC,WAAW,CAAC,EAAE;gBACxC,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,cAAc,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;aACxE;YACD,yDAAyD;YACzD,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,cAAc,CAAC,WAAW,CAAC,CAAC;QACpC,CAAC,CAAA,EACD,mBAAmB,EAAE,CACnB,MAAsF,EACvE,EAAE;YACjB,MAAM,WAAW,GAAG,0BAA0B,CAAC,MAAM,CAAC,CAAC;YACvD,IAAI,6BAA6B,CAAC,WAAW,CAAC,EAAE;gBAC9C,MAAM,IAAI,KAAK,CAAC,yDAAyD,CAAC,CAAC;aAC5E;YACD,yDAAyD;YACzD,MAAM,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,iBAAiB,CAAC,WAAW,CAAC,CAAA,CAAC;QAC7C,CAAC,CAAA,IACD;AACJ,CAAC,CACF,CAAC;AAEF;;;;;;;;;;;;;GAaG;AACH,MAAM,CAAC,MAAM,sCAAsC,GAAG,CACpD,UAA8B,EAC9B,SAA+F,EAC/F,aAAgD,EAChD,IAAqF,EACrF,UAAiD,EACZ,EAAE;IACvC,OAAO,iCAAiC,CAAC,UAAU,EAAE,SAAS,EAAE,aAAa,EAAE,IAAI,CAAC,CAAC;AACvF,CAAC,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport { StartCallOptions } from '@azure/communication-calling';\n/* @conditional-compile-remove(teams-identity-support) */\n/* @conditional-compile-remove(PSTN-calls) */\nimport { AddPhoneNumberOptions } from '@azure/communication-calling';\n/* @conditional-compile-remove(teams-identity-support) */\nimport { TeamsCall, TeamsCallAgent } from '@azure/communication-calling';\nimport { CommunicationIdentifier, isCommunicationUserIdentifier } from '@azure/communication-common';\n/* @conditional-compile-remove(teams-identity-support) */\nimport { isPhoneNumberIdentifier } from '@azure/communication-common';\nimport { Common, _toCommunicationIdentifier } from '@internal/acs-ui-common';\nimport { StatefulCallClient, StatefulDeviceManager } from '@internal/calling-stateful-client';\nimport memoizeOne from 'memoize-one';\nimport { ReactElement } from 'react';\nimport { isTeamsCallParticipants } from '../utils/callUtils';\nimport { createDefaultCommonCallingHandlers, CommonCallingHandlers } from './createCommonHandlers';\n\n/**\n * Object containing all the teams call handlers required for calling components.\n *\n * Calling related components from this package are able to pick out relevant handlers from this object.\n * See {@link useHandlers} and {@link usePropsFor}.\n *\n * @beta\n */\nexport interface TeamsCallingHandlers extends CommonCallingHandlers {\n onStartCall: (\n participants: CommunicationIdentifier[],\n options?: StartCallOptions\n ) => undefined | /* @conditional-compile-remove(teams-identity-support) */ TeamsCall;\n}\n\n/**\n * Create the default implementation of {@link TeamsCallingHandlers} for teams call.\n *\n * Useful when implementing a custom component that utilizes the providers\n * exported from this library.\n *\n * @beta\n */\nexport const createDefaultTeamsCallingHandlers = memoizeOne(\n (\n callClient: StatefulCallClient,\n callAgent: undefined | /* @conditional-compile-remove(teams-identity-support) */ TeamsCallAgent,\n deviceManager: StatefulDeviceManager | undefined,\n call: undefined | /* @conditional-compile-remove(teams-identity-support) */ TeamsCall\n ): never | TeamsCallingHandlers => {\n return {\n ...createDefaultCommonCallingHandlers(callClient, deviceManager, call),\n onStartCall: (participants, options) => {\n /* @conditional-compile-remove(teams-identity-support) */\n const threadId = options?.threadId;\n if (!isTeamsCallParticipants(participants)) {\n throw new Error('CommunicationIdentifier in Teams call is not supported!');\n }\n /* @conditional-compile-remove(teams-identity-support) */\n if (callAgent) {\n return callAgent.startCall(participants, threadId ? { threadId } : undefined);\n }\n return undefined;\n },\n /* @conditional-compile-remove(teams-identity-support) */\n /* @conditional-compile-remove(PSTN-calls) */\n onAddParticipant: async (\n userId: string | CommunicationIdentifier,\n options?: AddPhoneNumberOptions\n ): Promise<void> => {\n const participant = _toCommunicationIdentifier(userId);\n /* @conditional-compile-remove(teams-identity-support) */\n const threadId = options?.threadId;\n if (isCommunicationUserIdentifier(participant)) {\n throw new Error('CommunicationIdentifier in Teams call is not supported!');\n }\n /* @conditional-compile-remove(teams-identity-support) */\n if (isPhoneNumberIdentifier(participant)) {\n call?.addParticipant(participant, threadId ? { threadId } : undefined);\n }\n /* @conditional-compile-remove(teams-identity-support) */\n call?.addParticipant(participant);\n },\n onRemoveParticipant: async (\n userId: string | /* @conditional-compile-remove(PSTN-calls) */ CommunicationIdentifier\n ): Promise<void> => {\n const participant = _toCommunicationIdentifier(userId);\n if (isCommunicationUserIdentifier(participant)) {\n throw new Error('CommunicationIdentifier in Teams call is not supported!');\n }\n /* @conditional-compile-remove(teams-identity-support) */\n await call?.removeParticipant(participant);\n }\n };\n }\n);\n\n/**\n * Create a set of default handlers for given component. Memoization is applied to the result. Multiple invocations with\n * the same arguments will return the same handler instances. DeclarativeCallAgent, DeclarativeDeviceManager, and\n * DeclarativeCall may be undefined. If undefined, their associated handlers will not be created and returned.\n *\n * @param callClient - StatefulCallClient returned from\n * {@link @azure/communication-react#createStatefulCallClient}.\n * @param callAgent - Instance of {@link @azure/communication-calling#TeamsCallClient}.\n * @param deviceManager - Instance of {@link @azure/communication-calling#DeviceManager}.\n * @param call - Instance of {@link @azure/communication-calling#TeamsCall}.\n * @param _ - React component that you want to generate handlers for.\n *\n * @beta\n */\nexport const createTeamsCallingHandlersForComponent = <Props>(\n callClient: StatefulCallClient,\n callAgent: undefined | /* @conditional-compile-remove(teams-identity-support) */ TeamsCallAgent,\n deviceManager: StatefulDeviceManager | undefined,\n call: undefined | /* @conditional-compile-remove(teams-identity-support) */ TeamsCall,\n _Component: (props: Props) => ReactElement | null\n): Common<TeamsCallingHandlers, Props> => {\n return createDefaultTeamsCallingHandlers(callClient, callAgent, deviceManager, call);\n};\n\"../../../acs-ui-common/src\"\"../../../calling-stateful-client/src\""]}
@@ -7,5 +7,5 @@ import { ReactElement } from 'react';
7
7
  *
8
8
  * @public
9
9
  */
10
- export declare const useHandlers: <PropsT>(component: (props: PropsT) => ReactElement | null) => import("../../../communication-react/src/index").Common<import("../handlers/createHandlers").CallingHandlers, PropsT> | undefined;
10
+ export declare const useHandlers: <PropsT>(component: (props: PropsT) => ReactElement | null) => import("../../../communication-react/src/index").Common<import("index").CommonCallingHandlers, PropsT> | undefined;
11
11
  //# sourceMappingURL=useHandlers.d.ts.map
@@ -1,8 +1,9 @@
1
1
  // Copyright (c) Microsoft Corporation.
2
2
  // Licensed under the MIT license.
3
3
  import { useContext } from 'react';
4
- import { createDefaultCallingHandlersForComponent } from '../handlers/createHandlers';
5
- import { CallClientContext, useCall, useCallAgent, useDeviceManager } from '../providers';
4
+ import { _isACSCall, _isACSCallAgent, _isTeamsCall, _isTeamsCallAgent } from "../../../calling-stateful-client/src";
5
+ import { createDefaultCallingHandlersForComponent } from '../handlers/createDefaultCallingHandlersForComponent';
6
+ import { CallAgentContext, CallClientContext, CallContext, useDeviceManager } from '../providers';
6
7
  /**
7
8
  * Hook to obtain a handler for a specified component.
8
9
  *
@@ -13,14 +14,25 @@ import { CallClientContext, useCall, useCallAgent, useDeviceManager } from '../p
13
14
  */
14
15
  // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/explicit-function-return-type
15
16
  export const useHandlers = (component) => {
16
- var _a;
17
+ var _a, _b, _c;
17
18
  const callClient = (_a = useContext(CallClientContext)) === null || _a === void 0 ? void 0 : _a.callClient;
18
- const callAgent = useCallAgent();
19
19
  const deviceManager = useDeviceManager();
20
- const call = useCall();
20
+ const call = (_b = useContext(CallContext)) === null || _b === void 0 ? void 0 : _b.call;
21
+ const callAgent = (_c = useContext(CallAgentContext)) === null || _c === void 0 ? void 0 : _c.callAgent;
21
22
  if (!callClient) {
22
23
  return undefined;
23
24
  }
25
+ // Handle edge case, validate if call and callAgent are the same type (ACS/Teams)
26
+ if (callAgent && _isTeamsCallAgent(callAgent)) {
27
+ if (call && !_isTeamsCall(call)) {
28
+ throw new Error('A TeamsCall must be provided when callAgent is TeamsCallAgent');
29
+ }
30
+ }
31
+ if (callAgent && _isACSCallAgent(callAgent)) {
32
+ if (call && !_isACSCall(call)) {
33
+ throw new Error('A regular ACS Call must be provided when callAgent is regular CallAgent');
34
+ }
35
+ }
24
36
  return createDefaultCallingHandlersForComponent(callClient, callAgent, deviceManager, call, component);
25
37
  };
26
38
  //# sourceMappingURL=useHandlers.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useHandlers.js","sourceRoot":"","sources":["../../../../../../calling-component-bindings/src/hooks/useHandlers.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAElC,OAAO,EAAgB,UAAU,EAAE,MAAM,OAAO,CAAC;AAEjD,OAAO,EAAE,wCAAwC,EAAE,MAAM,4BAA4B,CAAC;AACtF,OAAO,EAAE,iBAAiB,EAAE,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAE1F;;;;;;;GAOG;AACH,+HAA+H;AAC/H,MAAM,CAAC,MAAM,WAAW,GAAG,CAAS,SAAiD,EAAE,EAAE;;IACvF,MAAM,UAAU,GAAuB,MAAC,UAAU,CAAC,iBAAiB,CAAS,0CAAE,UAAU,CAAC;IAC1F,MAAM,SAAS,GAAG,YAAY,EAAE,CAAC;IACjC,MAAM,aAAa,GAAG,gBAAgB,EAAE,CAAC;IACzC,MAAM,IAAI,GAAG,OAAO,EAAE,CAAC;IACvB,IAAI,CAAC,UAAU,EAAE;QACf,OAAO,SAAS,CAAC;KAClB;IAED,OAAO,wCAAwC,CAAC,UAAU,EAAE,SAAS,EAAE,aAAa,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;AACzG,CAAC,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport { ReactElement, useContext } from 'react';\nimport { StatefulCallClient } from '@internal/calling-stateful-client';\nimport { createDefaultCallingHandlersForComponent } from '../handlers/createHandlers';\nimport { CallClientContext, useCall, useCallAgent, useDeviceManager } from '../providers';\n\n/**\n * Hook to obtain a handler for a specified component.\n *\n * Useful when implementing a custom component that utilizes the providers\n * exported from this library.\n *\n * @public\n */\n// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/explicit-function-return-type\nexport const useHandlers = <PropsT>(component: (props: PropsT) => ReactElement | null) => {\n const callClient: StatefulCallClient = (useContext(CallClientContext) as any)?.callClient;\n const callAgent = useCallAgent();\n const deviceManager = useDeviceManager();\n const call = useCall();\n if (!callClient) {\n return undefined;\n }\n\n return createDefaultCallingHandlersForComponent(callClient, callAgent, deviceManager, call, component);\n};\n\"../../../calling-stateful-client/src\""]}
1
+ {"version":3,"file":"useHandlers.js","sourceRoot":"","sources":["../../../../../../calling-component-bindings/src/hooks/useHandlers.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAElC,OAAO,EAAgB,UAAU,EAAE,MAAM,OAAO,CAAC;AACjD,OAAO,EAEL,UAAU,EACV,eAAe,EACf,YAAY,EACZ,iBAAiB,EAClB,6CAA0C;AAC3C,OAAO,EAAE,wCAAwC,EAAE,MAAM,sDAAsD,CAAC;AAChH,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAElG;;;;;;;GAOG;AACH,+HAA+H;AAC/H,MAAM,CAAC,MAAM,WAAW,GAAG,CAAS,SAAiD,EAAE,EAAE;;IACvF,MAAM,UAAU,GAAuB,MAAC,UAAU,CAAC,iBAAiB,CAAS,0CAAE,UAAU,CAAC;IAC1F,MAAM,aAAa,GAAG,gBAAgB,EAAE,CAAC;IACzC,MAAM,IAAI,GAAG,MAAA,UAAU,CAAC,WAAW,CAAC,0CAAE,IAAI,CAAC;IAC3C,MAAM,SAAS,GAAG,MAAA,UAAU,CAAC,gBAAgB,CAAC,0CAAE,SAAS,CAAC;IAC1D,IAAI,CAAC,UAAU,EAAE;QACf,OAAO,SAAS,CAAC;KAClB;IAED,iFAAiF;IACjF,IAAI,SAAS,IAAI,iBAAiB,CAAC,SAAS,CAAC,EAAE;QAC7C,IAAI,IAAI,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE;YAC/B,MAAM,IAAI,KAAK,CAAC,+DAA+D,CAAC,CAAC;SAClF;KACF;IAED,IAAI,SAAS,IAAI,eAAe,CAAC,SAAS,CAAC,EAAE;QAC3C,IAAI,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE;YAC7B,MAAM,IAAI,KAAK,CAAC,yEAAyE,CAAC,CAAC;SAC5F;KACF;IAED,OAAO,wCAAwC,CAAC,UAAU,EAAE,SAAS,EAAE,aAAa,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;AACzG,CAAC,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport { ReactElement, useContext } from 'react';\nimport {\n StatefulCallClient,\n _isACSCall,\n _isACSCallAgent,\n _isTeamsCall,\n _isTeamsCallAgent\n} from '@internal/calling-stateful-client';\nimport { createDefaultCallingHandlersForComponent } from '../handlers/createDefaultCallingHandlersForComponent';\nimport { CallAgentContext, CallClientContext, CallContext, useDeviceManager } from '../providers';\n\n/**\n * Hook to obtain a handler for a specified component.\n *\n * Useful when implementing a custom component that utilizes the providers\n * exported from this library.\n *\n * @public\n */\n// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/explicit-function-return-type\nexport const useHandlers = <PropsT>(component: (props: PropsT) => ReactElement | null) => {\n const callClient: StatefulCallClient = (useContext(CallClientContext) as any)?.callClient;\n const deviceManager = useDeviceManager();\n const call = useContext(CallContext)?.call;\n const callAgent = useContext(CallAgentContext)?.callAgent;\n if (!callClient) {\n return undefined;\n }\n\n // Handle edge case, validate if call and callAgent are the same type (ACS/Teams)\n if (callAgent && _isTeamsCallAgent(callAgent)) {\n if (call && !_isTeamsCall(call)) {\n throw new Error('A TeamsCall must be provided when callAgent is TeamsCallAgent');\n }\n }\n\n if (callAgent && _isACSCallAgent(callAgent)) {\n if (call && !_isACSCall(call)) {\n throw new Error('A regular ACS Call must be provided when callAgent is regular CallAgent');\n }\n }\n\n return createDefaultCallingHandlersForComponent(callClient, callAgent, deviceManager, call, component);\n};\n\"../../../calling-stateful-client/src\""]}
@@ -10,9 +10,9 @@ import { ParticipantListSelector } from '../participantListSelector';
10
10
  import { ParticipantsButtonSelector } from '../participantsButtonSelector';
11
11
  import { Common } from "../../../acs-ui-common/src";
12
12
  import { AreEqual } from "../../../acs-ui-common/src";
13
- import { CallingHandlers } from '../handlers/createHandlers';
14
13
  import { ParticipantsButton } from "../../../react-components/src";
15
14
  import { ErrorBarSelector } from '../errorBarSelector';
15
+ import { CommonCallingHandlers } from '../handlers/createCommonHandlers';
16
16
  /**
17
17
  * Primary hook to get all hooks necessary for a calling Component.
18
18
  *
@@ -31,7 +31,7 @@ import { ErrorBarSelector } from '../errorBarSelector';
31
31
  *
32
32
  * @public
33
33
  */
34
- export declare const usePropsFor: <Component extends (props: any) => JSX.Element>(component: Component) => GetSelector<Component> extends (props: any) => any ? ReturnType<GetSelector<Component>> & Common<CallingHandlers, Parameters<Component>[0]> : undefined;
34
+ export declare const usePropsFor: <Component extends (props: any) => JSX.Element>(component: Component) => GetSelector<Component> extends (props: any) => any ? ReturnType<GetSelector<Component>> & Common<CommonCallingHandlers, Parameters<Component>[0]> : undefined;
35
35
  /**
36
36
  * A type for trivial selectors that return no data.
37
37
  *
@@ -1 +1 @@
1
- {"version":3,"file":"usePropsFor.js","sourceRoot":"","sources":["../../../../../../calling-component-bindings/src/hooks/usePropsFor.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport {\n CameraButton,\n EndCallButton,\n ErrorBar,\n MicrophoneButton,\n DevicesButton,\n ParticipantList,\n ScreenShareButton,\n VideoGallery\n} from '@internal/react-components';\n/* @conditional-compile-remove(dialpad) */ /* @conditional-compile-remove(PSTN-calls) */\nimport { Dialpad } from '@internal/react-components';\n/* @conditional-compile-remove(PSTN-calls) */\nimport { HoldButton } from '@internal/react-components';\n/* @conditional-compile-remove(call-readiness) */\nimport { _DevicePermissionDropdown } from '@internal/react-components';\nimport {\n CameraButtonSelector,\n cameraButtonSelector,\n MicrophoneButtonSelector,\n microphoneButtonSelector,\n DevicesButtonSelector,\n devicesButtonSelector,\n ScreenShareButtonSelector,\n screenShareButtonSelector\n} from '../callControlSelectors';\n/* @conditional-compile-remove(PSTN-calls) */\nimport { holdButtonSelector, HoldButtonSelector } from '../callControlSelectors';\nimport { VideoGallerySelector, videoGallerySelector } from '../videoGallerySelector';\nimport { ParticipantListSelector, participantListSelector } from '../participantListSelector';\nimport { ParticipantsButtonSelector, participantsButtonSelector } from '../participantsButtonSelector';\nimport { useHandlers } from './useHandlers';\nimport { useSelector } from './useSelector';\nimport { Common } from '@internal/acs-ui-common';\nimport { AreEqual } from '@internal/acs-ui-common';\nimport { CallingHandlers } from '../handlers/createHandlers';\nimport { ParticipantsButton } from '@internal/react-components';\nimport { ErrorBarSelector, errorBarSelector } from '../errorBarSelector';\n\n/**\n * Primary hook to get all hooks necessary for a calling Component.\n *\n * Most straightforward usage of calling components looks like:\n *\n * @example\n * ```\n * import { ParticipantList, usePropsFor } from '@azure/communication-react';\n *\n * const App = (): JSX.Element => {\n * // ... code to setup Providers ...\n *\n * return <ParticipantList {...usePropsFor(ParticipantList)}/>\n * }\n * ```\n *\n * @public\n */\nexport const usePropsFor = <Component extends (props: any) => JSX.Element>(\n component: Component\n): GetSelector<Component> extends (props: any) => any\n ? ReturnType<GetSelector<Component>> & Common<CallingHandlers, Parameters<Component>[0]>\n : undefined => {\n const selector = getSelector(component);\n const props = useSelector(selector);\n const handlers = useHandlers<Parameters<Component>[0]>(component);\n if (props !== undefined) {\n return { ...props, ...handlers } as any;\n }\n return undefined as any;\n};\n\n/**\n * A type for trivial selectors that return no data.\n *\n * Used as a default return value if {@link usePropsFor} is called for a component that requires no data.\n *\n * @public\n */\nexport type EmptySelector = () => Record<string, never>;\n\nconst emptySelector: EmptySelector = (): Record<string, never> => ({});\n\n/**\n * Specific type of the selector applicable to a given Component.\n *\n * @public\n */\nexport type GetSelector<Component extends (props: any) => JSX.Element | undefined> = AreEqual<\n Component,\n typeof VideoGallery\n> extends true\n ? VideoGallerySelector\n : AreEqual<Component, typeof DevicesButton> extends true\n ? DevicesButtonSelector\n : AreEqual<Component, typeof MicrophoneButton> extends true\n ? MicrophoneButtonSelector\n : AreEqual<Component, typeof CameraButton> extends true\n ? CameraButtonSelector\n : AreEqual<Component, typeof ScreenShareButton> extends true\n ? ScreenShareButtonSelector\n : AreEqual<Component, typeof ParticipantList> extends true\n ? ParticipantListSelector\n : AreEqual<Component, typeof ParticipantsButton> extends true\n ? ParticipantsButtonSelector\n : AreEqual<Component, typeof EndCallButton> extends true\n ? EmptySelector\n : AreEqual<Component, typeof ErrorBar> extends true\n ? ErrorBarSelector\n : AreEqual<Component, typeof Dialpad> extends true\n ? /* @conditional-compile-remove(dialpad) */ /* @conditional-compile-remove(PSTN-calls) */ EmptySelector\n : AreEqual<Component, typeof HoldButton> extends true\n ? /* @conditional-compile-remove(PSTN-calls) */ HoldButtonSelector\n : AreEqual<Component, typeof _DevicePermissionDropdown> extends true\n ? /* @conditional-compile-remove(call-readiness) */ EmptySelector\n : undefined;\n\n/**\n * Get the selector for a specified component.\n *\n * Useful when implementing a custom component that utilizes the providers\n * exported from this library.\n *\n * @public\n */\n// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\nexport const getSelector = <Component extends (props: any) => JSX.Element | undefined>(\n component: Component\n): GetSelector<Component> => {\n /* @conditional-compile-remove(PSTN-calls) */\n if (component === HoldButton) {\n return findConditionalCompiledSelector(component);\n }\n return findSelector(component);\n};\n\nconst findSelector = (component: (props: any) => JSX.Element | undefined): any => {\n /* @conditional-compile-remove(dialpad) */ /* @conditional-compile-remove(PSTN-calls) */\n // Dialpad only has handlers currently and doesn't require any props from the stateful layer so return the emptySelector\n if (component === Dialpad) {\n return emptySelector;\n }\n\n /* @conditional-compile-remove(call-readiness) */\n // _DevicePermissionDropdown only has handlers currently and doesn't require any props from the stateful layer so return the emptySelector\n if (component === _DevicePermissionDropdown) {\n return emptySelector;\n }\n\n switch (component) {\n case VideoGallery:\n return videoGallerySelector;\n case MicrophoneButton:\n return microphoneButtonSelector;\n case CameraButton:\n return cameraButtonSelector;\n case ScreenShareButton:\n return screenShareButtonSelector;\n case DevicesButton:\n return devicesButtonSelector;\n case ParticipantList:\n return participantListSelector;\n case ParticipantsButton:\n return participantsButtonSelector;\n case EndCallButton:\n return emptySelector;\n case ErrorBar:\n return errorBarSelector;\n }\n return undefined;\n};\n\n/* @conditional-compile-remove(PSTN-calls) */\nconst findConditionalCompiledSelector = (component: (props: any) => JSX.Element | undefined): any => {\n switch (component) {\n case HoldButton:\n return holdButtonSelector;\n }\n};\n\"../../../react-components/src\"\"../../../acs-ui-common/src\""]}
1
+ {"version":3,"file":"usePropsFor.js","sourceRoot":"","sources":["../../../../../../calling-component-bindings/src/hooks/usePropsFor.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAElC,OAAO,EACL,YAAY,EACZ,aAAa,EACb,QAAQ,EACR,gBAAgB,EAChB,aAAa,EACb,eAAe,EACf,iBAAiB,EACjB,YAAY,EACb,sCAAmC;AACpC,0CAA0C,CAAC,6CAA6C;AACxF,OAAO,EAAE,OAAO,EAAE,sCAAmC;AACrD,6CAA6C;AAC7C,OAAO,EAAE,UAAU,EAAE,sCAAmC;AACxD,iDAAiD;AACjD,OAAO,EAAE,yBAAyB,EAAE,sCAAmC;AACvE,OAAO,EAEL,oBAAoB,EAEpB,wBAAwB,EAExB,qBAAqB,EAErB,yBAAyB,EAC1B,MAAM,yBAAyB,CAAC;AACjC,6CAA6C;AAC7C,OAAO,EAAE,kBAAkB,EAAsB,MAAM,yBAAyB,CAAC;AACjF,OAAO,EAAwB,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AACrF,OAAO,EAA2B,uBAAuB,EAAE,MAAM,4BAA4B,CAAC;AAC9F,OAAO,EAA8B,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AACvG,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAG5C,OAAO,EAAE,kBAAkB,EAAE,sCAAmC;AAChE,OAAO,EAAoB,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAGzE;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,CACzB,SAAoB,EAGR,EAAE;IACd,MAAM,QAAQ,GAAG,WAAW,CAAC,SAAS,CAAC,CAAC;IACxC,MAAM,KAAK,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAC;IACpC,MAAM,QAAQ,GAAG,WAAW,CAA2B,SAAS,CAAC,CAAC;IAClE,IAAI,KAAK,KAAK,SAAS,EAAE;QACvB,OAAO,gCAAK,KAAK,GAAK,QAAQ,CAAS,CAAC;KACzC;IACD,OAAO,SAAgB,CAAC;AAC1B,CAAC,CAAC;AAWF,MAAM,aAAa,GAAkB,GAA0B,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;AAoCvE;;;;;;;GAOG;AACH,6EAA6E;AAC7E,MAAM,CAAC,MAAM,WAAW,GAAG,CACzB,SAAoB,EACI,EAAE;IAC1B,6CAA6C;IAC7C,IAAI,SAAS,KAAK,UAAU,EAAE;QAC5B,OAAO,+BAA+B,CAAC,SAAS,CAAC,CAAC;KACnD;IACD,OAAO,YAAY,CAAC,SAAS,CAAC,CAAC;AACjC,CAAC,CAAC;AAEF,MAAM,YAAY,GAAG,CAAC,SAAkD,EAAO,EAAE;IAC/E,0CAA0C,CAAC,6CAA6C;IACxF,wHAAwH;IACxH,IAAI,SAAS,KAAK,OAAO,EAAE;QACzB,OAAO,aAAa,CAAC;KACtB;IAED,iDAAiD;IACjD,0IAA0I;IAC1I,IAAI,SAAS,KAAK,yBAAyB,EAAE;QAC3C,OAAO,aAAa,CAAC;KACtB;IAED,QAAQ,SAAS,EAAE;QACjB,KAAK,YAAY;YACf,OAAO,oBAAoB,CAAC;QAC9B,KAAK,gBAAgB;YACnB,OAAO,wBAAwB,CAAC;QAClC,KAAK,YAAY;YACf,OAAO,oBAAoB,CAAC;QAC9B,KAAK,iBAAiB;YACpB,OAAO,yBAAyB,CAAC;QACnC,KAAK,aAAa;YAChB,OAAO,qBAAqB,CAAC;QAC/B,KAAK,eAAe;YAClB,OAAO,uBAAuB,CAAC;QACjC,KAAK,kBAAkB;YACrB,OAAO,0BAA0B,CAAC;QACpC,KAAK,aAAa;YAChB,OAAO,aAAa,CAAC;QACvB,KAAK,QAAQ;YACX,OAAO,gBAAgB,CAAC;KAC3B;IACD,OAAO,SAAS,CAAC;AACnB,CAAC,CAAC;AAEF,6CAA6C;AAC7C,MAAM,+BAA+B,GAAG,CAAC,SAAkD,EAAO,EAAE;IAClG,QAAQ,SAAS,EAAE;QACjB,KAAK,UAAU;YACb,OAAO,kBAAkB,CAAC;KAC7B;AACH,CAAC,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport {\n CameraButton,\n EndCallButton,\n ErrorBar,\n MicrophoneButton,\n DevicesButton,\n ParticipantList,\n ScreenShareButton,\n VideoGallery\n} from '@internal/react-components';\n/* @conditional-compile-remove(dialpad) */ /* @conditional-compile-remove(PSTN-calls) */\nimport { Dialpad } from '@internal/react-components';\n/* @conditional-compile-remove(PSTN-calls) */\nimport { HoldButton } from '@internal/react-components';\n/* @conditional-compile-remove(call-readiness) */\nimport { _DevicePermissionDropdown } from '@internal/react-components';\nimport {\n CameraButtonSelector,\n cameraButtonSelector,\n MicrophoneButtonSelector,\n microphoneButtonSelector,\n DevicesButtonSelector,\n devicesButtonSelector,\n ScreenShareButtonSelector,\n screenShareButtonSelector\n} from '../callControlSelectors';\n/* @conditional-compile-remove(PSTN-calls) */\nimport { holdButtonSelector, HoldButtonSelector } from '../callControlSelectors';\nimport { VideoGallerySelector, videoGallerySelector } from '../videoGallerySelector';\nimport { ParticipantListSelector, participantListSelector } from '../participantListSelector';\nimport { ParticipantsButtonSelector, participantsButtonSelector } from '../participantsButtonSelector';\nimport { useHandlers } from './useHandlers';\nimport { useSelector } from './useSelector';\nimport { Common } from '@internal/acs-ui-common';\nimport { AreEqual } from '@internal/acs-ui-common';\nimport { ParticipantsButton } from '@internal/react-components';\nimport { ErrorBarSelector, errorBarSelector } from '../errorBarSelector';\nimport { CommonCallingHandlers } from '../handlers/createCommonHandlers';\n\n/**\n * Primary hook to get all hooks necessary for a calling Component.\n *\n * Most straightforward usage of calling components looks like:\n *\n * @example\n * ```\n * import { ParticipantList, usePropsFor } from '@azure/communication-react';\n *\n * const App = (): JSX.Element => {\n * // ... code to setup Providers ...\n *\n * return <ParticipantList {...usePropsFor(ParticipantList)}/>\n * }\n * ```\n *\n * @public\n */\nexport const usePropsFor = <Component extends (props: any) => JSX.Element>(\n component: Component\n): GetSelector<Component> extends (props: any) => any\n ? ReturnType<GetSelector<Component>> & Common<CommonCallingHandlers, Parameters<Component>[0]>\n : undefined => {\n const selector = getSelector(component);\n const props = useSelector(selector);\n const handlers = useHandlers<Parameters<Component>[0]>(component);\n if (props !== undefined) {\n return { ...props, ...handlers } as any;\n }\n return undefined as any;\n};\n\n/**\n * A type for trivial selectors that return no data.\n *\n * Used as a default return value if {@link usePropsFor} is called for a component that requires no data.\n *\n * @public\n */\nexport type EmptySelector = () => Record<string, never>;\n\nconst emptySelector: EmptySelector = (): Record<string, never> => ({});\n\n/**\n * Specific type of the selector applicable to a given Component.\n *\n * @public\n */\nexport type GetSelector<Component extends (props: any) => JSX.Element | undefined> = AreEqual<\n Component,\n typeof VideoGallery\n> extends true\n ? VideoGallerySelector\n : AreEqual<Component, typeof DevicesButton> extends true\n ? DevicesButtonSelector\n : AreEqual<Component, typeof MicrophoneButton> extends true\n ? MicrophoneButtonSelector\n : AreEqual<Component, typeof CameraButton> extends true\n ? CameraButtonSelector\n : AreEqual<Component, typeof ScreenShareButton> extends true\n ? ScreenShareButtonSelector\n : AreEqual<Component, typeof ParticipantList> extends true\n ? ParticipantListSelector\n : AreEqual<Component, typeof ParticipantsButton> extends true\n ? ParticipantsButtonSelector\n : AreEqual<Component, typeof EndCallButton> extends true\n ? EmptySelector\n : AreEqual<Component, typeof ErrorBar> extends true\n ? ErrorBarSelector\n : AreEqual<Component, typeof Dialpad> extends true\n ? /* @conditional-compile-remove(dialpad) */ /* @conditional-compile-remove(PSTN-calls) */ EmptySelector\n : AreEqual<Component, typeof HoldButton> extends true\n ? /* @conditional-compile-remove(PSTN-calls) */ HoldButtonSelector\n : AreEqual<Component, typeof _DevicePermissionDropdown> extends true\n ? /* @conditional-compile-remove(call-readiness) */ EmptySelector\n : undefined;\n\n/**\n * Get the selector for a specified component.\n *\n * Useful when implementing a custom component that utilizes the providers\n * exported from this library.\n *\n * @public\n */\n// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\nexport const getSelector = <Component extends (props: any) => JSX.Element | undefined>(\n component: Component\n): GetSelector<Component> => {\n /* @conditional-compile-remove(PSTN-calls) */\n if (component === HoldButton) {\n return findConditionalCompiledSelector(component);\n }\n return findSelector(component);\n};\n\nconst findSelector = (component: (props: any) => JSX.Element | undefined): any => {\n /* @conditional-compile-remove(dialpad) */ /* @conditional-compile-remove(PSTN-calls) */\n // Dialpad only has handlers currently and doesn't require any props from the stateful layer so return the emptySelector\n if (component === Dialpad) {\n return emptySelector;\n }\n\n /* @conditional-compile-remove(call-readiness) */\n // _DevicePermissionDropdown only has handlers currently and doesn't require any props from the stateful layer so return the emptySelector\n if (component === _DevicePermissionDropdown) {\n return emptySelector;\n }\n\n switch (component) {\n case VideoGallery:\n return videoGallerySelector;\n case MicrophoneButton:\n return microphoneButtonSelector;\n case CameraButton:\n return cameraButtonSelector;\n case ScreenShareButton:\n return screenShareButtonSelector;\n case DevicesButton:\n return devicesButtonSelector;\n case ParticipantList:\n return participantListSelector;\n case ParticipantsButton:\n return participantsButtonSelector;\n case EndCallButton:\n return emptySelector;\n case ErrorBar:\n return errorBarSelector;\n }\n return undefined;\n};\n\n/* @conditional-compile-remove(PSTN-calls) */\nconst findConditionalCompiledSelector = (component: (props: any) => JSX.Element | undefined): any => {\n switch (component) {\n case HoldButton:\n return holdButtonSelector;\n }\n};\n\"../../../react-components/src\"\"../../../acs-ui-common/src\""]}
@@ -1,6 +1,6 @@
1
1
  // Copyright (c) Microsoft Corporation.
2
2
  // Licensed under the MIT license.
3
- import { CallClientContext, useCall } from '../providers';
3
+ import { CallClientContext, CallContext } from '../providers';
4
4
  import { useState, useEffect, useRef, useMemo, useContext } from 'react';
5
5
  /**
6
6
  * Hook to obtain a selector for a specified component.
@@ -11,9 +11,9 @@ import { useState, useEffect, useRef, useMemo, useContext } from 'react';
11
11
  * @public
12
12
  */
13
13
  export const useSelector = (selector, selectorProps) => {
14
- var _a, _b;
14
+ var _a, _b, _c;
15
15
  const callClient = (_a = useContext(CallClientContext)) === null || _a === void 0 ? void 0 : _a.callClient;
16
- const callId = (_b = useCall()) === null || _b === void 0 ? void 0 : _b.id;
16
+ const callId = (_c = (_b = useContext(CallContext)) === null || _b === void 0 ? void 0 : _b.call) === null || _c === void 0 ? void 0 : _c.id;
17
17
  // Keeps track of whether the current component is mounted or not. If it has unmounted, make sure we do not modify the
18
18
  // state or it will cause React warnings in the console. https://skype.visualstudio.com/SPOOL/_workitems/edit/2453212
19
19
  const mounted = useRef(false);
@@ -1 +1 @@
1
- {"version":3,"file":"useSelector.js","sourceRoot":"","sources":["../../../../../../calling-component-bindings/src/hooks/useSelector.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAGlC,OAAO,EAAE,iBAAiB,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAE1D,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAEzE;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,CAIzB,QAAgB,EAChB,aAAwC,EACsB,EAAE;;IAChE,MAAM,UAAU,GAAmC,MAAA,UAAU,CAAC,iBAAiB,CAAC,0CAAE,UAAU,CAAC;IAC7F,MAAM,MAAM,GAAG,MAAA,OAAO,EAAE,0CAAE,EAAE,CAAC;IAE7B,sHAAsH;IACtH,qHAAqH;IACrH,MAAM,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IAE9B,SAAS,CAAC,GAAG,EAAE;QACb,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;QACvB,OAAO,GAAG,EAAE;YACV,OAAO,CAAC,OAAO,GAAG,KAAK,CAAC;QAC1B,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,MAAM,iBAAiB,GAAG,OAAO,CAC/B,GAAG,EAAE,CAAC,CAAC;QACL,MAAM;KACP,CAAC,EACF,CAAC,MAAM,CAAC,CACT,CAAC;IAEF,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAChC,UAAU,IAAI,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,QAAQ,EAAE,EAAE,aAAa,aAAb,aAAa,cAAb,aAAa,GAAI,iBAAiB,CAAC,CAAC,CAAC,CAAC,SAAS,CACzG,CAAC;IACF,MAAM,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IAC9B,OAAO,CAAC,OAAO,GAAG,KAAK,CAAC;IACxB,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,UAAU,IAAI,CAAC,QAAQ,EAAE;YAC5B,OAAO;SACR;QACD,MAAM,aAAa,GAAG,CAAC,KAAsB,EAAQ,EAAE;YACrD,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE;gBACpB,OAAO;aACR;YACD,MAAM,QAAQ,GAAG,QAAQ,CAAC,KAAK,EAAE,aAAa,aAAb,aAAa,cAAb,aAAa,GAAI,iBAAiB,CAAC,CAAC;YACrE,IAAI,OAAO,CAAC,OAAO,KAAK,QAAQ,EAAE;gBAChC,QAAQ,CAAC,QAAQ,CAAC,CAAC;aACpB;QACH,CAAC,CAAC;QACF,UAAU,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC;QACxC,OAAO,GAAG,EAAE;YACV,UAAU,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC;QAC3C,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,UAAU,EAAE,QAAQ,EAAE,aAAa,EAAE,iBAAiB,EAAE,OAAO,CAAC,CAAC,CAAC;IACtE,OAAO,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;AACtC,CAAC,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport { CallClientState, StatefulCallClient } from '@internal/calling-stateful-client';\nimport { CallClientContext, useCall } from '../providers';\n\nimport { useState, useEffect, useRef, useMemo, useContext } from 'react';\n\n/**\n * Hook to obtain a selector for a specified component.\n *\n * Useful when implementing a custom component that utilizes the providers\n * exported from this library.\n *\n * @public\n */\nexport const useSelector = <\n SelectorT extends (state: CallClientState, props: any) => any,\n ParamT extends SelectorT | undefined\n>(\n selector: ParamT,\n selectorProps?: Parameters<SelectorT>[1]\n): ParamT extends SelectorT ? ReturnType<SelectorT> : undefined => {\n const callClient: StatefulCallClient | undefined = useContext(CallClientContext)?.callClient;\n const callId = useCall()?.id;\n\n // Keeps track of whether the current component is mounted or not. If it has unmounted, make sure we do not modify the\n // state or it will cause React warnings in the console. https://skype.visualstudio.com/SPOOL/_workitems/edit/2453212\n const mounted = useRef(false);\n\n useEffect(() => {\n mounted.current = true;\n return () => {\n mounted.current = false;\n };\n });\n\n const callIdConfigProps = useMemo(\n () => ({\n callId\n }),\n [callId]\n );\n\n const [props, setProps] = useState(\n callClient && selector ? selector(callClient.getState(), selectorProps ?? callIdConfigProps) : undefined\n );\n const propRef = useRef(props);\n propRef.current = props;\n useEffect(() => {\n if (!callClient || !selector) {\n return;\n }\n const onStateChange = (state: CallClientState): void => {\n if (!mounted.current) {\n return;\n }\n const newProps = selector(state, selectorProps ?? callIdConfigProps);\n if (propRef.current !== newProps) {\n setProps(newProps);\n }\n };\n callClient.onStateChange(onStateChange);\n return () => {\n callClient.offStateChange(onStateChange);\n };\n }, [callClient, selector, selectorProps, callIdConfigProps, mounted]);\n return selector ? props : undefined;\n};\n\"../../../calling-stateful-client/src\""]}
1
+ {"version":3,"file":"useSelector.js","sourceRoot":"","sources":["../../../../../../calling-component-bindings/src/hooks/useSelector.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAGlC,OAAO,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAE9D,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAEzE;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,CAIzB,QAAgB,EAChB,aAAwC,EACsB,EAAE;;IAChE,MAAM,UAAU,GAAmC,MAAA,UAAU,CAAC,iBAAiB,CAAC,0CAAE,UAAU,CAAC;IAC7F,MAAM,MAAM,GAAG,MAAA,MAAA,UAAU,CAAC,WAAW,CAAC,0CAAE,IAAI,0CAAE,EAAE,CAAC;IAEjD,sHAAsH;IACtH,qHAAqH;IACrH,MAAM,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IAE9B,SAAS,CAAC,GAAG,EAAE;QACb,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;QACvB,OAAO,GAAG,EAAE;YACV,OAAO,CAAC,OAAO,GAAG,KAAK,CAAC;QAC1B,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,MAAM,iBAAiB,GAAG,OAAO,CAC/B,GAAG,EAAE,CAAC,CAAC;QACL,MAAM;KACP,CAAC,EACF,CAAC,MAAM,CAAC,CACT,CAAC;IAEF,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAChC,UAAU,IAAI,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,QAAQ,EAAE,EAAE,aAAa,aAAb,aAAa,cAAb,aAAa,GAAI,iBAAiB,CAAC,CAAC,CAAC,CAAC,SAAS,CACzG,CAAC;IACF,MAAM,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IAC9B,OAAO,CAAC,OAAO,GAAG,KAAK,CAAC;IACxB,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,UAAU,IAAI,CAAC,QAAQ,EAAE;YAC5B,OAAO;SACR;QACD,MAAM,aAAa,GAAG,CAAC,KAAsB,EAAQ,EAAE;YACrD,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE;gBACpB,OAAO;aACR;YACD,MAAM,QAAQ,GAAG,QAAQ,CAAC,KAAK,EAAE,aAAa,aAAb,aAAa,cAAb,aAAa,GAAI,iBAAiB,CAAC,CAAC;YACrE,IAAI,OAAO,CAAC,OAAO,KAAK,QAAQ,EAAE;gBAChC,QAAQ,CAAC,QAAQ,CAAC,CAAC;aACpB;QACH,CAAC,CAAC;QACF,UAAU,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC;QACxC,OAAO,GAAG,EAAE;YACV,UAAU,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC;QAC3C,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,UAAU,EAAE,QAAQ,EAAE,aAAa,EAAE,iBAAiB,EAAE,OAAO,CAAC,CAAC,CAAC;IACtE,OAAO,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;AACtC,CAAC,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport { CallClientState, StatefulCallClient } from '@internal/calling-stateful-client';\nimport { CallClientContext, CallContext } from '../providers';\n\nimport { useState, useEffect, useRef, useMemo, useContext } from 'react';\n\n/**\n * Hook to obtain a selector for a specified component.\n *\n * Useful when implementing a custom component that utilizes the providers\n * exported from this library.\n *\n * @public\n */\nexport const useSelector = <\n SelectorT extends (state: CallClientState, props: any) => any,\n ParamT extends SelectorT | undefined\n>(\n selector: ParamT,\n selectorProps?: Parameters<SelectorT>[1]\n): ParamT extends SelectorT ? ReturnType<SelectorT> : undefined => {\n const callClient: StatefulCallClient | undefined = useContext(CallClientContext)?.callClient;\n const callId = useContext(CallContext)?.call?.id;\n\n // Keeps track of whether the current component is mounted or not. If it has unmounted, make sure we do not modify the\n // state or it will cause React warnings in the console. https://skype.visualstudio.com/SPOOL/_workitems/edit/2453212\n const mounted = useRef(false);\n\n useEffect(() => {\n mounted.current = true;\n return () => {\n mounted.current = false;\n };\n });\n\n const callIdConfigProps = useMemo(\n () => ({\n callId\n }),\n [callId]\n );\n\n const [props, setProps] = useState(\n callClient && selector ? selector(callClient.getState(), selectorProps ?? callIdConfigProps) : undefined\n );\n const propRef = useRef(props);\n propRef.current = props;\n useEffect(() => {\n if (!callClient || !selector) {\n return;\n }\n const onStateChange = (state: CallClientState): void => {\n if (!mounted.current) {\n return;\n }\n const newProps = selector(state, selectorProps ?? callIdConfigProps);\n if (propRef.current !== newProps) {\n setProps(newProps);\n }\n };\n callClient.onStateChange(onStateChange);\n return () => {\n callClient.offStateChange(onStateChange);\n };\n }, [callClient, selector, selectorProps, callIdConfigProps, mounted]);\n return selector ? props : undefined;\n};\n\"../../../calling-stateful-client/src\""]}
@@ -1,12 +1,16 @@
1
1
  export type { CallingBaseSelectorProps } from './baseSelectors';
2
2
  export * from './callControlSelectors';
3
3
  export { createDefaultCallingHandlers } from './handlers/createHandlers';
4
+ export { createDefaultTeamsCallingHandlers } from './handlers/createTeamsCallHandlers';
4
5
  export type { ParticipantListSelector } from './participantListSelector';
5
6
  export type { ParticipantsButtonSelector } from './participantsButtonSelector';
6
7
  export type { VideoGallerySelector } from './videoGallerySelector';
7
8
  export type { ErrorBarSelector } from './errorBarSelector';
8
9
  export type { HoldButtonSelector } from './callControlSelectors';
9
10
  export type { CallingHandlers } from './handlers/createHandlers';
11
+ export type { TeamsCallingHandlers } from './handlers/createTeamsCallHandlers';
12
+ export type { CommonCallingHandlers } from './handlers/createCommonHandlers';
13
+ export { useTeamsCall, useTeamsCallAgent } from './providers';
10
14
  export { CallAgentProvider, CallClientProvider, CallProvider, useCall, useCallAgent, useCallClient, useDeviceManager } from './providers';
11
15
  export type { CallAgentProviderProps, CallClientProviderProps, CallProviderProps } from './providers';
12
16
  export { usePropsFor as useCallingPropsFor, getSelector as getCallingSelector } from './hooks/usePropsFor';
@@ -2,6 +2,10 @@
2
2
  // Licensed under the MIT license.
3
3
  export * from './callControlSelectors';
4
4
  export { createDefaultCallingHandlers } from './handlers/createHandlers';
5
+ /* @conditional-compile-remove(teams-identity-support) */
6
+ export { createDefaultTeamsCallingHandlers } from './handlers/createTeamsCallHandlers';
7
+ /* @conditional-compile-remove(teams-identity-support) */
8
+ export { useTeamsCall, useTeamsCallAgent } from './providers';
5
9
  export { CallAgentProvider, CallClientProvider, CallProvider, useCall, useCallAgent, useCallClient, useDeviceManager } from './providers';
6
10
  export { usePropsFor as useCallingPropsFor, getSelector as getCallingSelector } from './hooks/usePropsFor';
7
11
  export { useSelector as useCallingSelector } from './hooks/useSelector';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../calling-component-bindings/src/index.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAGlC,cAAc,wBAAwB,CAAC;AACvC,OAAO,EAAE,4BAA4B,EAAE,MAAM,2BAA2B,CAAC;AAUzE,OAAO,EACL,iBAAiB,EACjB,kBAAkB,EAClB,YAAY,EACZ,OAAO,EACP,YAAY,EACZ,aAAa,EACb,gBAAgB,EACjB,MAAM,aAAa,CAAC;AAGrB,OAAO,EAAE,WAAW,IAAI,kBAAkB,EAAE,WAAW,IAAI,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAG3G,OAAO,EAAE,WAAW,IAAI,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACxE,OAAO,EAAE,WAAW,IAAI,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAExE,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AACpF,6CAA6C;AAC7C,OAAO,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAC;AAE5D,OAAO,EAAE,mCAAmC,EAAE,2BAA2B,EAAE,MAAM,2BAA2B,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nexport type { CallingBaseSelectorProps } from './baseSelectors';\nexport * from './callControlSelectors';\nexport { createDefaultCallingHandlers } from './handlers/createHandlers';\nexport type { ParticipantListSelector } from './participantListSelector';\nexport type { ParticipantsButtonSelector } from './participantsButtonSelector';\nexport type { VideoGallerySelector } from './videoGallerySelector';\nexport type { ErrorBarSelector } from './errorBarSelector';\n/* @conditional-compile-remove(PSTN-calls) */\nexport type { HoldButtonSelector } from './callControlSelectors';\n\nexport type { CallingHandlers } from './handlers/createHandlers';\n\nexport {\n CallAgentProvider,\n CallClientProvider,\n CallProvider,\n useCall,\n useCallAgent,\n useCallClient,\n useDeviceManager\n} from './providers';\nexport type { CallAgentProviderProps, CallClientProviderProps, CallProviderProps } from './providers';\n\nexport { usePropsFor as useCallingPropsFor, getSelector as getCallingSelector } from './hooks/usePropsFor';\nexport type { GetSelector as GetCallingSelector, EmptySelector } from './hooks/usePropsFor';\n\nexport { useSelector as useCallingSelector } from './hooks/useSelector';\nexport { useHandlers as useCallingHandlers } from './hooks/useHandlers';\n\nexport { _isInCall, _isPreviewOn, _isInLobbyOrConnecting } from './utils/callUtils';\n/* @conditional-compile-remove(PSTN-calls) */\nexport { _updateUserDisplayNames } from './utils/callUtils';\n\nexport { _videoGalleryRemoteParticipantsMemo, _dominantSpeakersWithFlatId } from './utils/videoGalleryUtils';\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../calling-component-bindings/src/index.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAGlC,cAAc,wBAAwB,CAAC;AACvC,OAAO,EAAE,4BAA4B,EAAE,MAAM,2BAA2B,CAAC;AACzE,yDAAyD;AACzD,OAAO,EAAE,iCAAiC,EAAE,MAAM,oCAAoC,CAAC;AAavF,yDAAyD;AACzD,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAE9D,OAAO,EACL,iBAAiB,EACjB,kBAAkB,EAClB,YAAY,EACZ,OAAO,EACP,YAAY,EACZ,aAAa,EACb,gBAAgB,EACjB,MAAM,aAAa,CAAC;AAGrB,OAAO,EAAE,WAAW,IAAI,kBAAkB,EAAE,WAAW,IAAI,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAG3G,OAAO,EAAE,WAAW,IAAI,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACxE,OAAO,EAAE,WAAW,IAAI,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAExE,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AACpF,6CAA6C;AAC7C,OAAO,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAC;AAE5D,OAAO,EAAE,mCAAmC,EAAE,2BAA2B,EAAE,MAAM,2BAA2B,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nexport type { CallingBaseSelectorProps } from './baseSelectors';\nexport * from './callControlSelectors';\nexport { createDefaultCallingHandlers } from './handlers/createHandlers';\n/* @conditional-compile-remove(teams-identity-support) */\nexport { createDefaultTeamsCallingHandlers } from './handlers/createTeamsCallHandlers';\nexport type { ParticipantListSelector } from './participantListSelector';\nexport type { ParticipantsButtonSelector } from './participantsButtonSelector';\nexport type { VideoGallerySelector } from './videoGallerySelector';\nexport type { ErrorBarSelector } from './errorBarSelector';\n/* @conditional-compile-remove(PSTN-calls) */\nexport type { HoldButtonSelector } from './callControlSelectors';\n\nexport type { CallingHandlers } from './handlers/createHandlers';\n/* @conditional-compile-remove(teams-identity-support) */\nexport type { TeamsCallingHandlers } from './handlers/createTeamsCallHandlers';\nexport type { CommonCallingHandlers } from './handlers/createCommonHandlers';\n\n/* @conditional-compile-remove(teams-identity-support) */\nexport { useTeamsCall, useTeamsCallAgent } from './providers';\n\nexport {\n CallAgentProvider,\n CallClientProvider,\n CallProvider,\n useCall,\n useCallAgent,\n useCallClient,\n useDeviceManager\n} from './providers';\nexport type { CallAgentProviderProps, CallClientProviderProps, CallProviderProps } from './providers';\n\nexport { usePropsFor as useCallingPropsFor, getSelector as getCallingSelector } from './hooks/usePropsFor';\nexport type { GetSelector as GetCallingSelector, EmptySelector } from './hooks/usePropsFor';\n\nexport { useSelector as useCallingSelector } from './hooks/useSelector';\nexport { useHandlers as useCallingHandlers } from './hooks/useHandlers';\n\nexport { _isInCall, _isPreviewOn, _isInLobbyOrConnecting } from './utils/callUtils';\n/* @conditional-compile-remove(PSTN-calls) */\nexport { _updateUserDisplayNames } from './utils/callUtils';\n\nexport { _videoGalleryRemoteParticipantsMemo, _dominantSpeakersWithFlatId } from './utils/videoGalleryUtils';\n"]}
@@ -4,9 +4,12 @@ import { createSelector } from 'reselect';
4
4
  import { getIdentifier, getDisplayName, getRemoteParticipants, getIsScreenSharingOn, getIsMuted } from './baseSelectors';
5
5
  import { _updateUserDisplayNames } from './utils/callUtils';
6
6
  import { memoizedConvertAllremoteParticipants } from './utils/participantListSelectorUtils';
7
+ /* @conditional-compile-remove(rooms) */
8
+ import { memoizedConvertAllremoteParticipantsBeta } from './utils/participantListSelectorUtils';
7
9
  import { toFlatCommunicationIdentifier } from "../../acs-ui-common/src";
8
10
  const convertRemoteParticipantsToParticipantListParticipants = (remoteParticipants) => {
9
- return memoizedConvertAllremoteParticipants((memoizeFn) => {
11
+ /* eslint-disable @typescript-eslint/explicit-function-return-type */
12
+ const conversionCallback = (memoizeFn) => {
10
13
  return (remoteParticipants
11
14
  // temporarily hiding lobby participants in ACS clients till we can admit users through ACS clients
12
15
  .filter((participant) => {
@@ -14,7 +17,8 @@ const convertRemoteParticipantsToParticipantListParticipants = (remoteParticipan
14
17
  })
15
18
  .map((participant) => {
16
19
  const isScreenSharing = Object.values(participant.videoStreams).some((videoStream) => videoStream.mediaStreamType === 'ScreenSharing' && videoStream.isAvailable);
17
- return memoizeFn(toFlatCommunicationIdentifier(participant.identifier), participant.displayName, participant.state, participant.isMuted, isScreenSharing, participant.isSpeaking);
20
+ return memoizeFn(toFlatCommunicationIdentifier(participant.identifier), participant.displayName, participant.state, participant.isMuted, isScreenSharing, participant.isSpeaking,
21
+ /* @conditional-compile-remove(rooms) */ participant.role);
18
22
  })
19
23
  .sort((a, b) => {
20
24
  var _a, _b;
@@ -30,7 +34,10 @@ const convertRemoteParticipantsToParticipantListParticipants = (remoteParticipan
30
34
  return 0;
31
35
  }
32
36
  }));
33
- });
37
+ };
38
+ /* @conditional-compile-remove(rooms) */
39
+ return memoizedConvertAllremoteParticipantsBeta(conversionCallback);
40
+ return memoizedConvertAllremoteParticipants(conversionCallback);
34
41
  };
35
42
  /**
36
43
  * Selects data that drives {@link ParticipantList} component.
@@ -1 +1 @@
1
- {"version":3,"file":"participantListSelector.js","sourceRoot":"","sources":["../../../../../calling-component-bindings/src/participantListSelector.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAGlC,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAC1C,OAAO,EACL,aAAa,EACb,cAAc,EACd,qBAAqB,EACrB,oBAAoB,EACpB,UAAU,EAEX,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAC;AAC5D,OAAO,EAAE,oCAAoC,EAAE,MAAM,sCAAsC,CAAC;AAC5F,OAAO,EAAE,6BAA6B,EAAE,gCAAgC;AAExE,MAAM,sDAAsD,GAAG,CAC7D,kBAA4C,EACV,EAAE;IACpC,OAAO,oCAAoC,CAAC,CAAC,SAAS,EAAE,EAAE;QACxD,OAAO,CACL,kBAAkB;YAChB,mGAAmG;aAClG,MAAM,CAAC,CAAC,WAAmC,EAAE,EAAE;YAC9C,OAAO,WAAW,CAAC,KAAK,KAAK,SAAS,CAAC;QACzC,CAAC,CAAC;aACD,GAAG,CAAC,CAAC,WAAmC,EAAE,EAAE;YAC3C,MAAM,eAAe,GAAG,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC,IAAI,CAClE,CAAC,WAAW,EAAE,EAAE,CAAC,WAAW,CAAC,eAAe,KAAK,eAAe,IAAI,WAAW,CAAC,WAAW,CAC5F,CAAC;YACF,OAAO,SAAS,CACd,6BAA6B,CAAC,WAAW,CAAC,UAAU,CAAC,EACrD,WAAW,CAAC,WAAW,EACvB,WAAW,CAAC,KAAK,EACjB,WAAW,CAAC,OAAO,EACnB,eAAe,EACf,WAAW,CAAC,UAAU,CACvB,CAAC;QACJ,CAAC,CAAC;aACD,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;;YACb,MAAM,KAAK,GAAG,CAAA,MAAA,CAAC,CAAC,WAAW,0CAAE,WAAW,EAAE,KAAI,EAAE,CAAC;YACjD,MAAM,KAAK,GAAG,CAAA,MAAA,CAAC,CAAC,WAAW,0CAAE,WAAW,EAAE,KAAI,EAAE,CAAC;YACjD,IAAI,KAAK,GAAG,KAAK,EAAE;gBACjB,OAAO,CAAC,CAAC,CAAC;aACX;iBAAM,IAAI,KAAK,GAAG,KAAK,EAAE;gBACxB,OAAO,CAAC,CAAC;aACV;iBAAM;gBACL,OAAO,CAAC,CAAC;aACV;QACH,CAAC,CAAC,CACL,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;AAeF;;;;GAIG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAA4B,cAAc,CAC5E,CAAC,aAAa,EAAE,cAAc,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,UAAU,CAAC,EACxF,CACE,MAAM,EACN,WAAW,EACX,kBAAkB,EAClB,iBAAiB,EACjB,OAAO,EAIP,EAAE;IACF,MAAM,YAAY,GAAG,kBAAkB;QACrC,CAAC,CAAC,sDAAsD,CACpD,gCAAgC,CAAC,MAAM,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC,CACpE;QACH,CAAC,CAAC,EAAE,CAAC;IACP,YAAY,CAAC,IAAI,CAAC;QAChB,MAAM,EAAE,MAAM;QACd,WAAW,EAAE,WAAW;QACxB,eAAe,EAAE,iBAAiB;QAClC,OAAO,EAAE,OAAO;QAChB,KAAK,EAAE,WAAW;QAClB,iDAAiD;QACjD,WAAW,EAAE,KAAK;KACnB,CAAC,CAAC;IACH,OAAO;QACL,YAAY,EAAE,YAAY;QAC1B,QAAQ,EAAE,MAAM;KACjB,CAAC;AACJ,CAAC,CACF,CAAC;AAEF,MAAM,gCAAgC,GAAG,CAAC,kBAA4C,EAA4B,EAAE;IAClH,6CAA6C;IAC7C,OAAO,uBAAuB,CAAC,kBAAkB,CAAC,CAAC;IACnD,OAAO,kBAAkB,CAAC;AAC5B,CAAC,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport { CallClientState, RemoteParticipantState } from '@internal/calling-stateful-client';\nimport { createSelector } from 'reselect';\nimport {\n getIdentifier,\n getDisplayName,\n getRemoteParticipants,\n getIsScreenSharingOn,\n getIsMuted,\n CallingBaseSelectorProps\n} from './baseSelectors';\nimport { CallParticipantListParticipant } from '@internal/react-components';\nimport { _updateUserDisplayNames } from './utils/callUtils';\nimport { memoizedConvertAllremoteParticipants } from './utils/participantListSelectorUtils';\nimport { toFlatCommunicationIdentifier } from '@internal/acs-ui-common';\n\nconst convertRemoteParticipantsToParticipantListParticipants = (\n remoteParticipants: RemoteParticipantState[]\n): CallParticipantListParticipant[] => {\n return memoizedConvertAllremoteParticipants((memoizeFn) => {\n return (\n remoteParticipants\n // temporarily hiding lobby participants in ACS clients till we can admit users through ACS clients\n .filter((participant: RemoteParticipantState) => {\n return participant.state !== 'InLobby';\n })\n .map((participant: RemoteParticipantState) => {\n const isScreenSharing = Object.values(participant.videoStreams).some(\n (videoStream) => videoStream.mediaStreamType === 'ScreenSharing' && videoStream.isAvailable\n );\n return memoizeFn(\n toFlatCommunicationIdentifier(participant.identifier),\n participant.displayName,\n participant.state,\n participant.isMuted,\n isScreenSharing,\n participant.isSpeaking\n );\n })\n .sort((a, b) => {\n const nameA = a.displayName?.toLowerCase() || '';\n const nameB = b.displayName?.toLowerCase() || '';\n if (nameA < nameB) {\n return -1;\n } else if (nameA > nameB) {\n return 1;\n } else {\n return 0;\n }\n })\n );\n });\n};\n\n/**\n * Selector type for {@link ParticipantList} component.\n *\n * @public\n */\nexport type ParticipantListSelector = (\n state: CallClientState,\n props: CallingBaseSelectorProps\n) => {\n participants: CallParticipantListParticipant[];\n myUserId: string;\n};\n\n/**\n * Selects data that drives {@link ParticipantList} component.\n *\n * @public\n */\nexport const participantListSelector: ParticipantListSelector = createSelector(\n [getIdentifier, getDisplayName, getRemoteParticipants, getIsScreenSharingOn, getIsMuted],\n (\n userId,\n displayName,\n remoteParticipants,\n isScreenSharingOn,\n isMuted\n ): {\n participants: CallParticipantListParticipant[];\n myUserId: string;\n } => {\n const participants = remoteParticipants\n ? convertRemoteParticipantsToParticipantListParticipants(\n updateUserDisplayNamesTrampoline(Object.values(remoteParticipants))\n )\n : [];\n participants.push({\n userId: userId,\n displayName: displayName,\n isScreenSharing: isScreenSharingOn,\n isMuted: isMuted,\n state: 'Connected',\n // Local participant can never remove themselves.\n isRemovable: false\n });\n return {\n participants: participants,\n myUserId: userId\n };\n }\n);\n\nconst updateUserDisplayNamesTrampoline = (remoteParticipants: RemoteParticipantState[]): RemoteParticipantState[] => {\n /* @conditional-compile-remove(PSTN-calls) */\n return _updateUserDisplayNames(remoteParticipants);\n return remoteParticipants;\n};\n\"../../calling-stateful-client/src\"\"../../react-components/src\"\"../../acs-ui-common/src\""]}
1
+ {"version":3,"file":"participantListSelector.js","sourceRoot":"","sources":["../../../../../calling-component-bindings/src/participantListSelector.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport { CallClientState, RemoteParticipantState } from '@internal/calling-stateful-client';\nimport { createSelector } from 'reselect';\nimport {\n getIdentifier,\n getDisplayName,\n getRemoteParticipants,\n getIsScreenSharingOn,\n getIsMuted,\n CallingBaseSelectorProps\n} from './baseSelectors';\nimport { CallParticipantListParticipant } from '@internal/react-components';\nimport { _updateUserDisplayNames } from './utils/callUtils';\nimport { memoizedConvertAllremoteParticipants } from './utils/participantListSelectorUtils';\n/* @conditional-compile-remove(rooms) */\nimport { memoizedConvertAllremoteParticipantsBeta } from './utils/participantListSelectorUtils';\nimport { toFlatCommunicationIdentifier } from '@internal/acs-ui-common';\n\nconst convertRemoteParticipantsToParticipantListParticipants = (\n remoteParticipants: RemoteParticipantState[]\n): CallParticipantListParticipant[] => {\n /* eslint-disable @typescript-eslint/explicit-function-return-type */\n const conversionCallback = (memoizeFn) => {\n return (\n remoteParticipants\n // temporarily hiding lobby participants in ACS clients till we can admit users through ACS clients\n .filter((participant: RemoteParticipantState) => {\n return participant.state !== 'InLobby';\n })\n .map((participant: RemoteParticipantState) => {\n const isScreenSharing = Object.values(participant.videoStreams).some(\n (videoStream) => videoStream.mediaStreamType === 'ScreenSharing' && videoStream.isAvailable\n );\n return memoizeFn(\n toFlatCommunicationIdentifier(participant.identifier),\n participant.displayName,\n participant.state,\n participant.isMuted,\n isScreenSharing,\n participant.isSpeaking,\n /* @conditional-compile-remove(rooms) */ participant.role\n );\n })\n .sort((a, b) => {\n const nameA = a.displayName?.toLowerCase() || '';\n const nameB = b.displayName?.toLowerCase() || '';\n if (nameA < nameB) {\n return -1;\n } else if (nameA > nameB) {\n return 1;\n } else {\n return 0;\n }\n })\n );\n };\n /* @conditional-compile-remove(rooms) */\n return memoizedConvertAllremoteParticipantsBeta(conversionCallback);\n return memoizedConvertAllremoteParticipants(conversionCallback);\n};\n\n/**\n * Selector type for {@link ParticipantList} component.\n *\n * @public\n */\nexport type ParticipantListSelector = (\n state: CallClientState,\n props: CallingBaseSelectorProps\n) => {\n participants: CallParticipantListParticipant[];\n myUserId: string;\n};\n\n/**\n * Selects data that drives {@link ParticipantList} component.\n *\n * @public\n */\nexport const participantListSelector: ParticipantListSelector = createSelector(\n [getIdentifier, getDisplayName, getRemoteParticipants, getIsScreenSharingOn, getIsMuted],\n (\n userId,\n displayName,\n remoteParticipants,\n isScreenSharingOn,\n isMuted\n ): {\n participants: CallParticipantListParticipant[];\n myUserId: string;\n } => {\n const participants = remoteParticipants\n ? convertRemoteParticipantsToParticipantListParticipants(\n updateUserDisplayNamesTrampoline(Object.values(remoteParticipants))\n )\n : [];\n participants.push({\n userId: userId,\n displayName: displayName,\n isScreenSharing: isScreenSharingOn,\n isMuted: isMuted,\n state: 'Connected',\n // Local participant can never remove themselves.\n isRemovable: false\n });\n return {\n participants: participants,\n myUserId: userId\n };\n }\n);\n\nconst updateUserDisplayNamesTrampoline = (remoteParticipants: RemoteParticipantState[]): RemoteParticipantState[] => {\n /* @conditional-compile-remove(PSTN-calls) */\n return _updateUserDisplayNames(remoteParticipants);\n return remoteParticipants;\n};\n\"../../calling-stateful-client/src\"\"../../react-components/src\"\"../../acs-ui-common/src\""]}
@@ -1,10 +1,11 @@
1
1
  import { CallAgent } from '@azure/communication-calling';
2
+ import { TeamsCallAgent } from '@azure/communication-calling';
2
3
  import React from 'react';
3
4
  /**
4
5
  * @private
5
6
  */
6
7
  export declare type CallAgentContextType = {
7
- callAgent: CallAgent | undefined;
8
+ callAgent: CallAgent | /* @conditional-compile-remove(teams-identity-support) */ TeamsCallAgent | undefined;
8
9
  };
9
10
  /**
10
11
  * @private
@@ -17,7 +18,7 @@ export declare const CallAgentContext: React.Context<CallAgentContextType | unde
17
18
  */
18
19
  export interface CallAgentProviderProps {
19
20
  children: React.ReactNode;
20
- callAgent?: CallAgent;
21
+ callAgent?: CallAgent | /* @conditional-compile-remove(teams-identity-support) */ TeamsCallAgent;
21
22
  }
22
23
  /**
23
24
  * A {@link React.Context} that stores a {@link @azure/communication-calling#CallAgent}.
@@ -36,4 +37,13 @@ export declare const CallAgentProvider: (props: CallAgentProviderProps) => JSX.E
36
37
  * @public
37
38
  */
38
39
  export declare const useCallAgent: () => CallAgent | undefined;
40
+ /**
41
+ * Hook to obtain {@link @azure/communication-calling#TeamsCallAgent} from the provider.
42
+ *
43
+ * Useful when implementing a custom component that utilizes the providers
44
+ * exported from this library.
45
+ *
46
+ * @beta
47
+ */
48
+ export declare const useTeamsCallAgent: () => undefined | /* @conditional-compile-remove(teams-identity-support) */ TeamsCallAgent;
39
49
  //# sourceMappingURL=CallAgentProvider.d.ts.map
@@ -1,5 +1,6 @@
1
1
  // Copyright (c) Microsoft Corporation.
2
2
  // Licensed under the MIT license.
3
+ import { _isACSCallAgent } from "../../../calling-stateful-client/src";
3
4
  import React, { createContext, useContext } from 'react';
4
5
  /**
5
6
  * @private
@@ -28,5 +29,28 @@ export const CallAgentProvider = (props) => React.createElement(CallAgentProvide
28
29
  *
29
30
  * @public
30
31
  */
31
- export const useCallAgent = () => { var _a; return (_a = useContext(CallAgentContext)) === null || _a === void 0 ? void 0 : _a.callAgent; };
32
+ export const useCallAgent = () => {
33
+ var _a;
34
+ const callAgent = (_a = useContext(CallAgentContext)) === null || _a === void 0 ? void 0 : _a.callAgent;
35
+ if (callAgent && !_isACSCallAgent(callAgent)) {
36
+ throw new Error('TeamsCallAgent object was provided, try useTeamsCall() instead');
37
+ }
38
+ return callAgent;
39
+ };
40
+ /**
41
+ * Hook to obtain {@link @azure/communication-calling#TeamsCallAgent} from the provider.
42
+ *
43
+ * Useful when implementing a custom component that utilizes the providers
44
+ * exported from this library.
45
+ *
46
+ * @beta
47
+ */
48
+ export const useTeamsCallAgent = () => {
49
+ var _a;
50
+ const callAgent = (_a = useContext(CallAgentContext)) === null || _a === void 0 ? void 0 : _a.callAgent;
51
+ if (callAgent && _isACSCallAgent(callAgent)) {
52
+ throw new Error('Regular CallAgent object was provided, try useCall() instead');
53
+ }
54
+ return callAgent;
55
+ };
32
56
  //# sourceMappingURL=CallAgentProvider.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"CallAgentProvider.js","sourceRoot":"","sources":["../../../../../../calling-component-bindings/src/providers/CallAgentProvider.tsx"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAGlC,OAAO,KAAK,EAAE,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AASzD;;GAEG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,aAAa,CAAmC,SAAS,CAAC,CAAC;AAY3F,MAAM,qBAAqB,GAAG,CAAC,KAA6B,EAAe,EAAE;IAC3E,MAAM,EAAE,SAAS,EAAE,GAAG,KAAK,CAAC;IAE5B,MAAM,YAAY,GAAyB;QACzC,SAAS;KACV,CAAC;IAEF,OAAO,oBAAC,gBAAgB,CAAC,QAAQ,IAAC,KAAK,EAAE,YAAY,IAAG,KAAK,CAAC,QAAQ,CAA6B,CAAC;AACtG,CAAC,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,KAA6B,EAAe,EAAE,CAAC,oBAAC,qBAAqB,oBAAK,KAAK,EAAI,CAAC;AAEtH;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,GAA0B,EAAE,WAAC,OAAA,MAAA,UAAU,CAAC,gBAAgB,CAAC,0CAAE,SAAS,CAAA,EAAA,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport { CallAgent } from '@azure/communication-calling';\nimport React, { createContext, useContext } from 'react';\n\n/**\n * @private\n */\nexport type CallAgentContextType = {\n callAgent: CallAgent | undefined;\n};\n\n/**\n * @private\n */\nexport const CallAgentContext = createContext<CallAgentContextType | undefined>(undefined);\n\n/**\n * Arguments to initialize a {@link CallAgentProvider}.\n *\n * @public\n */\nexport interface CallAgentProviderProps {\n children: React.ReactNode;\n callAgent?: CallAgent;\n}\n\nconst CallAgentProviderBase = (props: CallAgentProviderProps): JSX.Element => {\n const { callAgent } = props;\n\n const initialState: CallAgentContextType = {\n callAgent\n };\n\n return <CallAgentContext.Provider value={initialState}>{props.children}</CallAgentContext.Provider>;\n};\n\n/**\n * A {@link React.Context} that stores a {@link @azure/communication-calling#CallAgent}.\n *\n * Calling components from this package must be wrapped with a {@link CallAgentProvider}.\n *\n * @public\n */\nexport const CallAgentProvider = (props: CallAgentProviderProps): JSX.Element => <CallAgentProviderBase {...props} />;\n\n/**\n * Hook to obtain {@link @azure/communication-calling#CallAgent} from the provider.\n *\n * Useful when implementing a custom component that utilizes the providers\n * exported from this library.\n *\n * @public\n */\nexport const useCallAgent = (): CallAgent | undefined => useContext(CallAgentContext)?.callAgent;\n"]}
1
+ {"version":3,"file":"CallAgentProvider.js","sourceRoot":"","sources":["../../../../../../calling-component-bindings/src/providers/CallAgentProvider.tsx"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAKlC,OAAO,EAAE,eAAe,EAAE,6CAA0C;AACpE,OAAO,KAAK,EAAE,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AASzD;;GAEG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,aAAa,CAAmC,SAAS,CAAC,CAAC;AAY3F,MAAM,qBAAqB,GAAG,CAAC,KAA6B,EAAe,EAAE;IAC3E,MAAM,EAAE,SAAS,EAAE,GAAG,KAAK,CAAC;IAE5B,MAAM,YAAY,GAAyB;QACzC,SAAS;KACV,CAAC;IAEF,OAAO,oBAAC,gBAAgB,CAAC,QAAQ,IAAC,KAAK,EAAE,YAAY,IAAG,KAAK,CAAC,QAAQ,CAA6B,CAAC;AACtG,CAAC,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,KAA6B,EAAe,EAAE,CAAC,oBAAC,qBAAqB,oBAAK,KAAK,EAAI,CAAC;AAEtH;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,GAA0B,EAAE;;IACtD,MAAM,SAAS,GAAG,MAAA,UAAU,CAAC,gBAAgB,CAAC,0CAAE,SAAS,CAAC;IAC1D,IAAI,SAAS,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,EAAE;QAC5C,MAAM,IAAI,KAAK,CAAC,gEAAgE,CAAC,CAAC;KACnF;IACD,OAAO,SAAS,CAAC;AACnB,CAAC,CAAC;AAEF;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,GAE4C,EAAE;;IAC7E,MAAM,SAAS,GAAG,MAAA,UAAU,CAAC,gBAAgB,CAAC,0CAAE,SAAS,CAAC;IAC1D,IAAI,SAAS,IAAI,eAAe,CAAC,SAAS,CAAC,EAAE;QAC3C,MAAM,IAAI,KAAK,CAAC,8DAA8D,CAAC,CAAC;KACjF;IACD,OAAO,SAAS,CAAC;AACnB,CAAC,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport { CallAgent } from '@azure/communication-calling';\n/* @conditional-compile-remove(teams-identity-support) */\nimport { TeamsCallAgent } from '@azure/communication-calling';\nimport { _isACSCallAgent } from '@internal/calling-stateful-client';\nimport React, { createContext, useContext } from 'react';\n\n/**\n * @private\n */\nexport type CallAgentContextType = {\n callAgent: CallAgent | /* @conditional-compile-remove(teams-identity-support) */ TeamsCallAgent | undefined;\n};\n\n/**\n * @private\n */\nexport const CallAgentContext = createContext<CallAgentContextType | undefined>(undefined);\n\n/**\n * Arguments to initialize a {@link CallAgentProvider}.\n *\n * @public\n */\nexport interface CallAgentProviderProps {\n children: React.ReactNode;\n callAgent?: CallAgent | /* @conditional-compile-remove(teams-identity-support) */ TeamsCallAgent;\n}\n\nconst CallAgentProviderBase = (props: CallAgentProviderProps): JSX.Element => {\n const { callAgent } = props;\n\n const initialState: CallAgentContextType = {\n callAgent\n };\n\n return <CallAgentContext.Provider value={initialState}>{props.children}</CallAgentContext.Provider>;\n};\n\n/**\n * A {@link React.Context} that stores a {@link @azure/communication-calling#CallAgent}.\n *\n * Calling components from this package must be wrapped with a {@link CallAgentProvider}.\n *\n * @public\n */\nexport const CallAgentProvider = (props: CallAgentProviderProps): JSX.Element => <CallAgentProviderBase {...props} />;\n\n/**\n * Hook to obtain {@link @azure/communication-calling#CallAgent} from the provider.\n *\n * Useful when implementing a custom component that utilizes the providers\n * exported from this library.\n *\n * @public\n */\nexport const useCallAgent = (): CallAgent | undefined => {\n const callAgent = useContext(CallAgentContext)?.callAgent;\n if (callAgent && !_isACSCallAgent(callAgent)) {\n throw new Error('TeamsCallAgent object was provided, try useTeamsCall() instead');\n }\n return callAgent;\n};\n\n/**\n * Hook to obtain {@link @azure/communication-calling#TeamsCallAgent} from the provider.\n *\n * Useful when implementing a custom component that utilizes the providers\n * exported from this library.\n *\n * @beta\n */\nexport const useTeamsCallAgent = ():\n | undefined\n | /* @conditional-compile-remove(teams-identity-support) */ TeamsCallAgent => {\n const callAgent = useContext(CallAgentContext)?.callAgent;\n if (callAgent && _isACSCallAgent(callAgent)) {\n throw new Error('Regular CallAgent object was provided, try useCall() instead');\n }\n return callAgent;\n};\n\"../../../calling-stateful-client/src\""]}
@@ -1,10 +1,11 @@
1
1
  import React from 'react';
2
2
  import { Call } from '@azure/communication-calling';
3
+ import { TeamsCall } from '@azure/communication-calling';
3
4
  /**
4
5
  * @private
5
6
  */
6
7
  export declare type CallContextType = {
7
- call: Call | undefined;
8
+ call: Call | /* @conditional-compile-remove(teams-identity-support) */ TeamsCall | undefined;
8
9
  };
9
10
  /**
10
11
  * Arguments to initialize a {@link CallProvider}.
@@ -13,7 +14,7 @@ export declare type CallContextType = {
13
14
  */
14
15
  export interface CallProviderProps {
15
16
  children: React.ReactNode;
16
- call?: Call;
17
+ call?: Call | /* @conditional-compile-remove(teams-identity-support) */ TeamsCall;
17
18
  }
18
19
  /**
19
20
  * @private
@@ -33,7 +34,20 @@ export declare const CallProvider: (props: CallProviderProps) => JSX.Element;
33
34
  * Useful when implementing a custom component that utilizes the providers
34
35
  * exported from this library.
35
36
  *
37
+ * you must have previously used the CallProvider with a Call object to use this hook
38
+ *
36
39
  * @public
37
40
  */
38
41
  export declare const useCall: () => Call | undefined;
42
+ /**
43
+ * Hook to obtain {@link @azure/communication-calling#TeamsCall} from the provider.
44
+ *
45
+ * Useful when implementing a custom component that utilizes the providers
46
+ * exported from this library.
47
+ *
48
+ * you must have previously used the CallProvider with a TeamsCall object to use this hook
49
+ *
50
+ * @beta
51
+ */
52
+ export declare const useTeamsCall: () => undefined | /* @conditional-compile-remove(teams-identity-support) */ TeamsCall;
39
53
  //# sourceMappingURL=CallProvider.d.ts.map
@@ -1,6 +1,7 @@
1
1
  // Copyright (c) Microsoft Corporation.
2
2
  // Licensed under the MIT license.
3
3
  import React, { useContext, createContext } from 'react';
4
+ import { _isACSCall, _isTeamsCall } from "../../../calling-stateful-client/src";
4
5
  /**
5
6
  * @private
6
7
  */
@@ -29,10 +30,35 @@ export const CallProvider = (props) => React.createElement(CallProviderBase, Obj
29
30
  * Useful when implementing a custom component that utilizes the providers
30
31
  * exported from this library.
31
32
  *
33
+ * you must have previously used the CallProvider with a Call object to use this hook
34
+ *
32
35
  * @public
33
36
  */
34
37
  export const useCall = () => {
35
38
  var _a;
36
- return (_a = useContext(CallContext)) === null || _a === void 0 ? void 0 : _a.call;
39
+ const call = (_a = useContext(CallContext)) === null || _a === void 0 ? void 0 : _a.call;
40
+ if (call && !_isACSCall(call)) {
41
+ throw new Error('Incorrect call type: Must provide a Regular Call object.');
42
+ }
43
+ return call;
44
+ };
45
+ /* @conditional-compile-remove(teams-identity-support) */
46
+ /**
47
+ * Hook to obtain {@link @azure/communication-calling#TeamsCall} from the provider.
48
+ *
49
+ * Useful when implementing a custom component that utilizes the providers
50
+ * exported from this library.
51
+ *
52
+ * you must have previously used the CallProvider with a TeamsCall object to use this hook
53
+ *
54
+ * @beta
55
+ */
56
+ export const useTeamsCall = () => {
57
+ var _a;
58
+ const call = (_a = useContext(CallContext)) === null || _a === void 0 ? void 0 : _a.call;
59
+ if (call && !_isTeamsCall(call)) {
60
+ throw new Error('Incorrect call type: Must provide a TeamsCall object.');
61
+ }
62
+ return call;
37
63
  };
38
64
  //# sourceMappingURL=CallProvider.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"CallProvider.js","sourceRoot":"","sources":["../../../../../../calling-component-bindings/src/providers/CallProvider.tsx"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAElC,OAAO,KAAK,EAAE,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAoBzD;;GAEG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,aAAa,CAA8B,SAAS,CAAC,CAAC;AAEjF;;GAEG;AACH,MAAM,gBAAgB,GAAG,CAAC,KAAwB,EAAe,EAAE;IACjE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,KAAK,CAAC;IAEjC,MAAM,YAAY,GAAoB;QACpC,IAAI;KACL,CAAC;IAEF,OAAO,oBAAC,WAAW,CAAC,QAAQ,IAAC,KAAK,EAAE,YAAY,IAAG,QAAQ,CAAwB,CAAC;AACtF,CAAC,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,KAAwB,EAAe,EAAE,CAAC,oBAAC,gBAAgB,oBAAK,KAAK,EAAI,CAAC;AAEvG;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,OAAO,GAAG,GAAqB,EAAE;;IAC5C,OAAO,MAAA,UAAU,CAAC,WAAW,CAAC,0CAAE,IAAI,CAAC;AACvC,CAAC,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport React, { useContext, createContext } from 'react';\nimport { Call } from '@azure/communication-calling';\n\n/**\n * @private\n */\nexport type CallContextType = {\n call: Call | undefined;\n};\n\n/**\n * Arguments to initialize a {@link CallProvider}.\n *\n * @public\n */\nexport interface CallProviderProps {\n children: React.ReactNode;\n call?: Call;\n}\n\n/**\n * @private\n */\nexport const CallContext = createContext<CallContextType | undefined>(undefined);\n\n/**\n * @private\n */\nconst CallProviderBase = (props: CallProviderProps): JSX.Element => {\n const { children, call } = props;\n\n const initialState: CallContextType = {\n call\n };\n\n return <CallContext.Provider value={initialState}>{children}</CallContext.Provider>;\n};\n\n/**\n * A {@link React.Context} that stores a {@link @azure/communication-calling#Call}.\n *\n * Calling components from this package must be wrapped with a {@link CallProvider}.\n *\n * @public\n */\nexport const CallProvider = (props: CallProviderProps): JSX.Element => <CallProviderBase {...props} />;\n\n/**\n * Hook to obtain {@link @azure/communication-calling#Call} from the provider.\n *\n * Useful when implementing a custom component that utilizes the providers\n * exported from this library.\n *\n * @public\n */\nexport const useCall = (): Call | undefined => {\n return useContext(CallContext)?.call;\n};\n"]}
1
+ {"version":3,"file":"CallProvider.js","sourceRoot":"","sources":["../../../../../../calling-component-bindings/src/providers/CallProvider.tsx"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAElC,OAAO,KAAK,EAAE,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAIzD,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,6CAA0C;AAmB7E;;GAEG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,aAAa,CAA8B,SAAS,CAAC,CAAC;AAEjF;;GAEG;AACH,MAAM,gBAAgB,GAAG,CAAC,KAAwB,EAAe,EAAE;IACjE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,KAAK,CAAC;IAEjC,MAAM,YAAY,GAAoB;QACpC,IAAI;KACL,CAAC;IAEF,OAAO,oBAAC,WAAW,CAAC,QAAQ,IAAC,KAAK,EAAE,YAAY,IAAG,QAAQ,CAAwB,CAAC;AACtF,CAAC,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,KAAwB,EAAe,EAAE,CAAC,oBAAC,gBAAgB,oBAAK,KAAK,EAAI,CAAC;AAEvG;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,OAAO,GAAG,GAAqB,EAAE;;IAC5C,MAAM,IAAI,GAAG,MAAA,UAAU,CAAC,WAAW,CAAC,0CAAE,IAAI,CAAC;IAC3C,IAAI,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE;QAC7B,MAAM,IAAI,KAAK,CAAC,0DAA0D,CAAC,CAAC;KAC7E;IACD,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AAEF,yDAAyD;AACzD;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,GAAoF,EAAE;;IAChH,MAAM,IAAI,GAAG,MAAA,UAAU,CAAC,WAAW,CAAC,0CAAE,IAAI,CAAC;IAC3C,IAAI,IAAI,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE;QAC/B,MAAM,IAAI,KAAK,CAAC,uDAAuD,CAAC,CAAC;KAC1E;IACD,OAAO,IAAI,CAAC;AACd,CAAC,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport React, { useContext, createContext } from 'react';\nimport { Call } from '@azure/communication-calling';\n/* @conditional-compile-remove(teams-identity-support) */\nimport { TeamsCall } from '@azure/communication-calling';\nimport { _isACSCall, _isTeamsCall } from '@internal/calling-stateful-client';\n\n/**\n * @private\n */\nexport type CallContextType = {\n call: Call | /* @conditional-compile-remove(teams-identity-support) */ TeamsCall | undefined;\n};\n\n/**\n * Arguments to initialize a {@link CallProvider}.\n *\n * @public\n */\nexport interface CallProviderProps {\n children: React.ReactNode;\n call?: Call | /* @conditional-compile-remove(teams-identity-support) */ TeamsCall;\n}\n\n/**\n * @private\n */\nexport const CallContext = createContext<CallContextType | undefined>(undefined);\n\n/**\n * @private\n */\nconst CallProviderBase = (props: CallProviderProps): JSX.Element => {\n const { children, call } = props;\n\n const initialState: CallContextType = {\n call\n };\n\n return <CallContext.Provider value={initialState}>{children}</CallContext.Provider>;\n};\n\n/**\n * A {@link React.Context} that stores a {@link @azure/communication-calling#Call}.\n *\n * Calling components from this package must be wrapped with a {@link CallProvider}.\n *\n * @public\n */\nexport const CallProvider = (props: CallProviderProps): JSX.Element => <CallProviderBase {...props} />;\n\n/**\n * Hook to obtain {@link @azure/communication-calling#Call} from the provider.\n *\n * Useful when implementing a custom component that utilizes the providers\n * exported from this library.\n *\n * you must have previously used the CallProvider with a Call object to use this hook\n *\n * @public\n */\nexport const useCall = (): Call | undefined => {\n const call = useContext(CallContext)?.call;\n if (call && !_isACSCall(call)) {\n throw new Error('Incorrect call type: Must provide a Regular Call object.');\n }\n return call;\n};\n\n/* @conditional-compile-remove(teams-identity-support) */\n/**\n * Hook to obtain {@link @azure/communication-calling#TeamsCall} from the provider.\n *\n * Useful when implementing a custom component that utilizes the providers\n * exported from this library.\n *\n * you must have previously used the CallProvider with a TeamsCall object to use this hook\n *\n * @beta\n */\nexport const useTeamsCall = (): undefined | /* @conditional-compile-remove(teams-identity-support) */ TeamsCall => {\n const call = useContext(CallContext)?.call;\n if (call && !_isTeamsCall(call)) {\n throw new Error('Incorrect call type: Must provide a TeamsCall object.');\n }\n return call;\n};\n\"../../../calling-stateful-client/src\""]}
@@ -1,5 +1,6 @@
1
1
  import { DeviceManagerState, RemoteParticipantState, StatefulCallClient } from "../../../calling-stateful-client/src";
2
2
  import { CallState as CallStatus } from '@azure/communication-calling';
3
+ import { CommunicationIdentifier, CommunicationUserIdentifier, MicrosoftTeamsUserIdentifier, PhoneNumberIdentifier, UnknownIdentifier } from '@azure/communication-common';
3
4
  /**
4
5
  * Check if the call state represents being in the call
5
6
  *
@@ -32,4 +33,14 @@ export declare const disposeAllLocalPreviewViews: (callClient: StatefulCallClien
32
33
  * @internal
33
34
  */
34
35
  export declare const _updateUserDisplayNames: (participants: RemoteParticipantState[]) => RemoteParticipantState[];
36
+ /**
37
+ * @private
38
+ * A type guard to ensure all participants are acceptable type for Teams call
39
+ */
40
+ export declare const isTeamsCallParticipants: (participants: CommunicationIdentifier[]) => participants is (PhoneNumberIdentifier | MicrosoftTeamsUserIdentifier | UnknownIdentifier)[];
41
+ /**
42
+ * @private
43
+ * A type guard to ensure all participants are acceptable type for ACS call
44
+ */
45
+ export declare const isACSCallParticipants: (participants: CommunicationIdentifier[]) => participants is (CommunicationUserIdentifier | PhoneNumberIdentifier | UnknownIdentifier)[];
35
46
  //# sourceMappingURL=callUtils.d.ts.map
@@ -9,7 +9,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
9
9
  step((generator = generator.apply(thisArg, _arguments || [])).next());
10
10
  });
11
11
  };
12
- import { isPhoneNumberIdentifier } from '@azure/communication-common';
12
+ import { isCommunicationUserIdentifier, isMicrosoftTeamsUserIdentifier, isPhoneNumberIdentifier } from '@azure/communication-common';
13
13
  import { memoizeFnAll, toFlatCommunicationIdentifier } from "../../../acs-ui-common/src";
14
14
  /**
15
15
  * Check if the call state represents being in the call
@@ -72,4 +72,18 @@ const memoizedUpdateDisplayName = memoizeFnAll((participantId, participant) => {
72
72
  return participant;
73
73
  }
74
74
  });
75
+ /**
76
+ * @private
77
+ * A type guard to ensure all participants are acceptable type for Teams call
78
+ */
79
+ export const isTeamsCallParticipants = (participants) => {
80
+ return participants.every((p) => !isCommunicationUserIdentifier(p));
81
+ };
82
+ /**
83
+ * @private
84
+ * A type guard to ensure all participants are acceptable type for ACS call
85
+ */
86
+ export const isACSCallParticipants = (participants) => {
87
+ return participants.every((p) => !isMicrosoftTeamsUserIdentifier(p));
88
+ };
75
89
  //# sourceMappingURL=callUtils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"callUtils.js","sourceRoot":"","sources":["../../../../../../calling-component-bindings/src/utils/callUtils.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;;;;;;;;;;AAIlC,OAAO,EAAE,uBAAuB,EAAE,MAAM,6BAA6B,CAAC;AACtE,OAAO,EAAE,YAAY,EAAE,6BAA6B,EAAE,mCAAgC;AAEtF;;;;GAIG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,UAAuB,EAAW,EAAE,CAC5D,CAAC,CAAC,UAAU,IAAI,CAAC,CAAC,MAAM,EAAE,cAAc,EAAE,YAAY,EAAE,SAAS,EAAE,YAAY,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;AAExG;;;;GAIG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,UAAkC,EAAW,EAAE,CACpF,CAAC,CAAC,UAAU,IAAI,CAAC,YAAY,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;AAE5E;;;;;GAKG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,aAAiC,EAAW,EAAE;IACzE,iHAAiH;IACjH,gFAAgF;IAChF,OAAO,aAAa,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC,IAAI,aAAa,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC;AACzG,CAAC,CAAC;AAEF;;;;;GAKG;AACH,MAAM,CAAC,MAAM,2BAA2B,GAAG,CAAO,UAA8B,EAAiB,EAAE;IACjG,MAAM,eAAe,GAAG,UAAU,CAAC,QAAQ,EAAE,CAAC,aAAa,CAAC,eAAe,CAAC;IAC5E,KAAK,MAAM,IAAI,IAAI,eAAe,EAAE;QAClC,MAAM,UAAU,CAAC,WAAW,CAAC,SAAS,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;KAC1D;AACH,CAAC,CAAA,CAAC;AAEF;;;;GAIG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,YAAsC,EAA4B,EAAE;IAC1G,IAAI,YAAY,EAAE;QAChB,OAAO,yBAAyB,CAAC,CAAC,UAAU,EAAE,EAAE;YAC9C,OAAO,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;gBAC3C,MAAM,GAAG,GAAG,6BAA6B,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;gBACxD,OAAO,UAAU,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;YAC5B,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;KACJ;SAAM;QACL,OAAO,EAAE,CAAC;KACX;AACH,CAAC,CAAC;AAEF,MAAM,yBAAyB,GAAG,YAAY,CAAC,CAAC,aAAqB,EAAE,WAAmC,EAAE,EAAE;IAC5G,IAAI,uBAAuB,CAAC,WAAW,CAAC,UAAU,CAAC,EAAE;QACnD,uCACK,WAAW,KACd,WAAW,EAAE,WAAW,CAAC,UAAU,CAAC,WAAW,IAC/C;KACH;SAAM;QACL,OAAO,WAAW,CAAC;KACpB;AACH,CAAC,CAAC,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport { DeviceManagerState, RemoteParticipantState, StatefulCallClient } from '@internal/calling-stateful-client';\nimport { CallState as CallStatus } from '@azure/communication-calling';\nimport { isPhoneNumberIdentifier } from '@azure/communication-common';\nimport { memoizeFnAll, toFlatCommunicationIdentifier } from '@internal/acs-ui-common';\n\n/**\n * Check if the call state represents being in the call\n *\n * @internal\n */\nexport const _isInCall = (callStatus?: CallStatus): boolean =>\n !!callStatus && !['None', 'Disconnected', 'Connecting', 'Ringing', 'EarlyMedia'].includes(callStatus);\n\n/**\n * Check if the call state represents being in the lobby or waiting to be admitted.\n *\n * @internal\n */\nexport const _isInLobbyOrConnecting = (callStatus: CallStatus | undefined): boolean =>\n !!callStatus && ['Connecting', 'Ringing', 'InLobby'].includes(callStatus);\n\n/**\n * Check if the device manager local video is on when not part of a call\n * i.e. do unparented views exist.\n *\n * @internal\n */\nexport const _isPreviewOn = (deviceManager: DeviceManagerState): boolean => {\n // TODO: we should take in a LocalVideoStream that developer wants to use as their 'Preview' view. We should also\n // handle cases where 'Preview' view is in progress and not necessary completed.\n return deviceManager.unparentedViews.length > 0 && deviceManager.unparentedViews[0].view !== undefined;\n};\n\n/**\n * Dispose of all preview views\n * We assume all unparented views are local preview views.\n *\n * @private\n */\nexport const disposeAllLocalPreviewViews = async (callClient: StatefulCallClient): Promise<void> => {\n const unparentedViews = callClient.getState().deviceManager.unparentedViews;\n for (const view of unparentedViews) {\n await callClient.disposeView(undefined, undefined, view);\n }\n};\n\n/**\n * Update the users displayNames based on the type of user they are\n *\n * @internal\n */\nexport const _updateUserDisplayNames = (participants: RemoteParticipantState[]): RemoteParticipantState[] => {\n if (participants) {\n return memoizedUpdateDisplayName((memoizedFn) => {\n return Object.values(participants).map((p) => {\n const pid = toFlatCommunicationIdentifier(p.identifier);\n return memoizedFn(pid, p);\n });\n });\n } else {\n return [];\n }\n};\n\nconst memoizedUpdateDisplayName = memoizeFnAll((participantId: string, participant: RemoteParticipantState) => {\n if (isPhoneNumberIdentifier(participant.identifier)) {\n return {\n ...participant,\n displayName: participant.identifier.phoneNumber\n };\n } else {\n return participant;\n }\n});\n\"../../../calling-stateful-client/src\"\"../../../acs-ui-common/src\""]}
1
+ {"version":3,"file":"callUtils.js","sourceRoot":"","sources":["../../../../../../calling-component-bindings/src/utils/callUtils.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;;;;;;;;;;AAIlC,OAAO,EAGL,6BAA6B,EAC7B,8BAA8B,EAC9B,uBAAuB,EAIxB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,YAAY,EAAE,6BAA6B,EAAE,mCAAgC;AAEtF;;;;GAIG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,UAAuB,EAAW,EAAE,CAC5D,CAAC,CAAC,UAAU,IAAI,CAAC,CAAC,MAAM,EAAE,cAAc,EAAE,YAAY,EAAE,SAAS,EAAE,YAAY,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;AAExG;;;;GAIG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,UAAkC,EAAW,EAAE,CACpF,CAAC,CAAC,UAAU,IAAI,CAAC,YAAY,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;AAE5E;;;;;GAKG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,aAAiC,EAAW,EAAE;IACzE,iHAAiH;IACjH,gFAAgF;IAChF,OAAO,aAAa,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC,IAAI,aAAa,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC;AACzG,CAAC,CAAC;AAEF;;;;;GAKG;AACH,MAAM,CAAC,MAAM,2BAA2B,GAAG,CAAO,UAA8B,EAAiB,EAAE;IACjG,MAAM,eAAe,GAAG,UAAU,CAAC,QAAQ,EAAE,CAAC,aAAa,CAAC,eAAe,CAAC;IAC5E,KAAK,MAAM,IAAI,IAAI,eAAe,EAAE;QAClC,MAAM,UAAU,CAAC,WAAW,CAAC,SAAS,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;KAC1D;AACH,CAAC,CAAA,CAAC;AAEF;;;;GAIG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,YAAsC,EAA4B,EAAE;IAC1G,IAAI,YAAY,EAAE;QAChB,OAAO,yBAAyB,CAAC,CAAC,UAAU,EAAE,EAAE;YAC9C,OAAO,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;gBAC3C,MAAM,GAAG,GAAG,6BAA6B,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;gBACxD,OAAO,UAAU,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;YAC5B,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;KACJ;SAAM;QACL,OAAO,EAAE,CAAC;KACX;AACH,CAAC,CAAC;AAEF,MAAM,yBAAyB,GAAG,YAAY,CAAC,CAAC,aAAqB,EAAE,WAAmC,EAAE,EAAE;IAC5G,IAAI,uBAAuB,CAAC,WAAW,CAAC,UAAU,CAAC,EAAE;QACnD,uCACK,WAAW,KACd,WAAW,EAAE,WAAW,CAAC,UAAU,CAAC,WAAW,IAC/C;KACH;SAAM;QACL,OAAO,WAAW,CAAC;KACpB;AACH,CAAC,CAAC,CAAC;AAEH;;;GAGG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,CACrC,YAAuC,EACuD,EAAE;IAChG,OAAO,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,6BAA6B,CAAC,CAAC,CAAC,CAAC,CAAC;AACtE,CAAC,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,CACnC,YAAuC,EACsD,EAAE;IAC/F,OAAO,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,8BAA8B,CAAC,CAAC,CAAC,CAAC,CAAC;AACvE,CAAC,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport { DeviceManagerState, RemoteParticipantState, StatefulCallClient } from '@internal/calling-stateful-client';\nimport { CallState as CallStatus } from '@azure/communication-calling';\nimport {\n CommunicationIdentifier,\n CommunicationUserIdentifier,\n isCommunicationUserIdentifier,\n isMicrosoftTeamsUserIdentifier,\n isPhoneNumberIdentifier,\n MicrosoftTeamsUserIdentifier,\n PhoneNumberIdentifier,\n UnknownIdentifier\n} from '@azure/communication-common';\nimport { memoizeFnAll, toFlatCommunicationIdentifier } from '@internal/acs-ui-common';\n\n/**\n * Check if the call state represents being in the call\n *\n * @internal\n */\nexport const _isInCall = (callStatus?: CallStatus): boolean =>\n !!callStatus && !['None', 'Disconnected', 'Connecting', 'Ringing', 'EarlyMedia'].includes(callStatus);\n\n/**\n * Check if the call state represents being in the lobby or waiting to be admitted.\n *\n * @internal\n */\nexport const _isInLobbyOrConnecting = (callStatus: CallStatus | undefined): boolean =>\n !!callStatus && ['Connecting', 'Ringing', 'InLobby'].includes(callStatus);\n\n/**\n * Check if the device manager local video is on when not part of a call\n * i.e. do unparented views exist.\n *\n * @internal\n */\nexport const _isPreviewOn = (deviceManager: DeviceManagerState): boolean => {\n // TODO: we should take in a LocalVideoStream that developer wants to use as their 'Preview' view. We should also\n // handle cases where 'Preview' view is in progress and not necessary completed.\n return deviceManager.unparentedViews.length > 0 && deviceManager.unparentedViews[0].view !== undefined;\n};\n\n/**\n * Dispose of all preview views\n * We assume all unparented views are local preview views.\n *\n * @private\n */\nexport const disposeAllLocalPreviewViews = async (callClient: StatefulCallClient): Promise<void> => {\n const unparentedViews = callClient.getState().deviceManager.unparentedViews;\n for (const view of unparentedViews) {\n await callClient.disposeView(undefined, undefined, view);\n }\n};\n\n/**\n * Update the users displayNames based on the type of user they are\n *\n * @internal\n */\nexport const _updateUserDisplayNames = (participants: RemoteParticipantState[]): RemoteParticipantState[] => {\n if (participants) {\n return memoizedUpdateDisplayName((memoizedFn) => {\n return Object.values(participants).map((p) => {\n const pid = toFlatCommunicationIdentifier(p.identifier);\n return memoizedFn(pid, p);\n });\n });\n } else {\n return [];\n }\n};\n\nconst memoizedUpdateDisplayName = memoizeFnAll((participantId: string, participant: RemoteParticipantState) => {\n if (isPhoneNumberIdentifier(participant.identifier)) {\n return {\n ...participant,\n displayName: participant.identifier.phoneNumber\n };\n } else {\n return participant;\n }\n});\n\n/**\n * @private\n * A type guard to ensure all participants are acceptable type for Teams call\n */\nexport const isTeamsCallParticipants = (\n participants: CommunicationIdentifier[]\n): participants is (PhoneNumberIdentifier | MicrosoftTeamsUserIdentifier | UnknownIdentifier)[] => {\n return participants.every((p) => !isCommunicationUserIdentifier(p));\n};\n\n/**\n * @private\n * A type guard to ensure all participants are acceptable type for ACS call\n */\nexport const isACSCallParticipants = (\n participants: CommunicationIdentifier[]\n): participants is (PhoneNumberIdentifier | CommunicationUserIdentifier | UnknownIdentifier)[] => {\n return participants.every((p) => !isMicrosoftTeamsUserIdentifier(p));\n};\n\"../../../calling-stateful-client/src\"\"../../../acs-ui-common/src\""]}