@microsoft/live-share-react 1.0.0-preview.9 → 1.0.2-preview.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 (220) hide show
  1. package/README.md +99 -35
  2. package/bin/index.d.ts +6 -6
  3. package/bin/index.js +6 -6
  4. package/bin/interfaces/LiveInterfaceExtensions.d.ts +25 -8
  5. package/bin/interfaces/LiveInterfaceExtensions.d.ts.map +1 -1
  6. package/bin/interfaces/LiveInterfaceExtensions.js +5 -5
  7. package/bin/interfaces/index.d.ts +1 -1
  8. package/bin/interfaces/index.js +1 -1
  9. package/bin/internal/errors.d.ts +26 -0
  10. package/bin/internal/errors.d.ts.map +1 -0
  11. package/bin/internal/errors.js +39 -0
  12. package/bin/internal/errors.js.map +1 -0
  13. package/bin/internal/index.d.ts +4 -0
  14. package/bin/internal/index.d.ts.map +1 -0
  15. package/bin/internal/index.js +4 -0
  16. package/bin/internal/index.js.map +1 -0
  17. package/bin/internal/type-guards.d.ts +6 -0
  18. package/bin/internal/type-guards.d.ts.map +1 -0
  19. package/bin/internal/type-guards.js +8 -0
  20. package/bin/internal/type-guards.js.map +1 -0
  21. package/bin/{internal-hooks → internal}/useSharedStateRegistry.d.ts +30 -30
  22. package/bin/internal/useSharedStateRegistry.d.ts.map +1 -0
  23. package/bin/{internal-hooks → internal}/useSharedStateRegistry.js +101 -99
  24. package/bin/internal/useSharedStateRegistry.js.map +1 -0
  25. package/bin/live-hooks/index.d.ts +6 -6
  26. package/bin/live-hooks/index.js +6 -6
  27. package/bin/live-hooks/useLiveCanvas.d.ts +27 -27
  28. package/bin/live-hooks/useLiveCanvas.d.ts.map +1 -1
  29. package/bin/live-hooks/useLiveCanvas.js +158 -166
  30. package/bin/live-hooks/useLiveCanvas.js.map +1 -1
  31. package/bin/live-hooks/useLiveEvent.d.ts +21 -21
  32. package/bin/live-hooks/useLiveEvent.d.ts.map +1 -1
  33. package/bin/live-hooks/useLiveEvent.js +100 -85
  34. package/bin/live-hooks/useLiveEvent.js.map +1 -1
  35. package/bin/live-hooks/useLivePresence.d.ts +25 -25
  36. package/bin/live-hooks/useLivePresence.d.ts.map +1 -1
  37. package/bin/live-hooks/useLivePresence.js +106 -92
  38. package/bin/live-hooks/useLivePresence.js.map +1 -1
  39. package/bin/live-hooks/useLiveState.d.ts +19 -19
  40. package/bin/live-hooks/useLiveState.d.ts.map +1 -1
  41. package/bin/live-hooks/useLiveState.js +79 -70
  42. package/bin/live-hooks/useLiveState.js.map +1 -1
  43. package/bin/live-hooks/useLiveTimer.d.ts +7 -7
  44. package/bin/live-hooks/useLiveTimer.d.ts.map +1 -1
  45. package/bin/live-hooks/useLiveTimer.js +150 -131
  46. package/bin/live-hooks/useLiveTimer.js.map +1 -1
  47. package/bin/live-hooks/useMediaSynchronizer.d.ts +22 -22
  48. package/bin/live-hooks/useMediaSynchronizer.d.ts.map +1 -1
  49. package/bin/live-hooks/useMediaSynchronizer.js +206 -161
  50. package/bin/live-hooks/useMediaSynchronizer.js.map +1 -1
  51. package/bin/providers/AzureProvider.d.ts +33 -33
  52. package/bin/providers/AzureProvider.d.ts.map +1 -1
  53. package/bin/providers/AzureProvider.js +101 -101
  54. package/bin/providers/AzureProvider.js.map +1 -1
  55. package/bin/providers/LiveShareProvider.d.ts +62 -41
  56. package/bin/providers/LiveShareProvider.d.ts.map +1 -1
  57. package/bin/providers/LiveShareProvider.js +68 -65
  58. package/bin/providers/LiveShareProvider.js.map +1 -1
  59. package/bin/providers/index.d.ts +2 -2
  60. package/bin/providers/index.js +2 -2
  61. package/bin/shared-hooks/index.d.ts +3 -4
  62. package/bin/shared-hooks/index.d.ts.map +1 -1
  63. package/bin/shared-hooks/index.js +3 -4
  64. package/bin/shared-hooks/index.js.map +1 -1
  65. package/bin/shared-hooks/useDynamicDDS.d.ts +18 -18
  66. package/bin/shared-hooks/useDynamicDDS.d.ts.map +1 -1
  67. package/bin/shared-hooks/useDynamicDDS.js +67 -67
  68. package/bin/shared-hooks/useDynamicDDS.js.map +1 -1
  69. package/bin/shared-hooks/useSharedMap.d.ts +21 -21
  70. package/bin/shared-hooks/useSharedMap.d.ts.map +1 -1
  71. package/bin/shared-hooks/useSharedMap.js +112 -105
  72. package/bin/shared-hooks/useSharedMap.js.map +1 -1
  73. package/bin/shared-hooks/useSharedState.d.ts +20 -20
  74. package/bin/shared-hooks/useSharedState.d.ts.map +1 -1
  75. package/bin/shared-hooks/useSharedState.js +72 -62
  76. package/bin/shared-hooks/useSharedState.js.map +1 -1
  77. package/bin/types/ActionTypes.d.ts +111 -29
  78. package/bin/types/ActionTypes.d.ts.map +1 -1
  79. package/bin/types/ActionTypes.js +5 -5
  80. package/bin/types/PropTypes.d.ts +7 -7
  81. package/bin/types/PropTypes.d.ts.map +1 -1
  82. package/bin/types/PropTypes.js +5 -5
  83. package/bin/types/ResultTypes.d.ts +174 -162
  84. package/bin/types/ResultTypes.d.ts.map +1 -1
  85. package/bin/types/ResultTypes.js +5 -5
  86. package/bin/types/index.d.ts +3 -3
  87. package/bin/types/index.js +3 -3
  88. package/bin/utils/index.d.ts +1 -1
  89. package/bin/utils/index.js +1 -1
  90. package/bin/utils/type-check.d.ts +14 -14
  91. package/bin/utils/type-check.js +53 -53
  92. package/package.json +18 -14
  93. package/src/interfaces/LiveInterfaceExtensions.ts +19 -2
  94. package/src/internal/errors.ts +48 -0
  95. package/src/internal/index.ts +3 -0
  96. package/src/internal/type-guards.ts +9 -0
  97. package/src/{internal-hooks → internal}/useSharedStateRegistry.ts +6 -5
  98. package/src/live-hooks/useLiveCanvas.ts +12 -20
  99. package/src/live-hooks/useLiveEvent.ts +41 -22
  100. package/src/live-hooks/useLivePresence.ts +52 -33
  101. package/src/live-hooks/useLiveState.ts +48 -53
  102. package/src/live-hooks/useLiveTimer.ts +50 -41
  103. package/src/live-hooks/useMediaSynchronizer.ts +108 -41
  104. package/src/providers/AzureProvider.tsx +3 -8
  105. package/src/providers/LiveShareProvider.tsx +46 -16
  106. package/src/shared-hooks/index.ts +0 -1
  107. package/src/shared-hooks/useDynamicDDS.ts +15 -8
  108. package/src/shared-hooks/useSharedMap.ts +48 -22
  109. package/src/shared-hooks/useSharedState.ts +15 -5
  110. package/src/types/ActionTypes.ts +100 -15
  111. package/src/types/ResultTypes.ts +23 -9
  112. package/bin/internal-hooks/index.d.ts +0 -2
  113. package/bin/internal-hooks/index.d.ts.map +0 -1
  114. package/bin/internal-hooks/index.js +0 -2
  115. package/bin/internal-hooks/index.js.map +0 -1
  116. package/bin/internal-hooks/useDynamicDDSRegistry.d.ts +0 -14
  117. package/bin/internal-hooks/useDynamicDDSRegistry.d.ts.map +0 -1
  118. package/bin/internal-hooks/useDynamicDDSRegistry.js +0 -142
  119. package/bin/internal-hooks/useDynamicDDSRegistry.js.map +0 -1
  120. package/bin/internal-hooks/useSharedStateRegistry.d.ts.map +0 -1
  121. package/bin/internal-hooks/useSharedStateRegistry.js.map +0 -1
  122. package/bin/internal-hooks/useStateRef.d.ts +0 -7
  123. package/bin/internal-hooks/useStateRef.d.ts.map +0 -1
  124. package/bin/internal-hooks/useStateRef.js +0 -15
  125. package/bin/internal-hooks/useStateRef.js.map +0 -1
  126. package/bin/live-hooks/useLiveAICompletion.d.ts +0 -29
  127. package/bin/live-hooks/useLiveAICompletion.d.ts.map +0 -1
  128. package/bin/live-hooks/useLiveAICompletion.js +0 -186
  129. package/bin/live-hooks/useLiveAICompletion.js.map +0 -1
  130. package/bin/live-hooks/useLiveCoPilot.d.ts +0 -28
  131. package/bin/live-hooks/useLiveCoPilot.d.ts.map +0 -1
  132. package/bin/live-hooks/useLiveCoPilot.js +0 -178
  133. package/bin/live-hooks/useLiveCoPilot.js.map +0 -1
  134. package/bin/live-share-turbo/AzureTurboClient.d.ts +0 -39
  135. package/bin/live-share-turbo/AzureTurboClient.d.ts.map +0 -1
  136. package/bin/live-share-turbo/AzureTurboClient.js +0 -56
  137. package/bin/live-share-turbo/AzureTurboClient.js.map +0 -1
  138. package/bin/live-share-turbo/LiveShareTurboClient.d.ts +0 -53
  139. package/bin/live-share-turbo/LiveShareTurboClient.d.ts.map +0 -1
  140. package/bin/live-share-turbo/LiveShareTurboClient.js +0 -69
  141. package/bin/live-share-turbo/LiveShareTurboClient.js.map +0 -1
  142. package/bin/live-share-turbo/dds-objects/TurboDataObject.d.ts +0 -31
  143. package/bin/live-share-turbo/dds-objects/TurboDataObject.d.ts.map +0 -1
  144. package/bin/live-share-turbo/dds-objects/TurboDataObject.js +0 -75
  145. package/bin/live-share-turbo/dds-objects/TurboDataObject.js.map +0 -1
  146. package/bin/live-share-turbo/dds-objects/TurboLiveCanvas.d.ts +0 -48
  147. package/bin/live-share-turbo/dds-objects/TurboLiveCanvas.d.ts.map +0 -1
  148. package/bin/live-share-turbo/dds-objects/TurboLiveCanvas.js +0 -104
  149. package/bin/live-share-turbo/dds-objects/TurboLiveCanvas.js.map +0 -1
  150. package/bin/live-share-turbo/dds-objects/TurboLiveEvent.d.ts +0 -28
  151. package/bin/live-share-turbo/dds-objects/TurboLiveEvent.d.ts.map +0 -1
  152. package/bin/live-share-turbo/dds-objects/TurboLiveEvent.js +0 -68
  153. package/bin/live-share-turbo/dds-objects/TurboLiveEvent.js.map +0 -1
  154. package/bin/live-share-turbo/dds-objects/TurboLiveMediaSession.d.ts +0 -60
  155. package/bin/live-share-turbo/dds-objects/TurboLiveMediaSession.d.ts.map +0 -1
  156. package/bin/live-share-turbo/dds-objects/TurboLiveMediaSession.js +0 -111
  157. package/bin/live-share-turbo/dds-objects/TurboLiveMediaSession.js.map +0 -1
  158. package/bin/live-share-turbo/dds-objects/TurboLivePresence.d.ts +0 -77
  159. package/bin/live-share-turbo/dds-objects/TurboLivePresence.d.ts.map +0 -1
  160. package/bin/live-share-turbo/dds-objects/TurboLivePresence.js +0 -137
  161. package/bin/live-share-turbo/dds-objects/TurboLivePresence.js.map +0 -1
  162. package/bin/live-share-turbo/dds-objects/TurboLiveState.d.ts +0 -30
  163. package/bin/live-share-turbo/dds-objects/TurboLiveState.d.ts.map +0 -1
  164. package/bin/live-share-turbo/dds-objects/TurboLiveState.js +0 -74
  165. package/bin/live-share-turbo/dds-objects/TurboLiveState.js.map +0 -1
  166. package/bin/live-share-turbo/dds-objects/TurboSharedMap.d.ts +0 -61
  167. package/bin/live-share-turbo/dds-objects/TurboSharedMap.d.ts.map +0 -1
  168. package/bin/live-share-turbo/dds-objects/TurboSharedMap.js +0 -108
  169. package/bin/live-share-turbo/dds-objects/TurboSharedMap.js.map +0 -1
  170. package/bin/live-share-turbo/dds-objects/index.d.ts +0 -8
  171. package/bin/live-share-turbo/dds-objects/index.d.ts.map +0 -1
  172. package/bin/live-share-turbo/dds-objects/index.js +0 -8
  173. package/bin/live-share-turbo/dds-objects/index.js.map +0 -1
  174. package/bin/live-share-turbo/index.d.ts +0 -5
  175. package/bin/live-share-turbo/index.d.ts.map +0 -1
  176. package/bin/live-share-turbo/index.js +0 -5
  177. package/bin/live-share-turbo/index.js.map +0 -1
  178. package/bin/live-share-turbo/interfaces/IFluidTurboClient.d.ts +0 -15
  179. package/bin/live-share-turbo/interfaces/IFluidTurboClient.d.ts.map +0 -1
  180. package/bin/live-share-turbo/interfaces/IFluidTurboClient.js +0 -2
  181. package/bin/live-share-turbo/interfaces/IFluidTurboClient.js.map +0 -1
  182. package/bin/live-share-turbo/interfaces/index.d.ts +0 -3
  183. package/bin/live-share-turbo/interfaces/index.d.ts.map +0 -1
  184. package/bin/live-share-turbo/interfaces/index.js +0 -3
  185. package/bin/live-share-turbo/interfaces/index.js.map +0 -1
  186. package/bin/live-share-turbo/internals/FluidTurboClient.d.ts +0 -39
  187. package/bin/live-share-turbo/internals/FluidTurboClient.d.ts.map +0 -1
  188. package/bin/live-share-turbo/internals/FluidTurboClient.js +0 -121
  189. package/bin/live-share-turbo/internals/FluidTurboClient.js.map +0 -1
  190. package/bin/live-share-turbo/internals/index.d.ts +0 -2
  191. package/bin/live-share-turbo/internals/index.d.ts.map +0 -1
  192. package/bin/live-share-turbo/internals/index.js +0 -2
  193. package/bin/live-share-turbo/internals/index.js.map +0 -1
  194. package/bin/live-share-turbo/internals/types.d.ts +0 -4
  195. package/bin/live-share-turbo/internals/types.d.ts.map +0 -1
  196. package/bin/live-share-turbo/internals/types.js +0 -2
  197. package/bin/live-share-turbo/internals/types.js.map +0 -1
  198. package/bin/providers/FluidContextProvider.d.ts +0 -34
  199. package/bin/providers/FluidContextProvider.d.ts.map +0 -1
  200. package/bin/providers/FluidContextProvider.js +0 -99
  201. package/bin/providers/FluidContextProvider.js.map +0 -1
  202. package/bin/providers/LiveShareContextProvider.d.ts +0 -42
  203. package/bin/providers/LiveShareContextProvider.d.ts.map +0 -1
  204. package/bin/providers/LiveShareContextProvider.js +0 -63
  205. package/bin/providers/LiveShareContextProvider.js.map +0 -1
  206. package/bin/shared-hooks/useLockedTask.d.ts +0 -11
  207. package/bin/shared-hooks/useLockedTask.d.ts.map +0 -1
  208. package/bin/shared-hooks/useLockedTask.js +0 -82
  209. package/bin/shared-hooks/useLockedTask.js.map +0 -1
  210. package/bin/shared-hooks/useTaskManager.d.ts +0 -13
  211. package/bin/shared-hooks/useTaskManager.d.ts.map +0 -1
  212. package/bin/shared-hooks/useTaskManager.js +0 -86
  213. package/bin/shared-hooks/useTaskManager.js.map +0 -1
  214. package/bin/utils/getContainerSchema.d.ts +0 -8
  215. package/bin/utils/getContainerSchema.d.ts.map +0 -1
  216. package/bin/utils/getContainerSchema.js +0 -41
  217. package/bin/utils/getContainerSchema.js.map +0 -1
  218. package/src/internal-hooks/index.ts +0 -1
  219. package/src/shared-hooks/useTaskManager.ts +0 -82
  220. package/tinylicious.log +0 -4
@@ -1,162 +1,207 @@
1
- /*!
2
- * Copyright (c) Microsoft Corporation. All rights reserved.
3
- * Licensed under the Microsoft Live Share SDK License.
4
- */
5
- import React from "react";
6
- import { LiveMediaSession, } from "@microsoft/live-share-media";
7
- import { isExtendedMediaMetadata, isMediaElement, isRefObject } from "../utils";
8
- import { useDynamicDDS } from "../shared-hooks";
9
- /**
10
- * React hook for using a Live Share media `MediaPlayerSynchronizer`.
11
- *
12
- * @remarks
13
- * Use this hook if you want to synchronize the playback position of a video or audio element during a Live Share session.
14
- *
15
- * @param uniqueKey uniqueKey value for the `LiveMediaSession` DDS object used by `MediaPlayerSynchronizer`.
16
- * @param mediaPlayerElementRef React RefObject containing object/element conforming to IMediaPlayer interface or string id for <video> / <audio> element.
17
- * @param initialTrack initial track to load. Either ExtendedMediaMetadata, trackId string, or null.
18
- * @param allowedRoles Optional. Array of user roles that are eligible to modify group playback state.
19
- * @param viewOnly Optional. Flag for whether or not the media synchronizer should be in viewOnly mode.
20
- * @returns IUseMediaSynchronizerResults object.
21
- */
22
- export function useMediaSynchronizer(uniqueKey, mediaPlayerElementRef, initialTrack, allowedRoles, viewOnly) {
23
- /**
24
- * User facing media synchronizer and non-user facing setter
25
- */
26
- const [mediaSynchronizer, setMediaSynchronizer] = React.useState();
27
- /**
28
- * Suspension object and setter
29
- */
30
- const [suspension, setSuspension] = React.useState();
31
- /**
32
- * User facing: dynamically load the LiveMediaSession DDS for the given unique key.
33
- */
34
- const { dds: mediaSession } = useDynamicDDS(uniqueKey, LiveMediaSession);
35
- /**
36
- * User facing: play callback
37
- */
38
- const play = React.useCallback(() => {
39
- mediaSynchronizer === null || mediaSynchronizer === void 0 ? void 0 : mediaSynchronizer.play();
40
- }, [mediaSynchronizer]);
41
- /**
42
- * User facing: pause callback
43
- */
44
- const pause = React.useCallback(() => {
45
- mediaSynchronizer === null || mediaSynchronizer === void 0 ? void 0 : mediaSynchronizer.pause();
46
- }, [mediaSynchronizer]);
47
- /**
48
- * User facing: seek callback
49
- */
50
- const seekTo = React.useCallback((time) => {
51
- mediaSynchronizer === null || mediaSynchronizer === void 0 ? void 0 : mediaSynchronizer.seekTo(time);
52
- }, [mediaSynchronizer]);
53
- /**
54
- * User facing: set track callback
55
- */
56
- const setTrack = React.useCallback((track) => {
57
- // TODO: fix force unwrap once synchronizer uses correct types
58
- if (isExtendedMediaMetadata(track)) {
59
- mediaSynchronizer.setTrack(track);
60
- }
61
- else if (typeof track === "string") {
62
- mediaSynchronizer.setTrack({
63
- trackIdentifier: track,
64
- });
65
- }
66
- }, [mediaSynchronizer]);
67
- /**
68
- * User facing: create a new suspension and set it locally to state
69
- */
70
- const beginSuspension = React.useCallback((waitPoint) => {
71
- const suspension = mediaSession === null || mediaSession === void 0 ? void 0 : mediaSession.coordinator.beginSuspension(waitPoint);
72
- setSuspension(suspension);
73
- }, [mediaSession]);
74
- /**
75
- * User facing: if a suspension is active, end it. Called when "Follow presenter" button is clicked.
76
- */
77
- const endSuspension = React.useCallback(() => {
78
- suspension === null || suspension === void 0 ? void 0 : suspension.end();
79
- setSuspension(undefined);
80
- }, [suspension]);
81
- /**
82
- * Setup change listeners and start `LiveMediaSession` if needed
83
- */
84
- React.useEffect(() => {
85
- if (mediaSession === undefined || !mediaPlayerElementRef)
86
- return;
87
- // Query the HTML5 media element from the document and set reference
88
- let mediaPlayer;
89
- if (isRefObject(mediaPlayerElementRef)) {
90
- if (!mediaPlayerElementRef.current)
91
- return;
92
- mediaPlayer = mediaPlayerElementRef.current;
93
- }
94
- else {
95
- const mediaPlayerElement = document.getElementById(mediaPlayerElementRef);
96
- if (!isMediaElement(mediaPlayerElement))
97
- return;
98
- mediaPlayer = mediaPlayerElement;
99
- }
100
- if (initialTrack) {
101
- // If supported type and not null, set the initial src
102
- if (isExtendedMediaMetadata(initialTrack)) {
103
- mediaPlayer.src = initialTrack.trackIdentifier;
104
- }
105
- else if (typeof initialTrack === "string") {
106
- mediaPlayer.src = initialTrack;
107
- }
108
- }
109
- // Begin synchronizing a MediaSynchronizer for the player
110
- const synchronizer = mediaSession.synchronize(mediaPlayer);
111
- if (viewOnly !== undefined) {
112
- // Set synchronizer to view only mode provided by developer
113
- synchronizer.viewOnly = viewOnly;
114
- }
115
- if (!mediaSession.isInitialized) {
116
- // Start synchronizing the media session
117
- mediaSession.initialize(allowedRoles !== null && allowedRoles !== void 0 ? allowedRoles : []);
118
- }
119
- else if (initialTrack) {
120
- // If we have already started the media session, the synchronizer won't have initial track
121
- // data now that we are remounting.
122
- // TODO: if player is loaded twice in one app at once, then this has a chance to disrupt the
123
- // group state by resetting the track. MediaPlayerSynchronizer does not currently have a way to
124
- // get the current track, so to fix this we need a better solution.
125
- if (isExtendedMediaMetadata(initialTrack)) {
126
- synchronizer.setTrack(initialTrack);
127
- }
128
- else if (typeof initialTrack === "string") {
129
- synchronizer.setTrack({
130
- trackIdentifier: initialTrack,
131
- });
132
- }
133
- }
134
- setMediaSynchronizer(synchronizer);
135
- return () => {
136
- synchronizer.removeAllListeners();
137
- mediaSession.removeAllListeners();
138
- synchronizer === null || synchronizer === void 0 ? void 0 : synchronizer.end();
139
- };
140
- }, [mediaSession]);
141
- /**
142
- * Change view in media synchronizer only if prop changes
143
- */
144
- React.useEffect(() => {
145
- if ((mediaSynchronizer === null || mediaSynchronizer === void 0 ? void 0 : mediaSynchronizer.viewOnly) !== undefined &&
146
- viewOnly !== undefined &&
147
- mediaSynchronizer.viewOnly !== viewOnly) {
148
- mediaSynchronizer.viewOnly = !!viewOnly;
149
- }
150
- }, [viewOnly, mediaSynchronizer === null || mediaSynchronizer === void 0 ? void 0 : mediaSynchronizer.viewOnly]);
151
- return {
152
- suspended: !!suspension,
153
- mediaSynchronizer,
154
- play,
155
- pause,
156
- seekTo,
157
- setTrack,
158
- beginSuspension,
159
- endSuspension,
160
- };
161
- }
1
+ /*!
2
+ * Copyright (c) Microsoft Corporation. All rights reserved.
3
+ * Licensed under the Microsoft Live Share SDK License.
4
+ */
5
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
6
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
7
+ return new (P || (P = Promise))(function (resolve, reject) {
8
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
9
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
10
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
11
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
12
+ });
13
+ };
14
+ import React from "react";
15
+ import { LiveMediaSession, } from "@microsoft/live-share-media";
16
+ import { isExtendedMediaMetadata, isMediaElement, isRefObject } from "../utils";
17
+ import { useDynamicDDS } from "../shared-hooks";
18
+ import { useFluidObjectsContext } from "../providers";
19
+ import { ActionContainerNotJoinedError, ActionLiveDataObjectUndefinedError, } from "../internal";
20
+ /**
21
+ * React hook for using a Live Share media `MediaPlayerSynchronizer`.
22
+ *
23
+ * @remarks
24
+ * Use this hook if you want to synchronize the playback position of a video or audio element during a Live Share session.
25
+ *
26
+ * @param uniqueKey uniqueKey value for the `LiveMediaSession` DDS object used by `MediaPlayerSynchronizer`.
27
+ * @param mediaPlayerElement React RefObject containing object/element conforming to IMediaPlayer interface, `IMediaPlayer` object, or string id for <video> / <audio> element.
28
+ * @param initialTrack initial track to load. Either ExtendedMediaMetadata, trackId string, or null.
29
+ * @param allowedRoles Optional. Array of user roles that are eligible to modify group playback state.
30
+ * @param viewOnly Optional. Flag for whether or not the media synchronizer should be in viewOnly mode.
31
+ * @returns IUseMediaSynchronizerResults object.
32
+ */
33
+ export function useMediaSynchronizer(uniqueKey, mediaPlayerElement, initialTrack, allowedRoles, viewOnly) {
34
+ /**
35
+ * User facing media synchronizer and non-user facing setter
36
+ */
37
+ const [mediaSynchronizer, setMediaSynchronizer] = React.useState();
38
+ /**
39
+ * Suspension object and setter
40
+ */
41
+ const [suspension, setSuspension] = React.useState();
42
+ /**
43
+ * User facing: dynamically load the LiveMediaSession DDS for the given unique key.
44
+ */
45
+ const { dds: mediaSession } = useDynamicDDS(uniqueKey, LiveMediaSession);
46
+ const { container } = useFluidObjectsContext();
47
+ /**
48
+ * Play callback
49
+ */
50
+ const play = React.useCallback(() => __awaiter(this, void 0, void 0, function* () {
51
+ if (!container) {
52
+ throw new ActionContainerNotJoinedError("mediaSynchronizer", "play");
53
+ }
54
+ if (mediaSynchronizer === undefined) {
55
+ throw new ActionLiveDataObjectUndefinedError("mediaSynchronizer", "play");
56
+ }
57
+ return yield mediaSynchronizer.play();
58
+ }), [container, mediaSynchronizer]);
59
+ /**
60
+ * Pause callback
61
+ */
62
+ const pause = React.useCallback(() => __awaiter(this, void 0, void 0, function* () {
63
+ if (!container) {
64
+ throw new ActionContainerNotJoinedError("mediaSynchronizer", "pause");
65
+ }
66
+ if (mediaSynchronizer === undefined) {
67
+ throw new ActionLiveDataObjectUndefinedError("mediaSynchronizer", "pause");
68
+ }
69
+ return yield mediaSynchronizer.pause();
70
+ }), [container, mediaSynchronizer]);
71
+ /**
72
+ * User facing: seek callback
73
+ */
74
+ const seekTo = React.useCallback((time) => __awaiter(this, void 0, void 0, function* () {
75
+ if (!container) {
76
+ throw new ActionContainerNotJoinedError("mediaSynchronizer", "seekTo");
77
+ }
78
+ if (mediaSynchronizer === undefined) {
79
+ throw new ActionLiveDataObjectUndefinedError("mediaSynchronizer", "seekTo");
80
+ }
81
+ return yield mediaSynchronizer.seekTo(time);
82
+ }), [container, mediaSynchronizer]);
83
+ /**
84
+ * User facing: set track callback
85
+ */
86
+ const setTrack = React.useCallback((track) => __awaiter(this, void 0, void 0, function* () {
87
+ if (!container) {
88
+ throw new ActionContainerNotJoinedError("mediaSynchronizer", "setTrack");
89
+ }
90
+ if (mediaSynchronizer === undefined) {
91
+ throw new ActionLiveDataObjectUndefinedError("mediaSynchronizer", "setTrack");
92
+ }
93
+ if (isExtendedMediaMetadata(track)) {
94
+ return yield mediaSynchronizer.setTrack(track);
95
+ }
96
+ else if (typeof track === "string") {
97
+ return yield mediaSynchronizer.setTrack({
98
+ trackIdentifier: track,
99
+ });
100
+ }
101
+ }), [container, mediaSynchronizer]);
102
+ /**
103
+ * User facing: create a new suspension and set it locally to state
104
+ */
105
+ const beginSuspension = React.useCallback((waitPoint) => {
106
+ const suspension = mediaSession === null || mediaSession === void 0 ? void 0 : mediaSession.coordinator.beginSuspension(waitPoint);
107
+ setSuspension(suspension);
108
+ }, [mediaSession]);
109
+ /**
110
+ * User facing: if a suspension is active, end it. Called when "Follow presenter" button is clicked.
111
+ */
112
+ const endSuspension = React.useCallback(() => {
113
+ suspension === null || suspension === void 0 ? void 0 : suspension.end();
114
+ setSuspension(undefined);
115
+ }, [suspension]);
116
+ /**
117
+ * Setup change listeners and start `LiveMediaSession` if needed
118
+ */
119
+ React.useEffect(() => {
120
+ if (mediaSession === undefined || !mediaPlayerElement)
121
+ return;
122
+ let mounted = true;
123
+ // Query the HTML5 media element from the document and set reference
124
+ let mediaPlayer;
125
+ if (isRefObject(mediaPlayerElement)) {
126
+ if (!mediaPlayerElement.current)
127
+ return;
128
+ mediaPlayer = mediaPlayerElement.current;
129
+ }
130
+ else if (typeof mediaPlayerElement === "string") {
131
+ const mediaElement = document.getElementById(mediaPlayerElement);
132
+ if (!isMediaElement(mediaElement))
133
+ return;
134
+ mediaPlayer = mediaElement;
135
+ }
136
+ else {
137
+ mediaPlayer = mediaPlayerElement;
138
+ }
139
+ if (initialTrack) {
140
+ // If supported type and not null, set the initial src
141
+ if (isExtendedMediaMetadata(initialTrack)) {
142
+ mediaPlayer.src = initialTrack.trackIdentifier;
143
+ }
144
+ else if (typeof initialTrack === "string") {
145
+ mediaPlayer.src = initialTrack;
146
+ }
147
+ }
148
+ // Begin synchronizing a MediaSynchronizer for the player
149
+ const synchronizer = mediaSession.synchronize(mediaPlayer);
150
+ if (viewOnly !== undefined) {
151
+ // Set synchronizer to view only mode provided by developer
152
+ synchronizer.viewOnly = viewOnly;
153
+ }
154
+ if (!mediaSession.isInitialized) {
155
+ // Start synchronizing the media session
156
+ mediaSession.initialize(allowedRoles !== null && allowedRoles !== void 0 ? allowedRoles : []);
157
+ }
158
+ else if (initialTrack) {
159
+ mediaSession.onLocalUserAllowed(() => __awaiter(this, void 0, void 0, function* () {
160
+ if (!mounted)
161
+ return;
162
+ try {
163
+ if (isExtendedMediaMetadata(initialTrack)) {
164
+ yield synchronizer.setTrack(initialTrack);
165
+ }
166
+ else if (typeof initialTrack === "string") {
167
+ yield synchronizer.setTrack({
168
+ trackIdentifier: initialTrack,
169
+ });
170
+ }
171
+ }
172
+ catch (err) {
173
+ console.error(err);
174
+ }
175
+ }));
176
+ }
177
+ setMediaSynchronizer(synchronizer);
178
+ return () => {
179
+ mounted = false;
180
+ synchronizer.removeAllListeners();
181
+ mediaSession.removeAllListeners();
182
+ synchronizer === null || synchronizer === void 0 ? void 0 : synchronizer.end();
183
+ mediaSession === null || mediaSession === void 0 ? void 0 : mediaSession.dispose();
184
+ };
185
+ }, [mediaSession, mediaPlayerElement]);
186
+ /**
187
+ * Change view in media synchronizer only if prop changes
188
+ */
189
+ React.useEffect(() => {
190
+ if ((mediaSynchronizer === null || mediaSynchronizer === void 0 ? void 0 : mediaSynchronizer.viewOnly) !== undefined &&
191
+ viewOnly !== undefined &&
192
+ mediaSynchronizer.viewOnly !== viewOnly) {
193
+ mediaSynchronizer.viewOnly = !!viewOnly;
194
+ }
195
+ }, [viewOnly, mediaSynchronizer === null || mediaSynchronizer === void 0 ? void 0 : mediaSynchronizer.viewOnly]);
196
+ return {
197
+ suspended: !!suspension,
198
+ mediaSynchronizer,
199
+ play,
200
+ pause,
201
+ seekTo,
202
+ setTrack,
203
+ beginSuspension,
204
+ endSuspension,
205
+ };
206
+ }
162
207
  //# sourceMappingURL=useMediaSynchronizer.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useMediaSynchronizer.js","sourceRoot":"","sources":["../../src/live-hooks/useMediaSynchronizer.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAIH,gBAAgB,GAGnB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,uBAAuB,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAChF,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAGhD;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,oBAAoB,CAChC,SAAiB,EACjB,qBAA6D,EAC7D,YAA4D,EAC5D,YAAgC,EAChC,QAAkB;IAElB;;OAEG;IACH,MAAM,CAAC,iBAAiB,EAAE,oBAAoB,CAAC,GAAG,KAAK,CAAC,QAAQ,EAE7D,CAAC;IACJ;;OAEG;IACH,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,KAAK,CAAC,QAAQ,EAE/C,CAAC;IACJ;;OAEG;IACH,MAAM,EAAE,GAAG,EAAE,YAAY,EAAE,GAAG,aAAa,CAAmB,SAAS,EAAE,gBAAgB,CAAC,CAAC;IAE3F;;OAEG;IACH,MAAM,IAAI,GAAG,KAAK,CAAC,WAAW,CAAC,GAAS,EAAE;QACtC,iBAAiB,aAAjB,iBAAiB,uBAAjB,iBAAiB,CAAE,IAAI,EAAE,CAAC;IAC9B,CAAC,EAAE,CAAC,iBAAiB,CAAC,CAAC,CAAC;IAExB;;OAEG;IACH,MAAM,KAAK,GAAG,KAAK,CAAC,WAAW,CAAC,GAAS,EAAE;QACvC,iBAAiB,aAAjB,iBAAiB,uBAAjB,iBAAiB,CAAE,KAAK,EAAE,CAAC;IAC/B,CAAC,EAAE,CAAC,iBAAiB,CAAC,CAAC,CAAC;IAExB;;OAEG;IACH,MAAM,MAAM,GAAG,KAAK,CAAC,WAAW,CAC5B,CAAC,IAAY,EAAQ,EAAE;QACnB,iBAAiB,aAAjB,iBAAiB,uBAAjB,iBAAiB,CAAE,MAAM,CAAC,IAAI,CAAC,CAAC;IACpC,CAAC,EACD,CAAC,iBAAiB,CAAC,CACtB,CAAC;IAEF;;OAEG;IACH,MAAM,QAAQ,GAAG,KAAK,CAAC,WAAW,CAC9B,CAAC,KAAqD,EAAQ,EAAE;QAC5D,8DAA8D;QAC9D,IAAI,uBAAuB,CAAC,KAAK,CAAC,EAAE;YAChC,iBAAkB,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;SACtC;aAAM,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;YAClC,iBAAkB,CAAC,QAAQ,CAAC;gBACxB,eAAe,EAAE,KAAK;aACA,CAAC,CAAC;SAC/B;IACL,CAAC,EACD,CAAC,iBAAiB,CAAC,CACtB,CAAC;IAEF;;OAEG;IACH,MAAM,eAAe,GAAG,KAAK,CAAC,WAAW,CACrC,CAAC,SAAiC,EAAE,EAAE;QAClC,MAAM,UAAU,GACZ,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,WAAW,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;QACzD,aAAa,CAAC,UAAU,CAAC,CAAC;IAC9B,CAAC,EACD,CAAC,YAAY,CAAC,CACjB,CAAC;IAEF;;OAEG;IACH,MAAM,aAAa,GAAG,KAAK,CAAC,WAAW,CAAC,GAAG,EAAE;QACzC,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,GAAG,EAAE,CAAC;QAClB,aAAa,CAAC,SAAS,CAAC,CAAC;IAC7B,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC;IAEjB;;OAEG;IACH,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACjB,IAAI,YAAY,KAAK,SAAS,IAAI,CAAC,qBAAqB;YACpD,OAAO;QACX,oEAAoE;QACpE,IAAI,WAAqC,CAAC;QAC1C,IAAI,WAAW,CAAe,qBAAqB,CAAC,EAAE;YAClD,IAAI,CAAC,qBAAqB,CAAC,OAAO;gBAAE,OAAO;YAC3C,WAAW,GAAG,qBAAqB,CAAC,OAAO,CAAC;SAC/C;aAAM;YACH,MAAM,kBAAkB,GAAG,QAAQ,CAAC,cAAc,CAC9C,qBAAqB,CACjB,CAAC;YACT,IAAI,CAAC,cAAc,CAAC,kBAAkB,CAAC;gBAAE,OAAO;YAChD,WAAW,GAAG,kBAAkB,CAAC;SACpC;QACD,IAAI,YAAY,EAAE;YACd,sDAAsD;YACtD,IAAI,uBAAuB,CAAC,YAAY,CAAC,EAAE;gBACvC,WAAW,CAAC,GAAG,GAAG,YAAY,CAAC,eAAe,CAAC;aAClD;iBAAM,IAAI,OAAO,YAAY,KAAK,QAAQ,EAAE;gBACzC,WAAW,CAAC,GAAG,GAAG,YAAY,CAAC;aAClC;SACJ;QACD,yDAAyD;QACzD,MAAM,YAAY,GAAG,YAAY,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;QAC3D,IAAI,QAAQ,KAAK,SAAS,EAAE;YACxB,2DAA2D;YAC3D,YAAY,CAAC,QAAQ,GAAG,QAAQ,CAAC;SACpC;QAED,IAAI,CAAC,YAAY,CAAC,aAAa,EAAE;YAC7B,wCAAwC;YACxC,YAAY,CAAC,UAAU,CAAC,YAAY,aAAZ,YAAY,cAAZ,YAAY,GAAI,EAAE,CAAC,CAAC;SAC/C;aAAM,IAAI,YAAY,EAAE;YACrB,0FAA0F;YAC1F,mCAAmC;YACnC,4FAA4F;YAC5F,+FAA+F;YAC/F,mEAAmE;YACnE,IAAI,uBAAuB,CAAC,YAAY,CAAC,EAAE;gBACvC,YAAY,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;aACvC;iBAAM,IAAI,OAAO,YAAY,KAAK,QAAQ,EAAE;gBACzC,YAAY,CAAC,QAAQ,CAAC;oBAClB,eAAe,EAAE,YAAY;iBACP,CAAC,CAAC;aAC/B;SACJ;QACD,oBAAoB,CAAC,YAAY,CAAC,CAAC;QAEnC,OAAO,GAAG,EAAE;YACR,YAAY,CAAC,kBAAkB,EAAE,CAAC;YAClC,YAAY,CAAC,kBAAkB,EAAE,CAAC;YAClC,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,GAAG,EAAE,CAAC;QACxB,CAAC,CAAC;IACN,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC;IAEnB;;OAEG;IACH,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACjB,IACI,CAAA,iBAAiB,aAAjB,iBAAiB,uBAAjB,iBAAiB,CAAE,QAAQ,MAAK,SAAS;YACzC,QAAQ,KAAK,SAAS;YACtB,iBAAiB,CAAC,QAAQ,KAAK,QAAQ,EACzC;YACE,iBAAiB,CAAC,QAAQ,GAAG,CAAC,CAAC,QAAQ,CAAC;SAC3C;IACL,CAAC,EAAE,CAAC,QAAQ,EAAE,iBAAiB,aAAjB,iBAAiB,uBAAjB,iBAAiB,CAAE,QAAQ,CAAC,CAAC,CAAC;IAE5C,OAAO;QACH,SAAS,EAAE,CAAC,CAAC,UAAU;QACvB,iBAAiB;QACjB,IAAI;QACJ,KAAK;QACL,MAAM;QACN,QAAQ;QACR,eAAe;QACf,aAAa;KAChB,CAAC;AACN,CAAC"}
1
+ {"version":3,"file":"useMediaSynchronizer.js","sourceRoot":"","sources":["../../src/live-hooks/useMediaSynchronizer.ts"],"names":[],"mappings":"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"}
@@ -1,34 +1,34 @@
1
- /*!
2
- * Copyright (c) Microsoft Corporation. All rights reserved.
3
- * Licensed under the Microsoft Live Share SDK License.
4
- */
5
- import { IFluidContainer, LoadableObjectClassRecord } from "fluid-framework";
6
- import React from "react";
7
- import { AzureClientProps, AzureContainerServices } from "@fluidframework/azure-client";
8
- import { IAzureContainerResults } from "../types";
9
- import { ISharedStateRegistryResponse } from "../internal-hooks";
10
- import { IFluidTurboClient } from "@microsoft/live-share-turbo";
11
- interface IFluidContext extends ISharedStateRegistryResponse {
12
- clientRef: React.MutableRefObject<IFluidTurboClient>;
13
- container: IFluidContainer | undefined;
14
- services: AzureContainerServices | undefined;
15
- joinError: Error | undefined;
16
- getContainer: (containerId: string, initialObjects?: LoadableObjectClassRecord) => Promise<IAzureContainerResults>;
17
- createContainer: (initialObjects?: LoadableObjectClassRecord, onInitializeContainer?: (container: IFluidContainer) => void) => Promise<IAzureContainerResults>;
18
- }
19
- export declare const FluidContext: React.Context<IFluidContext>;
20
- export declare const useFluidObjectsContext: () => IFluidContext;
21
- interface IAzureProviderProps {
22
- children?: React.ReactNode;
23
- clientOptions: AzureClientProps;
24
- containerId?: string;
25
- createOnLoad?: boolean;
26
- initialObjects?: LoadableObjectClassRecord;
27
- joinOnLoad?: boolean;
28
- }
29
- /**
30
- * React Context provider component for using Fluid data objects & joining/creating a Fluid document `AzureClient`.
31
- */
32
- export declare const AzureProvider: React.FC<IAzureProviderProps>;
33
- export {};
1
+ /*!
2
+ * Copyright (c) Microsoft Corporation. All rights reserved.
3
+ * Licensed under the Microsoft Live Share SDK License.
4
+ */
5
+ import { IFluidContainer, LoadableObjectClassRecord } from "fluid-framework";
6
+ import React from "react";
7
+ import { AzureClientProps, AzureContainerServices } from "@fluidframework/azure-client";
8
+ import { IAzureContainerResults } from "../types";
9
+ import { ISharedStateRegistryResponse } from "../internal";
10
+ import { IFluidTurboClient } from "@microsoft/live-share-turbo";
11
+ interface IFluidContext extends ISharedStateRegistryResponse {
12
+ clientRef: React.MutableRefObject<IFluidTurboClient>;
13
+ container: IFluidContainer | undefined;
14
+ services: AzureContainerServices | undefined;
15
+ joinError: Error | undefined;
16
+ getContainer: (containerId: string, initialObjects?: LoadableObjectClassRecord) => Promise<IAzureContainerResults>;
17
+ createContainer: (initialObjects?: LoadableObjectClassRecord, onInitializeContainer?: (container: IFluidContainer) => void) => Promise<IAzureContainerResults>;
18
+ }
19
+ export declare const FluidContext: React.Context<IFluidContext>;
20
+ export declare const useFluidObjectsContext: () => IFluidContext;
21
+ interface IAzureProviderProps {
22
+ children?: React.ReactNode;
23
+ clientOptions: AzureClientProps;
24
+ containerId?: string;
25
+ createOnLoad?: boolean;
26
+ initialObjects?: LoadableObjectClassRecord;
27
+ joinOnLoad?: boolean;
28
+ }
29
+ /**
30
+ * React Context provider component for using Fluid data objects & joining/creating a Fluid document `AzureClient`.
31
+ */
32
+ export declare const AzureProvider: React.FC<IAzureProviderProps>;
33
+ export {};
34
34
  //# sourceMappingURL=AzureProvider.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"AzureProvider.d.ts","sourceRoot":"","sources":["../../src/providers/AzureProvider.tsx"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EACH,eAAe,EACf,yBAAyB,EAC5B,MAAM,iBAAiB,CAAC;AACzB,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EACH,gBAAgB,EAChB,sBAAsB,EACzB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAC;AAClD,OAAO,EACH,4BAA4B,EAE/B,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAEH,iBAAiB,EACpB,MAAM,6BAA6B,CAAC;AAErC,UAAU,aAAc,SAAQ,4BAA4B;IACxD,SAAS,EAAE,KAAK,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,CAAC;IACrD,SAAS,EAAE,eAAe,GAAG,SAAS,CAAC;IACvC,QAAQ,EAAE,sBAAsB,GAAG,SAAS,CAAC;IAC7C,SAAS,EAAE,KAAK,GAAG,SAAS,CAAC;IAC7B,YAAY,EAAE,CACV,WAAW,EAAE,MAAM,EACnB,cAAc,CAAC,EAAE,yBAAyB,KACzC,OAAO,CAAC,sBAAsB,CAAC,CAAC;IACrC,eAAe,EAAE,CACb,cAAc,CAAC,EAAE,yBAAyB,EAC1C,qBAAqB,CAAC,EAAE,CAAC,SAAS,EAAE,eAAe,KAAK,IAAI,KAC3D,OAAO,CAAC,sBAAsB,CAAC,CAAC;CACxC;AAED,eAAO,MAAM,YAAY,8BAExB,CAAC;AAEF,eAAO,MAAM,sBAAsB,QAAO,aAGzC,CAAC;AAEF,UAAU,mBAAmB;IACzB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,aAAa,EAAE,gBAAgB,CAAC;IAChC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,cAAc,CAAC,EAAE,yBAAyB,CAAC;IAC3C,UAAU,CAAC,EAAE,OAAO,CAAC;CACxB;AAED;;GAEG;AACH,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC,mBAAmB,CAoHvD,CAAC"}
1
+ {"version":3,"file":"AzureProvider.d.ts","sourceRoot":"","sources":["../../src/providers/AzureProvider.tsx"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,eAAe,EAAE,yBAAyB,EAAE,MAAM,iBAAiB,CAAC;AAC7E,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EACH,gBAAgB,EAChB,sBAAsB,EACzB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAC;AAClD,OAAO,EACH,4BAA4B,EAE/B,MAAM,aAAa,CAAC;AACrB,OAAO,EAEH,iBAAiB,EACpB,MAAM,6BAA6B,CAAC;AAErC,UAAU,aAAc,SAAQ,4BAA4B;IACxD,SAAS,EAAE,KAAK,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,CAAC;IACrD,SAAS,EAAE,eAAe,GAAG,SAAS,CAAC;IACvC,QAAQ,EAAE,sBAAsB,GAAG,SAAS,CAAC;IAC7C,SAAS,EAAE,KAAK,GAAG,SAAS,CAAC;IAC7B,YAAY,EAAE,CACV,WAAW,EAAE,MAAM,EACnB,cAAc,CAAC,EAAE,yBAAyB,KACzC,OAAO,CAAC,sBAAsB,CAAC,CAAC;IACrC,eAAe,EAAE,CACb,cAAc,CAAC,EAAE,yBAAyB,EAC1C,qBAAqB,CAAC,EAAE,CAAC,SAAS,EAAE,eAAe,KAAK,IAAI,KAC3D,OAAO,CAAC,sBAAsB,CAAC,CAAC;CACxC;AAED,eAAO,MAAM,YAAY,8BAExB,CAAC;AAEF,eAAO,MAAM,sBAAsB,QAAO,aAGzC,CAAC;AAEF,UAAU,mBAAmB;IACzB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,aAAa,EAAE,gBAAgB,CAAC;IAChC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,cAAc,CAAC,EAAE,yBAAyB,CAAC;IAC3C,UAAU,CAAC,EAAE,OAAO,CAAC;CACxB;AAED;;GAEG;AACH,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC,mBAAmB,CAkHvD,CAAC"}