@gcorevideo/player 2.22.1 → 2.22.3

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 (84) hide show
  1. package/dist/core.js +1 -1
  2. package/dist/index.css +1427 -1427
  3. package/dist/index.js +111 -33
  4. package/dist/player.d.ts +243 -95
  5. package/dist/plugins/index.css +350 -350
  6. package/dist/plugins/index.js +111 -33
  7. package/docs/api/player.bottomgear.additem.md +95 -0
  8. package/docs/api/player.bottomgear.md +63 -19
  9. package/docs/api/player.bottomgear.refresh.md +5 -1
  10. package/docs/api/player.clapprnerdstats.md +0 -2
  11. package/docs/api/player.clicktopause.md +1 -1
  12. package/docs/api/player.closedcaptions.md +2 -2
  13. package/docs/api/player.closedcaptionspluginsettings.md +5 -0
  14. package/docs/api/player.errorscreen.md +18 -4
  15. package/docs/api/player.errorscreenpluginsettings.md +1 -4
  16. package/docs/api/player.errorscreensettings.md +15 -0
  17. package/docs/api/{player.mediacontrolevents.md → player.gearevents.md} +7 -7
  18. package/docs/api/player.levelselector.events.md +0 -1
  19. package/docs/api/player.levelselector.md +1 -1
  20. package/docs/api/player.md +33 -36
  21. package/docs/api/{player.bottomgear.setcontent.md → player.mediacontrol.handlecustomarea.md} +5 -9
  22. package/docs/api/player.mediacontrol.md +15 -1
  23. package/docs/api/player.mediacontrol.putelement.md +2 -2
  24. package/docs/api/player.mediacontrol.toggleelement.md +2 -4
  25. package/docs/api/player.mediacontrolelement.md +1 -1
  26. package/docs/api/player.playbackrate.md +22 -3
  27. package/docs/api/{player.gearoptionsitem.md → player.playbackrateoption.md} +6 -4
  28. package/docs/api/player.playbackratesettings.md +20 -0
  29. package/docs/api/player.sourcecontroller._constructor_.md +49 -0
  30. package/docs/api/player.sourcecontroller.md +70 -7
  31. package/docs/api/player.spinnerevents.md +1 -4
  32. package/docs/api/player.spinnerthreebounce._constructor_.md +0 -3
  33. package/docs/api/player.spinnerthreebounce.hide.md +0 -3
  34. package/docs/api/player.spinnerthreebounce.md +6 -9
  35. package/docs/api/player.spinnerthreebounce.show.md +2 -5
  36. package/lib/index.plugins.d.ts +1 -0
  37. package/lib/index.plugins.d.ts.map +1 -1
  38. package/lib/index.plugins.js +1 -0
  39. package/lib/internal.types.d.ts +5 -0
  40. package/lib/internal.types.d.ts.map +1 -1
  41. package/lib/playback.types.d.ts +0 -5
  42. package/lib/playback.types.d.ts.map +1 -1
  43. package/lib/plugins/bottom-gear/BottomGear.d.ts +35 -13
  44. package/lib/plugins/bottom-gear/BottomGear.d.ts.map +1 -1
  45. package/lib/plugins/bottom-gear/BottomGear.js +35 -3
  46. package/lib/plugins/click-to-pause/ClickToPause.d.ts +1 -1
  47. package/lib/plugins/click-to-pause/ClickToPause.d.ts.map +1 -1
  48. package/lib/plugins/click-to-pause/ClickToPause.js +3 -2
  49. package/lib/plugins/error-screen/ErrorScreen.d.ts +29 -4
  50. package/lib/plugins/error-screen/ErrorScreen.d.ts.map +1 -1
  51. package/lib/plugins/error-screen/ErrorScreen.js +17 -2
  52. package/lib/plugins/media-control/MediaControl.d.ts +0 -11
  53. package/lib/plugins/media-control/MediaControl.d.ts.map +1 -1
  54. package/lib/plugins/media-control/MediaControl.js +0 -12
  55. package/lib/plugins/source-controller/SourceController.d.ts +40 -4
  56. package/lib/plugins/source-controller/SourceController.d.ts.map +1 -1
  57. package/lib/plugins/source-controller/SourceController.js +41 -4
  58. package/lib/plugins/spinner-three-bounce/SpinnerThreeBounce.d.ts +9 -6
  59. package/lib/plugins/spinner-three-bounce/SpinnerThreeBounce.d.ts.map +1 -1
  60. package/lib/plugins/spinner-three-bounce/SpinnerThreeBounce.js +11 -6
  61. package/lib/plugins/subtitles/ClosedCaptions.d.ts +7 -7
  62. package/lib/plugins/subtitles/ClosedCaptions.d.ts.map +1 -1
  63. package/lib/plugins/subtitles/ClosedCaptions.js +2 -2
  64. package/package.json +1 -1
  65. package/src/index.plugins.ts +1 -0
  66. package/src/internal.types.ts +6 -0
  67. package/src/playback.types.ts +0 -5
  68. package/src/plugins/bottom-gear/BottomGear.ts +35 -16
  69. package/src/plugins/click-to-pause/ClickToPause.ts +3 -2
  70. package/src/plugins/error-screen/ErrorScreen.ts +30 -4
  71. package/src/plugins/media-control/MediaControl.ts +0 -12
  72. package/src/plugins/source-controller/SourceController.ts +41 -4
  73. package/src/plugins/spinner-three-bounce/SpinnerThreeBounce.ts +11 -6
  74. package/src/plugins/subtitles/ClosedCaptions.ts +8 -9
  75. package/temp/player.api.json +260 -299
  76. package/tsconfig.tsbuildinfo +1 -1
  77. package/assets/bottom-gear/bottomgear copy.ejs +0 -10
  78. package/docs/api/player.bottomgear.getelement.md +0 -56
  79. package/docs/api/player.gearitemelement.md +0 -18
  80. package/docs/api/player.subtitlespluginsettings.md +0 -18
  81. package/docs/api/player.texttrackitem.id.md +0 -11
  82. package/docs/api/player.texttrackitem.md +0 -87
  83. package/docs/api/player.texttrackitem.name.md +0 -11
  84. package/docs/api/player.texttrackitem.track.md +0 -11
@@ -237,7 +237,7 @@
237
237
  {
238
238
  "kind": "Class",
239
239
  "canonicalReference": "@gcorevideo/player!BottomGear:class",
240
- "docComment": "/**\n * `PLUGIN` that adds the gear button with an extra options menu on the right side of the {@link MediaControl | media control} UI\n *\n * @remarks\n *\n * The plugins provides a base for attaching custom settings UI in the gear menu\n *\n * Depends on:\n *\n * - {@link MediaControl}\n *\n * @beta\n */\n",
240
+ "docComment": "/**\n * `PLUGIN` that adds a button to extend the media controls UI with extra options.\n *\n * @remarks\n *\n * The plugin renders small gear icon to the right of the media controls. It provides a base for attaching custom settings UI in the gear menu\n *\n * Depends on:\n *\n * - {@link MediaControl}\n *\n * @example\n *\n * You can use bottom gear to add custom settings UI to the gear menu.\n * ```ts\n * import { BottomGear } from '@gcorevideo/player/plugins/bottom-gear';\n *\n * class CustomOptionsPlugin extends UICorePlugin {\n * // ...\n *\n * override get events() {\n * return {\n * 'click #my-button': 'doMyAction',\n * }\n * }\n *\n * private doMyAction() {\n * // ...\n * }\n *\n * override render() {\n * const bottomGear = this.core.getPlugin('bottom_gear');\n * if (!bottomGear) {\n * return this;\n * }\n * this.$el.html('<button class=\"custom-option\">Custom option</button>');\n * // Put rendered element into the gear menu\n * bottomGear.addItem('custom').html(this.$el)\n * return this;\n * }\n *\n * // alternatively, add an option with a submenu\n * override render() {\n * this.$el.html(template(templateHtml)({\n * // ...\n * })));\n * return this;\n * }\n *\n * private addGearOption() {\n * this.core.getPlugin('bottom_gear')\n * .addItem('custom', this.$el)\n * .html($('<button class=\"custom-option\">Custom option</button>'))\n * }\n *\n * override bindEvents() {\n * this.listenToOnce(this.core, ClapprEvents.CORE_READY, () => {\n * const bottomGear = this.core.getPlugin('bottom_gear');\n * assert(bottomGear, 'bottom_gear plugin is required');\n * // simple case\n * this.listenTo(bottomGear, GearEvents.RENDERED, this.render);\n * // or with a submenu\n * this.listenTo(bottomGear, GearEvents.RENDERED, this.addGearOption);\n * });\n * }\n * }\n * ```\n *\n * @beta\n */\n",
241
241
  "excerptTokens": [
242
242
  {
243
243
  "kind": "Content",
@@ -261,21 +261,20 @@
261
261
  "members": [
262
262
  {
263
263
  "kind": "Method",
264
- "canonicalReference": "@gcorevideo/player!BottomGear#getElement:member(1)",
265
- "docComment": "/**\n * @param name - Name of a gear menu placeholder item to attach custom UI\n *\n * @returns Zepto result of the element\n */\n",
264
+ "canonicalReference": "@gcorevideo/player!BottomGear#addItem:member(1)",
265
+ "docComment": "/**\n * Adds a custom option to the gear menu\n *\n * @remarks\n *\n * When called with $submenu param, a click on the added item will toggle the submenu visibility.\n *\n * When added without submenu, it's responsibility of the caller to handle the click event however needed.\n *\n * @param name - A unique name of the option\n *\n * @param $subMenu - The submenu to attach to the option\n *\n * @returns The added item placeholder to attach custom markup\n *\n * @example\n * ```ts\n * class MyPlugin extends UICorePlugin {\n * override render() {\n * this.$el.html('<div class=\"my-awesome-settings\">...</div>')\n * this.core.getPlugin('bottom_gear')\n * ?.addItem('custom', this.$el)\n * .html($('<button>Custom settings</button>'))\n * return this\n * }\n * }\n * ```\n *\n */\n",
266
266
  "excerptTokens": [
267
267
  {
268
268
  "kind": "Content",
269
- "text": "getElement(name: "
269
+ "text": "addItem(name: "
270
270
  },
271
271
  {
272
- "kind": "Reference",
273
- "text": "GearOptionsItem",
274
- "canonicalReference": "@gcorevideo/player!GearOptionsItem:type"
272
+ "kind": "Content",
273
+ "text": "string"
275
274
  },
276
275
  {
277
276
  "kind": "Content",
278
- "text": "): "
277
+ "text": ", $subMenu?: "
279
278
  },
280
279
  {
281
280
  "kind": "Reference",
@@ -284,7 +283,12 @@
284
283
  },
285
284
  {
286
285
  "kind": "Content",
287
- "text": " | null"
286
+ "text": "): "
287
+ },
288
+ {
289
+ "kind": "Reference",
290
+ "text": "ZeptoResult",
291
+ "canonicalReference": "@gcorevideo/player!ZeptoResult:type"
288
292
  },
289
293
  {
290
294
  "kind": "Content",
@@ -293,8 +297,8 @@
293
297
  ],
294
298
  "isStatic": false,
295
299
  "returnTypeTokenRange": {
296
- "startIndex": 3,
297
- "endIndex": 5
300
+ "startIndex": 5,
301
+ "endIndex": 6
298
302
  },
299
303
  "releaseTag": "Beta",
300
304
  "isProtected": false,
@@ -307,16 +311,24 @@
307
311
  "endIndex": 2
308
312
  },
309
313
  "isOptional": false
314
+ },
315
+ {
316
+ "parameterName": "$subMenu",
317
+ "parameterTypeTokenRange": {
318
+ "startIndex": 3,
319
+ "endIndex": 4
320
+ },
321
+ "isOptional": true
310
322
  }
311
323
  ],
312
324
  "isOptional": false,
313
325
  "isAbstract": false,
314
- "name": "getElement"
326
+ "name": "addItem"
315
327
  },
316
328
  {
317
329
  "kind": "Method",
318
330
  "canonicalReference": "@gcorevideo/player!BottomGear#refresh:member(1)",
319
- "docComment": "/**\n * Re-renders the gear menu. It fires the {@link MediaControlEvents.MEDIACONTROL_GEAR_RENDERED | MEDIACONTROL_GEAR_RENDERED} event, which the plugins that attach to the gear menu can listen to to re-render themselves.\n */\n",
331
+ "docComment": "/**\n * Collapses any submenu open back to the gear menu.\n *\n * @remarks\n *\n * Should be called by the UI plugin that added a gear item with a submenu when the latter is closed (e.g., when a \"back\" button is clicked).\n */\n",
320
332
  "excerptTokens": [
321
333
  {
322
334
  "kind": "Content",
@@ -343,55 +355,6 @@
343
355
  "isOptional": false,
344
356
  "isAbstract": false,
345
357
  "name": "refresh"
346
- },
347
- {
348
- "kind": "Method",
349
- "canonicalReference": "@gcorevideo/player!BottomGear#setContent:member(1)",
350
- "docComment": "/**\n * Replaces the content of the gear menu\n *\n * @param content - Zepto result of the element\n */\n",
351
- "excerptTokens": [
352
- {
353
- "kind": "Content",
354
- "text": "setContent(content: "
355
- },
356
- {
357
- "kind": "Reference",
358
- "text": "ZeptoResult",
359
- "canonicalReference": "@gcorevideo/player!ZeptoResult:type"
360
- },
361
- {
362
- "kind": "Content",
363
- "text": "): "
364
- },
365
- {
366
- "kind": "Content",
367
- "text": "void"
368
- },
369
- {
370
- "kind": "Content",
371
- "text": ";"
372
- }
373
- ],
374
- "isStatic": false,
375
- "returnTypeTokenRange": {
376
- "startIndex": 3,
377
- "endIndex": 4
378
- },
379
- "releaseTag": "Beta",
380
- "isProtected": false,
381
- "overloadIndex": 1,
382
- "parameters": [
383
- {
384
- "parameterName": "content",
385
- "parameterTypeTokenRange": {
386
- "startIndex": 1,
387
- "endIndex": 2
388
- },
389
- "isOptional": false
390
- }
391
- ],
392
- "isOptional": false,
393
- "isAbstract": false,
394
- "name": "setContent"
395
358
  }
396
359
  ],
397
360
  "extendsTokenRange": {
@@ -403,7 +366,7 @@
403
366
  {
404
367
  "kind": "Class",
405
368
  "canonicalReference": "@gcorevideo/player!ClapprNerdStats:class",
406
- "docComment": "/**\n * `PLUGIN` that displays useful network-related statistics.\n *\n * @remarks\n *\n * Depends on:\n *\n * - {@link MediaControl}\n *\n * - {@link BottomGear}\n *\n * - {@link ClapprStats}\n *\n * The plugin is rendered as an item in the gear menu.\n *\n * When clicked, it shows an overlay window with the information about the network speed, latency, etc, and recommended quality level.\n *\n * @beta\n */\n",
369
+ "docComment": "/**\n * `PLUGIN` that displays useful network-related statistics.\n *\n * @remarks\n *\n * Depends on:\n *\n * - {@link BottomGear}\n *\n * - {@link ClapprStats}\n *\n * The plugin is rendered as an item in the gear menu.\n *\n * When clicked, it shows an overlay window with the information about the network speed, latency, etc, and recommended quality level.\n *\n * @beta\n */\n",
407
370
  "excerptTokens": [
408
371
  {
409
372
  "kind": "Content",
@@ -614,7 +577,7 @@
614
577
  {
615
578
  "kind": "Class",
616
579
  "canonicalReference": "@gcorevideo/player!ClickToPause:class",
617
- "docComment": "/**\n * `PLUGIN` that adds a behavior of toggling the playback state on click over the container\n *\n * @beta\n */\n",
580
+ "docComment": "/**\n * A small `PLUGIN` that toggles the playback state on click over the video container\n *\n * @beta\n */\n",
618
581
  "excerptTokens": [
619
582
  {
620
583
  "kind": "Content",
@@ -770,7 +733,7 @@
770
733
  {
771
734
  "kind": "Class",
772
735
  "canonicalReference": "@gcorevideo/player!ClosedCaptions:class",
773
- "docComment": "/**\n * `PLUGIN` that provides a UI to select the subtitles when available.\n *\n * @remarks\n *\n * The plugin is activated when closed captions tracks are provided with the media source. It shows a familiar \"CC\" button with a dropdown menu to select the subtitles language.\n *\n * Depends on:\n *\n * - {@link MediaControl}\n *\n * Configuration options - {@link ClosedCaptionsPluginSettings}\n *\n * @example\n * ```ts\n * import { ClosedCaptions } from '@gcorevideo/player'\n *\n * Player.registerPlugin(ClosedCaptions)\n *\n * new Player({\n * ...\n * cc: {\n * language: 'en',\n * },\n * })\n * ```\n *\n * @beta\n */\n",
736
+ "docComment": "/**\n * `PLUGIN` that provides a UI to select the subtitles when available.\n *\n * @remarks\n *\n * The plugin is activated when closed captions tracks are detected in the media source. It shows a familiar \"CC\" button with a dropdown menu to select the subtitles language.\n *\n * Depends on:\n *\n * - {@link MediaControl}\n *\n * Configuration options - {@link ClosedCaptionsPluginSettings}\n *\n * @example\n * ```ts\n * import { ClosedCaptions } from '@gcorevideo/player'\n *\n * Player.registerPlugin(ClosedCaptions)\n *\n * new Player({\n * ...\n * cc: {\n * language: 'pt-BR',\n * },\n * })\n * ```\n *\n * @beta\n */\n",
774
737
  "excerptTokens": [
775
738
  {
776
739
  "kind": "Content",
@@ -864,7 +827,7 @@
864
827
  {
865
828
  "kind": "TypeAlias",
866
829
  "canonicalReference": "@gcorevideo/player!ClosedCaptionsPluginSettings:type",
867
- "docComment": "",
830
+ "docComment": "/**\n * Configuration options for the {@link ClosedCaptions} plugin.\n *\n * @beta\n */\n",
868
831
  "excerptTokens": [
869
832
  {
870
833
  "kind": "Content",
@@ -880,7 +843,7 @@
880
843
  }
881
844
  ],
882
845
  "fileUrlPath": "src/plugins/subtitles/ClosedCaptions.ts",
883
- "releaseTag": "Public",
846
+ "releaseTag": "Beta",
884
847
  "name": "ClosedCaptionsPluginSettings",
885
848
  "typeTokenRange": {
886
849
  "startIndex": 1,
@@ -1256,7 +1219,7 @@
1256
1219
  {
1257
1220
  "kind": "Class",
1258
1221
  "canonicalReference": "@gcorevideo/player!ErrorScreen:class",
1259
- "docComment": "/**\n * `PLUGIN` that displays errors nicely in the overlay on top of the player.\n *\n * @beta\n */\n",
1222
+ "docComment": "/**\n * `PLUGIN` that displays fatal errors nicely in the overlay on top of the player.\n *\n * @remarks\n *\n * A fatal error is an error that prevents the player from playing the content. It's usually a network error that persists after multiple retries.\n *\n * The error screen should not be confused with the content stub that is shown when no media sources are available. This can happen due to the lack of the support of the given sources type or because the sources are misconfigured (e.g., omitted).\n *\n * Configuration options - {@link ErrorScreenPluginSettings}\n *\n * @example\n * ```ts\n * import { ErrorScreen, Player } from '@gcorevideo/player'\n *\n * Player.registerPlugin(ErrorScreen)\n * ```\n *\n * @public\n */\n",
1260
1223
  "excerptTokens": [
1261
1224
  {
1262
1225
  "kind": "Content",
@@ -1273,7 +1236,7 @@
1273
1236
  }
1274
1237
  ],
1275
1238
  "fileUrlPath": "src/plugins/error-screen/ErrorScreen.ts",
1276
- "releaseTag": "Beta",
1239
+ "releaseTag": "Public",
1277
1240
  "isAbstract": false,
1278
1241
  "name": "ErrorScreen",
1279
1242
  "preserveMemberOrder": false,
@@ -1287,7 +1250,7 @@
1287
1250
  {
1288
1251
  "kind": "TypeAlias",
1289
1252
  "canonicalReference": "@gcorevideo/player!ErrorScreenPluginSettings:type",
1290
- "docComment": "/**\n * Configuration options for the {@link ErrorScreen | error screen} plugin.\n *\n * @beta\n */\n",
1253
+ "docComment": "/**\n * Configuration options for the {@link ErrorScreen} plugin.\n *\n * @public\n */\n",
1291
1254
  "excerptTokens": [
1292
1255
  {
1293
1256
  "kind": "Content",
@@ -1303,13 +1266,39 @@
1303
1266
  }
1304
1267
  ],
1305
1268
  "fileUrlPath": "src/plugins/error-screen/ErrorScreen.ts",
1306
- "releaseTag": "Beta",
1269
+ "releaseTag": "Public",
1307
1270
  "name": "ErrorScreenPluginSettings",
1308
1271
  "typeTokenRange": {
1309
1272
  "startIndex": 1,
1310
1273
  "endIndex": 2
1311
1274
  }
1312
1275
  },
1276
+ {
1277
+ "kind": "TypeAlias",
1278
+ "canonicalReference": "@gcorevideo/player!ErrorScreenSettings:type",
1279
+ "docComment": "/**\n * Settings for the {@link ErrorScreen} plugin.\n *\n * @public\n */\n",
1280
+ "excerptTokens": [
1281
+ {
1282
+ "kind": "Content",
1283
+ "text": "export type ErrorScreenSettings = "
1284
+ },
1285
+ {
1286
+ "kind": "Content",
1287
+ "text": "{\n noReload?: boolean;\n}"
1288
+ },
1289
+ {
1290
+ "kind": "Content",
1291
+ "text": ";"
1292
+ }
1293
+ ],
1294
+ "fileUrlPath": "src/plugins/error-screen/ErrorScreen.ts",
1295
+ "releaseTag": "Public",
1296
+ "name": "ErrorScreenSettings",
1297
+ "typeTokenRange": {
1298
+ "startIndex": 1,
1299
+ "endIndex": 2
1300
+ }
1301
+ },
1313
1302
  {
1314
1303
  "kind": "Class",
1315
1304
  "canonicalReference": "@gcorevideo/player!Favicon:class",
@@ -1387,57 +1376,42 @@
1387
1376
  "extendsTokenRanges": []
1388
1377
  },
1389
1378
  {
1390
- "kind": "TypeAlias",
1391
- "canonicalReference": "@gcorevideo/player!GearItemElement:type",
1392
- "docComment": "/**\n * @deprecated\n *\n * Use {@link GearOptionsItem} instead\n */\n",
1379
+ "kind": "Enum",
1380
+ "canonicalReference": "@gcorevideo/player!GearEvents:enum",
1381
+ "docComment": "/**\n * Events triggered by the plugin\n *\n * @beta\n */\n",
1393
1382
  "excerptTokens": [
1394
1383
  {
1395
1384
  "kind": "Content",
1396
- "text": "export type GearItemElement = "
1397
- },
1398
- {
1399
- "kind": "Reference",
1400
- "text": "GearOptionsItem",
1401
- "canonicalReference": "@gcorevideo/player!GearOptionsItem:type"
1402
- },
1403
- {
1404
- "kind": "Content",
1405
- "text": ";"
1385
+ "text": "export declare enum GearEvents "
1406
1386
  }
1407
1387
  ],
1408
1388
  "fileUrlPath": "src/plugins/bottom-gear/BottomGear.ts",
1409
- "releaseTag": "Public",
1410
- "name": "GearItemElement",
1411
- "typeTokenRange": {
1412
- "startIndex": 1,
1413
- "endIndex": 2
1414
- }
1415
- },
1416
- {
1417
- "kind": "TypeAlias",
1418
- "canonicalReference": "@gcorevideo/player!GearOptionsItem:type",
1419
- "docComment": "/**\n * An element inside the gear menu\n *\n * @beta\n */\n",
1420
- "excerptTokens": [
1421
- {
1422
- "kind": "Content",
1423
- "text": "export type GearOptionsItem = "
1424
- },
1425
- {
1426
- "kind": "Content",
1427
- "text": "'quality' | 'rate' | 'nerd'"
1428
- },
1389
+ "releaseTag": "Beta",
1390
+ "name": "GearEvents",
1391
+ "preserveMemberOrder": false,
1392
+ "members": [
1429
1393
  {
1430
- "kind": "Content",
1431
- "text": ";"
1394
+ "kind": "EnumMember",
1395
+ "canonicalReference": "@gcorevideo/player!GearEvents.RENDERED:member",
1396
+ "docComment": "/**\n * Use this event to accurately attach an item to the gear menu\n */\n",
1397
+ "excerptTokens": [
1398
+ {
1399
+ "kind": "Content",
1400
+ "text": "RENDERED = "
1401
+ },
1402
+ {
1403
+ "kind": "Content",
1404
+ "text": "\"rendered\""
1405
+ }
1406
+ ],
1407
+ "initializerTokenRange": {
1408
+ "startIndex": 1,
1409
+ "endIndex": 2
1410
+ },
1411
+ "releaseTag": "Beta",
1412
+ "name": "RENDERED"
1432
1413
  }
1433
- ],
1434
- "fileUrlPath": "src/plugins/bottom-gear/BottomGear.ts",
1435
- "releaseTag": "Beta",
1436
- "name": "GearOptionsItem",
1437
- "typeTokenRange": {
1438
- "startIndex": 1,
1439
- "endIndex": 2
1440
- }
1414
+ ]
1441
1415
  },
1442
1416
  {
1443
1417
  "kind": "Class",
@@ -2219,7 +2193,7 @@
2219
2193
  },
2220
2194
  {
2221
2195
  "kind": "Content",
2222
- "text": "{\n 'click .gear-sub-menu_btn': string;\n 'click .gear-option': string;\n 'click .go-back': string;\n }"
2196
+ "text": "{\n 'click .gear-sub-menu_btn': string;\n 'click .go-back': string;\n }"
2223
2197
  },
2224
2198
  {
2225
2199
  "kind": "Content",
@@ -2866,6 +2840,63 @@
2866
2840
  "isAbstract": false,
2867
2841
  "name": "getElement"
2868
2842
  },
2843
+ {
2844
+ "kind": "Method",
2845
+ "canonicalReference": "@gcorevideo/player!MediaControl#handleCustomArea:member(1)",
2846
+ "docComment": "",
2847
+ "excerptTokens": [
2848
+ {
2849
+ "kind": "Content",
2850
+ "text": "handleCustomArea(handler: "
2851
+ },
2852
+ {
2853
+ "kind": "Content",
2854
+ "text": "(name: string, content: "
2855
+ },
2856
+ {
2857
+ "kind": "Reference",
2858
+ "text": "HTMLElement",
2859
+ "canonicalReference": "!HTMLElement:interface"
2860
+ },
2861
+ {
2862
+ "kind": "Content",
2863
+ "text": ") => void"
2864
+ },
2865
+ {
2866
+ "kind": "Content",
2867
+ "text": "): "
2868
+ },
2869
+ {
2870
+ "kind": "Content",
2871
+ "text": "void"
2872
+ },
2873
+ {
2874
+ "kind": "Content",
2875
+ "text": ";"
2876
+ }
2877
+ ],
2878
+ "isStatic": false,
2879
+ "returnTypeTokenRange": {
2880
+ "startIndex": 5,
2881
+ "endIndex": 6
2882
+ },
2883
+ "releaseTag": "Beta",
2884
+ "isProtected": false,
2885
+ "overloadIndex": 1,
2886
+ "parameters": [
2887
+ {
2888
+ "parameterName": "handler",
2889
+ "parameterTypeTokenRange": {
2890
+ "startIndex": 1,
2891
+ "endIndex": 4
2892
+ },
2893
+ "isOptional": false
2894
+ }
2895
+ ],
2896
+ "isOptional": false,
2897
+ "isAbstract": false,
2898
+ "name": "handleCustomArea"
2899
+ },
2869
2900
  {
2870
2901
  "kind": "Property",
2871
2902
  "canonicalReference": "@gcorevideo/player!MediaControl#muted:member",
@@ -2916,8 +2947,8 @@
2916
2947
  },
2917
2948
  {
2918
2949
  "kind": "Reference",
2919
- "text": "HTMLElement",
2920
- "canonicalReference": "!HTMLElement:interface"
2950
+ "text": "ZeptoResult",
2951
+ "canonicalReference": "@gcorevideo/player!ZeptoResult:type"
2921
2952
  },
2922
2953
  {
2923
2954
  "kind": "Content",
@@ -3064,7 +3095,7 @@
3064
3095
  "excerptTokens": [
3065
3096
  {
3066
3097
  "kind": "Content",
3067
- "text": "toggleElement(name: "
3098
+ "text": "toggleElement(area: "
3068
3099
  },
3069
3100
  {
3070
3101
  "kind": "Reference",
@@ -3102,7 +3133,7 @@
3102
3133
  "overloadIndex": 1,
3103
3134
  "parameters": [
3104
3135
  {
3105
- "parameterName": "name",
3136
+ "parameterName": "area",
3106
3137
  "parameterTypeTokenRange": {
3107
3138
  "startIndex": 1,
3108
3139
  "endIndex": 2
@@ -3170,7 +3201,7 @@
3170
3201
  },
3171
3202
  {
3172
3203
  "kind": "Content",
3173
- "text": "'audiotracks' | 'cc' | 'clipText' | 'dvr' | 'duration' | 'gear' | 'pip' | 'playbackRate' | 'position' | 'seekBarContainer'"
3204
+ "text": "'audiotracks' | 'cc' | 'clipText' | 'dvr' | 'duration' | 'fullscreen' | 'gear' | 'multicamera' | 'pip' | 'playbackRate' | 'position' | 'seekBarContainer' | 'vr' | 'volume'"
3174
3205
  },
3175
3206
  {
3176
3207
  "kind": "Content",
@@ -3185,44 +3216,6 @@
3185
3216
  "endIndex": 2
3186
3217
  }
3187
3218
  },
3188
- {
3189
- "kind": "Enum",
3190
- "canonicalReference": "@gcorevideo/player!MediaControlEvents:enum",
3191
- "docComment": "/**\n * Custom events emitted by the plugins to communicate with one another\n *\n * @beta\n */\n",
3192
- "excerptTokens": [
3193
- {
3194
- "kind": "Content",
3195
- "text": "export declare enum MediaControlEvents "
3196
- }
3197
- ],
3198
- "fileUrlPath": "src/plugins/media-control/MediaControl.ts",
3199
- "releaseTag": "Beta",
3200
- "name": "MediaControlEvents",
3201
- "preserveMemberOrder": false,
3202
- "members": [
3203
- {
3204
- "kind": "EnumMember",
3205
- "canonicalReference": "@gcorevideo/player!MediaControlEvents.MEDIACONTROL_GEAR_RENDERED:member",
3206
- "docComment": "/**\n * Emitted when the gear menu is rendered\n */\n",
3207
- "excerptTokens": [
3208
- {
3209
- "kind": "Content",
3210
- "text": "MEDIACONTROL_GEAR_RENDERED = "
3211
- },
3212
- {
3213
- "kind": "Content",
3214
- "text": "\"mediacontrol:gear:rendered\""
3215
- }
3216
- ],
3217
- "initializerTokenRange": {
3218
- "startIndex": 1,
3219
- "endIndex": 2
3220
- },
3221
- "releaseTag": "Beta",
3222
- "name": "MEDIACONTROL_GEAR_RENDERED"
3223
- }
3224
- ]
3225
- },
3226
3219
  {
3227
3220
  "kind": "Class",
3228
3221
  "canonicalReference": "@gcorevideo/player!MultiCamera:class",
@@ -4006,7 +3999,7 @@
4006
3999
  {
4007
4000
  "kind": "Class",
4008
4001
  "canonicalReference": "@gcorevideo/player!PlaybackRate:class",
4009
- "docComment": "/**\n * `PLUGIN` that allows changing the playback speed of the video.\n *\n * @remarks\n *\n * Depends on:\n *\n * - {@link MediaControl | media_control}\n *\n * - {@link BottomGear | bottom_gear}\n *\n * It renders a button in the gear menu, which opens a dropdown with the options to change the playback rate. Note that the playback rate change is supported only for VOD or DVR enabled live streams.\n *\n * @beta\n */\n",
4002
+ "docComment": "/**\n * `PLUGIN` that allows changing the playback speed of the video.\n *\n * @remarks\n *\n * Depends on:\n *\n * - {@link MediaControl}\n *\n * - {@link BottomGear}\n *\n * It renders an option in the gear menu, which opens a dropdown with the options to change the playback rate. Note that the playback rate change is supported only for VOD or DVR-enabled live streams.\n *\n * Plugin settings - {@link PlaybackRateSettings}\n *\n * @example\n * ```ts\n * import { Player, PlaybackRateSettings } from '@gcorevideo/player'\n * Player.registerPlugin(PlaybackRate)\n * const player = new Player({\n * playbackRate: {\n * options: [\n * { value: 0.5, label: '0.5x' },\n * { value: 1, label: '1x' },\n * ],\n * defaultValue: 1,\n * } as PlaybackRateSettings,\n * })\n * ```\n *\n * @beta\n */\n",
4010
4003
  "excerptTokens": [
4011
4004
  {
4012
4005
  "kind": "Content",
@@ -4068,6 +4061,67 @@
4068
4061
  },
4069
4062
  "implementsTokenRanges": []
4070
4063
  },
4064
+ {
4065
+ "kind": "TypeAlias",
4066
+ "canonicalReference": "@gcorevideo/player!PlaybackRateOption:type",
4067
+ "docComment": "/**\n * @beta\n */\n",
4068
+ "excerptTokens": [
4069
+ {
4070
+ "kind": "Content",
4071
+ "text": "export type PlaybackRateOption = "
4072
+ },
4073
+ {
4074
+ "kind": "Content",
4075
+ "text": "{\n value: number;\n label: string;\n}"
4076
+ },
4077
+ {
4078
+ "kind": "Content",
4079
+ "text": ";"
4080
+ }
4081
+ ],
4082
+ "fileUrlPath": "src/plugins/playback-rate/PlaybackRate.ts",
4083
+ "releaseTag": "Beta",
4084
+ "name": "PlaybackRateOption",
4085
+ "typeTokenRange": {
4086
+ "startIndex": 1,
4087
+ "endIndex": 2
4088
+ }
4089
+ },
4090
+ {
4091
+ "kind": "TypeAlias",
4092
+ "canonicalReference": "@gcorevideo/player!PlaybackRateSettings:type",
4093
+ "docComment": "/**\n * @beta\n */\n",
4094
+ "excerptTokens": [
4095
+ {
4096
+ "kind": "Content",
4097
+ "text": "export type PlaybackRateSettings = "
4098
+ },
4099
+ {
4100
+ "kind": "Content",
4101
+ "text": "{\n options?: "
4102
+ },
4103
+ {
4104
+ "kind": "Reference",
4105
+ "text": "PlaybackRateOption",
4106
+ "canonicalReference": "@gcorevideo/player!PlaybackRateOption:type"
4107
+ },
4108
+ {
4109
+ "kind": "Content",
4110
+ "text": "[];\n defaultValue?: number;\n}"
4111
+ },
4112
+ {
4113
+ "kind": "Content",
4114
+ "text": ";"
4115
+ }
4116
+ ],
4117
+ "fileUrlPath": "src/plugins/playback-rate/PlaybackRate.ts",
4118
+ "releaseTag": "Beta",
4119
+ "name": "PlaybackRateSettings",
4120
+ "typeTokenRange": {
4121
+ "startIndex": 1,
4122
+ "endIndex": 4
4123
+ }
4124
+ },
4071
4125
  {
4072
4126
  "kind": "TypeAlias",
4073
4127
  "canonicalReference": "@gcorevideo/player!PlaybackType:type",
@@ -7737,7 +7791,7 @@
7737
7791
  {
7738
7792
  "kind": "Class",
7739
7793
  "canonicalReference": "@gcorevideo/player!SourceController:class",
7740
- "docComment": "/**\n * `PLUGIN` that is responsible for managing the automatic failover between sources.\n *\n * @remarks\n *\n * Have a look at the {@link https://miro.com/app/board/uXjVLiN15tY=/?share_link_id=390327585787 | source failover diagram} for the details on how sources ordering and selection works.\n *\n * This plugin does not expose any public methods apart from required by the Clappr plugin interface. It is supposed to work autonomously.\n *\n * The constructor for this class is marked as internal. Third-party code should not call the constructor directly or create subclasses that extend the `SourceController` class.\n *\n * @example\n * ```ts\n * import { SourceController } from '@gcorevideo/player'\n *\n * Player.registerPlugin(SourceController)\n * ```\n *\n * @beta\n */\n",
7794
+ "docComment": "/**\n * `PLUGIN` that is managing the automatic failover between media sources.\n *\n * @remarks\n *\n * Have a look at the {@link https://miro.com/app/board/uXjVLiN15tY=/?share_link_id=390327585787 | source failover diagram} for the details on how sources ordering and selection works. Below is a simplified diagram:\n * ```markdown\n * sources_list:\n * - a.mpd | +--------------------+\n * - b.m3u8 |--->| init |\n * - ... | |--------------------|\n * | current_source = 0 |\n * +--------------------+\n * |\n * | source = a.mpd\n * | playback = dash.js\n * v\n * +------------------+\n * +-->| load source |\n * | +---------|--------+\n * | v\n * | +------------------+\n * | | play |\n * | +---------|--------+\n * | |\n * | v\n * | +-----------------------+\n * | | on playback_error |\n * | |-----------------------|\n * | | current_source = |\n * | | (current_source + 1) |\n * | | % len sources_list |\n * | | |\n * | | delay 1..3s |\n * | +---------------|-------+\n * | |\n * | source=b.m3u8 |\n * | playback=hls.js |\n * +-------------------+\n *\n * ```\n *\n * This plugin does not expose any public methods apart from required by the Clappr plugin interface. It is supposed to work autonomously.\n *\n * @example\n * ```ts\n * import { SourceController } from '@gcorevideo/player'\n *\n * Player.registerPlugin(SourceController)\n * ```\n *\n * @public\n */\n",
7741
7795
  "excerptTokens": [
7742
7796
  {
7743
7797
  "kind": "Content",
@@ -7754,11 +7808,45 @@
7754
7808
  }
7755
7809
  ],
7756
7810
  "fileUrlPath": "src/plugins/source-controller/SourceController.ts",
7757
- "releaseTag": "Beta",
7811
+ "releaseTag": "Public",
7758
7812
  "isAbstract": false,
7759
7813
  "name": "SourceController",
7760
7814
  "preserveMemberOrder": false,
7761
- "members": [],
7815
+ "members": [
7816
+ {
7817
+ "kind": "Constructor",
7818
+ "canonicalReference": "@gcorevideo/player!SourceController:constructor(1)",
7819
+ "docComment": "/**\n * Constructs a new instance of the `SourceController` class\n *\n * @param core - The Clappr core instance.\n */\n",
7820
+ "excerptTokens": [
7821
+ {
7822
+ "kind": "Content",
7823
+ "text": "constructor(core: "
7824
+ },
7825
+ {
7826
+ "kind": "Reference",
7827
+ "text": "ClapprCore",
7828
+ "canonicalReference": "@clappr/core!default:class"
7829
+ },
7830
+ {
7831
+ "kind": "Content",
7832
+ "text": ");"
7833
+ }
7834
+ ],
7835
+ "releaseTag": "Public",
7836
+ "isProtected": false,
7837
+ "overloadIndex": 1,
7838
+ "parameters": [
7839
+ {
7840
+ "parameterName": "core",
7841
+ "parameterTypeTokenRange": {
7842
+ "startIndex": 1,
7843
+ "endIndex": 2
7844
+ },
7845
+ "isOptional": false
7846
+ }
7847
+ ]
7848
+ }
7849
+ ],
7762
7850
  "extendsTokenRange": {
7763
7851
  "startIndex": 1,
7764
7852
  "endIndex": 2
@@ -7768,7 +7856,7 @@
7768
7856
  {
7769
7857
  "kind": "Enum",
7770
7858
  "canonicalReference": "@gcorevideo/player!SpinnerEvents:enum",
7771
- "docComment": "/**\n * Custom events emitted by the plugin\n *\n * @beta\n */\n",
7859
+ "docComment": "/**\n * Custom events emitted by the plugin\n *\n * @public\n */\n",
7772
7860
  "excerptTokens": [
7773
7861
  {
7774
7862
  "kind": "Content",
@@ -7776,14 +7864,14 @@
7776
7864
  }
7777
7865
  ],
7778
7866
  "fileUrlPath": "src/plugins/spinner-three-bounce/SpinnerThreeBounce.ts",
7779
- "releaseTag": "Beta",
7867
+ "releaseTag": "Public",
7780
7868
  "name": "SpinnerEvents",
7781
7869
  "preserveMemberOrder": false,
7782
7870
  "members": [
7783
7871
  {
7784
7872
  "kind": "EnumMember",
7785
7873
  "canonicalReference": "@gcorevideo/player!SpinnerEvents.SYNC:member",
7786
- "docComment": "/**\n * Emitted at the end of the spinner animation cycle to facilitate smooth UI updates, e.g. {@link SourceController} listens to this event to reload the source when the spinner is hidden\n */\n",
7874
+ "docComment": "/**\n * Emitted at the end of the spinner animation cycle to facilitate smooth UI updates, for instance, {@link SourceController} listens to this event to reload the source when the spinner is hidden\n */\n",
7787
7875
  "excerptTokens": [
7788
7876
  {
7789
7877
  "kind": "Content",
@@ -7798,7 +7886,7 @@
7798
7886
  "startIndex": 1,
7799
7887
  "endIndex": 2
7800
7888
  },
7801
- "releaseTag": "Beta",
7889
+ "releaseTag": "Public",
7802
7890
  "name": "SYNC"
7803
7891
  }
7804
7892
  ]
@@ -7806,7 +7894,7 @@
7806
7894
  {
7807
7895
  "kind": "Class",
7808
7896
  "canonicalReference": "@gcorevideo/player!SpinnerThreeBounce:class",
7809
- "docComment": "/**\n * `PLUGIN` that shows a pending operation indicator when playback is buffering or in a similar state\n *\n * @remarks\n *\n * Events emitted- {@link SpinnerEvents} Other plugins can use {@link SpinnerThreeBounce.show | show} and {@link SpinnerThreeBounce.hide | hide} methods to implement custom pending/progress indication scenarios.\n *\n * @beta\n */\n",
7897
+ "docComment": "/**\n * `PLUGIN` that shows a pending operation indicator when playback is buffering or in a similar state.\n *\n * @remarks\n *\n * It is aliased as `Spinner` for convenience. Events emitted - {@link SpinnerEvents} Other plugins can use {@link SpinnerThreeBounce.show | show} and {@link SpinnerThreeBounce.hide | hide} methods to implement custom pending/progress indication scenarios.\n *\n * @public\n */\n",
7810
7898
  "excerptTokens": [
7811
7899
  {
7812
7900
  "kind": "Content",
@@ -7823,7 +7911,7 @@
7823
7911
  }
7824
7912
  ],
7825
7913
  "fileUrlPath": "src/plugins/spinner-three-bounce/SpinnerThreeBounce.ts",
7826
- "releaseTag": "Beta",
7914
+ "releaseTag": "Public",
7827
7915
  "isAbstract": false,
7828
7916
  "name": "SpinnerThreeBounce",
7829
7917
  "preserveMemberOrder": false,
@@ -7847,7 +7935,7 @@
7847
7935
  "text": ");"
7848
7936
  }
7849
7937
  ],
7850
- "releaseTag": "Beta",
7938
+ "releaseTag": "Public",
7851
7939
  "isProtected": false,
7852
7940
  "overloadIndex": 1,
7853
7941
  "parameters": [
@@ -7884,7 +7972,7 @@
7884
7972
  "startIndex": 1,
7885
7973
  "endIndex": 2
7886
7974
  },
7887
- "releaseTag": "Beta",
7975
+ "releaseTag": "Public",
7888
7976
  "isProtected": false,
7889
7977
  "overloadIndex": 1,
7890
7978
  "parameters": [],
@@ -7895,7 +7983,7 @@
7895
7983
  {
7896
7984
  "kind": "Method",
7897
7985
  "canonicalReference": "@gcorevideo/player!SpinnerThreeBounce#show:member(1)",
7898
- "docComment": "/**\n * Shows the spinner.\n *\n * When called, the spinner will not hide (due to its built-in logic) until {@link SpinnerThreeBounce.hide} is called\n */\n",
7986
+ "docComment": "/**\n * Shows the spinner.\n *\n * The method call prevents spinner's built-in logic from automatically hiding it until {@link SpinnerThreeBounce.hide} is called\n *\n * @param delay - The delay in milliseconds before the spinner is shown.\n */\n",
7899
7987
  "excerptTokens": [
7900
7988
  {
7901
7989
  "kind": "Content",
@@ -7923,7 +8011,7 @@
7923
8011
  "startIndex": 3,
7924
8012
  "endIndex": 4
7925
8013
  },
7926
- "releaseTag": "Beta",
8014
+ "releaseTag": "Public",
7927
8015
  "isProtected": false,
7928
8016
  "overloadIndex": 1,
7929
8017
  "parameters": [
@@ -8120,33 +8208,6 @@
8120
8208
  ],
8121
8209
  "extendsTokenRanges": []
8122
8210
  },
8123
- {
8124
- "kind": "TypeAlias",
8125
- "canonicalReference": "@gcorevideo/player!SubtitlesPluginSettings:type",
8126
- "docComment": "/**\n * @deprecated\n *\n * Use {@link ClosedCaptionsPluginSettings} instead.\n */\n",
8127
- "excerptTokens": [
8128
- {
8129
- "kind": "Content",
8130
- "text": "export type SubtitlesPluginSettings = "
8131
- },
8132
- {
8133
- "kind": "Reference",
8134
- "text": "ClosedCaptionsPluginSettings",
8135
- "canonicalReference": "@gcorevideo/player!ClosedCaptionsPluginSettings:type"
8136
- },
8137
- {
8138
- "kind": "Content",
8139
- "text": ";"
8140
- }
8141
- ],
8142
- "fileUrlPath": "src/plugins/subtitles/ClosedCaptions.ts",
8143
- "releaseTag": "Public",
8144
- "name": "SubtitlesPluginSettings",
8145
- "typeTokenRange": {
8146
- "startIndex": 1,
8147
- "endIndex": 2
8148
- }
8149
- },
8150
8211
  {
8151
8212
  "kind": "Class",
8152
8213
  "canonicalReference": "@gcorevideo/player!Telemetry:class",
@@ -8548,106 +8609,6 @@
8548
8609
  "endIndex": 4
8549
8610
  }
8550
8611
  },
8551
- {
8552
- "kind": "Interface",
8553
- "canonicalReference": "@gcorevideo/player!TextTrackItem:interface",
8554
- "docComment": "",
8555
- "excerptTokens": [
8556
- {
8557
- "kind": "Content",
8558
- "text": "export interface TextTrackItem "
8559
- }
8560
- ],
8561
- "fileUrlPath": "src/playback.types.ts",
8562
- "releaseTag": "Public",
8563
- "name": "TextTrackItem",
8564
- "preserveMemberOrder": false,
8565
- "members": [
8566
- {
8567
- "kind": "PropertySignature",
8568
- "canonicalReference": "@gcorevideo/player!TextTrackItem#id:member",
8569
- "docComment": "",
8570
- "excerptTokens": [
8571
- {
8572
- "kind": "Content",
8573
- "text": "id: "
8574
- },
8575
- {
8576
- "kind": "Content",
8577
- "text": "number"
8578
- },
8579
- {
8580
- "kind": "Content",
8581
- "text": ";"
8582
- }
8583
- ],
8584
- "isReadonly": false,
8585
- "isOptional": false,
8586
- "releaseTag": "Public",
8587
- "name": "id",
8588
- "propertyTypeTokenRange": {
8589
- "startIndex": 1,
8590
- "endIndex": 2
8591
- }
8592
- },
8593
- {
8594
- "kind": "PropertySignature",
8595
- "canonicalReference": "@gcorevideo/player!TextTrackItem#name:member",
8596
- "docComment": "",
8597
- "excerptTokens": [
8598
- {
8599
- "kind": "Content",
8600
- "text": "name: "
8601
- },
8602
- {
8603
- "kind": "Content",
8604
- "text": "string"
8605
- },
8606
- {
8607
- "kind": "Content",
8608
- "text": ";"
8609
- }
8610
- ],
8611
- "isReadonly": false,
8612
- "isOptional": false,
8613
- "releaseTag": "Public",
8614
- "name": "name",
8615
- "propertyTypeTokenRange": {
8616
- "startIndex": 1,
8617
- "endIndex": 2
8618
- }
8619
- },
8620
- {
8621
- "kind": "PropertySignature",
8622
- "canonicalReference": "@gcorevideo/player!TextTrackItem#track:member",
8623
- "docComment": "",
8624
- "excerptTokens": [
8625
- {
8626
- "kind": "Content",
8627
- "text": "track: "
8628
- },
8629
- {
8630
- "kind": "Reference",
8631
- "text": "TextTrack",
8632
- "canonicalReference": "!TextTrack:interface"
8633
- },
8634
- {
8635
- "kind": "Content",
8636
- "text": ";"
8637
- }
8638
- ],
8639
- "isReadonly": false,
8640
- "isOptional": false,
8641
- "releaseTag": "Public",
8642
- "name": "track",
8643
- "propertyTypeTokenRange": {
8644
- "startIndex": 1,
8645
- "endIndex": 2
8646
- }
8647
- }
8648
- ],
8649
- "extendsTokenRanges": []
8650
- },
8651
8612
  {
8652
8613
  "kind": "Class",
8653
8614
  "canonicalReference": "@gcorevideo/player!Thumbnails:class",