@microsoft/live-share-media 0.5.1 → 1.0.0-preview.10

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 (88) hide show
  1. package/.nycrc.json +10 -10
  2. package/LICENSE +86 -86
  3. package/README.md +141 -137
  4. package/bin/IMediaPlayer.d.ts.map +1 -1
  5. package/bin/LiveMediaSession.d.ts +95 -0
  6. package/bin/LiveMediaSession.d.ts.map +1 -0
  7. package/bin/LiveMediaSession.js +232 -0
  8. package/bin/LiveMediaSession.js.map +1 -0
  9. package/bin/LiveMediaSessionCoordinator.d.ts +228 -0
  10. package/bin/LiveMediaSessionCoordinator.d.ts.map +1 -0
  11. package/bin/LiveMediaSessionCoordinator.js +408 -0
  12. package/bin/LiveMediaSessionCoordinator.js.map +1 -0
  13. package/bin/LiveMediaSessionCoordinatorSuspension.d.ts +20 -0
  14. package/bin/LiveMediaSessionCoordinatorSuspension.d.ts.map +1 -0
  15. package/bin/LiveMediaSessionCoordinatorSuspension.js +28 -0
  16. package/bin/LiveMediaSessionCoordinatorSuspension.js.map +1 -0
  17. package/bin/MediaPlayerSynchronizer.d.ts +11 -11
  18. package/bin/MediaPlayerSynchronizer.d.ts.map +1 -1
  19. package/bin/MediaPlayerSynchronizer.js +136 -76
  20. package/bin/MediaPlayerSynchronizer.js.map +1 -1
  21. package/bin/MediaSessionActionThrottler.d.ts +1 -1
  22. package/bin/MediaSessionActionThrottler.d.ts.map +1 -1
  23. package/bin/MediaSessionActionThrottler.js.map +1 -1
  24. package/bin/MediaSessionExtensions.d.ts.map +1 -1
  25. package/bin/RepeatedActionThrottler.d.ts +2 -2
  26. package/bin/RepeatedActionThrottler.d.ts.map +1 -1
  27. package/bin/RepeatedActionThrottler.js +9 -3
  28. package/bin/RepeatedActionThrottler.js.map +1 -1
  29. package/bin/VolumeManager.d.ts +84 -0
  30. package/bin/VolumeManager.d.ts.map +1 -0
  31. package/bin/VolumeManager.js +175 -0
  32. package/bin/VolumeManager.js.map +1 -0
  33. package/bin/index.d.ts +9 -9
  34. package/bin/index.d.ts.map +1 -1
  35. package/bin/index.js +4 -4
  36. package/bin/index.js.map +1 -1
  37. package/bin/internals/GroupCoordinatorState.d.ts +12 -12
  38. package/bin/internals/GroupCoordinatorState.d.ts.map +1 -1
  39. package/bin/internals/GroupCoordinatorState.js +94 -56
  40. package/bin/internals/GroupCoordinatorState.js.map +1 -1
  41. package/bin/internals/GroupPlaybackPosition.d.ts +3 -3
  42. package/bin/internals/GroupPlaybackPosition.d.ts.map +1 -1
  43. package/bin/internals/GroupPlaybackPosition.js +24 -15
  44. package/bin/internals/GroupPlaybackPosition.js.map +1 -1
  45. package/bin/internals/GroupPlaybackTrack.d.ts +4 -4
  46. package/bin/internals/GroupPlaybackTrack.d.ts.map +1 -1
  47. package/bin/internals/GroupPlaybackTrack.js +14 -4
  48. package/bin/internals/GroupPlaybackTrack.js.map +1 -1
  49. package/bin/internals/GroupPlaybackTrackData.d.ts +3 -3
  50. package/bin/internals/GroupPlaybackTrackData.d.ts.map +1 -1
  51. package/bin/internals/GroupPlaybackTrackData.js +8 -4
  52. package/bin/internals/GroupPlaybackTrackData.js.map +1 -1
  53. package/bin/internals/GroupTransportState.d.ts +5 -5
  54. package/bin/internals/GroupTransportState.d.ts.map +1 -1
  55. package/bin/internals/GroupTransportState.js +28 -13
  56. package/bin/internals/GroupTransportState.js.map +1 -1
  57. package/bin/internals/consts.d.ts.map +1 -1
  58. package/bin/internals/consts.js +54 -54
  59. package/bin/internals/consts.js.map +1 -1
  60. package/bin/internals/index.d.ts +6 -6
  61. package/package.json +38 -38
  62. package/src/IMediaPlayer.ts +29 -21
  63. package/src/LiveMediaSession.ts +305 -0
  64. package/src/LiveMediaSessionCoordinator.ts +621 -0
  65. package/src/{EphemeralMediaSessionCoordinatorSuspension.ts → LiveMediaSessionCoordinatorSuspension.ts} +39 -31
  66. package/src/MediaPlayerSynchronizer.ts +636 -450
  67. package/src/MediaSessionActionThrottler.ts +16 -14
  68. package/src/MediaSessionExtensions.ts +52 -42
  69. package/src/RepeatedActionThrottler.ts +74 -56
  70. package/src/VolumeManager.ts +197 -0
  71. package/src/index.ts +14 -15
  72. package/src/internals/GroupCoordinatorState.ts +606 -446
  73. package/src/internals/GroupPlaybackPosition.ts +227 -193
  74. package/src/internals/GroupPlaybackTrack.ts +176 -147
  75. package/src/internals/GroupPlaybackTrackData.ts +98 -90
  76. package/src/internals/GroupTransportState.ts +157 -127
  77. package/src/internals/consts.ts +98 -80
  78. package/src/internals/index.ts +11 -11
  79. package/src/test/GroupPlaybackPosition.spec.ts +600 -340
  80. package/src/test/GroupPlaybackTrack.spec.ts +122 -66
  81. package/src/test/SharedMediaSession.spec.ts +149 -113
  82. package/src/test/SharedMediaSessionCoordinator.spec.ts +271 -231
  83. package/src/test/VolumeManager.spec.ts +219 -0
  84. package/tsconfig.build.json +8 -8
  85. package/tsconfig.json +76 -75
  86. package/src/EphemeralMediaSession.ts +0 -248
  87. package/src/EphemeralMediaSessionCoordinator.ts +0 -461
  88. package/src/VolumeLimiter.ts +0 -182
@@ -1,8 +1,4 @@
1
1
  "use strict";
2
- /**
3
- * Copyright (c) Microsoft Corporation. All rights reserved.
4
- * Licensed under the Microsoft Live Share SDK License.
5
- */
6
2
  var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
7
3
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
8
4
  return new (P || (P = Promise))(function (resolve, reject) {
@@ -19,7 +15,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
19
15
  exports.MediaPlayerSynchronizer = exports.MediaPlayerSynchronizerEvents = void 0;
20
16
  const events_1 = __importDefault(require("events"));
21
17
  const MediaSessionExtensions_1 = require("./MediaSessionExtensions");
22
- const VolumeLimiter_1 = require("./VolumeLimiter");
18
+ const VolumeManager_1 = require("./VolumeManager");
23
19
  const internals_1 = require("./internals");
24
20
  /**
25
21
  * Events supported by `MediaPlayerSynchronizer` object.
@@ -52,12 +48,12 @@ class MediaPlayerSynchronizer extends events_1.default {
52
48
  constructor(player, mediaSession, onEnd) {
53
49
  super();
54
50
  this._viewOnly = false;
55
- this._expectedPlaybackState = 'none';
51
+ this._expectedPlaybackState = "none";
56
52
  this._trackData = null;
57
53
  this._player = player;
58
54
  this._mediaSession = mediaSession;
59
55
  this._logger = mediaSession.logger;
60
- this._volumeLimiter = new VolumeLimiter_1.VolumeLimiter(player);
56
+ this._volumeManager = new VolumeManager_1.VolumeManager(player);
61
57
  this._onEnd = onEnd;
62
58
  // Listen for player state requests
63
59
  mediaSession.setRequestPlayerStateHandler(() => {
@@ -65,16 +61,17 @@ class MediaPlayerSynchronizer extends events_1.default {
65
61
  let playbackState;
66
62
  const src = this._player.currentSrc || this._player.src;
67
63
  if (this._player.ended) {
68
- playbackState = 'ended';
64
+ playbackState = "ended";
69
65
  }
70
- else if (!src || (this._player.paused && this._player.currentTime < 1.0)) {
71
- playbackState = 'none';
66
+ else if (!src ||
67
+ (this._player.paused && this._player.currentTime < 1.0)) {
68
+ playbackState = "none";
72
69
  }
73
70
  else if (this._player.paused) {
74
- playbackState = 'paused';
71
+ playbackState = "paused";
75
72
  }
76
73
  else {
77
- playbackState = 'playing';
74
+ playbackState = "playing";
78
75
  }
79
76
  const state = {
80
77
  metadata: { trackIdentifier: src },
@@ -82,58 +79,74 @@ class MediaPlayerSynchronizer extends events_1.default {
82
79
  positionState: {
83
80
  position: this._player.currentTime,
84
81
  playbackRate: this._player.playbackRate,
85
- duration: this._player.duration
82
+ duration: this._player.duration,
86
83
  },
87
- trackData: this._trackData
84
+ trackData: this._trackData,
88
85
  };
89
86
  return state;
90
87
  });
91
88
  // Listen for player events
92
89
  this._onPlayerEvent = (evt) => {
93
- if (evt.type != 'timeupdate') {
94
- this._logger.sendTelemetryEvent(internals_1.TelemetryEvents.MediaPlayerSynchronizer.PlayerEvent, null, { type: evt.type });
90
+ if (evt.type != "timeupdate") {
91
+ this._logger.sendTelemetryEvent(internals_1.TelemetryEvents.MediaPlayerSynchronizer.PlayerEvent, null, {
92
+ type: evt.type,
93
+ });
95
94
  }
96
95
  switch (evt.type) {
97
- case 'loadedmetadata':
96
+ case "loadedmetadata":
97
+ // eslint-disable-next-line no-case-declarations
98
98
  const src = this._player.currentSrc || this._player.src;
99
99
  this._trackData = null;
100
100
  break;
101
- case 'playing':
101
+ case "playing":
102
102
  // Handle case for YouTube player where user can pause/play video by clicking on it.
103
103
  // - Videos don't always start at 0.0 seconds.
104
- if (this._expectedPlaybackState != 'playing') {
105
- if (this._mediaSession.coordinator.canPlayPause && this._player.currentTime < 1.0) {
106
- this._logger.sendTelemetryEvent(internals_1.TelemetryEvents.MediaPlayerSynchronizer.UserTappedVideoToPlay);
104
+ if (this._expectedPlaybackState != "playing") {
105
+ if (this._mediaSession.coordinator.canPlayPause &&
106
+ this._player.currentTime < 1.0) {
107
+ this._logger.sendTelemetryEvent(internals_1.TelemetryEvents.MediaPlayerSynchronizer
108
+ .UserTappedVideoToPlay);
107
109
  this.play();
108
110
  }
109
111
  }
110
- // block play if player state is playing when expected synced state is paused
111
- // needed for YouTube because cannot tell if its a user initiated event, so disallow play (except when starting)
112
- if (this._expectedPlaybackState === 'paused') {
112
+ // block play if player state is playing when expected synced state is paused and coordinator is not suspended.
113
+ // needed because cannot tell if its a user initiated event, so disallow play
114
+ if (this._expectedPlaybackState === "paused" &&
115
+ !this._mediaSession.coordinator.isSuspended) {
116
+ this._player.pause();
117
+ }
118
+ // block play if player state is playing when expected synced state is none and coordinator is not suspended.
119
+ // needed because user who is not in control should not be able to start, so disallow play
120
+ if (this._expectedPlaybackState === "none" &&
121
+ !this._mediaSession.coordinator.isSuspended) {
113
122
  this._player.pause();
114
123
  }
115
124
  break;
116
- case 'pause':
117
- // block pause if player state is paused when expected synced state is playing
118
- // needed for YouTube because cannot tell if its a user initiated event, so disallow pause
119
- if (this._expectedPlaybackState === 'playing') {
125
+ case "pause":
126
+ // block pause if player state is paused when expected synced state is playing and coordinator is not suspended.
127
+ // needed because cannot tell if its a user initiated event, so disallow pause
128
+ if (this._expectedPlaybackState === "playing" &&
129
+ !this._mediaSession.coordinator.isSuspended) {
120
130
  this._player.play();
121
131
  }
122
132
  break;
123
- case 'ratechange':
133
+ case "ratechange":
124
134
  // Block rate changes unless suspended.
125
- if (this._player.playbackRate != 1.0 && !this._mediaSession.coordinator.isSuspended) {
126
- this._logger.sendTelemetryEvent(internals_1.TelemetryEvents.MediaPlayerSynchronizer.PlaybackRateChangeBlocked);
135
+ if (this._player.playbackRate != 1.0 &&
136
+ !this._mediaSession.coordinator.isSuspended) {
137
+ this._logger.sendTelemetryEvent(internals_1.TelemetryEvents.MediaPlayerSynchronizer
138
+ .PlaybackRateChangeBlocked);
127
139
  this._player.playbackRate = 1.0;
128
140
  }
129
141
  break;
130
- case 'blocked':
131
- this._logger.sendTelemetryEvent(internals_1.TelemetryEvents.MediaPlayerSynchronizer.PlaybackRateChangeBlocked);
142
+ case "blocked":
143
+ this._logger.sendTelemetryEvent(internals_1.TelemetryEvents.MediaPlayerSynchronizer
144
+ .PlaybackRateChangeBlocked);
132
145
  break;
133
146
  }
134
147
  };
135
148
  // Register for coordinator state changes
136
- this._mediaSession.coordinator.on(MediaSessionExtensions_1.MediaSessionCoordinatorEvents.coordinatorstatechange, evt => this.emit(evt.type, evt));
149
+ this._mediaSession.coordinator.on(MediaSessionExtensions_1.MediaSessionCoordinatorEvents.coordinatorstatechange, (evt) => this.emit(evt.type, evt));
137
150
  // Register media session actions
138
151
  for (const action of MediaPlayerSynchronizer.SESSION_ACTIONS) {
139
152
  this._mediaSession.setActionHandler(action, (details) => __awaiter(this, void 0, void 0, function* () {
@@ -141,45 +154,60 @@ class MediaPlayerSynchronizer extends events_1.default {
141
154
  let error;
142
155
  try {
143
156
  switch (details.action) {
144
- case 'play':
145
- this._expectedPlaybackState = 'playing';
157
+ case "play":
158
+ this._expectedPlaybackState = "playing";
146
159
  if (this._player.paused) {
147
- this._logger.sendTelemetryEvent(internals_1.TelemetryEvents.MediaPlayerSynchronizer.PlayAction);
148
- if (typeof details.seekTime == 'number' && this._player.currentTime < 1.0) {
149
- this._logger.sendTelemetryEvent(internals_1.TelemetryEvents.MediaPlayerSynchronizer.SeekingPlayerToStartPosition, null, { position: details.seekTime });
150
- this._player.currentTime = details.seekTime;
160
+ this._logger.sendTelemetryEvent(internals_1.TelemetryEvents.MediaPlayerSynchronizer
161
+ .PlayAction);
162
+ if (typeof details.seekTime == "number" &&
163
+ this._player.currentTime < 1.0) {
164
+ this._logger.sendTelemetryEvent(internals_1.TelemetryEvents
165
+ .MediaPlayerSynchronizer
166
+ .SeekingPlayerToStartPosition, null, { position: details.seekTime });
167
+ this._player.currentTime =
168
+ details.seekTime;
151
169
  }
152
170
  // Reference: https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/play#exceptions
153
171
  yield this._player.play();
154
172
  }
155
173
  break;
156
- case 'pause':
157
- this._logger.sendTelemetryEvent(internals_1.TelemetryEvents.MediaPlayerSynchronizer.PauseAction);
158
- this._expectedPlaybackState = 'paused';
159
- if (typeof details.seekTime == 'number' && this._player.currentTime < 1.0) {
160
- this._logger.sendTelemetryEvent(internals_1.TelemetryEvents.MediaPlayerSynchronizer.SeekingPlayerToStartPosition, null, { position: details.seekTime });
161
- this._player.currentTime = details.seekTime;
174
+ case "pause":
175
+ this._logger.sendTelemetryEvent(internals_1.TelemetryEvents.MediaPlayerSynchronizer
176
+ .PauseAction);
177
+ this._expectedPlaybackState = "paused";
178
+ if (typeof details.seekTime == "number" &&
179
+ this._player.currentTime < 1.0) {
180
+ this._logger.sendTelemetryEvent(internals_1.TelemetryEvents.MediaPlayerSynchronizer
181
+ .SeekingPlayerToStartPosition, null, { position: details.seekTime });
182
+ this._player.currentTime =
183
+ details.seekTime;
162
184
  }
163
185
  this._player.pause();
164
186
  break;
165
- case 'seekto':
166
- if (typeof details.seekTime == 'number') {
167
- this._logger.sendTelemetryEvent(internals_1.TelemetryEvents.MediaPlayerSynchronizer.SeekToAction, null, { position: details.seekTime });
168
- this._player.currentTime = details.seekTime;
187
+ case "seekto":
188
+ if (typeof details.seekTime == "number") {
189
+ this._logger.sendTelemetryEvent(internals_1.TelemetryEvents.MediaPlayerSynchronizer
190
+ .SeekToAction, null, { position: details.seekTime });
191
+ this._player.currentTime =
192
+ details.seekTime;
169
193
  }
170
194
  break;
171
- case 'settrack':
172
- this._logger.sendTelemetryEvent(internals_1.TelemetryEvents.MediaPlayerSynchronizer.SetTrackAction);
173
- this._expectedPlaybackState = 'none';
174
- this._player.src = details.metadata.trackIdentifier;
195
+ case "settrack":
196
+ this._logger.sendTelemetryEvent(internals_1.TelemetryEvents.MediaPlayerSynchronizer
197
+ .SetTrackAction);
198
+ this._expectedPlaybackState = "none";
199
+ this._player.src =
200
+ details.metadata.trackIdentifier;
175
201
  this._player.load();
176
202
  break;
177
- case 'datachange':
178
- this._logger.sendTelemetryEvent(internals_1.TelemetryEvents.MediaPlayerSynchronizer.DataChangeAction);
203
+ case "datachange":
204
+ this._logger.sendTelemetryEvent(internals_1.TelemetryEvents.MediaPlayerSynchronizer
205
+ .DataChangeAction);
179
206
  break;
180
- case 'catchup':
181
- if (typeof details.seekTime == 'number') {
182
- this._logger.sendTelemetryEvent(internals_1.TelemetryEvents.MediaPlayerSynchronizer.CatchupAction, null, { position: details.seekTime });
207
+ case "catchup":
208
+ if (typeof details.seekTime == "number") {
209
+ this._logger.sendTelemetryEvent(internals_1.TelemetryEvents.MediaPlayerSynchronizer
210
+ .CatchupAction, null, { position: details.seekTime });
183
211
  this.catchupPlayer(details.seekTime);
184
212
  }
185
213
  break;
@@ -237,8 +265,8 @@ class MediaPlayerSynchronizer extends events_1.default {
237
265
  /**
238
266
  * Volume limiter used to temporarily reduce the videos volume when someone speaks in a meeting.
239
267
  */
240
- get volumeLimiter() {
241
- return this._volumeLimiter;
268
+ get volumeManager() {
269
+ return this._volumeManager;
242
270
  }
243
271
  /**
244
272
  * Registers a new event listener.
@@ -310,9 +338,11 @@ class MediaPlayerSynchronizer extends events_1.default {
310
338
  this._player.currentTime = seekTo;
311
339
  const suspension = this._seekSuspension;
312
340
  this._seekSuspension = undefined;
313
- this._logger.sendTelemetryEvent(internals_1.TelemetryEvents.MediaPlayerSynchronizer.EndSeekCalled, null, { position: seekTo });
341
+ this._logger.sendTelemetryEvent(internals_1.TelemetryEvents.MediaPlayerSynchronizer.EndSeekCalled, null, {
342
+ position: seekTo,
343
+ });
314
344
  suspension.end(seekTo);
315
- this.dispatchUserAction({ action: 'seekto', seekTime: seekTo });
345
+ this.dispatchUserAction({ action: "seekto", seekTime: seekTo });
316
346
  }
317
347
  /**
318
348
  * Tells the group to begin playing the current video.
@@ -323,9 +353,9 @@ class MediaPlayerSynchronizer extends events_1.default {
323
353
  */
324
354
  play() {
325
355
  this._logger.sendTelemetryEvent(internals_1.TelemetryEvents.MediaPlayerSynchronizer.PlayCalled);
326
- this._expectedPlaybackState = 'playing';
356
+ this._expectedPlaybackState = "playing";
327
357
  this._mediaSession.coordinator.play();
328
- this.dispatchUserAction({ action: 'play' });
358
+ this.dispatchUserAction({ action: "play" });
329
359
  }
330
360
  /**
331
361
  * Tells the group to pause the current video.
@@ -336,9 +366,9 @@ class MediaPlayerSynchronizer extends events_1.default {
336
366
  */
337
367
  pause() {
338
368
  this._logger.sendTelemetryEvent(internals_1.TelemetryEvents.MediaPlayerSynchronizer.PauseCalled);
339
- this._expectedPlaybackState = 'paused';
369
+ this._expectedPlaybackState = "paused";
340
370
  this._mediaSession.coordinator.pause();
341
- this.dispatchUserAction({ action: 'pause' });
371
+ this.dispatchUserAction({ action: "pause" });
342
372
  }
343
373
  /**
344
374
  * Tells the group to seek the current video to a new playback position.
@@ -354,7 +384,7 @@ class MediaPlayerSynchronizer extends events_1.default {
354
384
  this._player.currentTime = time;
355
385
  this._logger.sendTelemetryEvent(internals_1.TelemetryEvents.MediaPlayerSynchronizer.SeekToCalled, null, { position: time });
356
386
  this._mediaSession.coordinator.seekTo(time);
357
- this.dispatchUserAction({ action: 'seekto', seekTime: time });
387
+ this.dispatchUserAction({ action: "seekto", seekTime: time });
358
388
  }
359
389
  /**
360
390
  * Tells the group to change to a new track.
@@ -366,7 +396,7 @@ class MediaPlayerSynchronizer extends events_1.default {
366
396
  setTrack(track, waitPoints) {
367
397
  this._logger.sendTelemetryEvent(internals_1.TelemetryEvents.MediaPlayerSynchronizer.SetTrackCalled);
368
398
  this._mediaSession.coordinator.setTrack(track, waitPoints);
369
- this.dispatchUserAction({ action: 'settrack', metadata: track });
399
+ this.dispatchUserAction({ action: "settrack", metadata: track });
370
400
  }
371
401
  /**
372
402
  * Updates the current tracks data object.
@@ -379,22 +409,36 @@ class MediaPlayerSynchronizer extends events_1.default {
379
409
  this._logger.sendTelemetryEvent(internals_1.TelemetryEvents.MediaPlayerSynchronizer.SetTrackDataCalled);
380
410
  this._trackData = data;
381
411
  this._mediaSession.coordinator.setTrackData(data);
382
- this.dispatchUserAction({ action: 'datachange', data: data });
412
+ this.dispatchUserAction({ action: "datachange", data: data });
383
413
  }
384
414
  dispatchGroupAction(details, delay = false, error) {
385
415
  if (delay) {
386
- setTimeout(() => this.emit(MediaPlayerSynchronizerEvents.groupaction, { type: MediaPlayerSynchronizerEvents.groupaction, details: details, playerError: error }), 50);
416
+ setTimeout(() => this.emit(MediaPlayerSynchronizerEvents.groupaction, {
417
+ type: MediaPlayerSynchronizerEvents.groupaction,
418
+ details: details,
419
+ playerError: error,
420
+ }), 50);
387
421
  }
388
422
  else {
389
- this.emit(MediaPlayerSynchronizerEvents.groupaction, { type: MediaPlayerSynchronizerEvents.groupaction, details: details, error });
423
+ this.emit(MediaPlayerSynchronizerEvents.groupaction, {
424
+ type: MediaPlayerSynchronizerEvents.groupaction,
425
+ details: details,
426
+ error,
427
+ });
390
428
  }
391
429
  }
392
430
  dispatchUserAction(details, delay = false) {
393
431
  if (delay) {
394
- setTimeout(() => this.emit(MediaPlayerSynchronizerEvents.useraction, { type: MediaPlayerSynchronizerEvents.useraction, details: details }), 50);
432
+ setTimeout(() => this.emit(MediaPlayerSynchronizerEvents.useraction, {
433
+ type: MediaPlayerSynchronizerEvents.useraction,
434
+ details: details,
435
+ }), 50);
395
436
  }
396
437
  else {
397
- this.emit(MediaPlayerSynchronizerEvents.useraction, { type: MediaPlayerSynchronizerEvents.useraction, details: details });
438
+ this.emit(MediaPlayerSynchronizerEvents.useraction, {
439
+ type: MediaPlayerSynchronizerEvents.useraction,
440
+ details: details,
441
+ });
398
442
  }
399
443
  }
400
444
  catchupPlayer(time) {
@@ -404,6 +448,22 @@ class MediaPlayerSynchronizer extends events_1.default {
404
448
  }
405
449
  }
406
450
  exports.MediaPlayerSynchronizer = MediaPlayerSynchronizer;
407
- MediaPlayerSynchronizer.SESSION_ACTIONS = ['play', 'pause', 'seekto', 'settrack', 'datachange', 'catchup', 'wait'];
408
- MediaPlayerSynchronizer.PLAYER_EVENTS = ['playing', 'pause', 'ratechange', 'timeupdate', 'ended', 'loadedmetadata', 'blocked'];
451
+ MediaPlayerSynchronizer.SESSION_ACTIONS = [
452
+ "play",
453
+ "pause",
454
+ "seekto",
455
+ "settrack",
456
+ "datachange",
457
+ "catchup",
458
+ "wait",
459
+ ];
460
+ MediaPlayerSynchronizer.PLAYER_EVENTS = [
461
+ "playing",
462
+ "pause",
463
+ "ratechange",
464
+ "timeupdate",
465
+ "ended",
466
+ "loadedmetadata",
467
+ "blocked",
468
+ ];
409
469
  //# sourceMappingURL=MediaPlayerSynchronizer.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"MediaPlayerSynchronizer.js","sourceRoot":"","sources":["../src/MediaPlayerSynchronizer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"MediaPlayerSynchronizer.js","sourceRoot":"","sources":["../src/MediaPlayerSynchronizer.ts"],"names":[],"mappings":"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"}
@@ -2,7 +2,7 @@
2
2
  * Copyright (c) Microsoft Corporation. All rights reserved.
3
3
  * Licensed under the Microsoft Live Share SDK License.
4
4
  */
5
- import { ExtendedMediaSessionActionDetails } from './MediaSessionExtensions';
5
+ import { ExtendedMediaSessionActionDetails } from "./MediaSessionExtensions";
6
6
  /**
7
7
  * Base class for action throttlers.
8
8
  */
@@ -1 +1 @@
1
- {"version":3,"file":"MediaSessionActionThrottler.d.ts","sourceRoot":"","sources":["../src/MediaSessionActionThrottler.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,iCAAiC,EAAE,MAAM,0BAA0B,CAAC;AAE7E;;GAEG;AACH,8BAAsB,2BAA2B;aAC7B,SAAS,CAAC,OAAO,EAAE,iCAAiC,EAAE,OAAO,CAAC,EAAE,yBAAyB,GAAG,IAAI;CACnH"}
1
+ {"version":3,"file":"MediaSessionActionThrottler.d.ts","sourceRoot":"","sources":["../src/MediaSessionActionThrottler.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,iCAAiC,EAAE,MAAM,0BAA0B,CAAC;AAE7E;;GAEG;AACH,8BAAsB,2BAA2B;aAC7B,SAAS,CACrB,OAAO,EAAE,iCAAiC,EAC1C,OAAO,CAAC,EAAE,yBAAyB,GACpC,IAAI;CACV"}
@@ -1 +1 @@
1
- {"version":3,"file":"MediaSessionActionThrottler.js","sourceRoot":"","sources":["../src/MediaSessionActionThrottler.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAIH;;GAEG;AACH,MAAsB,2BAA2B;CAEhD;AAFD,kEAEC"}
1
+ {"version":3,"file":"MediaSessionActionThrottler.js","sourceRoot":"","sources":["../src/MediaSessionActionThrottler.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAIH;;GAEG;AACH,MAAsB,2BAA2B;CAKhD;AALD,kEAKC"}
@@ -1 +1 @@
1
- {"version":3,"file":"MediaSessionExtensions.d.ts","sourceRoot":"","sources":["../src/MediaSessionExtensions.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,WAAW,iCAAiC;IAC9C,SAAS,CAAC,EAAE,qBAAqB,CAAC;IAClC,GAAG,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC9B;AAED,oBAAY,4BAA4B,GAAG,QAAQ,GAAG,SAAS,GAAG,QAAQ,CAAC;AAE3E,oBAAY,6BAA6B;IACrC,sBAAsB,2BAA2B;IACjD,aAAa,kBAAkB;CAClC;AAED,oBAAY,0BAA0B,GAAG,kBAAkB,GAAI,UAAU,GAAG,MAAM,GAAG,SAAS,GAAG,YAAY,GAAG,SAAS,CAAC;AAE1H,oBAAY,iCAAiC,GAAG,yBAAyB,GAAG,WAAW,GAAG,SAAS,GAAG,OAAO,CAAC;AAE9G,MAAM,WAAW,qBAAsB,SAAQ,aAAa;IACxD,eAAe,EAAE,MAAM,CAAC;IACxB,UAAU,EAAE,OAAO,CAAC;CACvB;AAED,MAAM,WAAW,qBAAqB;IAClC,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,iCAAiC;IAC9C,MAAM,EAAE,0BAA0B,CAAC;IACnC,QAAQ,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;IAC1B,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,QAAQ,CAAC,EAAE,qBAAqB,GAAG,IAAI,CAAC;IACxC,UAAU,CAAC,EAAE,iCAAiC,GAAG,IAAI,CAAC;IACtD,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,OAAO,CAAC,EAAE,0BAA0B,GAAG,IAAI,CAAC;CAC/C"}
1
+ {"version":3,"file":"MediaSessionExtensions.d.ts","sourceRoot":"","sources":["../src/MediaSessionExtensions.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,WAAW,iCAAiC;IAC9C,SAAS,CAAC,EAAE,qBAAqB,CAAC;IAClC,GAAG,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC9B;AAED,oBAAY,4BAA4B,GAAG,QAAQ,GAAG,SAAS,GAAG,QAAQ,CAAC;AAE3E,oBAAY,6BAA6B;IACrC,sBAAsB,2BAA2B;IACjD,aAAa,kBAAkB;CAClC;AAED,oBAAY,0BAA0B,GAChC,kBAAkB,GAClB,UAAU,GACV,MAAM,GACN,SAAS,GACT,YAAY,GACZ,SAAS,CAAC;AAEhB,oBAAY,iCAAiC,GACvC,yBAAyB,GACzB,WAAW,GACX,SAAS,GACT,OAAO,CAAC;AAEd,MAAM,WAAW,qBAAsB,SAAQ,aAAa;IACxD,eAAe,EAAE,MAAM,CAAC;IACxB,UAAU,EAAE,OAAO,CAAC;CACvB;AAED,MAAM,WAAW,qBAAqB;IAClC,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,iCAAiC;IAC9C,MAAM,EAAE,0BAA0B,CAAC;IACnC,QAAQ,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;IAC1B,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,QAAQ,CAAC,EAAE,qBAAqB,GAAG,IAAI,CAAC;IACxC,UAAU,CAAC,EAAE,iCAAiC,GAAG,IAAI,CAAC;IACtD,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,OAAO,CAAC,EAAE,0BAA0B,GAAG,IAAI,CAAC;CAC/C"}
@@ -2,8 +2,8 @@
2
2
  * Copyright (c) Microsoft Corporation. All rights reserved.
3
3
  * Licensed under the Microsoft Live Share SDK License.
4
4
  */
5
- import { MediaSessionActionThrottler } from './MediaSessionActionThrottler';
6
- import { ExtendedMediaSessionActionDetails } from './MediaSessionExtensions';
5
+ import { MediaSessionActionThrottler } from "./MediaSessionActionThrottler";
6
+ import { ExtendedMediaSessionActionDetails } from "./MediaSessionExtensions";
7
7
  /**
8
8
  * A Throttler that passes through all actions but will only let an action be repeated once every 2 seconds.
9
9
  */
@@ -1 +1 @@
1
- {"version":3,"file":"RepeatedActionThrottler.d.ts","sourceRoot":"","sources":["../src/RepeatedActionThrottler.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,2BAA2B,EAAE,MAAM,+BAA+B,CAAC;AAC5E,OAAO,EAAE,iCAAiC,EAA8B,MAAM,0BAA0B,CAAC;AAEzG;;GAEG;AACH,qBAAa,uBAAwB,SAAQ,2BAA2B;IACpE,OAAO,CAAC,MAAM,CAAC,gBAAgB,CAAwE;IACvG,OAAO,CAAC,eAAe,CAA0B;IACjD,OAAO,CAAC,mBAAmB,CAAC,CAAS;IACrC,OAAO,CAAC,eAAe,CAAC,CAAS;IAEjC,IAAW,cAAc,IAAI,MAAM,CAElC;IAED,IAAW,cAAc,CAAC,KAAK,EAAE,MAAM,EAEtC;IAEM,SAAS,CAAC,OAAO,EAAE,iCAAiC,EAAE,OAAO,CAAC,EAAE,yBAAyB,GAAG,IAAI;IAqBvG,OAAO,CAAC,YAAY;CAQvB"}
1
+ {"version":3,"file":"RepeatedActionThrottler.d.ts","sourceRoot":"","sources":["../src/RepeatedActionThrottler.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,2BAA2B,EAAE,MAAM,+BAA+B,CAAC;AAC5E,OAAO,EACH,iCAAiC,EAEpC,MAAM,0BAA0B,CAAC;AAElC;;GAEG;AACH,qBAAa,uBAAwB,SAAQ,2BAA2B;IACpE,OAAO,CAAC,MAAM,CAAC,gBAAgB,CAK7B;IACF,OAAO,CAAC,eAAe,CAA0B;IACjD,OAAO,CAAC,mBAAmB,CAAC,CAAS;IACrC,OAAO,CAAC,eAAe,CAAC,CAAS;IAEjC,IAAW,cAAc,IAAI,MAAM,CAElC;IAED,IAAW,cAAc,CAAC,KAAK,EAAE,MAAM,EAEtC;IAEM,SAAS,CACZ,OAAO,EAAE,iCAAiC,EAC1C,OAAO,CAAC,EAAE,yBAAyB,GACpC,IAAI;IA4BP,OAAO,CAAC,YAAY;CAQvB"}
@@ -27,7 +27,8 @@ class RepeatedActionThrottler extends MediaSessionActionThrottler_1.MediaSession
27
27
  const changeKey = this.getChangeKey(details);
28
28
  const now = new Date().getTime();
29
29
  if (this._lastActionSent && changeKey == this._lastActionSent) {
30
- if (now - this._lastActionSentTime >= this._repeatInterval.milliseconds) {
30
+ if (now - this._lastActionSentTime >=
31
+ this._repeatInterval.milliseconds) {
31
32
  handler(details);
32
33
  this._lastActionSentTime = now;
33
34
  }
@@ -45,7 +46,7 @@ class RepeatedActionThrottler extends MediaSessionActionThrottler_1.MediaSession
45
46
  }
46
47
  getChangeKey(details) {
47
48
  switch (details.action) {
48
- case 'seekto':
49
+ case "seekto":
49
50
  return `seekto:${details.seekTime}`;
50
51
  default:
51
52
  return details.action;
@@ -53,5 +54,10 @@ class RepeatedActionThrottler extends MediaSessionActionThrottler_1.MediaSession
53
54
  }
54
55
  }
55
56
  exports.RepeatedActionThrottler = RepeatedActionThrottler;
56
- RepeatedActionThrottler.FILTERED_ACTIONS = ['play', 'pause', 'seekto', 'catchup'];
57
+ RepeatedActionThrottler.FILTERED_ACTIONS = [
58
+ "play",
59
+ "pause",
60
+ "seekto",
61
+ "catchup",
62
+ ];
57
63
  //# sourceMappingURL=RepeatedActionThrottler.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"RepeatedActionThrottler.js","sourceRoot":"","sources":["../src/RepeatedActionThrottler.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAEH,sDAAqD;AACrD,+EAA4E;AAG5E;;GAEG;AACH,MAAa,uBAAwB,SAAQ,yDAA2B;IAAxE;;QAEY,oBAAe,GAAG,IAAI,yBAAY,CAAC,IAAI,CAAC,CAAC;IAyCrD,CAAC;IArCG,IAAW,cAAc;QACrB,OAAO,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC;IACxC,CAAC;IAED,IAAW,cAAc,CAAC,KAAa;QACnC,IAAI,CAAC,eAAe,CAAC,OAAO,GAAG,KAAK,CAAC;IACzC,CAAC;IAEM,SAAS,CAAC,OAA0C,EAAE,OAAmC;QAC5F,IAAI,OAAO,EAAE;YACT,IAAI,uBAAuB,CAAC,gBAAgB,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE;gBACvE,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;gBAC7C,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC;gBACjC,IAAI,IAAI,CAAC,eAAe,IAAI,SAAS,IAAI,IAAI,CAAC,eAAe,EAAE;oBAC3D,IAAI,GAAG,GAAG,IAAI,CAAC,mBAAoB,IAAI,IAAI,CAAC,eAAe,CAAC,YAAY,EAAE;wBACtE,OAAO,CAAC,OAAoC,CAAC,CAAC;wBAC9C,IAAI,CAAC,mBAAmB,GAAG,GAAG,CAAC;qBAClC;iBACJ;qBAAM;oBACH,OAAO,CAAC,OAAoC,CAAC,CAAC;oBAC9C,IAAI,CAAC,eAAe,GAAG,SAAS,CAAC;oBACjC,IAAI,CAAC,mBAAmB,GAAG,GAAG,CAAC;iBAClC;aACJ;iBAAM;gBACH,OAAO,CAAC,OAAoC,CAAC,CAAC;aACjD;SACJ;IACL,CAAC;IAEO,YAAY,CAAC,OAA0C;QAC3D,QAAQ,OAAO,CAAC,MAAM,EAAE;YACpB,KAAK,QAAQ;gBACT,OAAO,UAAU,OAAO,CAAC,QAAQ,EAAE,CAAC;YACxC;gBACI,OAAO,OAAO,CAAC,MAAM,CAAC;SAC7B;IACL,CAAC;;AA1CL,0DA2CC;AA1CkB,wCAAgB,GAAiC,CAAC,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC"}
1
+ {"version":3,"file":"RepeatedActionThrottler.js","sourceRoot":"","sources":["../src/RepeatedActionThrottler.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAEH,sDAAqD;AACrD,+EAA4E;AAM5E;;GAEG;AACH,MAAa,uBAAwB,SAAQ,yDAA2B;IAAxE;;QAOY,oBAAe,GAAG,IAAI,yBAAY,CAAC,IAAI,CAAC,CAAC;IAmDrD,CAAC;IA/CG,IAAW,cAAc;QACrB,OAAO,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC;IACxC,CAAC;IAED,IAAW,cAAc,CAAC,KAAa;QACnC,IAAI,CAAC,eAAe,CAAC,OAAO,GAAG,KAAK,CAAC;IACzC,CAAC;IAEM,SAAS,CACZ,OAA0C,EAC1C,OAAmC;QAEnC,IAAI,OAAO,EAAE;YACT,IACI,uBAAuB,CAAC,gBAAgB,CAAC,OAAO,CAC5C,OAAO,CAAC,MAAM,CACjB,IAAI,CAAC,EACR;gBACE,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;gBAC7C,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC;gBACjC,IAAI,IAAI,CAAC,eAAe,IAAI,SAAS,IAAI,IAAI,CAAC,eAAe,EAAE;oBAC3D,IACI,GAAG,GAAG,IAAI,CAAC,mBAAoB;wBAC/B,IAAI,CAAC,eAAe,CAAC,YAAY,EACnC;wBACE,OAAO,CAAC,OAAoC,CAAC,CAAC;wBAC9C,IAAI,CAAC,mBAAmB,GAAG,GAAG,CAAC;qBAClC;iBACJ;qBAAM;oBACH,OAAO,CAAC,OAAoC,CAAC,CAAC;oBAC9C,IAAI,CAAC,eAAe,GAAG,SAAS,CAAC;oBACjC,IAAI,CAAC,mBAAmB,GAAG,GAAG,CAAC;iBAClC;aACJ;iBAAM;gBACH,OAAO,CAAC,OAAoC,CAAC,CAAC;aACjD;SACJ;IACL,CAAC;IAEO,YAAY,CAAC,OAA0C;QAC3D,QAAQ,OAAO,CAAC,MAAM,EAAE;YACpB,KAAK,QAAQ;gBACT,OAAO,UAAU,OAAO,CAAC,QAAQ,EAAE,CAAC;YACxC;gBACI,OAAO,OAAO,CAAC,MAAM,CAAC;SAC7B;IACL,CAAC;;AAzDL,0DA0DC;AAzDkB,wCAAgB,GAAiC;IAC5D,MAAM;IACN,OAAO;IACP,QAAQ;IACR,SAAS;CACZ,CAAC"}
@@ -0,0 +1,84 @@
1
+ /**
2
+ * Copyright (c) Microsoft Corporation. All rights reserved.
3
+ * Licensed under the Microsoft Live Share SDK License.
4
+ */
5
+ import { IMediaPlayer } from "./IMediaPlayer";
6
+ export declare enum LimitLevelType {
7
+ fixed = 0,
8
+ percentage = 1
9
+ }
10
+ /**
11
+ * Smooth audio level changes when volume is modified, or if volume limiting has started/ended.
12
+ */
13
+ export declare class VolumeManager {
14
+ private readonly _player;
15
+ private readonly _volumeChangeDuration;
16
+ private _volume;
17
+ private _isLimiting;
18
+ private _limitLevel;
19
+ private _limitLevelType;
20
+ private _startTime;
21
+ private _startVolume;
22
+ private _running;
23
+ constructor(player: IMediaPlayer);
24
+ /**
25
+ * The selected volume.
26
+ *
27
+ * @remarks
28
+ * Expressed as a value between 0.0 and 1.0. The default value is 1.0.
29
+ * Can be used for things like volume sliders.
30
+ *
31
+ * Does not return the current volume if limiting is enabled, but the desired volume.
32
+ */
33
+ get volume(): number;
34
+ set volume(value: number);
35
+ /**
36
+ * Target level to lower volume to.
37
+ *
38
+ * @remarks
39
+ * Expressed as a value between 0.0 and 1.0. The value is applied based upon the configured
40
+ * `levelType`. The default value is 0.1.
41
+ *
42
+ * For a level type of `LevelType.fixed` the value is the exact level the volume will be
43
+ * lowered to. The default value of 0.1 would cause the volume to be lowered to 0.1.
44
+ *
45
+ * For a level type of `LevelType.percentage` the value is the percentage by which the volume
46
+ * level should be lowered to. The default value of 0.1 would cause the volume to be lowered
47
+ * to 10% of its starting value.
48
+ */
49
+ get limitLevel(): number;
50
+ set limitLevel(value: number);
51
+ /**
52
+ * The type of level represented by the `limitLevel` property.
53
+ */
54
+ get limitLevelType(): LimitLevelType;
55
+ set limitLevelType(value: LimitLevelType);
56
+ /**
57
+ * Amount of time, in seconds, it should take to change the volume up or down to the desired level.
58
+ *
59
+ * @remarks
60
+ * Default `volumeChangeDuration` is 0.5 seconds.
61
+ */
62
+ get volumeChangeDuration(): number;
63
+ set volumeChangeDuration(value: number);
64
+ /**
65
+ * Whether or not volume limiting is currently enabled.
66
+ */
67
+ get isLimiting(): boolean;
68
+ /**
69
+ * Limits volume based on `limitLevel` and `limitLevelType` properties.
70
+ * @see `limitLevel`
71
+ * @see `limitLevelType`
72
+ */
73
+ startLimiting(): void;
74
+ /**
75
+ * Disables volume limit.
76
+ */
77
+ stopLimiting(): void;
78
+ private startAdjusting;
79
+ private scheduleAnimationFrame;
80
+ private computeInterpolatedVolume;
81
+ private computeTargetVolume;
82
+ private millisSinceVolumeChangeStart;
83
+ }
84
+ //# sourceMappingURL=VolumeManager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"VolumeManager.d.ts","sourceRoot":"","sources":["../src/VolumeManager.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE9C,oBAAY,cAAc;IACtB,KAAK,IAAA;IACL,UAAU,IAAA;CACb;AAED;;GAEG;AACH,qBAAa,aAAa;IACtB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAe;IACvC,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAAyB;IAG/D,OAAO,CAAC,OAAO,CAAO;IACtB,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,WAAW,CAAO;IAC1B,OAAO,CAAC,eAAe,CAAwC;IAC/D,OAAO,CAAC,UAAU,CAAK;IACvB,OAAO,CAAC,YAAY,CAAK;IACzB,OAAO,CAAC,QAAQ,CAAS;gBAEb,MAAM,EAAE,YAAY;IAKhC;;;;;;;;OAQG;IACH,IAAW,MAAM,IAAI,MAAM,CAE1B;IAED,IAAW,MAAM,CAAC,KAAK,EAAE,MAAM,EAS9B;IAED;;;;;;;;;;;;;OAaG;IACH,IAAW,UAAU,IAAI,MAAM,CAE9B;IAED,IAAW,UAAU,CAAC,KAAK,EAAE,MAAM,EAQlC;IAED;;OAEG;IACH,IAAW,cAAc,IAAI,cAAc,CAE1C;IAED,IAAW,cAAc,CAAC,KAAK,EAAE,cAAc,EAE9C;IAED;;;;;OAKG;IACH,IAAW,oBAAoB,IAAI,MAAM,CAExC;IAED,IAAW,oBAAoB,CAAC,KAAK,EAAE,MAAM,EAE5C;IAED;;OAEG;IACH,IAAW,UAAU,IAAI,OAAO,CAE/B;IAED;;;;OAIG;IACI,aAAa,IAAI,IAAI;IAK5B;;OAEG;IACI,YAAY,IAAI,IAAI;IAK3B,OAAO,CAAC,cAAc;IAuBtB,OAAO,CAAC,sBAAsB;IAQ9B,OAAO,CAAC,yBAAyB;IASjC,OAAO,CAAC,mBAAmB;IAgB3B,OAAO,CAAC,4BAA4B;CAIvC"}