@flowplayer/player 3.32.2-rc → 3.33.0

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 (52) hide show
  1. package/core.js +1 -1
  2. package/default.js +1 -1
  3. package/embed.js +2 -2
  4. package/flowplayer.css +1 -1
  5. package/index.d.ts +8 -2
  6. package/package.json +1 -1
  7. package/plugins/ads.d.ts +8 -2
  8. package/plugins/ads.js +1 -1
  9. package/plugins/airplay.d.ts +8 -2
  10. package/plugins/analytics.d.ts +8 -2
  11. package/plugins/analytics.js +1 -1
  12. package/plugins/asel.d.ts +8 -2
  13. package/plugins/audio.d.ts +8 -2
  14. package/plugins/chapters.d.ts +8 -2
  15. package/plugins/chromecast.d.ts +8 -2
  16. package/plugins/comscore.d.ts +8 -2
  17. package/plugins/consent.d.ts +8 -2
  18. package/plugins/context-menu.d.ts +8 -2
  19. package/plugins/cuepoints.d.ts +8 -2
  20. package/plugins/dash.d.ts +8 -2
  21. package/plugins/dash.js +1 -1
  22. package/plugins/drm.d.ts +8 -2
  23. package/plugins/endscreen.d.ts +8 -2
  24. package/plugins/fas.d.ts +8 -2
  25. package/plugins/float-on-scroll.d.ts +8 -2
  26. package/plugins/ga4.d.ts +8 -2
  27. package/plugins/gemius.d.ts +8 -2
  28. package/plugins/google-analytics.d.ts +8 -2
  29. package/plugins/hls.d.ts +8 -2
  30. package/plugins/id3.d.ts +8 -2
  31. package/plugins/iframe.d.ts +8 -2
  32. package/plugins/keyboard.d.ts +8 -2
  33. package/plugins/media-session.d.ts +8 -2
  34. package/plugins/message.d.ts +8 -2
  35. package/plugins/ovp.d.ts +8 -2
  36. package/plugins/playlist.d.ts +8 -2
  37. package/plugins/preview.d.ts +8 -2
  38. package/plugins/qsel.d.ts +23 -2
  39. package/plugins/qsel.js +1 -1
  40. package/plugins/qul.d.ts +8 -2
  41. package/plugins/rts.d.ts +8 -2
  42. package/plugins/rts.js +1 -1
  43. package/plugins/share.d.ts +8 -2
  44. package/plugins/speed.d.ts +8 -2
  45. package/plugins/ssai.d.ts +8 -2
  46. package/plugins/ssai.js +1 -1
  47. package/plugins/subtitles.d.ts +8 -2
  48. package/plugins/thumbnails.d.ts +8 -2
  49. package/plugins/tizen.d.ts +8 -2
  50. package/plugins/vtsel.d.ts +8 -2
  51. package/plugins/webos.d.ts +8 -2
  52. package/util/loader.d.ts +8 -2
package/plugins/drm.d.ts CHANGED
@@ -1064,6 +1064,8 @@ declare class I18n implements Plugin_2 {
1064
1064
  };
1065
1065
  };
1066
1066
  init(config: Config, _root: never, video: Player): void;
1067
+ /* Excluded from this release type: _nonLanguageFields */
1068
+ /* Excluded from this release type: languagesLoaded */
1067
1069
  }
1068
1070
 
1069
1071
  declare const IN_VIEWPORT = "is-in-viewport";
@@ -1756,8 +1758,12 @@ QUALITY_CHANGE = "qualitychange";
1756
1758
  * @public
1757
1759
  */
1758
1760
  declare type QualityChangeEventDetail = {
1759
- before?: Level | Representation;
1760
- after?: Level | Representation;
1761
+ before?: (Level & {
1762
+ level?: number;
1763
+ }) | Representation;
1764
+ after: (Level & {
1765
+ level?: number;
1766
+ }) | Representation;
1761
1767
  plugin: string;
1762
1768
  automatic: boolean;
1763
1769
  /* Excluded from this release type: downscale */
@@ -968,6 +968,8 @@ declare class I18n implements Plugin_2 {
968
968
  };
969
969
  };
970
970
  init(config: Config, _root: never, video: Player): void;
971
+ /* Excluded from this release type: _nonLanguageFields */
972
+ /* Excluded from this release type: languagesLoaded */
971
973
  }
972
974
 
973
975
  declare const IN_VIEWPORT = "is-in-viewport";
@@ -1656,8 +1658,12 @@ QUALITY_CHANGE = "qualitychange";
1656
1658
  * @public
1657
1659
  */
1658
1660
  declare type QualityChangeEventDetail = {
1659
- before?: Level | Representation;
1660
- after?: Level | Representation;
1661
+ before?: (Level & {
1662
+ level?: number;
1663
+ }) | Representation;
1664
+ after: (Level & {
1665
+ level?: number;
1666
+ }) | Representation;
1661
1667
  plugin: string;
1662
1668
  automatic: boolean;
1663
1669
  /* Excluded from this release type: downscale */
package/plugins/fas.d.ts CHANGED
@@ -1015,6 +1015,8 @@ declare class I18n implements Plugin_2 {
1015
1015
  };
1016
1016
  };
1017
1017
  init(config: Config, _root: never, video: Player): void;
1018
+ /* Excluded from this release type: _nonLanguageFields */
1019
+ /* Excluded from this release type: languagesLoaded */
1018
1020
  }
1019
1021
 
1020
1022
  declare const IN_VIEWPORT = "is-in-viewport";
@@ -1696,8 +1698,12 @@ QUALITY_CHANGE = "qualitychange";
1696
1698
  * @public
1697
1699
  */
1698
1700
  declare type QualityChangeEventDetail = {
1699
- before?: Level | Representation;
1700
- after?: Level | Representation;
1701
+ before?: (Level & {
1702
+ level?: number;
1703
+ }) | Representation;
1704
+ after: (Level & {
1705
+ level?: number;
1706
+ }) | Representation;
1701
1707
  plugin: string;
1702
1708
  automatic: boolean;
1703
1709
  /* Excluded from this release type: downscale */
@@ -1039,6 +1039,8 @@ declare class I18n implements Plugin_2 {
1039
1039
  };
1040
1040
  };
1041
1041
  init(config: Config, _root: never, video: Player): void;
1042
+ /* Excluded from this release type: _nonLanguageFields */
1043
+ /* Excluded from this release type: languagesLoaded */
1042
1044
  }
1043
1045
 
1044
1046
  declare const IN_VIEWPORT = "is-in-viewport";
@@ -1730,8 +1732,12 @@ QUALITY_CHANGE = "qualitychange";
1730
1732
  * @public
1731
1733
  */
1732
1734
  declare type QualityChangeEventDetail = {
1733
- before?: Level | Representation;
1734
- after?: Level | Representation;
1735
+ before?: (Level & {
1736
+ level?: number;
1737
+ }) | Representation;
1738
+ after: (Level & {
1739
+ level?: number;
1740
+ }) | Representation;
1735
1741
  plugin: string;
1736
1742
  automatic: boolean;
1737
1743
  /* Excluded from this release type: downscale */
package/plugins/ga4.d.ts CHANGED
@@ -961,6 +961,8 @@ declare class I18n implements Plugin_2 {
961
961
  };
962
962
  };
963
963
  init(config: Config, _root: never, video: Player): void;
964
+ /* Excluded from this release type: _nonLanguageFields */
965
+ /* Excluded from this release type: languagesLoaded */
964
966
  }
965
967
 
966
968
  declare const IN_VIEWPORT = "is-in-viewport";
@@ -1642,8 +1644,12 @@ QUALITY_CHANGE = "qualitychange";
1642
1644
  * @public
1643
1645
  */
1644
1646
  declare type QualityChangeEventDetail = {
1645
- before?: Level | Representation;
1646
- after?: Level | Representation;
1647
+ before?: (Level & {
1648
+ level?: number;
1649
+ }) | Representation;
1650
+ after: (Level & {
1651
+ level?: number;
1652
+ }) | Representation;
1647
1653
  plugin: string;
1648
1654
  automatic: boolean;
1649
1655
  /* Excluded from this release type: downscale */
@@ -986,6 +986,8 @@ declare class I18n implements Plugin_2 {
986
986
  };
987
987
  };
988
988
  init(config: Config, _root: never, video: Player): void;
989
+ /* Excluded from this release type: _nonLanguageFields */
990
+ /* Excluded from this release type: languagesLoaded */
989
991
  }
990
992
 
991
993
  declare const IN_VIEWPORT = "is-in-viewport";
@@ -1667,8 +1669,12 @@ QUALITY_CHANGE = "qualitychange";
1667
1669
  * @public
1668
1670
  */
1669
1671
  declare type QualityChangeEventDetail = {
1670
- before?: Level | Representation;
1671
- after?: Level | Representation;
1672
+ before?: (Level & {
1673
+ level?: number;
1674
+ }) | Representation;
1675
+ after: (Level & {
1676
+ level?: number;
1677
+ }) | Representation;
1672
1678
  plugin: string;
1673
1679
  automatic: boolean;
1674
1680
  /* Excluded from this release type: downscale */
@@ -961,6 +961,8 @@ declare class I18n implements Plugin_2 {
961
961
  };
962
962
  };
963
963
  init(config: Config, _root: never, video: Player): void;
964
+ /* Excluded from this release type: _nonLanguageFields */
965
+ /* Excluded from this release type: languagesLoaded */
964
966
  }
965
967
 
966
968
  declare const IN_VIEWPORT = "is-in-viewport";
@@ -1642,8 +1644,12 @@ QUALITY_CHANGE = "qualitychange";
1642
1644
  * @public
1643
1645
  */
1644
1646
  declare type QualityChangeEventDetail = {
1645
- before?: Level | Representation;
1646
- after?: Level | Representation;
1647
+ before?: (Level & {
1648
+ level?: number;
1649
+ }) | Representation;
1650
+ after: (Level & {
1651
+ level?: number;
1652
+ }) | Representation;
1647
1653
  plugin: string;
1648
1654
  automatic: boolean;
1649
1655
  /* Excluded from this release type: downscale */
package/plugins/hls.d.ts CHANGED
@@ -1086,6 +1086,8 @@ declare class I18n implements Plugin_2 {
1086
1086
  };
1087
1087
  };
1088
1088
  init(config: Config, _root: never, video: Player): void;
1089
+ /* Excluded from this release type: _nonLanguageFields */
1090
+ /* Excluded from this release type: languagesLoaded */
1089
1091
  }
1090
1092
 
1091
1093
  declare const IN_VIEWPORT = "is-in-viewport";
@@ -1767,8 +1769,12 @@ QUALITY_CHANGE = "qualitychange";
1767
1769
  * @public
1768
1770
  */
1769
1771
  declare type QualityChangeEventDetail = {
1770
- before?: Level | Representation;
1771
- after?: Level | Representation;
1772
+ before?: (Level & {
1773
+ level?: number;
1774
+ }) | Representation;
1775
+ after: (Level & {
1776
+ level?: number;
1777
+ }) | Representation;
1772
1778
  plugin: string;
1773
1779
  automatic: boolean;
1774
1780
  /* Excluded from this release type: downscale */
package/plugins/id3.d.ts CHANGED
@@ -961,6 +961,8 @@ declare class I18n implements Plugin_2 {
961
961
  };
962
962
  };
963
963
  init(config: Config, _root: never, video: Player): void;
964
+ /* Excluded from this release type: _nonLanguageFields */
965
+ /* Excluded from this release type: languagesLoaded */
964
966
  }
965
967
 
966
968
  /**
@@ -1708,8 +1710,12 @@ QUALITY_CHANGE = "qualitychange";
1708
1710
  * @public
1709
1711
  */
1710
1712
  declare type QualityChangeEventDetail = {
1711
- before?: Level | Representation;
1712
- after?: Level | Representation;
1713
+ before?: (Level & {
1714
+ level?: number;
1715
+ }) | Representation;
1716
+ after: (Level & {
1717
+ level?: number;
1718
+ }) | Representation;
1713
1719
  plugin: string;
1714
1720
  automatic: boolean;
1715
1721
  /* Excluded from this release type: downscale */
@@ -955,6 +955,8 @@ declare class I18n implements Plugin_2 {
955
955
  };
956
956
  };
957
957
  init(config: Config, _root: never, video: Player): void;
958
+ /* Excluded from this release type: _nonLanguageFields */
959
+ /* Excluded from this release type: languagesLoaded */
958
960
  }
959
961
 
960
962
  /**
@@ -1643,8 +1645,12 @@ QUALITY_CHANGE = "qualitychange";
1643
1645
  * @public
1644
1646
  */
1645
1647
  declare type QualityChangeEventDetail = {
1646
- before?: Level | Representation;
1647
- after?: Level | Representation;
1648
+ before?: (Level & {
1649
+ level?: number;
1650
+ }) | Representation;
1651
+ after: (Level & {
1652
+ level?: number;
1653
+ }) | Representation;
1648
1654
  plugin: string;
1649
1655
  automatic: boolean;
1650
1656
  /* Excluded from this release type: downscale */
@@ -955,6 +955,8 @@ declare class I18n implements Plugin_2 {
955
955
  };
956
956
  };
957
957
  init(config: Config, _root: never, video: Player): void;
958
+ /* Excluded from this release type: _nonLanguageFields */
959
+ /* Excluded from this release type: languagesLoaded */
958
960
  }
959
961
 
960
962
  declare const IN_VIEWPORT = "is-in-viewport";
@@ -1642,8 +1644,12 @@ QUALITY_CHANGE = "qualitychange";
1642
1644
  * @public
1643
1645
  */
1644
1646
  declare type QualityChangeEventDetail = {
1645
- before?: Level | Representation;
1646
- after?: Level | Representation;
1647
+ before?: (Level & {
1648
+ level?: number;
1649
+ }) | Representation;
1650
+ after: (Level & {
1651
+ level?: number;
1652
+ }) | Representation;
1647
1653
  plugin: string;
1648
1654
  automatic: boolean;
1649
1655
  /* Excluded from this release type: downscale */
@@ -955,6 +955,8 @@ declare class I18n implements Plugin_2 {
955
955
  };
956
956
  };
957
957
  init(config: Config, _root: never, video: Player): void;
958
+ /* Excluded from this release type: _nonLanguageFields */
959
+ /* Excluded from this release type: languagesLoaded */
958
960
  }
959
961
 
960
962
  declare const IN_VIEWPORT = "is-in-viewport";
@@ -1642,8 +1644,12 @@ QUALITY_CHANGE = "qualitychange";
1642
1644
  * @public
1643
1645
  */
1644
1646
  declare type QualityChangeEventDetail = {
1645
- before?: Level | Representation;
1646
- after?: Level | Representation;
1647
+ before?: (Level & {
1648
+ level?: number;
1649
+ }) | Representation;
1650
+ after: (Level & {
1651
+ level?: number;
1652
+ }) | Representation;
1647
1653
  plugin: string;
1648
1654
  automatic: boolean;
1649
1655
  /* Excluded from this release type: downscale */
@@ -963,6 +963,8 @@ declare class I18n implements Plugin_2 {
963
963
  };
964
964
  };
965
965
  init(config: Config, _root: never, video: Player): void;
966
+ /* Excluded from this release type: _nonLanguageFields */
967
+ /* Excluded from this release type: languagesLoaded */
966
968
  }
967
969
 
968
970
  declare const IN_VIEWPORT = "is-in-viewport";
@@ -1696,8 +1698,12 @@ QUALITY_CHANGE = "qualitychange";
1696
1698
  * @public
1697
1699
  */
1698
1700
  declare type QualityChangeEventDetail = {
1699
- before?: Level | Representation;
1700
- after?: Level | Representation;
1701
+ before?: (Level & {
1702
+ level?: number;
1703
+ }) | Representation;
1704
+ after: (Level & {
1705
+ level?: number;
1706
+ }) | Representation;
1701
1707
  plugin: string;
1702
1708
  automatic: boolean;
1703
1709
  /* Excluded from this release type: downscale */
package/plugins/ovp.d.ts CHANGED
@@ -972,6 +972,8 @@ declare class I18n implements Plugin_2 {
972
972
  };
973
973
  };
974
974
  init(config: Config, _root: never, video: Player): void;
975
+ /* Excluded from this release type: _nonLanguageFields */
976
+ /* Excluded from this release type: languagesLoaded */
975
977
  }
976
978
 
977
979
  declare const IN_VIEWPORT = "is-in-viewport";
@@ -1689,8 +1691,12 @@ QUALITY_CHANGE = "qualitychange";
1689
1691
  * @public
1690
1692
  */
1691
1693
  declare type QualityChangeEventDetail = {
1692
- before?: Level | Representation;
1693
- after?: Level | Representation;
1694
+ before?: (Level & {
1695
+ level?: number;
1696
+ }) | Representation;
1697
+ after: (Level & {
1698
+ level?: number;
1699
+ }) | Representation;
1694
1700
  plugin: string;
1695
1701
  automatic: boolean;
1696
1702
  /* Excluded from this release type: downscale */
@@ -1010,6 +1010,8 @@ declare class I18n implements Plugin_2 {
1010
1010
  };
1011
1011
  };
1012
1012
  init(config: Config, _root: never, video: Player): void;
1013
+ /* Excluded from this release type: _nonLanguageFields */
1014
+ /* Excluded from this release type: languagesLoaded */
1013
1015
  }
1014
1016
 
1015
1017
  declare const IN_VIEWPORT = "is-in-viewport";
@@ -1902,8 +1904,12 @@ QUALITY_CHANGE = "qualitychange";
1902
1904
  * @public
1903
1905
  */
1904
1906
  declare type QualityChangeEventDetail = {
1905
- before?: Level | Representation;
1906
- after?: Level | Representation;
1907
+ before?: (Level & {
1908
+ level?: number;
1909
+ }) | Representation;
1910
+ after: (Level & {
1911
+ level?: number;
1912
+ }) | Representation;
1907
1913
  plugin: string;
1908
1914
  automatic: boolean;
1909
1915
  /* Excluded from this release type: downscale */
@@ -955,6 +955,8 @@ declare class I18n implements Plugin_2 {
955
955
  };
956
956
  };
957
957
  init(config: Config, _root: never, video: Player): void;
958
+ /* Excluded from this release type: _nonLanguageFields */
959
+ /* Excluded from this release type: languagesLoaded */
958
960
  }
959
961
 
960
962
  declare const IN_VIEWPORT = "is-in-viewport";
@@ -1718,8 +1720,12 @@ QUALITY_CHANGE = "qualitychange";
1718
1720
  * @public
1719
1721
  */
1720
1722
  declare type QualityChangeEventDetail = {
1721
- before?: Level | Representation;
1722
- after?: Level | Representation;
1723
+ before?: (Level & {
1724
+ level?: number;
1725
+ }) | Representation;
1726
+ after: (Level & {
1727
+ level?: number;
1728
+ }) | Representation;
1723
1729
  plugin: string;
1724
1730
  automatic: boolean;
1725
1731
  /* Excluded from this release type: downscale */
package/plugins/qsel.d.ts CHANGED
@@ -962,6 +962,8 @@ declare class I18n implements Plugin_2 {
962
962
  };
963
963
  };
964
964
  init(config: Config, _root: never, video: Player): void;
965
+ /* Excluded from this release type: _nonLanguageFields */
966
+ /* Excluded from this release type: languagesLoaded */
965
967
  }
966
968
 
967
969
  declare const IN_VIEWPORT = "is-in-viewport";
@@ -1605,6 +1607,19 @@ export declare type QselAPI = {
1605
1607
  events: QselEvents;
1606
1608
  };
1607
1609
 
1610
+ declare const QselClass: {
1611
+ new (umd: FlowplayerUMD): {
1612
+ qualities: QselOption[];
1613
+ current: {
1614
+ automatic: boolean;
1615
+ index: number;
1616
+ };
1617
+ init(config: QselConfig, _container: PlayerRoot, player: Player): void;
1618
+ };
1619
+ pluginName: string;
1620
+ events: typeof events_2;
1621
+ };
1622
+
1608
1623
  /**
1609
1624
  * @public
1610
1625
  */
@@ -1625,6 +1640,8 @@ export declare type QselConfig = ConfigWith<{
1625
1640
  */
1626
1641
  export declare type QselEvents = typeof events_2;
1627
1642
 
1643
+ /* Excluded from this release type: QselInstance */
1644
+
1628
1645
  /**
1629
1646
  * @public
1630
1647
  */
@@ -1692,8 +1709,12 @@ QUALITY_CHANGE = "qualitychange";
1692
1709
  * @public
1693
1710
  */
1694
1711
  declare type QualityChangeEventDetail = {
1695
- before?: Level | Representation;
1696
- after?: Level | Representation;
1712
+ before?: (Level & {
1713
+ level?: number;
1714
+ }) | Representation;
1715
+ after: (Level & {
1716
+ level?: number;
1717
+ }) | Representation;
1697
1718
  plugin: string;
1698
1719
  automatic: boolean;
1699
1720
  /* Excluded from this release type: downscale */
package/plugins/qsel.js CHANGED
@@ -1 +1 @@
1
- !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):((e="undefined"!=typeof globalThis?globalThis:e||self).flowplayer=e.flowplayer||{},e.flowplayer.qsel=t())}(this,function(){"use strict";function e(e,t,n){const i=function(e){return Array.isArray(e)?e.slice(0):e.split(".")}(t);for(;i.length;){if(null==e)return n;const t=i.shift();if("string"!=typeof t)return n;e=e[t]}return null==e?n:e}const t="click",n="qualities",i=(e,t)=>new(((e,t)=>{const n=e.get(t);if(!n)throw new Error(`no flowplayer component with the name ${t} exists`);const i=window.customElements.get(t);if(!i)throw new Error(`no default flowplayer component with the name ${t} exists`);const s=window.customElements.get(n);return"function"!=typeof s?i:s})(e._customElements,t))(e);class FlowplayerComponent extends HTMLElement{constructor(e){super(),this.player=e}}const s="has-menu-opened",o="fp-menu-container",l="fp-on",r="fp-invis",a="details[open]."+o;class FlowplayerMenu extends FlowplayerComponent{constructor(e){super(e),this.player=e,this.menuContainer=document.createElement("details"),this.summaryEle=document.createElement("summary"),this.menuHeader=document.createElement("div"),this.menuTitle=document.createElement("h3"),this.olEle=document.createElement("ol"),this.olEle.id=c(),this.menu=document.createElement("div"),this.closeEle=document.createElement("span"),this.menuHeader.classList.add("fp-menu-header"),this.menuHeader.append(this.menuTitle,this.closeEle),this.menu.classList.add("fp-menu"),this.menu.append(this.menuHeader,this.olEle),this.closeEle.classList.add("fp-close"),this.closeEle.textContent="×",this.menuContainer.classList.add(o),this.menuContainer.append(this.summaryEle,this.menu),this.menuContainer.addEventListener(t,t=>{if(t.defaultPrevented)return;t.preventDefault();const n=this.menuContainer.open;n||(u(),document.active_menu=this.menuContainer),this.menuContainer.open=!n,e.root.classList.toggle(s,!n),this.summaryEle.setAttribute("aria-expanded",n?"false":"true")}),this.addEventListener("focusin",e=>{e.target;HTMLLIElement}),this.addEventListener("focusout",e=>{e.target;HTMLLIElement}),this.append(this.menuContainer),this.olEle.setAttribute("aria-labelledby",this.summaryEle.id),this.olEle.setAttribute("role","menu"),this.summaryEle.setAttribute("aria-haspopup","true"),this.summaryEle.setAttribute("aria-controls",this.olEle.id),this.summaryEle.setAttribute("tabindex","0"),this.summaryEle.setAttribute("aria-expanded","false"),this.summaryEle.setAttribute("role","button")}get options(){return this.olEle.querySelectorAll("li")}setMenuAttrs(e){if(this.className=e.class,this.toggle_visibility(!0),this.summaryEle.id||(this.summaryEle.id=e.id||c()),this.summaryEle.setAttribute("aria-label",e.menuTitle||"Menu"),e.summaryTitle&&(this.summaryEle.textContent=e.summaryTitle),e.summaryIcon){const t=i(this.player,e.summaryIcon);t.setAttribute("tabindex",""),this.summaryEle.append(t)}e.menuTitle&&(this.menuTitle.textContent=e.menuTitle),this.menu.classList.toggle("fp-icons",!!e.icons),this.addEventListener(e.options_event,e=>{this.render(e.data)}),e.item_selected_event&&this.addEventListener(e.item_selected_event,e=>{void 0!==e.data&&this.select_item(e.data.selected_index)})}render(e){this.olEle&&(this.olEle.innerHTML="",e&&e.forEach(this.menuOption,this),this.toggle_visibility(!(null==e?void 0:e.length)))}menuOption(e,n){const i=document.createElement("li");i.setAttribute("tabindex","0"),e.icon&&i.append(e.icon);const s=document.createElement("span");s.textContent=e.text,i.append(s),this.olEle.appendChild(i),e.isButton?(i.setAttribute("role","menuitem"),i.addEventListener(t,()=>{"function"==typeof e.onclick&&e.onclick()})):(i.setAttribute("role","menuitemradio"),i.setAttribute("aria-checked","false"),i.addEventListener(t,()=>{this.select_item(n),"function"==typeof e.onclick&&e.onclick()}),e.selected&&this.select_item(n))}select_item(e){var t;if(this.options[e]&&!(null===(t=this.options[e])||void 0===t?void 0:t.hasAttribute("aria-checked")))throw new Error("Cannot select a button-only item");this.options.forEach((t,n)=>{t.hasAttribute("aria-checked")&&(t.classList.toggle(l,n===e),t.setAttribute("aria-checked",n===e?"true":"false"))})}unselect_item(){this.options.forEach(e=>{e.classList.remove(l),e.hasAttribute("aria-checked")&&e.setAttribute("aria-checked","false")})}toggle_visibility(e){this.classList.toggle(r,e),this.menu.style.setProperty("display",e?"none":"flex")}}function u(){Array.from(document.querySelectorAll(".fp-engine")).forEach(e=>{var t;const n=e.root.querySelector(a);n&&(n.open=!1,null===(t=n.querySelector("summary"))||void 0===t||t.removeAttribute("aria-expanded"),e.root.classList.toggle(s,!1))})}function c(){return Math.random().toString(36).replace(/[^a-z]+/g,"").substr(0,5)}function m(e,t,n){const i=function(e,t){const n=new CustomEvent(e,{detail:t,cancelable:!0});return t&&Object.defineProperty(n,"data",{get:()=>t}),n}(t,n);return e.dispatchEvent(i),e}document.addEventListener(t,function(e){this.active_menu&&!e.composedPath().includes(this.active_menu)&&(u(),this.active_menu=void 0)}),function(){let e=!1;try{const t=Object.defineProperty({},"passive",{get:function(){e=!0}});window.addEventListener("testPassive",null,t),window.removeEventListener("testPassive",null,t)}catch(e){}}();const d="flowplayer-quality-menu",h="quality:set";var p,f=Object.freeze({__proto__:null,SET_QUALITY:h,TRACKS:"quality:tracks",SWITCH:"quality:update",QUALITIES:n});const y=((p=class Qsel{constructor(e){((e,t,n)=>{window.customElements.get(t)||window.customElements.define(t,n),e.customElements.get(t)||e.customElements.set(t,t)})(e,d,class extends FlowplayerMenu{})}init(t,s,o){if(!1===t.qsel)return;const l=i(o,d);l instanceof FlowplayerMenu&&l.setMenuAttrs({summaryTitle:"HD",menuTitle:o.i18n("qsel.menu_title"),class:"fp-qsel",options_event:p.events.TRACKS,item_selected_event:p.events.SWITCH}),o.on("mount",function(){var e;null===(e=function(e,t){const n=e._customElements.get(t);return n&&e.root.querySelector(n)||void 0}(o,o.hasState("is-tv")?"flowplayer-tv-menu":"flowplayer-control"))||void 0===e||e.append(l)}),o.on(n,n=>{if(!Array.isArray(n.detail))return;const i=n.detail,s=e(t,"qsel.labels",[]);m(l,p.events.TRACKS,i.flatMap((e,t)=>"boolean"!=typeof s[t]||s[t]?{text:v(e,s[t]),onclick:E.bind(0,o,e)}:[])),l instanceof FlowplayerMenu&&l.toggle_visibility(i.length<2)})}}).pluginName="qsel",p.events=f,p);function E(e,t){e.emit(h,t)}function v(e,t){return t||(e.height?`${e.height}p${e.height>719?" HD":""}`:e.width?`${e.width}p${e.height>1279?" HD":""}`:"name"in e&&e.name?e.name:"0p")}return function(e,t){if("object"==typeof exports&&"undefined"!=typeof module)return t;if(null===document.currentScript)return t;"flowplayer"in e||(e.flowplayer={extensions:[]});const n=e.flowplayer;return"function"==typeof n?(n(t),t):(Array.isArray(n.extensions)||(n.extensions=[]),~n.extensions.indexOf(t)||n.extensions.push(t),t)}(window,y)});
1
+ !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):((e="undefined"!=typeof globalThis?globalThis:e||self).flowplayer=e.flowplayer||{},e.flowplayer.qsel=t())}(this,function(){"use strict";function e(e,t,i){const n=function(e){return Array.isArray(e)?e.slice(0):e.split(".")}(t);for(;n.length;){if(null==e)return i;const t=n.shift();if("string"!=typeof t)return i;e=e[t]}return null==e?i:e}const t="click",i="qualities",n=(e,t)=>new(((e,t)=>{const i=e.get(t);if(!i)throw new Error(`no flowplayer component with the name ${t} exists`);const n=window.customElements.get(t);if(!n)throw new Error(`no default flowplayer component with the name ${t} exists`);const s=window.customElements.get(i);return"function"!=typeof s?n:s})(e._customElements,t))(e);class FlowplayerComponent extends HTMLElement{constructor(e){super(),this.player=e}}const s="has-menu-opened",l="fp-menu-container",o="fp-on",r="fp-invis",a="details[open]."+l;class FlowplayerMenu extends FlowplayerComponent{constructor(e){super(e),this.player=e,this.menuContainer=document.createElement("details"),this.summaryEle=document.createElement("summary"),this.menuHeader=document.createElement("div"),this.menuTitle=document.createElement("h3"),this.olEle=document.createElement("ol"),this.olEle.id=c(),this.menu=document.createElement("div"),this.closeEle=document.createElement("span"),this.menuHeader.classList.add("fp-menu-header"),this.menuHeader.append(this.menuTitle,this.closeEle),this.menu.classList.add("fp-menu"),this.menu.append(this.menuHeader,this.olEle),this.closeEle.classList.add("fp-close"),this.closeEle.textContent="×",this.menuContainer.classList.add(l),this.menuContainer.append(this.summaryEle,this.menu),this.menuContainer.addEventListener(t,t=>{if(t.defaultPrevented)return;t.preventDefault();const i=this.menuContainer.open;i||(u(),document.active_menu=this.menuContainer),this.menuContainer.open=!i,e.root.classList.toggle(s,!i),this.summaryEle.setAttribute("aria-expanded",i?"false":"true")}),this.addEventListener("focusin",e=>{e.target;HTMLLIElement}),this.addEventListener("focusout",e=>{e.target;HTMLLIElement}),this.append(this.menuContainer),this.olEle.setAttribute("aria-labelledby",this.summaryEle.id),this.olEle.setAttribute("role","menu"),this.summaryEle.setAttribute("aria-haspopup","true"),this.summaryEle.setAttribute("aria-controls",this.olEle.id),this.summaryEle.setAttribute("tabindex","0"),this.summaryEle.setAttribute("aria-expanded","false"),this.summaryEle.setAttribute("role","button")}get options(){return this.olEle.querySelectorAll("li")}setMenuAttrs(e){if(this.className=e.class,this.toggle_visibility(!0),this.summaryEle.id||(this.summaryEle.id=e.id||c()),this.summaryEle.setAttribute("aria-label",e.menuTitle||"Menu"),e.summaryTitle&&(this.summaryEle.textContent=e.summaryTitle),e.summaryIcon){const t=n(this.player,e.summaryIcon);t.setAttribute("tabindex",""),this.summaryEle.append(t)}e.menuTitle&&(this.menuTitle.textContent=e.menuTitle),this.menu.classList.toggle("fp-icons",!!e.icons),this.addEventListener(e.options_event,e=>{this.render(e.data)}),e.item_selected_event&&this.addEventListener(e.item_selected_event,e=>{void 0!==e.data&&this.select_item(e.data.selected_index)})}render(e){this.olEle&&(this.olEle.innerHTML="",e&&e.forEach(this.menuOption,this),this.toggle_visibility(!(null==e?void 0:e.length)))}menuOption(e,i){const n=document.createElement("li");n.setAttribute("tabindex","0"),e.icon&&n.append(e.icon);const s=document.createElement("span");s.textContent=e.text,n.append(s),this.olEle.appendChild(n),e.isButton?(n.setAttribute("role","menuitem"),n.addEventListener(t,()=>{"function"==typeof e.onclick&&e.onclick()})):(n.setAttribute("role","menuitemradio"),n.setAttribute("aria-checked","false"),n.addEventListener(t,()=>{this.select_item(i),"function"==typeof e.onclick&&e.onclick()}),e.selected&&this.select_item(i))}select_item(e){var t;if(this.options[e]&&!(null===(t=this.options[e])||void 0===t?void 0:t.hasAttribute("aria-checked")))throw new Error("Cannot select a button-only item");this.options.forEach((t,i)=>{t.hasAttribute("aria-checked")&&(t.classList.toggle(o,i===e),t.setAttribute("aria-checked",i===e?"true":"false"))})}unselect_item(){this.options.forEach(e=>{e.classList.remove(o),e.hasAttribute("aria-checked")&&e.setAttribute("aria-checked","false")})}toggle_visibility(e){this.classList.toggle(r,e),this.menu.style.setProperty("display",e?"none":"flex")}}function u(){Array.from(document.querySelectorAll(".fp-engine")).forEach(e=>{var t;const i=e.root.querySelector(a);i&&(i.open=!1,null===(t=i.querySelector("summary"))||void 0===t||t.removeAttribute("aria-expanded"),e.root.classList.toggle(s,!1))})}function c(){return Math.random().toString(36).replace(/[^a-z]+/g,"").substr(0,5)}function d(e,t,i){const n=function(e,t){const i=new CustomEvent(e,{detail:t,cancelable:!0});return t&&Object.defineProperty(i,"data",{get:()=>t}),i}(t,i);return e.dispatchEvent(n),e}document.addEventListener(t,function(e){this.active_menu&&!e.composedPath().includes(this.active_menu)&&(u(),this.active_menu=void 0)}),function(){let e=!1;try{const t=Object.defineProperty({},"passive",{get:function(){e=!0}});window.addEventListener("testPassive",null,t),window.removeEventListener("testPassive",null,t)}catch(e){}}();const m="flowplayer-quality-menu",h="quality:set";var p,f=Object.freeze({__proto__:null,SET_QUALITY:h,TRACKS:"quality:tracks",SWITCH:"quality:update",QUALITIES:i});function y(e){return e instanceof FlowplayerMenu}function E(e){return e.find(e=>"level"in e&&-1===e.level||"index"in e&&-1===e.index)}function v(e,t){return t||(e.height?`${e.height}p${e.height>719?" HD":""}`:e.width?`${e.width}p${e.height>1279?" HD":""}`:"name"in e&&e.name?e.name:"0p")}function g(e,t,i,n){const s=E(t),l=e.querySelector("li:last-child span");l&&s&&(l.textContent=n?`${v(s)} - ${v(i)}`:v(s)+"")}function b(t,i,n,s){if(y(n)&&!e(i.opts,"qsel.labels")){const e=s===E(t.qualities);e&&-1===t.current.index||g(n,t.qualities,e?t.qualities[t.current.index]:s,e)}i.emit(h,s)}const x=((p=class Qsel{constructor(e){this.qualities=[],this.current={automatic:!0,index:-1},((e,t,i)=>{window.customElements.get(t)||window.customElements.define(t,i),e.customElements.get(t)||e.customElements.set(t,t)})(e,m,class extends FlowplayerMenu{})}init(t,s,l){const o=n(l,m);y(o)&&o.setMenuAttrs({summaryTitle:"HD",menuTitle:l.i18n("qsel.menu_title"),class:"fp-qsel",options_event:p.events.TRACKS,item_selected_event:p.events.SWITCH}),l.on("src",()=>{this.qualities=[],this.current={automatic:!0,index:-1},d(o,p.events.TRACKS,[])}),l.on("mount",function(){var e;null===(e=function(e,t){const i=e._customElements.get(t);return i&&e.root.querySelector(i)||void 0}(l,l.hasState("is-tv")?"flowplayer-tv-menu":"flowplayer-control"))||void 0===e||e.append(o)}),l.on("qualitychange",i=>{const n=i.detail;var s,l;this.current.automatic=n.automatic,this.current.index=(s=this.qualities,l=n.after,s.findIndex(e=>"level"in e&&"level"in l?e.level===l.level:"id"in e?e.id===l.id:void 0)),!y(o)||e(t,"qsel.labels")||this.qualities.length<2||(d(o,p.events.SWITCH,{selected_index:this.current.automatic&&E(this.qualities)?this.qualities.length-1:this.current.index}),g(o,this.qualities,this.qualities[this.current.index],this.current.automatic))}),l.on(i,i=>{if(!Array.isArray(i.detail))return;this.qualities=i.detail;const n=e(t,"qsel.labels",[]);if(d(o,p.events.TRACKS,this.qualities.flatMap((e,t)=>"boolean"!=typeof n[t]||n[t]?{text:v(e,n[t]),onclick:b.bind(this,this,l,o,e)}:[])),y(o)&&o.toggle_visibility(this.qualities.length<2),this.qualities.length<2)return d(o,p.events.SWITCH,{selected_index:0});if(!e(t,"qsel.labels")){if(-1===this.current.index)return E(this.qualities)&&d(o,p.events.SWITCH,{selected_index:this.qualities.length-1});d(o,p.events.SWITCH,{selected_index:this.current.automatic&&E(this.qualities)?this.qualities.length-1:this.current.index}),y(o)&&this.current.automatic&&g(o,this.qualities,this.qualities[this.current.index],this.current.automatic)}})}}).pluginName="qsel",p.events=f,p);return function(e,t){if("object"==typeof exports&&"undefined"!=typeof module)return t;if(null===document.currentScript)return t;"flowplayer"in e||(e.flowplayer={extensions:[]});const i=e.flowplayer;return"function"==typeof i?(i(t),t):(Array.isArray(i.extensions)||(i.extensions=[]),~i.extensions.indexOf(t)||i.extensions.push(t),t)}(window,x)});
package/plugins/qul.d.ts CHANGED
@@ -955,6 +955,8 @@ declare class I18n implements Plugin_2 {
955
955
  };
956
956
  };
957
957
  init(config: Config, _root: never, video: Player): void;
958
+ /* Excluded from this release type: _nonLanguageFields */
959
+ /* Excluded from this release type: languagesLoaded */
958
960
  }
959
961
 
960
962
  declare const IN_VIEWPORT = "is-in-viewport";
@@ -1636,8 +1638,12 @@ QUALITY_CHANGE = "qualitychange";
1636
1638
  * @public
1637
1639
  */
1638
1640
  declare type QualityChangeEventDetail = {
1639
- before?: Level | Representation;
1640
- after?: Level | Representation;
1641
+ before?: (Level & {
1642
+ level?: number;
1643
+ }) | Representation;
1644
+ after: (Level & {
1645
+ level?: number;
1646
+ }) | Representation;
1641
1647
  plugin: string;
1642
1648
  automatic: boolean;
1643
1649
  /* Excluded from this release type: downscale */
package/plugins/rts.d.ts CHANGED
@@ -974,6 +974,8 @@ declare class I18n implements Plugin_2 {
974
974
  };
975
975
  };
976
976
  init(config: Config, _root: never, video: Player): void;
977
+ /* Excluded from this release type: _nonLanguageFields */
978
+ /* Excluded from this release type: languagesLoaded */
977
979
  }
978
980
 
979
981
  declare const IN_VIEWPORT = "is-in-viewport";
@@ -1842,8 +1844,12 @@ QUALITY_CHANGE = "qualitychange";
1842
1844
  * @public
1843
1845
  */
1844
1846
  declare type QualityChangeEventDetail = {
1845
- before?: Level | Representation;
1846
- after?: Level | Representation;
1847
+ before?: (Level & {
1848
+ level?: number;
1849
+ }) | Representation;
1850
+ after: (Level & {
1851
+ level?: number;
1852
+ }) | Representation;
1847
1853
  plugin: string;
1848
1854
  automatic: boolean;
1849
1855
  /* Excluded from this release type: downscale */