@capgo/capacitor-youtube-player 8.2.0 → 8.2.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/plugin.js CHANGED
@@ -202,7 +202,7 @@ var capacitorYoutubePlayer = (function (exports, core) {
202
202
  return Promise.resolve(playerReady);
203
203
  }
204
204
  }
205
- async destroy(playerId) {
205
+ async destroy({ playerId }) {
206
206
  this.playerLogger.log(`player "${playerId}" -> destroy`);
207
207
  this.players[playerId].destroy();
208
208
  return Promise.resolve({ result: { method: 'destroy', value: true } });
@@ -212,27 +212,27 @@ var capacitorYoutubePlayer = (function (exports, core) {
212
212
  // Stops and cancels loading of the current video. This function should be reserved for rare situations when you know that the user will not be watching
213
213
  // additional video in the player. If your intent is to pause the video, you should just call the pauseVideo function. If you want to change the video
214
214
  // that the player is playing, you can call one of the queueing functions without calling stopVideo first.
215
- async stopVideo(playerId) {
215
+ async stopVideo({ playerId }) {
216
216
  this.playerLogger.log(`player "${playerId}" -> stopVideo`);
217
217
  this.players[playerId].stopVideo();
218
218
  return Promise.resolve({ result: { method: 'stopVideo', value: true } });
219
219
  }
220
220
  // Plays the currently cued/loaded video. The final player state after this function executes will be playing (1).
221
- async playVideo(playerId) {
221
+ async playVideo({ playerId }) {
222
222
  this.playerLogger.log(`player "${playerId}" -> playVideo`);
223
223
  this.players[playerId].playVideo();
224
224
  return Promise.resolve({ result: { method: 'playVideo', value: true } });
225
225
  }
226
226
  // Pauses the currently playing video. The final player state after this function executes will be paused (2) unless the player is in the ended (0)
227
227
  // state when the function is called, in which case the player state will not change.
228
- async pauseVideo(playerId) {
228
+ async pauseVideo({ playerId }) {
229
229
  this.playerLogger.log(`player "${playerId}" -> pauseVideo`);
230
230
  this.players[playerId].pauseVideo();
231
231
  return Promise.resolve({ result: { method: 'pauseVideo', value: true } });
232
232
  }
233
233
  // Seeks to a specified time in the video. If the player is paused when the function is called, it will remain paused. If the function is called from
234
234
  // another state (playing, video cued, etc.), the player will play the video.
235
- async seekTo(playerId, seconds, allowSeekAhead) {
235
+ async seekTo({ playerId, seconds, allowSeekAhead, }) {
236
236
  this.playerLogger.log(`player "${playerId}" -> seekTo ${seconds} seconds`);
237
237
  this.players[playerId].seekTo(seconds, allowSeekAhead);
238
238
  return Promise.resolve({
@@ -240,23 +240,23 @@ var capacitorYoutubePlayer = (function (exports, core) {
240
240
  });
241
241
  }
242
242
  // Loads and plays the specified video.
243
- async loadVideoById(playerId, options) {
243
+ async loadVideoById({ playerId, options, }) {
244
244
  this.playerLogger.log(`player "${playerId}" -> loadVideoById with options ${options}`);
245
245
  this.players[playerId].loadVideoById(options);
246
246
  return Promise.resolve({ result: { method: 'loadVideoById', value: true, options: options } });
247
247
  }
248
248
  // Loads the specified video's thumbnail and prepares the player to play the video. The player does not request the FLV until playVideo() or seekTo() is called.
249
- async cueVideoById(playerId, options) {
249
+ async cueVideoById({ playerId, options, }) {
250
250
  this.playerLogger.log(`player "${playerId}" -> cueVideoById with options ${options}`);
251
251
  this.players[playerId].cueVideoById(options);
252
252
  return Promise.resolve({ result: { method: 'cueVideoById', value: true, options: options } });
253
253
  }
254
- async loadVideoByUrl(playerId, options) {
254
+ async loadVideoByUrl({ playerId, options, }) {
255
255
  this.playerLogger.log(`player "${playerId}" -> loadVideoByUrl with options ${options}`);
256
256
  this.players[playerId].loadVideoByUrl(options);
257
257
  return Promise.resolve({ result: { method: 'loadVideoByUrl', value: true, options: options } });
258
258
  }
259
- async cueVideoByUrl(playerId, options) {
259
+ async cueVideoByUrl({ playerId, options, }) {
260
260
  this.playerLogger.log(`player "${playerId}" -> cueVideoByUrl with options ${options}`);
261
261
  this.players[playerId].cueVideoByUrl(options);
262
262
  return Promise.resolve({ result: { method: 'cueVideoByUrl', value: true, options: options } });
@@ -264,12 +264,12 @@ var capacitorYoutubePlayer = (function (exports, core) {
264
264
  /*********/
265
265
  // Methods for playing playlist.
266
266
  /*********/
267
- async cuePlaylist(playerId, playlistOptions) {
267
+ async cuePlaylist({ playerId, playlistOptions, }) {
268
268
  this.playerLogger.log(`player "${playerId}" -> cuePlaylist with options ${JSON.stringify(playlistOptions)}`);
269
269
  this.players[playerId].cuePlaylist(playlistOptions);
270
270
  return Promise.resolve({ result: { method: 'cuePlaylist', value: true } });
271
271
  }
272
- async loadPlaylist(playerId, playlistOptions) {
272
+ async loadPlaylist({ playerId, playlistOptions, }) {
273
273
  this.playerLogger.log(`player "${playerId}" -> loadPlaylist with options ${playlistOptions}`);
274
274
  this.players[playerId].loadPlaylist(playlistOptions);
275
275
  return Promise.resolve({ result: { method: 'loadPlaylist', value: true } });
@@ -277,33 +277,33 @@ var capacitorYoutubePlayer = (function (exports, core) {
277
277
  /*********/
278
278
  // Methods for playing video in playlist.
279
279
  /*********/
280
- async nextVideo(playerId) {
280
+ async nextVideo({ playerId }) {
281
281
  this.playerLogger.log(`player "${playerId}" -> nextVideo`);
282
282
  this.players[playerId].nextVideo();
283
283
  return Promise.resolve({ result: { method: 'nextVideo', value: true } });
284
284
  }
285
- async previousVideo(playerId) {
285
+ async previousVideo({ playerId }) {
286
286
  this.playerLogger.log(`player "${playerId}" -> previousVideo`);
287
287
  this.players[playerId].previousVideo();
288
288
  return Promise.resolve({ result: { method: 'previousVideo', value: true } });
289
289
  }
290
- async playVideoAt(playerId, index) {
290
+ async playVideoAt({ playerId, index }) {
291
291
  this.playerLogger.log(`player "${playerId}" -> playVideoAt`);
292
292
  this.players[playerId].playVideoAt(index);
293
293
  return Promise.resolve({ result: { method: 'playVideoAt', value: true } });
294
294
  }
295
295
  /*********/
296
296
  // Methods for adjusting the playback speed.
297
- async getPlaybackRate(playerId) {
297
+ async getPlaybackRate({ playerId }) {
298
298
  this.playerLogger.log(`player "${playerId}" -> getPlaybackRate`);
299
299
  return Promise.resolve({ result: { method: 'getPlaybackRate', value: this.players[playerId].getPlaybackRate() } });
300
300
  }
301
- async setPlaybackRate(playerId, rate) {
301
+ async setPlaybackRate({ playerId, suggestedRate, }) {
302
302
  this.playerLogger.log(`player "${playerId}" -> setPlaybackRate`);
303
- this.players[playerId].setPlaybackRate(rate);
303
+ this.players[playerId].setPlaybackRate(suggestedRate);
304
304
  return Promise.resolve({ result: { method: 'setPlaybackRate', value: true } });
305
305
  }
306
- async getAvailablePlaybackRates(playerId) {
306
+ async getAvailablePlaybackRates({ playerId, }) {
307
307
  this.playerLogger.log(`player -> getAvailablePlaybackRates`);
308
308
  return Promise.resolve({
309
309
  result: { method: 'getAvailablePlaybackRates', value: this.players[playerId].getAvailablePlaybackRates() },
@@ -313,44 +313,44 @@ var capacitorYoutubePlayer = (function (exports, core) {
313
313
  /*********/
314
314
  // Methods for playlist playback settings
315
315
  /*********/
316
- async setLoop(playerId, loop) {
316
+ async setLoop({ playerId, loopPlaylists }) {
317
317
  this.playerLogger.log(`player "${playerId}" -> setLoop`);
318
- this.players[playerId].setLoop(loop);
318
+ this.players[playerId].setLoop(loopPlaylists);
319
319
  return Promise.resolve({ result: { method: 'setLoop', value: true } });
320
320
  }
321
- async setShuffle(playerId, shuffle) {
321
+ async setShuffle({ playerId, shufflePlaylist, }) {
322
322
  this.playerLogger.log(`player "${playerId}" -> setShuffle`);
323
- this.players[playerId].setShuffle(shuffle);
323
+ this.players[playerId].setShuffle(shufflePlaylist);
324
324
  return Promise.resolve({ result: { method: 'setShuffle', value: true } });
325
325
  }
326
326
  /*********/
327
327
  // Methods changing the player volume.
328
328
  /*********/
329
329
  // Mutes the player.
330
- async mute(playerId) {
330
+ async mute({ playerId }) {
331
331
  this.playerLogger.log(`player "${playerId}" -> mute`);
332
332
  this.players[playerId].mute();
333
333
  return Promise.resolve({ result: { method: 'mute', value: true } });
334
334
  }
335
335
  // Unmutes the player.
336
- async unMute(playerId) {
336
+ async unMute({ playerId }) {
337
337
  this.playerLogger.log(`player "${playerId}" -> unMute`);
338
338
  this.players[playerId].unMute();
339
339
  return Promise.resolve({ result: { method: 'unMute', value: true } });
340
340
  }
341
341
  // Returns true if the player is muted, false if not.
342
- async isMuted(playerId) {
342
+ async isMuted({ playerId }) {
343
343
  this.playerLogger.log(`player "${playerId}" -> isMuted`);
344
344
  return Promise.resolve({ result: { method: 'isMuted', value: this.players[playerId].isMuted() } });
345
345
  }
346
346
  // Sets the volume. Accepts an integer between 0 and 100.
347
- async setVolume(playerId, volume) {
347
+ async setVolume({ playerId, volume }) {
348
348
  this.playerLogger.log(`player "${playerId}" -> setVolume ${volume}`);
349
349
  this.players[playerId].setVolume(volume);
350
350
  return Promise.resolve({ result: { method: 'setVolume', value: volume } });
351
351
  }
352
352
  // Returns the player's current volume, an integer between 0 and 100. Note that getVolume() will return the volume even if the player is muted.
353
- async getVolume(playerId) {
353
+ async getVolume({ playerId }) {
354
354
  this.playerLogger.log(`player "${playerId}" -> getVolume`);
355
355
  return Promise.resolve({ result: { method: 'getVolume', value: this.players[playerId].getVolume() } });
356
356
  }
@@ -358,7 +358,7 @@ var capacitorYoutubePlayer = (function (exports, core) {
358
358
  // Methods setting the player size.
359
359
  /*********/
360
360
  // Sets the size in pixels of the <iframe> that contains the player.
361
- async setSize(playerId, width, height) {
361
+ async setSize({ playerId, width, height, }) {
362
362
  this.playerLogger.log(`player "${playerId}" -> setSize width: ${width} height: ${height}`);
363
363
  this.players[playerId].setSize(width, height);
364
364
  return Promise.resolve({ result: { method: 'setSize', value: { width: width, height: height } } });
@@ -368,7 +368,7 @@ var capacitorYoutubePlayer = (function (exports, core) {
368
368
  /*********/
369
369
  // Returns a number between 0 and 1 that specifies the percentage of the video that the player shows as buffered.
370
370
  // This method returns a more reliable number than the now-deprecated getVideoBytesLoaded and getVideoBytesTotal methods.
371
- async getVideoLoadedFraction(playerId) {
371
+ async getVideoLoadedFraction({ playerId }) {
372
372
  this.playerLogger.log(`player "${playerId}" -> getVideoLoadedFraction`);
373
373
  return Promise.resolve({
374
374
  result: { method: 'getVideoLoadedFraction', value: this.players[playerId].getVideoLoadedFraction() },
@@ -381,7 +381,7 @@ var capacitorYoutubePlayer = (function (exports, core) {
381
381
  // 2 – paused
382
382
  // 3 – buffering
383
383
  // 5 – video cued
384
- async getPlayerState(playerId) {
384
+ async getPlayerState({ playerId }) {
385
385
  this.playerLogger.log(`player "${playerId}" -> getPlayerState`);
386
386
  return Promise.resolve({ result: { method: 'getPlayerState', value: this.players[playerId].getPlayerState() } });
387
387
  }
@@ -390,11 +390,11 @@ var capacitorYoutubePlayer = (function (exports, core) {
390
390
  return Promise.resolve({ result: { method: 'getAllPlayersEventsState', value: this.playersEventsState } });
391
391
  }
392
392
  // Returns the elapsed time in seconds since the video started playing.
393
- async getCurrentTime(playerId) {
393
+ async getCurrentTime({ playerId }) {
394
394
  this.playerLogger.log(`player "${playerId}" -> getCurrentTime`);
395
395
  return Promise.resolve({ result: { method: 'getCurrentTime', value: this.players[playerId].getCurrentTime() } });
396
396
  }
397
- async toggleFullScreen(playerId, isFullScreen) {
397
+ async toggleFullScreen({ playerId, isFullScreen, }) {
398
398
  this.playerLogger.log(`player "${playerId}" -> toggleFullScreen`);
399
399
  let { height, width } = this.defaultSizes;
400
400
  if (!isFullScreen) {
@@ -407,18 +407,18 @@ var capacitorYoutubePlayer = (function (exports, core) {
407
407
  /*********/
408
408
  // Methods playback quality.
409
409
  /*********/
410
- async getPlaybackQuality(playerId) {
410
+ async getPlaybackQuality({ playerId, }) {
411
411
  this.playerLogger.log(`player "${playerId}" -> getPlaybackQuality`);
412
412
  return Promise.resolve({
413
413
  result: { method: 'getPlaybackQuality', value: this.players[playerId].getPlaybackQuality() },
414
414
  });
415
415
  }
416
- async setPlaybackQuality(playerId, playbackQuality) {
416
+ async setPlaybackQuality({ playerId, suggestedQuality, }) {
417
417
  this.playerLogger.log(`player "${playerId}" -> setPlaybackQuality`);
418
- this.players[playerId].setPlaybackQuality(playbackQuality);
418
+ this.players[playerId].setPlaybackQuality(suggestedQuality);
419
419
  return Promise.resolve({ result: { method: 'setPlaybackQuality', value: true } });
420
420
  }
421
- async getAvailableQualityLevels(playerId) {
421
+ async getAvailableQualityLevels({ playerId, }) {
422
422
  this.playerLogger.log(`player "${playerId}" -> getAvailableQualityLevels`);
423
423
  return Promise.resolve({
424
424
  result: { method: 'getAvailableQualityLevels', value: this.players[playerId].getAvailableQualityLevels() },
@@ -427,15 +427,15 @@ var capacitorYoutubePlayer = (function (exports, core) {
427
427
  /*********/
428
428
  // Methods for retrieving video information.
429
429
  /*********/
430
- async getDuration(playerId) {
430
+ async getDuration({ playerId }) {
431
431
  this.playerLogger.log(`player "${playerId}" -> getDuration`);
432
432
  return Promise.resolve({ result: { method: 'getDuration', value: this.players[playerId].getDuration() } });
433
433
  }
434
- async getVideoUrl(playerId) {
434
+ async getVideoUrl({ playerId }) {
435
435
  this.playerLogger.log(`player "${playerId}" -> getVideoUrl`);
436
436
  return Promise.resolve({ result: { method: 'getVideoUrl', value: this.players[playerId].getVideoUrl() } });
437
437
  }
438
- async getVideoEmbedCode(playerId) {
438
+ async getVideoEmbedCode({ playerId }) {
439
439
  this.playerLogger.log(`player "${playerId}" -> getVideoEmbedCode`);
440
440
  return Promise.resolve({
441
441
  result: { method: 'getVideoEmbedCode', value: this.players[playerId].getVideoEmbedCode() },
@@ -444,11 +444,11 @@ var capacitorYoutubePlayer = (function (exports, core) {
444
444
  /*********/
445
445
  // Methods for retrieving playlist information.
446
446
  /*********/
447
- async getPlaylist(playerId) {
447
+ async getPlaylist({ playerId }) {
448
448
  this.playerLogger.log(`player "${playerId}" -> getPlaylist`);
449
449
  return Promise.resolve({ result: { method: 'getPlaylist', value: this.players[playerId].getPlaylist() } });
450
450
  }
451
- async getPlaylistIndex(playerId) {
451
+ async getPlaylistIndex({ playerId }) {
452
452
  this.playerLogger.log(`player "${playerId}" -> getPlaylistIndex`);
453
453
  return Promise.resolve({
454
454
  result: { method: 'getPlaylistIndex', value: this.players[playerId].getPlaylistIndex() },
@@ -457,17 +457,17 @@ var capacitorYoutubePlayer = (function (exports, core) {
457
457
  /*********/
458
458
  // Methods accessing and modifying DOM nodes.
459
459
  /*********/
460
- async getIframe(playerId) {
460
+ async getIframe({ playerId }) {
461
461
  this.playerLogger.log(`player "${playerId}" -> getIframe`);
462
462
  return Promise.resolve({ result: { method: 'getIframe', value: this.players[playerId].getIframe() } });
463
463
  }
464
464
  /*********/
465
465
  // Player event listeners.
466
- addEventListener(playerId, eventName, listener) {
466
+ addEventListener({ playerId, eventName, listener, }) {
467
467
  this.playerLogger.log(`player "${playerId}" -> addEventListener "${eventName}"`);
468
468
  this.players[playerId].addEventListener(eventName, listener);
469
469
  }
470
- removeEventListener(playerId, eventName, listener) {
470
+ removeEventListener({ playerId, eventName, listener, }) {
471
471
  this.playerLogger.log(`player "${playerId}" -> removeEventListener "${eventName}"`);
472
472
  this.players[playerId].removeEventListener(eventName, listener);
473
473
  }
@@ -1 +1 @@
1
- {"version":3,"file":"plugin.js","sources":["esm/index.js","esm/log.js","esm/web.js"],"sourcesContent":["import { registerPlugin } from '@capacitor/core';\nconst YoutubePlayer = registerPlugin('YoutubePlayer', {\n web: () => import('./web').then((m) => new m.YoutubePlayerPluginWeb()),\n});\nexport * from './definitions';\nexport { YoutubePlayer };\n//# sourceMappingURL=index.js.map","export class Log {\n constructor(logEnabled = false) {\n this.logEnabled = false;\n this.logEnabled = logEnabled;\n }\n log(msg, ...supportingDetails) {\n this.emitLogMessage('log', msg, supportingDetails);\n }\n debug(msg, ...supportingDetails) {\n this.emitLogMessage('debug', msg, supportingDetails);\n }\n warn(msg, ...supportingDetails) {\n this.emitLogMessage('warn', msg, supportingDetails);\n }\n error(msg, ...supportingDetails) {\n this.emitLogMessage('error', msg, supportingDetails);\n }\n info(msg, ...supportingDetails) {\n this.emitLogMessage('info', msg, supportingDetails);\n }\n emitLogMessage(msgType, msg, supportingDetails) {\n if (this.logEnabled) {\n supportingDetails.length > 0\n ? console[msgType]('[Youtube Player Plugin Web]: ' + msg, supportingDetails)\n : console[msgType]('[Youtube Player Plugin Web]: ' + msg);\n }\n }\n}\n//# sourceMappingURL=log.js.map","import { WebPlugin } from '@capacitor/core';\nimport { Log } from './log';\n// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\nexport function YT() {\n return window['YT'];\n}\n// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\nexport function Player() {\n return YT().Player;\n}\n// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\nexport function PlayerState() {\n return YT().PlayerState;\n}\nexport class YoutubePlayerPluginWeb extends WebPlugin {\n constructor() {\n super();\n this.players = [];\n this.playersEventsState = new Map();\n this.playerApiLoaded = false;\n this.defaultSizes = {\n height: 270,\n width: 367,\n };\n }\n setCookies(cookies) {\n this.playerLogger.log('setCookies', { cookies });\n try {\n // Parse and set cookies for the YouTube domain\n const cookiePairs = cookies.split(';').map((c) => c.trim());\n cookiePairs.forEach((pair) => {\n if (pair) {\n // Set cookie with appropriate domain for YouTube\n // Note: This sets cookies for the current domain. For cross-domain cookies,\n // the user must handle this at a higher level (e.g., through their backend)\n document.cookie = pair + '; path=/; SameSite=None; Secure';\n this.playerLogger.log('Cookie set:', pair);\n }\n });\n }\n catch (error) {\n this.playerLogger.error('Error setting cookies:', error);\n }\n }\n async loadPlayerApi(privacyEnhanced = false) {\n this.playerLogger.log('loadPlayerApi', { privacyEnhanced });\n return await new Promise((resolve) => {\n window.onYouTubeIframeAPIReady = () => {\n this.playerLogger.log('onYouTubeIframeAPIReady');\n this.playerApiLoaded = true;\n resolve(true);\n };\n // This code loads the IFrame Player API code asynchronously.\n const tag = document.createElement('script');\n tag.type = 'text/javascript';\n // Use privacy-enhanced domain if requested (youtube-nocookie.com for GDPR compliance)\n tag.src = privacyEnhanced ? 'https://www.youtube-nocookie.com/iframe_api' : 'https://www.youtube.com/iframe_api';\n const firstScriptTag = document.getElementsByTagName('script')[0];\n firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);\n });\n }\n checkSize(options) {\n const playerSize = {\n height: options.playerSize.height || this.defaultSizes.height,\n width: options.playerSize.width || this.defaultSizes.width,\n };\n if (playerSize.height > window.innerHeight)\n playerSize.height = window.innerHeight;\n if (playerSize.width > window.innerWidth)\n playerSize.width = window.innerWidth;\n return playerSize;\n }\n // This function creates an <iframe> (and YouTube player)\n // after the API code downloads.\n async createPlayer(options) {\n this.playerLogger.log('createPlayer');\n const playerSize = this.checkSize(options);\n return await new Promise((resolve) => {\n const player = Player();\n this.players[options.playerId] = new player(options.playerId, Object.assign(Object.assign({ playerVars: options.playerVars }, playerSize), { fullscreen: options.fullscreen, videoId: options.videoId, events: {\n // The API will call this function when the video player is ready.\n onReady: (event) => {\n var _a;\n this.playerLogger.log(`player \"${options.playerId}\" -> onPlayerReady`);\n const state = { events: { onReady: { text: 'onReady', value: true } } };\n this.playersEventsState.set(options.playerId, state);\n if (((_a = options === null || options === void 0 ? void 0 : options.playerVars) === null || _a === void 0 ? void 0 : _a.autoplay) === 1) {\n event.target.mute();\n event.target.playVideo();\n }\n return resolve({ playerReady: true, player: this.players[options.playerId] });\n },\n onStateChange: (event) => {\n this.playerLogger.log(`player \"${options.playerId}\" -> onPlayerStateChange`);\n switch (event.data) {\n case PlayerState().PLAYING:\n this.playerLogger.log(`player \"${options.playerId}\" -> playing`);\n this.playersEventsState.get(options.playerId).events.onStateChange = {\n text: 'playing',\n value: PlayerState().PLAYING,\n };\n if (options.fullscreen) {\n const iframe = document.getElementById(options.playerId);\n const requestFullScreen = iframe === null || iframe === void 0 ? void 0 : iframe.requestFullscreen;\n if (requestFullScreen) {\n requestFullScreen.bind(iframe)();\n }\n }\n break;\n case PlayerState().PAUSED:\n this.playerLogger.log(`player \"${options.playerId}\" -> paused`);\n this.playersEventsState.get(options.playerId).events.onStateChange = {\n text: 'paused',\n value: PlayerState().PAUSED,\n };\n break;\n case PlayerState().ENDED:\n this.playerLogger.log(`player \"${options.playerId}\" -> ended`);\n this.playersEventsState.get(options.playerId).events.onStateChange = {\n text: 'ended',\n value: PlayerState().ENDED,\n };\n break;\n case PlayerState().BUFFERING:\n this.playerLogger.log(`player \"${options.playerId}\" -> buffering`);\n this.playersEventsState.get(options.playerId).events.onStateChange = {\n text: 'buffering',\n value: PlayerState().BUFFERING,\n };\n break;\n case PlayerState().CUED:\n this.playerLogger.log(`player \"${options.playerId}\" -> cued`);\n this.playersEventsState.get(options.playerId).events.onStateChange = {\n text: 'cued',\n value: PlayerState().CUED,\n };\n break;\n }\n },\n onPlaybackQualityChange: (event) => {\n this.playerLogger.log(`player \"${options.playerId}\" -> onPlayerPlaybackQualityChange quality ${event.data}`);\n this.playersEventsState.get(options.playerId).events.onPlaybackQualityChange = {\n text: 'onPlaybackQualityChange',\n value: event.data,\n };\n },\n onError: (error) => {\n this.playerLogger.error(`player \"${options.playerId}\" -> onPlayerError`, { error: error });\n this.playersEventsState.get(options.playerId).events.onError = { text: 'onError', value: error };\n },\n } }));\n });\n }\n async initialize(options) {\n this.playerLogger = new Log(options.debug);\n this.playerLogger.log('initialize', { privacyEnhanced: options.privacyEnhanced, cookies: options.cookies });\n // Set cookies before loading the player if provided\n if (options.cookies) {\n this.setCookies(options.cookies);\n }\n if (!this.playerApiLoaded) {\n const result = await this.loadPlayerApi(options.privacyEnhanced || false);\n this.playerLogger.log('loadPlayerApi result', { result: result });\n }\n if (this.playerApiLoaded) {\n const playerReady = (await this.createPlayer(options));\n this.playerLogger.log('loadPlayerApi initialize completed', { playerReady: playerReady });\n return Promise.resolve(playerReady);\n }\n }\n async destroy(playerId) {\n this.playerLogger.log(`player \"${playerId}\" -> destroy`);\n this.players[playerId].destroy();\n return Promise.resolve({ result: { method: 'destroy', value: true } });\n }\n // Methods playback controls and player settings.\n /*********/\n // Stops and cancels loading of the current video. This function should be reserved for rare situations when you know that the user will not be watching\n // additional video in the player. If your intent is to pause the video, you should just call the pauseVideo function. If you want to change the video\n // that the player is playing, you can call one of the queueing functions without calling stopVideo first.\n async stopVideo(playerId) {\n this.playerLogger.log(`player \"${playerId}\" -> stopVideo`);\n this.players[playerId].stopVideo();\n return Promise.resolve({ result: { method: 'stopVideo', value: true } });\n }\n // Plays the currently cued/loaded video. The final player state after this function executes will be playing (1).\n async playVideo(playerId) {\n this.playerLogger.log(`player \"${playerId}\" -> playVideo`);\n this.players[playerId].playVideo();\n return Promise.resolve({ result: { method: 'playVideo', value: true } });\n }\n // Pauses the currently playing video. The final player state after this function executes will be paused (2) unless the player is in the ended (0)\n // state when the function is called, in which case the player state will not change.\n async pauseVideo(playerId) {\n this.playerLogger.log(`player \"${playerId}\" -> pauseVideo`);\n this.players[playerId].pauseVideo();\n return Promise.resolve({ result: { method: 'pauseVideo', value: true } });\n }\n // Seeks to a specified time in the video. If the player is paused when the function is called, it will remain paused. If the function is called from\n // another state (playing, video cued, etc.), the player will play the video.\n async seekTo(playerId, seconds, allowSeekAhead) {\n this.playerLogger.log(`player \"${playerId}\" -> seekTo ${seconds} seconds`);\n this.players[playerId].seekTo(seconds, allowSeekAhead);\n return Promise.resolve({\n result: { method: 'seekTo', value: true, seconds: seconds, allowSeekAhead: allowSeekAhead },\n });\n }\n // Loads and plays the specified video.\n async loadVideoById(playerId, options) {\n this.playerLogger.log(`player \"${playerId}\" -> loadVideoById with options ${options}`);\n this.players[playerId].loadVideoById(options);\n return Promise.resolve({ result: { method: 'loadVideoById', value: true, options: options } });\n }\n // Loads the specified video's thumbnail and prepares the player to play the video. The player does not request the FLV until playVideo() or seekTo() is called.\n async cueVideoById(playerId, options) {\n this.playerLogger.log(`player \"${playerId}\" -> cueVideoById with options ${options}`);\n this.players[playerId].cueVideoById(options);\n return Promise.resolve({ result: { method: 'cueVideoById', value: true, options: options } });\n }\n async loadVideoByUrl(playerId, options) {\n this.playerLogger.log(`player \"${playerId}\" -> loadVideoByUrl with options ${options}`);\n this.players[playerId].loadVideoByUrl(options);\n return Promise.resolve({ result: { method: 'loadVideoByUrl', value: true, options: options } });\n }\n async cueVideoByUrl(playerId, options) {\n this.playerLogger.log(`player \"${playerId}\" -> cueVideoByUrl with options ${options}`);\n this.players[playerId].cueVideoByUrl(options);\n return Promise.resolve({ result: { method: 'cueVideoByUrl', value: true, options: options } });\n }\n /*********/\n // Methods for playing playlist.\n /*********/\n async cuePlaylist(playerId, playlistOptions) {\n this.playerLogger.log(`player \"${playerId}\" -> cuePlaylist with options ${JSON.stringify(playlistOptions)}`);\n this.players[playerId].cuePlaylist(playlistOptions);\n return Promise.resolve({ result: { method: 'cuePlaylist', value: true } });\n }\n async loadPlaylist(playerId, playlistOptions) {\n this.playerLogger.log(`player \"${playerId}\" -> loadPlaylist with options ${playlistOptions}`);\n this.players[playerId].loadPlaylist(playlistOptions);\n return Promise.resolve({ result: { method: 'loadPlaylist', value: true } });\n }\n /*********/\n // Methods for playing video in playlist.\n /*********/\n async nextVideo(playerId) {\n this.playerLogger.log(`player \"${playerId}\" -> nextVideo`);\n this.players[playerId].nextVideo();\n return Promise.resolve({ result: { method: 'nextVideo', value: true } });\n }\n async previousVideo(playerId) {\n this.playerLogger.log(`player \"${playerId}\" -> previousVideo`);\n this.players[playerId].previousVideo();\n return Promise.resolve({ result: { method: 'previousVideo', value: true } });\n }\n async playVideoAt(playerId, index) {\n this.playerLogger.log(`player \"${playerId}\" -> playVideoAt`);\n this.players[playerId].playVideoAt(index);\n return Promise.resolve({ result: { method: 'playVideoAt', value: true } });\n }\n /*********/\n // Methods for adjusting the playback speed.\n async getPlaybackRate(playerId) {\n this.playerLogger.log(`player \"${playerId}\" -> getPlaybackRate`);\n return Promise.resolve({ result: { method: 'getPlaybackRate', value: this.players[playerId].getPlaybackRate() } });\n }\n async setPlaybackRate(playerId, rate) {\n this.playerLogger.log(`player \"${playerId}\" -> setPlaybackRate`);\n this.players[playerId].setPlaybackRate(rate);\n return Promise.resolve({ result: { method: 'setPlaybackRate', value: true } });\n }\n async getAvailablePlaybackRates(playerId) {\n this.playerLogger.log(`player -> getAvailablePlaybackRates`);\n return Promise.resolve({\n result: { method: 'getAvailablePlaybackRates', value: this.players[playerId].getAvailablePlaybackRates() },\n });\n }\n /*********/\n /*********/\n // Methods for playlist playback settings\n /*********/\n async setLoop(playerId, loop) {\n this.playerLogger.log(`player \"${playerId}\" -> setLoop`);\n this.players[playerId].setLoop(loop);\n return Promise.resolve({ result: { method: 'setLoop', value: true } });\n }\n async setShuffle(playerId, shuffle) {\n this.playerLogger.log(`player \"${playerId}\" -> setShuffle`);\n this.players[playerId].setShuffle(shuffle);\n return Promise.resolve({ result: { method: 'setShuffle', value: true } });\n }\n /*********/\n // Methods changing the player volume.\n /*********/\n // Mutes the player.\n async mute(playerId) {\n this.playerLogger.log(`player \"${playerId}\" -> mute`);\n this.players[playerId].mute();\n return Promise.resolve({ result: { method: 'mute', value: true } });\n }\n // Unmutes the player.\n async unMute(playerId) {\n this.playerLogger.log(`player \"${playerId}\" -> unMute`);\n this.players[playerId].unMute();\n return Promise.resolve({ result: { method: 'unMute', value: true } });\n }\n // Returns true if the player is muted, false if not.\n async isMuted(playerId) {\n this.playerLogger.log(`player \"${playerId}\" -> isMuted`);\n return Promise.resolve({ result: { method: 'isMuted', value: this.players[playerId].isMuted() } });\n }\n // Sets the volume. Accepts an integer between 0 and 100.\n async setVolume(playerId, volume) {\n this.playerLogger.log(`player \"${playerId}\" -> setVolume ${volume}`);\n this.players[playerId].setVolume(volume);\n return Promise.resolve({ result: { method: 'setVolume', value: volume } });\n }\n // Returns the player's current volume, an integer between 0 and 100. Note that getVolume() will return the volume even if the player is muted.\n async getVolume(playerId) {\n this.playerLogger.log(`player \"${playerId}\" -> getVolume`);\n return Promise.resolve({ result: { method: 'getVolume', value: this.players[playerId].getVolume() } });\n }\n /*********/\n // Methods setting the player size.\n /*********/\n // Sets the size in pixels of the <iframe> that contains the player.\n async setSize(playerId, width, height) {\n this.playerLogger.log(`player \"${playerId}\" -> setSize width: ${width} height: ${height}`);\n this.players[playerId].setSize(width, height);\n return Promise.resolve({ result: { method: 'setSize', value: { width: width, height: height } } });\n }\n /*********/\n // Methods playback status.\n /*********/\n // Returns a number between 0 and 1 that specifies the percentage of the video that the player shows as buffered.\n // This method returns a more reliable number than the now-deprecated getVideoBytesLoaded and getVideoBytesTotal methods.\n async getVideoLoadedFraction(playerId) {\n this.playerLogger.log(`player \"${playerId}\" -> getVideoLoadedFraction`);\n return Promise.resolve({\n result: { method: 'getVideoLoadedFraction', value: this.players[playerId].getVideoLoadedFraction() },\n });\n }\n // Returns the state of the player. Possible values are:\n // -1 – unstarted\n // 0 – ended\n // 1 – playing\n // 2 – paused\n // 3 – buffering\n // 5 – video cued\n async getPlayerState(playerId) {\n this.playerLogger.log(`player \"${playerId}\" -> getPlayerState`);\n return Promise.resolve({ result: { method: 'getPlayerState', value: this.players[playerId].getPlayerState() } });\n }\n async getAllPlayersEventsState() {\n this.playerLogger.log('getAllPlayersEventsState');\n return Promise.resolve({ result: { method: 'getAllPlayersEventsState', value: this.playersEventsState } });\n }\n // Returns the elapsed time in seconds since the video started playing.\n async getCurrentTime(playerId) {\n this.playerLogger.log(`player \"${playerId}\" -> getCurrentTime`);\n return Promise.resolve({ result: { method: 'getCurrentTime', value: this.players[playerId].getCurrentTime() } });\n }\n async toggleFullScreen(playerId, isFullScreen) {\n this.playerLogger.log(`player \"${playerId}\" -> toggleFullScreen`);\n let { height, width } = this.defaultSizes;\n if (!isFullScreen) {\n height = window.innerHeight;\n width = window.innerWidth;\n }\n this.players[playerId].setSize(width, height);\n return Promise.resolve({ result: { method: 'toggleFullScreen', value: isFullScreen } });\n }\n /*********/\n // Methods playback quality.\n /*********/\n async getPlaybackQuality(playerId) {\n this.playerLogger.log(`player \"${playerId}\" -> getPlaybackQuality`);\n return Promise.resolve({\n result: { method: 'getPlaybackQuality', value: this.players[playerId].getPlaybackQuality() },\n });\n }\n async setPlaybackQuality(playerId, playbackQuality) {\n this.playerLogger.log(`player \"${playerId}\" -> setPlaybackQuality`);\n this.players[playerId].setPlaybackQuality(playbackQuality);\n return Promise.resolve({ result: { method: 'setPlaybackQuality', value: true } });\n }\n async getAvailableQualityLevels(playerId) {\n this.playerLogger.log(`player \"${playerId}\" -> getAvailableQualityLevels`);\n return Promise.resolve({\n result: { method: 'getAvailableQualityLevels', value: this.players[playerId].getAvailableQualityLevels() },\n });\n }\n /*********/\n // Methods for retrieving video information.\n /*********/\n async getDuration(playerId) {\n this.playerLogger.log(`player \"${playerId}\" -> getDuration`);\n return Promise.resolve({ result: { method: 'getDuration', value: this.players[playerId].getDuration() } });\n }\n async getVideoUrl(playerId) {\n this.playerLogger.log(`player \"${playerId}\" -> getVideoUrl`);\n return Promise.resolve({ result: { method: 'getVideoUrl', value: this.players[playerId].getVideoUrl() } });\n }\n async getVideoEmbedCode(playerId) {\n this.playerLogger.log(`player \"${playerId}\" -> getVideoEmbedCode`);\n return Promise.resolve({\n result: { method: 'getVideoEmbedCode', value: this.players[playerId].getVideoEmbedCode() },\n });\n }\n /*********/\n // Methods for retrieving playlist information.\n /*********/\n async getPlaylist(playerId) {\n this.playerLogger.log(`player \"${playerId}\" -> getPlaylist`);\n return Promise.resolve({ result: { method: 'getPlaylist', value: this.players[playerId].getPlaylist() } });\n }\n async getPlaylistIndex(playerId) {\n this.playerLogger.log(`player \"${playerId}\" -> getPlaylistIndex`);\n return Promise.resolve({\n result: { method: 'getPlaylistIndex', value: this.players[playerId].getPlaylistIndex() },\n });\n }\n /*********/\n // Methods accessing and modifying DOM nodes.\n /*********/\n async getIframe(playerId) {\n this.playerLogger.log(`player \"${playerId}\" -> getIframe`);\n return Promise.resolve({ result: { method: 'getIframe', value: this.players[playerId].getIframe() } });\n }\n /*********/\n // Player event listeners.\n addEventListener(playerId, eventName, listener) {\n this.playerLogger.log(`player \"${playerId}\" -> addEventListener \"${eventName}\"`);\n this.players[playerId].addEventListener(eventName, listener);\n }\n removeEventListener(playerId, eventName, listener) {\n this.playerLogger.log(`player \"${playerId}\" -> removeEventListener \"${eventName}\"`);\n this.players[playerId].removeEventListener(eventName, listener);\n }\n /*********/\n async getPluginVersion() {\n return { version: 'web' };\n }\n}\n//# sourceMappingURL=web.js.map"],"names":["registerPlugin","WebPlugin"],"mappings":"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"}
1
+ {"version":3,"file":"plugin.js","sources":["esm/index.js","esm/log.js","esm/web.js"],"sourcesContent":["import { registerPlugin } from '@capacitor/core';\nconst YoutubePlayer = registerPlugin('YoutubePlayer', {\n web: () => import('./web').then((m) => new m.YoutubePlayerPluginWeb()),\n});\nexport * from './definitions';\nexport { YoutubePlayer };\n//# sourceMappingURL=index.js.map","export class Log {\n constructor(logEnabled = false) {\n this.logEnabled = false;\n this.logEnabled = logEnabled;\n }\n log(msg, ...supportingDetails) {\n this.emitLogMessage('log', msg, supportingDetails);\n }\n debug(msg, ...supportingDetails) {\n this.emitLogMessage('debug', msg, supportingDetails);\n }\n warn(msg, ...supportingDetails) {\n this.emitLogMessage('warn', msg, supportingDetails);\n }\n error(msg, ...supportingDetails) {\n this.emitLogMessage('error', msg, supportingDetails);\n }\n info(msg, ...supportingDetails) {\n this.emitLogMessage('info', msg, supportingDetails);\n }\n emitLogMessage(msgType, msg, supportingDetails) {\n if (this.logEnabled) {\n supportingDetails.length > 0\n ? console[msgType]('[Youtube Player Plugin Web]: ' + msg, supportingDetails)\n : console[msgType]('[Youtube Player Plugin Web]: ' + msg);\n }\n }\n}\n//# sourceMappingURL=log.js.map","import { WebPlugin } from '@capacitor/core';\nimport { Log } from './log';\n// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\nexport function YT() {\n return window['YT'];\n}\n// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\nexport function Player() {\n return YT().Player;\n}\n// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\nexport function PlayerState() {\n return YT().PlayerState;\n}\nexport class YoutubePlayerPluginWeb extends WebPlugin {\n constructor() {\n super();\n this.players = [];\n this.playersEventsState = new Map();\n this.playerApiLoaded = false;\n this.defaultSizes = {\n height: 270,\n width: 367,\n };\n }\n setCookies(cookies) {\n this.playerLogger.log('setCookies', { cookies });\n try {\n // Parse and set cookies for the YouTube domain\n const cookiePairs = cookies.split(';').map((c) => c.trim());\n cookiePairs.forEach((pair) => {\n if (pair) {\n // Set cookie with appropriate domain for YouTube\n // Note: This sets cookies for the current domain. For cross-domain cookies,\n // the user must handle this at a higher level (e.g., through their backend)\n document.cookie = pair + '; path=/; SameSite=None; Secure';\n this.playerLogger.log('Cookie set:', pair);\n }\n });\n }\n catch (error) {\n this.playerLogger.error('Error setting cookies:', error);\n }\n }\n async loadPlayerApi(privacyEnhanced = false) {\n this.playerLogger.log('loadPlayerApi', { privacyEnhanced });\n return await new Promise((resolve) => {\n window.onYouTubeIframeAPIReady = () => {\n this.playerLogger.log('onYouTubeIframeAPIReady');\n this.playerApiLoaded = true;\n resolve(true);\n };\n // This code loads the IFrame Player API code asynchronously.\n const tag = document.createElement('script');\n tag.type = 'text/javascript';\n // Use privacy-enhanced domain if requested (youtube-nocookie.com for GDPR compliance)\n tag.src = privacyEnhanced ? 'https://www.youtube-nocookie.com/iframe_api' : 'https://www.youtube.com/iframe_api';\n const firstScriptTag = document.getElementsByTagName('script')[0];\n firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);\n });\n }\n checkSize(options) {\n const playerSize = {\n height: options.playerSize.height || this.defaultSizes.height,\n width: options.playerSize.width || this.defaultSizes.width,\n };\n if (playerSize.height > window.innerHeight)\n playerSize.height = window.innerHeight;\n if (playerSize.width > window.innerWidth)\n playerSize.width = window.innerWidth;\n return playerSize;\n }\n // This function creates an <iframe> (and YouTube player)\n // after the API code downloads.\n async createPlayer(options) {\n this.playerLogger.log('createPlayer');\n const playerSize = this.checkSize(options);\n return await new Promise((resolve) => {\n const player = Player();\n this.players[options.playerId] = new player(options.playerId, Object.assign(Object.assign({ playerVars: options.playerVars }, playerSize), { fullscreen: options.fullscreen, videoId: options.videoId, events: {\n // The API will call this function when the video player is ready.\n onReady: (event) => {\n var _a;\n this.playerLogger.log(`player \"${options.playerId}\" -> onPlayerReady`);\n const state = { events: { onReady: { text: 'onReady', value: true } } };\n this.playersEventsState.set(options.playerId, state);\n if (((_a = options === null || options === void 0 ? void 0 : options.playerVars) === null || _a === void 0 ? void 0 : _a.autoplay) === 1) {\n event.target.mute();\n event.target.playVideo();\n }\n return resolve({ playerReady: true, player: this.players[options.playerId] });\n },\n onStateChange: (event) => {\n this.playerLogger.log(`player \"${options.playerId}\" -> onPlayerStateChange`);\n switch (event.data) {\n case PlayerState().PLAYING:\n this.playerLogger.log(`player \"${options.playerId}\" -> playing`);\n this.playersEventsState.get(options.playerId).events.onStateChange = {\n text: 'playing',\n value: PlayerState().PLAYING,\n };\n if (options.fullscreen) {\n const iframe = document.getElementById(options.playerId);\n const requestFullScreen = iframe === null || iframe === void 0 ? void 0 : iframe.requestFullscreen;\n if (requestFullScreen) {\n requestFullScreen.bind(iframe)();\n }\n }\n break;\n case PlayerState().PAUSED:\n this.playerLogger.log(`player \"${options.playerId}\" -> paused`);\n this.playersEventsState.get(options.playerId).events.onStateChange = {\n text: 'paused',\n value: PlayerState().PAUSED,\n };\n break;\n case PlayerState().ENDED:\n this.playerLogger.log(`player \"${options.playerId}\" -> ended`);\n this.playersEventsState.get(options.playerId).events.onStateChange = {\n text: 'ended',\n value: PlayerState().ENDED,\n };\n break;\n case PlayerState().BUFFERING:\n this.playerLogger.log(`player \"${options.playerId}\" -> buffering`);\n this.playersEventsState.get(options.playerId).events.onStateChange = {\n text: 'buffering',\n value: PlayerState().BUFFERING,\n };\n break;\n case PlayerState().CUED:\n this.playerLogger.log(`player \"${options.playerId}\" -> cued`);\n this.playersEventsState.get(options.playerId).events.onStateChange = {\n text: 'cued',\n value: PlayerState().CUED,\n };\n break;\n }\n },\n onPlaybackQualityChange: (event) => {\n this.playerLogger.log(`player \"${options.playerId}\" -> onPlayerPlaybackQualityChange quality ${event.data}`);\n this.playersEventsState.get(options.playerId).events.onPlaybackQualityChange = {\n text: 'onPlaybackQualityChange',\n value: event.data,\n };\n },\n onError: (error) => {\n this.playerLogger.error(`player \"${options.playerId}\" -> onPlayerError`, { error: error });\n this.playersEventsState.get(options.playerId).events.onError = { text: 'onError', value: error };\n },\n } }));\n });\n }\n async initialize(options) {\n this.playerLogger = new Log(options.debug);\n this.playerLogger.log('initialize', { privacyEnhanced: options.privacyEnhanced, cookies: options.cookies });\n // Set cookies before loading the player if provided\n if (options.cookies) {\n this.setCookies(options.cookies);\n }\n if (!this.playerApiLoaded) {\n const result = await this.loadPlayerApi(options.privacyEnhanced || false);\n this.playerLogger.log('loadPlayerApi result', { result: result });\n }\n if (this.playerApiLoaded) {\n const playerReady = (await this.createPlayer(options));\n this.playerLogger.log('loadPlayerApi initialize completed', { playerReady: playerReady });\n return Promise.resolve(playerReady);\n }\n }\n async destroy({ playerId }) {\n this.playerLogger.log(`player \"${playerId}\" -> destroy`);\n this.players[playerId].destroy();\n return Promise.resolve({ result: { method: 'destroy', value: true } });\n }\n // Methods playback controls and player settings.\n /*********/\n // Stops and cancels loading of the current video. This function should be reserved for rare situations when you know that the user will not be watching\n // additional video in the player. If your intent is to pause the video, you should just call the pauseVideo function. If you want to change the video\n // that the player is playing, you can call one of the queueing functions without calling stopVideo first.\n async stopVideo({ playerId }) {\n this.playerLogger.log(`player \"${playerId}\" -> stopVideo`);\n this.players[playerId].stopVideo();\n return Promise.resolve({ result: { method: 'stopVideo', value: true } });\n }\n // Plays the currently cued/loaded video. The final player state after this function executes will be playing (1).\n async playVideo({ playerId }) {\n this.playerLogger.log(`player \"${playerId}\" -> playVideo`);\n this.players[playerId].playVideo();\n return Promise.resolve({ result: { method: 'playVideo', value: true } });\n }\n // Pauses the currently playing video. The final player state after this function executes will be paused (2) unless the player is in the ended (0)\n // state when the function is called, in which case the player state will not change.\n async pauseVideo({ playerId }) {\n this.playerLogger.log(`player \"${playerId}\" -> pauseVideo`);\n this.players[playerId].pauseVideo();\n return Promise.resolve({ result: { method: 'pauseVideo', value: true } });\n }\n // Seeks to a specified time in the video. If the player is paused when the function is called, it will remain paused. If the function is called from\n // another state (playing, video cued, etc.), the player will play the video.\n async seekTo({ playerId, seconds, allowSeekAhead, }) {\n this.playerLogger.log(`player \"${playerId}\" -> seekTo ${seconds} seconds`);\n this.players[playerId].seekTo(seconds, allowSeekAhead);\n return Promise.resolve({\n result: { method: 'seekTo', value: true, seconds: seconds, allowSeekAhead: allowSeekAhead },\n });\n }\n // Loads and plays the specified video.\n async loadVideoById({ playerId, options, }) {\n this.playerLogger.log(`player \"${playerId}\" -> loadVideoById with options ${options}`);\n this.players[playerId].loadVideoById(options);\n return Promise.resolve({ result: { method: 'loadVideoById', value: true, options: options } });\n }\n // Loads the specified video's thumbnail and prepares the player to play the video. The player does not request the FLV until playVideo() or seekTo() is called.\n async cueVideoById({ playerId, options, }) {\n this.playerLogger.log(`player \"${playerId}\" -> cueVideoById with options ${options}`);\n this.players[playerId].cueVideoById(options);\n return Promise.resolve({ result: { method: 'cueVideoById', value: true, options: options } });\n }\n async loadVideoByUrl({ playerId, options, }) {\n this.playerLogger.log(`player \"${playerId}\" -> loadVideoByUrl with options ${options}`);\n this.players[playerId].loadVideoByUrl(options);\n return Promise.resolve({ result: { method: 'loadVideoByUrl', value: true, options: options } });\n }\n async cueVideoByUrl({ playerId, options, }) {\n this.playerLogger.log(`player \"${playerId}\" -> cueVideoByUrl with options ${options}`);\n this.players[playerId].cueVideoByUrl(options);\n return Promise.resolve({ result: { method: 'cueVideoByUrl', value: true, options: options } });\n }\n /*********/\n // Methods for playing playlist.\n /*********/\n async cuePlaylist({ playerId, playlistOptions, }) {\n this.playerLogger.log(`player \"${playerId}\" -> cuePlaylist with options ${JSON.stringify(playlistOptions)}`);\n this.players[playerId].cuePlaylist(playlistOptions);\n return Promise.resolve({ result: { method: 'cuePlaylist', value: true } });\n }\n async loadPlaylist({ playerId, playlistOptions, }) {\n this.playerLogger.log(`player \"${playerId}\" -> loadPlaylist with options ${playlistOptions}`);\n this.players[playerId].loadPlaylist(playlistOptions);\n return Promise.resolve({ result: { method: 'loadPlaylist', value: true } });\n }\n /*********/\n // Methods for playing video in playlist.\n /*********/\n async nextVideo({ playerId }) {\n this.playerLogger.log(`player \"${playerId}\" -> nextVideo`);\n this.players[playerId].nextVideo();\n return Promise.resolve({ result: { method: 'nextVideo', value: true } });\n }\n async previousVideo({ playerId }) {\n this.playerLogger.log(`player \"${playerId}\" -> previousVideo`);\n this.players[playerId].previousVideo();\n return Promise.resolve({ result: { method: 'previousVideo', value: true } });\n }\n async playVideoAt({ playerId, index }) {\n this.playerLogger.log(`player \"${playerId}\" -> playVideoAt`);\n this.players[playerId].playVideoAt(index);\n return Promise.resolve({ result: { method: 'playVideoAt', value: true } });\n }\n /*********/\n // Methods for adjusting the playback speed.\n async getPlaybackRate({ playerId }) {\n this.playerLogger.log(`player \"${playerId}\" -> getPlaybackRate`);\n return Promise.resolve({ result: { method: 'getPlaybackRate', value: this.players[playerId].getPlaybackRate() } });\n }\n async setPlaybackRate({ playerId, suggestedRate, }) {\n this.playerLogger.log(`player \"${playerId}\" -> setPlaybackRate`);\n this.players[playerId].setPlaybackRate(suggestedRate);\n return Promise.resolve({ result: { method: 'setPlaybackRate', value: true } });\n }\n async getAvailablePlaybackRates({ playerId, }) {\n this.playerLogger.log(`player -> getAvailablePlaybackRates`);\n return Promise.resolve({\n result: { method: 'getAvailablePlaybackRates', value: this.players[playerId].getAvailablePlaybackRates() },\n });\n }\n /*********/\n /*********/\n // Methods for playlist playback settings\n /*********/\n async setLoop({ playerId, loopPlaylists }) {\n this.playerLogger.log(`player \"${playerId}\" -> setLoop`);\n this.players[playerId].setLoop(loopPlaylists);\n return Promise.resolve({ result: { method: 'setLoop', value: true } });\n }\n async setShuffle({ playerId, shufflePlaylist, }) {\n this.playerLogger.log(`player \"${playerId}\" -> setShuffle`);\n this.players[playerId].setShuffle(shufflePlaylist);\n return Promise.resolve({ result: { method: 'setShuffle', value: true } });\n }\n /*********/\n // Methods changing the player volume.\n /*********/\n // Mutes the player.\n async mute({ playerId }) {\n this.playerLogger.log(`player \"${playerId}\" -> mute`);\n this.players[playerId].mute();\n return Promise.resolve({ result: { method: 'mute', value: true } });\n }\n // Unmutes the player.\n async unMute({ playerId }) {\n this.playerLogger.log(`player \"${playerId}\" -> unMute`);\n this.players[playerId].unMute();\n return Promise.resolve({ result: { method: 'unMute', value: true } });\n }\n // Returns true if the player is muted, false if not.\n async isMuted({ playerId }) {\n this.playerLogger.log(`player \"${playerId}\" -> isMuted`);\n return Promise.resolve({ result: { method: 'isMuted', value: this.players[playerId].isMuted() } });\n }\n // Sets the volume. Accepts an integer between 0 and 100.\n async setVolume({ playerId, volume }) {\n this.playerLogger.log(`player \"${playerId}\" -> setVolume ${volume}`);\n this.players[playerId].setVolume(volume);\n return Promise.resolve({ result: { method: 'setVolume', value: volume } });\n }\n // Returns the player's current volume, an integer between 0 and 100. Note that getVolume() will return the volume even if the player is muted.\n async getVolume({ playerId }) {\n this.playerLogger.log(`player \"${playerId}\" -> getVolume`);\n return Promise.resolve({ result: { method: 'getVolume', value: this.players[playerId].getVolume() } });\n }\n /*********/\n // Methods setting the player size.\n /*********/\n // Sets the size in pixels of the <iframe> that contains the player.\n async setSize({ playerId, width, height, }) {\n this.playerLogger.log(`player \"${playerId}\" -> setSize width: ${width} height: ${height}`);\n this.players[playerId].setSize(width, height);\n return Promise.resolve({ result: { method: 'setSize', value: { width: width, height: height } } });\n }\n /*********/\n // Methods playback status.\n /*********/\n // Returns a number between 0 and 1 that specifies the percentage of the video that the player shows as buffered.\n // This method returns a more reliable number than the now-deprecated getVideoBytesLoaded and getVideoBytesTotal methods.\n async getVideoLoadedFraction({ playerId }) {\n this.playerLogger.log(`player \"${playerId}\" -> getVideoLoadedFraction`);\n return Promise.resolve({\n result: { method: 'getVideoLoadedFraction', value: this.players[playerId].getVideoLoadedFraction() },\n });\n }\n // Returns the state of the player. Possible values are:\n // -1 – unstarted\n // 0 – ended\n // 1 – playing\n // 2 – paused\n // 3 – buffering\n // 5 – video cued\n async getPlayerState({ playerId }) {\n this.playerLogger.log(`player \"${playerId}\" -> getPlayerState`);\n return Promise.resolve({ result: { method: 'getPlayerState', value: this.players[playerId].getPlayerState() } });\n }\n async getAllPlayersEventsState() {\n this.playerLogger.log('getAllPlayersEventsState');\n return Promise.resolve({ result: { method: 'getAllPlayersEventsState', value: this.playersEventsState } });\n }\n // Returns the elapsed time in seconds since the video started playing.\n async getCurrentTime({ playerId }) {\n this.playerLogger.log(`player \"${playerId}\" -> getCurrentTime`);\n return Promise.resolve({ result: { method: 'getCurrentTime', value: this.players[playerId].getCurrentTime() } });\n }\n async toggleFullScreen({ playerId, isFullScreen, }) {\n this.playerLogger.log(`player \"${playerId}\" -> toggleFullScreen`);\n let { height, width } = this.defaultSizes;\n if (!isFullScreen) {\n height = window.innerHeight;\n width = window.innerWidth;\n }\n this.players[playerId].setSize(width, height);\n return Promise.resolve({ result: { method: 'toggleFullScreen', value: isFullScreen } });\n }\n /*********/\n // Methods playback quality.\n /*********/\n async getPlaybackQuality({ playerId, }) {\n this.playerLogger.log(`player \"${playerId}\" -> getPlaybackQuality`);\n return Promise.resolve({\n result: { method: 'getPlaybackQuality', value: this.players[playerId].getPlaybackQuality() },\n });\n }\n async setPlaybackQuality({ playerId, suggestedQuality, }) {\n this.playerLogger.log(`player \"${playerId}\" -> setPlaybackQuality`);\n this.players[playerId].setPlaybackQuality(suggestedQuality);\n return Promise.resolve({ result: { method: 'setPlaybackQuality', value: true } });\n }\n async getAvailableQualityLevels({ playerId, }) {\n this.playerLogger.log(`player \"${playerId}\" -> getAvailableQualityLevels`);\n return Promise.resolve({\n result: { method: 'getAvailableQualityLevels', value: this.players[playerId].getAvailableQualityLevels() },\n });\n }\n /*********/\n // Methods for retrieving video information.\n /*********/\n async getDuration({ playerId }) {\n this.playerLogger.log(`player \"${playerId}\" -> getDuration`);\n return Promise.resolve({ result: { method: 'getDuration', value: this.players[playerId].getDuration() } });\n }\n async getVideoUrl({ playerId }) {\n this.playerLogger.log(`player \"${playerId}\" -> getVideoUrl`);\n return Promise.resolve({ result: { method: 'getVideoUrl', value: this.players[playerId].getVideoUrl() } });\n }\n async getVideoEmbedCode({ playerId }) {\n this.playerLogger.log(`player \"${playerId}\" -> getVideoEmbedCode`);\n return Promise.resolve({\n result: { method: 'getVideoEmbedCode', value: this.players[playerId].getVideoEmbedCode() },\n });\n }\n /*********/\n // Methods for retrieving playlist information.\n /*********/\n async getPlaylist({ playerId }) {\n this.playerLogger.log(`player \"${playerId}\" -> getPlaylist`);\n return Promise.resolve({ result: { method: 'getPlaylist', value: this.players[playerId].getPlaylist() } });\n }\n async getPlaylistIndex({ playerId }) {\n this.playerLogger.log(`player \"${playerId}\" -> getPlaylistIndex`);\n return Promise.resolve({\n result: { method: 'getPlaylistIndex', value: this.players[playerId].getPlaylistIndex() },\n });\n }\n /*********/\n // Methods accessing and modifying DOM nodes.\n /*********/\n async getIframe({ playerId }) {\n this.playerLogger.log(`player \"${playerId}\" -> getIframe`);\n return Promise.resolve({ result: { method: 'getIframe', value: this.players[playerId].getIframe() } });\n }\n /*********/\n // Player event listeners.\n addEventListener({ playerId, eventName, listener, }) {\n this.playerLogger.log(`player \"${playerId}\" -> addEventListener \"${eventName}\"`);\n this.players[playerId].addEventListener(eventName, listener);\n }\n removeEventListener({ playerId, eventName, listener, }) {\n this.playerLogger.log(`player \"${playerId}\" -> removeEventListener \"${eventName}\"`);\n this.players[playerId].removeEventListener(eventName, listener);\n }\n /*********/\n async getPluginVersion() {\n return { version: 'web' };\n }\n}\n//# sourceMappingURL=web.js.map"],"names":["registerPlugin","WebPlugin"],"mappings":";;;AACK,UAAC,aAAa,GAAGA,mBAAc,CAAC,eAAe,EAAE;IACtD,IAAI,GAAG,EAAE,MAAM,mDAAe,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,sBAAsB,EAAE,CAAC;IAC1E,CAAC;;ICHM,MAAM,GAAG,CAAC;IACjB,IAAI,WAAW,CAAC,UAAU,GAAG,KAAK,EAAE;IACpC,QAAQ,IAAI,CAAC,UAAU,GAAG,KAAK;IAC/B,QAAQ,IAAI,CAAC,UAAU,GAAG,UAAU;IACpC,IAAI;IACJ,IAAI,GAAG,CAAC,GAAG,EAAE,GAAG,iBAAiB,EAAE;IACnC,QAAQ,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,GAAG,EAAE,iBAAiB,CAAC;IAC1D,IAAI;IACJ,IAAI,KAAK,CAAC,GAAG,EAAE,GAAG,iBAAiB,EAAE;IACrC,QAAQ,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,GAAG,EAAE,iBAAiB,CAAC;IAC5D,IAAI;IACJ,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,iBAAiB,EAAE;IACpC,QAAQ,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,GAAG,EAAE,iBAAiB,CAAC;IAC3D,IAAI;IACJ,IAAI,KAAK,CAAC,GAAG,EAAE,GAAG,iBAAiB,EAAE;IACrC,QAAQ,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,GAAG,EAAE,iBAAiB,CAAC;IAC5D,IAAI;IACJ,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,iBAAiB,EAAE;IACpC,QAAQ,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,GAAG,EAAE,iBAAiB,CAAC;IAC3D,IAAI;IACJ,IAAI,cAAc,CAAC,OAAO,EAAE,GAAG,EAAE,iBAAiB,EAAE;IACpD,QAAQ,IAAI,IAAI,CAAC,UAAU,EAAE;IAC7B,YAAY,iBAAiB,CAAC,MAAM,GAAG;IACvC,kBAAkB,OAAO,CAAC,OAAO,CAAC,CAAC,+BAA+B,GAAG,GAAG,EAAE,iBAAiB;IAC3F,kBAAkB,OAAO,CAAC,OAAO,CAAC,CAAC,+BAA+B,GAAG,GAAG,CAAC;IACzE,QAAQ;IACR,IAAI;IACJ;;ICzBA;IACO,SAAS,EAAE,GAAG;IACrB,IAAI,OAAO,MAAM,CAAC,IAAI,CAAC;IACvB;IACA;IACO,SAAS,MAAM,GAAG;IACzB,IAAI,OAAO,EAAE,EAAE,CAAC,MAAM;IACtB;IACA;IACO,SAAS,WAAW,GAAG;IAC9B,IAAI,OAAO,EAAE,EAAE,CAAC,WAAW;IAC3B;IACO,MAAM,sBAAsB,SAASC,cAAS,CAAC;IACtD,IAAI,WAAW,GAAG;IAClB,QAAQ,KAAK,EAAE;IACf,QAAQ,IAAI,CAAC,OAAO,GAAG,EAAE;IACzB,QAAQ,IAAI,CAAC,kBAAkB,GAAG,IAAI,GAAG,EAAE;IAC3C,QAAQ,IAAI,CAAC,eAAe,GAAG,KAAK;IACpC,QAAQ,IAAI,CAAC,YAAY,GAAG;IAC5B,YAAY,MAAM,EAAE,GAAG;IACvB,YAAY,KAAK,EAAE,GAAG;IACtB,SAAS;IACT,IAAI;IACJ,IAAI,UAAU,CAAC,OAAO,EAAE;IACxB,QAAQ,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,YAAY,EAAE,EAAE,OAAO,EAAE,CAAC;IACxD,QAAQ,IAAI;IACZ;IACA,YAAY,MAAM,WAAW,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC;IACvE,YAAY,WAAW,CAAC,OAAO,CAAC,CAAC,IAAI,KAAK;IAC1C,gBAAgB,IAAI,IAAI,EAAE;IAC1B;IACA;IACA;IACA,oBAAoB,QAAQ,CAAC,MAAM,GAAG,IAAI,GAAG,iCAAiC;IAC9E,oBAAoB,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,aAAa,EAAE,IAAI,CAAC;IAC9D,gBAAgB;IAChB,YAAY,CAAC,CAAC;IACd,QAAQ;IACR,QAAQ,OAAO,KAAK,EAAE;IACtB,YAAY,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,wBAAwB,EAAE,KAAK,CAAC;IACpE,QAAQ;IACR,IAAI;IACJ,IAAI,MAAM,aAAa,CAAC,eAAe,GAAG,KAAK,EAAE;IACjD,QAAQ,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,eAAe,EAAE,EAAE,eAAe,EAAE,CAAC;IACnE,QAAQ,OAAO,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,KAAK;IAC9C,YAAY,MAAM,CAAC,uBAAuB,GAAG,MAAM;IACnD,gBAAgB,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,yBAAyB,CAAC;IAChE,gBAAgB,IAAI,CAAC,eAAe,GAAG,IAAI;IAC3C,gBAAgB,OAAO,CAAC,IAAI,CAAC;IAC7B,YAAY,CAAC;IACb;IACA,YAAY,MAAM,GAAG,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC;IACxD,YAAY,GAAG,CAAC,IAAI,GAAG,iBAAiB;IACxC;IACA,YAAY,GAAG,CAAC,GAAG,GAAG,eAAe,GAAG,6CAA6C,GAAG,oCAAoC;IAC5H,YAAY,MAAM,cAAc,GAAG,QAAQ,CAAC,oBAAoB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;IAC7E,YAAY,cAAc,CAAC,UAAU,CAAC,YAAY,CAAC,GAAG,EAAE,cAAc,CAAC;IACvE,QAAQ,CAAC,CAAC;IACV,IAAI;IACJ,IAAI,SAAS,CAAC,OAAO,EAAE;IACvB,QAAQ,MAAM,UAAU,GAAG;IAC3B,YAAY,MAAM,EAAE,OAAO,CAAC,UAAU,CAAC,MAAM,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM;IACzE,YAAY,KAAK,EAAE,OAAO,CAAC,UAAU,CAAC,KAAK,IAAI,IAAI,CAAC,YAAY,CAAC,KAAK;IACtE,SAAS;IACT,QAAQ,IAAI,UAAU,CAAC,MAAM,GAAG,MAAM,CAAC,WAAW;IAClD,YAAY,UAAU,CAAC,MAAM,GAAG,MAAM,CAAC,WAAW;IAClD,QAAQ,IAAI,UAAU,CAAC,KAAK,GAAG,MAAM,CAAC,UAAU;IAChD,YAAY,UAAU,CAAC,KAAK,GAAG,MAAM,CAAC,UAAU;IAChD,QAAQ,OAAO,UAAU;IACzB,IAAI;IACJ;IACA;IACA,IAAI,MAAM,YAAY,CAAC,OAAO,EAAE;IAChC,QAAQ,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,cAAc,CAAC;IAC7C,QAAQ,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC;IAClD,QAAQ,OAAO,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,KAAK;IAC9C,YAAY,MAAM,MAAM,GAAG,MAAM,EAAE;IACnC,YAAY,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,UAAU,EAAE,OAAO,CAAC,UAAU,EAAE,EAAE,UAAU,CAAC,EAAE,EAAE,UAAU,EAAE,OAAO,CAAC,UAAU,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE;IAC3N;IACA,oBAAoB,OAAO,EAAE,CAAC,KAAK,KAAK;IACxC,wBAAwB,IAAI,EAAE;IAC9B,wBAAwB,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC;IAC9F,wBAAwB,MAAM,KAAK,GAAG,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,EAAE;IAC/F,wBAAwB,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,OAAO,CAAC,QAAQ,EAAE,KAAK,CAAC;IAC5E,wBAAwB,IAAI,CAAC,CAAC,EAAE,GAAG,OAAO,KAAK,IAAI,IAAI,OAAO,KAAK,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,UAAU,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,MAAM,GAAG,EAAE,CAAC,QAAQ,MAAM,CAAC,EAAE;IAClK,4BAA4B,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE;IAC/C,4BAA4B,KAAK,CAAC,MAAM,CAAC,SAAS,EAAE;IACpD,wBAAwB;IACxB,wBAAwB,OAAO,OAAO,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;IACrG,oBAAoB,CAAC;IACrB,oBAAoB,aAAa,EAAE,CAAC,KAAK,KAAK;IAC9C,wBAAwB,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,OAAO,CAAC,QAAQ,CAAC,wBAAwB,CAAC,CAAC;IACpG,wBAAwB,QAAQ,KAAK,CAAC,IAAI;IAC1C,4BAA4B,KAAK,WAAW,EAAE,CAAC,OAAO;IACtD,gCAAgC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;IAChG,gCAAgC,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,aAAa,GAAG;IACrG,oCAAoC,IAAI,EAAE,SAAS;IACnD,oCAAoC,KAAK,EAAE,WAAW,EAAE,CAAC,OAAO;IAChE,iCAAiC;IACjC,gCAAgC,IAAI,OAAO,CAAC,UAAU,EAAE;IACxD,oCAAoC,MAAM,MAAM,GAAG,QAAQ,CAAC,cAAc,CAAC,OAAO,CAAC,QAAQ,CAAC;IAC5F,oCAAoC,MAAM,iBAAiB,GAAG,MAAM,KAAK,IAAI,IAAI,MAAM,KAAK,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC,iBAAiB;IACtI,oCAAoC,IAAI,iBAAiB,EAAE;IAC3D,wCAAwC,iBAAiB,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE;IACxE,oCAAoC;IACpC,gCAAgC;IAChC,gCAAgC;IAChC,4BAA4B,KAAK,WAAW,EAAE,CAAC,MAAM;IACrD,gCAAgC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;IAC/F,gCAAgC,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,aAAa,GAAG;IACrG,oCAAoC,IAAI,EAAE,QAAQ;IAClD,oCAAoC,KAAK,EAAE,WAAW,EAAE,CAAC,MAAM;IAC/D,iCAAiC;IACjC,gCAAgC;IAChC,4BAA4B,KAAK,WAAW,EAAE,CAAC,KAAK;IACpD,gCAAgC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;IAC9F,gCAAgC,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,aAAa,GAAG;IACrG,oCAAoC,IAAI,EAAE,OAAO;IACjD,oCAAoC,KAAK,EAAE,WAAW,EAAE,CAAC,KAAK;IAC9D,iCAAiC;IACjC,gCAAgC;IAChC,4BAA4B,KAAK,WAAW,EAAE,CAAC,SAAS;IACxD,gCAAgC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;IAClG,gCAAgC,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,aAAa,GAAG;IACrG,oCAAoC,IAAI,EAAE,WAAW;IACrD,oCAAoC,KAAK,EAAE,WAAW,EAAE,CAAC,SAAS;IAClE,iCAAiC;IACjC,gCAAgC;IAChC,4BAA4B,KAAK,WAAW,EAAE,CAAC,IAAI;IACnD,gCAAgC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;IAC7F,gCAAgC,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,aAAa,GAAG;IACrG,oCAAoC,IAAI,EAAE,MAAM;IAChD,oCAAoC,KAAK,EAAE,WAAW,EAAE,CAAC,IAAI;IAC7D,iCAAiC;IACjC,gCAAgC;IAChC;IACA,oBAAoB,CAAC;IACrB,oBAAoB,uBAAuB,EAAE,CAAC,KAAK,KAAK;IACxD,wBAAwB,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,OAAO,CAAC,QAAQ,CAAC,2CAA2C,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;IACpI,wBAAwB,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,uBAAuB,GAAG;IACvG,4BAA4B,IAAI,EAAE,yBAAyB;IAC3D,4BAA4B,KAAK,EAAE,KAAK,CAAC,IAAI;IAC7C,yBAAyB;IACzB,oBAAoB,CAAC;IACrB,oBAAoB,OAAO,EAAE,CAAC,KAAK,KAAK;IACxC,wBAAwB,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,QAAQ,EAAE,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAC,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;IAClH,wBAAwB,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,OAAO,GAAG,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE;IACxH,oBAAoB,CAAC;IACrB,iBAAiB,EAAE,CAAC,CAAC;IACrB,QAAQ,CAAC,CAAC;IACV,IAAI;IACJ,IAAI,MAAM,UAAU,CAAC,OAAO,EAAE;IAC9B,QAAQ,IAAI,CAAC,YAAY,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC;IAClD,QAAQ,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,YAAY,EAAE,EAAE,eAAe,EAAE,OAAO,CAAC,eAAe,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC;IACnH;IACA,QAAQ,IAAI,OAAO,CAAC,OAAO,EAAE;IAC7B,YAAY,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,OAAO,CAAC;IAC5C,QAAQ;IACR,QAAQ,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE;IACnC,YAAY,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,eAAe,IAAI,KAAK,CAAC;IACrF,YAAY,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,sBAAsB,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;IAC7E,QAAQ;IACR,QAAQ,IAAI,IAAI,CAAC,eAAe,EAAE;IAClC,YAAY,MAAM,WAAW,IAAI,MAAM,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;IAClE,YAAY,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,oCAAoC,EAAE,EAAE,WAAW,EAAE,WAAW,EAAE,CAAC;IACrG,YAAY,OAAO,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC;IAC/C,QAAQ;IACR,IAAI;IACJ,IAAI,MAAM,OAAO,CAAC,EAAE,QAAQ,EAAE,EAAE;IAChC,QAAQ,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,QAAQ,CAAC,YAAY,CAAC,CAAC;IAChE,QAAQ,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,OAAO,EAAE;IACxC,QAAQ,OAAO,OAAO,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC;IAC9E,IAAI;IACJ;IACA;IACA;IACA;IACA;IACA,IAAI,MAAM,SAAS,CAAC,EAAE,QAAQ,EAAE,EAAE;IAClC,QAAQ,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,QAAQ,CAAC,eAAe,CAAC,CAAC;IACnE,QAAQ,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,SAAS,EAAE;IAC1C,QAAQ,OAAO,OAAO,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC;IAChF,IAAI;IACJ;IACA,IAAI,MAAM,SAAS,CAAC,EAAE,QAAQ,EAAE,EAAE;IAClC,QAAQ,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,QAAQ,CAAC,cAAc,CAAC,CAAC;IAClE,QAAQ,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,SAAS,EAAE;IAC1C,QAAQ,OAAO,OAAO,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC;IAChF,IAAI;IACJ;IACA;IACA,IAAI,MAAM,UAAU,CAAC,EAAE,QAAQ,EAAE,EAAE;IACnC,QAAQ,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,QAAQ,CAAC,eAAe,CAAC,CAAC;IACnE,QAAQ,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,UAAU,EAAE;IAC3C,QAAQ,OAAO,OAAO,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,YAAY,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC;IACjF,IAAI;IACJ;IACA;IACA,IAAI,MAAM,MAAM,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,cAAc,GAAG,EAAE;IACzD,QAAQ,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;IAClF,QAAQ,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,OAAO,EAAE,cAAc,CAAC;IAC9D,QAAQ,OAAO,OAAO,CAAC,OAAO,CAAC;IAC/B,YAAY,MAAM,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE;IACvG,SAAS,CAAC;IACV,IAAI;IACJ;IACA,IAAI,MAAM,aAAa,CAAC,EAAE,QAAQ,EAAE,OAAO,GAAG,EAAE;IAChD,QAAQ,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,QAAQ,CAAC,gCAAgC,EAAE,OAAO,CAAC,CAAC,CAAC;IAC9F,QAAQ,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,aAAa,CAAC,OAAO,CAAC;IACrD,QAAQ,OAAO,OAAO,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,eAAe,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,CAAC;IACtG,IAAI;IACJ;IACA,IAAI,MAAM,YAAY,CAAC,EAAE,QAAQ,EAAE,OAAO,GAAG,EAAE;IAC/C,QAAQ,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,QAAQ,CAAC,+BAA+B,EAAE,OAAO,CAAC,CAAC,CAAC;IAC7F,QAAQ,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC;IACpD,QAAQ,OAAO,OAAO,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,cAAc,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,CAAC;IACrG,IAAI;IACJ,IAAI,MAAM,cAAc,CAAC,EAAE,QAAQ,EAAE,OAAO,GAAG,EAAE;IACjD,QAAQ,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,QAAQ,CAAC,iCAAiC,EAAE,OAAO,CAAC,CAAC,CAAC;IAC/F,QAAQ,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,cAAc,CAAC,OAAO,CAAC;IACtD,QAAQ,OAAO,OAAO,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,gBAAgB,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,CAAC;IACvG,IAAI;IACJ,IAAI,MAAM,aAAa,CAAC,EAAE,QAAQ,EAAE,OAAO,GAAG,EAAE;IAChD,QAAQ,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,QAAQ,CAAC,gCAAgC,EAAE,OAAO,CAAC,CAAC,CAAC;IAC9F,QAAQ,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,aAAa,CAAC,OAAO,CAAC;IACrD,QAAQ,OAAO,OAAO,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,eAAe,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,CAAC;IACtG,IAAI;IACJ;IACA;IACA;IACA,IAAI,MAAM,WAAW,CAAC,EAAE,QAAQ,EAAE,eAAe,GAAG,EAAE;IACtD,QAAQ,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,QAAQ,CAAC,8BAA8B,EAAE,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;IACpH,QAAQ,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,WAAW,CAAC,eAAe,CAAC;IAC3D,QAAQ,OAAO,OAAO,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,aAAa,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC;IAClF,IAAI;IACJ,IAAI,MAAM,YAAY,CAAC,EAAE,QAAQ,EAAE,eAAe,GAAG,EAAE;IACvD,QAAQ,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,QAAQ,CAAC,+BAA+B,EAAE,eAAe,CAAC,CAAC,CAAC;IACrG,QAAQ,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,YAAY,CAAC,eAAe,CAAC;IAC5D,QAAQ,OAAO,OAAO,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,cAAc,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC;IACnF,IAAI;IACJ;IACA;IACA;IACA,IAAI,MAAM,SAAS,CAAC,EAAE,QAAQ,EAAE,EAAE;IAClC,QAAQ,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,QAAQ,CAAC,cAAc,CAAC,CAAC;IAClE,QAAQ,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,SAAS,EAAE;IAC1C,QAAQ,OAAO,OAAO,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC;IAChF,IAAI;IACJ,IAAI,MAAM,aAAa,CAAC,EAAE,QAAQ,EAAE,EAAE;IACtC,QAAQ,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,QAAQ,CAAC,kBAAkB,CAAC,CAAC;IACtE,QAAQ,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,aAAa,EAAE;IAC9C,QAAQ,OAAO,OAAO,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,eAAe,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC;IACpF,IAAI;IACJ,IAAI,MAAM,WAAW,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE;IAC3C,QAAQ,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,QAAQ,CAAC,gBAAgB,CAAC,CAAC;IACpE,QAAQ,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC;IACjD,QAAQ,OAAO,OAAO,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,aAAa,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC;IAClF,IAAI;IACJ;IACA;IACA,IAAI,MAAM,eAAe,CAAC,EAAE,QAAQ,EAAE,EAAE;IACxC,QAAQ,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,QAAQ,CAAC,oBAAoB,CAAC,CAAC;IACxE,QAAQ,OAAO,OAAO,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,iBAAiB,EAAE,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,eAAe,EAAE,EAAE,EAAE,CAAC;IAC1H,IAAI;IACJ,IAAI,MAAM,eAAe,CAAC,EAAE,QAAQ,EAAE,aAAa,GAAG,EAAE;IACxD,QAAQ,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,QAAQ,CAAC,oBAAoB,CAAC,CAAC;IACxE,QAAQ,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,eAAe,CAAC,aAAa,CAAC;IAC7D,QAAQ,OAAO,OAAO,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,iBAAiB,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC;IACtF,IAAI;IACJ,IAAI,MAAM,yBAAyB,CAAC,EAAE,QAAQ,GAAG,EAAE;IACnD,QAAQ,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,mCAAmC,CAAC,CAAC;IACpE,QAAQ,OAAO,OAAO,CAAC,OAAO,CAAC;IAC/B,YAAY,MAAM,EAAE,EAAE,MAAM,EAAE,2BAA2B,EAAE,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,yBAAyB,EAAE,EAAE;IACtH,SAAS,CAAC;IACV,IAAI;IACJ;IACA;IACA;IACA;IACA,IAAI,MAAM,OAAO,CAAC,EAAE,QAAQ,EAAE,aAAa,EAAE,EAAE;IAC/C,QAAQ,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,QAAQ,CAAC,YAAY,CAAC,CAAC;IAChE,QAAQ,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC;IACrD,QAAQ,OAAO,OAAO,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC;IAC9E,IAAI;IACJ,IAAI,MAAM,UAAU,CAAC,EAAE,QAAQ,EAAE,eAAe,GAAG,EAAE;IACrD,QAAQ,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,QAAQ,CAAC,eAAe,CAAC,CAAC;IACnE,QAAQ,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,UAAU,CAAC,eAAe,CAAC;IAC1D,QAAQ,OAAO,OAAO,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,YAAY,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC;IACjF,IAAI;IACJ;IACA;IACA;IACA;IACA,IAAI,MAAM,IAAI,CAAC,EAAE,QAAQ,EAAE,EAAE;IAC7B,QAAQ,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,QAAQ,CAAC,SAAS,CAAC,CAAC;IAC7D,QAAQ,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,IAAI,EAAE;IACrC,QAAQ,OAAO,OAAO,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC;IAC3E,IAAI;IACJ;IACA,IAAI,MAAM,MAAM,CAAC,EAAE,QAAQ,EAAE,EAAE;IAC/B,QAAQ,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,QAAQ,CAAC,WAAW,CAAC,CAAC;IAC/D,QAAQ,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,MAAM,EAAE;IACvC,QAAQ,OAAO,OAAO,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC;IAC7E,IAAI;IACJ;IACA,IAAI,MAAM,OAAO,CAAC,EAAE,QAAQ,EAAE,EAAE;IAChC,QAAQ,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,QAAQ,CAAC,YAAY,CAAC,CAAC;IAChE,QAAQ,OAAO,OAAO,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,OAAO,EAAE,EAAE,EAAE,CAAC;IAC1G,IAAI;IACJ;IACA,IAAI,MAAM,SAAS,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE;IAC1C,QAAQ,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC,CAAC;IAC5E,QAAQ,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC;IAChD,QAAQ,OAAO,OAAO,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,CAAC;IAClF,IAAI;IACJ;IACA,IAAI,MAAM,SAAS,CAAC,EAAE,QAAQ,EAAE,EAAE;IAClC,QAAQ,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,QAAQ,CAAC,cAAc,CAAC,CAAC;IAClE,QAAQ,OAAO,OAAO,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,SAAS,EAAE,EAAE,EAAE,CAAC;IAC9G,IAAI;IACJ;IACA;IACA;IACA;IACA,IAAI,MAAM,OAAO,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,GAAG,EAAE;IAChD,QAAQ,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,QAAQ,CAAC,oBAAoB,EAAE,KAAK,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC;IAClG,QAAQ,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC;IACrD,QAAQ,OAAO,OAAO,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;IAC1G,IAAI;IACJ;IACA;IACA;IACA;IACA;IACA,IAAI,MAAM,sBAAsB,CAAC,EAAE,QAAQ,EAAE,EAAE;IAC/C,QAAQ,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,QAAQ,CAAC,2BAA2B,CAAC,CAAC;IAC/E,QAAQ,OAAO,OAAO,CAAC,OAAO,CAAC;IAC/B,YAAY,MAAM,EAAE,EAAE,MAAM,EAAE,wBAAwB,EAAE,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,sBAAsB,EAAE,EAAE;IAChH,SAAS,CAAC;IACV,IAAI;IACJ;IACA;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,MAAM,cAAc,CAAC,EAAE,QAAQ,EAAE,EAAE;IACvC,QAAQ,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,QAAQ,CAAC,mBAAmB,CAAC,CAAC;IACvE,QAAQ,OAAO,OAAO,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,gBAAgB,EAAE,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,cAAc,EAAE,EAAE,EAAE,CAAC;IACxH,IAAI;IACJ,IAAI,MAAM,wBAAwB,GAAG;IACrC,QAAQ,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,0BAA0B,CAAC;IACzD,QAAQ,OAAO,OAAO,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,0BAA0B,EAAE,KAAK,EAAE,IAAI,CAAC,kBAAkB,EAAE,EAAE,CAAC;IAClH,IAAI;IACJ;IACA,IAAI,MAAM,cAAc,CAAC,EAAE,QAAQ,EAAE,EAAE;IACvC,QAAQ,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,QAAQ,CAAC,mBAAmB,CAAC,CAAC;IACvE,QAAQ,OAAO,OAAO,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,gBAAgB,EAAE,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,cAAc,EAAE,EAAE,EAAE,CAAC;IACxH,IAAI;IACJ,IAAI,MAAM,gBAAgB,CAAC,EAAE,QAAQ,EAAE,YAAY,GAAG,EAAE;IACxD,QAAQ,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,QAAQ,CAAC,qBAAqB,CAAC,CAAC;IACzE,QAAQ,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC,YAAY;IACjD,QAAQ,IAAI,CAAC,YAAY,EAAE;IAC3B,YAAY,MAAM,GAAG,MAAM,CAAC,WAAW;IACvC,YAAY,KAAK,GAAG,MAAM,CAAC,UAAU;IACrC,QAAQ;IACR,QAAQ,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC;IACrD,QAAQ,OAAO,OAAO,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,kBAAkB,EAAE,KAAK,EAAE,YAAY,EAAE,EAAE,CAAC;IAC/F,IAAI;IACJ;IACA;IACA;IACA,IAAI,MAAM,kBAAkB,CAAC,EAAE,QAAQ,GAAG,EAAE;IAC5C,QAAQ,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,QAAQ,CAAC,uBAAuB,CAAC,CAAC;IAC3E,QAAQ,OAAO,OAAO,CAAC,OAAO,CAAC;IAC/B,YAAY,MAAM,EAAE,EAAE,MAAM,EAAE,oBAAoB,EAAE,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,kBAAkB,EAAE,EAAE;IACxG,SAAS,CAAC;IACV,IAAI;IACJ,IAAI,MAAM,kBAAkB,CAAC,EAAE,QAAQ,EAAE,gBAAgB,GAAG,EAAE;IAC9D,QAAQ,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,QAAQ,CAAC,uBAAuB,CAAC,CAAC;IAC3E,QAAQ,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,kBAAkB,CAAC,gBAAgB,CAAC;IACnE,QAAQ,OAAO,OAAO,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,oBAAoB,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC;IACzF,IAAI;IACJ,IAAI,MAAM,yBAAyB,CAAC,EAAE,QAAQ,GAAG,EAAE;IACnD,QAAQ,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,QAAQ,CAAC,8BAA8B,CAAC,CAAC;IAClF,QAAQ,OAAO,OAAO,CAAC,OAAO,CAAC;IAC/B,YAAY,MAAM,EAAE,EAAE,MAAM,EAAE,2BAA2B,EAAE,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,yBAAyB,EAAE,EAAE;IACtH,SAAS,CAAC;IACV,IAAI;IACJ;IACA;IACA;IACA,IAAI,MAAM,WAAW,CAAC,EAAE,QAAQ,EAAE,EAAE;IACpC,QAAQ,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,QAAQ,CAAC,gBAAgB,CAAC,CAAC;IACpE,QAAQ,OAAO,OAAO,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,aAAa,EAAE,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,WAAW,EAAE,EAAE,EAAE,CAAC;IAClH,IAAI;IACJ,IAAI,MAAM,WAAW,CAAC,EAAE,QAAQ,EAAE,EAAE;IACpC,QAAQ,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,QAAQ,CAAC,gBAAgB,CAAC,CAAC;IACpE,QAAQ,OAAO,OAAO,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,aAAa,EAAE,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,WAAW,EAAE,EAAE,EAAE,CAAC;IAClH,IAAI;IACJ,IAAI,MAAM,iBAAiB,CAAC,EAAE,QAAQ,EAAE,EAAE;IAC1C,QAAQ,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,QAAQ,CAAC,sBAAsB,CAAC,CAAC;IAC1E,QAAQ,OAAO,OAAO,CAAC,OAAO,CAAC;IAC/B,YAAY,MAAM,EAAE,EAAE,MAAM,EAAE,mBAAmB,EAAE,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,iBAAiB,EAAE,EAAE;IACtG,SAAS,CAAC;IACV,IAAI;IACJ;IACA;IACA;IACA,IAAI,MAAM,WAAW,CAAC,EAAE,QAAQ,EAAE,EAAE;IACpC,QAAQ,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,QAAQ,CAAC,gBAAgB,CAAC,CAAC;IACpE,QAAQ,OAAO,OAAO,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,aAAa,EAAE,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,WAAW,EAAE,EAAE,EAAE,CAAC;IAClH,IAAI;IACJ,IAAI,MAAM,gBAAgB,CAAC,EAAE,QAAQ,EAAE,EAAE;IACzC,QAAQ,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,QAAQ,CAAC,qBAAqB,CAAC,CAAC;IACzE,QAAQ,OAAO,OAAO,CAAC,OAAO,CAAC;IAC/B,YAAY,MAAM,EAAE,EAAE,MAAM,EAAE,kBAAkB,EAAE,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,gBAAgB,EAAE,EAAE;IACpG,SAAS,CAAC;IACV,IAAI;IACJ;IACA;IACA;IACA,IAAI,MAAM,SAAS,CAAC,EAAE,QAAQ,EAAE,EAAE;IAClC,QAAQ,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,QAAQ,CAAC,cAAc,CAAC,CAAC;IAClE,QAAQ,OAAO,OAAO,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,SAAS,EAAE,EAAE,EAAE,CAAC;IAC9G,IAAI;IACJ;IACA;IACA,IAAI,gBAAgB,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,GAAG,EAAE;IACzD,QAAQ,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,QAAQ,CAAC,uBAAuB,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC;IACxF,QAAQ,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,gBAAgB,CAAC,SAAS,EAAE,QAAQ,CAAC;IACpE,IAAI;IACJ,IAAI,mBAAmB,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,GAAG,EAAE;IAC5D,QAAQ,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,QAAQ,CAAC,0BAA0B,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC;IAC3F,QAAQ,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,mBAAmB,CAAC,SAAS,EAAE,QAAQ,CAAC;IACvE,IAAI;IACJ;IACA,IAAI,MAAM,gBAAgB,GAAG;IAC7B,QAAQ,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE;IACjC,IAAI;IACJ;;;;;;;;;;;;;;;;;;"}
@@ -9,7 +9,7 @@ import UIKit
9
9
  */
10
10
  @objc(YoutubePlayerPlugin)
11
11
  public class YoutubePlayerPlugin: CAPPlugin, CAPBridgedPlugin {
12
- private let pluginVersion: String = "8.2.0"
12
+ private let pluginVersion: String = "8.2.2"
13
13
  public let identifier = "YoutubePlayerPlugin"
14
14
  public let jsName = "YoutubePlayer"
15
15
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@capgo/capacitor-youtube-player",
3
- "version": "8.2.0",
3
+ "version": "8.2.2",
4
4
  "description": "Capacitor player to embed YouTube player controls in Capacitor apps",
5
5
  "main": "dist/plugin.cjs.js",
6
6
  "module": "dist/esm/index.js",