classicy 0.6.1 → 0.6.8

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 (170) hide show
  1. package/package.json +6 -3
  2. package/dist/Preview-DFWgeXbD.js +0 -87
  3. package/dist/Preview-DFWgeXbD.js.map +0 -1
  4. package/dist/classicy.css +0 -1
  5. package/dist/classicy.es.js +0 -34154
  6. package/dist/classicy.es.js.map +0 -1
  7. package/dist/classicy.umd.js +0 -3619
  8. package/dist/classicy.umd.js.map +0 -1
  9. package/dist/dash.all.min-DWS2dLrE.js +0 -18789
  10. package/dist/dash.all.min-DWS2dLrE.js.map +0 -1
  11. package/dist/hls-BoR3u0PC.js +0 -21705
  12. package/dist/hls-BoR3u0PC.js.map +0 -1
  13. package/dist/index-Cd0v-WM7.js +0 -15697
  14. package/dist/index-Cd0v-WM7.js.map +0 -1
  15. package/dist/mixin-CkMUTfmX.js +0 -731
  16. package/dist/mixin-CkMUTfmX.js.map +0 -1
  17. package/dist/react-BnzwZp9T.js +0 -357
  18. package/dist/react-BnzwZp9T.js.map +0 -1
  19. package/dist/react-BzHiAeII.js +0 -402
  20. package/dist/react-BzHiAeII.js.map +0 -1
  21. package/dist/react-Ct5L317G.js +0 -217
  22. package/dist/react-Ct5L317G.js.map +0 -1
  23. package/dist/react-DY0DOTNY.js +0 -356
  24. package/dist/react-DY0DOTNY.js.map +0 -1
  25. package/dist/react-D_7TFUvN.js +0 -437
  26. package/dist/react-D_7TFUvN.js.map +0 -1
  27. package/dist/react-Ql_PNI5h.js +0 -267
  28. package/dist/react-Ql_PNI5h.js.map +0 -1
  29. package/dist/react-_-oMoy3X.js +0 -503
  30. package/dist/react-_-oMoy3X.js.map +0 -1
  31. package/dist/react-b5Gp0-6S.js +0 -3067
  32. package/dist/react-b5Gp0-6S.js.map +0 -1
  33. package/dist/sounds/platinum/platinum.ac3 +0 -0
  34. package/dist/sounds/platinum/platinum.caf +0 -0
  35. package/dist/sounds/platinum/platinum.json +0 -174
  36. package/dist/sounds/platinum/platinum.m4a +0 -0
  37. package/dist/sounds/platinum/platinum.mp3 +0 -0
  38. package/dist/sounds/platinum/platinum.ogg +0 -0
  39. package/dist/sounds/platinum/platinum.wav +0 -0
  40. package/dist/types/assets/sounds/platinum/platinum.json.d.ts +0 -176
  41. package/dist/types/src/SystemFolder/ControlPanels/AppManager/ClassicyAppManager.d.ts +0 -98
  42. package/dist/types/src/SystemFolder/ControlPanels/AppManager/ClassicyAppManager.d.ts.map +0 -1
  43. package/dist/types/src/SystemFolder/ControlPanels/AppManager/ClassicyAppManagerContext.d.ts +0 -9
  44. package/dist/types/src/SystemFolder/ControlPanels/AppManager/ClassicyAppManagerContext.d.ts.map +0 -1
  45. package/dist/types/src/SystemFolder/ControlPanels/AppManager/ClassicyAppManagerUtils.d.ts +0 -7
  46. package/dist/types/src/SystemFolder/ControlPanels/AppManager/ClassicyAppManagerUtils.d.ts.map +0 -1
  47. package/dist/types/src/SystemFolder/ControlPanels/AppearanceManager/ClassicyAppearance.d.ts +0 -120
  48. package/dist/types/src/SystemFolder/ControlPanels/AppearanceManager/ClassicyAppearance.d.ts.map +0 -1
  49. package/dist/types/src/SystemFolder/ControlPanels/AppearanceManager/ClassicyAppearanceManager.d.ts +0 -3
  50. package/dist/types/src/SystemFolder/ControlPanels/AppearanceManager/ClassicyAppearanceManager.d.ts.map +0 -1
  51. package/dist/types/src/SystemFolder/ControlPanels/AppearanceManager/ClassicyColors.d.ts +0 -3
  52. package/dist/types/src/SystemFolder/ControlPanels/AppearanceManager/ClassicyColors.d.ts.map +0 -1
  53. package/dist/types/src/SystemFolder/ControlPanels/AppearanceManager/ClassicySize.d.ts +0 -5
  54. package/dist/types/src/SystemFolder/ControlPanels/AppearanceManager/ClassicySize.d.ts.map +0 -1
  55. package/dist/types/src/SystemFolder/ControlPanels/AppearanceManager/styles/themes.json.d.ts +0 -1433
  56. package/dist/types/src/SystemFolder/ControlPanels/ClassicyControlPanels.d.ts +0 -2
  57. package/dist/types/src/SystemFolder/ControlPanels/ClassicyControlPanels.d.ts.map +0 -1
  58. package/dist/types/src/SystemFolder/ControlPanels/DateAndTimeManager/ClassicyDateAndTimeManager.d.ts +0 -3
  59. package/dist/types/src/SystemFolder/ControlPanels/DateAndTimeManager/ClassicyDateAndTimeManager.d.ts.map +0 -1
  60. package/dist/types/src/SystemFolder/ControlPanels/DateAndTimeManager/ClassicyDateAndTimeManagerUtils.d.ts +0 -3
  61. package/dist/types/src/SystemFolder/ControlPanels/DateAndTimeManager/ClassicyDateAndTimeManagerUtils.d.ts.map +0 -1
  62. package/dist/types/src/SystemFolder/ControlPanels/SoundManager/ClassicySoundManager.d.ts +0 -3
  63. package/dist/types/src/SystemFolder/ControlPanels/SoundManager/ClassicySoundManager.d.ts.map +0 -1
  64. package/dist/types/src/SystemFolder/ControlPanels/SoundManager/ClassicySoundManagerContext.d.ts +0 -79
  65. package/dist/types/src/SystemFolder/ControlPanels/SoundManager/ClassicySoundManagerContext.d.ts.map +0 -1
  66. package/dist/types/src/SystemFolder/ControlPanels/SoundManager/ClassicySoundManagerLabels.json.d.ts +0 -185
  67. package/dist/types/src/SystemFolder/Finder/Finder.d.ts +0 -2
  68. package/dist/types/src/SystemFolder/Finder/Finder.d.ts.map +0 -1
  69. package/dist/types/src/SystemFolder/Finder/FinderContext.d.ts +0 -3
  70. package/dist/types/src/SystemFolder/Finder/FinderContext.d.ts.map +0 -1
  71. package/dist/types/src/SystemFolder/QuickTime/MoviePlayer/MoviePlayer.d.ts +0 -3
  72. package/dist/types/src/SystemFolder/QuickTime/MoviePlayer/MoviePlayer.d.ts.map +0 -1
  73. package/dist/types/src/SystemFolder/QuickTime/MoviePlayer/MoviePlayerContext.d.ts +0 -16
  74. package/dist/types/src/SystemFolder/QuickTime/MoviePlayer/MoviePlayerContext.d.ts.map +0 -1
  75. package/dist/types/src/SystemFolder/QuickTime/MoviePlayer/MoviePlayerUtils.d.ts +0 -14
  76. package/dist/types/src/SystemFolder/QuickTime/MoviePlayer/MoviePlayerUtils.d.ts.map +0 -1
  77. package/dist/types/src/SystemFolder/QuickTime/PictureViewer/PictureViewer.d.ts +0 -13
  78. package/dist/types/src/SystemFolder/QuickTime/PictureViewer/PictureViewer.d.ts.map +0 -1
  79. package/dist/types/src/SystemFolder/QuickTime/PictureViewer/PictureViewerContext.d.ts +0 -10
  80. package/dist/types/src/SystemFolder/QuickTime/PictureViewer/PictureViewerContext.d.ts.map +0 -1
  81. package/dist/types/src/SystemFolder/SystemResources/AboutWindow/ClassicyAboutWindow.d.ts +0 -11
  82. package/dist/types/src/SystemFolder/SystemResources/AboutWindow/ClassicyAboutWindow.d.ts.map +0 -1
  83. package/dist/types/src/SystemFolder/SystemResources/AboutWindow/ClassicyAboutWindowUtils.d.ts +0 -3
  84. package/dist/types/src/SystemFolder/SystemResources/AboutWindow/ClassicyAboutWindowUtils.d.ts.map +0 -1
  85. package/dist/types/src/SystemFolder/SystemResources/Analytics/useClassicyAnalytics.d.ts +0 -27
  86. package/dist/types/src/SystemFolder/SystemResources/Analytics/useClassicyAnalytics.d.ts.map +0 -1
  87. package/dist/types/src/SystemFolder/SystemResources/App/ClassicyApp.d.ts +0 -13
  88. package/dist/types/src/SystemFolder/SystemResources/App/ClassicyApp.d.ts.map +0 -1
  89. package/dist/types/src/SystemFolder/SystemResources/App/ClassicyAppUtils.d.ts +0 -21
  90. package/dist/types/src/SystemFolder/SystemResources/App/ClassicyAppUtils.d.ts.map +0 -1
  91. package/dist/types/src/SystemFolder/SystemResources/Boot/ClassicyBoot.d.ts +0 -3
  92. package/dist/types/src/SystemFolder/SystemResources/Boot/ClassicyBoot.d.ts.map +0 -1
  93. package/dist/types/src/SystemFolder/SystemResources/Button/ClassicyButton.d.ts +0 -12
  94. package/dist/types/src/SystemFolder/SystemResources/Button/ClassicyButton.d.ts.map +0 -1
  95. package/dist/types/src/SystemFolder/SystemResources/Checkbox/ClassicyCheckbox.d.ts +0 -12
  96. package/dist/types/src/SystemFolder/SystemResources/Checkbox/ClassicyCheckbox.d.ts.map +0 -1
  97. package/dist/types/src/SystemFolder/SystemResources/ContextualMenu/ClassicyContextualMenu.d.ts +0 -10
  98. package/dist/types/src/SystemFolder/SystemResources/ContextualMenu/ClassicyContextualMenu.d.ts.map +0 -1
  99. package/dist/types/src/SystemFolder/SystemResources/ControlGroup/ClassicyControlGroup.d.ts +0 -9
  100. package/dist/types/src/SystemFolder/SystemResources/ControlGroup/ClassicyControlGroup.d.ts.map +0 -1
  101. package/dist/types/src/SystemFolder/SystemResources/ControlLabel/ClassicyControlLabel.d.ts +0 -17
  102. package/dist/types/src/SystemFolder/SystemResources/ControlLabel/ClassicyControlLabel.d.ts.map +0 -1
  103. package/dist/types/src/SystemFolder/SystemResources/DatePicker/ClassicyDatePicker.d.ts +0 -14
  104. package/dist/types/src/SystemFolder/SystemResources/DatePicker/ClassicyDatePicker.d.ts.map +0 -1
  105. package/dist/types/src/SystemFolder/SystemResources/DatePicker/ClassicyDatePickerUtils.d.ts +0 -3
  106. package/dist/types/src/SystemFolder/SystemResources/DatePicker/ClassicyDatePickerUtils.d.ts.map +0 -1
  107. package/dist/types/src/SystemFolder/SystemResources/Desktop/ClassicyDesktop.d.ts +0 -7
  108. package/dist/types/src/SystemFolder/SystemResources/Desktop/ClassicyDesktop.d.ts.map +0 -1
  109. package/dist/types/src/SystemFolder/SystemResources/Desktop/ClassicyDesktopIcon.d.ts +0 -14
  110. package/dist/types/src/SystemFolder/SystemResources/Desktop/ClassicyDesktopIcon.d.ts.map +0 -1
  111. package/dist/types/src/SystemFolder/SystemResources/Desktop/ClassicyDesktopIconContext.d.ts +0 -5
  112. package/dist/types/src/SystemFolder/SystemResources/Desktop/ClassicyDesktopIconContext.d.ts.map +0 -1
  113. package/dist/types/src/SystemFolder/SystemResources/Desktop/ClassicyDesktopManager.d.ts +0 -30
  114. package/dist/types/src/SystemFolder/SystemResources/Desktop/ClassicyDesktopManager.d.ts.map +0 -1
  115. package/dist/types/src/SystemFolder/SystemResources/Desktop/ClassicyDesktopWindowManagerContext.d.ts +0 -108
  116. package/dist/types/src/SystemFolder/SystemResources/Desktop/ClassicyDesktopWindowManagerContext.d.ts.map +0 -1
  117. package/dist/types/src/SystemFolder/SystemResources/Desktop/MenuBar/ClassicyDesktopMenuBar.d.ts +0 -3
  118. package/dist/types/src/SystemFolder/SystemResources/Desktop/MenuBar/ClassicyDesktopMenuBar.d.ts.map +0 -1
  119. package/dist/types/src/SystemFolder/SystemResources/Desktop/MenuBar/Widgets/Sound/ClassicyDesktopMenuWidgetSound.d.ts +0 -7
  120. package/dist/types/src/SystemFolder/SystemResources/Desktop/MenuBar/Widgets/Sound/ClassicyDesktopMenuWidgetSound.d.ts.map +0 -1
  121. package/dist/types/src/SystemFolder/SystemResources/Desktop/MenuBar/Widgets/Time/ClassicyDesktopMenuWidgetTime.d.ts +0 -3
  122. package/dist/types/src/SystemFolder/SystemResources/Desktop/MenuBar/Widgets/Time/ClassicyDesktopMenuWidgetTime.d.ts.map +0 -1
  123. package/dist/types/src/SystemFolder/SystemResources/Disclosure/ClassicyDisclosure.d.ts +0 -10
  124. package/dist/types/src/SystemFolder/SystemResources/Disclosure/ClassicyDisclosure.d.ts.map +0 -1
  125. package/dist/types/src/SystemFolder/SystemResources/File/ClassicyFileBrowser.d.ts +0 -13
  126. package/dist/types/src/SystemFolder/SystemResources/File/ClassicyFileBrowser.d.ts.map +0 -1
  127. package/dist/types/src/SystemFolder/SystemResources/File/ClassicyFileBrowserUtils.d.ts +0 -7
  128. package/dist/types/src/SystemFolder/SystemResources/File/ClassicyFileBrowserUtils.d.ts.map +0 -1
  129. package/dist/types/src/SystemFolder/SystemResources/File/ClassicyFileBrowserViewIcons.d.ts +0 -12
  130. package/dist/types/src/SystemFolder/SystemResources/File/ClassicyFileBrowserViewIcons.d.ts.map +0 -1
  131. package/dist/types/src/SystemFolder/SystemResources/File/ClassicyFileBrowserViewTable.d.ts +0 -14
  132. package/dist/types/src/SystemFolder/SystemResources/File/ClassicyFileBrowserViewTable.d.ts.map +0 -1
  133. package/dist/types/src/SystemFolder/SystemResources/File/ClassicyFileSystem.d.ts +0 -29
  134. package/dist/types/src/SystemFolder/SystemResources/File/ClassicyFileSystem.d.ts.map +0 -1
  135. package/dist/types/src/SystemFolder/SystemResources/File/ClassicyFileSystemModel.d.ts +0 -37
  136. package/dist/types/src/SystemFolder/SystemResources/File/ClassicyFileSystemModel.d.ts.map +0 -1
  137. package/dist/types/src/SystemFolder/SystemResources/File/DefaultClassicyFileSystem.d.ts +0 -94
  138. package/dist/types/src/SystemFolder/SystemResources/File/DefaultClassicyFileSystem.d.ts.map +0 -1
  139. package/dist/types/src/SystemFolder/SystemResources/Icon/ClassicyIcon.d.ts +0 -14
  140. package/dist/types/src/SystemFolder/SystemResources/Icon/ClassicyIcon.d.ts.map +0 -1
  141. package/dist/types/src/SystemFolder/SystemResources/Input/ClassicyInput.d.ts +0 -15
  142. package/dist/types/src/SystemFolder/SystemResources/Input/ClassicyInput.d.ts.map +0 -1
  143. package/dist/types/src/SystemFolder/SystemResources/Menu/ClassicyMenu.d.ts +0 -29
  144. package/dist/types/src/SystemFolder/SystemResources/Menu/ClassicyMenu.d.ts.map +0 -1
  145. package/dist/types/src/SystemFolder/SystemResources/PopUpMenu/ClassicyPopUpMenu.d.ts +0 -18
  146. package/dist/types/src/SystemFolder/SystemResources/PopUpMenu/ClassicyPopUpMenu.d.ts.map +0 -1
  147. package/dist/types/src/SystemFolder/SystemResources/ProgressBar/ClassicyProgressBar.d.ts +0 -1
  148. package/dist/types/src/SystemFolder/SystemResources/ProgressBar/ClassicyProgressBar.d.ts.map +0 -1
  149. package/dist/types/src/SystemFolder/SystemResources/QuickTime/QuickTimeMovieEmbed.d.ts +0 -16
  150. package/dist/types/src/SystemFolder/SystemResources/QuickTime/QuickTimeMovieEmbed.d.ts.map +0 -1
  151. package/dist/types/src/SystemFolder/SystemResources/QuickTime/QuickTimeUtils.d.ts +0 -3
  152. package/dist/types/src/SystemFolder/SystemResources/QuickTime/QuickTimeUtils.d.ts.map +0 -1
  153. package/dist/types/src/SystemFolder/SystemResources/RadioInput/ClassicyRadioInput.d.ts +0 -20
  154. package/dist/types/src/SystemFolder/SystemResources/RadioInput/ClassicyRadioInput.d.ts.map +0 -1
  155. package/dist/types/src/SystemFolder/SystemResources/RichTextEditor/ClassicyRichTextEditor.d.ts +0 -9
  156. package/dist/types/src/SystemFolder/SystemResources/RichTextEditor/ClassicyRichTextEditor.d.ts.map +0 -1
  157. package/dist/types/src/SystemFolder/SystemResources/Tabs/ClassicyTabs.d.ts +0 -11
  158. package/dist/types/src/SystemFolder/SystemResources/Tabs/ClassicyTabs.d.ts.map +0 -1
  159. package/dist/types/src/SystemFolder/SystemResources/TextEditor/ClassicyTextEditor.d.ts +0 -1
  160. package/dist/types/src/SystemFolder/SystemResources/TextEditor/ClassicyTextEditor.d.ts.map +0 -1
  161. package/dist/types/src/SystemFolder/SystemResources/TimePicker/ClassicyTimePicker.d.ts +0 -15
  162. package/dist/types/src/SystemFolder/SystemResources/TimePicker/ClassicyTimePicker.d.ts.map +0 -1
  163. package/dist/types/src/SystemFolder/SystemResources/Window/ClassicyWindow.d.ts +0 -29
  164. package/dist/types/src/SystemFolder/SystemResources/Window/ClassicyWindow.d.ts.map +0 -1
  165. package/dist/types/src/SystemFolder/SystemResources/Window/ClassicyWindowContext.d.ts +0 -19
  166. package/dist/types/src/SystemFolder/SystemResources/Window/ClassicyWindowContext.d.ts.map +0 -1
  167. package/dist/types/src/index.d.ts +0 -58
  168. package/dist/types/src/index.d.ts.map +0 -1
  169. package/dist/types/vite.config.d.ts +0 -3
  170. package/dist/types/vite.config.d.ts.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"index-Cd0v-WM7.js","sources":["../node_modules/mux-embed/dist/mux.mjs","../node_modules/@mux/playback-core/dist/index.mjs","../node_modules/@mux/mux-video/dist/base.mjs","../node_modules/castable-video/castable-utils.js","../node_modules/castable-video/castable-remote-playback.js","../node_modules/castable-video/castable-mixin.js","../node_modules/@mux/mux-video/dist/index.mjs","../node_modules/media-chrome/dist/constants.js","../node_modules/media-chrome/dist/utils/utils.js","../node_modules/media-chrome/dist/utils/time.js","../node_modules/media-chrome/dist/lang/en.js","../node_modules/media-chrome/dist/utils/i18n.js","../node_modules/media-chrome/dist/utils/server-safe-globals.js","../node_modules/media-chrome/dist/utils/resize-observer.js","../node_modules/media-chrome/dist/utils/element-utils.js","../node_modules/media-chrome/dist/media-gesture-receiver.js","../node_modules/media-chrome/dist/media-container.js","../node_modules/media-chrome/dist/utils/attribute-token-list.js","../node_modules/media-chrome/dist/utils/captions.js","../node_modules/media-chrome/dist/utils/fullscreen-api.js","../node_modules/media-chrome/dist/utils/platform-tests.js","../node_modules/media-chrome/dist/media-store/util.js","../node_modules/media-chrome/dist/media-store/state-mediator.js","../node_modules/media-chrome/dist/media-store/request-map.js","../node_modules/media-chrome/dist/media-store/media-store.js","../node_modules/media-chrome/dist/media-controller.js","../node_modules/media-chrome/dist/media-tooltip.js","../node_modules/media-chrome/dist/media-chrome-button.js","../node_modules/media-chrome/dist/media-airplay-button.js","../node_modules/media-chrome/dist/media-captions-button.js","../node_modules/media-chrome/dist/media-cast-button.js","../node_modules/media-chrome/dist/media-chrome-dialog.js","../node_modules/media-chrome/dist/media-chrome-range.js","../node_modules/media-chrome/dist/media-control-bar.js","../node_modules/media-chrome/dist/media-text-display.js","../node_modules/media-chrome/dist/media-duration-display.js","../node_modules/media-chrome/dist/labels/labels.js","../node_modules/media-chrome/dist/media-error-dialog.js","../node_modules/media-chrome/dist/media-keyboard-shortcuts-dialog.js","../node_modules/media-chrome/dist/media-fullscreen-button.js","../node_modules/media-chrome/dist/media-live-button.js","../node_modules/media-chrome/dist/media-loading-indicator.js","../node_modules/media-chrome/dist/media-mute-button.js","../node_modules/media-chrome/dist/media-pip-button.js","../node_modules/media-chrome/dist/media-playback-rate-button.js","../node_modules/media-chrome/dist/media-play-button.js","../node_modules/media-chrome/dist/media-poster-image.js","../node_modules/media-chrome/dist/media-preview-chapter-display.js","../node_modules/media-chrome/dist/media-preview-thumbnail.js","../node_modules/media-chrome/dist/media-preview-time-display.js","../node_modules/media-chrome/dist/media-seek-backward-button.js","../node_modules/media-chrome/dist/media-seek-forward-button.js","../node_modules/media-chrome/dist/media-time-display.js","../node_modules/media-chrome/dist/utils/range-animation.js","../node_modules/media-chrome/dist/media-time-range.js","../node_modules/media-chrome/dist/media-volume-range.js","../node_modules/media-chrome/dist/media-loop-button.js","../node_modules/media-chrome/dist/utils/template-parts.js","../node_modules/media-chrome/dist/utils/template-processor.js","../node_modules/media-chrome/dist/media-theme-element.js","../node_modules/media-chrome/dist/utils/anchor-utils.js","../node_modules/media-chrome/dist/utils/events.js","../node_modules/media-chrome/dist/menu/media-chrome-menu.js","../node_modules/media-chrome/dist/menu/media-chrome-menu-item.js","../node_modules/media-chrome/dist/menu/media-settings-menu.js","../node_modules/media-chrome/dist/menu/media-settings-menu-item.js","../node_modules/media-chrome/dist/menu/media-chrome-menu-button.js","../node_modules/media-chrome/dist/menu/media-settings-menu-button.js","../node_modules/media-chrome/dist/menu/media-audio-track-menu.js","../node_modules/media-chrome/dist/menu/media-audio-track-menu-button.js","../node_modules/media-chrome/dist/menu/media-captions-menu.js","../node_modules/media-chrome/dist/menu/media-captions-menu-button.js","../node_modules/media-chrome/dist/menu/media-playback-rate-menu.js","../node_modules/media-chrome/dist/menu/media-playback-rate-menu-button.js","../node_modules/media-chrome/dist/menu/media-rendition-menu.js","../node_modules/media-chrome/dist/menu/media-rendition-menu-button.js","../node_modules/media-chrome/dist/menu/media-context-menu.js","../node_modules/media-chrome/dist/menu/media-context-menu-item.js","../node_modules/@mux/mux-player/dist/base.mjs","../node_modules/@mux/mux-player/dist/index.mjs","../node_modules/@mux/mux-player-react/dist/index.mjs"],"sourcesContent":["var Yr=Object.create;var ft=Object.defineProperty;var Xr=Object.getOwnPropertyDescriptor;var $r=Object.getOwnPropertyNames;var Zr=Object.getPrototypeOf,ea=Object.prototype.hasOwnProperty;var pt=function(r,e){return function(){return r&&(e=r(r=0)),e}};var B=function(r,e){return function(){return e||r((e={exports:{}}).exports,e),e.exports}};var ta=function(r,e,t,i){if(e&&typeof e==\"object\"||typeof e==\"function\")for(var a=$r(e),n=0,o=a.length,s;n<o;n++)s=a[n],!ea.call(r,s)&&s!==t&&ft(r,s,{get:function(u){return e[u]}.bind(null,s),enumerable:!(i=Xr(e,s))||i.enumerable});return r};var V=function(r,e,t){return t=r!=null?Yr(Zr(r)):{},ta(e||!r||!r.__esModule?ft(t,\"default\",{value:r,enumerable:!0}):t,r)};var J=B(function(ji,yt){var xe;typeof window!=\"undefined\"?xe=window:typeof global!=\"undefined\"?xe=global:typeof self!=\"undefined\"?xe=self:xe={};yt.exports=xe});function U(r,e){return e!=null&&typeof Symbol!=\"undefined\"&&e[Symbol.hasInstance]?!!e[Symbol.hasInstance](r):U(r,e)}var te=pt(function(){te()});function Ne(r){\"@swc/helpers - typeof\";return r&&typeof Symbol!=\"undefined\"&&r.constructor===Symbol?\"symbol\":typeof r}var Je=pt(function(){});var Ye=B(function(Ts,cr){var lr=Array.prototype.slice;cr.exports=Pa;function Pa(r,e){for((\"length\"in r)||(r=[r]),r=lr.call(r);r.length;){var t=r.shift(),i=e(t);if(i)return i;t.childNodes&&t.childNodes.length&&(r=lr.call(t.childNodes).concat(r))}}});var fr=B(function(Es,_r){te();_r.exports=me;function me(r,e){if(!U(this,me))return new me(r,e);this.data=r,this.nodeValue=r,this.length=r.length,this.ownerDocument=e||null}me.prototype.nodeType=8;me.prototype.nodeName=\"#comment\";me.prototype.toString=function(){return\"[object Comment]\"}});var vr=B(function(xs,pr){te();pr.exports=ae;function ae(r,e){if(!U(this,ae))return new ae(r);this.data=r||\"\",this.length=this.data.length,this.ownerDocument=e||null}ae.prototype.type=\"DOMTextNode\";ae.prototype.nodeType=3;ae.prototype.nodeName=\"#text\";ae.prototype.toString=function(){return this.data};ae.prototype.replaceData=function(e,t,i){var a=this.data,n=a.substring(0,e),o=a.substring(e+t,a.length);this.data=n+i+o,this.length=this.data.length}});var Xe=B(function(Ds,mr){mr.exports=Ia;function Ia(r){var e=this,t=r.type;r.target||(r.target=e),e.listeners||(e.listeners={});var i=e.listeners[t];if(i)return i.forEach(function(a){r.currentTarget=e,typeof a==\"function\"?a(r):a.handleEvent(r)});e.parentNode&&e.parentNode.dispatchEvent(r)}});var $e=B(function(Ss,hr){hr.exports=Na;function Na(r,e){var t=this;t.listeners||(t.listeners={}),t.listeners[r]||(t.listeners[r]=[]),t.listeners[r].indexOf(e)===-1&&t.listeners[r].push(e)}});var Ze=B(function(Rs,yr){yr.exports=La;function La(r,e){var t=this;if(t.listeners&&t.listeners[r]){var i=t.listeners[r],a=i.indexOf(e);a!==-1&&i.splice(a,1)}}});var wr=B(function(As,Tr){Je();Tr.exports=gr;var Ca=[\"area\",\"base\",\"br\",\"col\",\"embed\",\"hr\",\"img\",\"input\",\"keygen\",\"link\",\"menuitem\",\"meta\",\"param\",\"source\",\"track\",\"wbr\"];function gr(r){switch(r.nodeType){case 3:return et(r.data);case 8:return\"<!--\"+r.data+\"-->\";default:return Ma(r)}}function Ma(r){var e=[],t=r.tagName;return r.namespaceURI===\"http://www.w3.org/1999/xhtml\"&&(t=t.toLowerCase()),e.push(\"<\"+t+Fa(r)+Ua(r)),Ca.indexOf(t)>-1?e.push(\" />\"):(e.push(\">\"),r.childNodes.length?e.push.apply(e,r.childNodes.map(gr)):r.textContent||r.innerText?e.push(et(r.textContent||r.innerText)):r.innerHTML&&e.push(r.innerHTML),e.push(\"</\"+t+\">\")),e.join(\"\")}function Ha(r,e){var t=Ne(r[e]);return e===\"style\"&&Object.keys(r.style).length>0?!0:r.hasOwnProperty(e)&&(t===\"string\"||t===\"boolean\"||t===\"number\")&&e!==\"nodeName\"&&e!==\"className\"&&e!==\"tagName\"&&e!==\"textContent\"&&e!==\"innerText\"&&e!==\"namespaceURI\"&&e!==\"innerHTML\"}function Ba(r){if(typeof r==\"string\")return r;var e=\"\";return Object.keys(r).forEach(function(t){var i=r[t];t=t.replace(/[A-Z]/g,function(a){return\"-\"+a.toLowerCase()}),e+=t+\":\"+i+\";\"}),e}function Ua(r){var e=r.dataset,t=[];for(var i in e)t.push({name:\"data-\"+i,value:e[i]});return t.length?br(t):\"\"}function br(r){var e=[];return r.forEach(function(t){var i=t.name,a=t.value;i===\"style\"&&(a=Ba(a)),e.push(i+'=\"'+Va(a)+'\"')}),e.length?\" \"+e.join(\" \"):\"\"}function Fa(r){var e=[];for(var t in r)Ha(r,t)&&e.push({name:t,value:r[t]});for(var i in r._attributes)for(var a in r._attributes[i]){var n=r._attributes[i][a],o=(n.prefix?n.prefix+\":\":\"\")+a;e.push({name:o,value:n.value})}return r.className&&e.push({name:\"class\",value:r.className}),e.length?br(e):\"\"}function et(r){var e=\"\";return typeof r==\"string\"?e=r:r&&(e=r.toString()),e.replace(/&/g,\"&amp;\").replace(/</g,\"&lt;\").replace(/>/g,\"&gt;\")}function Va(r){return et(r).replace(/\"/g,\"&quot;\")}});var rt=B(function(Ps,kr){te();var tt=Ye(),Wa=Xe(),ja=$e(),Ga=Ze(),Ja=wr(),Er=\"http://www.w3.org/1999/xhtml\";kr.exports=I;function I(r,e,t){if(!U(this,I))return new I(r);var i=t===void 0?Er:t||null;this.tagName=i===Er?String(r).toUpperCase():r,this.nodeName=this.tagName,this.className=\"\",this.dataset={},this.childNodes=[],this.parentNode=null,this.style={},this.ownerDocument=e||null,this.namespaceURI=i,this._attributes={},this.tagName===\"INPUT\"&&(this.type=\"text\")}I.prototype.type=\"DOMElement\";I.prototype.nodeType=1;I.prototype.appendChild=function(e){return e.parentNode&&e.parentNode.removeChild(e),this.childNodes.push(e),e.parentNode=this,e};I.prototype.replaceChild=function(e,t){e.parentNode&&e.parentNode.removeChild(e);var i=this.childNodes.indexOf(t);return t.parentNode=null,this.childNodes[i]=e,e.parentNode=this,t};I.prototype.removeChild=function(e){var t=this.childNodes.indexOf(e);return this.childNodes.splice(t,1),e.parentNode=null,e};I.prototype.insertBefore=function(e,t){e.parentNode&&e.parentNode.removeChild(e);var i=t==null?-1:this.childNodes.indexOf(t);return i>-1?this.childNodes.splice(i,0,e):this.childNodes.push(e),e.parentNode=this,e};I.prototype.setAttributeNS=function(e,t,i){var a=null,n=t,o=t.indexOf(\":\");if(o>-1&&(a=t.substr(0,o),n=t.substr(o+1)),this.tagName===\"INPUT\"&&t===\"type\")this.type=i;else{var s=this._attributes[e]||(this._attributes[e]={});s[n]={value:i,prefix:a}}};I.prototype.getAttributeNS=function(e,t){var i=this._attributes[e],a=i&&i[t]&&i[t].value;return this.tagName===\"INPUT\"&&t===\"type\"?this.type:typeof a!=\"string\"?null:a};I.prototype.removeAttributeNS=function(e,t){var i=this._attributes[e];i&&delete i[t]};I.prototype.hasAttributeNS=function(e,t){var i=this._attributes[e];return!!i&&t in i};I.prototype.setAttribute=function(e,t){return this.setAttributeNS(null,e,t)};I.prototype.getAttribute=function(e){return this.getAttributeNS(null,e)};I.prototype.removeAttribute=function(e){return this.removeAttributeNS(null,e)};I.prototype.hasAttribute=function(e){return this.hasAttributeNS(null,e)};I.prototype.removeEventListener=Ga;I.prototype.addEventListener=ja;I.prototype.dispatchEvent=Wa;I.prototype.focus=function(){};I.prototype.toString=function(){return Ja(this)};I.prototype.getElementsByClassName=function(e){var t=e.split(\" \"),i=[];return tt(this,function(a){if(a.nodeType===1){var n=a.className||\"\",o=n.split(\" \");t.every(function(s){return o.indexOf(s)!==-1})&&i.push(a)}}),i};I.prototype.getElementsByTagName=function(e){e=e.toLowerCase();var t=[];return tt(this.childNodes,function(i){i.nodeType===1&&(e===\"*\"||i.tagName.toLowerCase()===e)&&t.push(i)}),t};I.prototype.contains=function(e){return tt(this,function(t){return e===t})||!1}});var Dr=B(function(Ns,xr){te();var at=rt();xr.exports=K;function K(r){if(!U(this,K))return new K;this.childNodes=[],this.parentNode=null,this.ownerDocument=r||null}K.prototype.type=\"DocumentFragment\";K.prototype.nodeType=11;K.prototype.nodeName=\"#document-fragment\";K.prototype.appendChild=at.prototype.appendChild;K.prototype.replaceChild=at.prototype.replaceChild;K.prototype.removeChild=at.prototype.removeChild;K.prototype.toString=function(){return this.childNodes.map(function(e){return String(e)}).join(\"\")}});var Rr=B(function(Ls,Sr){Sr.exports=it;function it(r){}it.prototype.initEvent=function(e,t,i){this.type=e,this.bubbles=t,this.cancelable=i};it.prototype.preventDefault=function(){}});var Ar=B(function(Ms,qr){te();var Qa=Ye(),za=fr(),Ka=vr(),Re=rt(),Ya=Dr(),Xa=Rr(),$a=Xe(),Za=$e(),ei=Ze();qr.exports=Be;function Be(){if(!U(this,Be))return new Be;this.head=this.createElement(\"head\"),this.body=this.createElement(\"body\"),this.documentElement=this.createElement(\"html\"),this.documentElement.appendChild(this.head),this.documentElement.appendChild(this.body),this.childNodes=[this.documentElement],this.nodeType=9}var j=Be.prototype;j.createTextNode=function(e){return new Ka(e,this)};j.createElementNS=function(e,t){var i=e===null?null:String(e);return new Re(t,this,i)};j.createElement=function(e){return new Re(e,this)};j.createDocumentFragment=function(){return new Ya(this)};j.createEvent=function(e){return new Xa(e)};j.createComment=function(e){return new za(e,this)};j.getElementById=function(e){e=String(e);var t=Qa(this.childNodes,function(i){if(String(i.id)===e)return i});return t||null};j.getElementsByClassName=Re.prototype.getElementsByClassName;j.getElementsByTagName=Re.prototype.getElementsByTagName;j.contains=Re.prototype.contains;j.removeEventListener=ei;j.addEventListener=Za;j.dispatchEvent=$a});var Pr=B(function(Hs,Or){var ti=Ar();Or.exports=new ti});var nt=B(function(Bs,Nr){var Ir=typeof global!=\"undefined\"?global:typeof window!=\"undefined\"?window:{},ri=Pr(),qe;typeof document!=\"undefined\"?qe=document:(qe=Ir[\"__GLOBAL_DOCUMENT_CACHE@4\"],qe||(qe=Ir[\"__GLOBAL_DOCUMENT_CACHE@4\"]=ri));Nr.exports=qe});function vt(r){if(Array.isArray(r))return r}function mt(r,e){var t=r==null?null:typeof Symbol!=\"undefined\"&&r[Symbol.iterator]||r[\"@@iterator\"];if(t!=null){var i=[],a=!0,n=!1,o,s;try{for(t=t.call(r);!(a=(o=t.next()).done)&&(i.push(o.value),!(e&&i.length===e));a=!0);}catch(u){n=!0,s=u}finally{try{!a&&t.return!=null&&t.return()}finally{if(n)throw s}}return i}}function ht(){throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}function ke(r,e){(e==null||e>r.length)&&(e=r.length);for(var t=0,i=new Array(e);t<e;t++)i[t]=r[t];return i}function Ae(r,e){if(r){if(typeof r==\"string\")return ke(r,e);var t=Object.prototype.toString.call(r).slice(8,-1);if(t===\"Object\"&&r.constructor&&(t=r.constructor.name),t===\"Map\"||t===\"Set\")return Array.from(t);if(t===\"Arguments\"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t))return ke(r,e)}}function H(r,e){return vt(r)||mt(r,e)||Ae(r,e)||ht()}var be=V(J());var Ge=V(J());var gt=V(J()),ra={now:function(){var r=gt.default.performance,e=r&&r.timing,t=e&&e.navigationStart,i=typeof t==\"number\"&&typeof r.now==\"function\"?t+r.now():Date.now();return Math.round(i)}},A=ra;var ee=function(){var e,t,i;if(typeof((e=Ge.default.crypto)===null||e===void 0?void 0:e.getRandomValues)==\"function\"){i=new Uint8Array(32),Ge.default.crypto.getRandomValues(i);for(var a=0;a<32;a++)i[a]=i[a]%16}else{i=[];for(var n=0;n<32;n++)i[n]=Math.random()*16|0}var o=0;t=\"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx\".replace(/[xy]/g,function(p){var b=p===\"x\"?i[o]:i[o]&3|8;return o++,b.toString(16)});var s=A.now(),u=s==null?void 0:s.toString(16).substring(3);return u?t.substring(0,28)+u:t},Oe=function(){return(\"000000\"+(Math.random()*Math.pow(36,6)<<0).toString(36)).slice(-6)};var Q=function(e){if(e&&typeof e.nodeName!=\"undefined\")return e.muxId||(e.muxId=Oe()),e.muxId;var t;try{t=document.querySelector(e)}catch(i){}return t&&!t.muxId&&(t.muxId=e),(t==null?void 0:t.muxId)||e},se=function(e){var t;e&&typeof e.nodeName!=\"undefined\"?(t=e,e=Q(t)):t=document.querySelector(e);var i=t&&t.nodeName?t.nodeName.toLowerCase():\"\";return[t,e,i]};function bt(r){if(Array.isArray(r))return ke(r)}function Tt(r){if(typeof Symbol!=\"undefined\"&&r[Symbol.iterator]!=null||r[\"@@iterator\"]!=null)return Array.from(r)}function wt(){throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}function W(r){return bt(r)||Tt(r)||Ae(r)||wt()}var Y={TRACE:0,DEBUG:1,INFO:2,WARN:3,ERROR:4,SILENT:5},Et=function(r){var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:3,t,i,a,n,o,s=r?[console,r]:[console],u=(t=console.trace).bind.apply(t,W(s)),p=(i=console.info).bind.apply(i,W(s)),b=(a=console.debug).bind.apply(a,W(s)),k=(n=console.warn).bind.apply(n,W(s)),y=(o=console.error).bind.apply(o,W(s)),c=e;return{trace:function(){for(var T=arguments.length,x=new Array(T),m=0;m<T;m++)x[m]=arguments[m];if(!(c>Y.TRACE))return u.apply(void 0,W(x))},debug:function(){for(var T=arguments.length,x=new Array(T),m=0;m<T;m++)x[m]=arguments[m];if(!(c>Y.DEBUG))return b.apply(void 0,W(x))},info:function(){for(var T=arguments.length,x=new Array(T),m=0;m<T;m++)x[m]=arguments[m];if(!(c>Y.INFO))return p.apply(void 0,W(x))},warn:function(){for(var T=arguments.length,x=new Array(T),m=0;m<T;m++)x[m]=arguments[m];if(!(c>Y.WARN))return k.apply(void 0,W(x))},error:function(){for(var T=arguments.length,x=new Array(T),m=0;m<T;m++)x[m]=arguments[m];if(!(c>Y.ERROR))return y.apply(void 0,W(x))},get level(){return c},set level(v){v!==this.level&&(c=v!=null?v:e)}}};var q=Et(\"[mux]\");var Pe=V(J());function ce(){var r=Pe.default.doNotTrack||Pe.default.navigator&&Pe.default.navigator.doNotTrack;return r===\"1\"}function g(r){if(r===void 0)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return r}te();function D(r,e){if(!U(r,e))throw new TypeError(\"Cannot call a class as a function\")}function kt(r,e){for(var t=0;t<e.length;t++){var i=e[t];i.enumerable=i.enumerable||!1,i.configurable=!0,\"value\"in i&&(i.writable=!0),Object.defineProperty(r,i.key,i)}}function L(r,e,t){return e&&kt(r.prototype,e),t&&kt(r,t),r}function l(r,e,t){return e in r?Object.defineProperty(r,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):r[e]=t,r}function X(r){return X=Object.setPrototypeOf?Object.getPrototypeOf:function(t){return t.__proto__||Object.getPrototypeOf(t)},X(r)}function xt(r,e){for(;!Object.prototype.hasOwnProperty.call(r,e)&&(r=X(r),r!==null););return r}function De(r,e,t){return typeof Reflect!=\"undefined\"&&Reflect.get?De=Reflect.get:De=function(a,n,o){var s=xt(a,n);if(s){var u=Object.getOwnPropertyDescriptor(s,n);return u.get?u.get.call(o||a):u.value}},De(r,e,t||r)}function Ie(r,e){return Ie=Object.setPrototypeOf||function(i,a){return i.__proto__=a,i},Ie(r,e)}function Dt(r,e){if(typeof e!=\"function\"&&e!==null)throw new TypeError(\"Super expression must either be null or a function\");r.prototype=Object.create(e&&e.prototype,{constructor:{value:r,writable:!0,configurable:!0}}),e&&Ie(r,e)}function St(){if(typeof Reflect==\"undefined\"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy==\"function\")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch(r){return!1}}Je();function Rt(r,e){return e&&(Ne(e)===\"object\"||typeof e==\"function\")?e:g(r)}function qt(r){var e=St();return function(){var i=X(r),a;if(e){var n=X(this).constructor;a=Reflect.construct(i,arguments,n)}else a=i.apply(this,arguments);return Rt(this,a)}}var F=function(r){return re(r)[0]};var re=function(r){if(typeof r!=\"string\"||r===\"\")return[\"localhost\"];var e=/^(([^:\\/?#]+):)?(\\/\\/([^\\/?#]*))?([^?#]*)(\\?([^#]*))?(#(.*))?/,t=r.match(e)||[],i=t[4],a;return i&&(a=(i.match(/[^\\.]+\\.[^\\.]+$/)||[])[0]),[i,a]};var Le=V(J()),aa={exists:function(){var r=Le.default.performance,e=r&&r.timing;return e!==void 0},domContentLoadedEventEnd:function(){var r=Le.default.performance,e=r&&r.timing;return e&&e.domContentLoadedEventEnd},navigationStart:function(){var r=Le.default.performance,e=r&&r.timing;return e&&e.navigationStart}},_e=aa;function O(r,e,t){t=t===void 0?1:t,r[e]=r[e]||0,r[e]+=t}function ue(r){for(var e=1;e<arguments.length;e++){var t=arguments[e]!=null?arguments[e]:{},i=Object.keys(t);typeof Object.getOwnPropertySymbols==\"function\"&&(i=i.concat(Object.getOwnPropertySymbols(t).filter(function(a){return Object.getOwnPropertyDescriptor(t,a).enumerable}))),i.forEach(function(a){l(r,a,t[a])})}return r}function ia(r,e){var t=Object.keys(r);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(r);e&&(i=i.filter(function(a){return Object.getOwnPropertyDescriptor(r,a).enumerable})),t.push.apply(t,i)}return t}function fe(r,e){return e=e!=null?e:{},Object.getOwnPropertyDescriptors?Object.defineProperties(r,Object.getOwnPropertyDescriptors(e)):ia(Object(e)).forEach(function(t){Object.defineProperty(r,t,Object.getOwnPropertyDescriptor(e,t))}),r}var na=[\"x-cdn\",\"content-type\"],At=[\"x-request-id\",\"cf-ray\",\"x-amz-cf-id\",\"x-akamai-request-id\"],oa=na.concat(At);function pe(r){r=r||\"\";var e={},t=r.trim().split(/[\\r\\n]+/);return t.forEach(function(i){if(i){var a=i.split(\": \"),n=a.shift();n&&(oa.indexOf(n.toLowerCase())>=0||n.toLowerCase().indexOf(\"x-litix-\")===0)&&(e[n]=a.join(\": \"))}}),e}function de(r){if(r){var e=At.find(function(t){return r[t]!==void 0});return e?r[e]:void 0}}var sa=function(r){var e={};for(var t in r){var i=r[t],a=i[\"DATA-ID\"].search(\"io.litix.data.\");if(a!==-1){var n=i[\"DATA-ID\"].replace(\"io.litix.data.\",\"\");e[n]=i.VALUE}}return e},Ce=sa;var Me=function(r){if(!r)return{};var e=_e.navigationStart(),t=r.loading,i=t?t.start:r.trequest,a=t?t.first:r.tfirst,n=t?t.end:r.tload;return{bytesLoaded:r.total,requestStart:Math.round(e+i),responseStart:Math.round(e+a),responseEnd:Math.round(e+n)}},Se=function(r){if(!(!r||typeof r.getAllResponseHeaders!=\"function\"))return pe(r.getAllResponseHeaders())},Ot=function(r,e,t){var i=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{},a=arguments.length>4?arguments[4]:void 0,n=r.log,o=r.utils.secondsToMs,s=function(m){var f=parseInt(a.version),_;return f===1&&m.programDateTime!==null&&(_=m.programDateTime),f===0&&m.pdt!==null&&(_=m.pdt),_};if(!_e.exists()){n.warn(\"performance timing not supported. Not tracking HLS.js.\");return}var u=function(m,f){return r.emit(e,m,f)},p=function(m,f){var _=f.levels,d=f.audioTracks,h=f.url,w=f.stats,E=f.networkDetails,S=f.sessionData,N={},M={};_.forEach(function(G,oe){N[oe]={width:G.width,height:G.height,bitrate:G.bitrate,attrs:G.attrs}}),d.forEach(function(G,oe){M[oe]={name:G.name,language:G.lang,bitrate:G.bitrate}});var P=Me(w),R=P.bytesLoaded,Z=P.requestStart,Te=P.responseStart,we=P.responseEnd;u(\"requestcompleted\",fe(ue({},Ce(S)),{request_event_type:m,request_bytes_loaded:R,request_start:Z,request_response_start:Te,request_response_end:we,request_type:\"manifest\",request_hostname:F(h),request_response_headers:Se(E),request_rendition_lists:{media:N,audio:M,video:{}}}))};t.on(a.Events.MANIFEST_LOADED,p);var b=function(m,f){var _=f.details,d=f.level,h=f.networkDetails,w=f.stats,E=Me(w),S=E.bytesLoaded,N=E.requestStart,M=E.responseStart,P=E.responseEnd,R=_.fragments[_.fragments.length-1],Z=s(R)+o(R.duration);u(\"requestcompleted\",{request_event_type:m,request_bytes_loaded:S,request_start:N,request_response_start:M,request_response_end:P,request_current_level:d,request_type:\"manifest\",request_hostname:F(_.url),request_response_headers:Se(h),video_holdback:_.holdBack&&o(_.holdBack),video_part_holdback:_.partHoldBack&&o(_.partHoldBack),video_part_target_duration:_.partTarget&&o(_.partTarget),video_target_duration:_.targetduration&&o(_.targetduration),video_source_is_live:_.live,player_manifest_newest_program_time:isNaN(Z)?void 0:Z})};t.on(a.Events.LEVEL_LOADED,b);var k=function(m,f){var _=f.details,d=f.networkDetails,h=f.stats,w=Me(h),E=w.bytesLoaded,S=w.requestStart,N=w.responseStart,M=w.responseEnd;u(\"requestcompleted\",{request_event_type:m,request_bytes_loaded:E,request_start:S,request_response_start:N,request_response_end:M,request_type:\"manifest\",request_hostname:F(_.url),request_response_headers:Se(d)})};t.on(a.Events.AUDIO_TRACK_LOADED,k);var y=function(m,f){var _=f.stats,d=f.networkDetails,h=f.frag;_=_||h.stats;var w=Me(_),E=w.bytesLoaded,S=w.requestStart,N=w.responseStart,M=w.responseEnd,P=d?Se(d):void 0,R={request_event_type:m,request_bytes_loaded:E,request_start:S,request_response_start:N,request_response_end:M,request_hostname:d?F(d.responseURL):void 0,request_id:P?de(P):void 0,request_response_headers:P,request_media_duration:h.duration,request_url:d==null?void 0:d.responseURL};h.type===\"main\"?(R.request_type=\"media\",R.request_current_level=h.level,R.request_video_width=(t.levels[h.level]||{}).width,R.request_video_height=(t.levels[h.level]||{}).height,R.request_labeled_bitrate=(t.levels[h.level]||{}).bitrate):R.request_type=h.type,u(\"requestcompleted\",R)};t.on(a.Events.FRAG_LOADED,y);var c=function(m,f){var _=f.frag,d=_.start,h=s(_),w={currentFragmentPDT:h,currentFragmentStart:o(d)};u(\"fragmentchange\",w)};t.on(a.Events.FRAG_CHANGED,c);var v=function(m,f){var _=f.type,d=f.details,h=f.response,w=f.fatal,E=f.frag,S=f.networkDetails,N=(E==null?void 0:E.url)||f.url||\"\",M=S?Se(S):void 0;if((d===a.ErrorDetails.MANIFEST_LOAD_ERROR||d===a.ErrorDetails.MANIFEST_LOAD_TIMEOUT||d===a.ErrorDetails.FRAG_LOAD_ERROR||d===a.ErrorDetails.FRAG_LOAD_TIMEOUT||d===a.ErrorDetails.LEVEL_LOAD_ERROR||d===a.ErrorDetails.LEVEL_LOAD_TIMEOUT||d===a.ErrorDetails.AUDIO_TRACK_LOAD_ERROR||d===a.ErrorDetails.AUDIO_TRACK_LOAD_TIMEOUT||d===a.ErrorDetails.SUBTITLE_LOAD_ERROR||d===a.ErrorDetails.SUBTITLE_LOAD_TIMEOUT||d===a.ErrorDetails.KEY_LOAD_ERROR||d===a.ErrorDetails.KEY_LOAD_TIMEOUT)&&u(\"requestfailed\",{request_error:d,request_url:N,request_hostname:F(N),request_id:M?de(M):void 0,request_type:d===a.ErrorDetails.FRAG_LOAD_ERROR||d===a.ErrorDetails.FRAG_LOAD_TIMEOUT?\"media\":d===a.ErrorDetails.AUDIO_TRACK_LOAD_ERROR||d===a.ErrorDetails.AUDIO_TRACK_LOAD_TIMEOUT?\"audio\":d===a.ErrorDetails.SUBTITLE_LOAD_ERROR||d===a.ErrorDetails.SUBTITLE_LOAD_TIMEOUT?\"subtitle\":d===a.ErrorDetails.KEY_LOAD_ERROR||d===a.ErrorDetails.KEY_LOAD_TIMEOUT?\"encryption\":\"manifest\",request_error_code:h==null?void 0:h.code,request_error_text:h==null?void 0:h.text}),w){var P,R=\"\".concat(N?\"url: \".concat(N,\"\\n\"):\"\")+\"\".concat(h&&(h.code||h.text)?\"response: \".concat(h.code,\", \").concat(h.text,\"\\n\"):\"\")+\"\".concat(f.reason?\"failure reason: \".concat(f.reason,\"\\n\"):\"\")+\"\".concat(f.level?\"level: \".concat(f.level,\"\\n\"):\"\")+\"\".concat(f.parent?\"parent stream controller: \".concat(f.parent,\"\\n\"):\"\")+\"\".concat(f.buffer?\"buffer length: \".concat(f.buffer,\"\\n\"):\"\")+\"\".concat(f.error?\"error: \".concat(f.error,\"\\n\"):\"\")+\"\".concat(f.event?\"event: \".concat(f.event,\"\\n\"):\"\")+\"\".concat(f.err?\"error message: \".concat((P=f.err)===null||P===void 0?void 0:P.message,\"\\n\"):\"\");u(\"error\",{player_error_code:_,player_error_message:d,player_error_context:R})}};t.on(a.Events.ERROR,v);var T=function(m,f){var _=f.frag,d=_&&_._url||\"\";u(\"requestcanceled\",{request_event_type:m,request_url:d,request_type:\"media\",request_hostname:F(d)})};t.on(a.Events.FRAG_LOAD_EMERGENCY_ABORTED,T);var x=function(m,f){var _=f.level,d=t.levels[_];if(d&&d.attrs&&d.attrs.BANDWIDTH){var h=d.attrs.BANDWIDTH,w,E=parseFloat(d.attrs[\"FRAME-RATE\"]);isNaN(E)||(w=E),h?u(\"renditionchange\",{video_source_fps:w,video_source_bitrate:h,video_source_width:d.width,video_source_height:d.height,video_source_rendition_name:d.name,video_source_codec:d==null?void 0:d.videoCodec}):n.warn(\"missing BANDWIDTH from HLS manifest parsed by HLS.js\")}};t.on(a.Events.LEVEL_SWITCHED,x),t._stopMuxMonitor=function(){t.off(a.Events.MANIFEST_LOADED,p),t.off(a.Events.LEVEL_LOADED,b),t.off(a.Events.AUDIO_TRACK_LOADED,k),t.off(a.Events.FRAG_LOADED,y),t.off(a.Events.FRAG_CHANGED,c),t.off(a.Events.ERROR,v),t.off(a.Events.FRAG_LOAD_EMERGENCY_ABORTED,T),t.off(a.Events.LEVEL_SWITCHED,x),t.off(a.Events.DESTROYING,t._stopMuxMonitor),delete t._stopMuxMonitor},t.on(a.Events.DESTROYING,t._stopMuxMonitor)},Pt=function(r){r&&typeof r._stopMuxMonitor==\"function\"&&r._stopMuxMonitor()};var It=function(r,e){if(!r||!r.requestEndDate)return{};var t=F(r.url),i=r.url,a=r.bytesLoaded,n=new Date(r.requestStartDate).getTime(),o=new Date(r.firstByteDate).getTime(),s=new Date(r.requestEndDate).getTime(),u=isNaN(r.duration)?0:r.duration,p=typeof e.getMetricsFor==\"function\"?e.getMetricsFor(r.mediaType).HttpList:e.getDashMetrics().getHttpRequests(r.mediaType),b;p.length>0&&(b=pe(p[p.length-1]._responseHeaders||\"\"));var k=b?de(b):void 0;return{requestStart:n,requestResponseStart:o,requestResponseEnd:s,requestBytesLoaded:a,requestResponseHeaders:b,requestMediaDuration:u,requestHostname:t,requestUrl:i,requestId:k}},ua=function(r,e){var t=e.getQualityFor(r),i=e.getCurrentTrackFor(r).bitrateList;return i?{currentLevel:t,renditionWidth:i[t].width||null,renditionHeight:i[t].height||null,renditionBitrate:i[t].bandwidth}:{}},da=function(r){var e;return(e=r.match(/.*codecs\\*?=\"(.*)\"/))===null||e===void 0?void 0:e[1]},la=function(e){try{var t,i,a=(i=e.getVersion)===null||i===void 0||(t=i.call(e))===null||t===void 0?void 0:t.split(\".\").map(function(n){return parseInt(n)})[0];return a}catch(n){return!1}},Nt=function(r,e,t){var i=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{},a=r.log;if(!t||!t.on){a.warn(\"Invalid dash.js player reference. Monitoring blocked.\");return}var n=la(t),o=function(_,d){return r.emit(e,_,d)},s=function(_){var d=_.type,h=_.data,w=(h||{}).url;o(\"requestcompleted\",{request_event_type:d,request_start:0,request_response_start:0,request_response_end:0,request_bytes_loaded:-1,request_type:\"manifest\",request_hostname:F(w),request_url:w})};t.on(\"manifestLoaded\",s);var u={},p=function(_){if(typeof _.getRequests!=\"function\")return null;var d=_.getRequests({state:\"executed\"});return d.length===0?null:d[d.length-1]},b=function(_){var d=_.type,h=_.fragmentModel,w=_.chunk,E=p(h);k({type:d,request:E,chunk:w})},k=function(_){var d=_.type,h=_.chunk,w=_.request,E=(h||{}).mediaInfo,S=E||{},N=S.type,M=S.bitrateList;M=M||[];var P={};M.forEach(function(Ee,z){P[z]={},P[z].width=Ee.width,P[z].height=Ee.height,P[z].bitrate=Ee.bandwidth,P[z].attrs={}}),N===\"video\"?u.video=P:N===\"audio\"?u.audio=P:u.media=P;var R=It(w,t),Z=R.requestStart,Te=R.requestResponseStart,we=R.requestResponseEnd,G=R.requestResponseHeaders,oe=R.requestMediaDuration,Ve=R.requestHostname,We=R.requestUrl,je=R.requestId;o(\"requestcompleted\",{request_event_type:d,request_start:Z,request_response_start:Te,request_response_end:we,request_bytes_loaded:-1,request_type:N+\"_init\",request_response_headers:G,request_hostname:Ve,request_id:je,request_url:We,request_media_duration:oe,request_rendition_lists:u})};n>=4?t.on(\"initFragmentLoaded\",k):t.on(\"initFragmentLoaded\",b);var y=function(_){var d=_.type,h=_.fragmentModel,w=_.chunk,E=p(h);c({type:d,request:E,chunk:w})},c=function(_){var d=_.type,h=_.chunk,w=_.request,E=h||{},S=E.mediaInfo,N=E.start,M=S||{},P=M.type,R=It(w,t),Z=R.requestStart,Te=R.requestResponseStart,we=R.requestResponseEnd,G=R.requestBytesLoaded,oe=R.requestResponseHeaders,Ve=R.requestMediaDuration,We=R.requestHostname,je=R.requestUrl,Ee=R.requestId,z=ua(P,t),Jr=z.currentLevel,Qr=z.renditionWidth,zr=z.renditionHeight,Kr=z.renditionBitrate;o(\"requestcompleted\",{request_event_type:d,request_start:Z,request_response_start:Te,request_response_end:we,request_bytes_loaded:G,request_type:P,request_response_headers:oe,request_hostname:We,request_id:Ee,request_url:je,request_media_start_time:N,request_media_duration:Ve,request_current_level:Jr,request_labeled_bitrate:Kr,request_video_width:Qr,request_video_height:zr})};n>=4?t.on(\"mediaFragmentLoaded\",c):t.on(\"mediaFragmentLoaded\",y);var v={video:void 0,audio:void 0,totalBitrate:void 0},T=function(){if(v.video&&typeof v.video.bitrate==\"number\"){if(!(v.video.width&&v.video.height)){a.warn(\"have bitrate info for video but missing width/height\");return}var _=v.video.bitrate;if(v.audio&&typeof v.audio.bitrate==\"number\"&&(_+=v.audio.bitrate),_!==v.totalBitrate)return v.totalBitrate=_,{video_source_bitrate:_,video_source_height:v.video.height,video_source_width:v.video.width,video_source_codec:da(v.video.codec)}}},x=function(_,d,h){if(typeof _.newQuality!=\"number\"){a.warn(\"missing evt.newQuality in qualityChangeRendered event\",_);return}var w=_.mediaType;if(w===\"audio\"||w===\"video\"){var E=t.getBitrateInfoListFor(w).find(function(N){var M=N.qualityIndex;return M===_.newQuality});if(!(E&&typeof E.bitrate==\"number\")){a.warn(\"missing bitrate info for \".concat(w));return}v[w]=fe(ue({},E),{codec:t.getCurrentTrackFor(w).codec});var S=T();S&&o(\"renditionchange\",S)}};t.on(\"qualityChangeRendered\",x);var m=function(_){var d=_.request,h=_.mediaType;d=d||{},o(\"requestcanceled\",{request_event_type:d.type+\"_\"+d.action,request_url:d.url,request_type:h,request_hostname:F(d.url)})};t.on(\"fragmentLoadingAbandoned\",m);var f=function(_){var d=_.error,h,w,E=(d==null||(h=d.data)===null||h===void 0?void 0:h.request)||{},S=(d==null||(w=d.data)===null||w===void 0?void 0:w.response)||{};(d==null?void 0:d.code)===27&&o(\"requestfailed\",{request_error:E.type+\"_\"+E.action,request_url:E.url,request_hostname:F(E.url),request_type:E.mediaType,request_error_code:S.status,request_error_text:S.statusText});var N=\"\".concat(E!=null&&E.url?\"url: \".concat(E.url,\"\\n\"):\"\")+\"\".concat(S!=null&&S.status||S!=null&&S.statusText?\"response: \".concat(S==null?void 0:S.status,\", \").concat(S==null?void 0:S.statusText,\"\\n\"):\"\");o(\"error\",{player_error_code:d==null?void 0:d.code,player_error_message:d==null?void 0:d.message,player_error_context:N})};t.on(\"error\",f),t._stopMuxMonitor=function(){t.off(\"manifestLoaded\",s),t.off(\"initFragmentLoaded\",k),t.off(\"mediaFragmentLoaded\",c),t.off(\"qualityChangeRendered\",x),t.off(\"error\",f),t.off(\"fragmentLoadingAbandoned\",m),delete t._stopMuxMonitor}},Lt=function(r){r&&typeof r._stopMuxMonitor==\"function\"&&r._stopMuxMonitor()};var Ct=0,ca=function(){\"use strict\";function r(){D(this,r),l(this,\"_listeners\",void 0)}return L(r,[{key:\"on\",value:function(t,i,a){return i._eventEmitterGuid=i._eventEmitterGuid||++Ct,this._listeners=this._listeners||{},this._listeners[t]=this._listeners[t]||[],a&&(i=i.bind(a)),this._listeners[t].push(i),i}},{key:\"off\",value:function(t,i){var a=this._listeners&&this._listeners[t];a&&a.forEach(function(n,o){n._eventEmitterGuid===i._eventEmitterGuid&&a.splice(o,1)})}},{key:\"one\",value:function(t,i,a){var n=this;i._eventEmitterGuid=i._eventEmitterGuid||++Ct;var o=function(){n.off(t,o),i.apply(a||this,arguments)};o._eventEmitterGuid=i._eventEmitterGuid,this.on(t,o)}},{key:\"emit\",value:function(t,i){var a=this;if(this._listeners){i=i||{};var n=this._listeners[\"before*\"]||[],o=this._listeners[t]||[],s=this._listeners[\"after\"+t]||[],u=function(p,b){p=p.slice(),p.forEach(function(k){k.call(a,{type:t},b)})};u(n,i),u(o,i),u(s,i)}}}]),r}(),Mt=ca;var He=V(J()),_a=function(){\"use strict\";function r(e){var t=this;D(this,r),l(this,\"_playbackHeartbeatInterval\",void 0),l(this,\"_playheadShouldBeProgressing\",void 0),l(this,\"pm\",void 0),this.pm=e,this._playbackHeartbeatInterval=null,this._playheadShouldBeProgressing=!1,e.on(\"playing\",function(){t._playheadShouldBeProgressing=!0}),e.on(\"play\",this._startPlaybackHeartbeatInterval.bind(this)),e.on(\"playing\",this._startPlaybackHeartbeatInterval.bind(this)),e.on(\"adbreakstart\",this._startPlaybackHeartbeatInterval.bind(this)),e.on(\"adplay\",this._startPlaybackHeartbeatInterval.bind(this)),e.on(\"adplaying\",this._startPlaybackHeartbeatInterval.bind(this)),e.on(\"devicewake\",this._startPlaybackHeartbeatInterval.bind(this)),e.on(\"viewstart\",this._startPlaybackHeartbeatInterval.bind(this)),e.on(\"rebufferstart\",this._startPlaybackHeartbeatInterval.bind(this)),e.on(\"pause\",this._stopPlaybackHeartbeatInterval.bind(this)),e.on(\"ended\",this._stopPlaybackHeartbeatInterval.bind(this)),e.on(\"viewend\",this._stopPlaybackHeartbeatInterval.bind(this)),e.on(\"error\",this._stopPlaybackHeartbeatInterval.bind(this)),e.on(\"aderror\",this._stopPlaybackHeartbeatInterval.bind(this)),e.on(\"adpause\",this._stopPlaybackHeartbeatInterval.bind(this)),e.on(\"adended\",this._stopPlaybackHeartbeatInterval.bind(this)),e.on(\"adbreakend\",this._stopPlaybackHeartbeatInterval.bind(this)),e.on(\"seeked\",function(){e.data.player_is_paused?t._stopPlaybackHeartbeatInterval():t._startPlaybackHeartbeatInterval()}),e.on(\"timeupdate\",function(){t._playbackHeartbeatInterval!==null&&e.emit(\"playbackheartbeat\")}),e.on(\"devicesleep\",function(i,a){t._playbackHeartbeatInterval!==null&&(He.default.clearInterval(t._playbackHeartbeatInterval),e.emit(\"playbackheartbeatend\",{viewer_time:a.viewer_time}),t._playbackHeartbeatInterval=null)})}return L(r,[{key:\"_startPlaybackHeartbeatInterval\",value:function(){var t=this;this._playbackHeartbeatInterval===null&&(this.pm.emit(\"playbackheartbeat\"),this._playbackHeartbeatInterval=He.default.setInterval(function(){t.pm.emit(\"playbackheartbeat\")},this.pm.playbackHeartbeatTime))}},{key:\"_stopPlaybackHeartbeatInterval\",value:function(){this._playheadShouldBeProgressing=!1,this._playbackHeartbeatInterval!==null&&(He.default.clearInterval(this._playbackHeartbeatInterval),this.pm.emit(\"playbackheartbeatend\"),this._playbackHeartbeatInterval=null)}}]),r}(),Ht=_a;var fa=function r(e){\"use strict\";var t=this;D(this,r),l(this,\"viewErrored\",void 0),e.on(\"viewinit\",function(){t.viewErrored=!1}),e.on(\"error\",function(i,a){try{var n=e.errorTranslator({player_error_code:a.player_error_code,player_error_message:a.player_error_message,player_error_context:a.player_error_context,player_error_severity:a.player_error_severity,player_error_business_exception:a.player_error_business_exception});n&&(e.data.player_error_code=n.player_error_code||a.player_error_code,e.data.player_error_message=n.player_error_message||a.player_error_message,e.data.player_error_context=n.player_error_context||a.player_error_context,e.data.player_error_severity=n.player_error_severity||a.player_error_severity,e.data.player_error_business_exception=n.player_error_business_exception||a.player_error_business_exception,t.viewErrored=!0)}catch(o){e.mux.log.warn(\"Exception in error translator callback.\",o),t.viewErrored=!0}}),e.on(\"aftererror\",function(){var i,a,n,o,s;(i=e.data)===null||i===void 0||delete i.player_error_code,(a=e.data)===null||a===void 0||delete a.player_error_message,(n=e.data)===null||n===void 0||delete n.player_error_context,(o=e.data)===null||o===void 0||delete o.player_error_severity,(s=e.data)===null||s===void 0||delete s.player_error_business_exception})},Bt=fa;var pa=function(){\"use strict\";function r(e){D(this,r),l(this,\"_watchTimeTrackerLastCheckedTime\",void 0),l(this,\"pm\",void 0),this.pm=e,this._watchTimeTrackerLastCheckedTime=null,e.on(\"playbackheartbeat\",this._updateWatchTime.bind(this)),e.on(\"playbackheartbeatend\",this._clearWatchTimeState.bind(this))}return L(r,[{key:\"_updateWatchTime\",value:function(t,i){var a=i.viewer_time;this._watchTimeTrackerLastCheckedTime===null&&(this._watchTimeTrackerLastCheckedTime=a),O(this.pm.data,\"view_watch_time\",a-this._watchTimeTrackerLastCheckedTime),this._watchTimeTrackerLastCheckedTime=a}},{key:\"_clearWatchTimeState\",value:function(t,i){this._updateWatchTime(t,i),this._watchTimeTrackerLastCheckedTime=null}}]),r}(),Ut=pa;var va=function(){\"use strict\";function r(e){var t=this;D(this,r),l(this,\"_playbackTimeTrackerLastPlayheadPosition\",void 0),l(this,\"_lastTime\",void 0),l(this,\"_isAdPlaying\",void 0),l(this,\"_callbackUpdatePlaybackTime\",void 0),l(this,\"pm\",void 0),this.pm=e,this._playbackTimeTrackerLastPlayheadPosition=-1,this._lastTime=A.now(),this._isAdPlaying=!1,this._callbackUpdatePlaybackTime=null;var i=this._startPlaybackTimeTracking.bind(this);e.on(\"playing\",i),e.on(\"adplaying\",i),e.on(\"seeked\",i);var a=this._stopPlaybackTimeTracking.bind(this);e.on(\"playbackheartbeatend\",a),e.on(\"seeking\",a),e.on(\"adplaying\",function(){t._isAdPlaying=!0}),e.on(\"adended\",function(){t._isAdPlaying=!1}),e.on(\"adpause\",function(){t._isAdPlaying=!1}),e.on(\"adbreakstart\",function(){t._isAdPlaying=!1}),e.on(\"adbreakend\",function(){t._isAdPlaying=!1}),e.on(\"adplay\",function(){t._isAdPlaying=!1}),e.on(\"viewinit\",function(){t._playbackTimeTrackerLastPlayheadPosition=-1,t._lastTime=A.now(),t._isAdPlaying=!1,t._callbackUpdatePlaybackTime=null})}return L(r,[{key:\"_startPlaybackTimeTracking\",value:function(){this._callbackUpdatePlaybackTime===null&&(this._callbackUpdatePlaybackTime=this._updatePlaybackTime.bind(this),this._playbackTimeTrackerLastPlayheadPosition=this.pm.data.player_playhead_time,this.pm.on(\"playbackheartbeat\",this._callbackUpdatePlaybackTime))}},{key:\"_stopPlaybackTimeTracking\",value:function(){this._callbackUpdatePlaybackTime&&(this._updatePlaybackTime(),this.pm.off(\"playbackheartbeat\",this._callbackUpdatePlaybackTime),this._callbackUpdatePlaybackTime=null,this._playbackTimeTrackerLastPlayheadPosition=-1)}},{key:\"_updatePlaybackTime\",value:function(){var t=this.pm.data.player_playhead_time,i=A.now(),a=-1;this._playbackTimeTrackerLastPlayheadPosition>=0&&t>this._playbackTimeTrackerLastPlayheadPosition?a=t-this._playbackTimeTrackerLastPlayheadPosition:this._isAdPlaying&&(a=i-this._lastTime),a>0&&a<=1e3&&O(this.pm.data,\"view_content_playback_time\",a),this._playbackTimeTrackerLastPlayheadPosition=t,this._lastTime=i}}]),r}(),Ft=va;var ma=function(){\"use strict\";function r(e){D(this,r),l(this,\"pm\",void 0),this.pm=e;var t=this._updatePlayheadTime.bind(this);e.on(\"playbackheartbeat\",t),e.on(\"playbackheartbeatend\",t),e.on(\"timeupdate\",t),e.on(\"destroy\",function(){e.off(\"timeupdate\",t)})}return L(r,[{key:\"_updateMaxPlayheadPosition\",value:function(){this.pm.data.view_max_playhead_position=typeof this.pm.data.view_max_playhead_position==\"undefined\"?this.pm.data.player_playhead_time:Math.max(this.pm.data.view_max_playhead_position,this.pm.data.player_playhead_time)}},{key:\"_updatePlayheadTime\",value:function(t,i){var a=this,n=function(){a.pm.currentFragmentPDT&&a.pm.currentFragmentStart&&(a.pm.data.player_program_time=a.pm.currentFragmentPDT+a.pm.data.player_playhead_time-a.pm.currentFragmentStart)};if(i&&i.player_playhead_time)this.pm.data.player_playhead_time=i.player_playhead_time,n(),this._updateMaxPlayheadPosition();else if(this.pm.getPlayheadTime){var o=this.pm.getPlayheadTime();typeof o!=\"undefined\"&&(this.pm.data.player_playhead_time=o,n(),this._updateMaxPlayheadPosition())}}}]),r}(),Vt=ma;var Wt=5*60*1e3,ha=function r(e){\"use strict\";if(D(this,r),!e.disableRebufferTracking){var t,i=function(n,o){a(o),t=void 0},a=function(n){if(t){var o=n.viewer_time-t;O(e.data,\"view_rebuffer_duration\",o),t=n.viewer_time,e.data.view_rebuffer_duration>Wt&&(e.emit(\"viewend\"),e.send(\"viewend\"),e.mux.log.warn(\"Ending view after rebuffering for longer than \".concat(Wt,\"ms, future events will be ignored unless a programchange or videochange occurs.\")))}e.data.view_watch_time>=0&&e.data.view_rebuffer_count>0&&(e.data.view_rebuffer_frequency=e.data.view_rebuffer_count/e.data.view_watch_time,e.data.view_rebuffer_percentage=e.data.view_rebuffer_duration/e.data.view_watch_time)};e.on(\"playbackheartbeat\",function(n,o){return a(o)}),e.on(\"rebufferstart\",function(n,o){t||(O(e.data,\"view_rebuffer_count\",1),t=o.viewer_time,e.one(\"rebufferend\",i))}),e.on(\"viewinit\",function(){t=void 0,e.off(\"rebufferend\",i)})}},jt=ha;var ya=function(){\"use strict\";function r(e){var t=this;D(this,r),l(this,\"_lastCheckedTime\",void 0),l(this,\"_lastPlayheadTime\",void 0),l(this,\"_lastPlayheadTimeUpdatedTime\",void 0),l(this,\"_rebuffering\",void 0),l(this,\"pm\",void 0),this.pm=e,!(e.disableRebufferTracking||e.disablePlayheadRebufferTracking)&&(this._lastCheckedTime=null,this._lastPlayheadTime=null,this._lastPlayheadTimeUpdatedTime=null,e.on(\"playbackheartbeat\",this._checkIfRebuffering.bind(this)),e.on(\"playbackheartbeatend\",this._cleanupRebufferTracker.bind(this)),e.on(\"seeking\",function(){t._cleanupRebufferTracker(null,{viewer_time:A.now()})}))}return L(r,[{key:\"_checkIfRebuffering\",value:function(t,i){if(this.pm.seekingTracker.isSeeking||this.pm.adTracker.isAdBreak||!this.pm.playbackHeartbeat._playheadShouldBeProgressing){this._cleanupRebufferTracker(t,i);return}if(this._lastCheckedTime===null){this._prepareRebufferTrackerState(i.viewer_time);return}if(this._lastPlayheadTime!==this.pm.data.player_playhead_time){this._cleanupRebufferTracker(t,i,!0);return}var a=i.viewer_time-this._lastPlayheadTimeUpdatedTime;typeof this.pm.sustainedRebufferThreshold==\"number\"&&a>=this.pm.sustainedRebufferThreshold&&(this._rebuffering||(this._rebuffering=!0,this.pm.emit(\"rebufferstart\",{viewer_time:this._lastPlayheadTimeUpdatedTime}))),this._lastCheckedTime=i.viewer_time}},{key:\"_clearRebufferTrackerState\",value:function(){this._lastCheckedTime=null,this._lastPlayheadTime=null,this._lastPlayheadTimeUpdatedTime=null}},{key:\"_prepareRebufferTrackerState\",value:function(t){this._lastCheckedTime=t,this._lastPlayheadTime=this.pm.data.player_playhead_time,this._lastPlayheadTimeUpdatedTime=t}},{key:\"_cleanupRebufferTracker\",value:function(t,i){var a=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1;if(this._rebuffering)this._rebuffering=!1,this.pm.emit(\"rebufferend\",{viewer_time:i.viewer_time});else{if(this._lastCheckedTime===null)return;var n=this.pm.data.player_playhead_time-this._lastPlayheadTime,o=i.viewer_time-this._lastPlayheadTimeUpdatedTime;typeof this.pm.minimumRebufferDuration==\"number\"&&n>0&&o-n>this.pm.minimumRebufferDuration&&(this._lastCheckedTime=null,this.pm.emit(\"rebufferstart\",{viewer_time:this._lastPlayheadTimeUpdatedTime}),this.pm.emit(\"rebufferend\",{viewer_time:this._lastPlayheadTimeUpdatedTime+o-n}))}a?this._prepareRebufferTrackerState(i.viewer_time):this._clearRebufferTrackerState()}}]),r}(),Gt=ya;var ga=function(){\"use strict\";function r(e){var t=this;D(this,r),l(this,\"NAVIGATION_START\",void 0),l(this,\"pm\",void 0),this.pm=e,e.on(\"viewinit\",function(){var i=e.data,a=i.view_id;if(!i.view_program_changed){var n=function(o,s){var u=s.viewer_time;o.type===\"playing\"&&typeof e.data.view_time_to_first_frame==\"undefined\"?t.calculateTimeToFirstFrame(u||A.now(),a):o.type===\"adplaying\"&&(typeof e.data.view_time_to_first_frame==\"undefined\"||t._inPrerollPosition())&&t.calculateTimeToFirstFrame(u||A.now(),a)};e.one(\"playing\",n),e.one(\"adplaying\",n),e.one(\"viewend\",function(){e.off(\"playing\",n),e.off(\"adplaying\",n)})}})}return L(r,[{key:\"_inPrerollPosition\",value:function(){return typeof this.pm.data.view_content_playback_time==\"undefined\"||this.pm.data.view_content_playback_time<=1e3}},{key:\"calculateTimeToFirstFrame\",value:function(t,i){i===this.pm.data.view_id&&(this.pm.watchTimeTracker._updateWatchTime(null,{viewer_time:t}),this.pm.data.view_time_to_first_frame=this.pm.data.view_watch_time,(this.pm.data.player_autoplay_on||this.pm.data.video_is_autoplay)&&this.NAVIGATION_START&&(this.pm.data.view_aggregate_startup_time=this.pm.data.view_start+this.pm.data.view_watch_time-this.NAVIGATION_START))}}]),r}(),Jt=ga;var ba=function r(e){\"use strict\";var t=this;D(this,r),l(this,\"_lastPlayerHeight\",void 0),l(this,\"_lastPlayerWidth\",void 0),l(this,\"_lastPlayheadPosition\",void 0),l(this,\"_lastSourceHeight\",void 0),l(this,\"_lastSourceWidth\",void 0),e.on(\"viewinit\",function(){t._lastPlayheadPosition=-1});var i=[\"pause\",\"rebufferstart\",\"seeking\",\"error\",\"adbreakstart\",\"hb\",\"renditionchange\",\"orientationchange\",\"viewend\"],a=[\"playing\",\"hb\",\"renditionchange\",\"orientationchange\"];i.forEach(function(n){e.on(n,function(){if(t._lastPlayheadPosition>=0&&e.data.player_playhead_time>=0&&t._lastPlayerWidth>=0&&t._lastSourceWidth>0&&t._lastPlayerHeight>=0&&t._lastSourceHeight>0){var o=e.data.player_playhead_time-t._lastPlayheadPosition;if(o<0){t._lastPlayheadPosition=-1;return}var s=Math.min(t._lastPlayerWidth/t._lastSourceWidth,t._lastPlayerHeight/t._lastSourceHeight),u=Math.max(0,s-1),p=Math.max(0,1-s);e.data.view_max_upscale_percentage=Math.max(e.data.view_max_upscale_percentage||0,u),e.data.view_max_downscale_percentage=Math.max(e.data.view_max_downscale_percentage||0,p),O(e.data,\"view_total_content_playback_time\",o),O(e.data,\"view_total_upscaling\",u*o),O(e.data,\"view_total_downscaling\",p*o)}t._lastPlayheadPosition=-1})}),a.forEach(function(n){e.on(n,function(){t._lastPlayheadPosition=e.data.player_playhead_time,t._lastPlayerWidth=e.data.player_width,t._lastPlayerHeight=e.data.player_height,t._lastSourceWidth=e.data.video_source_width,t._lastSourceHeight=e.data.video_source_height})})},Qt=ba;var Ta=2e3,wa=function r(e){\"use strict\";var t=this;D(this,r),l(this,\"isSeeking\",void 0),this.isSeeking=!1;var i=-1,a=function(){var n=A.now(),o=(e.data.viewer_time||n)-(i||n);O(e.data,\"view_seek_duration\",o),e.data.view_max_seek_time=Math.max(e.data.view_max_seek_time||0,o),t.isSeeking=!1,i=-1};e.on(\"seeking\",function(n,o){if(Object.assign(e.data,o),t.isSeeking&&o.viewer_time-i<=Ta){i=o.viewer_time;return}t.isSeeking&&a(),t.isSeeking=!0,i=o.viewer_time,O(e.data,\"view_seek_count\",1),e.send(\"seeking\")}),e.on(\"seeked\",function(){a()}),e.on(\"viewend\",function(){t.isSeeking&&(a(),e.send(\"seeked\")),t.isSeeking=!1,i=-1})},zt=wa;var Kt=function(e,t){e.push(t),e.sort(function(i,a){return i.viewer_time-a.viewer_time})},Ea=[\"adbreakstart\",\"adrequest\",\"adresponse\",\"adplay\",\"adplaying\",\"adpause\",\"adended\",\"adbreakend\",\"aderror\",\"adclicked\",\"adskipped\"],ka=function(){\"use strict\";function r(e){var t=this;D(this,r),l(this,\"_adHasPlayed\",void 0),l(this,\"_adRequests\",void 0),l(this,\"_adResponses\",void 0),l(this,\"_currentAdRequestNumber\",void 0),l(this,\"_currentAdResponseNumber\",void 0),l(this,\"_prerollPlayTime\",void 0),l(this,\"_wouldBeNewAdPlay\",void 0),l(this,\"isAdBreak\",void 0),l(this,\"pm\",void 0),this.pm=e,e.on(\"viewinit\",function(){t.isAdBreak=!1,t._currentAdRequestNumber=0,t._currentAdResponseNumber=0,t._adRequests=[],t._adResponses=[],t._adHasPlayed=!1,t._wouldBeNewAdPlay=!0,t._prerollPlayTime=void 0}),Ea.forEach(function(a){return e.on(a,t._updateAdData.bind(t))});var i=function(){t.isAdBreak=!1};e.on(\"adbreakstart\",function(){t.isAdBreak=!0}),e.on(\"play\",i),e.on(\"playing\",i),e.on(\"viewend\",i),e.on(\"adrequest\",function(a,n){n=Object.assign({ad_request_id:\"generatedAdRequestId\"+t._currentAdRequestNumber++},n),Kt(t._adRequests,n),O(e.data,\"view_ad_request_count\"),t.inPrerollPosition()&&(e.data.view_preroll_requested=!0,t._adHasPlayed||O(e.data,\"view_preroll_request_count\"))}),e.on(\"adresponse\",function(a,n){n=Object.assign({ad_request_id:\"generatedAdRequestId\"+t._currentAdResponseNumber++},n),Kt(t._adResponses,n);var o=t.findAdRequest(n.ad_request_id);o&&O(e.data,\"view_ad_request_time\",Math.max(0,n.viewer_time-o.viewer_time))}),e.on(\"adplay\",function(a,n){t._adHasPlayed=!0,t._wouldBeNewAdPlay&&(t._wouldBeNewAdPlay=!1,O(e.data,\"view_ad_played_count\")),t.inPrerollPosition()&&!e.data.view_preroll_played&&(e.data.view_preroll_played=!0,t._adRequests.length>0&&(e.data.view_preroll_request_time=Math.max(0,n.viewer_time-t._adRequests[0].viewer_time)),e.data.view_start&&(e.data.view_startup_preroll_request_time=Math.max(0,n.viewer_time-e.data.view_start)),t._prerollPlayTime=n.viewer_time)}),e.on(\"adplaying\",function(a,n){t.inPrerollPosition()&&typeof e.data.view_preroll_load_time==\"undefined\"&&typeof t._prerollPlayTime!=\"undefined\"&&(e.data.view_preroll_load_time=n.viewer_time-t._prerollPlayTime,e.data.view_startup_preroll_load_time=n.viewer_time-t._prerollPlayTime)}),e.on(\"adclicked\",function(a,n){t._wouldBeNewAdPlay||O(e.data,\"view_ad_clicked_count\")}),e.on(\"adskipped\",function(a,n){t._wouldBeNewAdPlay||O(e.data,\"view_ad_skipped_count\")}),e.on(\"adended\",function(){t._wouldBeNewAdPlay=!0}),e.on(\"aderror\",function(){t._wouldBeNewAdPlay=!0})}return L(r,[{key:\"inPrerollPosition\",value:function(){return typeof this.pm.data.view_content_playback_time==\"undefined\"||this.pm.data.view_content_playback_time<=1e3}},{key:\"findAdRequest\",value:function(t){for(var i=0;i<this._adRequests.length;i++)if(this._adRequests[i].ad_request_id===t)return this._adRequests[i]}},{key:\"_updateAdData\",value:function(t,i){if(this.inPrerollPosition()){if(!this.pm.data.view_preroll_ad_tag_hostname&&i.ad_tag_url){var a=H(re(i.ad_tag_url),2),n=a[0],o=a[1];this.pm.data.view_preroll_ad_tag_domain=o,this.pm.data.view_preroll_ad_tag_hostname=n}if(!this.pm.data.view_preroll_ad_asset_hostname&&i.ad_asset_url){var s=H(re(i.ad_asset_url),2),u=s[0],p=s[1];this.pm.data.view_preroll_ad_asset_domain=p,this.pm.data.view_preroll_ad_asset_hostname=u}}this.pm.data.ad_asset_url=i==null?void 0:i.ad_asset_url,this.pm.data.ad_tag_url=i==null?void 0:i.ad_tag_url,this.pm.data.ad_creative_id=i==null?void 0:i.ad_creative_id,this.pm.data.ad_id=i==null?void 0:i.ad_id,this.pm.data.ad_universal_id=i==null?void 0:i.ad_universal_id}}]),r}(),Yt=ka;var Qe=V(J());var xa=function r(e){\"use strict\";D(this,r);var t,i,a=function(){e.disableRebufferTracking||(O(e.data,\"view_waiting_rebuffer_count\",1),t=A.now(),i=Qe.default.setInterval(function(){if(t){var p=A.now();O(e.data,\"view_waiting_rebuffer_duration\",p-t),t=p}},250))},n=function(){e.disableRebufferTracking||t&&(O(e.data,\"view_waiting_rebuffer_duration\",A.now()-t),t=!1,Qe.default.clearInterval(i))},o=!1,s=function(){o=!0},u=function(){o=!1,n()};e.on(\"waiting\",function(){o&&a()}),e.on(\"playing\",function(){n(),s()}),e.on(\"pause\",u),e.on(\"seeking\",u)},Xt=xa;var Da=function r(e){\"use strict\";var t=this;D(this,r),l(this,\"lastWallClockTime\",void 0);var i=function(){t.lastWallClockTime=A.now(),e.on(\"before*\",a)},a=function(n){var o=A.now(),s=t.lastWallClockTime;t.lastWallClockTime=o,o-s>3e4&&(e.emit(\"devicesleep\",{viewer_time:s}),Object.assign(e.data,{viewer_time:s}),e.send(\"devicesleep\"),e.emit(\"devicewake\",{viewer_time:o}),Object.assign(e.data,{viewer_time:o}),e.send(\"devicewake\"))};e.one(\"playbackheartbeat\",i),e.on(\"playbackheartbeatend\",function(){e.off(\"before*\",a),e.one(\"playbackheartbeat\",i)})},$t=Da;var Ue=V(J());var ze=function(r){return r()}(function(){var r=function(){for(var i=0,a={};i<arguments.length;i++){var n=arguments[i];for(var o in n)a[o]=n[o]}return a};function e(t){function i(a,n,o){var s;if(typeof document!=\"undefined\"){if(arguments.length>1){if(o=r({path:\"/\"},i.defaults,o),typeof o.expires==\"number\"){var u=new Date;u.setMilliseconds(u.getMilliseconds()+o.expires*864e5),o.expires=u}try{s=JSON.stringify(n),/^[\\{\\[]/.test(s)&&(n=s)}catch(T){}return t.write?n=t.write(n,a):n=encodeURIComponent(String(n)).replace(/%(23|24|26|2B|3A|3C|3E|3D|2F|3F|40|5B|5D|5E|60|7B|7D|7C)/g,decodeURIComponent),a=encodeURIComponent(String(a)),a=a.replace(/%(23|24|26|2B|5E|60|7C)/g,decodeURIComponent),a=a.replace(/[\\(\\)]/g,escape),document.cookie=[a,\"=\",n,o.expires?\"; expires=\"+o.expires.toUTCString():\"\",o.path?\"; path=\"+o.path:\"\",o.domain?\"; domain=\"+o.domain:\"\",o.secure?\"; secure\":\"\"].join(\"\")}a||(s={});for(var p=document.cookie?document.cookie.split(\"; \"):[],b=/(%[0-9A-Z]{2})+/g,k=0;k<p.length;k++){var y=p[k].split(\"=\"),c=y.slice(1).join(\"=\");c.charAt(0)==='\"'&&(c=c.slice(1,-1));try{var v=y[0].replace(b,decodeURIComponent);if(c=t.read?t.read(c,v):t(c,v)||c.replace(b,decodeURIComponent),this.json)try{c=JSON.parse(c)}catch(T){}if(a===v){s=c;break}a||(s[v]=c)}catch(T){}}return s}}return i.set=i,i.get=function(a){return i.call(i,a)},i.getJSON=function(){return i.apply({json:!0},[].slice.call(arguments))},i.defaults={},i.remove=function(a,n){i(a,\"\",r(n,{expires:-1}))},i.withConverter=e,i}return e(function(){})});var Zt=\"muxData\",Sa=function(r){return Object.entries(r).map(function(e){var t=H(e,2),i=t[0],a=t[1];return\"\".concat(i,\"=\").concat(a)}).join(\"&\")},Ra=function(r){return r.split(\"&\").reduce(function(e,t){var i=H(t.split(\"=\"),2),a=i[0],n=i[1],o=+n,s=n&&o==n?o:n;return e[a]=s,e},{})},er=function(){var e;try{e=Ra(ze.get(Zt)||\"\")}catch(t){e={}}return e},tr=function(e){try{ze.set(Zt,Sa(e),{expires:365})}catch(t){}},rr=function(){var e=er();return e.mux_viewer_id=e.mux_viewer_id||ee(),e.msn=e.msn||Math.random(),tr(e),{mux_viewer_id:e.mux_viewer_id,mux_sample_number:e.msn}},ar=function(){var e=er(),t=A.now();return e.session_start&&(e.sst=e.session_start,delete e.session_start),e.session_id&&(e.sid=e.session_id,delete e.session_id),e.session_expires&&(e.sex=e.session_expires,delete e.session_expires),(!e.sex||e.sex<t)&&(e.sid=ee(),e.sst=t),e.sex=t+25*60*1e3,tr(e),{session_id:e.sid,session_start:e.sst,session_expires:e.sex}};function Ke(r,e){var t=e.beaconCollectionDomain,i=e.beaconDomain;if(t)return\"https://\"+t;r=r||\"inferred\";var a=i||\"litix.io\";return r.match(/^[a-z0-9]+$/)?\"https://\"+r+\".\"+a:\"https://img.litix.io/a.gif\"}var ir=V(J()),nr=function(){var e;switch(or()){case\"cellular\":e=\"cellular\";break;case\"ethernet\":e=\"wired\";break;case\"wifi\":e=\"wifi\";break;case void 0:break;default:e=\"other\"}return e},or=function(){var e=ir.default.navigator,t=e&&(e.connection||e.mozConnection||e.webkitConnection);return t&&t.type};nr.getConnectionFromAPI=or;var sr=nr;var qa={a:\"env\",b:\"beacon\",c:\"custom\",d:\"ad\",e:\"event\",f:\"experiment\",i:\"internal\",m:\"mux\",n:\"response\",p:\"player\",q:\"request\",r:\"retry\",s:\"session\",t:\"timestamp\",u:\"viewer\",v:\"video\",w:\"page\",x:\"view\",y:\"sub\"},Aa=dr(qa),Oa={ad:\"ad\",af:\"affiliate\",ag:\"aggregate\",ap:\"api\",al:\"application\",ao:\"audio\",ar:\"architecture\",as:\"asset\",au:\"autoplay\",av:\"average\",bi:\"bitrate\",bn:\"brand\",br:\"break\",bw:\"browser\",by:\"bytes\",bz:\"business\",ca:\"cached\",cb:\"cancel\",cc:\"codec\",cd:\"code\",cg:\"category\",ch:\"changed\",ci:\"client\",ck:\"clicked\",cl:\"canceled\",cn:\"config\",co:\"count\",ce:\"counter\",cp:\"complete\",cq:\"creator\",cr:\"creative\",cs:\"captions\",ct:\"content\",cu:\"current\",cx:\"connection\",cz:\"context\",dg:\"downscaling\",dm:\"domain\",dn:\"cdn\",do:\"downscale\",dr:\"drm\",dp:\"dropped\",du:\"duration\",dv:\"device\",dy:\"dynamic\",eb:\"enabled\",ec:\"encoding\",ed:\"edge\",en:\"end\",eg:\"engine\",em:\"embed\",er:\"error\",ep:\"experiments\",es:\"errorcode\",et:\"errortext\",ee:\"event\",ev:\"events\",ex:\"expires\",ez:\"exception\",fa:\"failed\",fi:\"first\",fm:\"family\",ft:\"format\",fp:\"fps\",fq:\"frequency\",fr:\"frame\",fs:\"fullscreen\",ha:\"has\",hb:\"holdback\",he:\"headers\",ho:\"host\",hn:\"hostname\",ht:\"height\",id:\"id\",ii:\"init\",in:\"instance\",ip:\"ip\",is:\"is\",ke:\"key\",la:\"language\",lb:\"labeled\",le:\"level\",li:\"live\",ld:\"loaded\",lo:\"load\",ls:\"lists\",lt:\"latency\",ma:\"max\",md:\"media\",me:\"message\",mf:\"manifest\",mi:\"mime\",ml:\"midroll\",mm:\"min\",mn:\"manufacturer\",mo:\"model\",mx:\"mux\",ne:\"newest\",nm:\"name\",no:\"number\",on:\"on\",or:\"origin\",os:\"os\",pa:\"paused\",pb:\"playback\",pd:\"producer\",pe:\"percentage\",pf:\"played\",pg:\"program\",ph:\"playhead\",pi:\"plugin\",pl:\"preroll\",pn:\"playing\",po:\"poster\",pp:\"pip\",pr:\"preload\",ps:\"position\",pt:\"part\",py:\"property\",px:\"pop\",pz:\"plan\",ra:\"rate\",rd:\"requested\",re:\"rebuffer\",rf:\"rendition\",rg:\"range\",rm:\"remote\",ro:\"ratio\",rp:\"response\",rq:\"request\",rs:\"requests\",sa:\"sample\",sd:\"skipped\",se:\"session\",sh:\"shift\",sk:\"seek\",sm:\"stream\",so:\"source\",sq:\"sequence\",sr:\"series\",ss:\"status\",st:\"start\",su:\"startup\",sv:\"server\",sw:\"software\",sy:\"severity\",ta:\"tag\",tc:\"tech\",te:\"text\",tg:\"target\",th:\"throughput\",ti:\"time\",tl:\"total\",to:\"to\",tt:\"title\",ty:\"type\",ug:\"upscaling\",un:\"universal\",up:\"upscale\",ur:\"url\",us:\"user\",va:\"variant\",vd:\"viewed\",vi:\"video\",ve:\"version\",vw:\"view\",vr:\"viewer\",wd:\"width\",wa:\"watch\",wt:\"waiting\"},ur=dr(Oa);function dr(r){var e={};for(var t in r)r.hasOwnProperty(t)&&(e[r[t]]=t);return e}function ve(r){var e={},t={};return Object.keys(r).forEach(function(i){var a=!1;if(r.hasOwnProperty(i)&&r[i]!==void 0){var n=i.split(\"_\"),o=n[0],s=Aa[o];s||(q.info(\"Data key word `\"+n[0]+\"` not expected in \"+i),s=o+\"_\"),n.splice(1).forEach(function(u){u===\"url\"&&(a=!0),ur[u]?s+=ur[u]:Number.isInteger(Number(u))?s+=u:(q.info(\"Data key word `\"+u+\"` not expected in \"+i),s+=\"_\"+u+\"_\")}),a?t[s]=r[i]:e[s]=r[i]}}),Object.assign(e,t)}var ie=V(J()),Lr=V(nt());var ai={maxBeaconSize:300,maxQueueLength:3600,baseTimeBetweenBeacons:1e4,maxPayloadKBSize:500},ii=56*1024,ni=[\"hb\",\"requestcompleted\",\"requestfailed\",\"requestcanceled\"],oi=\"https://img.litix.io\",$=function(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};this._beaconUrl=e||oi,this._eventQueue=[],this._postInFlight=!1,this._resendAfterPost=!1,this._failureCount=0,this._sendTimeout=!1,this._options=Object.assign({},ai,t)};$.prototype.queueEvent=function(r,e){var t=Object.assign({},e);return this._eventQueue.length<=this._options.maxQueueLength||r===\"eventrateexceeded\"?(this._eventQueue.push(t),this._sendTimeout||this._startBeaconSending(),this._eventQueue.length<=this._options.maxQueueLength):!1};$.prototype.flushEvents=function(){var r=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!1;if(r&&this._eventQueue.length===1){this._eventQueue.pop();return}this._eventQueue.length&&this._sendBeaconQueue(),this._startBeaconSending()};$.prototype.destroy=function(){var r=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!1;this.destroyed=!0,r?this._clearBeaconQueue():this.flushEvents(),ie.default.clearTimeout(this._sendTimeout)};$.prototype._clearBeaconQueue=function(){var r=this._eventQueue.length>this._options.maxBeaconSize?this._eventQueue.length-this._options.maxBeaconSize:0,e=this._eventQueue.slice(r);r>0&&Object.assign(e[e.length-1],ve({mux_view_message:\"event queue truncated\"}));var t=this._createPayload(e);Cr(this._beaconUrl,t,!0,function(){})};$.prototype._sendBeaconQueue=function(){var r=this;if(this._postInFlight){this._resendAfterPost=!0;return}var e=this._eventQueue.slice(0,this._options.maxBeaconSize);this._eventQueue=this._eventQueue.slice(this._options.maxBeaconSize),this._postInFlight=!0;var t=this._createPayload(e),i=A.now();Cr(this._beaconUrl,t,!1,function(a,n){n?(r._eventQueue=e.concat(r._eventQueue),r._failureCount+=1,q.info(\"Error sending beacon: \"+n)):r._failureCount=0,r._roundTripTime=A.now()-i,r._postInFlight=!1,r._resendAfterPost&&(r._resendAfterPost=!1,r._eventQueue.length>0&&r._sendBeaconQueue())})};$.prototype._getNextBeaconTime=function(){if(!this._failureCount)return this._options.baseTimeBetweenBeacons;var r=Math.pow(2,this._failureCount-1);return r=r*Math.random(),(1+r)*this._options.baseTimeBetweenBeacons};$.prototype._startBeaconSending=function(){var r=this;ie.default.clearTimeout(this._sendTimeout),!this.destroyed&&(this._sendTimeout=ie.default.setTimeout(function(){r._eventQueue.length&&r._sendBeaconQueue(),r._startBeaconSending()},this._getNextBeaconTime()))};$.prototype._createPayload=function(r){var e=this,t={transmission_timestamp:Math.round(A.now())};this._roundTripTime&&(t.rtt_ms=Math.round(this._roundTripTime));var i,a,n,o=function(){i=JSON.stringify({metadata:t,events:a||r}),n=i.length/1024},s=function(){return n<=e._options.maxPayloadKBSize};return o(),s()||(q.info(\"Payload size is too big (\"+n+\" kb). Removing unnecessary events.\"),a=r.filter(function(u){return ni.indexOf(u.e)===-1}),o()),s()||(q.info(\"Payload size still too big (\"+n+\" kb). Cropping fields..\"),a.forEach(function(u){for(var p in u){var b=u[p],k=50*1024;typeof b==\"string\"&&b.length>k&&(u[p]=b.substring(0,k))}}),o()),i};var si=typeof Lr.default.exitPictureInPicture==\"function\"?function(r){return r.length<=ii}:function(r){return!1},Cr=function(r,e,t,i){if(t&&navigator&&navigator.sendBeacon&&navigator.sendBeacon(r,e)){i();return}if(ie.default.fetch){ie.default.fetch(r,{method:\"POST\",body:e,headers:{\"Content-Type\":\"text/plain\"},keepalive:si(e)}).then(function(n){return i(null,n.ok?null:\"Error\")}).catch(function(n){return i(null,n)});return}if(ie.default.XMLHttpRequest){var a=new ie.default.XMLHttpRequest;a.onreadystatechange=function(){if(a.readyState===4)return i(null,a.status!==200?\"error\":void 0)},a.open(\"POST\",r),a.setRequestHeader(\"Content-Type\",\"text/plain\"),a.send(e);return}i()},Mr=$;var ui=[\"env_key\",\"view_id\",\"view_sequence_number\",\"player_sequence_number\",\"beacon_domain\",\"player_playhead_time\",\"viewer_time\",\"mux_api_version\",\"event\",\"video_id\",\"player_instance_id\",\"player_error_code\",\"player_error_message\",\"player_error_context\",\"player_error_severity\",\"player_error_business_exception\"],di=[\"adplay\",\"adplaying\",\"adpause\",\"adfirstquartile\",\"admidpoint\",\"adthirdquartile\",\"adended\",\"adresponse\",\"adrequest\"],li=[\"ad_id\",\"ad_creative_id\",\"ad_universal_id\"],ci=[\"viewstart\",\"error\",\"ended\",\"viewend\"],_i=10*60*1e3,Hr=function(){\"use strict\";function r(e,t){var i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};D(this,r);var a,n,o,s,u,p,b,k,y,c,v,T;l(this,\"mux\",void 0),l(this,\"envKey\",void 0),l(this,\"options\",void 0),l(this,\"eventQueue\",void 0),l(this,\"sampleRate\",void 0),l(this,\"disableCookies\",void 0),l(this,\"respectDoNotTrack\",void 0),l(this,\"previousBeaconData\",void 0),l(this,\"lastEventTime\",void 0),l(this,\"rateLimited\",void 0),l(this,\"pageLevelData\",void 0),l(this,\"viewerData\",void 0),this.mux=e,this.envKey=t,this.options=i,this.previousBeaconData=null,this.lastEventTime=0,this.rateLimited=!1,this.eventQueue=new Mr(Ke(this.envKey,this.options));var x;this.sampleRate=(x=this.options.sampleRate)!==null&&x!==void 0?x:1;var m;this.disableCookies=(m=this.options.disableCookies)!==null&&m!==void 0?m:!1;var f;this.respectDoNotTrack=(f=this.options.respectDoNotTrack)!==null&&f!==void 0?f:!1,this.previousBeaconData=null,this.lastEventTime=0,this.rateLimited=!1,this.pageLevelData={mux_api_version:this.mux.API_VERSION,mux_embed:this.mux.NAME,mux_embed_version:this.mux.VERSION,viewer_application_name:(a=this.options.platform)===null||a===void 0?void 0:a.name,viewer_application_version:(n=this.options.platform)===null||n===void 0?void 0:n.version,viewer_application_engine:(o=this.options.platform)===null||o===void 0?void 0:o.layout,viewer_device_name:(s=this.options.platform)===null||s===void 0?void 0:s.product,viewer_device_category:\"\",viewer_device_manufacturer:(u=this.options.platform)===null||u===void 0?void 0:u.manufacturer,viewer_os_family:(b=this.options.platform)===null||b===void 0||(p=b.os)===null||p===void 0?void 0:p.family,viewer_os_architecture:(y=this.options.platform)===null||y===void 0||(k=y.os)===null||k===void 0?void 0:k.architecture,viewer_os_version:(v=this.options.platform)===null||v===void 0||(c=v.os)===null||c===void 0?void 0:c.version,viewer_connection_type:sr(),page_url:Ue.default===null||Ue.default===void 0||(T=Ue.default.location)===null||T===void 0?void 0:T.href},this.viewerData=this.disableCookies?{}:rr()}return L(r,[{key:\"send\",value:function(t,i){if(!(!t||!(i!=null&&i.view_id))){if(this.respectDoNotTrack&&ce())return q.info(\"Not sending `\"+t+\"` because Do Not Track is enabled\");if(!i||typeof i!=\"object\")return q.error(\"A data object was expected in send() but was not provided\");var a=this.disableCookies?{}:ar(),n=fe(ue({},this.pageLevelData,i,a,this.viewerData),{event:t,env_key:this.envKey});n.user_id&&(n.viewer_user_id=n.user_id,delete n.user_id);var o,s=((o=n.mux_sample_number)!==null&&o!==void 0?o:0)>=this.sampleRate,u=this._deduplicateBeaconData(t,n),p=ve(u);if(this.lastEventTime=this.mux.utils.now(),s)return q.info(\"Not sending event due to sample rate restriction\",t,n,p);if(this.envKey||q.info(\"Missing environment key (envKey) - beacons will be dropped if the video source is not a valid mux video URL\",t,n,p),!this.rateLimited){if(q.info(\"Sending event\",t,n,p),this.rateLimited=!this.eventQueue.queueEvent(t,p),this.mux.WINDOW_UNLOADING&&t===\"viewend\")this.eventQueue.destroy(!0);else if(this.mux.WINDOW_HIDDEN&&t===\"hb\"?this.eventQueue.flushEvents(!0):ci.indexOf(t)>=0&&this.eventQueue.flushEvents(),this.rateLimited)return n.event=\"eventrateexceeded\",p=ve(n),this.eventQueue.queueEvent(n.event,p),q.error(\"Beaconing disabled due to rate limit.\")}}}},{key:\"destroy\",value:function(){this.eventQueue.destroy(!1)}},{key:\"_deduplicateBeaconData\",value:function(t,i){var a=this,n={},o=i.view_id;if(o===\"-1\"||t===\"viewstart\"||t===\"viewend\"||!this.previousBeaconData||this.mux.utils.now()-this.lastEventTime>=_i)n=ue({},i),o&&(this.previousBeaconData=n),o&&t===\"viewend\"&&(this.previousBeaconData=null);else{var s=t.indexOf(\"request\")===0;Object.entries(i).forEach(function(u){var p=H(u,2),b=p[0],k=p[1];a.previousBeaconData&&(k!==a.previousBeaconData[b]||ui.indexOf(b)>-1||a.objectHasChanged(s,b,k,a.previousBeaconData[b])||a.eventRequiresKey(t,b))&&(n[b]=k,a.previousBeaconData[b]=k)})}return n}},{key:\"objectHasChanged\",value:function(t,i,a,n){return!t||i.indexOf(\"request_\")!==0?!1:i===\"request_response_headers\"||typeof a!=\"object\"||typeof n!=\"object\"?!0:Object.keys(a||{}).length!==Object.keys(n||{}).length}},{key:\"eventRequiresKey\",value:function(t,i){return!!(t===\"renditionchange\"&&i.indexOf(\"video_source_\")===0||li.includes(i)&&di.includes(t))}}]),r}();var fi=function r(e){\"use strict\";D(this,r);var t=0,i=0,a=0,n=0,o=0,s=0,u=0,p=function(y,c){var v=c.request_start,T=c.request_response_start,x=c.request_response_end,m=c.request_bytes_loaded;n++;var f,_;if(T?(f=T-(v!=null?v:0),_=(x!=null?x:0)-T):_=(x!=null?x:0)-(v!=null?v:0),_>0&&m&&m>0){var d=m/_*8e3;o++,i+=m,a+=_,e.data.view_min_request_throughput=Math.min(e.data.view_min_request_throughput||1/0,d),e.data.view_average_request_throughput=i/a*8e3,e.data.view_request_count=n,f>0&&(t+=f,e.data.view_max_request_latency=Math.max(e.data.view_max_request_latency||0,f),e.data.view_average_request_latency=t/o)}},b=function(y,c){n++,s++,e.data.view_request_count=n,e.data.view_request_failed_count=s},k=function(y,c){n++,u++,e.data.view_request_count=n,e.data.view_request_canceled_count=u};e.on(\"requestcompleted\",p),e.on(\"requestfailed\",b),e.on(\"requestcanceled\",k)},Br=fi;var pi=60*60*1e3,vi=function r(e){\"use strict\";var t=this;D(this,r),l(this,\"_lastEventTime\",void 0),e.on(\"before*\",function(i,a){var n=a.viewer_time,o=A.now(),s=t._lastEventTime;if(t._lastEventTime=o,s&&o-s>pi){var u=Object.keys(e.data).reduce(function(b,k){return k.indexOf(\"video_\")===0?Object.assign(b,l({},k,e.data[k])):b},{});e.mux.log.info(\"Received event after at least an hour inactivity, creating a new view\");var p=e.playbackHeartbeat._playheadShouldBeProgressing;e._resetView(Object.assign({viewer_time:n},u)),e.playbackHeartbeat._playheadShouldBeProgressing=p,e.playbackHeartbeat._playheadShouldBeProgressing&&i.type!==\"play\"&&i.type!==\"adbreakstart\"&&(e.emit(\"play\",{viewer_time:n}),i.type!==\"playing\"&&e.emit(\"playing\",{viewer_time:n}))}})},Ur=vi;var mi=[\"viewstart\",\"ended\",\"loadstart\",\"pause\",\"play\",\"playing\",\"ratechange\",\"waiting\",\"adplay\",\"adpause\",\"adended\",\"aderror\",\"adplaying\",\"adrequest\",\"adresponse\",\"adbreakstart\",\"adbreakend\",\"adfirstquartile\",\"admidpoint\",\"adthirdquartile\",\"rebufferstart\",\"rebufferend\",\"seeked\",\"error\",\"hb\",\"requestcompleted\",\"requestfailed\",\"requestcanceled\",\"renditionchange\"],hi=new Set([\"requestcompleted\",\"requestfailed\",\"requestcanceled\"]),yi=function(r){\"use strict\";Dt(t,r);var e=qt(t);function t(i,a,n){D(this,t);var o;o=e.call(this),l(g(o),\"DOM_CONTENT_LOADED_EVENT_END\",void 0),l(g(o),\"NAVIGATION_START\",void 0),l(g(o),\"_destroyed\",void 0),l(g(o),\"_heartBeatTimeout\",void 0),l(g(o),\"adTracker\",void 0),l(g(o),\"dashjs\",void 0),l(g(o),\"data\",void 0),l(g(o),\"disablePlayheadRebufferTracking\",void 0),l(g(o),\"disableRebufferTracking\",void 0),l(g(o),\"errorTracker\",void 0),l(g(o),\"errorTranslator\",void 0),l(g(o),\"emitTranslator\",void 0),l(g(o),\"getAdData\",void 0),l(g(o),\"getPlayheadTime\",void 0),l(g(o),\"getStateData\",void 0),l(g(o),\"stateDataTranslator\",void 0),l(g(o),\"hlsjs\",void 0),l(g(o),\"id\",void 0),l(g(o),\"longResumeTracker\",void 0),l(g(o),\"minimumRebufferDuration\",void 0),l(g(o),\"mux\",void 0),l(g(o),\"playbackEventDispatcher\",void 0),l(g(o),\"playbackHeartbeat\",void 0),l(g(o),\"playbackHeartbeatTime\",void 0),l(g(o),\"playheadTime\",void 0),l(g(o),\"seekingTracker\",void 0),l(g(o),\"sustainedRebufferThreshold\",void 0),l(g(o),\"watchTimeTracker\",void 0),l(g(o),\"currentFragmentPDT\",void 0),l(g(o),\"currentFragmentStart\",void 0),o.DOM_CONTENT_LOADED_EVENT_END=_e.domContentLoadedEventEnd(),o.NAVIGATION_START=_e.navigationStart();var s={debug:!1,minimumRebufferDuration:250,sustainedRebufferThreshold:1e3,playbackHeartbeatTime:25,beaconDomain:\"litix.io\",sampleRate:1,disableCookies:!1,respectDoNotTrack:!1,disableRebufferTracking:!1,disablePlayheadRebufferTracking:!1,errorTranslator:function(y){return y},emitTranslator:function(){for(var y=arguments.length,c=new Array(y),v=0;v<y;v++)c[v]=arguments[v];return c},stateDataTranslator:function(y){return y}};o.mux=i,o.id=a,n!=null&&n.beaconDomain&&o.mux.log.warn(\"The `beaconDomain` setting has been deprecated in favor of `beaconCollectionDomain`. Please change your integration to use `beaconCollectionDomain` instead of `beaconDomain`.\"),n=Object.assign(s,n),n.data=n.data||{},n.data.property_key&&(n.data.env_key=n.data.property_key,delete n.data.property_key),q.level=n.debug?Y.DEBUG:Y.WARN,o.getPlayheadTime=n.getPlayheadTime,o.getStateData=n.getStateData||function(){return{}},o.getAdData=n.getAdData||function(){},o.minimumRebufferDuration=n.minimumRebufferDuration,o.sustainedRebufferThreshold=n.sustainedRebufferThreshold,o.playbackHeartbeatTime=n.playbackHeartbeatTime,o.disableRebufferTracking=n.disableRebufferTracking,o.disableRebufferTracking&&o.mux.log.warn(\"Disabling rebuffer tracking. This should only be used in specific circumstances as a last resort when your player is known to unreliably track rebuffering.\"),o.disablePlayheadRebufferTracking=n.disablePlayheadRebufferTracking,o.errorTranslator=n.errorTranslator,o.emitTranslator=n.emitTranslator,o.stateDataTranslator=n.stateDataTranslator,o.playbackEventDispatcher=new Hr(i,n.data.env_key,n),o.data={player_instance_id:ee(),mux_sample_rate:n.sampleRate,beacon_domain:n.beaconCollectionDomain||n.beaconDomain},o.data.view_sequence_number=1,o.data.player_sequence_number=1;var u=function(){typeof this.data.view_start==\"undefined\"&&(this.data.view_start=this.mux.utils.now(),this.emit(\"viewstart\"))}.bind(g(o));if(o.on(\"viewinit\",function(y,c){this._resetVideoData(),this._resetViewData(),this._resetErrorData(),this._updateStateData(),Object.assign(this.data,c),this._initializeViewData(),this.one(\"play\",u),this.one(\"adbreakstart\",u)}),o.on(\"videochange\",function(y,c){this._resetView(c)}),o.on(\"programchange\",function(y,c){this.data.player_is_paused&&this.mux.log.warn(\"The `programchange` event is intended to be used when the content changes mid playback without the video source changing, however the video is not currently playing. If the video source is changing please use the videochange event otherwise you will lose startup time information.\"),this._resetView(Object.assign(c,{view_program_changed:!0})),u(),this.emit(\"play\"),this.emit(\"playing\")}),o.on(\"fragmentchange\",function(y,c){this.currentFragmentPDT=c.currentFragmentPDT,this.currentFragmentStart=c.currentFragmentStart}),o.on(\"destroy\",o.destroy),typeof window!=\"undefined\"&&typeof window.addEventListener==\"function\"&&typeof window.removeEventListener==\"function\"){var p=function(){var y=typeof o.data.view_start!=\"undefined\";o.mux.WINDOW_HIDDEN=document.visibilityState===\"hidden\",y&&o.mux.WINDOW_HIDDEN&&(o.data.player_is_paused||o.emit(\"hb\"))};window.addEventListener(\"visibilitychange\",p,!1);var b=function(y){y.persisted||o.destroy()};window.addEventListener(\"pagehide\",b,!1),o.on(\"destroy\",function(){window.removeEventListener(\"visibilitychange\",p),window.removeEventListener(\"pagehide\",b)})}o.on(\"playerready\",function(y,c){Object.assign(this.data,c)}),mi.forEach(function(y){o.on(y,function(c,v){y.indexOf(\"ad\")!==0&&this._updateStateData(),Object.assign(this.data,v),this._sanitizeData()}),o.on(\"after\"+y,function(){(y!==\"error\"||this.errorTracker.viewErrored)&&this.send(y)})}),o.on(\"viewend\",function(y,c){Object.assign(o.data,c)});var k=function(c){var v=this.mux.utils.now();this.data.player_init_time&&(this.data.player_startup_time=v-this.data.player_init_time),!this.mux.PLAYER_TRACKED&&this.NAVIGATION_START&&(this.mux.PLAYER_TRACKED=!0,(this.data.player_init_time||this.DOM_CONTENT_LOADED_EVENT_END)&&(this.data.page_load_time=Math.min(this.data.player_init_time||1/0,this.DOM_CONTENT_LOADED_EVENT_END||1/0)-this.NAVIGATION_START)),this.send(\"playerready\"),delete this.data.player_startup_time,delete this.data.page_load_time};return o.one(\"playerready\",k),o.longResumeTracker=new Ur(g(o)),o.errorTracker=new Bt(g(o)),new $t(g(o)),o.seekingTracker=new zt(g(o)),o.playheadTime=new Vt(g(o)),o.playbackHeartbeat=new Ht(g(o)),new Qt(g(o)),o.watchTimeTracker=new Ut(g(o)),new Ft(g(o)),o.adTracker=new Yt(g(o)),new Gt(g(o)),new jt(g(o)),new Jt(g(o)),new Xt(g(o)),new Br(g(o)),n.hlsjs&&o.addHLSJS(n),n.dashjs&&o.addDashJS(n),o.emit(\"viewinit\",n.data),o}return L(t,[{key:\"emit\",value:function(a,n){var o,s=Object.assign({viewer_time:this.mux.utils.now()},n),u=[a,s];if(this.emitTranslator)try{u=this.emitTranslator(a,s)}catch(p){this.mux.log.warn(\"Exception in emit translator callback.\",p)}u!=null&&u.length&&(o=De(X(t.prototype),\"emit\",this)).call.apply(o,[this].concat(W(u)))}},{key:\"destroy\",value:function(){this._destroyed||(this._destroyed=!0,typeof this.data.view_start!=\"undefined\"&&(this.emit(\"viewend\"),this.send(\"viewend\")),this.playbackEventDispatcher.destroy(),this.removeHLSJS(),this.removeDashJS(),window.clearTimeout(this._heartBeatTimeout))}},{key:\"send\",value:function(a){if(this.data.view_id){var n=Object.assign({},this.data),o=[\"player_program_time\",\"player_manifest_newest_program_time\",\"player_live_edge_program_time\",\"player_program_time\",\"video_holdback\",\"video_part_holdback\",\"video_target_duration\",\"video_part_target_duration\"];if(n.video_source_is_live===void 0&&(n.player_source_duration===1/0||n.video_source_duration===1/0?n.video_source_is_live=!0:(n.player_source_duration>0||n.video_source_duration>0)&&(n.video_source_is_live=!1)),n.video_source_is_live||o.forEach(function(b){n[b]=void 0}),n.video_source_url=n.video_source_url||n.player_source_url,n.video_source_url){var s=H(re(n.video_source_url),2),u=s[0],p=s[1];n.video_source_domain=p,n.video_source_hostname=u}delete n.ad_request_id,this.playbackEventDispatcher.send(a,n),this.data.view_sequence_number++,this.data.player_sequence_number++,hi.has(a)||this._restartHeartBeat(),a===\"viewend\"&&delete this.data.view_id}}},{key:\"_resetView\",value:function(a){this.emit(\"viewend\"),this.send(\"viewend\"),this.emit(\"viewinit\",a)}},{key:\"_updateStateData\",value:function(){var a=this.getStateData();if(typeof this.stateDataTranslator==\"function\")try{a=this.stateDataTranslator(a)}catch(n){this.mux.log.warn(\"Exception in stateDataTranslator translator callback.\",n)}Object.assign(this.data,a),this.playheadTime._updatePlayheadTime(),this._sanitizeData()}},{key:\"_sanitizeData\",value:function(){var a=this,n=[\"player_width\",\"player_height\",\"video_source_width\",\"video_source_height\",\"player_playhead_time\",\"video_source_bitrate\"];n.forEach(function(s){var u=parseInt(a.data[s],10);a.data[s]=isNaN(u)?void 0:u});var o=[\"player_source_url\",\"video_source_url\"];o.forEach(function(s){if(a.data[s]){var u=a.data[s].toLowerCase();(u.indexOf(\"data:\")===0||u.indexOf(\"blob:\")===0)&&(a.data[s]=\"MSE style URL\")}})}},{key:\"_resetVideoData\",value:function(){var a=this;Object.keys(this.data).forEach(function(n){n.indexOf(\"video_\")===0&&delete a.data[n]})}},{key:\"_resetViewData\",value:function(){var a=this;Object.keys(this.data).forEach(function(n){n.indexOf(\"view_\")===0&&delete a.data[n]}),this.data.view_sequence_number=1}},{key:\"_resetErrorData\",value:function(){delete this.data.player_error_code,delete this.data.player_error_message,delete this.data.player_error_context,delete this.data.player_error_severity,delete this.data.player_error_business_exception}},{key:\"_initializeViewData\",value:function(){var a=this,n=this.data.view_id=ee(),o=function(){n===a.data.view_id&&O(a.data,\"player_view_count\",1)};this.data.player_is_paused?this.one(\"play\",o):o()}},{key:\"_restartHeartBeat\",value:function(){var a=this;window.clearTimeout(this._heartBeatTimeout),this._heartBeatTimeout=window.setTimeout(function(){a.data.player_is_paused||a.emit(\"hb\")},1e4)}},{key:\"addHLSJS\",value:function(a){if(!a.hlsjs){this.mux.log.warn(\"You must pass a valid hlsjs instance in order to track it.\");return}if(this.hlsjs){this.mux.log.warn(\"An instance of HLS.js is already being monitored for this player.\");return}this.hlsjs=a.hlsjs,Ot(this.mux,this.id,a.hlsjs,{},a.Hls||window.Hls)}},{key:\"removeHLSJS\",value:function(){this.hlsjs&&(Pt(this.hlsjs),this.hlsjs=void 0)}},{key:\"addDashJS\",value:function(a){if(!a.dashjs){this.mux.log.warn(\"You must pass a valid dashjs instance in order to track it.\");return}if(this.dashjs){this.mux.log.warn(\"An instance of Dash.js is already being monitored for this player.\");return}this.dashjs=a.dashjs,Nt(this.mux,this.id,a.dashjs)}},{key:\"removeDashJS\",value:function(){this.dashjs&&(Lt(this.dashjs),this.dashjs=void 0)}}]),t}(Mt),Fr=yi;var he=V(nt());function ot(){return he.default&&!!(he.default.fullscreenElement||he.default.webkitFullscreenElement||he.default.mozFullScreenElement||he.default.msFullscreenElement)}var gi=[\"loadstart\",\"pause\",\"play\",\"playing\",\"seeking\",\"seeked\",\"timeupdate\",\"ratechange\",\"stalled\",\"waiting\",\"error\",\"ended\"],bi={1:\"MEDIA_ERR_ABORTED\",2:\"MEDIA_ERR_NETWORK\",3:\"MEDIA_ERR_DECODE\",4:\"MEDIA_ERR_SRC_NOT_SUPPORTED\"};function st(r,e,t){var i=H(se(e),3),a=i[0],n=i[1],o=i[2],s=r.log,u=r.utils.getComputedStyle,p=r.utils.secondsToMs,b={automaticErrorTracking:!0};if(a){if(o!==\"video\"&&o!==\"audio\")return s.error(\"The element of `\"+n+\"` was not a media element.\")}else return s.error(\"No element was found with the `\"+n+\"` query selector.\");a.mux&&(a.mux.destroy(),delete a.mux,s.warn(\"Already monitoring this video element, replacing existing event listeners\"));var k={getPlayheadTime:function(){return p(a.currentTime)},getStateData:function(){var v,T,x,m=((v=(T=this).getPlayheadTime)===null||v===void 0?void 0:v.call(T))||p(a.currentTime),f=this.hlsjs&&this.hlsjs.url,_=this.dashjs&&typeof this.dashjs.getSource==\"function\"&&this.dashjs.getSource(),d={player_is_paused:a.paused,player_width:parseInt(u(a,\"width\")),player_height:parseInt(u(a,\"height\")),player_autoplay_on:a.autoplay,player_preload_on:a.preload,player_language_code:a.lang,player_is_fullscreen:ot(),video_poster_url:a.poster,video_source_url:f||_||a.currentSrc,video_source_duration:p(a.duration),video_source_height:a.videoHeight,video_source_width:a.videoWidth,view_dropped_frame_count:a==null||(x=a.getVideoPlaybackQuality)===null||x===void 0?void 0:x.call(a).droppedVideoFrames};if(a.getStartDate&&m>0){var h=a.getStartDate();if(h&&typeof h.getTime==\"function\"&&h.getTime()){var w=h.getTime();if(d.player_program_time=w+m,a.seekable.length>0){var E=w+a.seekable.end(a.seekable.length-1);d.player_live_edge_program_time=E}}}return d}};t=Object.assign(b,t,k),t.data=Object.assign({player_software:\"HTML5 Video Element\",player_mux_plugin_name:\"VideoElementMonitor\",player_mux_plugin_version:r.VERSION},t.data),a.mux=a.mux||{},a.mux.deleted=!1,a.mux.emit=function(c,v){r.emit(n,c,v)},a.mux.updateData=function(c){a.mux.emit(\"hb\",c)};var y=function(){s.error(\"The monitor for this video element has already been destroyed.\")};a.mux.destroy=function(){Object.keys(a.mux.listeners).forEach(function(c){a.removeEventListener(c,a.mux.listeners[c],!1)}),delete a.mux.listeners,a.mux.destroy=y,a.mux.swapElement=y,a.mux.emit=y,a.mux.addHLSJS=y,a.mux.addDashJS=y,a.mux.removeHLSJS=y,a.mux.removeDashJS=y,a.mux.updateData=y,a.mux.setEmitTranslator=y,a.mux.setStateDataTranslator=y,a.mux.setGetPlayheadTime=y,a.mux.deleted=!0,r.emit(n,\"destroy\")},a.mux.swapElement=function(c){var v=H(se(c),3),T=v[0],x=v[1],m=v[2];if(T){if(m!==\"video\"&&m!==\"audio\")return r.log.error(\"The element of `\"+x+\"` was not a media element.\")}else return r.log.error(\"No element was found with the `\"+x+\"` query selector.\");T.muxId=a.muxId,delete a.muxId,T.mux=T.mux||{},T.mux.listeners=Object.assign({},a.mux.listeners),delete a.mux.listeners,Object.keys(T.mux.listeners).forEach(function(f){a.removeEventListener(f,T.mux.listeners[f],!1),T.addEventListener(f,T.mux.listeners[f],!1)}),T.mux.swapElement=a.mux.swapElement,T.mux.destroy=a.mux.destroy,delete a.mux,a=T},a.mux.addHLSJS=function(c){r.addHLSJS(n,c)},a.mux.addDashJS=function(c){r.addDashJS(n,c)},a.mux.removeHLSJS=function(){r.removeHLSJS(n)},a.mux.removeDashJS=function(){r.removeDashJS(n)},a.mux.setEmitTranslator=function(c){r.setEmitTranslator(n,c)},a.mux.setStateDataTranslator=function(c){r.setStateDataTranslator(n,c)},a.mux.setGetPlayheadTime=function(c){c||(c=t.getPlayheadTime),r.setGetPlayheadTime(n,c)},r.init(n,t),r.emit(n,\"playerready\"),a.paused||(r.emit(n,\"play\"),a.readyState>2&&r.emit(n,\"playing\")),a.mux.listeners={},gi.forEach(function(c){c===\"error\"&&!t.automaticErrorTracking||(a.mux.listeners[c]=function(){var v={};if(c===\"error\"){if(!a.error||a.error.code===1)return;v.player_error_code=a.error.code,v.player_error_message=bi[a.error.code]||a.error.message}r.emit(n,c,v)},a.addEventListener(c,a.mux.listeners[c],!1))})}function ut(r,e,t,i){var a=i;if(r&&typeof r[e]==\"function\")try{a=r[e].apply(r,t)}catch(n){q.info(\"safeCall error\",n)}return a}var ge=V(J()),ye;ge.default&&ge.default.WeakMap&&(ye=new WeakMap);function dt(r,e){if(!r||!e||!ge.default||typeof ge.default.getComputedStyle!=\"function\")return\"\";var t;return ye&&ye.has(r)&&(t=ye.get(r)),t||(t=ge.default.getComputedStyle(r,null),ye&&ye.set(r,t)),t.getPropertyValue(e)}function lt(r){return Math.floor(r*1e3)}var le={TARGET_DURATION:\"#EXT-X-TARGETDURATION\",PART_INF:\"#EXT-X-PART-INF\",SERVER_CONTROL:\"#EXT-X-SERVER-CONTROL\",INF:\"#EXTINF\",PROGRAM_DATE_TIME:\"#EXT-X-PROGRAM-DATE-TIME\",VERSION:\"#EXT-X-VERSION\",SESSION_DATA:\"#EXT-X-SESSION-DATA\"},Fe=function(e){return this.buffer=\"\",this.manifest={segments:[],serverControl:{},sessionData:{}},this.currentUri={},this.process(e),this.manifest};Fe.prototype.process=function(r){var e;for(this.buffer+=r,e=this.buffer.indexOf(\"\\n\");e>-1;e=this.buffer.indexOf(\"\\n\"))this.processLine(this.buffer.substring(0,e)),this.buffer=this.buffer.substring(e+1)};Fe.prototype.processLine=function(r){var e=r.indexOf(\":\"),t=ki(r,e),i=t[0],a=t.length===2?_t(t[1]):void 0;if(i[0]!==\"#\")this.currentUri.uri=i,this.manifest.segments.push(this.currentUri),this.manifest.targetDuration&&!(\"duration\"in this.currentUri)&&(this.currentUri.duration=this.manifest.targetDuration),this.currentUri={};else switch(i){case le.TARGET_DURATION:{if(!isFinite(a)||a<0)return;this.manifest.targetDuration=a,this.setHoldBack();break}case le.PART_INF:{ct(this.manifest,t),this.manifest.partInf.partTarget&&(this.manifest.partTargetDuration=this.manifest.partInf.partTarget),this.setHoldBack();break}case le.SERVER_CONTROL:{ct(this.manifest,t),this.setHoldBack();break}case le.INF:{a===0?this.currentUri.duration=.01:a>0&&(this.currentUri.duration=a);break}case le.PROGRAM_DATE_TIME:{var n=a,o=new Date(n);this.manifest.dateTimeString||(this.manifest.dateTimeString=n,this.manifest.dateTimeObject=o),this.currentUri.dateTimeString=n,this.currentUri.dateTimeObject=o;break}case le.VERSION:{ct(this.manifest,t);break}case le.SESSION_DATA:{var s=xi(t[1]),u=Ce(s);Object.assign(this.manifest.sessionData,u)}}};Fe.prototype.setHoldBack=function(){var r=this.manifest,e=r.serverControl,t=r.targetDuration,i=r.partTargetDuration;if(e){var a=\"holdBack\",n=\"partHoldBack\",o=t&&t*3,s=i&&i*2;t&&!e.hasOwnProperty(a)&&(e[a]=o),o&&e[a]<o&&(e[a]=o),i&&!e.hasOwnProperty(n)&&(e[n]=i*3),i&&e[n]<s&&(e[n]=s)}};var ct=function(r,e){var t=Vr(e[0].replace(\"#EXT-X-\",\"\")),i;Ei(e[1])?(i={},i=Object.assign(wi(e[1]),i)):i=_t(e[1]),r[t]=i},Vr=function(r){return r.toLowerCase().replace(/-(\\w)/g,function(e){return e[1].toUpperCase()})},_t=function(r){if(r.toLowerCase()===\"yes\"||r.toLowerCase()===\"no\")return r.toLowerCase()===\"yes\";var e=r.indexOf(\":\")!==-1?r:parseFloat(r);return isNaN(e)?r:e},Ti=function(r){var e={},t=r.split(\"=\");if(t.length>1){var i=Vr(t[0]);e[i]=_t(t[1])}return e},wi=function(r){for(var e=r.split(\",\"),t={},i=0;e.length>i;i++){var a=e[i],n=Ti(a);t=Object.assign(n,t)}return t},Ei=function(r){return r.indexOf(\"=\")>-1},ki=function(r,e){return e===-1?[r]:[r.substring(0,e),r.substring(e+1)]},xi=function(r){var e={};if(r){var t=r.search(\",\"),i=r.slice(0,t),a=r.slice(t+1),n=[i,a];return n.forEach(function(o,s){for(var u=o.replace(/['\"]+/g,\"\").split(\"=\"),p=0;p<u.length;p++)u[p]===\"DATA-ID\"&&(e[\"DATA-ID\"]=u[1-p]),u[p]===\"VALUE\"&&(e.VALUE=u[1-p])}),{data:e}}},Wr=Fe;var Di={safeCall:ut,safeIncrement:O,getComputedStyle:dt,secondsToMs:lt,assign:Object.assign,headersStringToObject:pe,cdnHeadersToRequestId:de,extractHostnameAndDomain:re,extractHostname:F,manifestParser:Wr,generateShortID:Oe,generateUUID:ee,now:A.now,findMediaElement:se},jr=Di;var Si={PLAYER_READY:\"playerready\",VIEW_INIT:\"viewinit\",VIDEO_CHANGE:\"videochange\",PLAY:\"play\",PAUSE:\"pause\",PLAYING:\"playing\",TIME_UPDATE:\"timeupdate\",SEEKING:\"seeking\",SEEKED:\"seeked\",REBUFFER_START:\"rebufferstart\",REBUFFER_END:\"rebufferend\",ERROR:\"error\",ENDED:\"ended\",RENDITION_CHANGE:\"renditionchange\",ORIENTATION_CHANGE:\"orientationchange\",AD_REQUEST:\"adrequest\",AD_RESPONSE:\"adresponse\",AD_BREAK_START:\"adbreakstart\",AD_PLAY:\"adplay\",AD_PLAYING:\"adplaying\",AD_PAUSE:\"adpause\",AD_FIRST_QUARTILE:\"adfirstquartile\",AD_MID_POINT:\"admidpoint\",AD_THIRD_QUARTILE:\"adthirdquartile\",AD_ENDED:\"adended\",AD_BREAK_END:\"adbreakend\",AD_ERROR:\"aderror\",REQUEST_COMPLETED:\"requestcompleted\",REQUEST_FAILED:\"requestfailed\",REQUEST_CANCELLED:\"requestcanceled\",HEARTBEAT:\"hb\",DESTROY:\"destroy\"},Gr=Si;var Ri=\"mux-embed\",qi=\"5.9.0\",Ai=\"2.1\",C={},ne=function(e){var t=arguments;typeof e==\"string\"?ne.hasOwnProperty(e)?be.default.setTimeout(function(){t=Array.prototype.splice.call(t,1),ne[e].apply(null,t)},0):q.warn(\"`\"+e+\"` is an unknown task\"):typeof e==\"function\"?be.default.setTimeout(function(){e(ne)},0):q.warn(\"`\"+e+\"` is invalid.\")},Oi={loaded:A.now(),NAME:Ri,VERSION:qi,API_VERSION:Ai,PLAYER_TRACKED:!1,monitor:function(e,t){return st(ne,e,t)},destroyMonitor:function(e){var t=H(se(e),1),i=t[0];i&&i.mux&&typeof i.mux.destroy==\"function\"?i.mux.destroy():q.error(\"A video element monitor for `\"+e+\"` has not been initialized via `mux.monitor`.\")},addHLSJS:function(e,t){var i=Q(e);C[i]?C[i].addHLSJS(t):q.error(\"A monitor for `\"+i+\"` has not been initialized.\")},addDashJS:function(e,t){var i=Q(e);C[i]?C[i].addDashJS(t):q.error(\"A monitor for `\"+i+\"` has not been initialized.\")},removeHLSJS:function(e){var t=Q(e);C[t]?C[t].removeHLSJS():q.error(\"A monitor for `\"+t+\"` has not been initialized.\")},removeDashJS:function(e){var t=Q(e);C[t]?C[t].removeDashJS():q.error(\"A monitor for `\"+t+\"` has not been initialized.\")},init:function(e,t){ce()&&t&&t.respectDoNotTrack&&q.info(\"The browser's Do Not Track flag is enabled - Mux beaconing is disabled.\");var i=Q(e);C[i]=new Fr(ne,i,t)},emit:function(e,t,i){var a=Q(e);C[a]?(C[a].emit(t,i),t===\"destroy\"&&delete C[a]):q.error(\"A monitor for `\"+a+\"` has not been initialized.\")},updateData:function(e,t){var i=Q(e);C[i]?C[i].emit(\"hb\",t):q.error(\"A monitor for `\"+i+\"` has not been initialized.\")},setEmitTranslator:function(e,t){var i=Q(e);C[i]?C[i].emitTranslator=t:q.error(\"A monitor for `\"+i+\"` has not been initialized.\")},setStateDataTranslator:function(e,t){var i=Q(e);C[i]?C[i].stateDataTranslator=t:q.error(\"A monitor for `\"+i+\"` has not been initialized.\")},setGetPlayheadTime:function(e,t){var i=Q(e);C[i]?C[i].getPlayheadTime=t:q.error(\"A monitor for `\"+i+\"` has not been initialized.\")},checkDoNotTrack:ce,log:q,utils:jr,events:Gr,WINDOW_HIDDEN:!1,WINDOW_UNLOADING:!1};Object.assign(ne,Oi);typeof be.default!=\"undefined\"&&typeof be.default.addEventListener==\"function\"&&be.default.addEventListener(\"pagehide\",function(r){r.persisted||(ne.WINDOW_UNLOADING=!0)},!1);var Ed=ne;export{Ed as default};\n/*!\n* JavaScript Cookie v2.1.3\n* https://github.com/js-cookie/js-cookie\n*\n* Copyright 2006, 2015 Klaus Hartl & Fagner Brack\n* Released under the MIT license\n*/\n","import le from\"mux-embed\";import rt from\"hls.js\";var E=rt;var C={VIDEO:\"video\",THUMBNAIL:\"thumbnail\",STORYBOARD:\"storyboard\",DRM:\"drm\"},b={NOT_AN_ERROR:0,NETWORK_OFFLINE:2000002,NETWORK_UNKNOWN_ERROR:2e6,NETWORK_NO_STATUS:2000001,NETWORK_INVALID_URL:24e5,NETWORK_NOT_FOUND:2404e3,NETWORK_NOT_READY:2412e3,NETWORK_GENERIC_SERVER_FAIL:25e5,NETWORK_TOKEN_MISSING:2403201,NETWORK_TOKEN_MALFORMED:2412202,NETWORK_TOKEN_EXPIRED:2403210,NETWORK_TOKEN_AUD_MISSING:2403221,NETWORK_TOKEN_AUD_MISMATCH:2403222,NETWORK_TOKEN_SUB_MISMATCH:2403232,ENCRYPTED_ERROR:5e6,ENCRYPTED_UNSUPPORTED_KEY_SYSTEM:5000001,ENCRYPTED_GENERATE_REQUEST_FAILED:5000002,ENCRYPTED_UPDATE_LICENSE_FAILED:5000003,ENCRYPTED_UPDATE_SERVER_CERT_FAILED:5000004,ENCRYPTED_CDM_ERROR:5000005,ENCRYPTED_OUTPUT_RESTRICTED:5000006,ENCRYPTED_MISSING_TOKEN:5000002},W=e=>e===C.VIDEO?\"playback\":e,L=class L extends Error{constructor(t,r=L.MEDIA_ERR_CUSTOM,n,o){var s;super(t),this.name=\"MediaError\",this.code=r,this.context=o,this.fatal=n!=null?n:r>=L.MEDIA_ERR_NETWORK&&r<=L.MEDIA_ERR_ENCRYPTED,this.message||(this.message=(s=L.defaultMessages[this.code])!=null?s:\"\")}};L.MEDIA_ERR_ABORTED=1,L.MEDIA_ERR_NETWORK=2,L.MEDIA_ERR_DECODE=3,L.MEDIA_ERR_SRC_NOT_SUPPORTED=4,L.MEDIA_ERR_ENCRYPTED=5,L.MEDIA_ERR_CUSTOM=100,L.defaultMessages={1:\"You aborted the media playback\",2:\"A network error caused the media download to fail.\",3:\"A media error caused playback to be aborted. The media could be corrupt or your browser does not support this format.\",4:\"An unsupported error occurred. The server or network failed, or your browser does not support this format.\",5:\"The media is encrypted and there are no keys to decrypt it.\"};var T=L;var nt=e=>e==null,H=(e,t)=>nt(t)?!1:e in t,Y={ANY:\"any\",MUTED:\"muted\"},h={ON_DEMAND:\"on-demand\",LIVE:\"live\",UNKNOWN:\"unknown\"},Q={MSE:\"mse\",NATIVE:\"native\"},w={HEADER:\"header\",QUERY:\"query\",NONE:\"none\"},zt=Object.values(w),I={M3U8:\"application/vnd.apple.mpegurl\",MP4:\"video/mp4\"},F={HLS:I.M3U8},Qt=Object.keys(F),Zt=[...Object.values(I),\"hls\",\"HLS\"],er={upTo720p:\"720p\",upTo1080p:\"1080p\",upTo1440p:\"1440p\",upTo2160p:\"2160p\"},tr={noLessThan480p:\"480p\",noLessThan540p:\"540p\",noLessThan720p:\"720p\",noLessThan1080p:\"1080p\",noLessThan1440p:\"1440p\",noLessThan2160p:\"2160p\"},rr={DESCENDING:\"desc\"},nr={upTo720p:\"720p\",upTo1080p:\"1080p\",upTo1440p:\"1440p\",upTo2160p:\"2160p\"};var ot=\"en\",$={code:ot};var v=(e,t,r,n,o=e)=>{o.addEventListener(t,r,n),e.addEventListener(\"teardown\",()=>{o.removeEventListener(t,r)},{once:!0})};function me(e,t,r){t&&r>t&&(r=t);for(let n=0;n<e.length;n++)if(e.start(n)<=r&&e.end(n)>=r)return!0;return!1}var B=e=>{let t=e.indexOf(\"?\");if(t<0)return[e];let r=e.slice(0,t),n=e.slice(t);return[r,n]},V=e=>{let{type:t}=e;if(t){let r=t.toUpperCase();return H(r,F)?F[r]:t}return at(e)},ee=e=>e===\"VOD\"?h.ON_DEMAND:h.LIVE,te=e=>e===\"EVENT\"?Number.POSITIVE_INFINITY:e===\"VOD\"?Number.NaN:0,at=e=>{let{src:t}=e;if(!t)return\"\";let r=\"\";try{r=new URL(t).pathname}catch{console.error(\"invalid url\")}let n=r.lastIndexOf(\".\");if(n<0)return it(e)?I.M3U8:\"\";let s=r.slice(n+1).toUpperCase();return H(s,I)?I[s]:\"\"},st=\"mux.com\",it=({src:e,customDomain:t=st})=>{let r;try{r=new URL(`${e}`)}catch{return!1}let n=r.protocol===\"https:\",o=r.hostname===`stream.${t}`.toLowerCase(),s=r.pathname.split(\"/\"),a=s.length===2,i=!(s!=null&&s[1].includes(\".\"));return n&&o&&a&&i},re=e=>{let t=(e!=null?e:\"\").split(\".\")[1];if(t)try{let r=t.replace(/-/g,\"+\").replace(/_/g,\"/\"),n=decodeURIComponent(atob(r).split(\"\").map(function(o){return\"%\"+(\"00\"+o.charCodeAt(0).toString(16)).slice(-2)}).join(\"\"));return JSON.parse(n)}catch{return}},Ee=({exp:e},t=Date.now())=>!e||e*1e3<t,ge=({sub:e},t)=>e!==t,Me=({aud:e},t)=>!e,xe=({aud:e},t)=>e!==t,Re=\"en\";function x(e,t=!0){var o,s;let r=t&&(s=(o=$)==null?void 0:o[e])!=null?s:e,n=t?$.code:Re;return new Z(r,n)}var Z=class{constructor(t,r=(n=>(n=$)!=null?n:Re)()){this.message=t,this.locale=r}format(t){return this.message.replace(/\\{(\\w+)\\}/g,(r,n)=>{var o;return(o=t[n])!=null?o:\"\"})}toString(){return this.message}};var ct=Object.values(Y),be=e=>typeof e==\"boolean\"||typeof e==\"string\"&&ct.includes(e),De=(e,t,r)=>{let{autoplay:n}=e,o=!1,s=!1,a=be(n)?n:!!n,i=()=>{o||v(t,\"playing\",()=>{o=!0},{once:!0})};if(i(),v(t,\"loadstart\",()=>{o=!1,i(),ne(t,a)},{once:!0}),v(t,\"loadstart\",()=>{r||(e.streamType&&e.streamType!==h.UNKNOWN?s=e.streamType===h.LIVE:s=!Number.isFinite(t.duration)),ne(t,a)},{once:!0}),r&&r.once(E.Events.LEVEL_LOADED,(d,l)=>{var u;e.streamType&&e.streamType!==h.UNKNOWN?s=e.streamType===h.LIVE:s=(u=l.details.live)!=null?u:!1}),!a){let d=()=>{!s||Number.isFinite(e.startTime)||(r!=null&&r.liveSyncPosition?t.currentTime=r.liveSyncPosition:Number.isFinite(t.seekable.end(0))&&(t.currentTime=t.seekable.end(0)))};r&&v(t,\"play\",()=>{t.preload===\"metadata\"?r.once(E.Events.LEVEL_UPDATED,d):d()},{once:!0})}return d=>{o||(a=be(d)?d:!!d,ne(t,a))}},ne=(e,t)=>{if(!t)return;let r=e.muted,n=()=>e.muted=r;switch(t){case Y.ANY:e.play().catch(()=>{e.muted=!0,e.play().catch(n)});break;case Y.MUTED:e.muted=!0,e.play().catch(n);break;default:e.play().catch(()=>{});break}};var Ce=({preload:e,src:t},r,n)=>{let o=u=>{u!=null&&[\"\",\"none\",\"metadata\",\"auto\"].includes(u)?r.setAttribute(\"preload\",u):r.removeAttribute(\"preload\")};if(!n)return o(e),o;let s=!1,a=!1,i=n.config.maxBufferLength,c=n.config.maxBufferSize,d=u=>{o(u);let y=u!=null?u:r.preload;a||y===\"none\"||(y===\"metadata\"?(n.config.maxBufferLength=1,n.config.maxBufferSize=1):(n.config.maxBufferLength=i,n.config.maxBufferSize=c),l())},l=()=>{!s&&t&&(s=!0,n.loadSource(t))};return v(r,\"play\",()=>{a=!0,n.config.maxBufferLength=i,n.config.maxBufferSize=c,l()},{once:!0}),d(e),d};function ve(e,t){var i;if(!(\"videoTracks\"in e))return;let r=new WeakMap;t.on(E.Events.MANIFEST_PARSED,function(c,d){a();let l=e.addVideoTrack(\"main\");l.selected=!0;for(let[u,y]of d.levels.entries()){let m=l.addRendition(y.url[0],y.width,y.height,y.videoCodec,y.bitrate);r.set(y,`${u}`),m.id=`${u}`}}),t.on(E.Events.AUDIO_TRACKS_UPDATED,function(c,d){s();for(let l of d.audioTracks){let u=l.default?\"main\":\"alternative\",y=e.addAudioTrack(u,l.name,l.lang);y.id=`${l.id}`,l.default&&(y.enabled=!0)}}),e.audioTracks.addEventListener(\"change\",()=>{var l;let c=+((l=[...e.audioTracks].find(u=>u.enabled))==null?void 0:l.id),d=t.audioTracks.map(u=>u.id);c!=t.audioTrack&&d.includes(c)&&(t.audioTrack=c)}),t.on(E.Events.LEVELS_UPDATED,function(c,d){var y;let l=e.videoTracks[(y=e.videoTracks.selectedIndex)!=null?y:0];if(!l)return;let u=d.levels.map(m=>r.get(m));for(let m of e.videoRenditions)m.id&&!u.includes(m.id)&&l.removeRendition(m)});let n=c=>{let d=c.target.selectedIndex;d!=t.nextLevel&&(t.nextLevel=d)};(i=e.videoRenditions)==null||i.addEventListener(\"change\",n);let o=()=>{for(let c of e.videoTracks)e.removeVideoTrack(c)},s=()=>{for(let c of e.audioTracks)e.removeAudioTrack(c)},a=()=>{o(),s()};t.once(E.Events.DESTROYING,a)}var oe=e=>\"time\"in e?e.time:e.startTime;function Pe(e,t){t.on(E.Events.NON_NATIVE_TEXT_TRACKS_FOUND,(o,{tracks:s})=>{s.forEach(a=>{var l,u;let i=(l=a.subtitleTrack)!=null?l:a.closedCaptions,c=t.subtitleTracks.findIndex(({lang:y,name:m,type:f})=>y==(i==null?void 0:i.lang)&&m===a.label&&f.toLowerCase()===a.kind),d=((u=a._id)!=null?u:a.default)?\"default\":`${a.kind}${c}`;ae(e,a.kind,a.label,i==null?void 0:i.lang,d,a.default)})});let r=()=>{if(!t.subtitleTracks.length)return;let o=Array.from(e.textTracks).find(i=>i.id&&i.mode===\"showing\"&&[\"subtitles\",\"captions\"].includes(i.kind));if(!o)return;let s=t.subtitleTracks[t.subtitleTrack],a=s?s.default?\"default\":`${t.subtitleTracks[t.subtitleTrack].type.toLowerCase()}${t.subtitleTrack}`:void 0;if(t.subtitleTrack<0||(o==null?void 0:o.id)!==a){let i=t.subtitleTracks.findIndex(({lang:c,name:d,type:l,default:u})=>o.id===\"default\"&&u||c==o.language&&d===o.label&&l.toLowerCase()===o.kind);t.subtitleTrack=i}(o==null?void 0:o.id)===a&&o.cues&&Array.from(o.cues).forEach(i=>{o.addCue(i)})};e.textTracks.addEventListener(\"change\",r),t.on(E.Events.CUES_PARSED,(o,{track:s,cues:a})=>{let i=e.textTracks.getTrackById(s);if(!i)return;let c=i.mode===\"disabled\";c&&(i.mode=\"hidden\"),a.forEach(d=>{var l;(l=i.cues)!=null&&l.getCueById(d.id)||i.addCue(d)}),c&&(i.mode=\"disabled\")}),t.once(E.Events.DESTROYING,()=>{e.textTracks.removeEventListener(\"change\",r),e.querySelectorAll(\"track[data-removeondestroy]\").forEach(s=>{s.remove()})});let n=()=>{Array.from(e.textTracks).forEach(o=>{var s,a;if(![\"subtitles\",\"caption\"].includes(o.kind)&&(o.label===\"thumbnails\"||o.kind===\"chapters\")){if(!((s=o.cues)!=null&&s.length)){let i=\"track\";o.kind&&(i+=`[kind=\"${o.kind}\"]`),o.label&&(i+=`[label=\"${o.label}\"]`);let c=e.querySelector(i),d=(a=c==null?void 0:c.getAttribute(\"src\"))!=null?a:\"\";c==null||c.removeAttribute(\"src\"),setTimeout(()=>{c==null||c.setAttribute(\"src\",d)},0)}o.mode!==\"hidden\"&&(o.mode=\"hidden\")}})};t.once(E.Events.MANIFEST_LOADED,n),t.once(E.Events.MEDIA_ATTACHED,n)}function ae(e,t,r,n,o,s){let a=document.createElement(\"track\");return a.kind=t,a.label=r,n&&(a.srclang=n),o&&(a.id=o),s&&(a.default=!0),a.track.mode=[\"subtitles\",\"captions\"].includes(t)?\"disabled\":\"hidden\",a.setAttribute(\"data-removeondestroy\",\"\"),e.append(a),a.track}function ut(e,t){let r=Array.prototype.find.call(e.querySelectorAll(\"track\"),n=>n.track===t);r==null||r.remove()}function O(e,t,r){var n;return(n=Array.from(e.querySelectorAll(\"track\")).find(o=>o.track.label===t&&o.track.kind===r))==null?void 0:n.track}async function he(e,t,r,n){let o=O(e,r,n);return o||(o=ae(e,n,r),o.mode=\"hidden\",await new Promise(s=>setTimeout(()=>s(void 0),0))),o.mode!==\"hidden\"&&(o.mode=\"hidden\"),[...t].sort((s,a)=>oe(a)-oe(s)).forEach(s=>{var c,d;let a=s.value,i=oe(s);if(\"endTime\"in s&&s.endTime!=null)o==null||o.addCue(new VTTCue(i,s.endTime,n===\"chapters\"?a:JSON.stringify(a!=null?a:null)));else{let l=Array.prototype.findIndex.call(o==null?void 0:o.cues,f=>f.startTime>=i),u=(c=o==null?void 0:o.cues)==null?void 0:c[l],y=u?u.startTime:Number.isFinite(e.duration)?e.duration:Number.MAX_SAFE_INTEGER,m=(d=o==null?void 0:o.cues)==null?void 0:d[l-1];m&&(m.endTime=i),o==null||o.addCue(new VTTCue(i,y,n===\"chapters\"?a:JSON.stringify(a!=null?a:null)))}}),e.textTracks.dispatchEvent(new Event(\"change\",{bubbles:!0,composed:!0})),o}var se=\"cuepoints\",_e=Object.freeze({label:se});async function ke(e,t,r=_e){return he(e,t,r.label,\"metadata\")}var J=e=>({time:e.startTime,value:JSON.parse(e.text)});function dt(e,t={label:se}){let r=O(e,t.label,\"metadata\");return r!=null&&r.cues?Array.from(r.cues,n=>J(n)):[]}function Le(e,t={label:se}){var s,a;let r=O(e,t.label,\"metadata\");if(!((s=r==null?void 0:r.activeCues)!=null&&s.length))return;if(r.activeCues.length===1)return J(r.activeCues[0]);let{currentTime:n}=e,o=Array.prototype.find.call((a=r.activeCues)!=null?a:[],({startTime:i,endTime:c})=>i<=n&&c>n);return J(o||r.activeCues[0])}async function Ae(e,t=_e){return new Promise(r=>{v(e,\"loadstart\",async()=>{let n=await ke(e,[],t);v(e,\"cuechange\",()=>{let o=Le(e);if(o){let s=new CustomEvent(\"cuepointchange\",{composed:!0,bubbles:!0,detail:o});e.dispatchEvent(s)}},{},n),r(n)})})}var ie=\"chapters\",Ie=Object.freeze({label:ie}),j=e=>({startTime:e.startTime,endTime:e.endTime,value:e.text});async function Se(e,t,r=Ie){return he(e,t,r.label,\"chapters\")}function lt(e,t={label:ie}){var n;let r=O(e,t.label,\"chapters\");return(n=r==null?void 0:r.cues)!=null&&n.length?Array.from(r.cues,o=>j(o)):[]}function Ne(e,t={label:ie}){var s,a;let r=O(e,t.label,\"chapters\");if(!((s=r==null?void 0:r.activeCues)!=null&&s.length))return;if(r.activeCues.length===1)return j(r.activeCues[0]);let{currentTime:n}=e,o=Array.prototype.find.call((a=r.activeCues)!=null?a:[],({startTime:i,endTime:c})=>i<=n&&c>n);return j(o||r.activeCues[0])}async function we(e,t=Ie){return new Promise(r=>{v(e,\"loadstart\",async()=>{let n=await Se(e,[],t);v(e,\"cuechange\",()=>{let o=Ne(e);if(o){let s=new CustomEvent(\"chapterchange\",{composed:!0,bubbles:!0,detail:o});e.dispatchEvent(s)}},{},n),r(n)})})}function pt(e,t){if(t){let r=t.playingDate;if(r!=null)return new Date(r.getTime()-e.currentTime*1e3)}return typeof e.getStartDate==\"function\"?e.getStartDate():new Date(NaN)}function ft(e,t){if(t&&t.playingDate)return t.playingDate;if(typeof e.getStartDate==\"function\"){let r=e.getStartDate();return new Date(r.getTime()+e.currentTime*1e3)}return new Date(NaN)}var ce={VIDEO:\"v\",THUMBNAIL:\"t\",STORYBOARD:\"s\",DRM:\"d\"},Tt=e=>{if(e===C.VIDEO)return ce.VIDEO;if(e===C.DRM)return ce.DRM},yt=(e,t)=>{var o,s;let r=W(e),n=`${r}Token`;return(o=t.tokens)!=null&&o[r]?(s=t.tokens)==null?void 0:s[r]:H(n,t)?t[n]:void 0},K=(e,t,r,n,o=!1,s=!(a=>(a=globalThis.navigator)==null?void 0:a.onLine)())=>{var M,k;if(s){let R=x(\"Your device appears to be offline\",o),D=void 0,p=T.MEDIA_ERR_NETWORK,_=new T(R,p,!1,D);return _.errorCategory=t,_.muxCode=b.NETWORK_OFFLINE,_.data=e,_}let i=\"status\"in e?e.status:e.code,c=Date.now(),d=T.MEDIA_ERR_NETWORK;if(i===200)return;let l=W(t),u=yt(t,r),y=Tt(t),[m]=B((M=r.playbackId)!=null?M:\"\");if(!i||!m)return;let f=re(u);if(u&&!f){let R=x(\"The {tokenNamePrefix}-token provided is invalid or malformed.\",o).format({tokenNamePrefix:l}),D=x(\"Compact JWT string: {token}\",o).format({token:u}),p=new T(R,d,!0,D);return p.errorCategory=t,p.muxCode=b.NETWORK_TOKEN_MALFORMED,p.data=e,p}if(i>=500){let R=new T(\"\",d,n!=null?n:!0);return R.errorCategory=t,R.muxCode=b.NETWORK_UNKNOWN_ERROR,R}if(i===403)if(f){if(Ee(f,c)){let R={timeStyle:\"medium\",dateStyle:\"medium\"},D=x(\"The video\\u2019s secured {tokenNamePrefix}-token has expired.\",o).format({tokenNamePrefix:l}),p=x(\"Expired at: {expiredDate}. Current time: {currentDate}.\",o).format({expiredDate:new Intl.DateTimeFormat(\"en\",R).format((k=f.exp)!=null?k:0*1e3),currentDate:new Intl.DateTimeFormat(\"en\",R).format(c)}),_=new T(D,d,!0,p);return _.errorCategory=t,_.muxCode=b.NETWORK_TOKEN_EXPIRED,_.data=e,_}if(ge(f,m)){let R=x(\"The video\\u2019s playback ID does not match the one encoded in the {tokenNamePrefix}-token.\",o).format({tokenNamePrefix:l}),D=x(\"Specified playback ID: {playbackId} and the playback ID encoded in the {tokenNamePrefix}-token: {tokenPlaybackId}\",o).format({tokenNamePrefix:l,playbackId:m,tokenPlaybackId:f.sub}),p=new T(R,d,!0,D);return p.errorCategory=t,p.muxCode=b.NETWORK_TOKEN_SUB_MISMATCH,p.data=e,p}if(Me(f,y)){let R=x(\"The {tokenNamePrefix}-token is formatted with incorrect information.\",o).format({tokenNamePrefix:l}),D=x(\"The {tokenNamePrefix}-token has no aud value. aud value should be {expectedAud}.\",o).format({tokenNamePrefix:l,expectedAud:y}),p=new T(R,d,!0,D);return p.errorCategory=t,p.muxCode=b.NETWORK_TOKEN_AUD_MISSING,p.data=e,p}if(xe(f,y)){let R=x(\"The {tokenNamePrefix}-token is formatted with incorrect information.\",o).format({tokenNamePrefix:l}),D=x(\"The {tokenNamePrefix}-token has an incorrect aud value: {aud}. aud value should be {expectedAud}.\",o).format({tokenNamePrefix:l,expectedAud:y,aud:f.aud}),p=new T(R,d,!0,D);return p.errorCategory=t,p.muxCode=b.NETWORK_TOKEN_AUD_MISMATCH,p.data=e,p}}else{let R=x(\"Authorization error trying to access this {category} URL. If this is a signed URL, you might need to provide a {tokenNamePrefix}-token.\",o).format({tokenNamePrefix:l,category:t}),D=x(\"Specified playback ID: {playbackId}\",o).format({playbackId:m}),p=new T(R,d,n!=null?n:!0,D);return p.errorCategory=t,p.muxCode=b.NETWORK_TOKEN_MISSING,p.data=e,p}if(i===412){let R=x(\"This playback-id may belong to a live stream that is not currently active or an asset that is not ready.\",o),D=x(\"Specified playback ID: {playbackId}\",o).format({playbackId:m}),p=new T(R,d,n!=null?n:!0,D);return p.errorCategory=t,p.muxCode=b.NETWORK_NOT_READY,p.streamType=r.streamType===h.LIVE?\"live\":r.streamType===h.ON_DEMAND?\"on-demand\":\"unknown\",p.data=e,p}if(i===404){let R=x(\"This URL or playback-id does not exist. You may have used an Asset ID or an ID from a different resource.\",o),D=x(\"Specified playback ID: {playbackId}\",o).format({playbackId:m}),p=new T(R,d,n!=null?n:!0,D);return p.errorCategory=t,p.muxCode=b.NETWORK_NOT_FOUND,p.data=e,p}if(i===400){let R=x(\"The URL or playback-id was invalid. You may have used an invalid value as a playback-id.\"),D=x(\"Specified playback ID: {playbackId}\",o).format({playbackId:m}),p=new T(R,d,n!=null?n:!0,D);return p.errorCategory=t,p.muxCode=b.NETWORK_INVALID_URL,p.data=e,p}let g=new T(\"\",d,n!=null?n:!0);return g.errorCategory=t,g.muxCode=b.NETWORK_UNKNOWN_ERROR,g.data=e,g};var Oe=E.DefaultConfig.capLevelController,mt={\"720p\":921600,\"1080p\":2073600,\"1440p\":4194304,\"2160p\":8294400};function Et(e){let t=e.toLowerCase().trim();return mt[t]}var N=class N extends Oe{constructor(t){super(t)}static setMaxAutoResolution(t,r){r?N.maxAutoResolution.set(t,r):N.maxAutoResolution.delete(t)}getMaxAutoResolution(){var r;let t=this.hls;return(r=N.maxAutoResolution.get(t))!=null?r:void 0}get levels(){var t;return(t=this.hls.levels)!=null?t:[]}getValidLevels(t){return this.levels.filter((r,n)=>this.isLevelAllowed(r)&&n<=t)}getMaxLevelCapped(t){let r=this.getValidLevels(t),n=this.getMaxAutoResolution();if(!n)return super.getMaxLevel(t);let o=Et(n);if(!o)return super.getMaxLevel(t);let s=r.filter(c=>c.width*c.height<=o),a=s.findIndex(c=>c.width*c.height===o);if(a!==-1){let c=s[a];return r.findIndex(d=>d===c)}if(s.length===0)return 0;let i=s[s.length-1];return r.findIndex(c=>c===i)}getMaxLevel(t){if(this.getMaxAutoResolution()!==void 0)return this.getMaxLevelCapped(t);let r=super.getMaxLevel(t),n=this.getValidLevels(t);if(!n[r])return r;let o=Math.min(n[r].width,n[r].height),s=N.minMaxResolution;return o>=s?r:Oe.getMaxLevelByMediaSize(n,s*(16/9),s)}};N.minMaxResolution=720,N.maxAutoResolution=new WeakMap;var ue=N,q=ue;var G={FAIRPLAY:\"fairplay\",PLAYREADY:\"playready\",WIDEVINE:\"widevine\"},gt=e=>{if(e.includes(\"fps\"))return G.FAIRPLAY;if(e.includes(\"playready\"))return G.PLAYREADY;if(e.includes(\"widevine\"))return G.WIDEVINE},Mt=e=>{let t=e.split(`\n`).find((r,n,o)=>n&&o[n-1].startsWith(\"#EXT-X-STREAM-INF\"));return fetch(t).then(r=>r.status!==200?Promise.reject(r):r.text())},xt=e=>{let t=e.split(`\n`).filter(n=>n.startsWith(\"#EXT-X-SESSION-DATA\"));if(!t.length)return{};let r={};for(let n of t){let o=bt(n),s=o[\"DATA-ID\"];s&&(r[s]={...o})}return{sessionData:r}},Rt=/([A-Z0-9-]+)=\"?(.*?)\"?(?:,|$)/g;function bt(e){let t=[...e.matchAll(Rt)];return Object.fromEntries(t.map(([,r,n])=>[r,n]))}var Dt=e=>{var i,c,d;let t=e.split(`\n`),n=(c=((i=t.find(l=>l.startsWith(\"#EXT-X-PLAYLIST-TYPE\")))!=null?i:\"\").split(\":\")[1])==null?void 0:c.trim(),o=ee(n),s=te(n),a;if(o===h.LIVE){let l=t.find(y=>y.startsWith(\"#EXT-X-PART-INF\"));if(!!l)a=+l.split(\":\")[1].split(\"=\")[1]*2;else{let y=t.find(g=>g.startsWith(\"#EXT-X-TARGETDURATION\")),m=(d=y==null?void 0:y.split(\":\"))==null?void 0:d[1];a=+(m!=null?m:6)*3}}return{streamType:o,targetLiveWindow:s,liveEdgeStartOffset:a}},Ct=async(e,t)=>{if(t===I.MP4)return{streamType:h.ON_DEMAND,targetLiveWindow:Number.NaN,liveEdgeStartOffset:void 0,sessionData:void 0};if(t===I.M3U8){let r=await fetch(e);if(!r.ok)return Promise.reject(r);let n=await r.text(),o=await Mt(n);return{...xt(n),...Dt(o)}}return console.error(`Media type ${t} is an unrecognized or unsupported type for src ${e}.`),{streamType:void 0,targetLiveWindow:void 0,liveEdgeStartOffset:void 0,sessionData:void 0}},vt=async(e,t,r=V({src:e}))=>{var c,d,l,u;let{streamType:n,targetLiveWindow:o,liveEdgeStartOffset:s,sessionData:a}=await Ct(e,r),i=a==null?void 0:a[\"com.apple.hls.chapters\"];(i!=null&&i.URI||i!=null&&i.VALUE.toLocaleLowerCase().startsWith(\"http\"))&&pe((c=i.URI)!=null?c:i.VALUE,t),((d=P.get(t))!=null?d:{}).liveEdgeStartOffset=s,((l=P.get(t))!=null?l:{}).targetLiveWindow=o,t.dispatchEvent(new CustomEvent(\"targetlivewindowchange\",{composed:!0,bubbles:!0})),((u=P.get(t))!=null?u:{}).streamType=n,t.dispatchEvent(new CustomEvent(\"streamtypechange\",{composed:!0,bubbles:!0}))},pe=async(e,t)=>{var r,n;try{let o=await fetch(e);if(!o.ok)throw new Error(`Failed to fetch Mux metadata: ${o.status} ${o.statusText}`);let s=await o.json(),a={};if(!((r=s==null?void 0:s[0])!=null&&r.metadata))return;for(let c of s[0].metadata)c.key&&c.value&&(a[c.key]=c.value);((n=P.get(t))!=null?n:{}).metadata=a;let i=new CustomEvent(\"muxmetadata\");t.dispatchEvent(i)}catch(o){console.error(o)}},Pt=e=>{var a;let t=e.type,r=ee(t),n=te(t),o,s=!!((a=e.partList)!=null&&a.length);return r===h.LIVE&&(o=s?e.partTarget*2:e.targetduration*3),{streamType:r,targetLiveWindow:n,liveEdgeStartOffset:o,lowLatency:s}},ht=(e,t,r)=>{var i,c,d,l,u,y,m,f;let{streamType:n,targetLiveWindow:o,liveEdgeStartOffset:s,lowLatency:a}=Pt(e);if(n===h.LIVE){a?(r.config.backBufferLength=(i=r.userConfig.backBufferLength)!=null?i:4,r.config.maxFragLookUpTolerance=(c=r.userConfig.maxFragLookUpTolerance)!=null?c:.001,r.config.abrBandWidthUpFactor=(d=r.userConfig.abrBandWidthUpFactor)!=null?d:r.config.abrBandWidthFactor):r.config.backBufferLength=(l=r.userConfig.backBufferLength)!=null?l:8;let g=Object.freeze({get length(){return t.seekable.length},start(M){return t.seekable.start(M)},end(M){var k;return M>this.length||M<0||Number.isFinite(t.duration)?t.seekable.end(M):(k=r.liveSyncPosition)!=null?k:t.seekable.end(M)}});((u=P.get(t))!=null?u:{}).seekable=g}((y=P.get(t))!=null?y:{}).liveEdgeStartOffset=s,((m=P.get(t))!=null?m:{}).targetLiveWindow=o,t.dispatchEvent(new CustomEvent(\"targetlivewindowchange\",{composed:!0,bubbles:!0})),((f=P.get(t))!=null?f:{}).streamType=n,t.dispatchEvent(new CustomEvent(\"streamtypechange\",{composed:!0,bubbles:!0}))},He,Ve,Be=(Ve=(He=globalThis==null?void 0:globalThis.navigator)==null?void 0:He.userAgent)!=null?Ve:\"\",Ke,We,Ye,_t=(Ye=(We=(Ke=globalThis==null?void 0:globalThis.navigator)==null?void 0:Ke.userAgentData)==null?void 0:We.platform)!=null?Ye:\"\",kt=Be.toLowerCase().includes(\"android\")||[\"x11\",\"android\"].some(e=>_t.toLowerCase().includes(e)),Lt=e=>/^((?!chrome|android).)*safari/i.test(Be)&&!!e.canPlayType(\"application/vnd.apple.mpegurl\"),P=new WeakMap,S=\"mux.com\",Fe,$e,Je=($e=(Fe=E).isSupported)==null?void 0:$e.call(Fe),At=e=>kt||!Lt(e),jr=()=>le.utils.now(),It=le.utils.generateUUID,qr=({playbackId:e,customDomain:t=S,maxResolution:r,minResolution:n,renditionOrder:o,programStartTime:s,programEndTime:a,assetStartTime:i,assetEndTime:c,playbackToken:d,tokens:{playback:l=d}={},extraSourceParams:u={}}={})=>{if(!e)return;let[y,m=\"\"]=B(e),f=new URL(`https://stream.${t}/${y}.m3u8${m}`);return l||f.searchParams.has(\"token\")?(f.searchParams.forEach((g,M)=>{M!=\"token\"&&f.searchParams.delete(M)}),l&&f.searchParams.set(\"token\",l)):(r&&f.searchParams.set(\"max_resolution\",r),n&&(f.searchParams.set(\"min_resolution\",n),r&&+r.slice(0,-1)<+n.slice(0,-1)&&console.error(\"minResolution must be <= maxResolution\",\"minResolution\",n,\"maxResolution\",r)),o&&f.searchParams.set(\"rendition_order\",o),s&&f.searchParams.set(\"program_start_time\",`${s}`),a&&f.searchParams.set(\"program_end_time\",`${a}`),i&&f.searchParams.set(\"asset_start_time\",`${i}`),c&&f.searchParams.set(\"asset_end_time\",`${c}`),Object.entries(u).forEach(([g,M])=>{M!=null&&f.searchParams.set(g,M)})),f.toString()},z=e=>{if(!e)return;let[t]=e.split(\"?\");return t||void 0},je=e=>{if(!e||!e.startsWith(\"https://stream.\"))return;let[t]=new URL(e).pathname.slice(1).split(/\\.m3u8|\\//);return t||void 0},St=e=>{var t,r,n;return(t=e==null?void 0:e.metadata)!=null&&t.video_id?e.metadata.video_id:Ze(e)&&(n=(r=z(e.playbackId))!=null?r:je(e.src))!=null?n:e.src},Nt=e=>{var t;return(t=P.get(e))==null?void 0:t.error},Gr=e=>{var t;return(t=P.get(e))==null?void 0:t.metadata},Ue=e=>{var t,r;return(r=(t=P.get(e))==null?void 0:t.streamType)!=null?r:h.UNKNOWN},Xr=e=>{var t,r;return(r=(t=P.get(e))==null?void 0:t.targetLiveWindow)!=null?r:Number.NaN},qe=e=>{var t,r;return(r=(t=P.get(e))==null?void 0:t.seekable)!=null?r:e.seekable},zr=e=>{var n;let t=(n=P.get(e))==null?void 0:n.liveEdgeStartOffset;if(typeof t!=\"number\")return Number.NaN;let r=qe(e);return r.length?r.end(r.length-1)-t:Number.NaN},fe=.034,wt=(e,t,r=fe)=>Math.abs(e-t)<=r,Ge=(e,t,r=fe)=>e>t||wt(e,t,r),Ot=(e,t=fe)=>e.paused&&Ge(e.currentTime,e.duration,t),Xe=(e,t)=>{var d,l,u;if(!t||!e.buffered.length)return;if(e.readyState>2)return!1;let r=t.currentLevel>=0?(l=(d=t.levels)==null?void 0:d[t.currentLevel])==null?void 0:l.details:(u=t.levels.find(y=>!!y.details))==null?void 0:u.details;if(!r||r.live)return;let{fragments:n}=r;if(!(n!=null&&n.length))return;if(e.currentTime<e.duration-(r.targetduration+.5))return!1;let o=n[n.length-1];if(e.currentTime<=o.start)return!1;let s=o.start+o.duration/2,a=e.buffered.start(e.buffered.length-1),i=e.buffered.end(e.buffered.length-1);return s>a&&s<i},Ut=(e,t)=>e.ended||e.loop?e.ended:t&&Xe(e,t)?!0:Ot(e),Qr=(e,t,r)=>{Ht(t,r,e);let{metadata:n={}}=e,{view_session_id:o=It()}=n,s=St(e);n.view_session_id=o,n.video_id=s,e.metadata=n;let a=l=>{var u;(u=t.mux)==null||u.emit(\"hb\",{view_drm_type:l})};e.drmTypeCb=a,P.set(t,{retryCount:0});let i=Vt(e,t),c=Ce(e,t,i);e!=null&&e.muxDataKeepSession&&(t!=null&&t.mux)&&!t.mux.deleted?i&&t.mux.addHLSJS({hlsjs:i,Hls:i?E:void 0}):Bt(e,t,i),Jt(e,t,i),Ae(t),we(t);let d=De(e,t,i);return{engine:i,setAutoplay:d,setPreload:c}},Ht=(e,t,r)=>{let n=t==null?void 0:t.engine;e!=null&&e.mux&&!e.mux.deleted&&(r!=null&&r.muxDataKeepSession?n&&e.mux.removeHLSJS():(e.mux.destroy(),delete e.mux)),n&&(n.detachMedia(),n.destroy()),e&&(e.hasAttribute(\"src\")&&(e.removeAttribute(\"src\"),e.load()),e.removeEventListener(\"error\",tt),e.removeEventListener(\"error\",de),e.removeEventListener(\"durationchange\",et),P.delete(e),e.dispatchEvent(new Event(\"teardown\")))};function ze(e,t){var d;let r=V(e);if(!(r===I.M3U8))return!0;let o=!r||((d=t.canPlayType(r))!=null?d:!0),{preferPlayback:s}=e,a=s===Q.MSE,i=s===Q.NATIVE,c=Je&&(a||At(t));return o&&(i||!c)}var Vt=(e,t)=>{let{debug:r,streamType:n,startTime:o=-1,metadata:s,preferCmcd:a,_hlsConfig:i={},maxAutoResolution:c}=e,l=V(e)===I.M3U8,u=ze(e,t);if(l&&!u&&Je){let y={backBufferLength:30,renderTextTracksNatively:!1,liveDurationInfinity:!0,capLevelToPlayerSize:!0,capLevelOnFPSDrop:!0},m=Kt(n),f=Wt(e),g=[w.QUERY,w.HEADER].includes(a)?{useHeaders:a===w.HEADER,sessionId:s==null?void 0:s.view_session_id,contentId:s==null?void 0:s.video_id}:void 0,M=i.capLevelToPlayerSize==null?{capLevelController:q}:{},k=new E({debug:r,startPosition:o,cmcd:g,xhrSetup:(R,D)=>{var U,Te;if(a&&a!==w.QUERY)return;let p=new URL(D);if(!p.searchParams.has(\"CMCD\"))return;let _=((Te=(U=p.searchParams.get(\"CMCD\"))==null?void 0:U.split(\",\"))!=null?Te:[]).filter(ye=>ye.startsWith(\"sid\")||ye.startsWith(\"cid\")).join(\",\");p.searchParams.set(\"CMCD\",_),R.open(\"GET\",p)},...M,...y,...m,...f,...i});return M.capLevelController===q&&c!==void 0&&q.setMaxAutoResolution(k,c),k.on(E.Events.MANIFEST_PARSED,async function(R,D){var _,U;let p=(_=D.sessionData)==null?void 0:_[\"com.apple.hls.chapters\"];(p!=null&&p.URI||p!=null&&p.VALUE.toLocaleLowerCase().startsWith(\"http\"))&&pe((U=p==null?void 0:p.URI)!=null?U:p==null?void 0:p.VALUE,t)}),k}},Kt=e=>e===h.LIVE?{backBufferLength:8}:{},Wt=e=>{let{tokens:{drm:t}={},playbackId:r,drmTypeCb:n}=e,o=z(r);return!t||!o?{}:{emeEnabled:!0,drmSystems:{\"com.apple.fps\":{licenseUrl:X(e,\"fairplay\"),serverCertificateUrl:Qe(e,\"fairplay\")},\"com.widevine.alpha\":{licenseUrl:X(e,\"widevine\")},\"com.microsoft.playready\":{licenseUrl:X(e,\"playready\")}},requestMediaKeySystemAccessFunc:(s,a)=>(s===\"com.widevine.alpha\"&&(a=[...a.map(i=>{var d;let c=(d=i.videoCapabilities)==null?void 0:d.map(l=>({...l,robustness:\"HW_SECURE_ALL\"}));return{...i,videoCapabilities:c}}),...a]),navigator.requestMediaKeySystemAccess(s,a).then(i=>{let c=gt(s);return n==null||n(c),i}))}},Yt=async e=>{let t=await fetch(e);return t.status!==200?Promise.reject(t):await t.arrayBuffer()},Ft=async(e,t)=>{let r=await fetch(t,{method:\"POST\",headers:{\"Content-type\":\"application/octet-stream\"},body:e});if(r.status!==200)return Promise.reject(r);let n=await r.arrayBuffer();return new Uint8Array(n)},$t=(e,t)=>{let r=async a=>{let i=await navigator.requestMediaKeySystemAccess(\"com.apple.fps\",[{initDataTypes:[a],videoCapabilities:[{contentType:\"application/vnd.apple.mpegurl\",robustness:\"\"}],distinctiveIdentifier:\"not-allowed\",persistentState:\"not-allowed\",sessionTypes:[\"temporary\"]}]).then(d=>{var l;return(l=e.drmTypeCb)==null||l.call(e,G.FAIRPLAY),d}).catch(()=>{let d=x(\"Cannot play DRM-protected content with current security configuration on this browser. Try playing in another browser.\"),l=new T(d,T.MEDIA_ERR_ENCRYPTED,!0);l.errorCategory=C.DRM,l.muxCode=b.ENCRYPTED_UNSUPPORTED_KEY_SYSTEM,A(t,l)});if(!i)return;let c=await i.createMediaKeys();try{let d=await Yt(Qe(e,\"fairplay\")).catch(l=>{if(l instanceof Response){let u=K(l,C.DRM,e);return console.error(\"mediaError\",u==null?void 0:u.message,u==null?void 0:u.context),u?Promise.reject(u):Promise.reject(new Error(\"Unexpected error in app cert request\"))}return Promise.reject(l)});await c.setServerCertificate(d).catch(()=>{let l=x(\"Your server certificate failed when attempting to set it. This may be an issue with a no longer valid certificate.\"),u=new T(l,T.MEDIA_ERR_ENCRYPTED,!0);return u.errorCategory=C.DRM,u.muxCode=b.ENCRYPTED_UPDATE_SERVER_CERT_FAILED,Promise.reject(u)})}catch(d){A(t,d);return}await t.setMediaKeys(c)},n=a=>{let i;if(a===\"internal-error\"){let c=x(\"The DRM Content Decryption Module system had an internal failure. Try reloading the page, upading your browser, or playing in another browser.\");i=new T(c,T.MEDIA_ERR_ENCRYPTED,!0),i.errorCategory=C.DRM,i.muxCode=b.ENCRYPTED_CDM_ERROR}else if(a===\"output-restricted\"||a===\"output-downscaled\"){let c=x(\"DRM playback is being attempted in an environment that is not sufficiently secure. User may see black screen.\");i=new T(c,T.MEDIA_ERR_ENCRYPTED,!1),i.errorCategory=C.DRM,i.muxCode=b.ENCRYPTED_OUTPUT_RESTRICTED}i&&A(t,i)},o=async(a,i)=>{let c=t.mediaKeys.createSession(),d=()=>{c.keyStatuses.forEach(u=>n(u))},l=async u=>{let y=u.message;try{let m=await Ft(y,X(e,\"fairplay\"));try{await c.update(m)}catch{let f=x(\"Failed to update DRM license. This may be an issue with the player or your protected content.\"),g=new T(f,T.MEDIA_ERR_ENCRYPTED,!0);g.errorCategory=C.DRM,g.muxCode=b.ENCRYPTED_UPDATE_LICENSE_FAILED,A(t,g)}}catch(m){if(m instanceof Response){let f=K(m,C.DRM,e);if(console.error(\"mediaError\",f==null?void 0:f.message,f==null?void 0:f.context),f){A(t,f);return}console.error(\"Unexpected error in license key request\",m);return}console.error(m)}};c.addEventListener(\"keystatuseschange\",d),c.addEventListener(\"message\",l),t.addEventListener(\"teardown\",()=>{c.removeEventListener(\"keystatuseschange\",d),c.removeEventListener(\"message\",l),c.close()},{once:!0}),await c.generateRequest(a,i).catch(u=>{console.error(\"Failed to generate license request\",u);let y=x(\"Failed to generate a DRM license request. This may be an issue with the player or your protected content.\"),m=new T(y,T.MEDIA_ERR_ENCRYPTED,!0);return m.errorCategory=C.DRM,m.muxCode=b.ENCRYPTED_GENERATE_REQUEST_FAILED,Promise.reject(m)})};v(t,\"encrypted\",async a=>{try{let i=a.initDataType;if(i!==\"skd\"){console.error(`Received unexpected initialization data type \"${i}\"`);return}t.mediaKeys||await r(i);let c=a.initData;if(c==null){console.error(`Could not start encrypted playback due to missing initData in ${a.type} event`);return}await o(i,c)}catch(i){A(t,i);return}})},X=({playbackId:e,tokens:{drm:t}={},customDomain:r=S},n)=>{let o=z(e);return`https://license.${r.toLocaleLowerCase().endsWith(S)?r:S}/license/${n}/${o}?token=${t}`},Qe=({playbackId:e,tokens:{drm:t}={},customDomain:r=S},n)=>{let o=z(e);return`https://license.${r.toLocaleLowerCase().endsWith(S)?r:S}/appcert/${n}/${o}?token=${t}`},Ze=({playbackId:e,src:t,customDomain:r})=>{if(e)return!0;if(typeof t!=\"string\")return!1;let n=window==null?void 0:window.location.href,o=new URL(t,n).hostname.toLocaleLowerCase();return o.includes(S)||!!r&&o.includes(r.toLocaleLowerCase())},Bt=(e,t,r)=>{var c;let{envKey:n,disableTracking:o,muxDataSDK:s=le,muxDataSDKOptions:a={}}=e,i=Ze(e);if(!o&&(n||i)){let{playerInitTime:d,playerSoftwareName:l,playerSoftwareVersion:u,beaconCollectionDomain:y,debug:m,disableCookies:f}=e,g={...e.metadata,video_title:((c=e==null?void 0:e.metadata)==null?void 0:c.video_title)||void 0},M=k=>typeof k.player_error_code==\"string\"?!1:typeof e.errorTranslator==\"function\"?e.errorTranslator(k):k;s.monitor(t,{debug:m,beaconCollectionDomain:y,hlsjs:r,Hls:r?E:void 0,automaticErrorTracking:!1,errorTranslator:M,disableCookies:f,...a,data:{...n?{env_key:n}:{},player_software_name:l,player_software:l,player_software_version:u,player_init_time:d,...g}})}},Jt=(e,t,r)=>{var l,u;let n=ze(e,t),{src:o,customDomain:s=S}=e,a=()=>{t.ended||e.disablePseudoEnded||!Ut(t,r)||(Xe(t,r)?t.currentTime=t.buffered.end(t.buffered.length-1):t.dispatchEvent(new Event(\"ended\")))},i,c,d=()=>{let y=qe(t),m,f;y.length>0&&(m=y.start(0),f=y.end(0)),(c!==f||i!==m)&&t.dispatchEvent(new CustomEvent(\"seekablechange\",{composed:!0})),i=m,c=f};if(v(t,\"durationchange\",d),t&&n){let y=V(e);if(typeof o==\"string\"){if(o.endsWith(\".mp4\")&&o.includes(s)){let g=je(o),M=new URL(`https://stream.${s}/${g}/metadata.json`);pe(M.toString(),t)}let m=()=>{if(Ue(t)!==h.LIVE||Number.isFinite(t.duration))return;let g=setInterval(d,1e3);t.addEventListener(\"teardown\",()=>{clearInterval(g)},{once:!0}),v(t,\"durationchange\",()=>{Number.isFinite(t.duration)&&clearInterval(g)})},f=async()=>vt(o,t,y).then(m).catch(g=>{if(g instanceof Response){let M=K(g,C.VIDEO,e);if(M){A(t,M);return}}else g instanceof Error});if(t.preload===\"none\"){let g=()=>{f(),t.removeEventListener(\"loadedmetadata\",M)},M=()=>{f(),t.removeEventListener(\"play\",g)};v(t,\"play\",g,{once:!0}),v(t,\"loadedmetadata\",M,{once:!0})}else f();(l=e.tokens)!=null&&l.drm?$t(e,t):v(t,\"encrypted\",()=>{let g=x(\"Attempting to play DRM-protected content without providing a DRM token.\"),M=new T(g,T.MEDIA_ERR_ENCRYPTED,!0);M.errorCategory=C.DRM,M.muxCode=b.ENCRYPTED_MISSING_TOKEN,A(t,M)},{once:!0}),t.setAttribute(\"src\",o),e.startTime&&(((u=P.get(t))!=null?u:{}).startTime=e.startTime,t.addEventListener(\"durationchange\",et,{once:!0}))}else t.removeAttribute(\"src\");t.addEventListener(\"error\",tt),t.addEventListener(\"error\",de),t.addEventListener(\"emptied\",()=>{t.querySelectorAll(\"track[data-removeondestroy]\").forEach(f=>{f.remove()})},{once:!0}),v(t,\"pause\",a),v(t,\"seeked\",a),v(t,\"play\",()=>{t.ended||Ge(t.currentTime,t.duration)&&(t.currentTime=t.seekable.length?t.seekable.start(0):0)})}else r&&o?(r.once(E.Events.LEVEL_LOADED,(y,m)=>{ht(m.details,t,r),d(),Ue(t)===h.LIVE&&!Number.isFinite(t.duration)&&(r.on(E.Events.LEVEL_UPDATED,d),v(t,\"durationchange\",()=>{Number.isFinite(t.duration)&&r.off(E.Events.LEVELS_UPDATED,d)}))}),r.on(E.Events.ERROR,(y,m)=>{var g,M;let f=jt(m,e);if(f.muxCode===b.NETWORK_NOT_READY){let R=(g=P.get(t))!=null?g:{},D=(M=R.retryCount)!=null?M:0;if(D<6){let p=D===0?5e3:6e4,_=new T(`Retrying in ${p/1e3} seconds...`,f.code,f.fatal);Object.assign(_,f),A(t,_),setTimeout(()=>{R.retryCount=D+1,m.details===\"manifestLoadError\"&&m.url&&r.loadSource(m.url)},p);return}else{R.retryCount=0;let p=new T('Try again later or <a href=\"#\" onclick=\"window.location.reload(); return false;\" style=\"color: #4a90e2;\">click here to retry</a>',f.code,f.fatal);Object.assign(p,f),A(t,p);return}}A(t,f)}),r.on(E.Events.MANIFEST_LOADED,()=>{let y=P.get(t);y&&y.error&&(y.error=null,y.retryCount=0,t.dispatchEvent(new Event(\"emptied\")),t.dispatchEvent(new Event(\"loadstart\")))}),t.addEventListener(\"error\",de),v(t,\"waiting\",a),ve(e,r),Pe(t,r),r.attachMedia(t)):console.error(\"It looks like the video you're trying to play will not work on this system! If possible, try upgrading to the newest versions of your browser or software.\")};function et(e){var n;let t=e.target,r=(n=P.get(t))==null?void 0:n.startTime;if(r&&me(t.seekable,t.duration,r)){let o=t.preload===\"auto\";o&&(t.preload=\"none\"),t.currentTime=r,o&&(t.preload=\"auto\")}}async function tt(e){if(!e.isTrusted)return;e.stopImmediatePropagation();let t=e.target;if(!(t!=null&&t.error))return;let{message:r,code:n}=t.error,o=new T(r,n);if(t.src&&n===T.MEDIA_ERR_SRC_NOT_SUPPORTED&&t.readyState===HTMLMediaElement.HAVE_NOTHING){setTimeout(()=>{var a;let s=(a=Nt(t))!=null?a:t.error;(s==null?void 0:s.code)===T.MEDIA_ERR_SRC_NOT_SUPPORTED&&A(t,o)},500);return}if(t.src&&(n!==T.MEDIA_ERR_DECODE||n!==void 0))try{let{status:s}=await fetch(t.src);o.data={response:{code:s}}}catch{}A(t,o)}function A(e,t){var r;t.fatal&&(((r=P.get(e))!=null?r:{}).error=t,e.dispatchEvent(new CustomEvent(\"error\",{detail:t})))}function de(e){var n,o;if(!(e instanceof CustomEvent)||!(e.detail instanceof T))return;let t=e.target,r=e.detail;!r||!r.fatal||(((n=P.get(t))!=null?n:{}).error=r,(o=t.mux)==null||o.emit(\"error\",{player_error_code:r.code,player_error_message:r.message,player_error_context:r.context}))}var jt=(e,t)=>{var c,d,l;!e.fatal?t.debug&&console.warn(\"getErrorFromHlsErrorData() (non-fatal)\",e):console.error(\"getErrorFromHlsErrorData()\",e);let n={[E.ErrorTypes.NETWORK_ERROR]:T.MEDIA_ERR_NETWORK,[E.ErrorTypes.MEDIA_ERROR]:T.MEDIA_ERR_DECODE,[E.ErrorTypes.KEY_SYSTEM_ERROR]:T.MEDIA_ERR_ENCRYPTED},o=u=>[E.ErrorDetails.KEY_SYSTEM_LICENSE_REQUEST_FAILED,E.ErrorDetails.KEY_SYSTEM_SERVER_CERTIFICATE_REQUEST_FAILED].includes(u.details)?T.MEDIA_ERR_NETWORK:n[u.type],s=u=>{if(u.type===E.ErrorTypes.KEY_SYSTEM_ERROR)return C.DRM;if(u.type===E.ErrorTypes.NETWORK_ERROR)return C.VIDEO},a,i=o(e);if(i===T.MEDIA_ERR_NETWORK&&e.response){let u=(c=s(e))!=null?c:C.VIDEO;a=(d=K(e.response,u,t,e.fatal))!=null?d:new T(\"\",i,e.fatal)}else if(i===T.MEDIA_ERR_ENCRYPTED)if(e.details===E.ErrorDetails.KEY_SYSTEM_NO_CONFIGURED_LICENSE){let u=x(\"Attempting to play DRM-protected content without providing a DRM token.\");a=new T(u,T.MEDIA_ERR_ENCRYPTED,e.fatal),a.errorCategory=C.DRM,a.muxCode=b.ENCRYPTED_MISSING_TOKEN}else if(e.details===E.ErrorDetails.KEY_SYSTEM_NO_ACCESS){let u=x(\"Cannot play DRM-protected content with current security configuration on this browser. Try playing in another browser.\");a=new T(u,T.MEDIA_ERR_ENCRYPTED,e.fatal),a.errorCategory=C.DRM,a.muxCode=b.ENCRYPTED_UNSUPPORTED_KEY_SYSTEM}else if(e.details===E.ErrorDetails.KEY_SYSTEM_NO_SESSION){let u=x(\"Failed to generate a DRM license request. This may be an issue with the player or your protected content.\");a=new T(u,T.MEDIA_ERR_ENCRYPTED,!0),a.errorCategory=C.DRM,a.muxCode=b.ENCRYPTED_GENERATE_REQUEST_FAILED}else if(e.details===E.ErrorDetails.KEY_SYSTEM_SESSION_UPDATE_FAILED){let u=x(\"Failed to update DRM license. This may be an issue with the player or your protected content.\");a=new T(u,T.MEDIA_ERR_ENCRYPTED,e.fatal),a.errorCategory=C.DRM,a.muxCode=b.ENCRYPTED_UPDATE_LICENSE_FAILED}else if(e.details===E.ErrorDetails.KEY_SYSTEM_SERVER_CERTIFICATE_UPDATE_FAILED){let u=x(\"Your server certificate failed when attempting to set it. This may be an issue with a no longer valid certificate.\");a=new T(u,T.MEDIA_ERR_ENCRYPTED,e.fatal),a.errorCategory=C.DRM,a.muxCode=b.ENCRYPTED_UPDATE_SERVER_CERT_FAILED}else if(e.details===E.ErrorDetails.KEY_SYSTEM_STATUS_INTERNAL_ERROR){let u=x(\"The DRM Content Decryption Module system had an internal failure. Try reloading the page, upading your browser, or playing in another browser.\");a=new T(u,T.MEDIA_ERR_ENCRYPTED,e.fatal),a.errorCategory=C.DRM,a.muxCode=b.ENCRYPTED_CDM_ERROR}else if(e.details===E.ErrorDetails.KEY_SYSTEM_STATUS_OUTPUT_RESTRICTED){let u=x(\"DRM playback is being attempted in an environment that is not sufficiently secure. User may see black screen.\");a=new T(u,T.MEDIA_ERR_ENCRYPTED,!1),a.errorCategory=C.DRM,a.muxCode=b.ENCRYPTED_OUTPUT_RESTRICTED}else a=new T(e.error.message,T.MEDIA_ERR_ENCRYPTED,e.fatal),a.errorCategory=C.DRM,a.muxCode=b.ENCRYPTED_ERROR;else a=new T(\"\",i,e.fatal);return a.context||(a.context=`${e.url?`url: ${e.url}\n`:\"\"}${e.response&&(e.response.code||e.response.text)?`response: ${e.response.code}, ${e.response.text}\n`:\"\"}${e.reason?`failure reason: ${e.reason}\n`:\"\"}${e.level?`level: ${e.level}\n`:\"\"}${e.parent?`parent stream controller: ${e.parent}\n`:\"\"}${e.buffer?`buffer length: ${e.buffer}\n`:\"\"}${e.error?`error: ${e.error}\n`:\"\"}${e.event?`event: ${e.event}\n`:\"\"}${e.err?`error message: ${(l=e.err)==null?void 0:l.message}\n`:\"\"}`),a.data=e,a};export{Y as AutoplayTypes,zt as CmcdTypeValues,w as CmcdTypes,I as ExtensionMimeTypeMap,E as Hls,nr as MaxAutoResolution,er as MaxResolution,T as MediaError,F as MimeTypeShorthandMap,tr as MinResolution,C as MuxErrorCategory,b as MuxErrorCode,ce as MuxJWTAud,Q as PlaybackTypes,rr as RenditionOrder,h as StreamTypes,Se as addChapters,ke as addCuePoints,ae as addTextTrack,Zt as allMediaTypes,W as errorCategoryToTokenNameOrPrefix,pe as fetchAndDispatchMuxMetadata,jr as generatePlayerInitTime,It as generateUUID,Ne as getActiveChapter,Le as getActiveCuePoint,Yt as getAppCertificate,lt as getChapters,dt as getCuePoints,ft as getCurrentPdt,Wt as getDRMConfig,Ut as getEnded,Nt as getError,Ft as getLicenseKey,zr as getLiveEdgeStart,Mt as getMediaPlaylistFromMultivariantPlaylist,Gr as getMetadata,xt as getMultivariantPlaylistSessionData,qe as getSeekable,pt as getStartDate,Pt as getStreamInfoFromHlsjsLevelDetails,Dt as getStreamInfoFromPlaylist,Ct as getStreamInfoFromSrcAndType,Ue as getStreamType,Kt as getStreamTypeConfig,Xr as getTargetLiveWindow,O as getTextTrack,x as i18n,Qr as initialize,H as isKeyOf,Ze as isMuxVideoSrc,Ot as isPseudoEnded,Xe as isStuckOnLastFragment,Jt as loadMedia,le as mux,P as muxMediaState,re as parseJwt,bt as parseTagAttributes,ut as removeTextTrack,we as setupChapters,Ae as setupCuePoints,Vt as setupHls,Bt as setupMux,$t as setupNativeFairplayDRM,Qt as shorthandKeys,Ht as teardown,Qe as toAppCertURL,gt as toDRMTypeFromKeySystem,X as toLicenseKeyURL,qr as toMuxVideoURL,je as toPlaybackIdFromSrc,B as toPlaybackIdParts,ht as updateStreamInfoFromHlsjsLevelDetails,vt as updateStreamInfoFromSrc};\n//# sourceMappingURL=index.mjs.map\n","var C=s=>{throw TypeError(s)};var N=(s,a,t)=>a.has(s)||C(\"Cannot \"+t);var n=(s,a,t)=>(N(s,a,\"read from private field\"),t?t.call(s):a.get(s)),d=(s,a,t)=>a.has(s)?C(\"Cannot add the same private member more than once\"):a instanceof WeakSet?a.add(s):a.set(s,t),o=(s,a,t,i)=>(N(s,a,\"write to private field\"),i?i.call(s,t):a.set(s,t),t),b=(s,a,t)=>(N(s,a,\"access private method\"),t);import{initialize as U,teardown as G,generatePlayerInitTime as V,PlaybackTypes as y,toMuxVideoURL as F,MediaError as ft,getError as W,CmcdTypeValues as k,addCuePoints as w,getCuePoints as H,getActiveCuePoint as $,addChapters as X,getActiveChapter as j,getMetadata as q,getStartDate as z,getCurrentPdt as J,getStreamType as Z,getTargetLiveWindow as Q,getLiveEdgeStart as tt,getSeekable as et,getEnded as it,getChapters as rt,toPlaybackIdFromSrc as st,toPlaybackIdParts as nt}from\"@mux/playback-core\";var B=()=>{try{return\"0.29.1\"}catch{}return\"UNKNOWN\"},Y=B(),P=()=>Y;import{CustomVideoElement as S,Events as bt}from\"custom-media-element\";var D=`\n<svg xmlns=\"http://www.w3.org/2000/svg\" xml:space=\"preserve\" part=\"logo\" style=\"fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2\" viewBox=\"0 0 1600 500\"><g fill=\"#fff\"><path d=\"M994.287 93.486c-17.121 0-31-13.879-31-31 0-17.121 13.879-31 31-31 17.121 0 31 13.879 31 31 0 17.121-13.879 31-31 31m0-93.486c-34.509 0-62.484 27.976-62.484 62.486v187.511c0 68.943-56.09 125.033-125.032 125.033s-125.03-56.09-125.03-125.033V62.486C681.741 27.976 653.765 0 619.256 0s-62.484 27.976-62.484 62.486v187.511C556.772 387.85 668.921 500 806.771 500c137.851 0 250.001-112.15 250.001-250.003V62.486c0-34.51-27.976-62.486-62.485-62.486M1537.51 468.511c-17.121 0-31-13.879-31-31 0-17.121 13.879-31 31-31 17.121 0 31 13.879 31 31 0 17.121-13.879 31-31 31m-275.883-218.509-143.33 143.329c-24.402 24.402-24.402 63.966 0 88.368 24.402 24.402 63.967 24.402 88.369 0l143.33-143.329 143.328 143.329c24.402 24.4 63.967 24.402 88.369 0 24.403-24.402 24.403-63.966.001-88.368l-143.33-143.329.001-.004 143.329-143.329c24.402-24.402 24.402-63.965 0-88.367s-63.967-24.402-88.369 0L1349.996 161.63 1206.667 18.302c-24.402-24.401-63.967-24.402-88.369 0s-24.402 63.965 0 88.367l143.329 143.329v.004ZM437.511 468.521c-17.121 0-31-13.879-31-31 0-17.121 13.879-31 31-31 17.121 0 31 13.879 31 31 0 17.121-13.879 31-31 31M461.426 4.759C438.078-4.913 411.2.432 393.33 18.303L249.999 161.632 106.669 18.303C88.798.432 61.922-4.913 38.573 4.759 15.224 14.43-.001 37.214-.001 62.488v375.026c0 34.51 27.977 62.486 62.487 62.486 34.51 0 62.486-27.976 62.486-62.486V213.341l80.843 80.844c24.404 24.402 63.965 24.402 88.369 0l80.843-80.844v224.173c0 34.51 27.976 62.486 62.486 62.486s62.486-27.976 62.486-62.486V62.488c0-25.274-15.224-48.058-38.573-57.729\" style=\"fill-rule:nonzero\"/></g></svg>`;var e={BEACON_COLLECTION_DOMAIN:\"beacon-collection-domain\",CUSTOM_DOMAIN:\"custom-domain\",DEBUG:\"debug\",DISABLE_TRACKING:\"disable-tracking\",DISABLE_COOKIES:\"disable-cookies\",DISABLE_PSEUDO_ENDED:\"disable-pseudo-ended\",DRM_TOKEN:\"drm-token\",PLAYBACK_TOKEN:\"playback-token\",ENV_KEY:\"env-key\",MAX_RESOLUTION:\"max-resolution\",MIN_RESOLUTION:\"min-resolution\",MAX_AUTO_RESOLUTION:\"max-auto-resolution\",RENDITION_ORDER:\"rendition-order\",PROGRAM_START_TIME:\"program-start-time\",PROGRAM_END_TIME:\"program-end-time\",ASSET_START_TIME:\"asset-start-time\",ASSET_END_TIME:\"asset-end-time\",METADATA_URL:\"metadata-url\",PLAYBACK_ID:\"playback-id\",PLAYER_SOFTWARE_NAME:\"player-software-name\",PLAYER_SOFTWARE_VERSION:\"player-software-version\",PLAYER_INIT_TIME:\"player-init-time\",PREFER_CMCD:\"prefer-cmcd\",PREFER_PLAYBACK:\"prefer-playback\",START_TIME:\"start-time\",STREAM_TYPE:\"stream-type\",TARGET_LIVE_WINDOW:\"target-live-window\",LIVE_EDGE_OFFSET:\"live-edge-offset\",TYPE:\"type\",LOGO:\"logo\"},at=Object.values(e),v=P(),x=\"mux-video\",E,m,_,g,p,O,R,I,M,c,A,T,K=class extends S{constructor(){super();d(this,A);d(this,E);d(this,m);d(this,_);d(this,g,{});d(this,p,{});d(this,O);d(this,R);d(this,I);d(this,M);d(this,c,\"\");o(this,_,V()),this.nativeEl.addEventListener(\"muxmetadata\",t=>{var l;let i=q(this.nativeEl),r=(l=this.metadata)!=null?l:{};this.metadata={...i,...r},(i==null?void 0:i[\"com.mux.video.branding\"])===\"mux-free-plan\"&&(o(this,c,\"default\"),this.updateLogo())})}static get NAME(){return x}static get VERSION(){return v}static get observedAttributes(){var t;return[...at,...(t=S.observedAttributes)!=null?t:[]]}static getLogoHTML(t){return!t||t===\"false\"?\"\":t===\"default\"?D:`<img part=\"logo\" src=\"${t}\" />`}static getTemplateHTML(t={}){var i;return`\n ${S.getTemplateHTML(t)}\n <style>\n :host {\n position: relative;\n }\n slot[name=\"logo\"] {\n display: flex;\n justify-content: end;\n position: absolute;\n top: 1rem;\n right: 1rem;\n opacity: 0;\n transition: opacity 0.25s ease-in-out;\n z-index: 1;\n }\n slot[name=\"logo\"]:has([part=\"logo\"]) {\n opacity: 1;\n }\n slot[name=\"logo\"] [part=\"logo\"] {\n width: 5rem;\n pointer-events: none;\n user-select: none;\n }\n </style>\n <slot name=\"logo\">\n ${this.getLogoHTML((i=t[e.LOGO])!=null?i:\"\")}\n </slot>\n `}get preferCmcd(){var t;return(t=this.getAttribute(e.PREFER_CMCD))!=null?t:void 0}set preferCmcd(t){t!==this.preferCmcd&&(t?k.includes(t)?this.setAttribute(e.PREFER_CMCD,t):console.warn(`Invalid value for preferCmcd. Must be one of ${k.join()}`):this.removeAttribute(e.PREFER_CMCD))}get playerInitTime(){return this.hasAttribute(e.PLAYER_INIT_TIME)?+this.getAttribute(e.PLAYER_INIT_TIME):n(this,_)}set playerInitTime(t){t!=this.playerInitTime&&(t==null?this.removeAttribute(e.PLAYER_INIT_TIME):this.setAttribute(e.PLAYER_INIT_TIME,`${+t}`))}get playerSoftwareName(){var t;return(t=n(this,I))!=null?t:x}set playerSoftwareName(t){o(this,I,t)}get playerSoftwareVersion(){var t;return(t=n(this,R))!=null?t:v}set playerSoftwareVersion(t){o(this,R,t)}get _hls(){var t;return(t=n(this,E))==null?void 0:t.engine}get mux(){var t;return(t=this.nativeEl)==null?void 0:t.mux}get error(){var t;return(t=W(this.nativeEl))!=null?t:null}get errorTranslator(){return n(this,M)}set errorTranslator(t){o(this,M,t)}get src(){return this.getAttribute(\"src\")}set src(t){t!==this.src&&(t==null?this.removeAttribute(\"src\"):this.setAttribute(\"src\",t))}get type(){var t;return(t=this.getAttribute(e.TYPE))!=null?t:void 0}set type(t){t!==this.type&&(t?this.setAttribute(e.TYPE,t):this.removeAttribute(e.TYPE))}get preload(){let t=this.getAttribute(\"preload\");return t===\"\"?\"auto\":[\"none\",\"metadata\",\"auto\"].includes(t)?t:super.preload}set preload(t){t!=this.getAttribute(\"preload\")&&([\"\",\"none\",\"metadata\",\"auto\"].includes(t)?this.setAttribute(\"preload\",t):this.removeAttribute(\"preload\"))}get debug(){return this.getAttribute(e.DEBUG)!=null}set debug(t){t!==this.debug&&(t?this.setAttribute(e.DEBUG,\"\"):this.removeAttribute(e.DEBUG))}get disableTracking(){return this.hasAttribute(e.DISABLE_TRACKING)}set disableTracking(t){t!==this.disableTracking&&this.toggleAttribute(e.DISABLE_TRACKING,!!t)}get disableCookies(){return this.hasAttribute(e.DISABLE_COOKIES)}set disableCookies(t){t!==this.disableCookies&&(t?this.setAttribute(e.DISABLE_COOKIES,\"\"):this.removeAttribute(e.DISABLE_COOKIES))}get disablePseudoEnded(){return this.hasAttribute(e.DISABLE_PSEUDO_ENDED)}set disablePseudoEnded(t){t!==this.disablePseudoEnded&&(t?this.setAttribute(e.DISABLE_PSEUDO_ENDED,\"\"):this.removeAttribute(e.DISABLE_PSEUDO_ENDED))}get startTime(){let t=this.getAttribute(e.START_TIME);if(t==null)return;let i=+t;return Number.isNaN(i)?void 0:i}set startTime(t){t!==this.startTime&&(t==null?this.removeAttribute(e.START_TIME):this.setAttribute(e.START_TIME,`${t}`))}get playbackId(){var t;return this.hasAttribute(e.PLAYBACK_ID)?this.getAttribute(e.PLAYBACK_ID):(t=st(this.src))!=null?t:void 0}set playbackId(t){t!==this.playbackId&&(t?this.setAttribute(e.PLAYBACK_ID,t):this.removeAttribute(e.PLAYBACK_ID))}get maxResolution(){var t;return(t=this.getAttribute(e.MAX_RESOLUTION))!=null?t:void 0}set maxResolution(t){t!==this.maxResolution&&(t?this.setAttribute(e.MAX_RESOLUTION,t):this.removeAttribute(e.MAX_RESOLUTION))}get minResolution(){var t;return(t=this.getAttribute(e.MIN_RESOLUTION))!=null?t:void 0}set minResolution(t){t!==this.minResolution&&(t?this.setAttribute(e.MIN_RESOLUTION,t):this.removeAttribute(e.MIN_RESOLUTION))}get maxAutoResolution(){var t;return(t=this.getAttribute(e.MAX_AUTO_RESOLUTION))!=null?t:void 0}set maxAutoResolution(t){t==null?this.removeAttribute(e.MAX_AUTO_RESOLUTION):this.setAttribute(e.MAX_AUTO_RESOLUTION,t)}get renditionOrder(){var t;return(t=this.getAttribute(e.RENDITION_ORDER))!=null?t:void 0}set renditionOrder(t){t!==this.renditionOrder&&(t?this.setAttribute(e.RENDITION_ORDER,t):this.removeAttribute(e.RENDITION_ORDER))}get programStartTime(){let t=this.getAttribute(e.PROGRAM_START_TIME);if(t==null)return;let i=+t;return Number.isNaN(i)?void 0:i}set programStartTime(t){t==null?this.removeAttribute(e.PROGRAM_START_TIME):this.setAttribute(e.PROGRAM_START_TIME,`${t}`)}get programEndTime(){let t=this.getAttribute(e.PROGRAM_END_TIME);if(t==null)return;let i=+t;return Number.isNaN(i)?void 0:i}set programEndTime(t){t==null?this.removeAttribute(e.PROGRAM_END_TIME):this.setAttribute(e.PROGRAM_END_TIME,`${t}`)}get assetStartTime(){let t=this.getAttribute(e.ASSET_START_TIME);if(t==null)return;let i=+t;return Number.isNaN(i)?void 0:i}set assetStartTime(t){t==null?this.removeAttribute(e.ASSET_START_TIME):this.setAttribute(e.ASSET_START_TIME,`${t}`)}get assetEndTime(){let t=this.getAttribute(e.ASSET_END_TIME);if(t==null)return;let i=+t;return Number.isNaN(i)?void 0:i}set assetEndTime(t){t==null?this.removeAttribute(e.ASSET_END_TIME):this.setAttribute(e.ASSET_END_TIME,`${t}`)}get customDomain(){var t;return(t=this.getAttribute(e.CUSTOM_DOMAIN))!=null?t:void 0}set customDomain(t){t!==this.customDomain&&(t?this.setAttribute(e.CUSTOM_DOMAIN,t):this.removeAttribute(e.CUSTOM_DOMAIN))}get drmToken(){var t;return(t=this.getAttribute(e.DRM_TOKEN))!=null?t:void 0}set drmToken(t){t!==this.drmToken&&(t?this.setAttribute(e.DRM_TOKEN,t):this.removeAttribute(e.DRM_TOKEN))}get playbackToken(){var t,i,r,l;if(this.hasAttribute(e.PLAYBACK_TOKEN))return(t=this.getAttribute(e.PLAYBACK_TOKEN))!=null?t:void 0;if(this.hasAttribute(e.PLAYBACK_ID)){let[,f]=nt((i=this.playbackId)!=null?i:\"\");return(r=new URLSearchParams(f).get(\"token\"))!=null?r:void 0}if(this.src)return(l=new URLSearchParams(this.src).get(\"token\"))!=null?l:void 0}set playbackToken(t){t!==this.playbackToken&&(t?this.setAttribute(e.PLAYBACK_TOKEN,t):this.removeAttribute(e.PLAYBACK_TOKEN))}get tokens(){let t=this.getAttribute(e.PLAYBACK_TOKEN),i=this.getAttribute(e.DRM_TOKEN);return{...n(this,p),...t!=null?{playback:t}:{},...i!=null?{drm:i}:{}}}set tokens(t){o(this,p,t!=null?t:{})}get ended(){return it(this.nativeEl,this._hls)}get envKey(){var t;return(t=this.getAttribute(e.ENV_KEY))!=null?t:void 0}set envKey(t){t!==this.envKey&&(t?this.setAttribute(e.ENV_KEY,t):this.removeAttribute(e.ENV_KEY))}get beaconCollectionDomain(){var t;return(t=this.getAttribute(e.BEACON_COLLECTION_DOMAIN))!=null?t:void 0}set beaconCollectionDomain(t){t!==this.beaconCollectionDomain&&(t?this.setAttribute(e.BEACON_COLLECTION_DOMAIN,t):this.removeAttribute(e.BEACON_COLLECTION_DOMAIN))}get streamType(){var t;return(t=this.getAttribute(e.STREAM_TYPE))!=null?t:Z(this.nativeEl)}set streamType(t){t!==this.streamType&&(t?this.setAttribute(e.STREAM_TYPE,t):this.removeAttribute(e.STREAM_TYPE))}get targetLiveWindow(){return this.hasAttribute(e.TARGET_LIVE_WINDOW)?+this.getAttribute(e.TARGET_LIVE_WINDOW):Q(this.nativeEl)}set targetLiveWindow(t){t!=this.targetLiveWindow&&(t==null?this.removeAttribute(e.TARGET_LIVE_WINDOW):this.setAttribute(e.TARGET_LIVE_WINDOW,`${+t}`))}get liveEdgeStart(){var t,i;if(this.hasAttribute(e.LIVE_EDGE_OFFSET)){let{liveEdgeOffset:r}=this,l=(t=this.nativeEl.seekable.end(0))!=null?t:0,f=(i=this.nativeEl.seekable.start(0))!=null?i:0;return Math.max(f,l-r)}return tt(this.nativeEl)}get liveEdgeOffset(){if(this.hasAttribute(e.LIVE_EDGE_OFFSET))return+this.getAttribute(e.LIVE_EDGE_OFFSET)}set liveEdgeOffset(t){t!=this.liveEdgeOffset&&(t==null?this.removeAttribute(e.LIVE_EDGE_OFFSET):this.setAttribute(e.LIVE_EDGE_OFFSET,`${+t}`))}get seekable(){return et(this.nativeEl)}async addCuePoints(t){return w(this.nativeEl,t)}get activeCuePoint(){return $(this.nativeEl)}get cuePoints(){return H(this.nativeEl)}async addChapters(t){return X(this.nativeEl,t)}get activeChapter(){return j(this.nativeEl)}get chapters(){return rt(this.nativeEl)}getStartDate(){return z(this.nativeEl,this._hls)}get currentPdt(){return J(this.nativeEl,this._hls)}get preferPlayback(){let t=this.getAttribute(e.PREFER_PLAYBACK);if(t===y.MSE||t===y.NATIVE)return t}set preferPlayback(t){t!==this.preferPlayback&&(t===y.MSE||t===y.NATIVE?this.setAttribute(e.PREFER_PLAYBACK,t):this.removeAttribute(e.PREFER_PLAYBACK))}get metadata(){return{...this.getAttributeNames().filter(i=>i.startsWith(\"metadata-\")&&![e.METADATA_URL].includes(i)).reduce((i,r)=>{let l=this.getAttribute(r);return l!=null&&(i[r.replace(/^metadata-/,\"\").replace(/-/g,\"_\")]=l),i},{}),...n(this,g)}}set metadata(t){o(this,g,t!=null?t:{}),this.mux&&this.mux.emit(\"hb\",n(this,g))}get _hlsConfig(){return n(this,O)}set _hlsConfig(t){o(this,O,t)}get logo(){var t;return(t=this.getAttribute(e.LOGO))!=null?t:n(this,c)}set logo(t){t?this.setAttribute(e.LOGO,t):this.removeAttribute(e.LOGO)}load(){o(this,E,U(this,this.nativeEl,n(this,E)))}unload(){G(this.nativeEl,n(this,E),this),o(this,E,void 0)}attributeChangedCallback(t,i,r){var f,L;switch(S.observedAttributes.includes(t)&&![\"src\",\"autoplay\",\"preload\"].includes(t)&&super.attributeChangedCallback(t,i,r),t){case e.PLAYER_SOFTWARE_NAME:this.playerSoftwareName=r!=null?r:void 0;break;case e.PLAYER_SOFTWARE_VERSION:this.playerSoftwareVersion=r!=null?r:void 0;break;case\"src\":{let u=!!i,h=!!r;!u&&h?b(this,A,T).call(this):u&&!h?this.unload():u&&h&&(this.unload(),b(this,A,T).call(this));break}case\"autoplay\":if(r===i)break;(f=n(this,E))==null||f.setAutoplay(this.autoplay);break;case\"preload\":if(r===i)break;(L=n(this,E))==null||L.setPreload(r);break;case e.PLAYBACK_ID:this.src=F(this);break;case e.DEBUG:{let u=this.debug;this.mux&&console.info(\"Cannot toggle debug mode of mux data after initialization. Make sure you set all metadata to override before setting the src.\"),this._hls&&(this._hls.config.debug=u);break}case e.METADATA_URL:r&&fetch(r).then(u=>u.json()).then(u=>this.metadata=u).catch(()=>console.error(`Unable to load or parse metadata JSON from metadata-url ${r}!`));break;case e.STREAM_TYPE:(r==null||r!==i)&&this.dispatchEvent(new CustomEvent(\"streamtypechange\",{composed:!0,bubbles:!0}));break;case e.TARGET_LIVE_WINDOW:(r==null||r!==i)&&this.dispatchEvent(new CustomEvent(\"targetlivewindowchange\",{composed:!0,bubbles:!0,detail:this.targetLiveWindow}));break;case e.LOGO:(r==null||r!==i)&&this.updateLogo();break;case e.DISABLE_TRACKING:{if(r==null||r!==i){let u=this.currentTime,h=this.paused;this.unload(),b(this,A,T).call(this).then(()=>{this.currentTime=u,h||this.play()})}break}case e.DISABLE_COOKIES:{(r==null||r!==i)&&this.disableCookies&&document.cookie.split(\";\").forEach(h=>{h.trim().startsWith(\"muxData\")&&(document.cookie=h.replace(/^ +/,\"\").replace(/=.*/,\"=;expires=\"+new Date().toUTCString()+\";path=/\"))});break}}}updateLogo(){if(!this.shadowRoot)return;let t=this.shadowRoot.querySelector('slot[name=\"logo\"]');if(!t)return;let i=this.constructor.getLogoHTML(n(this,c)||this.logo);t.innerHTML=i}connectedCallback(){var t;(t=super.connectedCallback)==null||t.call(this),this.nativeEl&&this.src&&!n(this,E)&&b(this,A,T).call(this)}disconnectedCallback(){this.unload()}handleEvent(t){t.target===this.nativeEl&&this.dispatchEvent(new CustomEvent(t.type,{composed:!0,detail:t.detail}))}};E=new WeakMap,m=new WeakMap,_=new WeakMap,g=new WeakMap,p=new WeakMap,O=new WeakMap,R=new WeakMap,I=new WeakMap,M=new WeakMap,c=new WeakMap,A=new WeakSet,T=async function(){n(this,m)||(await o(this,m,Promise.resolve()),o(this,m,null),this.load())};export{e as Attributes,bt as Events,ft as MediaError,K as MuxVideoBaseElement,V as generatePlayerInitTime,x as playerSoftwareName,v as playerSoftwareVersion};\n//# sourceMappingURL=base.mjs.map\n","/* global WeakRef */\n\nexport const privateProps = new WeakMap();\n\nexport class InvalidStateError extends Error {}\nexport class NotSupportedError extends Error {}\nexport class NotFoundError extends Error {}\n\nconst HLS_RESPONSE_HEADERS = ['application/x-mpegURL','application/vnd.apple.mpegurl','audio/mpegurl']\n\n// Fallback to a plain Set if WeakRef is not available.\nexport const IterableWeakSet = globalThis.WeakRef ?\n class extends Set {\n add(el) {\n super.add(new WeakRef(el));\n }\n forEach(fn) {\n super.forEach((ref) => {\n const value = ref.deref();\n if (value) fn(value);\n });\n }\n } : Set;\n\nexport function onCastApiAvailable(callback) {\n if (!globalThis.chrome?.cast?.isAvailable) {\n globalThis.__onGCastApiAvailable = () => {\n // The globalThis.__onGCastApiAvailable callback alone is not reliable for\n // the added cast.framework. It's loaded in a separate JS file.\n // https://www.gstatic.com/eureka/clank/101/cast_sender.js\n // https://www.gstatic.com/cast/sdk/libs/sender/1.0/cast_framework.js\n customElements\n .whenDefined('google-cast-button')\n .then(callback);\n };\n } else if (!globalThis.cast?.framework) {\n customElements\n .whenDefined('google-cast-button')\n .then(callback);\n } else {\n callback();\n }\n}\n\nexport function requiresCastFramework() {\n // todo: exclude for Android>=56 which supports the Remote Playback API natively.\n return globalThis.chrome;\n}\n\nexport function loadCastFramework() {\n const sdkUrl = 'https://www.gstatic.com/cv/js/sender/v1/cast_sender.js?loadCastFramework=1';\n if (globalThis.chrome?.cast || document.querySelector(`script[src=\"${sdkUrl}\"]`)) return;\n\n const script = document.createElement('script');\n script.src = sdkUrl;\n document.head.append(script);\n}\n\nexport function castContext() {\n return globalThis.cast?.framework?.CastContext.getInstance();\n}\n\nexport function currentSession() {\n return castContext()?.getCurrentSession();\n}\n\nexport function currentMedia() {\n return currentSession()?.getSessionObj().media[0];\n}\n\nexport function editTracksInfo(request) {\n return new Promise((resolve, reject) => {\n currentMedia().editTracksInfo(request, resolve, reject);\n });\n}\n\nexport function getMediaStatus(request) {\n return new Promise((resolve, reject) => {\n currentMedia().getStatus(request, resolve, reject);\n });\n}\n\nexport function setCastOptions(options) {\n return castContext().setOptions({\n ...getDefaultCastOptions(),\n ...options,\n });\n}\n\nexport function getDefaultCastOptions() {\n return {\n // Set the receiver application ID to your own (created in the\n // Google Cast Developer Console), or optionally\n // use the chrome.cast.media.DEFAULT_MEDIA_RECEIVER_APP_ID\n receiverApplicationId: 'CC1AD845',\n\n // Auto join policy can be one of the following three:\n // ORIGIN_SCOPED - Auto connect from same appId and page origin\n // TAB_AND_ORIGIN_SCOPED - Auto connect from same appId, page origin, and tab\n // PAGE_SCOPED - No auto connect\n autoJoinPolicy: 'origin_scoped',\n\n // The following flag enables Cast Connect(requires Chrome 87 or higher)\n // https://developers.googleblog.com/2020/08/introducing-cast-connect-android-tv.html\n androidReceiverCompatible: false,\n\n language: 'en-US',\n resumeSavedSession: true,\n };\n}\n\n//Get the segment format given the end of the URL (.m4s, .ts, etc)\nfunction getFormat(segment) {\n if (!segment) return undefined;\n\n const regex = /\\.([a-zA-Z0-9]+)(?:\\?.*)?$/;\n const match = segment.match(regex);\n return match ? match[1] : null;\n}\n\nfunction parsePlaylistUrls(playlistContent) {\n const lines = playlistContent.split('\\n');\n const urls = [];\n\n for (let i = 0; i < lines.length; i++) {\n const line = lines[i].trim();\n\n // Locate available video playlists and get the next line which is the URI (https://datatracker.ietf.org/doc/html/draft-pantos-hls-rfc8216bis-17#section-4.4.6.2)\n if (line.startsWith('#EXT-X-STREAM-INF')) {\n const nextLine = lines[i + 1] ? lines[i + 1].trim() : '';\n if (nextLine && !nextLine.startsWith('#')) {\n urls.push(nextLine);\n }\n }\n }\n\n return urls;\n}\n\nfunction parseSegment(playlistContent){\n const lines = playlistContent.split('\\n');\n\n const url = lines.find(line => !line.trim().startsWith('#') && line.trim() !== '');\n\n return url;\n}\n\nexport async function isHls(url) {\n try {\n const response = await fetch(url, {method: 'HEAD'});\n const contentType = response.headers.get('Content-Type');\n\n return HLS_RESPONSE_HEADERS.some((header) => contentType === header);\n } catch (err) {\n console.error('Error while trying to get the Content-Type of the manifest', err);\n return false;\n }\n}\n\nexport async function getPlaylistSegmentFormat(url) {\n try {\n const mainManifestContent = await (await fetch(url)).text();\n let availableChunksContent = mainManifestContent;\n\n const playlists = parsePlaylistUrls(mainManifestContent);\n if (playlists.length > 0) { \n const chosenPlaylistUrl = new URL(playlists[0], url).toString();\n availableChunksContent = await (await fetch(chosenPlaylistUrl)).text();\n }\n\n const segment = parseSegment(availableChunksContent);\n const format = getFormat(segment);\n return format\n } catch (err) {\n console.error('Error while trying to parse the manifest playlist', err);\n return undefined;\n }\n}","/* global chrome, cast */\nimport {\n privateProps,\n IterableWeakSet,\n InvalidStateError,\n NotSupportedError,\n onCastApiAvailable,\n castContext,\n currentSession,\n currentMedia,\n editTracksInfo,\n getMediaStatus,\n setCastOptions\n} from './castable-utils.js';\n\nconst remoteInstances = new IterableWeakSet();\nconst castElementRef = new WeakSet();\n\nlet cf;\n\nonCastApiAvailable(() => {\n if (!globalThis.chrome?.cast?.isAvailable) {\n // Useful to see in verbose logs if this shows undefined or false.\n console.debug('chrome.cast.isAvailable', globalThis.chrome?.cast?.isAvailable);\n return;\n }\n\n if (!cf) {\n cf = cast.framework;\n\n castContext().addEventListener(cf.CastContextEventType.CAST_STATE_CHANGED, (e) => {\n remoteInstances.forEach((r) => privateProps.get(r).onCastStateChanged?.(e));\n });\n\n castContext().addEventListener(cf.CastContextEventType.SESSION_STATE_CHANGED, (e) => {\n remoteInstances.forEach((r) => privateProps.get(r).onSessionStateChanged?.(e));\n });\n\n remoteInstances.forEach((r) => privateProps.get(r).init?.());\n }\n});\n\n\nlet remotePlaybackCallbackIdCount = 0;\n\n/**\n * Remote Playback shim for the Google cast SDK.\n * https://w3c.github.io/remote-playback/\n */\nexport class RemotePlayback extends EventTarget {\n #media;\n #isInit;\n #remotePlayer;\n #remoteListeners;\n #state = 'disconnected';\n #available = false;\n #callbacks = new Set();\n #callbackIds = new WeakMap();\n\n constructor(media) {\n super();\n\n this.#media = media;\n\n remoteInstances.add(this);\n privateProps.set(this, {\n init: () => this.#init(),\n onCastStateChanged: () => this.#onCastStateChanged(),\n onSessionStateChanged: () => this.#onSessionStateChanged(),\n getCastPlayer: () => this.#castPlayer,\n });\n\n this.#init();\n }\n\n get #castPlayer() {\n if (castElementRef.has(this.#media)) return this.#remotePlayer;\n return undefined;\n }\n\n /**\n * https://developer.mozilla.org/en-US/docs/Web/API/RemotePlayback/state\n * @return {'disconnected'|'connecting'|'connected'}\n */\n get state() {\n return this.#state;\n }\n\n async watchAvailability(callback) {\n if (this.#media.disableRemotePlayback) {\n throw new InvalidStateError('disableRemotePlayback attribute is present.');\n }\n\n this.#callbackIds.set(callback, ++remotePlaybackCallbackIdCount);\n this.#callbacks.add(callback);\n\n // https://w3c.github.io/remote-playback/#getting-the-remote-playback-devices-availability-information\n queueMicrotask(() => callback(this.#hasDevicesAvailable()));\n\n return remotePlaybackCallbackIdCount;\n }\n\n async cancelWatchAvailability(callback) {\n if (this.#media.disableRemotePlayback) {\n throw new InvalidStateError('disableRemotePlayback attribute is present.');\n }\n\n if (callback) {\n this.#callbacks.delete(callback);\n } else {\n this.#callbacks.clear();\n }\n }\n\n async prompt() {\n if (this.#media.disableRemotePlayback) {\n throw new InvalidStateError('disableRemotePlayback attribute is present.');\n }\n\n if (!globalThis.chrome?.cast?.isAvailable) {\n throw new NotSupportedError('The RemotePlayback API is disabled on this platform.');\n }\n\n const willDisconnect = castElementRef.has(this.#media);\n castElementRef.add(this.#media);\n\n setCastOptions(this.#media.castOptions);\n\n Object.entries(this.#remoteListeners).forEach(([event, listener]) => {\n this.#remotePlayer.controller.addEventListener(event, listener);\n });\n\n try {\n // Open browser cast menu.\n await castContext().requestSession();\n } catch (err) {\n // If there will be no disconnect, reset some state here.\n if (!willDisconnect) {\n castElementRef.delete(this.#media);\n }\n\n // Don't throw an error if disconnecting or cancelling.\n if (err === 'cancel') {\n return;\n }\n\n throw new Error(err);\n }\n\n privateProps.get(this.#media)?.loadOnPrompt?.();\n }\n\n #disconnect() {\n if (!castElementRef.has(this.#media)) return;\n\n Object.entries(this.#remoteListeners).forEach(([event, listener]) => {\n this.#remotePlayer.controller.removeEventListener(event, listener);\n });\n\n castElementRef.delete(this.#media);\n\n // isMuted is not in savedPlayerState. should we sync this back to local?\n this.#media.muted = this.#remotePlayer.isMuted;\n this.#media.currentTime = this.#remotePlayer.savedPlayerState.currentTime;\n if (this.#remotePlayer.savedPlayerState.isPaused === false) {\n this.#media.play();\n }\n }\n\n #hasDevicesAvailable() {\n // Cast state: NO_DEVICES_AVAILABLE, NOT_CONNECTED, CONNECTING, CONNECTED\n // https://developers.google.com/cast/docs/reference/web_sender/cast.framework#.CastState\n const castState = castContext()?.getCastState();\n return castState && castState !== 'NO_DEVICES_AVAILABLE';\n }\n\n #onCastStateChanged() {\n // Cast state: NO_DEVICES_AVAILABLE, NOT_CONNECTED, CONNECTING, CONNECTED\n // https://developers.google.com/cast/docs/reference/web_sender/cast.framework#.CastState\n const castState = castContext().getCastState();\n\n if (castElementRef.has(this.#media)) {\n if (castState === 'CONNECTING') {\n this.#state = 'connecting';\n this.dispatchEvent(new Event('connecting'));\n }\n }\n\n if (!this.#available && castState?.includes('CONNECT')) {\n this.#available = true;\n for (let callback of this.#callbacks) callback(true);\n }\n else if (this.#available && (!castState || castState === 'NO_DEVICES_AVAILABLE')) {\n this.#available = false;\n for (let callback of this.#callbacks) callback(false);\n }\n }\n\n async #onSessionStateChanged() {\n // Session states: NO_SESSION, SESSION_STARTING, SESSION_STARTED, SESSION_START_FAILED,\n // SESSION_ENDING, SESSION_ENDED, SESSION_RESUMED\n // https://developers.google.com/cast/docs/reference/web_sender/cast.framework#.SessionState\n\n const { SESSION_RESUMED } = cf.SessionState;\n if (castContext().getSessionState() === SESSION_RESUMED) {\n /**\n * Figure out if this was the video that started the resumed session.\n * @TODO make this more specific than just checking against the video src!! (WL)\n *\n * If this video element can get the same unique id on each browser refresh\n * it would be possible to pass this unique id w/ `LoadRequest.customData`\n * and verify against currentMedia().customData below.\n */\n if (this.#media.castSrc === currentMedia()?.media.contentId) {\n castElementRef.add(this.#media);\n\n Object.entries(this.#remoteListeners).forEach(([event, listener]) => {\n this.#remotePlayer.controller.addEventListener(event, listener);\n });\n\n /**\n * There is cast framework resume session bug when you refresh the page a few\n * times the this.#remotePlayer.currentTime will not be in sync with the receiver :(\n * The below status request syncs it back up.\n */\n try {\n await getMediaStatus(new chrome.cast.media.GetStatusRequest());\n } catch (error) {\n console.error(error);\n }\n\n // Dispatch the play, playing events manually to sync remote playing state.\n this.#remoteListeners[cf.RemotePlayerEventType.IS_PAUSED_CHANGED]();\n this.#remoteListeners[cf.RemotePlayerEventType.PLAYER_STATE_CHANGED]();\n }\n }\n }\n\n #init() {\n if (!cf || this.#isInit) return;\n this.#isInit = true;\n\n setCastOptions(this.#media.castOptions);\n\n /**\n * @TODO add listeners for addtrack, removetrack (WL)\n * This only has an impact on <track> with a `src` because these have to be\n * loaded manually in the load() method. This will require a new load() call\n * for each added/removed track w/ src.\n */\n this.#media.textTracks.addEventListener('change', () => this.#updateRemoteTextTrack());\n\n this.#onCastStateChanged();\n\n this.#remotePlayer = new cf.RemotePlayer();\n new cf.RemotePlayerController(this.#remotePlayer);\n\n this.#remoteListeners = {\n [cf.RemotePlayerEventType.IS_CONNECTED_CHANGED]: ({ value }) => {\n if (value === true) {\n this.#state = 'connected';\n this.dispatchEvent(new Event('connect'));\n } else {\n this.#disconnect();\n this.#state = 'disconnected';\n this.dispatchEvent(new Event('disconnect'));\n }\n },\n [cf.RemotePlayerEventType.DURATION_CHANGED]: () => {\n this.#media.dispatchEvent(new Event('durationchange'));\n },\n [cf.RemotePlayerEventType.VOLUME_LEVEL_CHANGED]: () => {\n this.#media.dispatchEvent(new Event('volumechange'));\n },\n [cf.RemotePlayerEventType.IS_MUTED_CHANGED]: () => {\n this.#media.dispatchEvent(new Event('volumechange'));\n },\n [cf.RemotePlayerEventType.CURRENT_TIME_CHANGED]: () => {\n if (!this.#castPlayer?.isMediaLoaded) return;\n this.#media.dispatchEvent(new Event('timeupdate'));\n },\n [cf.RemotePlayerEventType.VIDEO_INFO_CHANGED]: () => {\n this.#media.dispatchEvent(new Event('resize'));\n },\n [cf.RemotePlayerEventType.IS_PAUSED_CHANGED]: () => {\n this.#media.dispatchEvent(new Event(this.paused ? 'pause' : 'play'));\n },\n [cf.RemotePlayerEventType.PLAYER_STATE_CHANGED]: () => {\n // Player states: IDLE, PLAYING, PAUSED, BUFFERING\n // https://developers.google.com/cast/docs/reference/web_sender/chrome.cast.media#.PlayerState\n\n // pause event is handled above.\n if (this.#castPlayer?.playerState === chrome.cast.media.PlayerState.PAUSED) {\n return;\n }\n\n this.#media.dispatchEvent(\n new Event(\n {\n [chrome.cast.media.PlayerState.PLAYING]: 'playing',\n [chrome.cast.media.PlayerState.BUFFERING]: 'waiting',\n [chrome.cast.media.PlayerState.IDLE]: 'emptied',\n }[this.#castPlayer?.playerState]\n )\n );\n },\n [cf.RemotePlayerEventType.IS_MEDIA_LOADED_CHANGED]: async () => {\n if (!this.#castPlayer?.isMediaLoaded) return;\n\n // mediaInfo is not immediately available due to a bug? wait one tick\n await Promise.resolve();\n this.#onRemoteMediaLoaded();\n },\n };\n }\n\n #onRemoteMediaLoaded() {\n this.#updateRemoteTextTrack();\n }\n\n async #updateRemoteTextTrack() {\n if (!this.#castPlayer) return;\n\n // Get the tracks w/ trackId's that have been loaded; manually or via a playlist like a M3U8 or MPD.\n const remoteTracks = this.#remotePlayer.mediaInfo?.tracks ?? [];\n const remoteSubtitles = remoteTracks.filter(\n ({ type }) => type === chrome.cast.media.TrackType.TEXT\n );\n\n const localSubtitles = [...this.#media.textTracks].filter(\n ({ kind }) => kind === 'subtitles' || kind === 'captions'\n );\n\n // Create a new array from the local subs w/ the trackId's from the remote subs.\n const subtitles = remoteSubtitles\n .map(({ language, name, trackId }) => {\n // Find the corresponding local text track and assign the trackId.\n const { mode } =\n localSubtitles.find(\n (local) => local.language === language && local.label === name\n ) ?? {};\n if (mode) return { mode, trackId };\n return false;\n })\n .filter(Boolean);\n\n const hiddenSubtitles = subtitles.filter(\n ({ mode }) => mode !== 'showing'\n );\n const hiddenTrackIds = hiddenSubtitles.map(({ trackId }) => trackId);\n const showingSubtitle = subtitles.find(({ mode }) => mode === 'showing');\n\n // Note this could also include audio or video tracks, diff against local state.\n const activeTrackIds =\n currentSession()?.getSessionObj().media[0]\n ?.activeTrackIds ?? [];\n let requestTrackIds = activeTrackIds;\n\n if (activeTrackIds.length) {\n // Filter out all local hidden subtitle trackId's.\n requestTrackIds = requestTrackIds.filter(\n (id) => !hiddenTrackIds.includes(id)\n );\n }\n\n if (showingSubtitle?.trackId) {\n requestTrackIds = [...requestTrackIds, showingSubtitle.trackId];\n }\n\n // Remove duplicate ids.\n requestTrackIds = [...new Set(requestTrackIds)];\n\n const arrayEquals = (a, b) =>\n a.length === b.length && a.every((a) => b.includes(a));\n if (!arrayEquals(activeTrackIds, requestTrackIds)) {\n try {\n const request = new chrome.cast.media.EditTracksInfoRequest(\n requestTrackIds\n );\n await editTracksInfo(request);\n } catch (error) {\n console.error(error);\n }\n }\n }\n}\n","/* global chrome */\nimport { RemotePlayback } from './castable-remote-playback.js';\nimport {\n privateProps,\n requiresCastFramework,\n loadCastFramework,\n currentSession,\n getDefaultCastOptions,\n isHls,\n getPlaylistSegmentFormat\n} from './castable-utils.js';\n\n/**\n * CastableMediaMixin\n *\n * This mixin function provides a way to compose multiple classes.\n * @see https://justinfagnani.com/2015/12/21/real-mixins-with-javascript-classes/\n *\n * @param {HTMLMediaElement} superclass - HTMLMediaElement or an extended class of it.\n * @return {CastableMedia}\n */\nexport const CastableMediaMixin = (superclass) =>\n class CastableMedia extends superclass {\n\n static observedAttributes = [\n ...(superclass.observedAttributes ?? []),\n 'cast-src',\n 'cast-content-type',\n 'cast-stream-type',\n 'cast-receiver',\n ];\n\n #localState = { paused: false };\n #castOptions = getDefaultCastOptions();\n #castCustomData;\n #remote;\n\n get remote() {\n if (this.#remote) return this.#remote;\n\n if (requiresCastFramework()) {\n // No need to load the Cast framework if it's disabled.\n if (!this.disableRemotePlayback) {\n loadCastFramework();\n }\n\n privateProps.set(this, {\n loadOnPrompt: () => this.#loadOnPrompt()\n });\n\n return (this.#remote = new RemotePlayback(this));\n }\n\n return super.remote;\n }\n\n get #castPlayer() {\n return privateProps.get(this.remote)?.getCastPlayer?.();\n }\n\n attributeChangedCallback(attrName, oldValue, newValue) {\n super.attributeChangedCallback(attrName, oldValue, newValue);\n\n if (attrName === 'cast-receiver' && newValue) {\n this.#castOptions.receiverApplicationId = newValue;\n return;\n }\n\n if (!this.#castPlayer) return;\n\n switch (attrName) {\n case 'cast-stream-type':\n case 'cast-src':\n this.load();\n break;\n }\n }\n\n async #loadOnPrompt() {\n // Pause locally when the session is created.\n this.#localState.paused = super.paused;\n super.pause();\n\n // Sync over the muted state but not volume, 100% is different on TV's :P\n this.muted = super.muted;\n\n try {\n await this.load();\n } catch (err) {\n console.error(err);\n }\n }\n\n async load() {\n if (!this.#castPlayer) return super.load();\n\n const mediaInfo = new chrome.cast.media.MediaInfo(this.castSrc, this.castContentType);\n mediaInfo.customData = this.castCustomData;\n\n // Manually add text tracks with a `src` attribute.\n // M3U8's load text tracks in the receiver, handle these in the media loaded event.\n const subtitles = [...this.querySelectorAll('track')].filter(\n ({ kind, src }) => src && (kind === 'subtitles' || kind === 'captions')\n );\n\n const activeTrackIds = [];\n let textTrackIdCount = 0;\n\n if (subtitles.length) {\n mediaInfo.tracks = subtitles.map((trackEl) => {\n const trackId = ++textTrackIdCount;\n // only activate 1 subtitle text track.\n if (activeTrackIds.length === 0 && trackEl.track.mode === 'showing') {\n activeTrackIds.push(trackId);\n }\n\n const track = new chrome.cast.media.Track(\n trackId,\n chrome.cast.media.TrackType.TEXT\n );\n track.trackContentId = trackEl.src;\n track.trackContentType = 'text/vtt';\n track.subtype =\n trackEl.kind === 'captions'\n ? chrome.cast.media.TextTrackType.CAPTIONS\n : chrome.cast.media.TextTrackType.SUBTITLES;\n track.name = trackEl.label;\n track.language = trackEl.srclang;\n return track;\n });\n }\n\n if (this.castStreamType === 'live') {\n mediaInfo.streamType = chrome.cast.media.StreamType.LIVE;\n } else {\n mediaInfo.streamType = chrome.cast.media.StreamType.BUFFERED;\n }\n\n mediaInfo.metadata = new chrome.cast.media.GenericMediaMetadata();\n mediaInfo.metadata.title = this.title;\n mediaInfo.metadata.images = [{ url: this.poster }];\n\n if (isHls(this.castSrc)) {\n const segmentFormat = await getPlaylistSegmentFormat(this.castSrc);\n const isFragmentedMP4 = segmentFormat?.includes('m4s') || segmentFormat?.includes('mp4');\n if (isFragmentedMP4) {\n mediaInfo.hlsSegmentFormat = chrome.cast.media.HlsSegmentFormat.FMP4;\n mediaInfo.hlsVideoSegmentFormat = chrome.cast.media.HlsVideoSegmentFormat.FMP4;\n } else if (segmentFormat?.includes('ts')) {\n mediaInfo.hlsSegmentFormat = chrome.cast.media.HlsSegmentFormat.TS;\n mediaInfo.hlsVideoSegmentFormat = chrome.cast.media.HlsVideoSegmentFormat.TS;\n }\n }\n\n const request = new chrome.cast.media.LoadRequest(mediaInfo);\n request.currentTime = super.currentTime ?? 0;\n request.autoplay = !this.#localState.paused;\n request.activeTrackIds = activeTrackIds;\n\n await currentSession()?.loadMedia(request);\n\n this.dispatchEvent(new Event('volumechange'));\n }\n\n play() {\n if (this.#castPlayer) {\n if (this.#castPlayer.isPaused) {\n this.#castPlayer.controller?.playOrPause();\n }\n return;\n }\n return super.play();\n }\n\n pause() {\n if (this.#castPlayer) {\n if (!this.#castPlayer.isPaused) {\n this.#castPlayer.controller?.playOrPause();\n }\n return;\n }\n super.pause();\n }\n\n /**\n * @see https://developers.google.com/cast/docs/reference/web_sender/cast.framework.CastOptions\n * @readonly\n *\n * @typedef {Object} CastOptions\n * @property {string} [receiverApplicationId='CC1AD845'] - The app id of the cast receiver.\n * @property {string} [autoJoinPolicy='origin_scoped'] - The auto join policy.\n * @property {string} [language='en-US'] - The language to use for the cast receiver.\n * @property {boolean} [androidReceiverCompatible=false] - Whether to use the Cast Connect.\n * @property {boolean} [resumeSavedSession=true] - Whether to resume the last session.\n *\n * @return {CastOptions}\n */\n get castOptions() {\n return this.#castOptions;\n }\n\n get castReceiver() {\n return this.getAttribute('cast-receiver') ?? undefined;\n }\n\n set castReceiver(val) {\n if (this.castReceiver == val) return;\n this.setAttribute('cast-receiver', `${val}`);\n }\n\n // Allow the cast source url to be different than <video src>, could be a blob.\n get castSrc() {\n // Try the first <source src> for usage with even more native markup.\n return (\n this.getAttribute('cast-src') ??\n this.querySelector('source')?.src ??\n this.currentSrc\n );\n }\n\n set castSrc(val) {\n if (this.castSrc == val) return;\n this.setAttribute('cast-src', `${val}`);\n }\n\n get castContentType() {\n return this.getAttribute('cast-content-type') ?? undefined;\n }\n\n set castContentType(val) {\n this.setAttribute('cast-content-type', `${val}`);\n }\n\n get castStreamType() {\n // NOTE: Per https://github.com/video-dev/media-ui-extensions/issues/3 `streamType` may yield `\"unknown\"`\n return this.getAttribute('cast-stream-type') ?? this.streamType ?? undefined;\n }\n\n set castStreamType(val) {\n this.setAttribute('cast-stream-type', `${val}`);\n }\n\n get castCustomData() {\n return this.#castCustomData;\n }\n\n set castCustomData(val) {\n const valType = typeof val;\n if (!['object', 'undefined'].includes(valType)) {\n console.error(`castCustomData must be nullish or an object but value was of type ${valType}`);\n return;\n }\n\n this.#castCustomData = val;\n }\n\n get readyState() {\n if (this.#castPlayer) {\n switch (this.#castPlayer.playerState) {\n case chrome.cast.media.PlayerState.IDLE:\n return 0;\n case chrome.cast.media.PlayerState.BUFFERING:\n return 2;\n default:\n return 3;\n }\n }\n return super.readyState;\n }\n\n get paused() {\n if (this.#castPlayer) return this.#castPlayer.isPaused;\n return super.paused;\n }\n\n get muted() {\n if (this.#castPlayer) return this.#castPlayer?.isMuted;\n return super.muted;\n }\n\n set muted(val) {\n if (this.#castPlayer) {\n if (\n (val && !this.#castPlayer.isMuted) ||\n (!val && this.#castPlayer.isMuted)\n ) {\n this.#castPlayer.controller?.muteOrUnmute();\n }\n return;\n }\n super.muted = val;\n }\n\n get volume() {\n if (this.#castPlayer) return this.#castPlayer?.volumeLevel ?? 1;\n return super.volume;\n }\n\n set volume(val) {\n if (this.#castPlayer) {\n this.#castPlayer.volumeLevel = +val;\n this.#castPlayer.controller?.setVolumeLevel();\n return;\n }\n super.volume = val;\n }\n\n get duration() {\n // castPlayer duration returns `0` when no media is loaded.\n if (this.#castPlayer && this.#castPlayer?.isMediaLoaded) {\n return this.#castPlayer?.duration ?? NaN;\n }\n return super.duration;\n }\n\n get currentTime() {\n if (this.#castPlayer && this.#castPlayer?.isMediaLoaded) {\n return this.#castPlayer?.currentTime ?? 0;\n }\n return super.currentTime;\n }\n\n set currentTime(val) {\n if (this.#castPlayer) {\n this.#castPlayer.currentTime = val;\n this.#castPlayer.controller?.seek();\n return;\n }\n super.currentTime = val;\n }\n };\n\nexport const CastableVideoMixin = CastableMediaMixin;\n","var f=e=>{throw TypeError(e)};var g=(e,o,t)=>o.has(e)||f(\"Cannot \"+t);var u=(e,o,t)=>(g(e,o,\"read from private field\"),t?t.call(e):o.get(e)),m=(e,o,t)=>o.has(e)?f(\"Cannot add the same private member more than once\"):o instanceof WeakSet?o.add(e):o.set(e,t),d=(e,o,t,l)=>(g(e,o,\"write to private field\"),l?l.call(e,t):o.set(e,t),t);var s=class{addEventListener(){}removeEventListener(){}dispatchEvent(o){return!0}};if(typeof DocumentFragment==\"undefined\"){class e extends s{}globalThis.DocumentFragment=e}var n=class extends s{},p=class extends s{},x={get(e){},define(e,o,t){},getName(e){return null},upgrade(e){},whenDefined(e){return Promise.resolve(n)}},a,h=class{constructor(o,t={}){m(this,a);d(this,a,t==null?void 0:t.detail)}get detail(){return u(this,a)}initCustomEvent(){}};a=new WeakMap;function C(e,o){return new n}var y={document:{createElement:C},DocumentFragment,customElements:x,CustomEvent:h,EventTarget:s,HTMLElement:n,HTMLVideoElement:p},b=typeof window==\"undefined\"||typeof globalThis.customElements==\"undefined\",c=b?y:globalThis,k=b?y.document:globalThis.document;import{MuxVideoBaseElement as T}from\"@mux/mux-video/base\";import{CastableMediaMixin as E}from\"castable-video/castable-mixin.js\";import{MediaTracksMixin as D}from\"media-tracks\";export*from\"@mux/mux-video/base\";var r,i=class extends E(D(T)){constructor(){super(...arguments);m(this,r)}get autoplay(){let t=this.getAttribute(\"autoplay\");return t===null?!1:t===\"\"?!0:t}set autoplay(t){let l=this.autoplay;t!==l&&(t?this.setAttribute(\"autoplay\",typeof t==\"string\"?t:\"\"):this.removeAttribute(\"autoplay\"))}get muxCastCustomData(){return{mux:{playbackId:this.playbackId,minResolution:this.minResolution,maxResolution:this.maxResolution,renditionOrder:this.renditionOrder,customDomain:this.customDomain,tokens:{drm:this.drmToken},envKey:this.envKey,metadata:this.metadata,disableCookies:this.disableCookies,disableTracking:this.disableTracking,beaconCollectionDomain:this.beaconCollectionDomain,startTime:this.startTime,preferCmcd:this.preferCmcd}}}get castCustomData(){var t;return(t=u(this,r))!=null?t:this.muxCastCustomData}set castCustomData(t){d(this,r,t)}};r=new WeakMap;c.customElements.get(\"mux-video\")||(c.customElements.define(\"mux-video\",i),c.MuxVideoElement=i);var F=i;export{F as default};\n//# sourceMappingURL=index.mjs.map\n","const MediaUIEvents = {\n MEDIA_PLAY_REQUEST: \"mediaplayrequest\",\n MEDIA_PAUSE_REQUEST: \"mediapauserequest\",\n MEDIA_MUTE_REQUEST: \"mediamuterequest\",\n MEDIA_UNMUTE_REQUEST: \"mediaunmuterequest\",\n MEDIA_LOOP_REQUEST: \"medialooprequest\",\n MEDIA_VOLUME_REQUEST: \"mediavolumerequest\",\n MEDIA_SEEK_REQUEST: \"mediaseekrequest\",\n MEDIA_AIRPLAY_REQUEST: \"mediaairplayrequest\",\n MEDIA_ENTER_FULLSCREEN_REQUEST: \"mediaenterfullscreenrequest\",\n MEDIA_EXIT_FULLSCREEN_REQUEST: \"mediaexitfullscreenrequest\",\n MEDIA_PREVIEW_REQUEST: \"mediapreviewrequest\",\n MEDIA_ENTER_PIP_REQUEST: \"mediaenterpiprequest\",\n MEDIA_EXIT_PIP_REQUEST: \"mediaexitpiprequest\",\n MEDIA_ENTER_CAST_REQUEST: \"mediaentercastrequest\",\n MEDIA_EXIT_CAST_REQUEST: \"mediaexitcastrequest\",\n MEDIA_SHOW_TEXT_TRACKS_REQUEST: \"mediashowtexttracksrequest\",\n MEDIA_HIDE_TEXT_TRACKS_REQUEST: \"mediahidetexttracksrequest\",\n MEDIA_SHOW_SUBTITLES_REQUEST: \"mediashowsubtitlesrequest\",\n MEDIA_DISABLE_SUBTITLES_REQUEST: \"mediadisablesubtitlesrequest\",\n MEDIA_TOGGLE_SUBTITLES_REQUEST: \"mediatogglesubtitlesrequest\",\n MEDIA_PLAYBACK_RATE_REQUEST: \"mediaplaybackraterequest\",\n MEDIA_RENDITION_REQUEST: \"mediarenditionrequest\",\n MEDIA_AUDIO_TRACK_REQUEST: \"mediaaudiotrackrequest\",\n MEDIA_SEEK_TO_LIVE_REQUEST: \"mediaseektoliverequest\",\n REGISTER_MEDIA_STATE_RECEIVER: \"registermediastatereceiver\",\n UNREGISTER_MEDIA_STATE_RECEIVER: \"unregistermediastatereceiver\"\n};\nconst MediaStateReceiverAttributes = {\n MEDIA_CHROME_ATTRIBUTES: \"mediachromeattributes\",\n MEDIA_CONTROLLER: \"mediacontroller\"\n};\nconst MediaUIProps = {\n MEDIA_AIRPLAY_UNAVAILABLE: \"mediaAirplayUnavailable\",\n MEDIA_AUDIO_TRACK_ENABLED: \"mediaAudioTrackEnabled\",\n MEDIA_AUDIO_TRACK_LIST: \"mediaAudioTrackList\",\n MEDIA_AUDIO_TRACK_UNAVAILABLE: \"mediaAudioTrackUnavailable\",\n MEDIA_BUFFERED: \"mediaBuffered\",\n MEDIA_CAST_UNAVAILABLE: \"mediaCastUnavailable\",\n MEDIA_CHAPTERS_CUES: \"mediaChaptersCues\",\n MEDIA_CURRENT_TIME: \"mediaCurrentTime\",\n MEDIA_DURATION: \"mediaDuration\",\n MEDIA_ENDED: \"mediaEnded\",\n MEDIA_ERROR: \"mediaError\",\n MEDIA_ERROR_CODE: \"mediaErrorCode\",\n MEDIA_ERROR_MESSAGE: \"mediaErrorMessage\",\n MEDIA_FULLSCREEN_UNAVAILABLE: \"mediaFullscreenUnavailable\",\n MEDIA_HAS_PLAYED: \"mediaHasPlayed\",\n MEDIA_HEIGHT: \"mediaHeight\",\n MEDIA_IS_AIRPLAYING: \"mediaIsAirplaying\",\n MEDIA_IS_CASTING: \"mediaIsCasting\",\n MEDIA_IS_FULLSCREEN: \"mediaIsFullscreen\",\n MEDIA_IS_PIP: \"mediaIsPip\",\n MEDIA_LOADING: \"mediaLoading\",\n MEDIA_MUTED: \"mediaMuted\",\n MEDIA_LOOP: \"mediaLoop\",\n MEDIA_PAUSED: \"mediaPaused\",\n MEDIA_PIP_UNAVAILABLE: \"mediaPipUnavailable\",\n MEDIA_PLAYBACK_RATE: \"mediaPlaybackRate\",\n MEDIA_PREVIEW_CHAPTER: \"mediaPreviewChapter\",\n MEDIA_PREVIEW_COORDS: \"mediaPreviewCoords\",\n MEDIA_PREVIEW_IMAGE: \"mediaPreviewImage\",\n MEDIA_PREVIEW_TIME: \"mediaPreviewTime\",\n MEDIA_RENDITION_LIST: \"mediaRenditionList\",\n MEDIA_RENDITION_SELECTED: \"mediaRenditionSelected\",\n MEDIA_RENDITION_UNAVAILABLE: \"mediaRenditionUnavailable\",\n MEDIA_SEEKABLE: \"mediaSeekable\",\n MEDIA_STREAM_TYPE: \"mediaStreamType\",\n MEDIA_SUBTITLES_LIST: \"mediaSubtitlesList\",\n MEDIA_SUBTITLES_SHOWING: \"mediaSubtitlesShowing\",\n MEDIA_TARGET_LIVE_WINDOW: \"mediaTargetLiveWindow\",\n MEDIA_TIME_IS_LIVE: \"mediaTimeIsLive\",\n MEDIA_VOLUME: \"mediaVolume\",\n MEDIA_VOLUME_LEVEL: \"mediaVolumeLevel\",\n MEDIA_VOLUME_UNAVAILABLE: \"mediaVolumeUnavailable\",\n MEDIA_LANG: \"mediaLang\",\n MEDIA_WIDTH: \"mediaWidth\"\n};\nconst MediaUIPropsEntries = Object.entries(\n MediaUIProps\n);\nconst MediaUIAttributes = MediaUIPropsEntries.reduce(\n (dictObj, [key, propName]) => {\n dictObj[key] = propName.toLowerCase();\n return dictObj;\n },\n {}\n);\nconst AdditionalStateChangeEvents = {\n USER_INACTIVE_CHANGE: \"userinactivechange\",\n BREAKPOINTS_CHANGE: \"breakpointchange\",\n BREAKPOINTS_COMPUTED: \"breakpointscomputed\"\n};\nconst MediaStateChangeEvents = MediaUIPropsEntries.reduce(\n (dictObj, [key, propName]) => {\n dictObj[key] = propName.toLowerCase();\n return dictObj;\n },\n { ...AdditionalStateChangeEvents }\n);\nconst StateChangeEventToAttributeMap = Object.entries(\n MediaStateChangeEvents\n).reduce(\n (mapObj, [key, eventType]) => {\n const attrName = MediaUIAttributes[key];\n if (attrName) {\n mapObj[eventType] = attrName;\n }\n return mapObj;\n },\n { userinactivechange: \"userinactive\" }\n);\nconst AttributeToStateChangeEventMap = Object.entries(\n MediaUIAttributes\n).reduce(\n (mapObj, [key, attrName]) => {\n const evtType = MediaStateChangeEvents[key];\n if (evtType) {\n mapObj[attrName] = evtType;\n }\n return mapObj;\n },\n { userinactive: \"userinactivechange\" }\n);\nconst TextTrackKinds = {\n SUBTITLES: \"subtitles\",\n CAPTIONS: \"captions\",\n DESCRIPTIONS: \"descriptions\",\n CHAPTERS: \"chapters\",\n METADATA: \"metadata\"\n};\nconst TextTrackModes = {\n DISABLED: \"disabled\",\n HIDDEN: \"hidden\",\n SHOWING: \"showing\"\n};\nconst ReadyStates = {\n HAVE_NOTHING: 0,\n HAVE_METADATA: 1,\n HAVE_CURRENT_DATA: 2,\n HAVE_FUTURE_DATA: 3,\n HAVE_ENOUGH_DATA: 4\n};\nconst PointerTypes = {\n MOUSE: \"mouse\",\n PEN: \"pen\",\n TOUCH: \"touch\"\n};\nconst AvailabilityStates = {\n UNAVAILABLE: \"unavailable\",\n UNSUPPORTED: \"unsupported\"\n};\nconst StreamTypes = {\n LIVE: \"live\",\n ON_DEMAND: \"on-demand\",\n UNKNOWN: \"unknown\"\n};\nconst VolumeLevels = {\n HIGH: \"high\",\n MEDIUM: \"medium\",\n LOW: \"low\",\n OFF: \"off\"\n};\nconst WebkitPresentationModes = {\n INLINE: \"inline\",\n FULLSCREEN: \"fullscreen\",\n PICTURE_IN_PICTURE: \"picture-in-picture\"\n};\nexport {\n AttributeToStateChangeEventMap,\n AvailabilityStates,\n MediaStateChangeEvents,\n MediaStateReceiverAttributes,\n MediaUIAttributes,\n MediaUIEvents,\n MediaUIProps,\n PointerTypes,\n ReadyStates,\n StateChangeEventToAttributeMap,\n StreamTypes,\n TextTrackKinds,\n TextTrackModes,\n VolumeLevels,\n WebkitPresentationModes\n};\n","function stringifyRenditionList(renditions) {\n return renditions == null ? void 0 : renditions.map(stringifyRendition).join(\" \");\n}\nfunction parseRenditionList(renditions) {\n return renditions == null ? void 0 : renditions.split(/\\s+/).map(parseRendition);\n}\nfunction stringifyRendition(rendition) {\n if (rendition) {\n const { id, width, height } = rendition;\n return [id, width, height].filter((a) => a != null).join(\":\");\n }\n}\nfunction parseRendition(rendition) {\n if (rendition) {\n const [id, width, height] = rendition.split(\":\");\n return { id, width: +width, height: +height };\n }\n}\nfunction stringifyAudioTrackList(audioTracks) {\n return audioTracks == null ? void 0 : audioTracks.map(stringifyAudioTrack).join(\" \");\n}\nfunction parseAudioTrackList(audioTracks) {\n return audioTracks == null ? void 0 : audioTracks.split(/\\s+/).map(parseAudioTrack);\n}\nfunction stringifyAudioTrack(audioTrack) {\n if (audioTrack) {\n const { id, kind, language, label } = audioTrack;\n return [id, kind, language, label].filter((a) => a != null).join(\":\");\n }\n}\nfunction parseAudioTrack(audioTrack) {\n if (audioTrack) {\n const [id, kind, language, label] = audioTrack.split(\":\");\n return {\n id,\n kind,\n language,\n label\n };\n }\n}\nfunction dashedToCamel(word) {\n return word.split(\"-\").map(function(x, i) {\n return (i ? x[0].toUpperCase() : x[0].toLowerCase()) + x.slice(1).toLowerCase();\n }).join(\"\");\n}\nfunction constToCamel(word, upperFirst = false) {\n return word.split(\"_\").map(function(x, i) {\n return (i || upperFirst ? x[0].toUpperCase() : x[0].toLowerCase()) + x.slice(1).toLowerCase();\n }).join(\"\");\n}\nfunction camelCase(name) {\n return name.replace(/[-_]([a-z])/g, ($0, $1) => $1.toUpperCase());\n}\nfunction isValidNumber(x) {\n return typeof x === \"number\" && !Number.isNaN(x) && Number.isFinite(x);\n}\nfunction isNumericString(str) {\n if (typeof str != \"string\")\n return false;\n return !isNaN(str) && !isNaN(parseFloat(str));\n}\nconst delay = (ms) => new Promise((resolve) => setTimeout(resolve, ms));\nconst capitalize = (str) => str && str[0].toUpperCase() + str.slice(1);\nexport {\n camelCase,\n capitalize,\n constToCamel,\n dashedToCamel,\n delay,\n isNumericString,\n isValidNumber,\n parseAudioTrack,\n parseAudioTrackList,\n parseRendition,\n parseRenditionList,\n stringifyAudioTrack,\n stringifyAudioTrackList,\n stringifyRendition,\n stringifyRenditionList\n};\n","import { isValidNumber } from \"./utils.js\";\nconst UnitLabels = [\n {\n singular: \"hour\",\n plural: \"hours\"\n },\n {\n singular: \"minute\",\n plural: \"minutes\"\n },\n {\n singular: \"second\",\n plural: \"seconds\"\n }\n];\nconst toTimeUnitPhrase = (timeUnitValue, unitIndex) => {\n const unitLabel = timeUnitValue === 1 ? UnitLabels[unitIndex].singular : UnitLabels[unitIndex].plural;\n return `${timeUnitValue} ${unitLabel}`;\n};\nconst formatAsTimePhrase = (seconds) => {\n if (!isValidNumber(seconds))\n return \"\";\n const positiveSeconds = Math.abs(seconds);\n const negative = positiveSeconds !== seconds;\n const secondsDateTime = new Date(0, 0, 0, 0, 0, positiveSeconds, 0);\n const timeParts = [\n secondsDateTime.getHours(),\n secondsDateTime.getMinutes(),\n secondsDateTime.getSeconds()\n ];\n const timeString = timeParts.map(\n (timeUnitValue, index) => timeUnitValue && toTimeUnitPhrase(timeUnitValue, index)\n ).filter((x) => x).join(\", \");\n const negativeSuffix = negative ? \" remaining\" : \"\";\n return `${timeString}${negativeSuffix}`;\n};\nfunction formatTime(seconds, guide) {\n let negative = false;\n if (seconds < 0) {\n negative = true;\n seconds = 0 - seconds;\n }\n seconds = seconds < 0 ? 0 : seconds;\n let s = Math.floor(seconds % 60);\n let m = Math.floor(seconds / 60 % 60);\n let h = Math.floor(seconds / 3600);\n const gm = Math.floor(guide / 60 % 60);\n const gh = Math.floor(guide / 3600);\n if (isNaN(seconds) || seconds === Infinity) {\n h = m = s = \"0\";\n }\n h = h > 0 || gh > 0 ? h + \":\" : \"\";\n m = ((h || gm >= 10) && m < 10 ? \"0\" + m : m) + \":\";\n s = s < 10 ? \"0\" + s : s;\n return (negative ? \"-\" : \"\") + h + m + s;\n}\nconst emptyTimeRanges = Object.freeze({\n length: 0,\n start(index) {\n const unsignedIdx = index >>> 0;\n if (unsignedIdx >= this.length) {\n throw new DOMException(\n `Failed to execute 'start' on 'TimeRanges': The index provided (${unsignedIdx}) is greater than or equal to the maximum bound (${this.length}).`\n );\n }\n return 0;\n },\n end(index) {\n const unsignedIdx = index >>> 0;\n if (unsignedIdx >= this.length) {\n throw new DOMException(\n `Failed to execute 'end' on 'TimeRanges': The index provided (${unsignedIdx}) is greater than or equal to the maximum bound (${this.length}).`\n );\n }\n return 0;\n }\n});\nfunction serializeTimeRanges(timeRanges = emptyTimeRanges) {\n return Array.from(timeRanges).map(\n (_, i) => [\n Number(timeRanges.start(i).toFixed(3)),\n Number(timeRanges.end(i).toFixed(3))\n ].join(\":\")\n ).join(\" \");\n}\nexport {\n emptyTimeRanges,\n formatAsTimePhrase,\n formatTime,\n serializeTimeRanges\n};\n","const En = {\n \"Start airplay\": \"Start airplay\",\n \"Stop airplay\": \"Stop airplay\",\n Audio: \"Audio\",\n Captions: \"Captions\",\n \"Enable captions\": \"Enable captions\",\n \"Disable captions\": \"Disable captions\",\n \"Start casting\": \"Start casting\",\n \"Stop casting\": \"Stop casting\",\n \"Enter fullscreen mode\": \"Enter fullscreen mode\",\n \"Exit fullscreen mode\": \"Exit fullscreen mode\",\n Mute: \"Mute\",\n Unmute: \"Unmute\",\n Loop: \"Loop\",\n \"Enter picture in picture mode\": \"Enter picture in picture mode\",\n \"Exit picture in picture mode\": \"Exit picture in picture mode\",\n Play: \"Play\",\n Pause: \"Pause\",\n \"Playback rate\": \"Playback rate\",\n \"Playback rate {playbackRate}\": \"Playback rate {playbackRate}\",\n Quality: \"Quality\",\n \"Seek backward\": \"Seek backward\",\n \"Seek forward\": \"Seek forward\",\n Settings: \"Settings\",\n Auto: \"Auto\",\n \"audio player\": \"audio player\",\n \"video player\": \"video player\",\n volume: \"volume\",\n seek: \"seek\",\n \"closed captions\": \"closed captions\",\n \"current playback rate\": \"current playback rate\",\n \"playback time\": \"playback time\",\n \"media loading\": \"media loading\",\n settings: \"settings\",\n \"audio tracks\": \"audio tracks\",\n quality: \"quality\",\n play: \"play\",\n pause: \"pause\",\n mute: \"mute\",\n unmute: \"unmute\",\n \"chapter: {chapterName}\": \"chapter: {chapterName}\",\n live: \"live\",\n Off: \"Off\",\n \"start airplay\": \"start airplay\",\n \"stop airplay\": \"stop airplay\",\n \"start casting\": \"start casting\",\n \"stop casting\": \"stop casting\",\n \"enter fullscreen mode\": \"enter fullscreen mode\",\n \"exit fullscreen mode\": \"exit fullscreen mode\",\n \"enter picture in picture mode\": \"enter picture in picture mode\",\n \"exit picture in picture mode\": \"exit picture in picture mode\",\n \"seek to live\": \"seek to live\",\n \"playing live\": \"playing live\",\n \"seek back {seekOffset} seconds\": \"seek back {seekOffset} seconds\",\n \"seek forward {seekOffset} seconds\": \"seek forward {seekOffset} seconds\",\n \"Network Error\": \"Network Error\",\n \"Decode Error\": \"Decode Error\",\n \"Source Not Supported\": \"Source Not Supported\",\n \"Encryption Error\": \"Encryption Error\",\n \"A network error caused the media download to fail.\": \"A network error caused the media download to fail.\",\n \"A media error caused playback to be aborted. The media could be corrupt or your browser does not support this format.\": \"A media error caused playback to be aborted. The media could be corrupt or your browser does not support this format.\",\n \"An unsupported error occurred. The server or network failed, or your browser does not support this format.\": \"An unsupported error occurred. The server or network failed, or your browser does not support this format.\",\n \"The media is encrypted and there are no keys to decrypt it.\": \"The media is encrypted and there are no keys to decrypt it.\"\n};\nexport {\n En\n};\n","var _a;\nimport { En } from \"../lang/en.js\";\nconst translations = {\n en: En\n};\nlet currentLang = ((_a = globalThis.navigator) == null ? void 0 : _a.language) || \"en\";\nconst setLanguage = (langCode) => {\n currentLang = langCode;\n};\nconst addTranslation = (lang, languageDictionary) => {\n translations[lang] = languageDictionary;\n};\nconst resolveTranslation = (key) => {\n var _a2, _b, _c;\n const [base] = currentLang.split(\"-\");\n return ((_a2 = translations[currentLang]) == null ? void 0 : _a2[key]) || ((_b = translations[base]) == null ? void 0 : _b[key]) || ((_c = translations.en) == null ? void 0 : _c[key]) || key;\n};\nconst t = (key, vars = {}) => resolveTranslation(key).replace(\n /\\{(\\w+)\\}/g,\n (_, v) => v in vars ? String(vars[v]) : `{${v}}`\n);\nexport {\n addTranslation,\n setLanguage,\n t\n};\n","class EventTarget {\n addEventListener() {\n }\n removeEventListener() {\n }\n dispatchEvent() {\n return true;\n }\n}\nclass Node extends EventTarget {\n}\nclass Element extends Node {\n constructor() {\n super(...arguments);\n this.role = null;\n }\n}\nclass ResizeObserver {\n observe() {\n }\n unobserve() {\n }\n disconnect() {\n }\n}\nconst documentShim = {\n createElement: function() {\n return new globalThisShim.HTMLElement();\n },\n createElementNS: function() {\n return new globalThisShim.HTMLElement();\n },\n addEventListener() {\n },\n removeEventListener() {\n },\n dispatchEvent(_event) {\n return false;\n }\n};\nconst globalThisShim = {\n ResizeObserver,\n document: documentShim,\n Node,\n Element,\n HTMLElement: class HTMLElement extends Element {\n constructor() {\n super(...arguments);\n this.innerHTML = \"\";\n }\n get content() {\n return new globalThisShim.DocumentFragment();\n }\n },\n DocumentFragment: class DocumentFragment extends EventTarget {\n },\n customElements: {\n get: function() {\n },\n define: function() {\n },\n whenDefined: function() {\n }\n },\n localStorage: {\n getItem(_key) {\n return null;\n },\n setItem(_key, _value) {\n },\n removeItem(_key) {\n }\n },\n CustomEvent: function CustomEvent() {\n },\n getComputedStyle: function() {\n },\n navigator: {\n languages: [],\n get userAgent() {\n return \"\";\n }\n },\n matchMedia(media) {\n return {\n matches: false,\n media\n };\n },\n DOMParser: class DOMParser {\n parseFromString(string, _contentType) {\n return {\n body: {\n textContent: string\n }\n };\n }\n }\n};\nconst isServer = \"global\" in globalThis && (globalThis == null ? void 0 : globalThis.global) === globalThis || // node or node-like environments, whether or not there are global polyfills like jsdom\ntypeof window === \"undefined\" || typeof window.customElements === \"undefined\";\nconst isShimmed = Object.keys(globalThisShim).every((key) => key in globalThis);\nconst GlobalThis = isServer && !isShimmed ? globalThisShim : globalThis;\nconst Document = isServer && !isShimmed ? documentShim : globalThis.document;\nexport {\n Document,\n GlobalThis,\n Document as document,\n GlobalThis as globalThis,\n isServer\n};\n","import { globalThis } from \"./server-safe-globals.js\";\nconst callbacksMap = /* @__PURE__ */ new WeakMap();\nconst getCallbacks = (element) => {\n let callbacks = callbacksMap.get(element);\n if (!callbacks)\n callbacksMap.set(element, callbacks = /* @__PURE__ */ new Set());\n return callbacks;\n};\nconst observer = new globalThis.ResizeObserver(\n (entries) => {\n for (const entry of entries) {\n for (const callback of getCallbacks(entry.target)) {\n callback(entry);\n }\n }\n }\n);\nfunction observeResize(element, callback) {\n getCallbacks(element).add(callback);\n observer.observe(element);\n}\nfunction unobserveResize(element, callback) {\n const callbacks = getCallbacks(element);\n callbacks.delete(callback);\n if (!callbacks.size) {\n observer.unobserve(element);\n }\n}\nexport {\n observeResize,\n unobserveResize\n};\n","import { MediaStateReceiverAttributes } from \"../constants.js\";\nfunction namedNodeMapToObject(namedNodeMap) {\n const obj = {};\n for (const attr of namedNodeMap) {\n obj[attr.name] = attr.value;\n }\n return obj;\n}\nfunction getMediaController(host) {\n var _a;\n return (_a = getAttributeMediaController(host)) != null ? _a : closestComposedNode(host, \"media-controller\");\n}\nfunction getAttributeMediaController(host) {\n var _a;\n const { MEDIA_CONTROLLER } = MediaStateReceiverAttributes;\n const mediaControllerId = host.getAttribute(MEDIA_CONTROLLER);\n if (mediaControllerId) {\n return (_a = getDocumentOrShadowRoot(host)) == null ? void 0 : _a.getElementById(\n mediaControllerId\n );\n }\n}\nconst updateIconText = (svg, value, selector = \".value\") => {\n const node = svg.querySelector(selector);\n if (!node)\n return;\n node.textContent = value;\n};\nconst getAllSlotted = (el, name) => {\n const slotSelector = `slot[name=\"${name}\"]`;\n const slot = el.shadowRoot.querySelector(slotSelector);\n if (!slot)\n return [];\n return slot.children;\n};\nconst getSlotted = (el, name) => getAllSlotted(el, name)[0];\nconst containsComposedNode = (rootNode, childNode) => {\n if (!rootNode || !childNode)\n return false;\n if (rootNode == null ? void 0 : rootNode.contains(childNode))\n return true;\n return containsComposedNode(\n rootNode,\n childNode.getRootNode().host\n );\n};\nconst closestComposedNode = (childNode, selector) => {\n if (!childNode)\n return null;\n const closest = childNode.closest(selector);\n if (closest)\n return closest;\n return closestComposedNode(\n childNode.getRootNode().host,\n selector\n );\n};\nfunction getActiveElement(root = document) {\n var _a;\n const activeEl = root == null ? void 0 : root.activeElement;\n if (!activeEl)\n return null;\n return (_a = getActiveElement(activeEl.shadowRoot)) != null ? _a : activeEl;\n}\nfunction getDocumentOrShadowRoot(node) {\n var _a;\n const rootNode = (_a = node == null ? void 0 : node.getRootNode) == null ? void 0 : _a.call(node);\n if (rootNode instanceof ShadowRoot || rootNode instanceof Document) {\n return rootNode;\n }\n return null;\n}\nfunction isElementVisible(element, { depth = 3, checkOpacity = true, checkVisibilityCSS = true } = {}) {\n if (element.checkVisibility) {\n return element.checkVisibility({\n checkOpacity,\n checkVisibilityCSS\n });\n }\n let el = element;\n while (el && depth > 0) {\n const style = getComputedStyle(el);\n if (checkOpacity && style.opacity === \"0\" || checkVisibilityCSS && style.visibility === \"hidden\" || style.display === \"none\") {\n return false;\n }\n el = el.parentElement;\n depth--;\n }\n return true;\n}\nfunction getPointProgressOnLine(x, y, p1, p2) {\n const dx = p2.x - p1.x;\n const dy = p2.y - p1.y;\n const lengthSquared = dx * dx + dy * dy;\n if (lengthSquared === 0)\n return 0;\n const projection = ((x - p1.x) * dx + (y - p1.y) * dy) / lengthSquared;\n return Math.max(0, Math.min(1, projection));\n}\nfunction distance(p1, p2) {\n return Math.sqrt(Math.pow(p2.x - p1.x, 2) + Math.pow(p2.y - p1.y, 2));\n}\nfunction getOrInsertCSSRule(styleParent, selectorText) {\n const cssRule = getCSSRule(styleParent, (st) => st === selectorText);\n if (cssRule)\n return cssRule;\n return insertCSSRule(styleParent, selectorText);\n}\nfunction getCSSRule(styleParent, predicate) {\n var _a, _b;\n let style;\n for (style of (_a = styleParent.querySelectorAll(\"style:not([media])\")) != null ? _a : []) {\n let cssRules;\n try {\n cssRules = (_b = style.sheet) == null ? void 0 : _b.cssRules;\n } catch {\n continue;\n }\n for (const rule of cssRules != null ? cssRules : []) {\n if (predicate(rule.selectorText))\n return rule;\n }\n }\n}\nfunction insertCSSRule(styleParent, selectorText) {\n var _a, _b;\n const styles = (_a = styleParent.querySelectorAll(\"style:not([media])\")) != null ? _a : [];\n const style = styles == null ? void 0 : styles[styles.length - 1];\n if (!(style == null ? void 0 : style.sheet)) {\n console.warn(\n \"Media Chrome: No style sheet found on style tag of\",\n styleParent\n );\n return {\n // @ts-ignore\n style: {\n setProperty: () => {\n },\n removeProperty: () => \"\",\n getPropertyValue: () => \"\"\n }\n };\n }\n style == null ? void 0 : style.sheet.insertRule(`${selectorText}{}`, style.sheet.cssRules.length);\n return (\n /** @type {CSSStyleRule} */\n (_b = style.sheet.cssRules) == null ? void 0 : _b[style.sheet.cssRules.length - 1]\n );\n}\nfunction getNumericAttr(el, attrName, defaultValue = Number.NaN) {\n const attrVal = el.getAttribute(attrName);\n return attrVal != null ? +attrVal : defaultValue;\n}\nfunction setNumericAttr(el, attrName, value) {\n const nextNumericValue = +value;\n if (value == null || Number.isNaN(nextNumericValue)) {\n if (el.hasAttribute(attrName)) {\n el.removeAttribute(attrName);\n }\n return;\n }\n if (getNumericAttr(el, attrName, void 0) === nextNumericValue)\n return;\n el.setAttribute(attrName, `${nextNumericValue}`);\n}\nfunction getBooleanAttr(el, attrName) {\n return el.hasAttribute(attrName);\n}\nfunction setBooleanAttr(el, attrName, value) {\n if (value == null) {\n if (el.hasAttribute(attrName)) {\n el.removeAttribute(attrName);\n }\n return;\n }\n if (getBooleanAttr(el, attrName) == value)\n return;\n el.toggleAttribute(attrName, value);\n}\nfunction getStringAttr(el, attrName, defaultValue = null) {\n var _a;\n return (_a = el.getAttribute(attrName)) != null ? _a : defaultValue;\n}\nfunction setStringAttr(el, attrName, value) {\n if (value == null) {\n if (el.hasAttribute(attrName)) {\n el.removeAttribute(attrName);\n }\n return;\n }\n const nextValue = `${value}`;\n if (getStringAttr(el, attrName, void 0) === nextValue)\n return;\n el.setAttribute(attrName, nextValue);\n}\nexport {\n closestComposedNode,\n containsComposedNode,\n distance,\n getActiveElement,\n getAllSlotted,\n getAttributeMediaController,\n getBooleanAttr,\n getCSSRule,\n getDocumentOrShadowRoot,\n getMediaController,\n getNumericAttr,\n getOrInsertCSSRule,\n getPointProgressOnLine,\n getSlotted,\n getStringAttr,\n insertCSSRule,\n isElementVisible,\n namedNodeMapToObject,\n setBooleanAttr,\n setNumericAttr,\n setStringAttr,\n updateIconText\n};\n","var __accessCheck = (obj, member, msg) => {\n if (!member.has(obj))\n throw TypeError(\"Cannot \" + msg);\n};\nvar __privateGet = (obj, member, getter) => {\n __accessCheck(obj, member, \"read from private field\");\n return getter ? getter.call(obj) : member.get(obj);\n};\nvar __privateAdd = (obj, member, value) => {\n if (member.has(obj))\n throw TypeError(\"Cannot add the same private member more than once\");\n member instanceof WeakSet ? member.add(obj) : member.set(obj, value);\n};\nvar __privateSet = (obj, member, value, setter) => {\n __accessCheck(obj, member, \"write to private field\");\n setter ? setter.call(obj, value) : member.set(obj, value);\n return value;\n};\nvar _mediaController;\nimport {\n MediaUIAttributes,\n MediaUIEvents,\n MediaStateReceiverAttributes,\n PointerTypes\n} from \"./constants.js\";\nimport {\n closestComposedNode,\n getBooleanAttr,\n namedNodeMapToObject,\n setBooleanAttr\n} from \"./utils/element-utils.js\";\nimport { globalThis } from \"./utils/server-safe-globals.js\";\nfunction getTemplateHTML(_attrs) {\n return (\n /*html*/\n `\n <style>\n :host {\n display: var(--media-control-display, var(--media-gesture-receiver-display, inline-block));\n box-sizing: border-box;\n }\n </style>\n `\n );\n}\nclass MediaGestureReceiver extends globalThis.HTMLElement {\n constructor() {\n super();\n __privateAdd(this, _mediaController, void 0);\n if (!this.shadowRoot) {\n this.attachShadow(this.constructor.shadowRootOptions);\n const attrs = namedNodeMapToObject(this.attributes);\n this.shadowRoot.innerHTML = this.constructor.getTemplateHTML(attrs);\n }\n }\n // NOTE: Currently \"baking in\" actions + attrs until we come up with\n // a more robust architecture (CJP)\n static get observedAttributes() {\n return [\n MediaStateReceiverAttributes.MEDIA_CONTROLLER,\n MediaUIAttributes.MEDIA_PAUSED\n ];\n }\n attributeChangedCallback(attrName, oldValue, newValue) {\n var _a, _b, _c, _d, _e;\n if (attrName === MediaStateReceiverAttributes.MEDIA_CONTROLLER) {\n if (oldValue) {\n (_b = (_a = __privateGet(this, _mediaController)) == null ? void 0 : _a.unassociateElement) == null ? void 0 : _b.call(_a, this);\n __privateSet(this, _mediaController, null);\n }\n if (newValue && this.isConnected) {\n __privateSet(this, _mediaController, (_c = this.getRootNode()) == null ? void 0 : _c.getElementById(newValue));\n (_e = (_d = __privateGet(this, _mediaController)) == null ? void 0 : _d.associateElement) == null ? void 0 : _e.call(_d, this);\n }\n }\n }\n connectedCallback() {\n var _a, _b, _c, _d;\n this.tabIndex = -1;\n this.setAttribute(\"aria-hidden\", \"true\");\n __privateSet(this, _mediaController, getMediaControllerEl(this));\n if (this.getAttribute(MediaStateReceiverAttributes.MEDIA_CONTROLLER)) {\n (_b = (_a = __privateGet(this, _mediaController)) == null ? void 0 : _a.associateElement) == null ? void 0 : _b.call(_a, this);\n }\n (_c = __privateGet(this, _mediaController)) == null ? void 0 : _c.addEventListener(\"pointerdown\", this);\n (_d = __privateGet(this, _mediaController)) == null ? void 0 : _d.addEventListener(\"click\", this);\n }\n disconnectedCallback() {\n var _a, _b, _c, _d;\n if (this.getAttribute(MediaStateReceiverAttributes.MEDIA_CONTROLLER)) {\n (_b = (_a = __privateGet(this, _mediaController)) == null ? void 0 : _a.unassociateElement) == null ? void 0 : _b.call(_a, this);\n }\n (_c = __privateGet(this, _mediaController)) == null ? void 0 : _c.removeEventListener(\"pointerdown\", this);\n (_d = __privateGet(this, _mediaController)) == null ? void 0 : _d.removeEventListener(\"click\", this);\n __privateSet(this, _mediaController, null);\n }\n handleEvent(event) {\n var _a;\n const composedTarget = (_a = event.composedPath()) == null ? void 0 : _a[0];\n const allowList = [\"video\", \"media-controller\"];\n if (!allowList.includes(composedTarget == null ? void 0 : composedTarget.localName))\n return;\n if (event.type === \"pointerdown\") {\n this._pointerType = event.pointerType;\n } else if (event.type === \"click\") {\n const { clientX, clientY } = event;\n const { left, top, width, height } = this.getBoundingClientRect();\n const x = clientX - left;\n const y = clientY - top;\n if (x < 0 || y < 0 || x > width || y > height || // In case this element has no dimensions (or display: none) return.\n width === 0 && height === 0) {\n return;\n }\n const pointerType = this._pointerType || \"mouse\";\n this._pointerType = void 0;\n if (pointerType === PointerTypes.TOUCH) {\n this.handleTap(event);\n return;\n } else if (pointerType === PointerTypes.MOUSE || pointerType === PointerTypes.PEN) {\n this.handleMouseClick(event);\n return;\n }\n }\n }\n /**\n * @type {boolean} Is the media paused\n */\n get mediaPaused() {\n return getBooleanAttr(this, MediaUIAttributes.MEDIA_PAUSED);\n }\n set mediaPaused(value) {\n setBooleanAttr(this, MediaUIAttributes.MEDIA_PAUSED, value);\n }\n // NOTE: Currently \"baking in\" actions + attrs until we come up with\n // a more robust architecture (CJP)\n /**\n * @abstract\n * @argument {Event} e\n */\n handleTap(e) {\n }\n // eslint-disable-line\n // eslint-disable-next-line\n handleMouseClick(e) {\n const eventName = this.mediaPaused ? MediaUIEvents.MEDIA_PLAY_REQUEST : MediaUIEvents.MEDIA_PAUSE_REQUEST;\n this.dispatchEvent(\n new globalThis.CustomEvent(eventName, { composed: true, bubbles: true })\n );\n }\n}\n_mediaController = new WeakMap();\nMediaGestureReceiver.shadowRootOptions = { mode: \"open\" };\nMediaGestureReceiver.getTemplateHTML = getTemplateHTML;\nfunction getMediaControllerEl(controlEl) {\n var _a;\n const mediaControllerId = controlEl.getAttribute(\n MediaStateReceiverAttributes.MEDIA_CONTROLLER\n );\n if (mediaControllerId) {\n return (_a = controlEl.getRootNode()) == null ? void 0 : _a.getElementById(mediaControllerId);\n }\n return closestComposedNode(controlEl, \"media-controller\");\n}\nif (!globalThis.customElements.get(\"media-gesture-receiver\")) {\n globalThis.customElements.define(\n \"media-gesture-receiver\",\n MediaGestureReceiver\n );\n}\nvar media_gesture_receiver_default = MediaGestureReceiver;\nexport {\n media_gesture_receiver_default as default\n};\n","var __accessCheck = (obj, member, msg) => {\n if (!member.has(obj))\n throw TypeError(\"Cannot \" + msg);\n};\nvar __privateGet = (obj, member, getter) => {\n __accessCheck(obj, member, \"read from private field\");\n return getter ? getter.call(obj) : member.get(obj);\n};\nvar __privateAdd = (obj, member, value) => {\n if (member.has(obj))\n throw TypeError(\"Cannot add the same private member more than once\");\n member instanceof WeakSet ? member.add(obj) : member.set(obj, value);\n};\nvar __privateSet = (obj, member, value, setter) => {\n __accessCheck(obj, member, \"write to private field\");\n setter ? setter.call(obj, value) : member.set(obj, value);\n return value;\n};\nvar __privateMethod = (obj, member, method) => {\n __accessCheck(obj, member, \"access private method\");\n return method;\n};\nvar _pointerDownTimeStamp, _currentMedia, _inactiveTimeout, _autohide, _mutationObserver, _handleMutation, handleMutation_fn, _isResizePending, _handleResize, _handlePointerMove, handlePointerMove_fn, _handlePointerUp, handlePointerUp_fn, _setInactive, setInactive_fn, _setActive, setActive_fn, _scheduleInactive, scheduleInactive_fn;\nimport { globalThis } from \"./utils/server-safe-globals.js\";\nimport { MediaUIAttributes, MediaStateChangeEvents } from \"./constants.js\";\nimport { observeResize, unobserveResize } from \"./utils/resize-observer.js\";\nimport \"./media-gesture-receiver.js\";\nimport { t } from \"./utils/i18n.js\";\nimport {\n getBooleanAttr,\n getStringAttr,\n namedNodeMapToObject,\n setBooleanAttr,\n setStringAttr\n} from \"./utils/element-utils.js\";\nimport MediaGestureReceiver from \"./media-gesture-receiver.js\";\nconst Attributes = {\n AUDIO: \"audio\",\n AUTOHIDE: \"autohide\",\n BREAKPOINTS: \"breakpoints\",\n GESTURES_DISABLED: \"gesturesdisabled\",\n KEYBOARD_CONTROL: \"keyboardcontrol\",\n NO_AUTOHIDE: \"noautohide\",\n USER_INACTIVE: \"userinactive\",\n AUTOHIDE_OVER_CONTROLS: \"autohideovercontrols\"\n};\nfunction getTemplateHTML(_attrs) {\n return (\n /*html*/\n `\n <style>\n ${/*\n * outline on media is turned off because it is allowed to get focus to faciliate hotkeys.\n * However, on keyboard interactions, the focus outline is shown,\n * which is particularly noticeable when going fullscreen via hotkeys.\n */\n \"\"}\n :host([${MediaUIAttributes.MEDIA_IS_FULLSCREEN}]) ::slotted([slot=media]) {\n outline: none;\n }\n\n :host {\n box-sizing: border-box;\n position: relative;\n display: inline-block;\n line-height: 0;\n background-color: var(--media-background-color, #000);\n overflow: hidden;\n }\n\n :host(:not([${Attributes.AUDIO}])) [part~=layer]:not([part~=media-layer]) {\n position: absolute;\n top: 0;\n left: 0;\n bottom: 0;\n right: 0;\n display: flex;\n flex-flow: column nowrap;\n align-items: start;\n pointer-events: none;\n background: none;\n }\n\n slot[name=media] {\n display: var(--media-slot-display, contents);\n }\n\n ${/*\n * when in audio mode, hide the slotted media element by default\n */\n \"\"}\n :host([${Attributes.AUDIO}]) slot[name=media] {\n display: var(--media-slot-display, none);\n }\n\n ${/*\n * when in audio mode, hide the gesture-layer which causes media-controller to be taller than the control bar\n */\n \"\"}\n :host([${Attributes.AUDIO}]) [part~=layer][part~=gesture-layer] {\n height: 0;\n display: block;\n }\n\n ${/*\n * if gestures are disabled, don't accept pointer-events\n */\n \"\"}\n :host(:not([${Attributes.AUDIO}])[${Attributes.GESTURES_DISABLED}]) ::slotted([slot=gestures-chrome]),\n :host(:not([${Attributes.AUDIO}])[${Attributes.GESTURES_DISABLED}]) media-gesture-receiver[slot=gestures-chrome] {\n display: none;\n }\n\n ${/*\n * any slotted element that isn't a poster or media slot should be pointer-events auto\n * we'll want to add here any slotted elements that shouldn't get pointer-events by default when slotted\n */\n \"\"}\n ::slotted(:not([slot=media]):not([slot=poster]):not(media-loading-indicator):not([role=dialog]):not([hidden])) {\n pointer-events: auto;\n }\n\n :host(:not([${Attributes.AUDIO}])) *[part~=layer][part~=centered-layer] {\n align-items: center;\n justify-content: center;\n }\n\n :host(:not([${Attributes.AUDIO}])) ::slotted(media-gesture-receiver[slot=gestures-chrome]),\n :host(:not([${Attributes.AUDIO}])) media-gesture-receiver[slot=gestures-chrome] {\n align-self: stretch;\n flex-grow: 1;\n }\n\n slot[name=middle-chrome] {\n display: inline;\n flex-grow: 1;\n pointer-events: none;\n background: none;\n }\n\n ${/* Position the media and poster elements to fill the container */\n \"\"}\n ::slotted([slot=media]),\n ::slotted([slot=poster]) {\n width: 100%;\n height: 100%;\n }\n\n ${/* Video specific styles */\n \"\"}\n :host(:not([${Attributes.AUDIO}])) .spacer {\n flex-grow: 1;\n }\n\n ${/* Safari needs this to actually make the element fill the window */\n \"\"}\n :host(:-webkit-full-screen) {\n ${/* Needs to use !important otherwise easy to break */\n \"\"}\n width: 100% !important;\n height: 100% !important;\n }\n\n ${/* Only add these if auto hide is not disabled */\n \"\"}\n ::slotted(:not([slot=media]):not([slot=poster]):not([${Attributes.NO_AUTOHIDE}]):not([hidden]):not([role=dialog])) {\n opacity: 1;\n transition: var(--media-control-transition-in, opacity 0.25s);\n }\n\n ${/* Hide controls when inactive, not paused, not audio and auto hide not disabled */\n \"\"}\n :host([${Attributes.USER_INACTIVE}]:not([${MediaUIAttributes.MEDIA_PAUSED}]):not([${MediaUIAttributes.MEDIA_IS_AIRPLAYING}]):not([${MediaUIAttributes.MEDIA_IS_CASTING}]):not([${Attributes.AUDIO}])) ::slotted(:not([slot=media]):not([slot=poster]):not([${Attributes.NO_AUTOHIDE}]):not([role=dialog])) {\n opacity: 0;\n transition: var(--media-control-transition-out, opacity 1s);\n }\n\n :host([${Attributes.USER_INACTIVE}]:not([${Attributes.NO_AUTOHIDE}]):not([${MediaUIAttributes.MEDIA_PAUSED}]):not([${MediaUIAttributes.MEDIA_IS_CASTING}]):not([${Attributes.AUDIO}])) ::slotted([slot=media]) {\n cursor: none;\n }\n\n :host([${Attributes.USER_INACTIVE}][${Attributes.AUTOHIDE_OVER_CONTROLS}]:not([${Attributes.NO_AUTOHIDE}]):not([${MediaUIAttributes.MEDIA_PAUSED}]):not([${MediaUIAttributes.MEDIA_IS_CASTING}]):not([${Attributes.AUDIO}])) * {\n --media-cursor: none;\n cursor: none;\n }\n\n\n ::slotted(media-control-bar) {\n align-self: stretch;\n }\n\n ${/* ::slotted([slot=poster]) doesn't work for slot fallback content so hide parent slot instead */\n \"\"}\n :host(:not([${Attributes.AUDIO}])[${MediaUIAttributes.MEDIA_HAS_PLAYED}]) slot[name=poster] {\n display: none;\n }\n\n ::slotted([role=dialog]) {\n width: 100%;\n height: 100%;\n align-self: center;\n }\n\n ::slotted([role=menu]) {\n align-self: end;\n }\n </style>\n\n <slot name=\"media\" part=\"layer media-layer\"></slot>\n <slot name=\"poster\" part=\"layer poster-layer\"></slot>\n <slot name=\"gestures-chrome\" part=\"layer gesture-layer\">\n <media-gesture-receiver slot=\"gestures-chrome\">\n <template shadowrootmode=\"${MediaGestureReceiver.shadowRootOptions.mode}\">\n ${MediaGestureReceiver.getTemplateHTML({})}\n </template>\n </media-gesture-receiver>\n </slot>\n <span part=\"layer vertical-layer\">\n <slot name=\"top-chrome\" part=\"top chrome\"></slot>\n <slot name=\"middle-chrome\" part=\"middle chrome\"></slot>\n <slot name=\"centered-chrome\" part=\"layer centered-layer center centered chrome\"></slot>\n ${/* default, effectively \"bottom-chrome\" */\n \"\"}\n <slot part=\"bottom chrome\"></slot>\n </span>\n <slot name=\"dialog\" part=\"layer dialog-layer\"></slot>\n `\n );\n}\nconst MEDIA_UI_ATTRIBUTE_NAMES = Object.values(MediaUIAttributes);\nconst defaultBreakpoints = \"sm:384 md:576 lg:768 xl:960\";\nfunction resizeCallback(entry) {\n setBreakpoints(entry.target, entry.contentRect.width);\n}\nfunction setBreakpoints(container, width) {\n var _a;\n if (!container.isConnected)\n return;\n const breakpoints = (_a = container.getAttribute(Attributes.BREAKPOINTS)) != null ? _a : defaultBreakpoints;\n const ranges = createBreakpointMap(breakpoints);\n const activeBreakpoints = getBreakpoints(ranges, width);\n let changed = false;\n Object.keys(ranges).forEach((name) => {\n if (activeBreakpoints.includes(name)) {\n if (!container.hasAttribute(`breakpoint${name}`)) {\n container.setAttribute(`breakpoint${name}`, \"\");\n changed = true;\n }\n return;\n }\n if (container.hasAttribute(`breakpoint${name}`)) {\n container.removeAttribute(`breakpoint${name}`);\n changed = true;\n }\n });\n if (changed) {\n const evt = new CustomEvent(MediaStateChangeEvents.BREAKPOINTS_CHANGE, {\n detail: activeBreakpoints\n });\n container.dispatchEvent(evt);\n }\n if (!container.breakpointsComputed) {\n container.breakpointsComputed = true;\n container.dispatchEvent(\n new CustomEvent(MediaStateChangeEvents.BREAKPOINTS_COMPUTED, {\n bubbles: true,\n composed: true\n })\n );\n }\n}\nfunction createBreakpointMap(breakpoints) {\n const pairs = breakpoints.split(/\\s+/);\n return Object.fromEntries(pairs.map((pair) => pair.split(\":\")));\n}\nfunction getBreakpoints(breakpoints, width) {\n return Object.keys(breakpoints).filter((name) => {\n return width >= parseInt(breakpoints[name]);\n });\n}\nclass MediaContainer extends globalThis.HTMLElement {\n constructor() {\n super();\n __privateAdd(this, _handleMutation);\n __privateAdd(this, _handlePointerMove);\n __privateAdd(this, _handlePointerUp);\n __privateAdd(this, _setInactive);\n __privateAdd(this, _setActive);\n __privateAdd(this, _scheduleInactive);\n __privateAdd(this, _pointerDownTimeStamp, 0);\n __privateAdd(this, _currentMedia, null);\n __privateAdd(this, _inactiveTimeout, null);\n __privateAdd(this, _autohide, void 0);\n this.breakpointsComputed = false;\n __privateAdd(this, _mutationObserver, new MutationObserver(__privateMethod(this, _handleMutation, handleMutation_fn).bind(this)));\n __privateAdd(this, _isResizePending, false);\n __privateAdd(this, _handleResize, (entry) => {\n if (__privateGet(this, _isResizePending))\n return;\n setTimeout(() => {\n resizeCallback(entry);\n __privateSet(this, _isResizePending, false);\n }, 0);\n __privateSet(this, _isResizePending, true);\n });\n if (!this.shadowRoot) {\n this.attachShadow(this.constructor.shadowRootOptions);\n const attrs = namedNodeMapToObject(this.attributes);\n const html = this.constructor.getTemplateHTML(attrs);\n this.shadowRoot.setHTMLUnsafe ? this.shadowRoot.setHTMLUnsafe(html) : this.shadowRoot.innerHTML = html;\n }\n const chainedSlot = this.querySelector(\n \":scope > slot[slot=media]\"\n );\n if (chainedSlot) {\n chainedSlot.addEventListener(\"slotchange\", () => {\n const slotEls = chainedSlot.assignedElements({ flatten: true });\n if (!slotEls.length) {\n if (__privateGet(this, _currentMedia)) {\n this.mediaUnsetCallback(__privateGet(this, _currentMedia));\n }\n return;\n }\n this.handleMediaUpdated(this.media);\n });\n }\n }\n static get observedAttributes() {\n return [Attributes.AUTOHIDE, Attributes.GESTURES_DISABLED].concat(MEDIA_UI_ATTRIBUTE_NAMES).filter(\n (name) => ![\n MediaUIAttributes.MEDIA_RENDITION_LIST,\n MediaUIAttributes.MEDIA_AUDIO_TRACK_LIST,\n MediaUIAttributes.MEDIA_CHAPTERS_CUES,\n MediaUIAttributes.MEDIA_WIDTH,\n MediaUIAttributes.MEDIA_HEIGHT,\n MediaUIAttributes.MEDIA_ERROR,\n MediaUIAttributes.MEDIA_ERROR_MESSAGE\n ].includes(name)\n );\n }\n // Could share this code with media-chrome-html-element instead\n attributeChangedCallback(attrName, _oldValue, newValue) {\n if (attrName.toLowerCase() == Attributes.AUTOHIDE) {\n this.autohide = newValue;\n }\n }\n // First direct child with slot=media, or null\n get media() {\n let media = this.querySelector(\":scope > [slot=media]\");\n if ((media == null ? void 0 : media.nodeName) == \"SLOT\")\n media = media.assignedElements({ flatten: true })[0];\n return media;\n }\n async handleMediaUpdated(media) {\n if (!media)\n return;\n __privateSet(this, _currentMedia, media);\n if (media.localName.includes(\"-\")) {\n await globalThis.customElements.whenDefined(media.localName);\n }\n this.mediaSetCallback(media);\n }\n connectedCallback() {\n var _a;\n __privateGet(this, _mutationObserver).observe(this, { childList: true, subtree: true });\n observeResize(this, __privateGet(this, _handleResize));\n const isAudioChrome = this.getAttribute(Attributes.AUDIO) != null;\n const label = isAudioChrome ? t(\"audio player\") : t(\"video player\");\n this.setAttribute(\"role\", \"region\");\n this.setAttribute(\"aria-label\", label);\n this.handleMediaUpdated(this.media);\n this.setAttribute(Attributes.USER_INACTIVE, \"\");\n setBreakpoints(this, this.getBoundingClientRect().width);\n this.addEventListener(\"pointerdown\", this);\n this.addEventListener(\"pointermove\", this);\n this.addEventListener(\"pointerup\", this);\n this.addEventListener(\"mouseleave\", this);\n this.addEventListener(\"keyup\", this);\n (_a = globalThis.window) == null ? void 0 : _a.addEventListener(\"mouseup\", this);\n }\n disconnectedCallback() {\n var _a;\n __privateGet(this, _mutationObserver).disconnect();\n unobserveResize(this, __privateGet(this, _handleResize));\n if (this.media) {\n this.mediaUnsetCallback(this.media);\n }\n (_a = globalThis.window) == null ? void 0 : _a.removeEventListener(\"mouseup\", this);\n }\n /**\n * @abstract\n */\n mediaSetCallback(_media) {\n }\n mediaUnsetCallback(_media) {\n __privateSet(this, _currentMedia, null);\n }\n handleEvent(event) {\n switch (event.type) {\n case \"pointerdown\":\n __privateSet(this, _pointerDownTimeStamp, event.timeStamp);\n break;\n case \"pointermove\":\n __privateMethod(this, _handlePointerMove, handlePointerMove_fn).call(this, event);\n break;\n case \"pointerup\":\n __privateMethod(this, _handlePointerUp, handlePointerUp_fn).call(this, event);\n break;\n case \"mouseleave\":\n __privateMethod(this, _setInactive, setInactive_fn).call(this);\n break;\n case \"mouseup\":\n this.removeAttribute(Attributes.KEYBOARD_CONTROL);\n break;\n case \"keyup\":\n __privateMethod(this, _scheduleInactive, scheduleInactive_fn).call(this);\n this.setAttribute(Attributes.KEYBOARD_CONTROL, \"\");\n break;\n }\n }\n set autohide(seconds) {\n const parsedSeconds = Number(seconds);\n __privateSet(this, _autohide, isNaN(parsedSeconds) ? 0 : parsedSeconds);\n }\n get autohide() {\n return (__privateGet(this, _autohide) === void 0 ? 2 : __privateGet(this, _autohide)).toString();\n }\n get breakpoints() {\n return getStringAttr(this, Attributes.BREAKPOINTS);\n }\n set breakpoints(value) {\n setStringAttr(this, Attributes.BREAKPOINTS, value);\n }\n get audio() {\n return getBooleanAttr(this, Attributes.AUDIO);\n }\n set audio(value) {\n setBooleanAttr(this, Attributes.AUDIO, value);\n }\n get gesturesDisabled() {\n return getBooleanAttr(this, Attributes.GESTURES_DISABLED);\n }\n set gesturesDisabled(value) {\n setBooleanAttr(this, Attributes.GESTURES_DISABLED, value);\n }\n get keyboardControl() {\n return getBooleanAttr(this, Attributes.KEYBOARD_CONTROL);\n }\n set keyboardControl(value) {\n setBooleanAttr(this, Attributes.KEYBOARD_CONTROL, value);\n }\n get noAutohide() {\n return getBooleanAttr(this, Attributes.NO_AUTOHIDE);\n }\n set noAutohide(value) {\n setBooleanAttr(this, Attributes.NO_AUTOHIDE, value);\n }\n get autohideOverControls() {\n return getBooleanAttr(this, Attributes.AUTOHIDE_OVER_CONTROLS);\n }\n set autohideOverControls(value) {\n setBooleanAttr(this, Attributes.AUTOHIDE_OVER_CONTROLS, value);\n }\n get userInteractive() {\n return getBooleanAttr(this, Attributes.USER_INACTIVE);\n }\n set userInteractive(value) {\n setBooleanAttr(this, Attributes.USER_INACTIVE, value);\n }\n}\n_pointerDownTimeStamp = new WeakMap();\n_currentMedia = new WeakMap();\n_inactiveTimeout = new WeakMap();\n_autohide = new WeakMap();\n_mutationObserver = new WeakMap();\n_handleMutation = new WeakSet();\nhandleMutation_fn = function(mutationsList) {\n const media = this.media;\n for (const mutation of mutationsList) {\n if (mutation.type !== \"childList\")\n continue;\n const removedNodes = mutation.removedNodes;\n for (const node of removedNodes) {\n if (node.slot != \"media\" || mutation.target != this)\n continue;\n let previousSibling = mutation.previousSibling && mutation.previousSibling.previousElementSibling;\n if (!previousSibling || !media) {\n this.mediaUnsetCallback(node);\n } else {\n let wasFirst = previousSibling.slot !== \"media\";\n while ((previousSibling = previousSibling.previousSibling) !== null) {\n if (previousSibling.slot == \"media\")\n wasFirst = false;\n }\n if (wasFirst)\n this.mediaUnsetCallback(node);\n }\n }\n if (media) {\n for (const node of mutation.addedNodes) {\n if (node === media)\n this.handleMediaUpdated(media);\n }\n }\n }\n};\n_isResizePending = new WeakMap();\n_handleResize = new WeakMap();\n_handlePointerMove = new WeakSet();\nhandlePointerMove_fn = function(event) {\n if (event.pointerType !== \"mouse\") {\n const MAX_TAP_DURATION = 250;\n if (event.timeStamp - __privateGet(this, _pointerDownTimeStamp) < MAX_TAP_DURATION)\n return;\n }\n __privateMethod(this, _setActive, setActive_fn).call(this);\n clearTimeout(__privateGet(this, _inactiveTimeout));\n const autohideOverControls = this.hasAttribute(\n Attributes.AUTOHIDE_OVER_CONTROLS\n );\n if ([this, this.media].includes(event.target) || autohideOverControls) {\n __privateMethod(this, _scheduleInactive, scheduleInactive_fn).call(this);\n }\n};\n_handlePointerUp = new WeakSet();\nhandlePointerUp_fn = function(event) {\n if (event.pointerType === \"touch\") {\n const controlsVisible = !this.hasAttribute(Attributes.USER_INACTIVE);\n if ([this, this.media].includes(event.target) && controlsVisible) {\n __privateMethod(this, _setInactive, setInactive_fn).call(this);\n } else {\n __privateMethod(this, _scheduleInactive, scheduleInactive_fn).call(this);\n }\n } else if (event.composedPath().some(\n (el) => [\"media-play-button\", \"media-fullscreen-button\"].includes(\n el == null ? void 0 : el.localName\n )\n )) {\n __privateMethod(this, _scheduleInactive, scheduleInactive_fn).call(this);\n }\n};\n_setInactive = new WeakSet();\nsetInactive_fn = function() {\n if (__privateGet(this, _autohide) < 0)\n return;\n if (this.hasAttribute(Attributes.USER_INACTIVE))\n return;\n this.setAttribute(Attributes.USER_INACTIVE, \"\");\n const evt = new globalThis.CustomEvent(\n MediaStateChangeEvents.USER_INACTIVE_CHANGE,\n { composed: true, bubbles: true, detail: true }\n );\n this.dispatchEvent(evt);\n};\n_setActive = new WeakSet();\nsetActive_fn = function() {\n if (!this.hasAttribute(Attributes.USER_INACTIVE))\n return;\n this.removeAttribute(Attributes.USER_INACTIVE);\n const evt = new globalThis.CustomEvent(\n MediaStateChangeEvents.USER_INACTIVE_CHANGE,\n { composed: true, bubbles: true, detail: false }\n );\n this.dispatchEvent(evt);\n};\n_scheduleInactive = new WeakSet();\nscheduleInactive_fn = function() {\n __privateMethod(this, _setActive, setActive_fn).call(this);\n clearTimeout(__privateGet(this, _inactiveTimeout));\n const autohide = parseInt(this.autohide);\n if (autohide < 0)\n return;\n __privateSet(this, _inactiveTimeout, setTimeout(() => {\n __privateMethod(this, _setInactive, setInactive_fn).call(this);\n }, autohide * 1e3));\n};\nMediaContainer.shadowRootOptions = { mode: \"open\" };\nMediaContainer.getTemplateHTML = getTemplateHTML;\nif (!globalThis.customElements.get(\"media-container\")) {\n globalThis.customElements.define(\"media-container\", MediaContainer);\n}\nvar media_container_default = MediaContainer;\nexport {\n Attributes,\n MediaContainer,\n media_container_default as default\n};\n","var __accessCheck = (obj, member, msg) => {\n if (!member.has(obj))\n throw TypeError(\"Cannot \" + msg);\n};\nvar __privateGet = (obj, member, getter) => {\n __accessCheck(obj, member, \"read from private field\");\n return getter ? getter.call(obj) : member.get(obj);\n};\nvar __privateAdd = (obj, member, value) => {\n if (member.has(obj))\n throw TypeError(\"Cannot add the same private member more than once\");\n member instanceof WeakSet ? member.add(obj) : member.set(obj, value);\n};\nvar __privateSet = (obj, member, value, setter) => {\n __accessCheck(obj, member, \"write to private field\");\n setter ? setter.call(obj, value) : member.set(obj, value);\n return value;\n};\nvar _el, _attr, _defaultSet, _tokenSet, _tokens, tokens_get;\nclass AttributeTokenList {\n constructor(el, attr, { defaultValue } = { defaultValue: void 0 }) {\n __privateAdd(this, _tokens);\n __privateAdd(this, _el, void 0);\n __privateAdd(this, _attr, void 0);\n __privateAdd(this, _defaultSet, void 0);\n __privateAdd(this, _tokenSet, /* @__PURE__ */ new Set());\n __privateSet(this, _el, el);\n __privateSet(this, _attr, attr);\n __privateSet(this, _defaultSet, new Set(defaultValue));\n }\n [Symbol.iterator]() {\n return __privateGet(this, _tokens, tokens_get).values();\n }\n get length() {\n return __privateGet(this, _tokens, tokens_get).size;\n }\n get value() {\n var _a;\n return (_a = [...__privateGet(this, _tokens, tokens_get)].join(\" \")) != null ? _a : \"\";\n }\n set value(val) {\n var _a;\n if (val === this.value)\n return;\n __privateSet(this, _tokenSet, /* @__PURE__ */ new Set());\n this.add(...(_a = val == null ? void 0 : val.split(\" \")) != null ? _a : []);\n }\n toString() {\n return this.value;\n }\n item(index) {\n return [...__privateGet(this, _tokens, tokens_get)][index];\n }\n values() {\n return __privateGet(this, _tokens, tokens_get).values();\n }\n forEach(callback, thisArg) {\n __privateGet(this, _tokens, tokens_get).forEach(callback, thisArg);\n }\n add(...tokens) {\n var _a, _b;\n tokens.forEach((t) => __privateGet(this, _tokenSet).add(t));\n if (this.value === \"\" && !((_a = __privateGet(this, _el)) == null ? void 0 : _a.hasAttribute(`${__privateGet(this, _attr)}`))) {\n return;\n }\n (_b = __privateGet(this, _el)) == null ? void 0 : _b.setAttribute(`${__privateGet(this, _attr)}`, `${this.value}`);\n }\n remove(...tokens) {\n var _a;\n tokens.forEach((t) => __privateGet(this, _tokenSet).delete(t));\n (_a = __privateGet(this, _el)) == null ? void 0 : _a.setAttribute(`${__privateGet(this, _attr)}`, `${this.value}`);\n }\n contains(token) {\n return __privateGet(this, _tokens, tokens_get).has(token);\n }\n toggle(token, force) {\n if (typeof force !== \"undefined\") {\n if (force) {\n this.add(token);\n return true;\n } else {\n this.remove(token);\n return false;\n }\n }\n if (this.contains(token)) {\n this.remove(token);\n return false;\n }\n this.add(token);\n return true;\n }\n replace(oldToken, newToken) {\n this.remove(oldToken);\n this.add(newToken);\n return oldToken === newToken;\n }\n}\n_el = new WeakMap();\n_attr = new WeakMap();\n_defaultSet = new WeakMap();\n_tokenSet = new WeakMap();\n_tokens = new WeakSet();\ntokens_get = function() {\n return __privateGet(this, _tokenSet).size ? __privateGet(this, _tokenSet) : __privateGet(this, _defaultSet);\n};\nexport {\n AttributeTokenList\n};\n","import { MediaUIAttributes, TextTrackKinds } from \"../constants.js\";\nconst splitTextTracksStr = (textTracksStr = \"\") => textTracksStr.split(/\\s+/);\nconst parseTextTrackStr = (textTrackStr = \"\") => {\n const [kind, language, encodedLabel] = textTrackStr.split(\":\");\n const label = encodedLabel ? decodeURIComponent(encodedLabel) : void 0;\n return {\n kind: kind === \"cc\" ? TextTrackKinds.CAPTIONS : TextTrackKinds.SUBTITLES,\n language,\n label\n };\n};\nconst parseTextTracksStr = (textTracksStr = \"\", textTrackLikeObj = {}) => {\n return splitTextTracksStr(textTracksStr).map((textTrackStr) => {\n const textTrackObj = parseTextTrackStr(textTrackStr);\n return {\n ...textTrackLikeObj,\n ...textTrackObj\n };\n });\n};\nconst parseTracks = (trackOrTracks) => {\n if (!trackOrTracks)\n return [];\n if (Array.isArray(trackOrTracks)) {\n return trackOrTracks.map((trackObjOrStr) => {\n if (typeof trackObjOrStr === \"string\") {\n return parseTextTrackStr(trackObjOrStr);\n }\n return trackObjOrStr;\n });\n }\n if (typeof trackOrTracks === \"string\") {\n return parseTextTracksStr(trackOrTracks);\n }\n return [trackOrTracks];\n};\nconst formatTextTrackObj = ({ kind, label, language } = { kind: \"subtitles\" }) => {\n if (!label)\n return language;\n return `${kind === \"captions\" ? \"cc\" : \"sb\"}:${language}:${encodeURIComponent(\n label\n )}`;\n};\nconst stringifyTextTrackList = (textTracks = []) => {\n return Array.prototype.map.call(textTracks, formatTextTrackObj).join(\" \");\n};\nconst isMatchingPropOf = (key, value) => (obj) => obj[key] === value;\nconst textTrackObjAsPred = (filterObj) => {\n const preds = Object.entries(filterObj).map(([key, value]) => {\n return isMatchingPropOf(key, value);\n });\n return (textTrack) => preds.every((pred) => pred(textTrack));\n};\nconst updateTracksModeTo = (mode, tracks = [], tracksToUpdate = []) => {\n const preds = parseTracks(tracksToUpdate).map(textTrackObjAsPred);\n const isTrackToUpdate = (textTrack) => {\n return preds.some((pred) => pred(textTrack));\n };\n Array.from(tracks).filter(isTrackToUpdate).forEach((textTrack) => {\n textTrack.mode = mode;\n });\n};\nconst getTextTracksList = (media, filterPredOrObj = () => true) => {\n if (!(media == null ? void 0 : media.textTracks))\n return [];\n const filterPred = typeof filterPredOrObj === \"function\" ? filterPredOrObj : textTrackObjAsPred(filterPredOrObj);\n return Array.from(media.textTracks).filter(filterPred);\n};\nconst areSubsOn = (el) => {\n var _a;\n const showingSubtitles = !!((_a = el.mediaSubtitlesShowing) == null ? void 0 : _a.length) || el.hasAttribute(MediaUIAttributes.MEDIA_SUBTITLES_SHOWING);\n return showingSubtitles;\n};\nexport {\n areSubsOn,\n formatTextTrackObj,\n getTextTracksList,\n isMatchingPropOf,\n parseTextTrackStr,\n parseTextTracksStr,\n parseTracks,\n splitTextTracksStr,\n stringifyTextTrackList,\n textTrackObjAsPred,\n updateTracksModeTo\n};\n","import { WebkitPresentationModes } from \"../constants.js\";\nimport { containsComposedNode } from \"./element-utils.js\";\nimport { document } from \"./server-safe-globals.js\";\nconst enterFullscreen = (stateOwners) => {\n var _a;\n const { media, fullscreenElement } = stateOwners;\n try {\n const enterFullscreenKey = fullscreenElement && \"requestFullscreen\" in fullscreenElement ? \"requestFullscreen\" : fullscreenElement && \"webkitRequestFullScreen\" in fullscreenElement ? \"webkitRequestFullScreen\" : void 0;\n if (enterFullscreenKey) {\n const maybePromise = (_a = fullscreenElement[enterFullscreenKey]) == null ? void 0 : _a.call(fullscreenElement);\n if (maybePromise instanceof Promise) {\n return maybePromise.catch(() => {\n });\n }\n } else if (media == null ? void 0 : media.webkitEnterFullscreen) {\n media.webkitEnterFullscreen();\n } else if (media == null ? void 0 : media.requestFullscreen) {\n media.requestFullscreen();\n }\n } catch (e) {\n console.error(e);\n }\n};\nconst exitFullscreenKey = \"exitFullscreen\" in document ? \"exitFullscreen\" : \"webkitExitFullscreen\" in document ? \"webkitExitFullscreen\" : \"webkitCancelFullScreen\" in document ? \"webkitCancelFullScreen\" : void 0;\nconst exitFullscreen = (stateOwners) => {\n var _a;\n const { documentElement } = stateOwners;\n if (exitFullscreenKey) {\n const maybePromise = (_a = documentElement == null ? void 0 : documentElement[exitFullscreenKey]) == null ? void 0 : _a.call(documentElement);\n if (maybePromise instanceof Promise) {\n return maybePromise.catch(() => {\n });\n }\n }\n};\nconst fullscreenElementKey = \"fullscreenElement\" in document ? \"fullscreenElement\" : \"webkitFullscreenElement\" in document ? \"webkitFullscreenElement\" : void 0;\nconst getFullscreenElement = (stateOwners) => {\n const { documentElement, media } = stateOwners;\n const docFullscreenElement = documentElement == null ? void 0 : documentElement[fullscreenElementKey];\n if (!docFullscreenElement && \"webkitDisplayingFullscreen\" in media && \"webkitPresentationMode\" in media && media.webkitDisplayingFullscreen && media.webkitPresentationMode === WebkitPresentationModes.FULLSCREEN) {\n return media;\n }\n return docFullscreenElement;\n};\nconst isFullscreen = (stateOwners) => {\n var _a;\n const { media, documentElement, fullscreenElement = media } = stateOwners;\n if (!media || !documentElement)\n return false;\n const currentFullscreenElement = getFullscreenElement(stateOwners);\n if (!currentFullscreenElement)\n return false;\n if (currentFullscreenElement === fullscreenElement || currentFullscreenElement === media) {\n return true;\n }\n if (currentFullscreenElement.localName.includes(\"-\")) {\n let currentRoot = currentFullscreenElement.shadowRoot;\n if (!(fullscreenElementKey in currentRoot)) {\n return containsComposedNode(\n currentFullscreenElement,\n /** @TODO clean up type assumptions (e.g. Node) (CJP) */\n // @ts-ignore\n fullscreenElement\n );\n }\n while (currentRoot == null ? void 0 : currentRoot[fullscreenElementKey]) {\n if (currentRoot[fullscreenElementKey] === fullscreenElement)\n return true;\n currentRoot = (_a = currentRoot[fullscreenElementKey]) == null ? void 0 : _a.shadowRoot;\n }\n }\n return false;\n};\nconst fullscreenEnabledKey = \"fullscreenEnabled\" in document ? \"fullscreenEnabled\" : \"webkitFullscreenEnabled\" in document ? \"webkitFullscreenEnabled\" : void 0;\nconst isFullscreenEnabled = (stateOwners) => {\n const { documentElement, media } = stateOwners;\n return !!(documentElement == null ? void 0 : documentElement[fullscreenEnabledKey]) || media && \"webkitSupportsFullscreen\" in media;\n};\nexport {\n enterFullscreen,\n exitFullscreen,\n getFullscreenElement,\n isFullscreen,\n isFullscreenEnabled\n};\n","import { globalThis, document } from \"./server-safe-globals.js\";\nimport { delay } from \"./utils.js\";\nimport { isFullscreenEnabled } from \"./fullscreen-api.js\";\nlet testMediaEl;\nconst getTestMediaEl = () => {\n var _a, _b;\n if (testMediaEl)\n return testMediaEl;\n testMediaEl = (_b = (_a = document) == null ? void 0 : _a.createElement) == null ? void 0 : _b.call(_a, \"video\");\n return testMediaEl;\n};\nconst hasVolumeSupportAsync = async (mediaEl = getTestMediaEl()) => {\n if (!mediaEl)\n return false;\n const prevVolume = mediaEl.volume;\n mediaEl.volume = prevVolume / 2 + 0.1;\n const abortController = new AbortController();\n const volumeSupported = await Promise.race([\n dispatchedVolumeChange(mediaEl, abortController.signal),\n volumeChanged(mediaEl, prevVolume)\n ]);\n abortController.abort();\n return volumeSupported;\n};\nconst dispatchedVolumeChange = (mediaEl, signal) => {\n return new Promise((resolve) => {\n mediaEl.addEventListener(\"volumechange\", () => resolve(true), { signal });\n });\n};\nconst volumeChanged = async (mediaEl, prevVolume) => {\n for (let i = 0; i < 10; i++) {\n if (mediaEl.volume === prevVolume)\n return false;\n await delay(10);\n }\n return mediaEl.volume !== prevVolume;\n};\nconst isSafari = /.*Version\\/.*Safari\\/.*/.test(\n globalThis.navigator.userAgent\n);\nconst hasPipSupport = (mediaEl = getTestMediaEl()) => {\n if (globalThis.matchMedia(\"(display-mode: standalone)\").matches && isSafari)\n return false;\n return typeof (mediaEl == null ? void 0 : mediaEl.requestPictureInPicture) === \"function\";\n};\nconst hasFullscreenSupport = (mediaEl = getTestMediaEl()) => {\n return isFullscreenEnabled({ documentElement: document, media: mediaEl });\n};\nconst fullscreenSupported = hasFullscreenSupport();\nconst pipSupported = hasPipSupport();\nconst airplaySupported = !!globalThis.WebKitPlaybackTargetAvailabilityEvent;\nconst castSupported = !!globalThis.chrome;\nexport {\n airplaySupported,\n castSupported,\n fullscreenSupported,\n getTestMediaEl,\n hasFullscreenSupport,\n hasPipSupport,\n hasVolumeSupportAsync,\n pipSupported\n};\n","import { TextTrackKinds, TextTrackModes } from \"../constants.js\";\nimport { getTextTracksList, updateTracksModeTo } from \"../utils/captions.js\";\nconst getSubtitleTracks = (stateOwners) => {\n return getTextTracksList(stateOwners.media, (textTrack) => {\n return [TextTrackKinds.SUBTITLES, TextTrackKinds.CAPTIONS].includes(\n textTrack.kind\n );\n }).sort((a, b) => a.kind >= b.kind ? 1 : -1);\n};\nconst getShowingSubtitleTracks = (stateOwners) => {\n return getTextTracksList(stateOwners.media, (textTrack) => {\n return textTrack.mode === TextTrackModes.SHOWING && [TextTrackKinds.SUBTITLES, TextTrackKinds.CAPTIONS].includes(\n textTrack.kind\n );\n });\n};\nconst toggleSubtitleTracks = (stateOwners, force) => {\n const tracks = getSubtitleTracks(stateOwners);\n const showingSubitleTracks = getShowingSubtitleTracks(stateOwners);\n const subtitlesShowing = !!showingSubitleTracks.length;\n if (!tracks.length)\n return;\n if (force === false || subtitlesShowing && force !== true) {\n updateTracksModeTo(TextTrackModes.DISABLED, tracks, showingSubitleTracks);\n } else if (force === true || !subtitlesShowing && force !== false) {\n let subTrack = tracks[0];\n const { options } = stateOwners;\n if (!(options == null ? void 0 : options.noSubtitlesLangPref)) {\n const subtitlesPref = globalThis.localStorage.getItem(\n \"media-chrome-pref-subtitles-lang\"\n );\n const userLangPrefs = subtitlesPref ? [subtitlesPref, ...globalThis.navigator.languages] : globalThis.navigator.languages;\n const preferredAvailableSubs = tracks.filter((textTrack) => {\n return userLangPrefs.some(\n (lang) => textTrack.language.toLowerCase().startsWith(lang.split(\"-\")[0])\n );\n }).sort((textTrackA, textTrackB) => {\n const idxA = userLangPrefs.findIndex(\n (lang) => textTrackA.language.toLowerCase().startsWith(lang.split(\"-\")[0])\n );\n const idxB = userLangPrefs.findIndex(\n (lang) => textTrackB.language.toLowerCase().startsWith(lang.split(\"-\")[0])\n );\n return idxA - idxB;\n });\n if (preferredAvailableSubs[0]) {\n subTrack = preferredAvailableSubs[0];\n }\n }\n const { language, label, kind } = subTrack;\n updateTracksModeTo(TextTrackModes.DISABLED, tracks, showingSubitleTracks);\n updateTracksModeTo(TextTrackModes.SHOWING, tracks, [\n { language, label, kind }\n ]);\n }\n};\nconst areValuesEq = (x, y) => {\n if (x === y)\n return true;\n if (x == null || y == null)\n return false;\n if (typeof x !== typeof y)\n return false;\n if (typeof x === \"number\" && Number.isNaN(x) && Number.isNaN(y))\n return true;\n if (typeof x !== \"object\")\n return false;\n if (Array.isArray(x))\n return areArraysEq(x, y);\n return Object.entries(x).every(\n // NOTE: Checking key in y to disambiguate between between missing keys and keys whose value are undefined (CJP)\n ([key, value]) => key in y && areValuesEq(value, y[key])\n );\n};\nconst areArraysEq = (xs, ys) => {\n const xIsArray = Array.isArray(xs);\n const yIsArray = Array.isArray(ys);\n if (xIsArray !== yIsArray)\n return false;\n if (!(xIsArray || yIsArray))\n return true;\n if (xs.length !== ys.length)\n return false;\n return xs.every((x, i) => areValuesEq(x, ys[i]));\n};\nexport {\n areArraysEq,\n areValuesEq,\n getShowingSubtitleTracks,\n getSubtitleTracks,\n toggleSubtitleTracks\n};\n","import { document, globalThis } from \"../utils/server-safe-globals.js\";\nimport {\n AvailabilityStates,\n StreamTypes,\n TextTrackKinds\n} from \"../constants.js\";\nimport { containsComposedNode } from \"../utils/element-utils.js\";\nimport {\n enterFullscreen,\n exitFullscreen,\n isFullscreen\n} from \"../utils/fullscreen-api.js\";\nimport {\n airplaySupported,\n castSupported,\n fullscreenSupported,\n hasFullscreenSupport,\n hasPipSupport,\n hasVolumeSupportAsync,\n pipSupported\n} from \"../utils/platform-tests.js\";\nimport {\n getShowingSubtitleTracks,\n getSubtitleTracks,\n toggleSubtitleTracks\n} from \"./util.js\";\nimport { getTextTracksList } from \"../utils/captions.js\";\nimport { isValidNumber } from \"../utils/utils.js\";\nconst StreamTypeValues = Object.values(StreamTypes);\nlet volumeSupported;\nconst volumeSupportPromise = hasVolumeSupportAsync().then((supported) => {\n volumeSupported = supported;\n return volumeSupported;\n});\nconst prepareStateOwners = async (...stateOwners) => {\n await Promise.all(\n stateOwners.filter((x) => x).map(async (stateOwner) => {\n if (!(\"localName\" in stateOwner && stateOwner instanceof globalThis.HTMLElement)) {\n return;\n }\n const name = stateOwner.localName;\n if (!name.includes(\"-\"))\n return;\n const classDef = globalThis.customElements.get(name);\n if (classDef && stateOwner instanceof classDef)\n return;\n await globalThis.customElements.whenDefined(name);\n globalThis.customElements.upgrade(stateOwner);\n })\n );\n};\nconst domParser = new globalThis.DOMParser();\nconst parseHtmlToText = (text) => text ? domParser.parseFromString(text, \"text/html\").body.textContent || text : text;\nconst stateMediator = {\n mediaError: {\n get(stateOwners, event) {\n const { media } = stateOwners;\n if ((event == null ? void 0 : event.type) === \"playing\")\n return;\n return media == null ? void 0 : media.error;\n },\n mediaEvents: [\"emptied\", \"error\", \"playing\"]\n },\n mediaErrorCode: {\n get(stateOwners, event) {\n var _a;\n const { media } = stateOwners;\n if ((event == null ? void 0 : event.type) === \"playing\")\n return;\n return (_a = media == null ? void 0 : media.error) == null ? void 0 : _a.code;\n },\n mediaEvents: [\"emptied\", \"error\", \"playing\"]\n },\n mediaErrorMessage: {\n get(stateOwners, event) {\n var _a, _b;\n const { media } = stateOwners;\n if ((event == null ? void 0 : event.type) === \"playing\")\n return;\n return (_b = (_a = media == null ? void 0 : media.error) == null ? void 0 : _a.message) != null ? _b : \"\";\n },\n mediaEvents: [\"emptied\", \"error\", \"playing\"]\n },\n mediaWidth: {\n get(stateOwners) {\n var _a;\n const { media } = stateOwners;\n return (_a = media == null ? void 0 : media.videoWidth) != null ? _a : 0;\n },\n mediaEvents: [\"resize\"]\n },\n mediaHeight: {\n get(stateOwners) {\n var _a;\n const { media } = stateOwners;\n return (_a = media == null ? void 0 : media.videoHeight) != null ? _a : 0;\n },\n mediaEvents: [\"resize\"]\n },\n mediaPaused: {\n get(stateOwners) {\n var _a;\n const { media } = stateOwners;\n return (_a = media == null ? void 0 : media.paused) != null ? _a : true;\n },\n set(value, stateOwners) {\n var _a;\n const { media } = stateOwners;\n if (!media)\n return;\n if (value) {\n media.pause();\n } else {\n (_a = media.play()) == null ? void 0 : _a.catch(() => {\n });\n }\n },\n mediaEvents: [\"play\", \"playing\", \"pause\", \"emptied\"]\n },\n mediaHasPlayed: {\n // We want to let the user know that the media started playing at any point (`media-has-played`).\n // Since these propagators are all called when boostrapping state, let's verify this is\n // a real playing event by checking that 1) there's media and 2) it isn't currently paused.\n get(stateOwners, event) {\n const { media } = stateOwners;\n if (!media)\n return false;\n if (!event)\n return !media.paused;\n return event.type === \"playing\";\n },\n mediaEvents: [\"playing\", \"emptied\"]\n },\n mediaEnded: {\n get(stateOwners) {\n var _a;\n const { media } = stateOwners;\n return (_a = media == null ? void 0 : media.ended) != null ? _a : false;\n },\n mediaEvents: [\"seeked\", \"ended\", \"emptied\"]\n },\n mediaPlaybackRate: {\n get(stateOwners) {\n var _a;\n const { media } = stateOwners;\n return (_a = media == null ? void 0 : media.playbackRate) != null ? _a : 1;\n },\n set(value, stateOwners) {\n const { media } = stateOwners;\n if (!media)\n return;\n if (!Number.isFinite(+value))\n return;\n media.playbackRate = +value;\n },\n mediaEvents: [\"ratechange\", \"loadstart\"]\n },\n mediaMuted: {\n get(stateOwners) {\n var _a;\n const { media } = stateOwners;\n return (_a = media == null ? void 0 : media.muted) != null ? _a : false;\n },\n set(value, stateOwners) {\n const { media, options: { noMutedPref } = {} } = stateOwners;\n if (!media)\n return;\n media.muted = value;\n try {\n const hasLocalStoragePrefMuted = globalThis.localStorage.getItem(\"media-chrome-pref-muted\") !== null;\n const hasMutedAttribute = media.hasAttribute(\"muted\");\n if (noMutedPref) {\n if (hasLocalStoragePrefMuted)\n globalThis.localStorage.removeItem(\"media-chrome-pref-muted\");\n return;\n }\n if (hasMutedAttribute && !hasLocalStoragePrefMuted) {\n return;\n }\n globalThis.localStorage.setItem(\n \"media-chrome-pref-muted\",\n value ? \"true\" : \"false\"\n );\n } catch (e) {\n console.debug(\"Error setting muted pref\", e);\n }\n },\n mediaEvents: [\"volumechange\"],\n stateOwnersUpdateHandlers: [\n (handler, stateOwners) => {\n const {\n options: { noMutedPref }\n } = stateOwners;\n const { media } = stateOwners;\n if (!media || media.muted || noMutedPref)\n return;\n try {\n const mutedPref = globalThis.localStorage.getItem(\"media-chrome-pref-muted\") === \"true\";\n stateMediator.mediaMuted.set(mutedPref, stateOwners);\n handler(mutedPref);\n } catch (e) {\n console.debug(\"Error getting muted pref\", e);\n }\n }\n ]\n },\n mediaLoop: {\n get(stateOwners) {\n const { media } = stateOwners;\n return media == null ? void 0 : media.loop;\n },\n set(value, stateOwners) {\n const { media } = stateOwners;\n if (!media)\n return;\n media.loop = value;\n },\n mediaEvents: [\"medialooprequest\"]\n },\n mediaVolume: {\n get(stateOwners) {\n var _a;\n const { media } = stateOwners;\n return (_a = media == null ? void 0 : media.volume) != null ? _a : 1;\n },\n set(value, stateOwners) {\n const { media, options: { noVolumePref } = {} } = stateOwners;\n if (!media)\n return;\n try {\n if (value == null) {\n globalThis.localStorage.removeItem(\"media-chrome-pref-volume\");\n } else if (!media.hasAttribute(\"muted\") && !noVolumePref) {\n globalThis.localStorage.setItem(\n \"media-chrome-pref-volume\",\n value.toString()\n );\n }\n } catch (e) {\n console.debug(\"Error setting volume pref\", e);\n }\n if (!Number.isFinite(+value))\n return;\n media.volume = +value;\n },\n mediaEvents: [\"volumechange\"],\n stateOwnersUpdateHandlers: [\n (handler, stateOwners) => {\n const {\n options: { noVolumePref }\n } = stateOwners;\n if (noVolumePref)\n return;\n try {\n const { media } = stateOwners;\n if (!media)\n return;\n const volumePref = globalThis.localStorage.getItem(\n \"media-chrome-pref-volume\"\n );\n if (volumePref == null)\n return;\n stateMediator.mediaVolume.set(+volumePref, stateOwners);\n handler(+volumePref);\n } catch (e) {\n console.debug(\"Error getting volume pref\", e);\n }\n }\n ]\n },\n // NOTE: Keeping this roughly equivalent to prior impl to reduce number of changes,\n // however we may want to model \"derived\" state differently from \"primary\" state\n // (in this case, derived === mediaVolumeLevel, primary === mediaMuted, mediaVolume) (CJP)\n mediaVolumeLevel: {\n get(stateOwners) {\n const { media } = stateOwners;\n if (typeof (media == null ? void 0 : media.volume) == \"undefined\")\n return \"high\";\n if (media.muted || media.volume === 0)\n return \"off\";\n if (media.volume < 0.5)\n return \"low\";\n if (media.volume < 0.75)\n return \"medium\";\n return \"high\";\n },\n mediaEvents: [\"volumechange\"]\n },\n mediaCurrentTime: {\n get(stateOwners) {\n var _a;\n const { media } = stateOwners;\n return (_a = media == null ? void 0 : media.currentTime) != null ? _a : 0;\n },\n set(value, stateOwners) {\n const { media } = stateOwners;\n if (!media || !isValidNumber(value))\n return;\n media.currentTime = value;\n },\n mediaEvents: [\"timeupdate\", \"loadedmetadata\"]\n },\n mediaDuration: {\n get(stateOwners) {\n const { media, options: { defaultDuration } = {} } = stateOwners;\n if (defaultDuration && (!media || !media.duration || Number.isNaN(media.duration) || !Number.isFinite(media.duration))) {\n return defaultDuration;\n }\n return Number.isFinite(media == null ? void 0 : media.duration) ? media.duration : Number.NaN;\n },\n mediaEvents: [\"durationchange\", \"loadedmetadata\", \"emptied\"]\n },\n mediaLoading: {\n get(stateOwners) {\n const { media } = stateOwners;\n return (media == null ? void 0 : media.readyState) < 3;\n },\n mediaEvents: [\"waiting\", \"playing\", \"emptied\"]\n },\n mediaSeekable: {\n get(stateOwners) {\n var _a;\n const { media } = stateOwners;\n if (!((_a = media == null ? void 0 : media.seekable) == null ? void 0 : _a.length))\n return void 0;\n const start = media.seekable.start(0);\n const end = media.seekable.end(media.seekable.length - 1);\n if (!start && !end)\n return void 0;\n return [Number(start.toFixed(3)), Number(end.toFixed(3))];\n },\n mediaEvents: [\"loadedmetadata\", \"emptied\", \"progress\", \"seekablechange\"]\n },\n mediaBuffered: {\n get(stateOwners) {\n var _a;\n const { media } = stateOwners;\n const timeRanges = (_a = media == null ? void 0 : media.buffered) != null ? _a : [];\n return Array.from(timeRanges).map((_, i) => [\n Number(timeRanges.start(i).toFixed(3)),\n Number(timeRanges.end(i).toFixed(3))\n ]);\n },\n mediaEvents: [\"progress\", \"emptied\"]\n },\n mediaStreamType: {\n get(stateOwners) {\n const { media, options: { defaultStreamType } = {} } = stateOwners;\n const usedDefaultStreamType = [\n StreamTypes.LIVE,\n StreamTypes.ON_DEMAND\n ].includes(defaultStreamType) ? defaultStreamType : void 0;\n if (!media)\n return usedDefaultStreamType;\n const { streamType } = media;\n if (StreamTypeValues.includes(streamType)) {\n if (streamType === StreamTypes.UNKNOWN) {\n return usedDefaultStreamType;\n }\n return streamType;\n }\n const duration = media.duration;\n if (duration === Infinity) {\n return StreamTypes.LIVE;\n } else if (Number.isFinite(duration)) {\n return StreamTypes.ON_DEMAND;\n }\n return usedDefaultStreamType;\n },\n mediaEvents: [\n \"emptied\",\n \"durationchange\",\n \"loadedmetadata\",\n \"streamtypechange\"\n ]\n },\n mediaTargetLiveWindow: {\n get(stateOwners) {\n const { media } = stateOwners;\n if (!media)\n return Number.NaN;\n const { targetLiveWindow } = media;\n const streamType = stateMediator.mediaStreamType.get(stateOwners);\n if ((targetLiveWindow == null || Number.isNaN(targetLiveWindow)) && streamType === StreamTypes.LIVE) {\n return 0;\n }\n return targetLiveWindow;\n },\n mediaEvents: [\n \"emptied\",\n \"durationchange\",\n \"loadedmetadata\",\n \"streamtypechange\",\n \"targetlivewindowchange\"\n ]\n },\n mediaTimeIsLive: {\n get(stateOwners) {\n const {\n media,\n // Default to 10 seconds\n options: { liveEdgeOffset = 10 } = {}\n } = stateOwners;\n if (!media)\n return false;\n if (typeof media.liveEdgeStart === \"number\") {\n if (Number.isNaN(media.liveEdgeStart))\n return false;\n return media.currentTime >= media.liveEdgeStart;\n }\n const live = stateMediator.mediaStreamType.get(stateOwners) === StreamTypes.LIVE;\n if (!live)\n return false;\n const seekable = media.seekable;\n if (!seekable)\n return true;\n if (!seekable.length)\n return false;\n const liveEdgeStart = seekable.end(seekable.length - 1) - liveEdgeOffset;\n return media.currentTime >= liveEdgeStart;\n },\n mediaEvents: [\"playing\", \"timeupdate\", \"progress\", \"waiting\", \"emptied\"]\n },\n // Text Tracks modeling\n mediaSubtitlesList: {\n get(stateOwners) {\n return getSubtitleTracks(stateOwners).map(\n ({ kind, label, language }) => ({ kind, label, language })\n );\n },\n mediaEvents: [\"loadstart\"],\n textTracksEvents: [\"addtrack\", \"removetrack\"]\n },\n mediaSubtitlesShowing: {\n get(stateOwners) {\n return getShowingSubtitleTracks(stateOwners).map(\n ({ kind, label, language }) => ({ kind, label, language })\n );\n },\n mediaEvents: [\"loadstart\"],\n textTracksEvents: [\"addtrack\", \"removetrack\", \"change\"],\n stateOwnersUpdateHandlers: [\n (_handler, stateOwners) => {\n var _a, _b;\n const { media, options } = stateOwners;\n if (!media)\n return;\n const updateDefaultSubtitlesCallback = (event) => {\n var _a2;\n if (!options.defaultSubtitles)\n return;\n const nonSubsEvent = event && ![TextTrackKinds.CAPTIONS, TextTrackKinds.SUBTITLES].includes(\n // @ts-ignore\n (_a2 = event == null ? void 0 : event.track) == null ? void 0 : _a2.kind\n );\n if (nonSubsEvent)\n return;\n toggleSubtitleTracks(stateOwners, true);\n };\n media.addEventListener(\n \"loadstart\",\n updateDefaultSubtitlesCallback\n );\n (_a = media.textTracks) == null ? void 0 : _a.addEventListener(\n \"addtrack\",\n updateDefaultSubtitlesCallback\n );\n (_b = media.textTracks) == null ? void 0 : _b.addEventListener(\n \"removetrack\",\n updateDefaultSubtitlesCallback\n );\n return () => {\n var _a2, _b2;\n media.removeEventListener(\n \"loadstart\",\n updateDefaultSubtitlesCallback\n );\n (_a2 = media.textTracks) == null ? void 0 : _a2.removeEventListener(\n \"addtrack\",\n updateDefaultSubtitlesCallback\n );\n (_b2 = media.textTracks) == null ? void 0 : _b2.removeEventListener(\n \"removetrack\",\n updateDefaultSubtitlesCallback\n );\n };\n }\n ]\n },\n mediaChaptersCues: {\n get(stateOwners) {\n var _a;\n const { media } = stateOwners;\n if (!media)\n return [];\n const [chaptersTrack] = getTextTracksList(media, {\n kind: TextTrackKinds.CHAPTERS\n });\n return Array.from((_a = chaptersTrack == null ? void 0 : chaptersTrack.cues) != null ? _a : []).map(\n ({ text, startTime, endTime }) => ({\n text: parseHtmlToText(text),\n startTime,\n endTime\n })\n );\n },\n mediaEvents: [\"loadstart\", \"loadedmetadata\"],\n textTracksEvents: [\"addtrack\", \"removetrack\", \"change\"],\n stateOwnersUpdateHandlers: [\n (handler, stateOwners) => {\n var _a;\n const { media } = stateOwners;\n if (!media)\n return;\n const chaptersTrack = media.querySelector(\n 'track[kind=\"chapters\"][default][src]'\n );\n const shadowChaptersTrack = (_a = media.shadowRoot) == null ? void 0 : _a.querySelector(\n ':is(video,audio) > track[kind=\"chapters\"][default][src]'\n );\n chaptersTrack == null ? void 0 : chaptersTrack.addEventListener(\"load\", handler);\n shadowChaptersTrack == null ? void 0 : shadowChaptersTrack.addEventListener(\"load\", handler);\n return () => {\n chaptersTrack == null ? void 0 : chaptersTrack.removeEventListener(\"load\", handler);\n shadowChaptersTrack == null ? void 0 : shadowChaptersTrack.removeEventListener(\"load\", handler);\n };\n }\n ]\n },\n // Modeling state tied to root node\n mediaIsPip: {\n get(stateOwners) {\n var _a, _b;\n const { media, documentElement } = stateOwners;\n if (!media || !documentElement)\n return false;\n if (!documentElement.pictureInPictureElement)\n return false;\n if (documentElement.pictureInPictureElement === media)\n return true;\n if (documentElement.pictureInPictureElement instanceof HTMLMediaElement) {\n if (!((_a = media.localName) == null ? void 0 : _a.includes(\"-\")))\n return false;\n return containsComposedNode(\n media,\n documentElement.pictureInPictureElement\n );\n }\n if (documentElement.pictureInPictureElement.localName.includes(\"-\")) {\n let currentRoot = documentElement.pictureInPictureElement.shadowRoot;\n while (currentRoot == null ? void 0 : currentRoot.pictureInPictureElement) {\n if (currentRoot.pictureInPictureElement === media)\n return true;\n currentRoot = (_b = currentRoot.pictureInPictureElement) == null ? void 0 : _b.shadowRoot;\n }\n }\n return false;\n },\n set(value, stateOwners) {\n const { media } = stateOwners;\n if (!media)\n return;\n if (value) {\n if (!document.pictureInPictureEnabled) {\n console.warn(\"MediaChrome: Picture-in-picture is not enabled\");\n return;\n }\n if (!media.requestPictureInPicture) {\n console.warn(\n \"MediaChrome: The current media does not support picture-in-picture\"\n );\n return;\n }\n const warnNotReady = () => {\n console.warn(\n \"MediaChrome: The media is not ready for picture-in-picture. It must have a readyState > 0.\"\n );\n };\n media.requestPictureInPicture().catch((err) => {\n if (err.code === 11) {\n if (!media.src) {\n console.warn(\n \"MediaChrome: The media is not ready for picture-in-picture. It must have a src set.\"\n );\n return;\n }\n if (media.readyState === 0 && media.preload === \"none\") {\n const cleanup = () => {\n media.removeEventListener(\"loadedmetadata\", tryPip);\n media.preload = \"none\";\n };\n const tryPip = () => {\n media.requestPictureInPicture().catch(warnNotReady);\n cleanup();\n };\n media.addEventListener(\"loadedmetadata\", tryPip);\n media.preload = \"metadata\";\n setTimeout(() => {\n if (media.readyState === 0)\n warnNotReady();\n cleanup();\n }, 1e3);\n } else {\n throw err;\n }\n } else {\n throw err;\n }\n });\n } else if (document.pictureInPictureElement) {\n document.exitPictureInPicture();\n }\n },\n mediaEvents: [\"enterpictureinpicture\", \"leavepictureinpicture\"]\n },\n mediaRenditionList: {\n get(stateOwners) {\n var _a;\n const { media } = stateOwners;\n return [...(_a = media == null ? void 0 : media.videoRenditions) != null ? _a : []].map((videoRendition) => ({\n ...videoRendition\n }));\n },\n mediaEvents: [\"emptied\", \"loadstart\"],\n videoRenditionsEvents: [\"addrendition\", \"removerendition\"]\n },\n /** @TODO Model this as a derived value? (CJP) */\n mediaRenditionSelected: {\n get(stateOwners) {\n var _a, _b, _c;\n const { media } = stateOwners;\n return (_c = (_b = media == null ? void 0 : media.videoRenditions) == null ? void 0 : _b[(_a = media.videoRenditions) == null ? void 0 : _a.selectedIndex]) == null ? void 0 : _c.id;\n },\n set(value, stateOwners) {\n const { media } = stateOwners;\n if (!(media == null ? void 0 : media.videoRenditions)) {\n console.warn(\n \"MediaController: Rendition selection not supported by this media.\"\n );\n return;\n }\n const renditionId = value;\n const index = Array.prototype.findIndex.call(\n media.videoRenditions,\n (r) => r.id == renditionId\n );\n if (media.videoRenditions.selectedIndex != index) {\n media.videoRenditions.selectedIndex = index;\n }\n },\n mediaEvents: [\"emptied\"],\n videoRenditionsEvents: [\"addrendition\", \"removerendition\", \"change\"]\n },\n mediaAudioTrackList: {\n get(stateOwners) {\n var _a;\n const { media } = stateOwners;\n return [...(_a = media == null ? void 0 : media.audioTracks) != null ? _a : []];\n },\n mediaEvents: [\"emptied\", \"loadstart\"],\n audioTracksEvents: [\"addtrack\", \"removetrack\"]\n },\n mediaAudioTrackEnabled: {\n get(stateOwners) {\n var _a, _b;\n const { media } = stateOwners;\n return (_b = [...(_a = media == null ? void 0 : media.audioTracks) != null ? _a : []].find(\n (audioTrack) => audioTrack.enabled\n )) == null ? void 0 : _b.id;\n },\n set(value, stateOwners) {\n const { media } = stateOwners;\n if (!(media == null ? void 0 : media.audioTracks)) {\n console.warn(\n \"MediaChrome: Audio track selection not supported by this media.\"\n );\n return;\n }\n const audioTrackId = value;\n for (const track of media.audioTracks) {\n track.enabled = audioTrackId == track.id;\n }\n },\n mediaEvents: [\"emptied\"],\n audioTracksEvents: [\"addtrack\", \"removetrack\", \"change\"]\n },\n mediaIsFullscreen: {\n get(stateOwners) {\n return isFullscreen(stateOwners);\n },\n set(value, stateOwners, event) {\n var _a;\n if (!value) {\n exitFullscreen(stateOwners);\n } else {\n enterFullscreen(stateOwners);\n const isPointer = event.detail;\n if (isPointer)\n (_a = stateOwners.media) == null ? void 0 : _a.focus();\n }\n },\n // older Safari version may require webkit-specific events\n rootEvents: [\"fullscreenchange\", \"webkitfullscreenchange\"],\n // iOS requires webkit-specific events on the video.\n mediaEvents: [\n \"webkitbeginfullscreen\",\n \"webkitendfullscreen\",\n \"webkitpresentationmodechanged\"\n ]\n },\n mediaIsCasting: {\n // Note this relies on a customized castable-video element.\n get(stateOwners) {\n var _a;\n const { media } = stateOwners;\n if (!(media == null ? void 0 : media.remote) || ((_a = media.remote) == null ? void 0 : _a.state) === \"disconnected\")\n return false;\n return !!media.remote.state;\n },\n set(value, stateOwners) {\n var _a, _b;\n const { media } = stateOwners;\n if (!media)\n return;\n if (value && ((_a = media.remote) == null ? void 0 : _a.state) !== \"disconnected\")\n return;\n if (!value && ((_b = media.remote) == null ? void 0 : _b.state) !== \"connected\")\n return;\n if (typeof media.remote.prompt !== \"function\") {\n console.warn(\n \"MediaChrome: Casting is not supported in this environment\"\n );\n return;\n }\n media.remote.prompt().catch(() => {\n });\n },\n remoteEvents: [\"connect\", \"connecting\", \"disconnect\"]\n },\n // NOTE: Newly added state for tracking airplaying\n mediaIsAirplaying: {\n // NOTE: Cannot know if airplaying since Safari doesn't fully support HTMLMediaElement::remote yet (e.g. remote::state) (CJP)\n get() {\n return false;\n },\n set(_value, stateOwners) {\n const { media } = stateOwners;\n if (!media)\n return;\n if (!(media.webkitShowPlaybackTargetPicker && globalThis.WebKitPlaybackTargetAvailabilityEvent)) {\n console.error(\n \"MediaChrome: received a request to select AirPlay but AirPlay is not supported in this environment\"\n );\n return;\n }\n media.webkitShowPlaybackTargetPicker();\n },\n mediaEvents: [\"webkitcurrentplaybacktargetiswirelesschanged\"]\n },\n mediaFullscreenUnavailable: {\n get(stateOwners) {\n const { media } = stateOwners;\n if (!fullscreenSupported || !hasFullscreenSupport(media))\n return AvailabilityStates.UNSUPPORTED;\n return void 0;\n }\n },\n mediaPipUnavailable: {\n get(stateOwners) {\n const { media } = stateOwners;\n if (!pipSupported || !hasPipSupport(media))\n return AvailabilityStates.UNSUPPORTED;\n else if (media == null ? void 0 : media.disablePictureInPicture)\n return AvailabilityStates.UNAVAILABLE;\n return void 0;\n }\n },\n mediaVolumeUnavailable: {\n get(stateOwners) {\n const { media } = stateOwners;\n if (volumeSupported === false || (media == null ? void 0 : media.volume) == void 0) {\n return AvailabilityStates.UNSUPPORTED;\n }\n return void 0;\n },\n // NOTE: Slightly different impl here. Added generic support for\n // \"stateOwnersUpdateHandlers\" since the original impl had to hack around\n // race conditions. (CJP)\n stateOwnersUpdateHandlers: [\n (handler) => {\n if (volumeSupported == null) {\n volumeSupportPromise.then(\n (supported) => handler(supported ? void 0 : AvailabilityStates.UNSUPPORTED)\n );\n }\n }\n ]\n },\n mediaCastUnavailable: {\n // @ts-ignore\n get(stateOwners, { availability = \"not-available\" } = {}) {\n var _a;\n const { media } = stateOwners;\n if (!castSupported || !((_a = media == null ? void 0 : media.remote) == null ? void 0 : _a.state)) {\n return AvailabilityStates.UNSUPPORTED;\n }\n if (availability == null || availability === \"available\")\n return void 0;\n return AvailabilityStates.UNAVAILABLE;\n },\n stateOwnersUpdateHandlers: [\n (handler, stateOwners) => {\n var _a;\n const { media } = stateOwners;\n if (!media)\n return;\n const remotePlaybackDisabled = media.disableRemotePlayback || media.hasAttribute(\"disableremoteplayback\");\n if (!remotePlaybackDisabled) {\n (_a = media == null ? void 0 : media.remote) == null ? void 0 : _a.watchAvailability((availabilityBool) => {\n const availability = availabilityBool ? \"available\" : \"not-available\";\n handler({ availability });\n }).catch((error) => {\n if (error.name === \"NotSupportedError\") {\n handler({ availability: null });\n } else {\n handler({ availability: \"not-available\" });\n }\n });\n }\n return () => {\n var _a2;\n (_a2 = media == null ? void 0 : media.remote) == null ? void 0 : _a2.cancelWatchAvailability().catch(() => {\n });\n };\n }\n ]\n },\n mediaAirplayUnavailable: {\n get(_stateOwners, event) {\n if (!airplaySupported)\n return AvailabilityStates.UNSUPPORTED;\n if ((event == null ? void 0 : event.availability) === \"not-available\") {\n return AvailabilityStates.UNAVAILABLE;\n }\n return void 0;\n },\n // NOTE: Keeping this event, as it's still the documented way of monitoring\n // for AirPlay availability from Apple.\n // See: https://developer.apple.com/documentation/webkitjs/adding_an_airplay_button_to_your_safari_media_controls#2940021 (CJP)\n mediaEvents: [\"webkitplaybacktargetavailabilitychanged\"],\n stateOwnersUpdateHandlers: [\n (handler, stateOwners) => {\n var _a;\n const { media } = stateOwners;\n if (!media)\n return;\n const remotePlaybackDisabled = media.disableRemotePlayback || media.hasAttribute(\"disableremoteplayback\");\n if (!remotePlaybackDisabled) {\n (_a = media == null ? void 0 : media.remote) == null ? void 0 : _a.watchAvailability((availabilityBool) => {\n const availability = availabilityBool ? \"available\" : \"not-available\";\n handler({ availability });\n }).catch((error) => {\n if (error.name === \"NotSupportedError\") {\n handler({ availability: null });\n } else {\n handler({ availability: \"not-available\" });\n }\n });\n }\n return () => {\n var _a2;\n (_a2 = media == null ? void 0 : media.remote) == null ? void 0 : _a2.cancelWatchAvailability().catch(() => {\n });\n };\n }\n ]\n },\n mediaRenditionUnavailable: {\n get(stateOwners) {\n var _a;\n const { media } = stateOwners;\n if (!(media == null ? void 0 : media.videoRenditions)) {\n return AvailabilityStates.UNSUPPORTED;\n }\n if (!((_a = media.videoRenditions) == null ? void 0 : _a.length)) {\n return AvailabilityStates.UNAVAILABLE;\n }\n return void 0;\n },\n mediaEvents: [\"emptied\", \"loadstart\"],\n videoRenditionsEvents: [\"addrendition\", \"removerendition\"]\n },\n mediaAudioTrackUnavailable: {\n get(stateOwners) {\n var _a, _b;\n const { media } = stateOwners;\n if (!(media == null ? void 0 : media.audioTracks)) {\n return AvailabilityStates.UNSUPPORTED;\n }\n if (((_b = (_a = media.audioTracks) == null ? void 0 : _a.length) != null ? _b : 0) <= 1) {\n return AvailabilityStates.UNAVAILABLE;\n }\n return void 0;\n },\n mediaEvents: [\"emptied\", \"loadstart\"],\n audioTracksEvents: [\"addtrack\", \"removetrack\"]\n },\n mediaLang: {\n get(stateOwners) {\n const { options: { mediaLang } = {} } = stateOwners;\n return mediaLang != null ? mediaLang : \"en\";\n }\n }\n};\nexport {\n prepareStateOwners,\n stateMediator,\n volumeSupportPromise\n};\n","import { globalThis } from \"../utils/server-safe-globals.js\";\nimport {\n MediaUIEvents,\n StreamTypes,\n TextTrackKinds,\n TextTrackModes\n} from \"../constants.js\";\nimport {\n getTextTracksList,\n parseTracks,\n updateTracksModeTo\n} from \"../utils/captions.js\";\nimport { getSubtitleTracks, toggleSubtitleTracks } from \"./util.js\";\nconst requestMap = {\n /**\n * @TODO Consider adding state to `StateMediator` for e.g. `mediaThumbnailCues` and use that for derived state here (CJP)\n */\n [MediaUIEvents.MEDIA_PREVIEW_REQUEST](stateMediator, stateOwners, { detail }) {\n var _a, _b, _c;\n const { media } = stateOwners;\n const mediaPreviewTime = detail != null ? detail : void 0;\n let mediaPreviewImage = void 0;\n let mediaPreviewCoords = void 0;\n if (media && mediaPreviewTime != null) {\n const [track] = getTextTracksList(media, {\n kind: TextTrackKinds.METADATA,\n label: \"thumbnails\"\n });\n const cue = Array.prototype.find.call((_a = track == null ? void 0 : track.cues) != null ? _a : [], (c, i, cs) => {\n if (i === 0)\n return c.endTime > mediaPreviewTime;\n if (i === cs.length - 1)\n return c.startTime <= mediaPreviewTime;\n return c.startTime <= mediaPreviewTime && c.endTime > mediaPreviewTime;\n });\n if (cue) {\n const base = !/'^(?:[a-z]+:)?\\/\\//i.test(cue.text) ? (_b = media == null ? void 0 : media.querySelector(\n 'track[label=\"thumbnails\"]'\n )) == null ? void 0 : _b.src : void 0;\n const url = new URL(cue.text, base);\n const previewCoordsStr = new URLSearchParams(url.hash).get(\"#xywh\");\n mediaPreviewCoords = previewCoordsStr.split(\",\").map((numStr) => +numStr);\n mediaPreviewImage = url.href;\n }\n }\n const mediaDuration = stateMediator.mediaDuration.get(stateOwners);\n const mediaChaptersCues = stateMediator.mediaChaptersCues.get(stateOwners);\n let mediaPreviewChapter = (_c = mediaChaptersCues.find((c, i, cs) => {\n if (i === cs.length - 1 && mediaDuration === c.endTime) {\n return c.startTime <= mediaPreviewTime && c.endTime >= mediaPreviewTime;\n }\n return c.startTime <= mediaPreviewTime && c.endTime > mediaPreviewTime;\n })) == null ? void 0 : _c.text;\n if (detail != null && mediaPreviewChapter == null) {\n mediaPreviewChapter = \"\";\n }\n return {\n mediaPreviewTime,\n mediaPreviewImage,\n mediaPreviewCoords,\n mediaPreviewChapter\n };\n },\n [MediaUIEvents.MEDIA_PAUSE_REQUEST](stateMediator, stateOwners) {\n const key = \"mediaPaused\";\n const value = true;\n stateMediator[key].set(value, stateOwners);\n },\n [MediaUIEvents.MEDIA_PLAY_REQUEST](stateMediator, stateOwners) {\n var _a, _b, _c, _d;\n const key = \"mediaPaused\";\n const value = false;\n const isLive = stateMediator.mediaStreamType.get(stateOwners) === StreamTypes.LIVE;\n const canAutoSeekToLive = !((_a = stateOwners.options) == null ? void 0 : _a.noAutoSeekToLive);\n const isDVR = stateMediator.mediaTargetLiveWindow.get(stateOwners) > 0;\n if (isLive && canAutoSeekToLive && !isDVR) {\n const seekableEnd = (_b = stateMediator.mediaSeekable.get(stateOwners)) == null ? void 0 : _b[1];\n if (seekableEnd) {\n const seekToLiveOffset = (_d = (_c = stateOwners.options) == null ? void 0 : _c.seekToLiveOffset) != null ? _d : 0;\n const liveEdgeTime = seekableEnd - seekToLiveOffset;\n stateMediator.mediaCurrentTime.set(liveEdgeTime, stateOwners);\n }\n }\n stateMediator[key].set(value, stateOwners);\n },\n [MediaUIEvents.MEDIA_PLAYBACK_RATE_REQUEST](stateMediator, stateOwners, { detail }) {\n const key = \"mediaPlaybackRate\";\n const value = detail;\n stateMediator[key].set(value, stateOwners);\n },\n [MediaUIEvents.MEDIA_MUTE_REQUEST](stateMediator, stateOwners) {\n const key = \"mediaMuted\";\n const value = true;\n stateMediator[key].set(value, stateOwners);\n },\n [MediaUIEvents.MEDIA_UNMUTE_REQUEST](stateMediator, stateOwners) {\n const key = \"mediaMuted\";\n const value = false;\n if (!stateMediator.mediaVolume.get(stateOwners)) {\n stateMediator.mediaVolume.set(0.25, stateOwners);\n }\n stateMediator[key].set(value, stateOwners);\n },\n [MediaUIEvents.MEDIA_LOOP_REQUEST](stateMediator, stateOwners, { detail }) {\n const key = \"mediaLoop\";\n const value = !!detail;\n stateMediator[key].set(value, stateOwners);\n return { mediaLoop: value };\n },\n [MediaUIEvents.MEDIA_VOLUME_REQUEST](stateMediator, stateOwners, { detail }) {\n const key = \"mediaVolume\";\n const value = detail;\n if (value && stateMediator.mediaMuted.get(stateOwners)) {\n stateMediator.mediaMuted.set(false, stateOwners);\n }\n stateMediator[key].set(value, stateOwners);\n },\n [MediaUIEvents.MEDIA_SEEK_REQUEST](stateMediator, stateOwners, { detail }) {\n const key = \"mediaCurrentTime\";\n const value = detail;\n stateMediator[key].set(value, stateOwners);\n },\n [MediaUIEvents.MEDIA_SEEK_TO_LIVE_REQUEST](stateMediator, stateOwners) {\n var _a, _b, _c;\n const key = \"mediaCurrentTime\";\n const seekableEnd = (_a = stateMediator.mediaSeekable.get(stateOwners)) == null ? void 0 : _a[1];\n if (Number.isNaN(Number(seekableEnd)))\n return;\n const seekToLiveOffset = (_c = (_b = stateOwners.options) == null ? void 0 : _b.seekToLiveOffset) != null ? _c : 0;\n const value = seekableEnd - seekToLiveOffset;\n stateMediator[key].set(value, stateOwners);\n },\n // Text Tracks state change requests\n [MediaUIEvents.MEDIA_SHOW_SUBTITLES_REQUEST](_stateMediator, stateOwners, { detail }) {\n var _a;\n const { options } = stateOwners;\n const tracks = getSubtitleTracks(stateOwners);\n const tracksToUpdate = parseTracks(detail);\n const preferredLanguage = (_a = tracksToUpdate[0]) == null ? void 0 : _a.language;\n if (preferredLanguage && !options.noSubtitlesLangPref) {\n globalThis.localStorage.setItem(\n \"media-chrome-pref-subtitles-lang\",\n preferredLanguage\n );\n }\n updateTracksModeTo(TextTrackModes.SHOWING, tracks, tracksToUpdate);\n },\n [MediaUIEvents.MEDIA_DISABLE_SUBTITLES_REQUEST](_stateMediator, stateOwners, { detail }) {\n const tracks = getSubtitleTracks(stateOwners);\n const tracksToUpdate = detail != null ? detail : [];\n updateTracksModeTo(TextTrackModes.DISABLED, tracks, tracksToUpdate);\n },\n [MediaUIEvents.MEDIA_TOGGLE_SUBTITLES_REQUEST](_stateMediator, stateOwners, { detail }) {\n toggleSubtitleTracks(stateOwners, detail);\n },\n // Renditions/Tracks state change requests\n [MediaUIEvents.MEDIA_RENDITION_REQUEST](stateMediator, stateOwners, { detail }) {\n const key = \"mediaRenditionSelected\";\n const value = detail;\n stateMediator[key].set(value, stateOwners);\n },\n [MediaUIEvents.MEDIA_AUDIO_TRACK_REQUEST](stateMediator, stateOwners, { detail }) {\n const key = \"mediaAudioTrackEnabled\";\n const value = detail;\n stateMediator[key].set(value, stateOwners);\n },\n // State change requests dependent on root node\n [MediaUIEvents.MEDIA_ENTER_PIP_REQUEST](stateMediator, stateOwners) {\n const key = \"mediaIsPip\";\n const value = true;\n if (stateMediator.mediaIsFullscreen.get(stateOwners)) {\n stateMediator.mediaIsFullscreen.set(false, stateOwners);\n }\n stateMediator[key].set(value, stateOwners);\n },\n [MediaUIEvents.MEDIA_EXIT_PIP_REQUEST](stateMediator, stateOwners) {\n const key = \"mediaIsPip\";\n const value = false;\n stateMediator[key].set(value, stateOwners);\n },\n [MediaUIEvents.MEDIA_ENTER_FULLSCREEN_REQUEST](stateMediator, stateOwners, event) {\n const key = \"mediaIsFullscreen\";\n const value = true;\n if (stateMediator.mediaIsPip.get(stateOwners)) {\n stateMediator.mediaIsPip.set(false, stateOwners);\n }\n stateMediator[key].set(value, stateOwners, event);\n },\n [MediaUIEvents.MEDIA_EXIT_FULLSCREEN_REQUEST](stateMediator, stateOwners) {\n const key = \"mediaIsFullscreen\";\n const value = false;\n stateMediator[key].set(value, stateOwners);\n },\n [MediaUIEvents.MEDIA_ENTER_CAST_REQUEST](stateMediator, stateOwners) {\n const key = \"mediaIsCasting\";\n const value = true;\n if (stateMediator.mediaIsFullscreen.get(stateOwners)) {\n stateMediator.mediaIsFullscreen.set(false, stateOwners);\n }\n stateMediator[key].set(value, stateOwners);\n },\n [MediaUIEvents.MEDIA_EXIT_CAST_REQUEST](stateMediator, stateOwners) {\n const key = \"mediaIsCasting\";\n const value = false;\n stateMediator[key].set(value, stateOwners);\n },\n [MediaUIEvents.MEDIA_AIRPLAY_REQUEST](stateMediator, stateOwners) {\n const key = \"mediaIsAirplaying\";\n const value = true;\n stateMediator[key].set(value, stateOwners);\n }\n};\nexport {\n requestMap\n};\n","import {\n stateMediator as defaultStateMediator,\n prepareStateOwners\n} from \"./state-mediator.js\";\nimport { areValuesEq } from \"./util.js\";\nimport { requestMap as defaultRequestMap } from \"./request-map.js\";\nconst createMediaStore = ({\n media,\n fullscreenElement,\n documentElement,\n stateMediator = defaultStateMediator,\n requestMap = defaultRequestMap,\n options = {},\n monitorStateOwnersOnlyWithSubscriptions = true\n}) => {\n const callbacks = [];\n const stateOwners = {\n // Spreading options here since folks should not rely on holding onto references\n // for any app-level logic wrt options.\n options: { ...options }\n };\n let state = Object.freeze({\n mediaPreviewTime: void 0,\n mediaPreviewImage: void 0,\n mediaPreviewCoords: void 0,\n mediaPreviewChapter: void 0\n });\n const updateState = (nextStateDelta) => {\n if (nextStateDelta == void 0)\n return;\n if (areValuesEq(nextStateDelta, state)) {\n return;\n }\n state = Object.freeze({\n ...state,\n ...nextStateDelta\n });\n callbacks.forEach((cb) => cb(state));\n };\n const updateStateFromFacade = () => {\n const nextState = Object.entries(stateMediator).reduce(\n (nextState2, [stateName, { get }]) => {\n nextState2[stateName] = get(stateOwners);\n return nextState2;\n },\n {}\n );\n updateState(nextState);\n };\n const stateUpdateHandlers = {};\n let nextStateOwners = void 0;\n const updateStateOwners = async (nextStateOwnersDelta, nextSubscriberCount) => {\n var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p;\n const pendingUpdate = !!nextStateOwners;\n nextStateOwners = {\n ...stateOwners,\n ...nextStateOwners != null ? nextStateOwners : {},\n ...nextStateOwnersDelta\n };\n if (pendingUpdate)\n return;\n await prepareStateOwners(...Object.values(nextStateOwnersDelta));\n const shouldTeardownFromSubscriberCount = callbacks.length > 0 && nextSubscriberCount === 0 && monitorStateOwnersOnlyWithSubscriptions;\n const mediaChanged = stateOwners.media !== nextStateOwners.media;\n const textTracksChanged = ((_a = stateOwners.media) == null ? void 0 : _a.textTracks) !== ((_b = nextStateOwners.media) == null ? void 0 : _b.textTracks);\n const videoRenditionsChanged = ((_c = stateOwners.media) == null ? void 0 : _c.videoRenditions) !== ((_d = nextStateOwners.media) == null ? void 0 : _d.videoRenditions);\n const audioTracksChanged = ((_e = stateOwners.media) == null ? void 0 : _e.audioTracks) !== ((_f = nextStateOwners.media) == null ? void 0 : _f.audioTracks);\n const remoteChanged = ((_g = stateOwners.media) == null ? void 0 : _g.remote) !== ((_h = nextStateOwners.media) == null ? void 0 : _h.remote);\n const rootNodeChanged = stateOwners.documentElement !== nextStateOwners.documentElement;\n const teardownMedia = !!stateOwners.media && (mediaChanged || shouldTeardownFromSubscriberCount);\n const teardownTextTracks = !!((_i = stateOwners.media) == null ? void 0 : _i.textTracks) && (textTracksChanged || shouldTeardownFromSubscriberCount);\n const teardownVideoRenditions = !!((_j = stateOwners.media) == null ? void 0 : _j.videoRenditions) && (videoRenditionsChanged || shouldTeardownFromSubscriberCount);\n const teardownAudioTracks = !!((_k = stateOwners.media) == null ? void 0 : _k.audioTracks) && (audioTracksChanged || shouldTeardownFromSubscriberCount);\n const teardownRemote = !!((_l = stateOwners.media) == null ? void 0 : _l.remote) && (remoteChanged || shouldTeardownFromSubscriberCount);\n const teardownRootNode = !!stateOwners.documentElement && (rootNodeChanged || shouldTeardownFromSubscriberCount);\n const teardownSomething = teardownMedia || teardownTextTracks || teardownVideoRenditions || teardownAudioTracks || teardownRemote || teardownRootNode;\n const shouldSetupFromSubscriberCount = callbacks.length === 0 && nextSubscriberCount === 1 && monitorStateOwnersOnlyWithSubscriptions;\n const setupMedia = !!nextStateOwners.media && (mediaChanged || shouldSetupFromSubscriberCount);\n const setupTextTracks = !!((_m = nextStateOwners.media) == null ? void 0 : _m.textTracks) && (textTracksChanged || shouldSetupFromSubscriberCount);\n const setupVideoRenditions = !!((_n = nextStateOwners.media) == null ? void 0 : _n.videoRenditions) && (videoRenditionsChanged || shouldSetupFromSubscriberCount);\n const setupAudioTracks = !!((_o = nextStateOwners.media) == null ? void 0 : _o.audioTracks) && (audioTracksChanged || shouldSetupFromSubscriberCount);\n const setupRemote = !!((_p = nextStateOwners.media) == null ? void 0 : _p.remote) && (remoteChanged || shouldSetupFromSubscriberCount);\n const setupRootNode = !!nextStateOwners.documentElement && (rootNodeChanged || shouldSetupFromSubscriberCount);\n const setupSomething = setupMedia || setupTextTracks || setupVideoRenditions || setupAudioTracks || setupRemote || setupRootNode;\n const somethingToDo = teardownSomething || setupSomething;\n if (!somethingToDo) {\n Object.entries(nextStateOwners).forEach(\n ([stateOwnerName, stateOwner]) => {\n stateOwners[stateOwnerName] = stateOwner;\n }\n );\n updateStateFromFacade();\n nextStateOwners = void 0;\n return;\n }\n Object.entries(stateMediator).forEach(\n ([\n stateName,\n {\n get,\n mediaEvents = [],\n textTracksEvents = [],\n videoRenditionsEvents = [],\n audioTracksEvents = [],\n remoteEvents = [],\n rootEvents = [],\n stateOwnersUpdateHandlers = []\n }\n ]) => {\n if (!stateUpdateHandlers[stateName]) {\n stateUpdateHandlers[stateName] = {};\n }\n const handler = (event) => {\n const nextValue = get(stateOwners, event);\n updateState({ [stateName]: nextValue });\n };\n let prevHandler;\n prevHandler = stateUpdateHandlers[stateName].mediaEvents;\n mediaEvents.forEach((eventType) => {\n if (prevHandler && teardownMedia) {\n stateOwners.media.removeEventListener(eventType, prevHandler);\n stateUpdateHandlers[stateName].mediaEvents = void 0;\n }\n if (setupMedia) {\n nextStateOwners.media.addEventListener(eventType, handler);\n stateUpdateHandlers[stateName].mediaEvents = handler;\n }\n });\n prevHandler = stateUpdateHandlers[stateName].textTracksEvents;\n textTracksEvents.forEach((eventType) => {\n var _a2, _b2;\n if (prevHandler && teardownTextTracks) {\n (_a2 = stateOwners.media.textTracks) == null ? void 0 : _a2.removeEventListener(\n eventType,\n prevHandler\n );\n stateUpdateHandlers[stateName].textTracksEvents = void 0;\n }\n if (setupTextTracks) {\n (_b2 = nextStateOwners.media.textTracks) == null ? void 0 : _b2.addEventListener(\n eventType,\n handler\n );\n stateUpdateHandlers[stateName].textTracksEvents = handler;\n }\n });\n prevHandler = stateUpdateHandlers[stateName].videoRenditionsEvents;\n videoRenditionsEvents.forEach((eventType) => {\n var _a2, _b2;\n if (prevHandler && teardownVideoRenditions) {\n (_a2 = stateOwners.media.videoRenditions) == null ? void 0 : _a2.removeEventListener(\n eventType,\n prevHandler\n );\n stateUpdateHandlers[stateName].videoRenditionsEvents = void 0;\n }\n if (setupVideoRenditions) {\n (_b2 = nextStateOwners.media.videoRenditions) == null ? void 0 : _b2.addEventListener(\n eventType,\n handler\n );\n stateUpdateHandlers[stateName].videoRenditionsEvents = handler;\n }\n });\n prevHandler = stateUpdateHandlers[stateName].audioTracksEvents;\n audioTracksEvents.forEach((eventType) => {\n var _a2, _b2;\n if (prevHandler && teardownAudioTracks) {\n (_a2 = stateOwners.media.audioTracks) == null ? void 0 : _a2.removeEventListener(\n eventType,\n prevHandler\n );\n stateUpdateHandlers[stateName].audioTracksEvents = void 0;\n }\n if (setupAudioTracks) {\n (_b2 = nextStateOwners.media.audioTracks) == null ? void 0 : _b2.addEventListener(\n eventType,\n handler\n );\n stateUpdateHandlers[stateName].audioTracksEvents = handler;\n }\n });\n prevHandler = stateUpdateHandlers[stateName].remoteEvents;\n remoteEvents.forEach((eventType) => {\n var _a2, _b2;\n if (prevHandler && teardownRemote) {\n (_a2 = stateOwners.media.remote) == null ? void 0 : _a2.removeEventListener(\n eventType,\n prevHandler\n );\n stateUpdateHandlers[stateName].remoteEvents = void 0;\n }\n if (setupRemote) {\n (_b2 = nextStateOwners.media.remote) == null ? void 0 : _b2.addEventListener(eventType, handler);\n stateUpdateHandlers[stateName].remoteEvents = handler;\n }\n });\n prevHandler = stateUpdateHandlers[stateName].rootEvents;\n rootEvents.forEach((eventType) => {\n if (prevHandler && teardownRootNode) {\n stateOwners.documentElement.removeEventListener(\n eventType,\n prevHandler\n );\n stateUpdateHandlers[stateName].rootEvents = void 0;\n }\n if (setupRootNode) {\n nextStateOwners.documentElement.addEventListener(\n eventType,\n handler\n );\n stateUpdateHandlers[stateName].rootEvents = handler;\n }\n });\n const prevHandlerTeardowns = stateUpdateHandlers[stateName].stateOwnersUpdateHandlers;\n if (prevHandlerTeardowns && teardownSomething) {\n const teardowns = Array.isArray(prevHandlerTeardowns) ? prevHandlerTeardowns : [prevHandlerTeardowns];\n teardowns.forEach((teardown) => {\n if (typeof teardown === \"function\") {\n teardown();\n }\n });\n }\n if (setupSomething) {\n const newTeardowns = stateOwnersUpdateHandlers.map((fn) => fn(handler, nextStateOwners)).filter((teardown) => typeof teardown === \"function\");\n stateUpdateHandlers[stateName].stateOwnersUpdateHandlers = newTeardowns.length === 1 ? newTeardowns[0] : newTeardowns;\n } else if (teardownSomething) {\n stateUpdateHandlers[stateName].stateOwnersUpdateHandlers = void 0;\n }\n }\n );\n Object.entries(nextStateOwners).forEach(([stateOwnerName, stateOwner]) => {\n stateOwners[stateOwnerName] = stateOwner;\n });\n updateStateFromFacade();\n nextStateOwners = void 0;\n };\n updateStateOwners({ media, fullscreenElement, documentElement, options });\n return {\n // note that none of these cases directly interact with the media element, root node, full screen element, etc.\n // note these \"actions\" could just be the events if we wanted, especially if we normalize on \"detail\" for\n // any payload-relevant values\n // This is roughly equivalent to our used to be in our state requests dictionary object, though much of the\n // \"heavy lifting\" is now moved into the facade `set()`\n dispatch(action) {\n const { type, detail } = action;\n if (requestMap[type] && state.mediaErrorCode == null) {\n updateState(requestMap[type](stateMediator, stateOwners, action));\n return;\n }\n if (type === \"mediaelementchangerequest\") {\n updateStateOwners({ media: detail });\n } else if (type === \"fullscreenelementchangerequest\") {\n updateStateOwners({ fullscreenElement: detail });\n } else if (type === \"documentelementchangerequest\") {\n updateStateOwners({ documentElement: detail });\n } else if (type === \"optionschangerequest\") {\n Object.entries(detail != null ? detail : {}).forEach(([optionName, optionValue]) => {\n stateOwners.options[optionName] = optionValue;\n });\n updateStateFromFacade();\n }\n },\n getState() {\n return state;\n },\n subscribe(callback) {\n updateStateOwners({}, callbacks.length + 1);\n callbacks.push(callback);\n callback(state);\n return () => {\n const idx = callbacks.indexOf(callback);\n if (idx >= 0) {\n updateStateOwners({}, callbacks.length - 1);\n callbacks.splice(idx, 1);\n }\n };\n }\n };\n};\nvar media_store_default = createMediaStore;\nexport {\n createMediaStore,\n media_store_default as default\n};\n","var __accessCheck = (obj, member, msg) => {\n if (!member.has(obj))\n throw TypeError(\"Cannot \" + msg);\n};\nvar __privateGet = (obj, member, getter) => {\n __accessCheck(obj, member, \"read from private field\");\n return getter ? getter.call(obj) : member.get(obj);\n};\nvar __privateAdd = (obj, member, value) => {\n if (member.has(obj))\n throw TypeError(\"Cannot add the same private member more than once\");\n member instanceof WeakSet ? member.add(obj) : member.set(obj, value);\n};\nvar __privateSet = (obj, member, value, setter) => {\n __accessCheck(obj, member, \"write to private field\");\n setter ? setter.call(obj, value) : member.set(obj, value);\n return value;\n};\nvar __privateMethod = (obj, member, method) => {\n __accessCheck(obj, member, \"access private method\");\n return method;\n};\nvar _hotKeys, _fullscreenElement, _mediaStore, _keyboardShortcutsDialog, _mediaStateCallback, _mediaStoreUnsubscribe, _mediaStateEventHandler, _setupDefaultStore, setupDefaultStore_fn, _keyUpHandler, keyUpHandler_fn, _keyDownHandler, keyDownHandler_fn, _showKeyboardShortcutsDialog, showKeyboardShortcutsDialog_fn;\nimport { MediaContainer } from \"./media-container.js\";\nimport { document, globalThis } from \"./utils/server-safe-globals.js\";\nimport { AttributeTokenList } from \"./utils/attribute-token-list.js\";\nimport {\n delay,\n stringifyRenditionList,\n stringifyAudioTrackList\n} from \"./utils/utils.js\";\nimport { stringifyTextTrackList } from \"./utils/captions.js\";\nimport {\n MediaUIEvents,\n MediaUIAttributes,\n MediaStateReceiverAttributes,\n AttributeToStateChangeEventMap,\n MediaUIProps\n} from \"./constants.js\";\nimport {\n getBooleanAttr,\n getNumericAttr,\n getStringAttr,\n setBooleanAttr,\n setNumericAttr,\n setStringAttr\n} from \"./utils/element-utils.js\";\nimport { createMediaStore } from \"./media-store/media-store.js\";\nimport { setLanguage } from \"./utils/i18n.js\";\nconst ButtonPressedKeys = [\n \"ArrowLeft\",\n \"ArrowRight\",\n \"ArrowUp\",\n \"ArrowDown\",\n \"Enter\",\n \" \",\n \"f\",\n \"m\",\n \"k\",\n \"c\",\n \"l\",\n \"j\",\n \">\",\n \"<\",\n \"p\"\n];\nconst DEFAULT_SEEK_OFFSET = 10;\nconst DEFAULT_VOLUME_STEP = 0.025;\nconst DEFAULT_PLAYBACK_RATE_STEP = 0.25;\nconst MIN_PLAYBACK_RATE = 0.25;\nconst MAX_PLAYBACK_RATE = 2;\nconst Attributes = {\n DEFAULT_SUBTITLES: \"defaultsubtitles\",\n DEFAULT_STREAM_TYPE: \"defaultstreamtype\",\n DEFAULT_DURATION: \"defaultduration\",\n FULLSCREEN_ELEMENT: \"fullscreenelement\",\n HOTKEYS: \"hotkeys\",\n KEYBOARD_BACKWARD_SEEK_OFFSET: \"keyboardbackwardseekoffset\",\n KEYBOARD_FORWARD_SEEK_OFFSET: \"keyboardforwardseekoffset\",\n KEYBOARD_DOWN_VOLUME_STEP: \"keyboarddownvolumestep\",\n KEYBOARD_UP_VOLUME_STEP: \"keyboardupvolumestep\",\n KEYS_USED: \"keysused\",\n LANG: \"lang\",\n LOOP: \"loop\",\n LIVE_EDGE_OFFSET: \"liveedgeoffset\",\n NO_AUTO_SEEK_TO_LIVE: \"noautoseektolive\",\n NO_DEFAULT_STORE: \"nodefaultstore\",\n NO_HOTKEYS: \"nohotkeys\",\n NO_MUTED_PREF: \"nomutedpref\",\n NO_SUBTITLES_LANG_PREF: \"nosubtitleslangpref\",\n NO_VOLUME_PREF: \"novolumepref\",\n SEEK_TO_LIVE_OFFSET: \"seektoliveoffset\"\n};\nclass MediaController extends MediaContainer {\n constructor() {\n super();\n __privateAdd(this, _setupDefaultStore);\n __privateAdd(this, _keyUpHandler);\n __privateAdd(this, _keyDownHandler);\n __privateAdd(this, _showKeyboardShortcutsDialog);\n this.mediaStateReceivers = [];\n this.associatedElementSubscriptions = /* @__PURE__ */ new Map();\n __privateAdd(this, _hotKeys, new AttributeTokenList(this, Attributes.HOTKEYS));\n __privateAdd(this, _fullscreenElement, void 0);\n __privateAdd(this, _mediaStore, void 0);\n __privateAdd(this, _keyboardShortcutsDialog, null);\n __privateAdd(this, _mediaStateCallback, void 0);\n __privateAdd(this, _mediaStoreUnsubscribe, void 0);\n __privateAdd(this, _mediaStateEventHandler, (event) => {\n var _a;\n (_a = __privateGet(this, _mediaStore)) == null ? void 0 : _a.dispatch(event);\n });\n this.associateElement(this);\n let prevState = {};\n __privateSet(this, _mediaStateCallback, (nextState) => {\n Object.entries(nextState).forEach(([stateName, stateValue]) => {\n if (stateName in prevState && prevState[stateName] === stateValue)\n return;\n this.propagateMediaState(stateName, stateValue);\n const attrName = stateName.toLowerCase();\n const evt = new globalThis.CustomEvent(\n AttributeToStateChangeEventMap[attrName],\n { composed: true, detail: stateValue }\n );\n this.dispatchEvent(evt);\n });\n prevState = nextState;\n });\n this.hasAttribute(Attributes.NO_HOTKEYS) ? this.disableHotkeys() : this.enableHotkeys();\n }\n static get observedAttributes() {\n return super.observedAttributes.concat(\n Attributes.NO_HOTKEYS,\n Attributes.HOTKEYS,\n Attributes.DEFAULT_STREAM_TYPE,\n Attributes.DEFAULT_SUBTITLES,\n Attributes.DEFAULT_DURATION,\n Attributes.NO_MUTED_PREF,\n Attributes.NO_VOLUME_PREF,\n Attributes.LANG,\n Attributes.LOOP\n );\n }\n get mediaStore() {\n return __privateGet(this, _mediaStore);\n }\n set mediaStore(value) {\n var _a, _b;\n if (__privateGet(this, _mediaStore)) {\n (_a = __privateGet(this, _mediaStoreUnsubscribe)) == null ? void 0 : _a.call(this);\n __privateSet(this, _mediaStoreUnsubscribe, void 0);\n }\n __privateSet(this, _mediaStore, value);\n if (!__privateGet(this, _mediaStore) && !this.hasAttribute(Attributes.NO_DEFAULT_STORE)) {\n __privateMethod(this, _setupDefaultStore, setupDefaultStore_fn).call(this);\n return;\n }\n __privateSet(this, _mediaStoreUnsubscribe, (_b = __privateGet(this, _mediaStore)) == null ? void 0 : _b.subscribe(\n __privateGet(this, _mediaStateCallback)\n ));\n }\n get fullscreenElement() {\n var _a;\n return (_a = __privateGet(this, _fullscreenElement)) != null ? _a : this;\n }\n set fullscreenElement(element) {\n var _a;\n if (this.hasAttribute(Attributes.FULLSCREEN_ELEMENT)) {\n this.removeAttribute(Attributes.FULLSCREEN_ELEMENT);\n }\n __privateSet(this, _fullscreenElement, element);\n (_a = __privateGet(this, _mediaStore)) == null ? void 0 : _a.dispatch({\n type: \"fullscreenelementchangerequest\",\n detail: this.fullscreenElement\n });\n }\n get defaultSubtitles() {\n return getBooleanAttr(this, Attributes.DEFAULT_SUBTITLES);\n }\n set defaultSubtitles(value) {\n setBooleanAttr(this, Attributes.DEFAULT_SUBTITLES, value);\n }\n get defaultStreamType() {\n return getStringAttr(this, Attributes.DEFAULT_STREAM_TYPE);\n }\n set defaultStreamType(value) {\n setStringAttr(this, Attributes.DEFAULT_STREAM_TYPE, value);\n }\n get defaultDuration() {\n return getNumericAttr(this, Attributes.DEFAULT_DURATION);\n }\n set defaultDuration(value) {\n setNumericAttr(this, Attributes.DEFAULT_DURATION, value);\n }\n get noHotkeys() {\n return getBooleanAttr(this, Attributes.NO_HOTKEYS);\n }\n set noHotkeys(value) {\n setBooleanAttr(this, Attributes.NO_HOTKEYS, value);\n }\n get keysUsed() {\n return getStringAttr(this, Attributes.KEYS_USED);\n }\n set keysUsed(value) {\n setStringAttr(this, Attributes.KEYS_USED, value);\n }\n get liveEdgeOffset() {\n return getNumericAttr(this, Attributes.LIVE_EDGE_OFFSET);\n }\n set liveEdgeOffset(value) {\n setNumericAttr(this, Attributes.LIVE_EDGE_OFFSET, value);\n }\n get noAutoSeekToLive() {\n return getBooleanAttr(this, Attributes.NO_AUTO_SEEK_TO_LIVE);\n }\n set noAutoSeekToLive(value) {\n setBooleanAttr(this, Attributes.NO_AUTO_SEEK_TO_LIVE, value);\n }\n get noVolumePref() {\n return getBooleanAttr(this, Attributes.NO_VOLUME_PREF);\n }\n set noVolumePref(value) {\n setBooleanAttr(this, Attributes.NO_VOLUME_PREF, value);\n }\n get noMutedPref() {\n return getBooleanAttr(this, Attributes.NO_MUTED_PREF);\n }\n set noMutedPref(value) {\n setBooleanAttr(this, Attributes.NO_MUTED_PREF, value);\n }\n get noSubtitlesLangPref() {\n return getBooleanAttr(this, Attributes.NO_SUBTITLES_LANG_PREF);\n }\n set noSubtitlesLangPref(value) {\n setBooleanAttr(this, Attributes.NO_SUBTITLES_LANG_PREF, value);\n }\n get noDefaultStore() {\n return getBooleanAttr(this, Attributes.NO_DEFAULT_STORE);\n }\n set noDefaultStore(value) {\n setBooleanAttr(this, Attributes.NO_DEFAULT_STORE, value);\n }\n attributeChangedCallback(attrName, oldValue, newValue) {\n var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l;\n super.attributeChangedCallback(attrName, oldValue, newValue);\n if (attrName === Attributes.NO_HOTKEYS) {\n if (newValue !== oldValue && newValue === \"\") {\n if (this.hasAttribute(Attributes.HOTKEYS)) {\n console.warn(\n \"Media Chrome: Both `hotkeys` and `nohotkeys` have been set. All hotkeys will be disabled.\"\n );\n }\n this.disableHotkeys();\n } else if (newValue !== oldValue && newValue === null) {\n this.enableHotkeys();\n }\n } else if (attrName === Attributes.HOTKEYS) {\n __privateGet(this, _hotKeys).value = newValue;\n } else if (attrName === Attributes.DEFAULT_SUBTITLES && newValue !== oldValue) {\n (_a = __privateGet(this, _mediaStore)) == null ? void 0 : _a.dispatch({\n type: \"optionschangerequest\",\n detail: {\n defaultSubtitles: this.hasAttribute(Attributes.DEFAULT_SUBTITLES)\n }\n });\n } else if (attrName === Attributes.DEFAULT_STREAM_TYPE) {\n (_c = __privateGet(this, _mediaStore)) == null ? void 0 : _c.dispatch({\n type: \"optionschangerequest\",\n detail: {\n defaultStreamType: (_b = this.getAttribute(Attributes.DEFAULT_STREAM_TYPE)) != null ? _b : void 0\n }\n });\n } else if (attrName === Attributes.LIVE_EDGE_OFFSET) {\n (_d = __privateGet(this, _mediaStore)) == null ? void 0 : _d.dispatch({\n type: \"optionschangerequest\",\n detail: {\n liveEdgeOffset: this.hasAttribute(Attributes.LIVE_EDGE_OFFSET) ? +this.getAttribute(Attributes.LIVE_EDGE_OFFSET) : void 0,\n seekToLiveOffset: !this.hasAttribute(Attributes.SEEK_TO_LIVE_OFFSET) ? +this.getAttribute(Attributes.LIVE_EDGE_OFFSET) : void 0\n }\n });\n } else if (attrName === Attributes.SEEK_TO_LIVE_OFFSET) {\n (_e = __privateGet(this, _mediaStore)) == null ? void 0 : _e.dispatch({\n type: \"optionschangerequest\",\n detail: {\n seekToLiveOffset: this.hasAttribute(Attributes.SEEK_TO_LIVE_OFFSET) ? +this.getAttribute(Attributes.SEEK_TO_LIVE_OFFSET) : void 0\n }\n });\n } else if (attrName === Attributes.NO_AUTO_SEEK_TO_LIVE) {\n (_f = __privateGet(this, _mediaStore)) == null ? void 0 : _f.dispatch({\n type: \"optionschangerequest\",\n detail: {\n noAutoSeekToLive: this.hasAttribute(Attributes.NO_AUTO_SEEK_TO_LIVE)\n }\n });\n } else if (attrName === Attributes.FULLSCREEN_ELEMENT) {\n const el = newValue ? (_g = this.getRootNode()) == null ? void 0 : _g.getElementById(newValue) : void 0;\n __privateSet(this, _fullscreenElement, el);\n (_h = __privateGet(this, _mediaStore)) == null ? void 0 : _h.dispatch({\n type: \"fullscreenelementchangerequest\",\n detail: this.fullscreenElement\n });\n } else if (attrName === Attributes.LANG && newValue !== oldValue) {\n setLanguage(newValue);\n (_i = __privateGet(this, _mediaStore)) == null ? void 0 : _i.dispatch({\n type: \"optionschangerequest\",\n detail: {\n mediaLang: newValue\n }\n });\n } else if (attrName === Attributes.LOOP && newValue !== oldValue) {\n (_j = __privateGet(this, _mediaStore)) == null ? void 0 : _j.dispatch({\n type: MediaUIEvents.MEDIA_LOOP_REQUEST,\n detail: newValue != null\n });\n } else if (attrName === Attributes.NO_VOLUME_PREF && newValue !== oldValue) {\n (_k = __privateGet(this, _mediaStore)) == null ? void 0 : _k.dispatch({\n type: \"optionschangerequest\",\n detail: {\n noVolumePref: this.hasAttribute(Attributes.NO_VOLUME_PREF)\n }\n });\n } else if (attrName === Attributes.NO_MUTED_PREF && newValue !== oldValue) {\n (_l = __privateGet(this, _mediaStore)) == null ? void 0 : _l.dispatch({\n type: \"optionschangerequest\",\n detail: {\n noMutedPref: this.hasAttribute(Attributes.NO_MUTED_PREF)\n }\n });\n }\n }\n connectedCallback() {\n var _a, _b;\n if (!__privateGet(this, _mediaStore) && !this.hasAttribute(Attributes.NO_DEFAULT_STORE)) {\n __privateMethod(this, _setupDefaultStore, setupDefaultStore_fn).call(this);\n }\n (_a = __privateGet(this, _mediaStore)) == null ? void 0 : _a.dispatch({\n type: \"documentelementchangerequest\",\n detail: document\n });\n super.connectedCallback();\n if (__privateGet(this, _mediaStore) && !__privateGet(this, _mediaStoreUnsubscribe)) {\n __privateSet(this, _mediaStoreUnsubscribe, (_b = __privateGet(this, _mediaStore)) == null ? void 0 : _b.subscribe(\n __privateGet(this, _mediaStateCallback)\n ));\n }\n this.hasAttribute(Attributes.NO_HOTKEYS) ? this.disableHotkeys() : this.enableHotkeys();\n }\n disconnectedCallback() {\n var _a, _b, _c, _d;\n (_a = super.disconnectedCallback) == null ? void 0 : _a.call(this);\n if (__privateGet(this, _mediaStore)) {\n (_b = __privateGet(this, _mediaStore)) == null ? void 0 : _b.dispatch({\n type: \"documentelementchangerequest\",\n detail: void 0\n });\n (_c = __privateGet(this, _mediaStore)) == null ? void 0 : _c.dispatch({\n type: MediaUIEvents.MEDIA_TOGGLE_SUBTITLES_REQUEST,\n detail: false\n });\n }\n if (__privateGet(this, _mediaStoreUnsubscribe)) {\n (_d = __privateGet(this, _mediaStoreUnsubscribe)) == null ? void 0 : _d.call(this);\n __privateSet(this, _mediaStoreUnsubscribe, void 0);\n }\n }\n /**\n * @override\n * @param {HTMLMediaElement} media\n */\n mediaSetCallback(media) {\n var _a;\n super.mediaSetCallback(media);\n (_a = __privateGet(this, _mediaStore)) == null ? void 0 : _a.dispatch({\n type: \"mediaelementchangerequest\",\n detail: media\n });\n if (!media.hasAttribute(\"tabindex\")) {\n media.tabIndex = -1;\n }\n }\n /**\n * @override\n * @param {HTMLMediaElement} media\n */\n mediaUnsetCallback(media) {\n var _a;\n super.mediaUnsetCallback(media);\n (_a = __privateGet(this, _mediaStore)) == null ? void 0 : _a.dispatch({\n type: \"mediaelementchangerequest\",\n detail: void 0\n });\n }\n propagateMediaState(stateName, state) {\n propagateMediaState(this.mediaStateReceivers, stateName, state);\n }\n associateElement(element) {\n if (!element)\n return;\n const { associatedElementSubscriptions } = this;\n if (associatedElementSubscriptions.has(element))\n return;\n const registerMediaStateReceiver = this.registerMediaStateReceiver.bind(this);\n const unregisterMediaStateReceiver = this.unregisterMediaStateReceiver.bind(this);\n const unsubscribe = monitorForMediaStateReceivers(\n element,\n registerMediaStateReceiver,\n unregisterMediaStateReceiver\n );\n Object.values(MediaUIEvents).forEach((eventName) => {\n element.addEventListener(eventName, __privateGet(this, _mediaStateEventHandler));\n });\n associatedElementSubscriptions.set(element, unsubscribe);\n }\n unassociateElement(element) {\n if (!element)\n return;\n const { associatedElementSubscriptions } = this;\n if (!associatedElementSubscriptions.has(element))\n return;\n const unsubscribe = associatedElementSubscriptions.get(element);\n unsubscribe();\n associatedElementSubscriptions.delete(element);\n Object.values(MediaUIEvents).forEach((eventName) => {\n element.removeEventListener(eventName, __privateGet(this, _mediaStateEventHandler));\n });\n }\n registerMediaStateReceiver(el) {\n if (!el)\n return;\n const els = this.mediaStateReceivers;\n const index = els.indexOf(el);\n if (index > -1)\n return;\n els.push(el);\n if (__privateGet(this, _mediaStore)) {\n Object.entries(__privateGet(this, _mediaStore).getState()).forEach(\n ([stateName, stateValue]) => {\n propagateMediaState([el], stateName, stateValue);\n }\n );\n }\n }\n unregisterMediaStateReceiver(el) {\n const els = this.mediaStateReceivers;\n const index = els.indexOf(el);\n if (index < 0)\n return;\n els.splice(index, 1);\n }\n enableHotkeys() {\n this.addEventListener(\"keydown\", __privateMethod(this, _keyDownHandler, keyDownHandler_fn));\n }\n disableHotkeys() {\n this.removeEventListener(\"keydown\", __privateMethod(this, _keyDownHandler, keyDownHandler_fn));\n this.removeEventListener(\"keyup\", __privateMethod(this, _keyUpHandler, keyUpHandler_fn));\n }\n get hotkeys() {\n return getStringAttr(this, Attributes.HOTKEYS);\n }\n set hotkeys(value) {\n setStringAttr(this, Attributes.HOTKEYS, value);\n }\n keyboardShortcutHandler(e) {\n var _a, _b, _c, _d, _e, _f, _g, _h, _i;\n const target = e.target;\n const keysUsed = ((_c = (_b = (_a = target.getAttribute(Attributes.KEYS_USED)) == null ? void 0 : _a.split(\" \")) != null ? _b : target == null ? void 0 : target.keysUsed) != null ? _c : []).map((key) => key === \"Space\" ? \" \" : key).filter(Boolean);\n if (keysUsed.includes(e.key)) {\n return;\n }\n let eventName, detail, evt;\n if (__privateGet(this, _hotKeys).contains(`no${e.key.toLowerCase()}`))\n return;\n if (e.key === \" \" && __privateGet(this, _hotKeys).contains(`nospace`))\n return;\n const isShiftSlash = e.shiftKey && (e.key === \"/\" || e.key === \"?\");\n if (isShiftSlash && __privateGet(this, _hotKeys).contains(\"noshift+/\"))\n return;\n switch (e.key) {\n case \" \":\n case \"k\":\n eventName = __privateGet(this, _mediaStore).getState().mediaPaused ? MediaUIEvents.MEDIA_PLAY_REQUEST : MediaUIEvents.MEDIA_PAUSE_REQUEST;\n this.dispatchEvent(\n new globalThis.CustomEvent(eventName, {\n composed: true,\n bubbles: true\n })\n );\n break;\n case \"m\":\n eventName = this.mediaStore.getState().mediaVolumeLevel === \"off\" ? MediaUIEvents.MEDIA_UNMUTE_REQUEST : MediaUIEvents.MEDIA_MUTE_REQUEST;\n this.dispatchEvent(\n new globalThis.CustomEvent(eventName, {\n composed: true,\n bubbles: true\n })\n );\n break;\n case \"f\":\n eventName = this.mediaStore.getState().mediaIsFullscreen ? MediaUIEvents.MEDIA_EXIT_FULLSCREEN_REQUEST : MediaUIEvents.MEDIA_ENTER_FULLSCREEN_REQUEST;\n this.dispatchEvent(\n new globalThis.CustomEvent(eventName, {\n composed: true,\n bubbles: true\n })\n );\n break;\n case \"c\":\n this.dispatchEvent(\n new globalThis.CustomEvent(\n MediaUIEvents.MEDIA_TOGGLE_SUBTITLES_REQUEST,\n { composed: true, bubbles: true }\n )\n );\n break;\n case \"ArrowLeft\":\n case \"j\": {\n const offsetValue = this.hasAttribute(\n Attributes.KEYBOARD_BACKWARD_SEEK_OFFSET\n ) ? +this.getAttribute(Attributes.KEYBOARD_BACKWARD_SEEK_OFFSET) : DEFAULT_SEEK_OFFSET;\n detail = Math.max(\n ((_d = this.mediaStore.getState().mediaCurrentTime) != null ? _d : 0) - offsetValue,\n 0\n );\n evt = new globalThis.CustomEvent(MediaUIEvents.MEDIA_SEEK_REQUEST, {\n composed: true,\n bubbles: true,\n detail\n });\n this.dispatchEvent(evt);\n break;\n }\n case \"ArrowRight\":\n case \"l\": {\n const offsetValue = this.hasAttribute(\n Attributes.KEYBOARD_FORWARD_SEEK_OFFSET\n ) ? +this.getAttribute(Attributes.KEYBOARD_FORWARD_SEEK_OFFSET) : DEFAULT_SEEK_OFFSET;\n detail = Math.max(\n ((_e = this.mediaStore.getState().mediaCurrentTime) != null ? _e : 0) + offsetValue,\n 0\n );\n evt = new globalThis.CustomEvent(MediaUIEvents.MEDIA_SEEK_REQUEST, {\n composed: true,\n bubbles: true,\n detail\n });\n this.dispatchEvent(evt);\n break;\n }\n case \"ArrowUp\": {\n const step = this.hasAttribute(Attributes.KEYBOARD_UP_VOLUME_STEP) ? +this.getAttribute(Attributes.KEYBOARD_UP_VOLUME_STEP) : DEFAULT_VOLUME_STEP;\n detail = Math.min(\n ((_f = this.mediaStore.getState().mediaVolume) != null ? _f : 1) + step,\n 1\n );\n evt = new globalThis.CustomEvent(MediaUIEvents.MEDIA_VOLUME_REQUEST, {\n composed: true,\n bubbles: true,\n detail\n });\n this.dispatchEvent(evt);\n break;\n }\n case \"ArrowDown\": {\n const step = this.hasAttribute(Attributes.KEYBOARD_DOWN_VOLUME_STEP) ? +this.getAttribute(Attributes.KEYBOARD_DOWN_VOLUME_STEP) : DEFAULT_VOLUME_STEP;\n detail = Math.max(\n ((_g = this.mediaStore.getState().mediaVolume) != null ? _g : 1) - step,\n 0\n );\n evt = new globalThis.CustomEvent(MediaUIEvents.MEDIA_VOLUME_REQUEST, {\n composed: true,\n bubbles: true,\n detail\n });\n this.dispatchEvent(evt);\n break;\n }\n case \"<\": {\n const playbackRate = (_h = this.mediaStore.getState().mediaPlaybackRate) != null ? _h : 1;\n detail = Math.max(\n playbackRate - DEFAULT_PLAYBACK_RATE_STEP,\n MIN_PLAYBACK_RATE\n ).toFixed(2);\n evt = new globalThis.CustomEvent(MediaUIEvents.MEDIA_PLAYBACK_RATE_REQUEST, {\n composed: true,\n bubbles: true,\n detail\n });\n this.dispatchEvent(evt);\n break;\n }\n case \">\": {\n const playbackRate = (_i = this.mediaStore.getState().mediaPlaybackRate) != null ? _i : 1;\n detail = Math.min(\n playbackRate + DEFAULT_PLAYBACK_RATE_STEP,\n MAX_PLAYBACK_RATE\n ).toFixed(2);\n evt = new globalThis.CustomEvent(MediaUIEvents.MEDIA_PLAYBACK_RATE_REQUEST, {\n composed: true,\n bubbles: true,\n detail\n });\n this.dispatchEvent(evt);\n break;\n }\n case \"/\":\n case \"?\": {\n if (e.shiftKey) {\n __privateMethod(this, _showKeyboardShortcutsDialog, showKeyboardShortcutsDialog_fn).call(this);\n }\n break;\n }\n case \"p\": {\n eventName = this.mediaStore.getState().mediaIsPip ? MediaUIEvents.MEDIA_EXIT_PIP_REQUEST : MediaUIEvents.MEDIA_ENTER_PIP_REQUEST;\n evt = new globalThis.CustomEvent(eventName, {\n composed: true,\n bubbles: true\n });\n this.dispatchEvent(evt);\n break;\n }\n default:\n break;\n }\n }\n}\n_hotKeys = new WeakMap();\n_fullscreenElement = new WeakMap();\n_mediaStore = new WeakMap();\n_keyboardShortcutsDialog = new WeakMap();\n_mediaStateCallback = new WeakMap();\n_mediaStoreUnsubscribe = new WeakMap();\n_mediaStateEventHandler = new WeakMap();\n_setupDefaultStore = new WeakSet();\nsetupDefaultStore_fn = function() {\n var _a;\n this.mediaStore = createMediaStore({\n media: this.media,\n fullscreenElement: this.fullscreenElement,\n options: {\n defaultSubtitles: this.hasAttribute(Attributes.DEFAULT_SUBTITLES),\n defaultDuration: this.hasAttribute(Attributes.DEFAULT_DURATION) ? +this.getAttribute(Attributes.DEFAULT_DURATION) : void 0,\n defaultStreamType: (\n /** @type {import('./media-store/state-mediator.js').StreamTypeValue} */\n (_a = this.getAttribute(\n Attributes.DEFAULT_STREAM_TYPE\n )) != null ? _a : void 0\n ),\n liveEdgeOffset: this.hasAttribute(Attributes.LIVE_EDGE_OFFSET) ? +this.getAttribute(Attributes.LIVE_EDGE_OFFSET) : void 0,\n seekToLiveOffset: this.hasAttribute(Attributes.SEEK_TO_LIVE_OFFSET) ? +this.getAttribute(Attributes.SEEK_TO_LIVE_OFFSET) : this.hasAttribute(Attributes.LIVE_EDGE_OFFSET) ? +this.getAttribute(Attributes.LIVE_EDGE_OFFSET) : void 0,\n noAutoSeekToLive: this.hasAttribute(Attributes.NO_AUTO_SEEK_TO_LIVE),\n // NOTE: This wasn't updated if it was changed later. Should it be? (CJP)\n noVolumePref: this.hasAttribute(Attributes.NO_VOLUME_PREF),\n noMutedPref: this.hasAttribute(Attributes.NO_MUTED_PREF),\n noSubtitlesLangPref: this.hasAttribute(\n Attributes.NO_SUBTITLES_LANG_PREF\n )\n }\n });\n};\n_keyUpHandler = new WeakSet();\nkeyUpHandler_fn = function(e) {\n const { key, shiftKey } = e;\n const isShiftSlash = shiftKey && (key === \"/\" || key === \"?\");\n const shouldHandle = isShiftSlash || ButtonPressedKeys.includes(key);\n if (!shouldHandle) {\n this.removeEventListener(\"keyup\", __privateMethod(this, _keyUpHandler, keyUpHandler_fn));\n return;\n }\n this.keyboardShortcutHandler(e);\n};\n_keyDownHandler = new WeakSet();\nkeyDownHandler_fn = function(e) {\n var _a;\n const { metaKey, altKey, key, shiftKey } = e;\n const isShiftSlash = shiftKey && (key === \"/\" || key === \"?\");\n if (isShiftSlash && ((_a = __privateGet(this, _keyboardShortcutsDialog)) == null ? void 0 : _a.open)) {\n this.removeEventListener(\"keyup\", __privateMethod(this, _keyUpHandler, keyUpHandler_fn));\n return;\n }\n if (metaKey || altKey || !isShiftSlash && !ButtonPressedKeys.includes(key)) {\n this.removeEventListener(\"keyup\", __privateMethod(this, _keyUpHandler, keyUpHandler_fn));\n return;\n }\n const target = e.target;\n const isRangeInput = target instanceof HTMLElement && (target.tagName.toLowerCase() === \"media-volume-range\" || target.tagName.toLowerCase() === \"media-time-range\");\n if ([\" \", \"ArrowLeft\", \"ArrowRight\", \"ArrowUp\", \"ArrowDown\"].includes(key) && !(__privateGet(this, _hotKeys).contains(`no${key.toLowerCase()}`) || key === \" \" && __privateGet(this, _hotKeys).contains(\"nospace\")) && !isRangeInput) {\n e.preventDefault();\n }\n this.addEventListener(\"keyup\", __privateMethod(this, _keyUpHandler, keyUpHandler_fn), { once: true });\n};\n_showKeyboardShortcutsDialog = new WeakSet();\nshowKeyboardShortcutsDialog_fn = function() {\n if (!__privateGet(this, _keyboardShortcutsDialog)) {\n __privateSet(this, _keyboardShortcutsDialog, document.createElement(\n \"media-keyboard-shortcuts-dialog\"\n ));\n this.appendChild(__privateGet(this, _keyboardShortcutsDialog));\n }\n __privateGet(this, _keyboardShortcutsDialog).open = true;\n};\nconst MEDIA_UI_ATTRIBUTE_NAMES = Object.values(MediaUIAttributes);\nconst MEDIA_UI_PROP_NAMES = Object.values(MediaUIProps);\nconst getMediaUIAttributesFrom = (child) => {\n var _a, _b, _c, _d;\n let { observedAttributes } = child.constructor;\n if (!observedAttributes && ((_a = child.nodeName) == null ? void 0 : _a.includes(\"-\"))) {\n globalThis.customElements.upgrade(child);\n ({ observedAttributes } = child.constructor);\n }\n const mediaChromeAttributesList = (_d = (_c = (_b = child == null ? void 0 : child.getAttribute) == null ? void 0 : _b.call(child, MediaStateReceiverAttributes.MEDIA_CHROME_ATTRIBUTES)) == null ? void 0 : _c.split) == null ? void 0 : _d.call(_c, /\\s+/);\n if (!Array.isArray(observedAttributes || mediaChromeAttributesList))\n return [];\n return (observedAttributes || mediaChromeAttributesList).filter(\n (attrName) => MEDIA_UI_ATTRIBUTE_NAMES.includes(attrName)\n );\n};\nconst hasMediaUIProps = (mediaStateReceiverCandidate) => {\n var _a, _b;\n if (((_a = mediaStateReceiverCandidate.nodeName) == null ? void 0 : _a.includes(\"-\")) && !!globalThis.customElements.get(\n (_b = mediaStateReceiverCandidate.nodeName) == null ? void 0 : _b.toLowerCase()\n ) && !(mediaStateReceiverCandidate instanceof globalThis.customElements.get(\n mediaStateReceiverCandidate.nodeName.toLowerCase()\n ))) {\n globalThis.customElements.upgrade(mediaStateReceiverCandidate);\n }\n return MEDIA_UI_PROP_NAMES.some(\n (propName) => propName in mediaStateReceiverCandidate\n );\n};\nconst isMediaStateReceiver = (child) => {\n return hasMediaUIProps(child) || !!getMediaUIAttributesFrom(child).length;\n};\nconst serializeTuple = (tuple) => {\n var _a;\n return (_a = tuple == null ? void 0 : tuple.join) == null ? void 0 : _a.call(tuple, \":\");\n};\nconst CustomAttrSerializer = {\n [MediaUIAttributes.MEDIA_SUBTITLES_LIST]: stringifyTextTrackList,\n [MediaUIAttributes.MEDIA_SUBTITLES_SHOWING]: stringifyTextTrackList,\n [MediaUIAttributes.MEDIA_SEEKABLE]: serializeTuple,\n [MediaUIAttributes.MEDIA_BUFFERED]: (tuples) => tuples == null ? void 0 : tuples.map(serializeTuple).join(\" \"),\n [MediaUIAttributes.MEDIA_PREVIEW_COORDS]: (coords) => coords == null ? void 0 : coords.join(\" \"),\n [MediaUIAttributes.MEDIA_RENDITION_LIST]: stringifyRenditionList,\n [MediaUIAttributes.MEDIA_AUDIO_TRACK_LIST]: stringifyAudioTrackList\n};\nconst setAttr = async (child, attrName, attrValue) => {\n var _a, _b;\n if (!child.isConnected) {\n await delay(0);\n }\n if (typeof attrValue === \"boolean\" || attrValue == null) {\n return setBooleanAttr(child, attrName, attrValue);\n }\n if (typeof attrValue === \"number\") {\n return setNumericAttr(child, attrName, attrValue);\n }\n if (typeof attrValue === \"string\") {\n return setStringAttr(child, attrName, attrValue);\n }\n if (Array.isArray(attrValue) && !attrValue.length) {\n return child.removeAttribute(attrName);\n }\n const val = (_b = (_a = CustomAttrSerializer[attrName]) == null ? void 0 : _a.call(CustomAttrSerializer, attrValue)) != null ? _b : attrValue;\n return child.setAttribute(attrName, val);\n};\nconst isMediaSlotElementDescendant = (el) => {\n var _a;\n return !!((_a = el.closest) == null ? void 0 : _a.call(el, '*[slot=\"media\"]'));\n};\nconst traverseForMediaStateReceivers = (rootNode, mediaStateReceiverCallback) => {\n if (isMediaSlotElementDescendant(rootNode)) {\n return;\n }\n const traverseForMediaStateReceiversSync = (rootNode2, mediaStateReceiverCallback2) => {\n var _a, _b;\n if (isMediaStateReceiver(rootNode2)) {\n mediaStateReceiverCallback2(rootNode2);\n }\n const { children = [] } = rootNode2 != null ? rootNode2 : {};\n const shadowChildren = (_b = (_a = rootNode2 == null ? void 0 : rootNode2.shadowRoot) == null ? void 0 : _a.children) != null ? _b : [];\n const allChildren = [...children, ...shadowChildren];\n allChildren.forEach(\n (child) => traverseForMediaStateReceivers(\n child,\n mediaStateReceiverCallback2\n )\n );\n };\n const name = rootNode == null ? void 0 : rootNode.nodeName.toLowerCase();\n if (name.includes(\"-\") && !isMediaStateReceiver(rootNode)) {\n globalThis.customElements.whenDefined(name).then(() => {\n traverseForMediaStateReceiversSync(rootNode, mediaStateReceiverCallback);\n });\n return;\n }\n traverseForMediaStateReceiversSync(rootNode, mediaStateReceiverCallback);\n};\nconst propagateMediaState = (els, stateName, val) => {\n els.forEach((el) => {\n if (stateName in el) {\n el[stateName] = val;\n return;\n }\n const relevantAttrs = getMediaUIAttributesFrom(el);\n const attrName = stateName.toLowerCase();\n if (!relevantAttrs.includes(attrName))\n return;\n setAttr(el, attrName, val);\n });\n};\nconst monitorForMediaStateReceivers = (rootNode, registerMediaStateReceiver, unregisterMediaStateReceiver) => {\n traverseForMediaStateReceivers(rootNode, registerMediaStateReceiver);\n const registerMediaStateReceiverHandler = (evt) => {\n var _a;\n const el = (_a = evt == null ? void 0 : evt.composedPath()[0]) != null ? _a : evt.target;\n registerMediaStateReceiver(el);\n };\n const unregisterMediaStateReceiverHandler = (evt) => {\n var _a;\n const el = (_a = evt == null ? void 0 : evt.composedPath()[0]) != null ? _a : evt.target;\n unregisterMediaStateReceiver(el);\n };\n rootNode.addEventListener(\n MediaUIEvents.REGISTER_MEDIA_STATE_RECEIVER,\n registerMediaStateReceiverHandler\n );\n rootNode.addEventListener(\n MediaUIEvents.UNREGISTER_MEDIA_STATE_RECEIVER,\n unregisterMediaStateReceiverHandler\n );\n const mutationCallback = (mutationsList) => {\n mutationsList.forEach((mutationRecord) => {\n const {\n addedNodes = [],\n removedNodes = [],\n type,\n target,\n attributeName\n } = mutationRecord;\n if (type === \"childList\") {\n Array.prototype.forEach.call(\n addedNodes,\n (node) => traverseForMediaStateReceivers(\n node,\n registerMediaStateReceiver\n )\n );\n Array.prototype.forEach.call(\n removedNodes,\n (node) => traverseForMediaStateReceivers(\n node,\n unregisterMediaStateReceiver\n )\n );\n } else if (type === \"attributes\" && attributeName === MediaStateReceiverAttributes.MEDIA_CHROME_ATTRIBUTES) {\n if (isMediaStateReceiver(target)) {\n registerMediaStateReceiver(target);\n } else {\n unregisterMediaStateReceiver(target);\n }\n }\n });\n };\n let prevSlotted = [];\n const slotChangeHandler = (event) => {\n const slotEl = event.target;\n if (slotEl.name === \"media\")\n return;\n prevSlotted.forEach(\n (node) => traverseForMediaStateReceivers(node, unregisterMediaStateReceiver)\n );\n prevSlotted = [\n ...slotEl.assignedElements({ flatten: true })\n ];\n prevSlotted.forEach(\n (node) => traverseForMediaStateReceivers(node, registerMediaStateReceiver)\n );\n };\n rootNode.addEventListener(\"slotchange\", slotChangeHandler);\n const observer = new MutationObserver(mutationCallback);\n observer.observe(rootNode, {\n childList: true,\n attributes: true,\n subtree: true\n });\n const unsubscribe = () => {\n traverseForMediaStateReceivers(rootNode, unregisterMediaStateReceiver);\n rootNode.removeEventListener(\"slotchange\", slotChangeHandler);\n observer.disconnect();\n rootNode.removeEventListener(\n MediaUIEvents.REGISTER_MEDIA_STATE_RECEIVER,\n registerMediaStateReceiverHandler\n );\n rootNode.removeEventListener(\n MediaUIEvents.UNREGISTER_MEDIA_STATE_RECEIVER,\n unregisterMediaStateReceiverHandler\n );\n };\n return unsubscribe;\n};\nif (!globalThis.customElements.get(\"media-controller\")) {\n globalThis.customElements.define(\"media-controller\", MediaController);\n}\nvar media_controller_default = MediaController;\nexport {\n Attributes,\n MediaController,\n media_controller_default as default\n};\n","import {\n closestComposedNode,\n getMediaController,\n getStringAttr,\n isElementVisible,\n namedNodeMapToObject,\n setStringAttr\n} from \"./utils/element-utils.js\";\nimport { globalThis } from \"./utils/server-safe-globals.js\";\nconst Attributes = {\n PLACEMENT: \"placement\",\n BOUNDS: \"bounds\"\n};\nfunction getTemplateHTML(_attrs) {\n return (\n /*html*/\n `\n <style>\n :host {\n --_tooltip-background-color: var(--media-tooltip-background-color, var(--media-secondary-color, rgba(20, 20, 30, .7)));\n --_tooltip-background: var(--media-tooltip-background, var(--_tooltip-background-color));\n --_tooltip-arrow-half-width: calc(var(--media-tooltip-arrow-width, 12px) / 2);\n --_tooltip-arrow-height: var(--media-tooltip-arrow-height, 5px);\n --_tooltip-arrow-background: var(--media-tooltip-arrow-color, var(--_tooltip-background-color));\n position: relative;\n pointer-events: none;\n display: var(--media-tooltip-display, inline-flex);\n justify-content: center;\n align-items: center;\n box-sizing: border-box;\n z-index: var(--media-tooltip-z-index, 1);\n background: var(--_tooltip-background);\n color: var(--media-text-color, var(--media-primary-color, rgb(238 238 238)));\n font: var(--media-font,\n var(--media-font-weight, 400)\n var(--media-font-size, 13px) /\n var(--media-text-content-height, var(--media-control-height, 18px))\n var(--media-font-family, helvetica neue, segoe ui, roboto, arial, sans-serif));\n padding: var(--media-tooltip-padding, .35em .7em);\n border: var(--media-tooltip-border, none);\n border-radius: var(--media-tooltip-border-radius, 5px);\n filter: var(--media-tooltip-filter, drop-shadow(0 0 4px rgba(0, 0, 0, .2)));\n white-space: var(--media-tooltip-white-space, nowrap);\n }\n\n :host([hidden]) {\n display: none;\n }\n\n img, svg {\n display: inline-block;\n }\n\n #arrow {\n position: absolute;\n width: 0px;\n height: 0px;\n border-style: solid;\n display: var(--media-tooltip-arrow-display, block);\n }\n\n :host(:not([placement])),\n :host([placement=\"top\"]) {\n position: absolute;\n bottom: calc(100% + var(--media-tooltip-distance, 12px));\n left: 50%;\n transform: translate(calc(-50% - var(--media-tooltip-offset-x, 0px)), 0);\n }\n :host(:not([placement])) #arrow,\n :host([placement=\"top\"]) #arrow {\n top: 100%;\n left: 50%;\n border-width: var(--_tooltip-arrow-height) var(--_tooltip-arrow-half-width) 0 var(--_tooltip-arrow-half-width);\n border-color: var(--_tooltip-arrow-background) transparent transparent transparent;\n transform: translate(calc(-50% + var(--media-tooltip-offset-x, 0px)), 0);\n }\n\n :host([placement=\"right\"]) {\n position: absolute;\n left: calc(100% + var(--media-tooltip-distance, 12px));\n top: 50%;\n transform: translate(0, -50%);\n }\n :host([placement=\"right\"]) #arrow {\n top: 50%;\n right: 100%;\n border-width: var(--_tooltip-arrow-half-width) var(--_tooltip-arrow-height) var(--_tooltip-arrow-half-width) 0;\n border-color: transparent var(--_tooltip-arrow-background) transparent transparent;\n transform: translate(0, -50%);\n }\n\n :host([placement=\"bottom\"]) {\n position: absolute;\n top: calc(100% + var(--media-tooltip-distance, 12px));\n left: 50%;\n transform: translate(calc(-50% - var(--media-tooltip-offset-x, 0px)), 0);\n }\n :host([placement=\"bottom\"]) #arrow {\n bottom: 100%;\n left: 50%;\n border-width: 0 var(--_tooltip-arrow-half-width) var(--_tooltip-arrow-height) var(--_tooltip-arrow-half-width);\n border-color: transparent transparent var(--_tooltip-arrow-background) transparent;\n transform: translate(calc(-50% + var(--media-tooltip-offset-x, 0px)), 0);\n }\n\n :host([placement=\"left\"]) {\n position: absolute;\n right: calc(100% + var(--media-tooltip-distance, 12px));\n top: 50%;\n transform: translate(0, -50%);\n }\n :host([placement=\"left\"]) #arrow {\n top: 50%;\n left: 100%;\n border-width: var(--_tooltip-arrow-half-width) 0 var(--_tooltip-arrow-half-width) var(--_tooltip-arrow-height);\n border-color: transparent transparent transparent var(--_tooltip-arrow-background);\n transform: translate(0, -50%);\n }\n \n :host([placement=\"none\"]) #arrow {\n display: none;\n }\n </style>\n <slot></slot>\n <div id=\"arrow\"></div>\n `\n );\n}\nclass MediaTooltip extends globalThis.HTMLElement {\n constructor() {\n super();\n // Adjusts tooltip position relative to the closest specified container\n // such that it doesn't spill out of the left or right sides. Only applies\n // to 'top' and 'bottom' placed tooltips.\n this.updateXOffset = () => {\n var _a;\n if (!isElementVisible(this, { checkOpacity: false, checkVisibilityCSS: false }))\n return;\n const placement = this.placement;\n if (placement === \"left\" || placement === \"right\") {\n this.style.removeProperty(\"--media-tooltip-offset-x\");\n return;\n }\n const tooltipStyle = getComputedStyle(this);\n const containingEl = (_a = closestComposedNode(this, \"#\" + this.bounds)) != null ? _a : getMediaController(this);\n if (!containingEl)\n return;\n const { x: containerX, width: containerWidth } = containingEl.getBoundingClientRect();\n const { x: tooltipX, width: tooltipWidth } = this.getBoundingClientRect();\n const tooltipRight = tooltipX + tooltipWidth;\n const containerRight = containerX + containerWidth;\n const offsetXVal = tooltipStyle.getPropertyValue(\n \"--media-tooltip-offset-x\"\n );\n const currOffsetX = offsetXVal ? parseFloat(offsetXVal.replace(\"px\", \"\")) : 0;\n const marginVal = tooltipStyle.getPropertyValue(\n \"--media-tooltip-container-margin\"\n );\n const currMargin = marginVal ? parseFloat(marginVal.replace(\"px\", \"\")) : 0;\n const leftDiff = tooltipX - containerX + currOffsetX - currMargin;\n const rightDiff = tooltipRight - containerRight + currOffsetX + currMargin;\n if (leftDiff < 0) {\n this.style.setProperty(\"--media-tooltip-offset-x\", `${leftDiff}px`);\n return;\n }\n if (rightDiff > 0) {\n this.style.setProperty(\"--media-tooltip-offset-x\", `${rightDiff}px`);\n return;\n }\n this.style.removeProperty(\"--media-tooltip-offset-x\");\n };\n if (!this.shadowRoot) {\n this.attachShadow(this.constructor.shadowRootOptions);\n const attrs = namedNodeMapToObject(this.attributes);\n this.shadowRoot.innerHTML = this.constructor.getTemplateHTML(attrs);\n }\n this.arrowEl = this.shadowRoot.querySelector(\"#arrow\");\n if (Object.prototype.hasOwnProperty.call(this, \"placement\")) {\n const placement = this.placement;\n delete this.placement;\n this.placement = placement;\n }\n }\n static get observedAttributes() {\n return [Attributes.PLACEMENT, Attributes.BOUNDS];\n }\n /**\n * Get or set tooltip placement\n */\n get placement() {\n return getStringAttr(this, Attributes.PLACEMENT);\n }\n set placement(value) {\n setStringAttr(this, Attributes.PLACEMENT, value);\n }\n /**\n * Get or set tooltip container ID selector that will constrain the tooltips\n * horizontal position.\n */\n get bounds() {\n return getStringAttr(this, Attributes.BOUNDS);\n }\n set bounds(value) {\n setStringAttr(this, Attributes.BOUNDS, value);\n }\n}\nMediaTooltip.shadowRootOptions = { mode: \"open\" };\nMediaTooltip.getTemplateHTML = getTemplateHTML;\nif (!globalThis.customElements.get(\"media-tooltip\")) {\n globalThis.customElements.define(\"media-tooltip\", MediaTooltip);\n}\nvar media_tooltip_default = MediaTooltip;\nexport {\n Attributes,\n media_tooltip_default as default\n};\n","var __accessCheck = (obj, member, msg) => {\n if (!member.has(obj))\n throw TypeError(\"Cannot \" + msg);\n};\nvar __privateGet = (obj, member, getter) => {\n __accessCheck(obj, member, \"read from private field\");\n return getter ? getter.call(obj) : member.get(obj);\n};\nvar __privateAdd = (obj, member, value) => {\n if (member.has(obj))\n throw TypeError(\"Cannot add the same private member more than once\");\n member instanceof WeakSet ? member.add(obj) : member.set(obj, value);\n};\nvar __privateSet = (obj, member, value, setter) => {\n __accessCheck(obj, member, \"write to private field\");\n setter ? setter.call(obj, value) : member.set(obj, value);\n return value;\n};\nvar __privateMethod = (obj, member, method) => {\n __accessCheck(obj, member, \"access private method\");\n return method;\n};\nvar _mediaController, _clickListener, _positionTooltip, _keyupListener, _keydownListener, _setupTooltip, setupTooltip_fn;\nimport {\n MediaStateReceiverAttributes,\n MediaUIAttributes\n} from \"./constants.js\";\nimport MediaTooltip from \"./media-tooltip.js\";\nimport {\n getBooleanAttr,\n getOrInsertCSSRule,\n getStringAttr,\n namedNodeMapToObject,\n setBooleanAttr,\n setStringAttr\n} from \"./utils/element-utils.js\";\nimport { globalThis } from \"./utils/server-safe-globals.js\";\nconst Attributes = {\n TOOLTIP_PLACEMENT: \"tooltipplacement\",\n DISABLED: \"disabled\",\n NO_TOOLTIP: \"notooltip\"\n};\nfunction getTemplateHTML(_attrs, _props = {}) {\n return (\n /*html*/\n `\n <style>\n :host {\n position: relative;\n font: var(--media-font,\n var(--media-font-weight, bold)\n var(--media-font-size, 14px) /\n var(--media-text-content-height, var(--media-control-height, 24px))\n var(--media-font-family, helvetica neue, segoe ui, roboto, arial, sans-serif));\n color: var(--media-text-color, var(--media-primary-color, rgb(238 238 238)));\n background: var(--media-control-background, var(--media-secondary-color, rgb(20 20 30 / .7)));\n padding: var(--media-button-padding, var(--media-control-padding, 10px));\n justify-content: var(--media-button-justify-content, center);\n display: inline-flex;\n align-items: center;\n vertical-align: middle;\n box-sizing: border-box;\n transition: background .15s linear;\n pointer-events: auto;\n cursor: var(--media-cursor, pointer);\n -webkit-tap-highlight-color: transparent;\n }\n\n ${/*\n Only show outline when keyboard focusing.\n https://drafts.csswg.org/selectors-4/#the-focus-visible-pseudo\n */\n \"\"}\n :host(:focus-visible) {\n box-shadow: var(--media-focus-box-shadow, inset 0 0 0 2px rgb(27 127 204 / .9));\n outline: 0;\n }\n ${/*\n * hide default focus ring, particularly when using mouse\n */\n \"\"}\n :host(:where(:focus)) {\n box-shadow: none;\n outline: 0;\n }\n\n :host(:hover) {\n background: var(--media-control-hover-background, rgba(50 50 70 / .7));\n }\n\n svg, img, ::slotted(svg), ::slotted(img) {\n width: var(--media-button-icon-width);\n height: var(--media-button-icon-height, var(--media-control-height, 24px));\n transform: var(--media-button-icon-transform);\n transition: var(--media-button-icon-transition);\n fill: var(--media-icon-color, var(--media-primary-color, rgb(238 238 238)));\n vertical-align: middle;\n max-width: 100%;\n max-height: 100%;\n min-width: 100%;\n }\n\n media-tooltip {\n ${/** Make sure unpositioned tooltip doesn't cause page overflow (scroll). */\n \"\"}\n max-width: 0;\n overflow-x: clip;\n opacity: 0;\n transition: opacity .3s, max-width 0s 9s;\n }\n\n :host(:hover) media-tooltip,\n :host(:focus-visible) media-tooltip {\n max-width: 100vw;\n opacity: 1;\n transition: opacity .3s;\n }\n\n :host([notooltip]) slot[name=\"tooltip\"] {\n display: none;\n }\n </style>\n\n ${this.getSlotTemplateHTML(_attrs, _props)}\n\n <slot name=\"tooltip\">\n <media-tooltip part=\"tooltip\" aria-hidden=\"true\">\n <template shadowrootmode=\"${MediaTooltip.shadowRootOptions.mode}\">\n ${MediaTooltip.getTemplateHTML({})}\n </template>\n <slot name=\"tooltip-content\">\n ${this.getTooltipContentHTML(_attrs)}\n </slot>\n </media-tooltip>\n </slot>\n `\n );\n}\nfunction getSlotTemplateHTML(_attrs, _props) {\n return (\n /*html*/\n `\n <slot></slot>\n `\n );\n}\nfunction getTooltipContentHTML() {\n return \"\";\n}\nclass MediaChromeButton extends globalThis.HTMLElement {\n constructor() {\n super();\n // Called when we know the tooltip is ready / defined\n __privateAdd(this, _setupTooltip);\n __privateAdd(this, _mediaController, void 0);\n this.preventClick = false;\n this.tooltipEl = null;\n __privateAdd(this, _clickListener, (e) => {\n if (!this.preventClick) {\n this.handleClick(e);\n }\n setTimeout(__privateGet(this, _positionTooltip), 0);\n });\n __privateAdd(this, _positionTooltip, () => {\n var _a, _b;\n (_b = (_a = this.tooltipEl) == null ? void 0 : _a.updateXOffset) == null ? void 0 : _b.call(_a);\n });\n // NOTE: There are definitely some \"false positive\" cases with multi-key pressing,\n // but this should be good enough for most use cases.\n __privateAdd(this, _keyupListener, (e) => {\n const { key } = e;\n if (!this.keysUsed.includes(key)) {\n this.removeEventListener(\"keyup\", __privateGet(this, _keyupListener));\n return;\n }\n if (!this.preventClick) {\n this.handleClick(e);\n }\n });\n __privateAdd(this, _keydownListener, (e) => {\n const { metaKey, altKey, key } = e;\n if (metaKey || altKey || !this.keysUsed.includes(key)) {\n this.removeEventListener(\"keyup\", __privateGet(this, _keyupListener));\n return;\n }\n this.addEventListener(\"keyup\", __privateGet(this, _keyupListener), { once: true });\n });\n if (!this.shadowRoot) {\n this.attachShadow(this.constructor.shadowRootOptions);\n const attrs = namedNodeMapToObject(this.attributes);\n const html = this.constructor.getTemplateHTML(attrs);\n this.shadowRoot.setHTMLUnsafe ? this.shadowRoot.setHTMLUnsafe(html) : this.shadowRoot.innerHTML = html;\n }\n this.tooltipEl = this.shadowRoot.querySelector(\"media-tooltip\");\n }\n static get observedAttributes() {\n return [\n \"disabled\",\n Attributes.TOOLTIP_PLACEMENT,\n MediaStateReceiverAttributes.MEDIA_CONTROLLER,\n MediaUIAttributes.MEDIA_LANG\n ];\n }\n enable() {\n this.addEventListener(\"click\", __privateGet(this, _clickListener));\n this.addEventListener(\"keydown\", __privateGet(this, _keydownListener));\n this.tabIndex = 0;\n }\n disable() {\n this.removeEventListener(\"click\", __privateGet(this, _clickListener));\n this.removeEventListener(\"keydown\", __privateGet(this, _keydownListener));\n this.removeEventListener(\"keyup\", __privateGet(this, _keyupListener));\n this.tabIndex = -1;\n }\n attributeChangedCallback(attrName, oldValue, newValue) {\n var _a, _b, _c, _d, _e;\n if (attrName === MediaStateReceiverAttributes.MEDIA_CONTROLLER) {\n if (oldValue) {\n (_b = (_a = __privateGet(this, _mediaController)) == null ? void 0 : _a.unassociateElement) == null ? void 0 : _b.call(_a, this);\n __privateSet(this, _mediaController, null);\n }\n if (newValue && this.isConnected) {\n __privateSet(this, _mediaController, (_c = this.getRootNode()) == null ? void 0 : _c.getElementById(newValue));\n (_e = (_d = __privateGet(this, _mediaController)) == null ? void 0 : _d.associateElement) == null ? void 0 : _e.call(_d, this);\n }\n } else if (attrName === \"disabled\" && newValue !== oldValue) {\n if (newValue == null) {\n this.enable();\n } else {\n this.disable();\n }\n } else if (attrName === Attributes.TOOLTIP_PLACEMENT && this.tooltipEl && newValue !== oldValue) {\n this.tooltipEl.placement = newValue;\n } else if (attrName === MediaUIAttributes.MEDIA_LANG) {\n this.shadowRoot.querySelector('slot[name=\"tooltip-content\"]').innerHTML = this.constructor.getTooltipContentHTML();\n }\n __privateGet(this, _positionTooltip).call(this);\n }\n connectedCallback() {\n var _a, _b, _c;\n const { style } = getOrInsertCSSRule(this.shadowRoot, \":host\");\n style.setProperty(\n \"display\",\n `var(--media-control-display, var(--${this.localName}-display, inline-flex))`\n );\n if (!this.hasAttribute(\"disabled\")) {\n this.enable();\n } else {\n this.disable();\n }\n this.setAttribute(\"role\", \"button\");\n const mediaControllerId = this.getAttribute(\n MediaStateReceiverAttributes.MEDIA_CONTROLLER\n );\n if (mediaControllerId) {\n __privateSet(\n this,\n _mediaController,\n // @ts-ignore\n (_a = this.getRootNode()) == null ? void 0 : _a.getElementById(mediaControllerId)\n );\n (_c = (_b = __privateGet(this, _mediaController)) == null ? void 0 : _b.associateElement) == null ? void 0 : _c.call(_b, this);\n }\n globalThis.customElements.whenDefined(\"media-tooltip\").then(() => __privateMethod(this, _setupTooltip, setupTooltip_fn).call(this));\n }\n disconnectedCallback() {\n var _a, _b;\n this.disable();\n (_b = (_a = __privateGet(this, _mediaController)) == null ? void 0 : _a.unassociateElement) == null ? void 0 : _b.call(_a, this);\n __privateSet(this, _mediaController, null);\n this.removeEventListener(\"mouseenter\", __privateGet(this, _positionTooltip));\n this.removeEventListener(\"focus\", __privateGet(this, _positionTooltip));\n this.removeEventListener(\"click\", __privateGet(this, _clickListener));\n }\n get keysUsed() {\n return [\"Enter\", \" \"];\n }\n /**\n * Get or set tooltip placement\n */\n get tooltipPlacement() {\n return getStringAttr(this, Attributes.TOOLTIP_PLACEMENT);\n }\n set tooltipPlacement(value) {\n setStringAttr(this, Attributes.TOOLTIP_PLACEMENT, value);\n }\n get mediaController() {\n return getStringAttr(this, MediaStateReceiverAttributes.MEDIA_CONTROLLER);\n }\n set mediaController(value) {\n setStringAttr(this, MediaStateReceiverAttributes.MEDIA_CONTROLLER, value);\n }\n get disabled() {\n return getBooleanAttr(this, Attributes.DISABLED);\n }\n set disabled(value) {\n setBooleanAttr(this, Attributes.DISABLED, value);\n }\n get noTooltip() {\n return getBooleanAttr(this, Attributes.NO_TOOLTIP);\n }\n set noTooltip(value) {\n setBooleanAttr(this, Attributes.NO_TOOLTIP, value);\n }\n /**\n * @abstract\n * @argument {Event} e\n */\n handleClick(e) {\n }\n // eslint-disable-line\n}\n_mediaController = new WeakMap();\n_clickListener = new WeakMap();\n_positionTooltip = new WeakMap();\n_keyupListener = new WeakMap();\n_keydownListener = new WeakMap();\n_setupTooltip = new WeakSet();\nsetupTooltip_fn = function() {\n this.addEventListener(\"mouseenter\", __privateGet(this, _positionTooltip));\n this.addEventListener(\"focus\", __privateGet(this, _positionTooltip));\n this.addEventListener(\"click\", __privateGet(this, _clickListener));\n const initialPlacement = this.tooltipPlacement;\n if (initialPlacement && this.tooltipEl) {\n this.tooltipEl.placement = initialPlacement;\n }\n};\nMediaChromeButton.shadowRootOptions = { mode: \"open\" };\nMediaChromeButton.getTemplateHTML = getTemplateHTML;\nMediaChromeButton.getSlotTemplateHTML = getSlotTemplateHTML;\nMediaChromeButton.getTooltipContentHTML = getTooltipContentHTML;\nif (!globalThis.customElements.get(\"media-chrome-button\")) {\n globalThis.customElements.define(\"media-chrome-button\", MediaChromeButton);\n}\nvar media_chrome_button_default = MediaChromeButton;\nexport {\n MediaChromeButton,\n media_chrome_button_default as default\n};\n","import { MediaChromeButton } from \"./media-chrome-button.js\";\nimport { globalThis } from \"./utils/server-safe-globals.js\";\nimport { MediaUIEvents, MediaUIAttributes } from \"./constants.js\";\nimport { t } from \"./utils/i18n.js\";\nimport {\n getStringAttr,\n setStringAttr,\n getBooleanAttr,\n setBooleanAttr\n} from \"./utils/element-utils.js\";\nconst airplayIcon = `<svg aria-hidden=\"true\" viewBox=\"0 0 26 24\">\n <path d=\"M22.13 3H3.87a.87.87 0 0 0-.87.87v13.26a.87.87 0 0 0 .87.87h3.4L9 16H5V5h16v11h-4l1.72 2h3.4a.87.87 0 0 0 .87-.87V3.87a.87.87 0 0 0-.86-.87Zm-8.75 11.44a.5.5 0 0 0-.76 0l-4.91 5.73a.5.5 0 0 0 .38.83h9.82a.501.501 0 0 0 .38-.83l-4.91-5.73Z\"/>\n</svg>\n`;\nfunction getSlotTemplateHTML(_attrs) {\n return (\n /*html*/\n `\n <style>\n :host([${MediaUIAttributes.MEDIA_IS_AIRPLAYING}]) slot[name=icon] slot:not([name=exit]) {\n display: none !important;\n }\n\n ${/* Double negative, but safer if display doesn't equal 'block' */\n \"\"}\n :host(:not([${MediaUIAttributes.MEDIA_IS_AIRPLAYING}])) slot[name=icon] slot:not([name=enter]) {\n display: none !important;\n }\n\n :host([${MediaUIAttributes.MEDIA_IS_AIRPLAYING}]) slot[name=tooltip-enter],\n :host(:not([${MediaUIAttributes.MEDIA_IS_AIRPLAYING}])) slot[name=tooltip-exit] {\n display: none;\n }\n </style>\n\n <slot name=\"icon\">\n <slot name=\"enter\">${airplayIcon}</slot>\n <slot name=\"exit\">${airplayIcon}</slot>\n </slot>\n `\n );\n}\nfunction getTooltipContentHTML() {\n return (\n /*html*/\n `\n <slot name=\"tooltip-enter\">${t(\"start airplay\")}</slot>\n <slot name=\"tooltip-exit\">${t(\"stop airplay\")}</slot>\n `\n );\n}\nconst updateAriaLabel = (el) => {\n const label = el.mediaIsAirplaying ? t(\"stop airplay\") : t(\"start airplay\");\n el.setAttribute(\"aria-label\", label);\n};\nclass MediaAirplayButton extends MediaChromeButton {\n static get observedAttributes() {\n return [\n ...super.observedAttributes,\n MediaUIAttributes.MEDIA_IS_AIRPLAYING,\n MediaUIAttributes.MEDIA_AIRPLAY_UNAVAILABLE\n ];\n }\n connectedCallback() {\n super.connectedCallback();\n updateAriaLabel(this);\n }\n attributeChangedCallback(attrName, oldValue, newValue) {\n super.attributeChangedCallback(attrName, oldValue, newValue);\n if (attrName === MediaUIAttributes.MEDIA_IS_AIRPLAYING) {\n updateAriaLabel(this);\n }\n }\n /**\n * Are we currently airplaying\n */\n get mediaIsAirplaying() {\n return getBooleanAttr(this, MediaUIAttributes.MEDIA_IS_AIRPLAYING);\n }\n set mediaIsAirplaying(value) {\n setBooleanAttr(this, MediaUIAttributes.MEDIA_IS_AIRPLAYING, value);\n }\n /**\n * Airplay unavailability state\n */\n get mediaAirplayUnavailable() {\n return getStringAttr(this, MediaUIAttributes.MEDIA_AIRPLAY_UNAVAILABLE);\n }\n set mediaAirplayUnavailable(value) {\n setStringAttr(this, MediaUIAttributes.MEDIA_AIRPLAY_UNAVAILABLE, value);\n }\n handleClick() {\n const evt = new globalThis.CustomEvent(\n MediaUIEvents.MEDIA_AIRPLAY_REQUEST,\n {\n composed: true,\n bubbles: true\n }\n );\n this.dispatchEvent(evt);\n }\n}\nMediaAirplayButton.getSlotTemplateHTML = getSlotTemplateHTML;\nMediaAirplayButton.getTooltipContentHTML = getTooltipContentHTML;\nif (!globalThis.customElements.get(\"media-airplay-button\")) {\n globalThis.customElements.define(\"media-airplay-button\", MediaAirplayButton);\n}\nvar media_airplay_button_default = MediaAirplayButton;\nexport {\n media_airplay_button_default as default\n};\n","import { MediaChromeButton } from \"./media-chrome-button.js\";\nimport { globalThis } from \"./utils/server-safe-globals.js\";\nimport { MediaUIAttributes, MediaUIEvents } from \"./constants.js\";\nimport {\n areSubsOn,\n parseTextTracksStr,\n stringifyTextTrackList\n} from \"./utils/captions.js\";\nimport { t } from \"./utils/i18n.js\";\nconst ccIconOn = `<svg aria-hidden=\"true\" viewBox=\"0 0 26 24\">\n <path d=\"M22.83 5.68a2.58 2.58 0 0 0-2.3-2.5c-3.62-.24-11.44-.24-15.06 0a2.58 2.58 0 0 0-2.3 2.5c-.23 4.21-.23 8.43 0 12.64a2.58 2.58 0 0 0 2.3 2.5c3.62.24 11.44.24 15.06 0a2.58 2.58 0 0 0 2.3-2.5c.23-4.21.23-8.43 0-12.64Zm-11.39 9.45a3.07 3.07 0 0 1-1.91.57 3.06 3.06 0 0 1-2.34-1 3.75 3.75 0 0 1-.92-2.67 3.92 3.92 0 0 1 .92-2.77 3.18 3.18 0 0 1 2.43-1 2.94 2.94 0 0 1 2.13.78c.364.359.62.813.74 1.31l-1.43.35a1.49 1.49 0 0 0-1.51-1.17 1.61 1.61 0 0 0-1.29.58 2.79 2.79 0 0 0-.5 1.89 3 3 0 0 0 .49 1.93 1.61 1.61 0 0 0 1.27.58 1.48 1.48 0 0 0 1-.37 2.1 2.1 0 0 0 .59-1.14l1.4.44a3.23 3.23 0 0 1-1.07 1.69Zm7.22 0a3.07 3.07 0 0 1-1.91.57 3.06 3.06 0 0 1-2.34-1 3.75 3.75 0 0 1-.92-2.67 3.88 3.88 0 0 1 .93-2.77 3.14 3.14 0 0 1 2.42-1 3 3 0 0 1 2.16.82 2.8 2.8 0 0 1 .73 1.31l-1.43.35a1.49 1.49 0 0 0-1.51-1.21 1.61 1.61 0 0 0-1.29.58A2.79 2.79 0 0 0 15 12a3 3 0 0 0 .49 1.93 1.61 1.61 0 0 0 1.27.58 1.44 1.44 0 0 0 1-.37 2.1 2.1 0 0 0 .6-1.15l1.4.44a3.17 3.17 0 0 1-1.1 1.7Z\"/>\n</svg>`;\nconst ccIconOff = `<svg aria-hidden=\"true\" viewBox=\"0 0 26 24\">\n <path d=\"M17.73 14.09a1.4 1.4 0 0 1-1 .37 1.579 1.579 0 0 1-1.27-.58A3 3 0 0 1 15 12a2.8 2.8 0 0 1 .5-1.85 1.63 1.63 0 0 1 1.29-.57 1.47 1.47 0 0 1 1.51 1.2l1.43-.34A2.89 2.89 0 0 0 19 9.07a3 3 0 0 0-2.14-.78 3.14 3.14 0 0 0-2.42 1 3.91 3.91 0 0 0-.93 2.78 3.74 3.74 0 0 0 .92 2.66 3.07 3.07 0 0 0 2.34 1 3.07 3.07 0 0 0 1.91-.57 3.17 3.17 0 0 0 1.07-1.74l-1.4-.45c-.083.43-.3.822-.62 1.12Zm-7.22 0a1.43 1.43 0 0 1-1 .37 1.58 1.58 0 0 1-1.27-.58A3 3 0 0 1 7.76 12a2.8 2.8 0 0 1 .5-1.85 1.63 1.63 0 0 1 1.29-.57 1.47 1.47 0 0 1 1.51 1.2l1.43-.34a2.81 2.81 0 0 0-.74-1.32 2.94 2.94 0 0 0-2.13-.78 3.18 3.18 0 0 0-2.43 1 4 4 0 0 0-.92 2.78 3.74 3.74 0 0 0 .92 2.66 3.07 3.07 0 0 0 2.34 1 3.07 3.07 0 0 0 1.91-.57 3.23 3.23 0 0 0 1.07-1.74l-1.4-.45a2.06 2.06 0 0 1-.6 1.07Zm12.32-8.41a2.59 2.59 0 0 0-2.3-2.51C18.72 3.05 15.86 3 13 3c-2.86 0-5.72.05-7.53.17a2.59 2.59 0 0 0-2.3 2.51c-.23 4.207-.23 8.423 0 12.63a2.57 2.57 0 0 0 2.3 2.5c1.81.13 4.67.19 7.53.19 2.86 0 5.72-.06 7.53-.19a2.57 2.57 0 0 0 2.3-2.5c.23-4.207.23-8.423 0-12.63Zm-1.49 12.53a1.11 1.11 0 0 1-.91 1.11c-1.67.11-4.45.18-7.43.18-2.98 0-5.76-.07-7.43-.18a1.11 1.11 0 0 1-.91-1.11c-.21-4.14-.21-8.29 0-12.43a1.11 1.11 0 0 1 .91-1.11C7.24 4.56 10 4.49 13 4.49s5.76.07 7.43.18a1.11 1.11 0 0 1 .91 1.11c.21 4.14.21 8.29 0 12.43Z\"/>\n</svg>`;\nfunction getSlotTemplateHTML(_attrs) {\n return (\n /*html*/\n `\n <style>\n :host([aria-checked=\"true\"]) slot[name=off] {\n display: none !important;\n }\n\n ${/* Double negative, but safer if display doesn't equal 'block' */\n \"\"}\n :host(:not([aria-checked=\"true\"])) slot[name=on] {\n display: none !important;\n }\n\n :host([aria-checked=\"true\"]) slot[name=tooltip-enable],\n :host(:not([aria-checked=\"true\"])) slot[name=tooltip-disable] {\n display: none;\n }\n </style>\n\n <slot name=\"icon\">\n <slot name=\"on\">${ccIconOn}</slot>\n <slot name=\"off\">${ccIconOff}</slot>\n </slot>\n `\n );\n}\nfunction getTooltipContentHTML() {\n return (\n /*html*/\n `\n <slot name=\"tooltip-enable\">${t(\"Enable captions\")}</slot>\n <slot name=\"tooltip-disable\">${t(\"Disable captions\")}</slot>\n `\n );\n}\nconst updateAriaChecked = (el) => {\n el.setAttribute(\"aria-checked\", areSubsOn(el).toString());\n};\nclass MediaCaptionsButton extends MediaChromeButton {\n static get observedAttributes() {\n return [\n ...super.observedAttributes,\n MediaUIAttributes.MEDIA_SUBTITLES_LIST,\n MediaUIAttributes.MEDIA_SUBTITLES_SHOWING\n ];\n }\n connectedCallback() {\n super.connectedCallback();\n this.setAttribute(\"role\", \"switch\");\n this.setAttribute(\"aria-label\", t(\"closed captions\"));\n updateAriaChecked(this);\n }\n attributeChangedCallback(attrName, oldValue, newValue) {\n super.attributeChangedCallback(attrName, oldValue, newValue);\n if (attrName === MediaUIAttributes.MEDIA_SUBTITLES_SHOWING) {\n updateAriaChecked(this);\n }\n }\n /**\n * An array of TextTrack-like objects.\n * Objects must have the properties: kind, language, and label.\n */\n get mediaSubtitlesList() {\n return getSubtitlesListAttr(this, MediaUIAttributes.MEDIA_SUBTITLES_LIST);\n }\n set mediaSubtitlesList(list) {\n setSubtitlesListAttr(this, MediaUIAttributes.MEDIA_SUBTITLES_LIST, list);\n }\n /**\n * An array of TextTrack-like objects.\n * Objects must have the properties: kind, language, and label.\n */\n get mediaSubtitlesShowing() {\n return getSubtitlesListAttr(\n this,\n MediaUIAttributes.MEDIA_SUBTITLES_SHOWING\n );\n }\n set mediaSubtitlesShowing(list) {\n setSubtitlesListAttr(this, MediaUIAttributes.MEDIA_SUBTITLES_SHOWING, list);\n }\n handleClick() {\n this.dispatchEvent(\n new globalThis.CustomEvent(MediaUIEvents.MEDIA_TOGGLE_SUBTITLES_REQUEST, {\n composed: true,\n bubbles: true\n })\n );\n }\n}\nMediaCaptionsButton.getSlotTemplateHTML = getSlotTemplateHTML;\nMediaCaptionsButton.getTooltipContentHTML = getTooltipContentHTML;\nconst getSubtitlesListAttr = (el, attrName) => {\n const attrVal = el.getAttribute(attrName);\n return attrVal ? parseTextTracksStr(attrVal) : [];\n};\nconst setSubtitlesListAttr = (el, attrName, list) => {\n if (!(list == null ? void 0 : list.length)) {\n el.removeAttribute(attrName);\n return;\n }\n const newValStr = stringifyTextTrackList(list);\n const oldVal = el.getAttribute(attrName);\n if (oldVal === newValStr)\n return;\n el.setAttribute(attrName, newValStr);\n};\nif (!globalThis.customElements.get(\"media-captions-button\")) {\n globalThis.customElements.define(\n \"media-captions-button\",\n MediaCaptionsButton\n );\n}\nvar media_captions_button_default = MediaCaptionsButton;\nexport {\n MediaCaptionsButton,\n media_captions_button_default as default\n};\n","import { MediaChromeButton } from \"./media-chrome-button.js\";\nimport { globalThis } from \"./utils/server-safe-globals.js\";\nimport { MediaUIEvents, MediaUIAttributes } from \"./constants.js\";\nimport { t } from \"./utils/i18n.js\";\nimport {\n getBooleanAttr,\n setBooleanAttr,\n getStringAttr,\n setStringAttr\n} from \"./utils/element-utils.js\";\nconst enterIcon = `<svg aria-hidden=\"true\" viewBox=\"0 0 24 24\"><g><path class=\"cast_caf_icon_arch0\" d=\"M1,18 L1,21 L4,21 C4,19.3 2.66,18 1,18 L1,18 Z\"/><path class=\"cast_caf_icon_arch1\" d=\"M1,14 L1,16 C3.76,16 6,18.2 6,21 L8,21 C8,17.13 4.87,14 1,14 L1,14 Z\"/><path class=\"cast_caf_icon_arch2\" d=\"M1,10 L1,12 C5.97,12 10,16.0 10,21 L12,21 C12,14.92 7.07,10 1,10 L1,10 Z\"/><path class=\"cast_caf_icon_box\" d=\"M21,3 L3,3 C1.9,3 1,3.9 1,5 L1,8 L3,8 L3,5 L21,5 L21,19 L14,19 L14,21 L21,21 C22.1,21 23,20.1 23,19 L23,5 C23,3.9 22.1,3 21,3 L21,3 Z\"/></g></svg>`;\nconst exitIcon = `<svg aria-hidden=\"true\" viewBox=\"0 0 24 24\"><g><path class=\"cast_caf_icon_arch0\" d=\"M1,18 L1,21 L4,21 C4,19.3 2.66,18 1,18 L1,18 Z\"/><path class=\"cast_caf_icon_arch1\" d=\"M1,14 L1,16 C3.76,16 6,18.2 6,21 L8,21 C8,17.13 4.87,14 1,14 L1,14 Z\"/><path class=\"cast_caf_icon_arch2\" d=\"M1,10 L1,12 C5.97,12 10,16.0 10,21 L12,21 C12,14.92 7.07,10 1,10 L1,10 Z\"/><path class=\"cast_caf_icon_box\" d=\"M21,3 L3,3 C1.9,3 1,3.9 1,5 L1,8 L3,8 L3,5 L21,5 L21,19 L14,19 L14,21 L21,21 C22.1,21 23,20.1 23,19 L23,5 C23,3.9 22.1,3 21,3 L21,3 Z\"/><path class=\"cast_caf_icon_boxfill\" d=\"M5,7 L5,8.63 C8,8.6 13.37,14 13.37,17 L19,17 L19,7 Z\"/></g></svg>`;\nfunction getSlotTemplateHTML(_attrs) {\n return (\n /*html*/\n `\n <style>\n :host([${MediaUIAttributes.MEDIA_IS_CASTING}]) slot[name=icon] slot:not([name=exit]) {\n display: none !important;\n }\n\n ${/* Double negative, but safer if display doesn't equal 'block' */\n \"\"}\n :host(:not([${MediaUIAttributes.MEDIA_IS_CASTING}])) slot[name=icon] slot:not([name=enter]) {\n display: none !important;\n }\n\n :host([${MediaUIAttributes.MEDIA_IS_CASTING}]) slot[name=tooltip-enter],\n :host(:not([${MediaUIAttributes.MEDIA_IS_CASTING}])) slot[name=tooltip-exit] {\n display: none;\n }\n </style>\n\n <slot name=\"icon\">\n <slot name=\"enter\">${enterIcon}</slot>\n <slot name=\"exit\">${exitIcon}</slot>\n </slot>\n `\n );\n}\nfunction getTooltipContentHTML() {\n return (\n /*html*/\n `\n <slot name=\"tooltip-enter\">${t(\"Start casting\")}</slot>\n <slot name=\"tooltip-exit\">${t(\"Stop casting\")}</slot>\n `\n );\n}\nconst updateAriaLabel = (el) => {\n const label = el.mediaIsCasting ? t(\"stop casting\") : t(\"start casting\");\n el.setAttribute(\"aria-label\", label);\n};\nclass MediaCastButton extends MediaChromeButton {\n static get observedAttributes() {\n return [\n ...super.observedAttributes,\n MediaUIAttributes.MEDIA_IS_CASTING,\n MediaUIAttributes.MEDIA_CAST_UNAVAILABLE\n ];\n }\n connectedCallback() {\n super.connectedCallback();\n updateAriaLabel(this);\n }\n attributeChangedCallback(attrName, oldValue, newValue) {\n super.attributeChangedCallback(attrName, oldValue, newValue);\n if (attrName === MediaUIAttributes.MEDIA_IS_CASTING) {\n updateAriaLabel(this);\n }\n }\n /**\n * @type {boolean} Are we currently casting\n */\n get mediaIsCasting() {\n return getBooleanAttr(this, MediaUIAttributes.MEDIA_IS_CASTING);\n }\n set mediaIsCasting(value) {\n setBooleanAttr(this, MediaUIAttributes.MEDIA_IS_CASTING, value);\n }\n /**\n * @type {string | undefined} Cast unavailability state\n */\n get mediaCastUnavailable() {\n return getStringAttr(this, MediaUIAttributes.MEDIA_CAST_UNAVAILABLE);\n }\n set mediaCastUnavailable(value) {\n setStringAttr(this, MediaUIAttributes.MEDIA_CAST_UNAVAILABLE, value);\n }\n handleClick() {\n const eventName = this.mediaIsCasting ? MediaUIEvents.MEDIA_EXIT_CAST_REQUEST : MediaUIEvents.MEDIA_ENTER_CAST_REQUEST;\n this.dispatchEvent(\n new globalThis.CustomEvent(eventName, { composed: true, bubbles: true })\n );\n }\n}\nMediaCastButton.getSlotTemplateHTML = getSlotTemplateHTML;\nMediaCastButton.getTooltipContentHTML = getTooltipContentHTML;\nif (!globalThis.customElements.get(\"media-cast-button\")) {\n globalThis.customElements.define(\"media-cast-button\", MediaCastButton);\n}\nvar media_cast_button_default = MediaCastButton;\nexport {\n media_cast_button_default as default\n};\n","var __accessCheck = (obj, member, msg) => {\n if (!member.has(obj))\n throw TypeError(\"Cannot \" + msg);\n};\nvar __privateGet = (obj, member, getter) => {\n __accessCheck(obj, member, \"read from private field\");\n return getter ? getter.call(obj) : member.get(obj);\n};\nvar __privateAdd = (obj, member, value) => {\n if (member.has(obj))\n throw TypeError(\"Cannot add the same private member more than once\");\n member instanceof WeakSet ? member.add(obj) : member.set(obj, value);\n};\nvar __privateSet = (obj, member, value, setter) => {\n __accessCheck(obj, member, \"write to private field\");\n setter ? setter.call(obj, value) : member.set(obj, value);\n return value;\n};\nvar __privateMethod = (obj, member, method) => {\n __accessCheck(obj, member, \"access private method\");\n return method;\n};\nvar _isInit, _previouslyFocused, _invokerElement, _init, init_fn, _handleOpen, handleOpen_fn, _handleClosed, handleClosed_fn, _handleInvoke, handleInvoke_fn, _handleFocusOut, handleFocusOut_fn, _handleKeyDown, handleKeyDown_fn;\nimport { globalThis } from \"./utils/server-safe-globals.js\";\nimport {\n containsComposedNode,\n getActiveElement,\n getBooleanAttr,\n namedNodeMapToObject,\n setBooleanAttr,\n getOrInsertCSSRule\n} from \"./utils/element-utils.js\";\nfunction getTemplateHTML(_attrs) {\n return (\n /*html*/\n `\n <style>\n :host {\n font: var(--media-font,\n var(--media-font-weight, normal)\n var(--media-font-size, 14px) /\n var(--media-text-content-height, var(--media-control-height, 24px))\n var(--media-font-family, helvetica neue, segoe ui, roboto, arial, sans-serif));\n color: var(--media-text-color, var(--media-primary-color, rgb(238 238 238)));\n display: var(--media-dialog-display, inline-flex);\n justify-content: center;\n align-items: center;\n ${/** The hide transition is defined below after a short delay. */\n \"\"}\n transition-behavior: allow-discrete;\n visibility: hidden;\n opacity: 0;\n transform: translateY(2px) scale(.99);\n pointer-events: none;\n }\n\n :host([open]) {\n transition: display .2s, visibility 0s, opacity .2s ease-out, transform .15s ease-out;\n visibility: visible;\n opacity: 1;\n transform: translateY(0) scale(1);\n pointer-events: auto;\n }\n\n #content {\n display: flex;\n position: relative;\n box-sizing: border-box;\n width: min(320px, 100%);\n word-wrap: break-word;\n max-height: 100%;\n overflow: auto;\n text-align: center;\n line-height: 1.4;\n }\n </style>\n ${this.getSlotTemplateHTML(_attrs)}\n `\n );\n}\nfunction getSlotTemplateHTML(_attrs) {\n return (\n /*html*/\n `\n <slot id=\"content\"></slot>\n `\n );\n}\nconst Attributes = {\n OPEN: \"open\",\n ANCHOR: \"anchor\"\n};\nclass MediaChromeDialog extends globalThis.HTMLElement {\n constructor() {\n super();\n __privateAdd(this, _init);\n __privateAdd(this, _handleOpen);\n __privateAdd(this, _handleClosed);\n __privateAdd(this, _handleInvoke);\n __privateAdd(this, _handleFocusOut);\n __privateAdd(this, _handleKeyDown);\n __privateAdd(this, _isInit, false);\n __privateAdd(this, _previouslyFocused, null);\n __privateAdd(this, _invokerElement, null);\n this.addEventListener(\"invoke\", this);\n this.addEventListener(\"focusout\", this);\n this.addEventListener(\"keydown\", this);\n }\n static get observedAttributes() {\n return [Attributes.OPEN, Attributes.ANCHOR];\n }\n get open() {\n return getBooleanAttr(this, Attributes.OPEN);\n }\n set open(value) {\n setBooleanAttr(this, Attributes.OPEN, value);\n }\n handleEvent(event) {\n switch (event.type) {\n case \"invoke\":\n __privateMethod(this, _handleInvoke, handleInvoke_fn).call(this, event);\n break;\n case \"focusout\":\n __privateMethod(this, _handleFocusOut, handleFocusOut_fn).call(this, event);\n break;\n case \"keydown\":\n __privateMethod(this, _handleKeyDown, handleKeyDown_fn).call(this, event);\n break;\n }\n }\n connectedCallback() {\n __privateMethod(this, _init, init_fn).call(this);\n if (!this.role) {\n this.role = \"dialog\";\n }\n }\n attributeChangedCallback(attrName, oldValue, newValue) {\n __privateMethod(this, _init, init_fn).call(this);\n if (attrName === Attributes.OPEN && newValue !== oldValue) {\n if (this.open) {\n __privateMethod(this, _handleOpen, handleOpen_fn).call(this);\n } else {\n __privateMethod(this, _handleClosed, handleClosed_fn).call(this);\n }\n }\n }\n focus() {\n __privateSet(this, _previouslyFocused, getActiveElement());\n const focusCancelled = !this.dispatchEvent(new Event(\"focus\", { composed: true, cancelable: true }));\n const focusInCancelled = !this.dispatchEvent(new Event(\"focusin\", { composed: true, bubbles: true, cancelable: true }));\n if (focusCancelled || focusInCancelled)\n return;\n const focusable = this.querySelector(\n '[autofocus], [tabindex]:not([tabindex=\"-1\"]), [role=\"menu\"]'\n );\n focusable == null ? void 0 : focusable.focus();\n }\n get keysUsed() {\n return [\"Escape\", \"Tab\"];\n }\n}\n_isInit = new WeakMap();\n_previouslyFocused = new WeakMap();\n_invokerElement = new WeakMap();\n_init = new WeakSet();\ninit_fn = function() {\n if (__privateGet(this, _isInit))\n return;\n __privateSet(this, _isInit, true);\n if (!this.shadowRoot) {\n this.attachShadow(this.constructor.shadowRootOptions);\n const attrs = namedNodeMapToObject(this.attributes);\n this.shadowRoot.innerHTML = this.constructor.getTemplateHTML(attrs);\n queueMicrotask(() => {\n const { style } = getOrInsertCSSRule(this.shadowRoot, \":host\");\n style.setProperty(\n \"transition\",\n `display .15s, visibility .15s, opacity .15s ease-in, transform .15s ease-in`\n );\n });\n }\n};\n_handleOpen = new WeakSet();\nhandleOpen_fn = function() {\n var _a;\n (_a = __privateGet(this, _invokerElement)) == null ? void 0 : _a.setAttribute(\"aria-expanded\", \"true\");\n this.dispatchEvent(new Event(\"open\", { composed: true, bubbles: true }));\n this.addEventListener(\"transitionend\", () => this.focus(), { once: true });\n};\n_handleClosed = new WeakSet();\nhandleClosed_fn = function() {\n var _a;\n (_a = __privateGet(this, _invokerElement)) == null ? void 0 : _a.setAttribute(\"aria-expanded\", \"false\");\n this.dispatchEvent(new Event(\"close\", { composed: true, bubbles: true }));\n};\n_handleInvoke = new WeakSet();\nhandleInvoke_fn = function(event) {\n __privateSet(this, _invokerElement, event.relatedTarget);\n if (!containsComposedNode(this, event.relatedTarget)) {\n this.open = !this.open;\n }\n};\n_handleFocusOut = new WeakSet();\nhandleFocusOut_fn = function(event) {\n var _a;\n if (!containsComposedNode(this, event.relatedTarget)) {\n (_a = __privateGet(this, _previouslyFocused)) == null ? void 0 : _a.focus();\n if (__privateGet(this, _invokerElement) && __privateGet(this, _invokerElement) !== event.relatedTarget && this.open) {\n this.open = false;\n }\n }\n};\n_handleKeyDown = new WeakSet();\nhandleKeyDown_fn = function(event) {\n var _a, _b, _c, _d, _e;\n const { key, ctrlKey, altKey, metaKey } = event;\n if (ctrlKey || altKey || metaKey) {\n return;\n }\n if (!this.keysUsed.includes(key)) {\n return;\n }\n event.preventDefault();\n event.stopPropagation();\n if (key === \"Tab\") {\n if (event.shiftKey) {\n (_b = (_a = this.previousElementSibling) == null ? void 0 : _a.focus) == null ? void 0 : _b.call(_a);\n } else {\n (_d = (_c = this.nextElementSibling) == null ? void 0 : _c.focus) == null ? void 0 : _d.call(_c);\n }\n this.blur();\n } else if (key === \"Escape\") {\n (_e = __privateGet(this, _previouslyFocused)) == null ? void 0 : _e.focus();\n this.open = false;\n }\n};\nMediaChromeDialog.shadowRootOptions = { mode: \"open\" };\nMediaChromeDialog.getTemplateHTML = getTemplateHTML;\nMediaChromeDialog.getSlotTemplateHTML = getSlotTemplateHTML;\nif (!globalThis.customElements.get(\"media-chrome-dialog\")) {\n globalThis.customElements.define(\"media-chrome-dialog\", MediaChromeDialog);\n}\nvar media_chrome_dialog_default = MediaChromeDialog;\nexport {\n Attributes,\n MediaChromeDialog,\n media_chrome_dialog_default as default\n};\n","var __accessCheck = (obj, member, msg) => {\n if (!member.has(obj))\n throw TypeError(\"Cannot \" + msg);\n};\nvar __privateGet = (obj, member, getter) => {\n __accessCheck(obj, member, \"read from private field\");\n return getter ? getter.call(obj) : member.get(obj);\n};\nvar __privateAdd = (obj, member, value) => {\n if (member.has(obj))\n throw TypeError(\"Cannot add the same private member more than once\");\n member instanceof WeakSet ? member.add(obj) : member.set(obj, value);\n};\nvar __privateSet = (obj, member, value, setter) => {\n __accessCheck(obj, member, \"write to private field\");\n setter ? setter.call(obj, value) : member.set(obj, value);\n return value;\n};\nvar __privateMethod = (obj, member, method) => {\n __accessCheck(obj, member, \"access private method\");\n return method;\n};\nvar _mediaController, _isInputTarget, _startpoint, _endpoint, _cssRules, _segments, _onFocusIn, _onFocusOut, _updateComputedStyles, _updateActiveSegment, updateActiveSegment_fn, _enableUserEvents, enableUserEvents_fn, _disableUserEvents, disableUserEvents_fn, _handlePointerDown, handlePointerDown_fn, _handlePointerEnter, handlePointerEnter_fn, _handlePointerUp, handlePointerUp_fn, _handlePointerLeave, handlePointerLeave_fn, _handlePointerMove, handlePointerMove_fn;\nimport { MediaStateReceiverAttributes } from \"./constants.js\";\nimport { globalThis, document } from \"./utils/server-safe-globals.js\";\nimport {\n getOrInsertCSSRule,\n getPointProgressOnLine,\n insertCSSRule,\n namedNodeMapToObject\n} from \"./utils/element-utils.js\";\nimport { observeResize, unobserveResize } from \"./utils/resize-observer.js\";\nfunction getTemplateHTML(_attrs) {\n return (\n /*html*/\n `\n <style>\n :host {\n --_focus-box-shadow: var(--media-focus-box-shadow, inset 0 0 0 2px rgb(27 127 204 / .9));\n --_media-range-padding: var(--media-range-padding, var(--media-control-padding, 10px));\n\n box-shadow: var(--_focus-visible-box-shadow, none);\n background: var(--media-control-background, var(--media-secondary-color, rgb(20 20 30 / .7)));\n height: calc(var(--media-control-height, 24px) + 2 * var(--_media-range-padding));\n display: inline-flex;\n align-items: center;\n ${/* Don't horizontal align w/ justify-content! #container can go negative on the x-axis w/ small width. */\n \"\"}\n vertical-align: middle;\n box-sizing: border-box;\n position: relative;\n width: 100px;\n transition: background .15s linear;\n cursor: var(--media-cursor, pointer);\n pointer-events: auto;\n touch-action: none; ${/* Prevent scrolling when dragging on mobile. */\n \"\"}\n }\n\n ${/* Reset before `outline` on track could be set by a CSS var */\n \"\"}\n input[type=range]:focus {\n outline: 0;\n }\n input[type=range]:focus::-webkit-slider-runnable-track {\n outline: 0;\n }\n\n :host(:hover) {\n background: var(--media-control-hover-background, rgb(50 50 70 / .7));\n }\n\n #leftgap {\n padding-left: var(--media-range-padding-left, var(--_media-range-padding));\n }\n\n #rightgap {\n padding-right: var(--media-range-padding-right, var(--_media-range-padding));\n }\n\n #startpoint,\n #endpoint {\n position: absolute;\n }\n\n #endpoint {\n right: 0;\n }\n\n #container {\n ${/* Not using the CSS `padding` prop makes it easier for slide open volume ranges so the width can be zero. */\n \"\"}\n width: var(--media-range-track-width, 100%);\n transform: translate(var(--media-range-track-translate-x, 0px), var(--media-range-track-translate-y, 0px));\n position: relative;\n height: 100%;\n display: flex;\n align-items: center;\n min-width: 40px;\n }\n\n #range {\n ${/* The input range acts as a hover and hit zone for input events. */\n \"\"}\n display: var(--media-time-range-hover-display, block);\n bottom: var(--media-time-range-hover-bottom, -7px);\n height: var(--media-time-range-hover-height, max(100% + 7px, 25px));\n width: 100%;\n position: absolute;\n cursor: var(--media-cursor, pointer);\n\n -webkit-appearance: none; ${/* Hides the slider so that custom slider can be made */\n \"\"}\n -webkit-tap-highlight-color: transparent;\n background: transparent; ${/* Otherwise white in Chrome */\n \"\"}\n margin: 0;\n z-index: 1;\n }\n\n @media (hover: hover) {\n #range {\n bottom: var(--media-time-range-hover-bottom, -5px);\n height: var(--media-time-range-hover-height, max(100% + 5px, 20px));\n }\n }\n\n ${/* Special styling for WebKit/Blink */\n \"\"}\n ${/* Make thumb width/height small so it has no effect on range click position. */\n \"\"}\n #range::-webkit-slider-thumb {\n -webkit-appearance: none;\n background: transparent;\n width: .1px;\n height: .1px;\n }\n\n ${/* The thumb is not positioned relative to the track in Firefox */\n \"\"}\n #range::-moz-range-thumb {\n background: transparent;\n border: transparent;\n width: .1px;\n height: .1px;\n }\n\n #appearance {\n height: var(--media-range-track-height, 4px);\n display: flex;\n flex-direction: column;\n justify-content: center;\n width: 100%;\n position: absolute;\n ${/* Required for Safari to stop glitching track height on hover */\n \"\"}\n will-change: transform;\n }\n\n #track {\n background: var(--media-range-track-background, rgb(255 255 255 / .2));\n border-radius: var(--media-range-track-border-radius, 1px);\n border: var(--media-range-track-border, none);\n outline: var(--media-range-track-outline);\n outline-offset: var(--media-range-track-outline-offset);\n backdrop-filter: var(--media-range-track-backdrop-filter);\n -webkit-backdrop-filter: var(--media-range-track-backdrop-filter);\n box-shadow: var(--media-range-track-box-shadow, none);\n position: absolute;\n width: 100%;\n height: 100%;\n overflow: hidden;\n }\n\n #progress,\n #pointer {\n position: absolute;\n height: 100%;\n will-change: width;\n }\n\n #progress {\n background: var(--media-range-bar-color, var(--media-primary-color, rgb(238 238 238)));\n transition: var(--media-range-track-transition);\n }\n\n #pointer {\n background: var(--media-range-track-pointer-background);\n border-right: var(--media-range-track-pointer-border-right);\n transition: visibility .25s, opacity .25s;\n visibility: hidden;\n opacity: 0;\n }\n\n @media (hover: hover) {\n :host(:hover) #pointer {\n transition: visibility .5s, opacity .5s;\n visibility: visible;\n opacity: 1;\n }\n }\n\n #thumb,\n ::slotted([slot=thumb]) {\n width: var(--media-range-thumb-width, 10px);\n height: var(--media-range-thumb-height, 10px);\n transition: var(--media-range-thumb-transition);\n transform: var(--media-range-thumb-transform, none);\n opacity: var(--media-range-thumb-opacity, 1);\n translate: -50%;\n position: absolute;\n left: 0;\n cursor: var(--media-cursor, pointer);\n }\n\n #thumb {\n border-radius: var(--media-range-thumb-border-radius, 10px);\n background: var(--media-range-thumb-background, var(--media-primary-color, rgb(238 238 238)));\n box-shadow: var(--media-range-thumb-box-shadow, 1px 1px 1px transparent);\n border: var(--media-range-thumb-border, none);\n }\n\n :host([disabled]) #thumb {\n background-color: #777;\n }\n\n .segments #appearance {\n height: var(--media-range-segment-hover-height, 7px);\n }\n\n #track {\n clip-path: url(#segments-clipping);\n }\n\n #segments {\n --segments-gap: var(--media-range-segments-gap, 2px);\n position: absolute;\n width: 100%;\n height: 100%;\n }\n\n #segments-clipping {\n transform: translateX(calc(var(--segments-gap) / 2));\n }\n\n #segments-clipping:empty {\n display: none;\n }\n\n #segments-clipping rect {\n height: var(--media-range-track-height, 4px);\n y: calc((var(--media-range-segment-hover-height, 7px) - var(--media-range-track-height, 4px)) / 2);\n transition: var(--media-range-segment-transition, transform .1s ease-in-out);\n transform: var(--media-range-segment-transform, scaleY(1));\n transform-origin: center;\n }\n </style>\n <div id=\"leftgap\"></div>\n <div id=\"container\">\n <div id=\"startpoint\"></div>\n <div id=\"endpoint\"></div>\n <div id=\"appearance\">\n <div id=\"track\" part=\"track\">\n <div id=\"pointer\"></div>\n <div id=\"progress\" part=\"progress\"></div>\n </div>\n <slot name=\"thumb\">\n <div id=\"thumb\" part=\"thumb\"></div>\n </slot>\n <svg id=\"segments\"><clipPath id=\"segments-clipping\"></clipPath></svg>\n </div>\n <input id=\"range\" type=\"range\" min=\"0\" max=\"1\" step=\"any\" value=\"0\">\n </div>\n <div id=\"rightgap\"></div>\n `\n );\n}\nclass MediaChromeRange extends globalThis.HTMLElement {\n constructor() {\n super();\n __privateAdd(this, _updateActiveSegment);\n __privateAdd(this, _enableUserEvents);\n __privateAdd(this, _disableUserEvents);\n __privateAdd(this, _handlePointerDown);\n __privateAdd(this, _handlePointerEnter);\n __privateAdd(this, _handlePointerUp);\n __privateAdd(this, _handlePointerLeave);\n __privateAdd(this, _handlePointerMove);\n __privateAdd(this, _mediaController, void 0);\n __privateAdd(this, _isInputTarget, void 0);\n __privateAdd(this, _startpoint, void 0);\n __privateAdd(this, _endpoint, void 0);\n __privateAdd(this, _cssRules, {});\n __privateAdd(this, _segments, []);\n __privateAdd(this, _onFocusIn, () => {\n if (this.range.matches(\":focus-visible\")) {\n const { style } = getOrInsertCSSRule(this.shadowRoot, \":host\");\n style.setProperty(\n \"--_focus-visible-box-shadow\",\n \"var(--_focus-box-shadow)\"\n );\n }\n });\n __privateAdd(this, _onFocusOut, () => {\n const { style } = getOrInsertCSSRule(this.shadowRoot, \":host\");\n style.removeProperty(\"--_focus-visible-box-shadow\");\n });\n __privateAdd(this, _updateComputedStyles, () => {\n const clipping = this.shadowRoot.querySelector(\"#segments-clipping\");\n if (clipping)\n clipping.parentNode.append(clipping);\n });\n if (!this.shadowRoot) {\n this.attachShadow(this.constructor.shadowRootOptions);\n const attrs = namedNodeMapToObject(this.attributes);\n const html = this.constructor.getTemplateHTML(attrs);\n this.shadowRoot.setHTMLUnsafe ? this.shadowRoot.setHTMLUnsafe(html) : this.shadowRoot.innerHTML = html;\n }\n this.container = this.shadowRoot.querySelector(\"#container\");\n __privateSet(this, _startpoint, this.shadowRoot.querySelector(\"#startpoint\"));\n __privateSet(this, _endpoint, this.shadowRoot.querySelector(\"#endpoint\"));\n this.range = this.shadowRoot.querySelector(\"#range\");\n this.appearance = this.shadowRoot.querySelector(\"#appearance\");\n }\n static get observedAttributes() {\n return [\n \"disabled\",\n \"aria-disabled\",\n MediaStateReceiverAttributes.MEDIA_CONTROLLER\n ];\n }\n attributeChangedCallback(attrName, oldValue, newValue) {\n var _a, _b, _c, _d, _e;\n if (attrName === MediaStateReceiverAttributes.MEDIA_CONTROLLER) {\n if (oldValue) {\n (_b = (_a = __privateGet(this, _mediaController)) == null ? void 0 : _a.unassociateElement) == null ? void 0 : _b.call(_a, this);\n __privateSet(this, _mediaController, null);\n }\n if (newValue && this.isConnected) {\n __privateSet(this, _mediaController, (_c = this.getRootNode()) == null ? void 0 : _c.getElementById(newValue));\n (_e = (_d = __privateGet(this, _mediaController)) == null ? void 0 : _d.associateElement) == null ? void 0 : _e.call(_d, this);\n }\n } else if (attrName === \"disabled\" || attrName === \"aria-disabled\" && oldValue !== newValue) {\n if (newValue == null) {\n this.range.removeAttribute(attrName);\n __privateMethod(this, _enableUserEvents, enableUserEvents_fn).call(this);\n } else {\n this.range.setAttribute(attrName, newValue);\n __privateMethod(this, _disableUserEvents, disableUserEvents_fn).call(this);\n }\n }\n }\n connectedCallback() {\n var _a, _b, _c;\n const { style } = getOrInsertCSSRule(this.shadowRoot, \":host\");\n style.setProperty(\n \"display\",\n `var(--media-control-display, var(--${this.localName}-display, inline-flex))`\n );\n __privateGet(this, _cssRules).pointer = getOrInsertCSSRule(this.shadowRoot, \"#pointer\");\n __privateGet(this, _cssRules).progress = getOrInsertCSSRule(this.shadowRoot, \"#progress\");\n __privateGet(this, _cssRules).thumb = getOrInsertCSSRule(\n this.shadowRoot,\n '#thumb, ::slotted([slot=\"thumb\"])'\n );\n __privateGet(this, _cssRules).activeSegment = getOrInsertCSSRule(\n this.shadowRoot,\n \"#segments-clipping rect:nth-child(0)\"\n );\n const mediaControllerId = this.getAttribute(\n MediaStateReceiverAttributes.MEDIA_CONTROLLER\n );\n if (mediaControllerId) {\n __privateSet(this, _mediaController, (_a = this.getRootNode()) == null ? void 0 : _a.getElementById(\n mediaControllerId\n ));\n (_c = (_b = __privateGet(this, _mediaController)) == null ? void 0 : _b.associateElement) == null ? void 0 : _c.call(_b, this);\n }\n this.updateBar();\n this.shadowRoot.addEventListener(\"focusin\", __privateGet(this, _onFocusIn));\n this.shadowRoot.addEventListener(\"focusout\", __privateGet(this, _onFocusOut));\n __privateMethod(this, _enableUserEvents, enableUserEvents_fn).call(this);\n observeResize(this.container, __privateGet(this, _updateComputedStyles));\n }\n disconnectedCallback() {\n var _a, _b;\n __privateMethod(this, _disableUserEvents, disableUserEvents_fn).call(this);\n (_b = (_a = __privateGet(this, _mediaController)) == null ? void 0 : _a.unassociateElement) == null ? void 0 : _b.call(_a, this);\n __privateSet(this, _mediaController, null);\n this.shadowRoot.removeEventListener(\"focusin\", __privateGet(this, _onFocusIn));\n this.shadowRoot.removeEventListener(\"focusout\", __privateGet(this, _onFocusOut));\n unobserveResize(this.container, __privateGet(this, _updateComputedStyles));\n }\n updatePointerBar(evt) {\n var _a;\n (_a = __privateGet(this, _cssRules).pointer) == null ? void 0 : _a.style.setProperty(\n \"width\",\n `${this.getPointerRatio(evt) * 100}%`\n );\n }\n updateBar() {\n var _a, _b;\n const rangePercent = this.range.valueAsNumber * 100;\n (_a = __privateGet(this, _cssRules).progress) == null ? void 0 : _a.style.setProperty(\"width\", `${rangePercent}%`);\n (_b = __privateGet(this, _cssRules).thumb) == null ? void 0 : _b.style.setProperty(\"left\", `${rangePercent}%`);\n }\n updateSegments(segments) {\n const clipping = this.shadowRoot.querySelector(\"#segments-clipping\");\n clipping.textContent = \"\";\n this.container.classList.toggle(\"segments\", !!(segments == null ? void 0 : segments.length));\n if (!(segments == null ? void 0 : segments.length))\n return;\n const normalized = [\n .../* @__PURE__ */ new Set([\n +this.range.min,\n ...segments.flatMap((s) => [s.start, s.end]),\n +this.range.max\n ])\n ];\n __privateSet(this, _segments, [...normalized]);\n const lastMarker = normalized.pop();\n for (const [i, marker] of normalized.entries()) {\n const [isFirst, isLast] = [i === 0, i === normalized.length - 1];\n const x = isFirst ? \"calc(var(--segments-gap) / -1)\" : `${marker * 100}%`;\n const x2 = isLast ? lastMarker : normalized[i + 1];\n const width = `calc(${(x2 - marker) * 100}%${isFirst || isLast ? \"\" : ` - var(--segments-gap)`})`;\n const segmentEl = document.createElementNS(\n \"http://www.w3.org/2000/svg\",\n \"rect\"\n );\n const cssRule = insertCSSRule(\n this.shadowRoot,\n `#segments-clipping rect:nth-child(${i + 1})`\n );\n cssRule.style.setProperty(\"x\", x);\n cssRule.style.setProperty(\"width\", width);\n clipping.append(segmentEl);\n }\n }\n getPointerRatio(evt) {\n return getPointProgressOnLine(\n evt.clientX,\n evt.clientY,\n __privateGet(this, _startpoint).getBoundingClientRect(),\n __privateGet(this, _endpoint).getBoundingClientRect()\n );\n }\n get dragging() {\n return this.hasAttribute(\"dragging\");\n }\n handleEvent(evt) {\n switch (evt.type) {\n case \"pointermove\":\n __privateMethod(this, _handlePointerMove, handlePointerMove_fn).call(this, evt);\n break;\n case \"input\":\n this.updateBar();\n break;\n case \"pointerenter\":\n __privateMethod(this, _handlePointerEnter, handlePointerEnter_fn).call(this, evt);\n break;\n case \"pointerdown\":\n __privateMethod(this, _handlePointerDown, handlePointerDown_fn).call(this, evt);\n break;\n case \"pointerup\":\n __privateMethod(this, _handlePointerUp, handlePointerUp_fn).call(this);\n break;\n case \"pointerleave\":\n __privateMethod(this, _handlePointerLeave, handlePointerLeave_fn).call(this);\n break;\n }\n }\n get keysUsed() {\n return [\"ArrowUp\", \"ArrowRight\", \"ArrowDown\", \"ArrowLeft\"];\n }\n}\n_mediaController = new WeakMap();\n_isInputTarget = new WeakMap();\n_startpoint = new WeakMap();\n_endpoint = new WeakMap();\n_cssRules = new WeakMap();\n_segments = new WeakMap();\n_onFocusIn = new WeakMap();\n_onFocusOut = new WeakMap();\n_updateComputedStyles = new WeakMap();\n_updateActiveSegment = new WeakSet();\nupdateActiveSegment_fn = function(evt) {\n const rule = __privateGet(this, _cssRules).activeSegment;\n if (!rule)\n return;\n const pointerRatio = this.getPointerRatio(evt);\n const segmentIndex = __privateGet(this, _segments).findIndex((start, i, arr) => {\n const end = arr[i + 1];\n return end != null && pointerRatio >= start && pointerRatio <= end;\n });\n const selectorText = `#segments-clipping rect:nth-child(${segmentIndex + 1})`;\n if (rule.selectorText != selectorText || !rule.style.transform) {\n rule.selectorText = selectorText;\n rule.style.setProperty(\n \"transform\",\n \"var(--media-range-segment-hover-transform, scaleY(2))\"\n );\n }\n};\n_enableUserEvents = new WeakSet();\nenableUserEvents_fn = function() {\n if (this.hasAttribute(\"disabled\"))\n return;\n this.addEventListener(\"input\", this);\n this.addEventListener(\"pointerdown\", this);\n this.addEventListener(\"pointerenter\", this);\n};\n_disableUserEvents = new WeakSet();\ndisableUserEvents_fn = function() {\n var _a, _b;\n this.removeEventListener(\"input\", this);\n this.removeEventListener(\"pointerdown\", this);\n this.removeEventListener(\"pointerenter\", this);\n (_a = globalThis.window) == null ? void 0 : _a.removeEventListener(\"pointerup\", this);\n (_b = globalThis.window) == null ? void 0 : _b.removeEventListener(\"pointermove\", this);\n};\n_handlePointerDown = new WeakSet();\nhandlePointerDown_fn = function(evt) {\n var _a;\n __privateSet(this, _isInputTarget, evt.composedPath().includes(this.range));\n (_a = globalThis.window) == null ? void 0 : _a.addEventListener(\"pointerup\", this);\n};\n_handlePointerEnter = new WeakSet();\nhandlePointerEnter_fn = function(evt) {\n var _a;\n if (evt.pointerType !== \"mouse\")\n __privateMethod(this, _handlePointerDown, handlePointerDown_fn).call(this, evt);\n this.addEventListener(\"pointerleave\", this);\n (_a = globalThis.window) == null ? void 0 : _a.addEventListener(\"pointermove\", this);\n};\n_handlePointerUp = new WeakSet();\nhandlePointerUp_fn = function() {\n var _a;\n (_a = globalThis.window) == null ? void 0 : _a.removeEventListener(\"pointerup\", this);\n this.toggleAttribute(\"dragging\", false);\n this.range.disabled = this.hasAttribute(\"disabled\");\n};\n_handlePointerLeave = new WeakSet();\nhandlePointerLeave_fn = function() {\n var _a, _b;\n this.removeEventListener(\"pointerleave\", this);\n (_a = globalThis.window) == null ? void 0 : _a.removeEventListener(\"pointermove\", this);\n this.toggleAttribute(\"dragging\", false);\n this.range.disabled = this.hasAttribute(\"disabled\");\n (_b = __privateGet(this, _cssRules).activeSegment) == null ? void 0 : _b.style.removeProperty(\"transform\");\n};\n_handlePointerMove = new WeakSet();\nhandlePointerMove_fn = function(evt) {\n if (evt.pointerType === \"pen\" && evt.buttons === 0) {\n return;\n }\n this.toggleAttribute(\n \"dragging\",\n evt.buttons === 1 || evt.pointerType !== \"mouse\"\n );\n this.updatePointerBar(evt);\n __privateMethod(this, _updateActiveSegment, updateActiveSegment_fn).call(this, evt);\n if (this.dragging && (evt.pointerType !== \"mouse\" || !__privateGet(this, _isInputTarget))) {\n this.range.disabled = true;\n this.range.valueAsNumber = this.getPointerRatio(evt);\n this.range.dispatchEvent(\n new Event(\"input\", { bubbles: true, composed: true })\n );\n }\n};\nMediaChromeRange.shadowRootOptions = { mode: \"open\" };\nMediaChromeRange.getTemplateHTML = getTemplateHTML;\nif (!globalThis.customElements.get(\"media-chrome-range\")) {\n globalThis.customElements.define(\"media-chrome-range\", MediaChromeRange);\n}\nvar media_chrome_range_default = MediaChromeRange;\nexport {\n MediaChromeRange,\n media_chrome_range_default as default\n};\n","var __accessCheck = (obj, member, msg) => {\n if (!member.has(obj))\n throw TypeError(\"Cannot \" + msg);\n};\nvar __privateGet = (obj, member, getter) => {\n __accessCheck(obj, member, \"read from private field\");\n return getter ? getter.call(obj) : member.get(obj);\n};\nvar __privateAdd = (obj, member, value) => {\n if (member.has(obj))\n throw TypeError(\"Cannot add the same private member more than once\");\n member instanceof WeakSet ? member.add(obj) : member.set(obj, value);\n};\nvar __privateSet = (obj, member, value, setter) => {\n __accessCheck(obj, member, \"write to private field\");\n setter ? setter.call(obj, value) : member.set(obj, value);\n return value;\n};\nvar _mediaController;\nimport { MediaStateReceiverAttributes } from \"./constants.js\";\nimport { namedNodeMapToObject } from \"./utils/element-utils.js\";\nimport { globalThis } from \"./utils/server-safe-globals.js\";\nfunction getTemplateHTML(_attrs) {\n return (\n /*html*/\n `\n <style>\n :host {\n ${/* Need position to display above video for some reason */\n \"\"}\n box-sizing: border-box;\n display: var(--media-control-display, var(--media-control-bar-display, inline-flex));\n color: var(--media-text-color, var(--media-primary-color, rgb(238 238 238)));\n --media-loading-indicator-icon-height: 44px;\n }\n\n ::slotted(media-time-range),\n ::slotted(media-volume-range) {\n min-height: 100%;\n }\n\n ::slotted(media-time-range),\n ::slotted(media-clip-selector) {\n flex-grow: 1;\n }\n\n ::slotted([role=\"menu\"]) {\n position: absolute;\n }\n </style>\n\n <slot></slot>\n `\n );\n}\nclass MediaControlBar extends globalThis.HTMLElement {\n constructor() {\n super();\n __privateAdd(this, _mediaController, void 0);\n if (!this.shadowRoot) {\n this.attachShadow(this.constructor.shadowRootOptions);\n const attrs = namedNodeMapToObject(this.attributes);\n this.shadowRoot.innerHTML = this.constructor.getTemplateHTML(attrs);\n }\n }\n static get observedAttributes() {\n return [MediaStateReceiverAttributes.MEDIA_CONTROLLER];\n }\n attributeChangedCallback(attrName, oldValue, newValue) {\n var _a, _b, _c, _d, _e;\n if (attrName === MediaStateReceiverAttributes.MEDIA_CONTROLLER) {\n if (oldValue) {\n (_b = (_a = __privateGet(this, _mediaController)) == null ? void 0 : _a.unassociateElement) == null ? void 0 : _b.call(_a, this);\n __privateSet(this, _mediaController, null);\n }\n if (newValue && this.isConnected) {\n __privateSet(this, _mediaController, (_c = this.getRootNode()) == null ? void 0 : _c.getElementById(newValue));\n (_e = (_d = __privateGet(this, _mediaController)) == null ? void 0 : _d.associateElement) == null ? void 0 : _e.call(_d, this);\n }\n }\n }\n connectedCallback() {\n var _a, _b, _c;\n const mediaControllerId = this.getAttribute(\n MediaStateReceiverAttributes.MEDIA_CONTROLLER\n );\n if (mediaControllerId) {\n __privateSet(this, _mediaController, (_a = this.getRootNode()) == null ? void 0 : _a.getElementById(\n mediaControllerId\n ));\n (_c = (_b = __privateGet(this, _mediaController)) == null ? void 0 : _b.associateElement) == null ? void 0 : _c.call(_b, this);\n }\n }\n disconnectedCallback() {\n var _a, _b;\n (_b = (_a = __privateGet(this, _mediaController)) == null ? void 0 : _a.unassociateElement) == null ? void 0 : _b.call(_a, this);\n __privateSet(this, _mediaController, null);\n }\n}\n_mediaController = new WeakMap();\nMediaControlBar.shadowRootOptions = { mode: \"open\" };\nMediaControlBar.getTemplateHTML = getTemplateHTML;\nif (!globalThis.customElements.get(\"media-control-bar\")) {\n globalThis.customElements.define(\"media-control-bar\", MediaControlBar);\n}\nvar media_control_bar_default = MediaControlBar;\nexport {\n media_control_bar_default as default\n};\n","var __accessCheck = (obj, member, msg) => {\n if (!member.has(obj))\n throw TypeError(\"Cannot \" + msg);\n};\nvar __privateGet = (obj, member, getter) => {\n __accessCheck(obj, member, \"read from private field\");\n return getter ? getter.call(obj) : member.get(obj);\n};\nvar __privateAdd = (obj, member, value) => {\n if (member.has(obj))\n throw TypeError(\"Cannot add the same private member more than once\");\n member instanceof WeakSet ? member.add(obj) : member.set(obj, value);\n};\nvar __privateSet = (obj, member, value, setter) => {\n __accessCheck(obj, member, \"write to private field\");\n setter ? setter.call(obj, value) : member.set(obj, value);\n return value;\n};\nvar _mediaController;\nimport { MediaStateReceiverAttributes } from \"./constants.js\";\nimport { getOrInsertCSSRule, namedNodeMapToObject } from \"./utils/element-utils.js\";\nimport { globalThis } from \"./utils/server-safe-globals.js\";\nfunction getTemplateHTML(_attrs, _props = {}) {\n return (\n /*html*/\n `\n <style>\n :host {\n font: var(--media-font,\n var(--media-font-weight, normal)\n var(--media-font-size, 14px) /\n var(--media-text-content-height, var(--media-control-height, 24px))\n var(--media-font-family, helvetica neue, segoe ui, roboto, arial, sans-serif));\n color: var(--media-text-color, var(--media-primary-color, rgb(238 238 238)));\n background: var(--media-text-background, var(--media-control-background, var(--media-secondary-color, rgb(20 20 30 / .7))));\n padding: var(--media-control-padding, 10px);\n display: inline-flex;\n justify-content: center;\n align-items: center;\n vertical-align: middle;\n box-sizing: border-box;\n text-align: center;\n pointer-events: auto;\n }\n\n ${/*\n Only show outline when keyboard focusing.\n https://drafts.csswg.org/selectors-4/#the-focus-visible-pseudo\n */\n \"\"}\n :host(:focus-visible) {\n box-shadow: inset 0 0 0 2px rgb(27 127 204 / .9);\n outline: 0;\n }\n\n ${/*\n * hide default focus ring, particularly when using mouse\n */\n \"\"}\n :host(:where(:focus)) {\n box-shadow: none;\n outline: 0;\n }\n </style>\n\n ${this.getSlotTemplateHTML(_attrs, _props)}\n `\n );\n}\nfunction getSlotTemplateHTML(_attrs, _props) {\n return (\n /*html*/\n `\n <slot></slot>\n `\n );\n}\nclass MediaTextDisplay extends globalThis.HTMLElement {\n constructor() {\n super();\n __privateAdd(this, _mediaController, void 0);\n if (!this.shadowRoot) {\n this.attachShadow(this.constructor.shadowRootOptions);\n const attrs = namedNodeMapToObject(this.attributes);\n this.shadowRoot.innerHTML = this.constructor.getTemplateHTML(attrs);\n }\n }\n static get observedAttributes() {\n return [MediaStateReceiverAttributes.MEDIA_CONTROLLER];\n }\n attributeChangedCallback(attrName, oldValue, newValue) {\n var _a, _b, _c, _d, _e;\n if (attrName === MediaStateReceiverAttributes.MEDIA_CONTROLLER) {\n if (oldValue) {\n (_b = (_a = __privateGet(this, _mediaController)) == null ? void 0 : _a.unassociateElement) == null ? void 0 : _b.call(_a, this);\n __privateSet(this, _mediaController, null);\n }\n if (newValue && this.isConnected) {\n __privateSet(this, _mediaController, (_c = this.getRootNode()) == null ? void 0 : _c.getElementById(newValue));\n (_e = (_d = __privateGet(this, _mediaController)) == null ? void 0 : _d.associateElement) == null ? void 0 : _e.call(_d, this);\n }\n }\n }\n connectedCallback() {\n var _a, _b, _c;\n const { style } = getOrInsertCSSRule(this.shadowRoot, \":host\");\n style.setProperty(\n \"display\",\n `var(--media-control-display, var(--${this.localName}-display, inline-flex))`\n );\n const mediaControllerId = this.getAttribute(\n MediaStateReceiverAttributes.MEDIA_CONTROLLER\n );\n if (mediaControllerId) {\n __privateSet(this, _mediaController, (_a = this.getRootNode()) == null ? void 0 : _a.getElementById(\n mediaControllerId\n ));\n (_c = (_b = __privateGet(this, _mediaController)) == null ? void 0 : _b.associateElement) == null ? void 0 : _c.call(_b, this);\n }\n }\n disconnectedCallback() {\n var _a, _b;\n (_b = (_a = __privateGet(this, _mediaController)) == null ? void 0 : _a.unassociateElement) == null ? void 0 : _b.call(_a, this);\n __privateSet(this, _mediaController, null);\n }\n}\n_mediaController = new WeakMap();\nMediaTextDisplay.shadowRootOptions = { mode: \"open\" };\nMediaTextDisplay.getTemplateHTML = getTemplateHTML;\nMediaTextDisplay.getSlotTemplateHTML = getSlotTemplateHTML;\nif (!globalThis.customElements.get(\"media-text-display\")) {\n globalThis.customElements.define(\"media-text-display\", MediaTextDisplay);\n}\nvar media_text_display_default = MediaTextDisplay;\nexport {\n MediaTextDisplay,\n media_text_display_default as default\n};\n","var __accessCheck = (obj, member, msg) => {\n if (!member.has(obj))\n throw TypeError(\"Cannot \" + msg);\n};\nvar __privateGet = (obj, member, getter) => {\n __accessCheck(obj, member, \"read from private field\");\n return getter ? getter.call(obj) : member.get(obj);\n};\nvar __privateAdd = (obj, member, value) => {\n if (member.has(obj))\n throw TypeError(\"Cannot add the same private member more than once\");\n member instanceof WeakSet ? member.add(obj) : member.set(obj, value);\n};\nvar __privateSet = (obj, member, value, setter) => {\n __accessCheck(obj, member, \"write to private field\");\n setter ? setter.call(obj, value) : member.set(obj, value);\n return value;\n};\nvar _slot;\nimport { MediaTextDisplay } from \"./media-text-display.js\";\nimport { globalThis } from \"./utils/server-safe-globals.js\";\nimport { formatTime } from \"./utils/time.js\";\nimport { MediaUIAttributes } from \"./constants.js\";\nimport { getNumericAttr, setNumericAttr } from \"./utils/element-utils.js\";\nfunction getSlotTemplateHTML(_attrs, props) {\n return (\n /*html*/\n `\n <slot>${formatTime(props.mediaDuration)}</slot>\n `\n );\n}\nclass MediaDurationDisplay extends MediaTextDisplay {\n constructor() {\n var _a;\n super();\n __privateAdd(this, _slot, void 0);\n __privateSet(this, _slot, this.shadowRoot.querySelector(\"slot\"));\n __privateGet(this, _slot).textContent = formatTime((_a = this.mediaDuration) != null ? _a : 0);\n }\n static get observedAttributes() {\n return [...super.observedAttributes, MediaUIAttributes.MEDIA_DURATION];\n }\n attributeChangedCallback(attrName, oldValue, newValue) {\n if (attrName === MediaUIAttributes.MEDIA_DURATION) {\n __privateGet(this, _slot).textContent = formatTime(+newValue);\n }\n super.attributeChangedCallback(attrName, oldValue, newValue);\n }\n /**\n * @type {number | undefined} In seconds\n */\n get mediaDuration() {\n return getNumericAttr(this, MediaUIAttributes.MEDIA_DURATION);\n }\n set mediaDuration(time) {\n setNumericAttr(this, MediaUIAttributes.MEDIA_DURATION, time);\n }\n}\n_slot = new WeakMap();\nMediaDurationDisplay.getSlotTemplateHTML = getSlotTemplateHTML;\nif (!globalThis.customElements.get(\"media-duration-display\")) {\n globalThis.customElements.define(\n \"media-duration-display\",\n MediaDurationDisplay\n );\n}\nvar media_duration_display_default = MediaDurationDisplay;\nexport {\n media_duration_display_default as default\n};\n","import { t } from \"../utils/i18n.js\";\nconst defaultErrorTitles = {\n 2: t(\"Network Error\"),\n 3: t(\"Decode Error\"),\n 4: t(\"Source Not Supported\"),\n 5: t(\"Encryption Error\")\n};\nconst defaultErrorMessages = {\n 2: t(\"A network error caused the media download to fail.\"),\n 3: t(\n \"A media error caused playback to be aborted. The media could be corrupt or your browser does not support this format.\"\n ),\n 4: t(\n \"An unsupported error occurred. The server or network failed, or your browser does not support this format.\"\n ),\n 5: t(\"The media is encrypted and there are no keys to decrypt it.\")\n};\nconst formatError = (error) => {\n var _a, _b;\n if (error.code === 1)\n return null;\n return {\n title: (_a = defaultErrorTitles[error.code]) != null ? _a : `Error ${error.code}`,\n message: (_b = defaultErrorMessages[error.code]) != null ? _b : error.message\n };\n};\nexport {\n formatError\n};\n","var __accessCheck = (obj, member, msg) => {\n if (!member.has(obj))\n throw TypeError(\"Cannot \" + msg);\n};\nvar __privateGet = (obj, member, getter) => {\n __accessCheck(obj, member, \"read from private field\");\n return getter ? getter.call(obj) : member.get(obj);\n};\nvar __privateAdd = (obj, member, value) => {\n if (member.has(obj))\n throw TypeError(\"Cannot add the same private member more than once\");\n member instanceof WeakSet ? member.add(obj) : member.set(obj, value);\n};\nvar __privateSet = (obj, member, value, setter) => {\n __accessCheck(obj, member, \"write to private field\");\n setter ? setter.call(obj, value) : member.set(obj, value);\n return value;\n};\nvar _mediaError;\nimport { globalThis } from \"./utils/server-safe-globals.js\";\nimport { MediaUIAttributes } from \"./constants.js\";\nimport { formatError } from \"./labels/labels.js\";\nimport { MediaChromeDialog } from \"./media-chrome-dialog.js\";\nimport {\n getNumericAttr,\n getStringAttr,\n setNumericAttr,\n setStringAttr\n} from \"./utils/element-utils.js\";\nfunction getSlotTemplateHTML(attrs) {\n return (\n /*html*/\n `\n <style>\n :host {\n background: rgb(20 20 30 / .8);\n }\n\n #content {\n display: block;\n padding: 1.2em 1.5em;\n }\n\n h3,\n p {\n margin-block: 0 .3em;\n }\n </style>\n <slot name=\"error-${attrs.mediaerrorcode}\" id=\"content\">\n ${formatErrorMessage({ code: +attrs.mediaerrorcode, message: attrs.mediaerrormessage })}\n </slot>\n `\n );\n}\nfunction shouldOpenErrorDialog(error) {\n return error.code && formatError(error) !== null;\n}\nfunction formatErrorMessage(error) {\n var _a;\n const { title, message } = (_a = formatError(error)) != null ? _a : {};\n let html = \"\";\n if (title)\n html += `<slot name=\"error-${error.code}-title\"><h3>${title}</h3></slot>`;\n if (message)\n html += `<slot name=\"error-${error.code}-message\"><p>${message}</p></slot>`;\n return html;\n}\nconst observedAttributes = [\n MediaUIAttributes.MEDIA_ERROR_CODE,\n MediaUIAttributes.MEDIA_ERROR_MESSAGE\n];\nclass MediaErrorDialog extends MediaChromeDialog {\n constructor() {\n super(...arguments);\n __privateAdd(this, _mediaError, null);\n }\n static get observedAttributes() {\n return [...super.observedAttributes, ...observedAttributes];\n }\n formatErrorMessage(error) {\n return this.constructor.formatErrorMessage(error);\n }\n attributeChangedCallback(attrName, oldValue, newValue) {\n var _a;\n super.attributeChangedCallback(attrName, oldValue, newValue);\n if (!observedAttributes.includes(attrName))\n return;\n const mediaError = (_a = this.mediaError) != null ? _a : {\n code: this.mediaErrorCode,\n message: this.mediaErrorMessage\n };\n this.open = shouldOpenErrorDialog(mediaError);\n if (this.open) {\n this.shadowRoot.querySelector(\"slot\").name = `error-${this.mediaErrorCode}`;\n this.shadowRoot.querySelector(\"#content\").innerHTML = this.formatErrorMessage(mediaError);\n }\n }\n get mediaError() {\n return __privateGet(this, _mediaError);\n }\n set mediaError(value) {\n __privateSet(this, _mediaError, value);\n }\n get mediaErrorCode() {\n return getNumericAttr(this, \"mediaerrorcode\");\n }\n set mediaErrorCode(value) {\n setNumericAttr(this, \"mediaerrorcode\", value);\n }\n get mediaErrorMessage() {\n return getStringAttr(this, \"mediaerrormessage\");\n }\n set mediaErrorMessage(value) {\n setStringAttr(this, \"mediaerrormessage\", value);\n }\n}\n_mediaError = new WeakMap();\nMediaErrorDialog.getSlotTemplateHTML = getSlotTemplateHTML;\nMediaErrorDialog.formatErrorMessage = formatErrorMessage;\nif (!globalThis.customElements.get(\"media-error-dialog\")) {\n globalThis.customElements.define(\"media-error-dialog\", MediaErrorDialog);\n}\nvar media_error_dialog_default = MediaErrorDialog;\nexport {\n MediaErrorDialog,\n media_error_dialog_default as default\n};\n","var __accessCheck = (obj, member, msg) => {\n if (!member.has(obj))\n throw TypeError(\"Cannot \" + msg);\n};\nvar __privateGet = (obj, member, getter) => {\n __accessCheck(obj, member, \"read from private field\");\n return getter ? getter.call(obj) : member.get(obj);\n};\nvar __privateAdd = (obj, member, value) => {\n if (member.has(obj))\n throw TypeError(\"Cannot add the same private member more than once\");\n member instanceof WeakSet ? member.add(obj) : member.set(obj, value);\n};\nvar _clickHandler, _keyDownHandler;\nimport { globalThis } from \"./utils/server-safe-globals.js\";\nimport { MediaChromeDialog } from \"./media-chrome-dialog.js\";\nfunction getSlotTemplateHTML(_attrs) {\n return (\n /*html*/\n `\n <style>\n :host {\n position: fixed;\n top: 0;\n left: 0;\n z-index: 9999;\n background: rgb(20 20 30 / .8);\n backdrop-filter: blur(10px);\n }\n\n #content {\n display: block;\n width: clamp(400px, 40vw, 700px);\n max-width: 90vw;\n text-align: left;\n }\n\n h2 {\n margin: 0 0 1.5rem 0;\n font-size: 1.5rem;\n font-weight: 500;\n text-align: center;\n }\n\n .shortcuts-table {\n width: 100%;\n border-collapse: collapse;\n }\n\n .shortcuts-table tr {\n border-bottom: 1px solid rgba(255, 255, 255, 0.1);\n }\n\n .shortcuts-table tr:last-child {\n border-bottom: none;\n }\n\n .shortcuts-table td {\n padding: 0.75rem 0.5rem;\n }\n\n .shortcuts-table td:first-child {\n text-align: right;\n padding-right: 1rem;\n width: 40%;\n min-width: 120px;\n }\n\n .shortcuts-table td:last-child {\n padding-left: 1rem;\n }\n\n .key {\n display: inline-block;\n background: rgba(255, 255, 255, 0.15);\n border: 1px solid rgba(255, 255, 255, 0.2);\n border-radius: 4px;\n padding: 0.25rem 0.5rem;\n font-family: 'Courier New', monospace;\n font-size: 0.9rem;\n font-weight: 500;\n min-width: 1.5rem;\n text-align: center;\n margin: 0 0.2rem;\n }\n\n .description {\n color: rgba(255, 255, 255, 0.9);\n font-size: 0.95rem;\n }\n\n .key-combo {\n display: flex;\n align-items: center;\n justify-content: flex-end;\n gap: 0.3rem;\n }\n\n .key-separator {\n color: rgba(255, 255, 255, 0.5);\n font-size: 0.9rem;\n }\n </style>\n <slot id=\"content\">\n ${formatKeyboardShortcuts()}\n </slot>\n `\n );\n}\nfunction formatKeyboardShortcuts() {\n const shortcuts = [\n { keys: [\"Space\", \"k\"], description: \"Toggle Playback\" },\n { keys: [\"m\"], description: \"Toggle mute\" },\n { keys: [\"f\"], description: \"Toggle fullscreen\" },\n { keys: [\"c\"], description: \"Toggle captions or subtitles, if available\" },\n { keys: [\"p\"], description: \"Toggle Picture in Picture\" },\n { keys: [\"\\u2190\", \"j\"], description: \"Seek back 10s\" },\n { keys: [\"\\u2192\", \"l\"], description: \"Seek forward 10s\" },\n { keys: [\"\\u2191\"], description: \"Turn volume up\" },\n { keys: [\"\\u2193\"], description: \"Turn volume down\" },\n { keys: [\"< (SHIFT+,)\"], description: \"Decrease playback rate\" },\n { keys: [\"> (SHIFT+.)\"], description: \"Increase playback rate\" }\n ];\n const rows = shortcuts.map(({ keys, description }) => {\n const keyCombo = keys.map(\n (key, index) => index > 0 ? `<span class=\"key-separator\">or</span><span class=\"key\">${key}</span>` : `<span class=\"key\">${key}</span>`\n ).join(\"\");\n return `\n <tr>\n <td>\n <div class=\"key-combo\">${keyCombo}</div>\n </td>\n <td class=\"description\">${description}</td>\n </tr>\n `;\n }).join(\"\");\n return `\n <h2>Keyboard Shortcuts</h2>\n <table class=\"shortcuts-table\">${rows}</table>\n `;\n}\nclass MediaKeyboardShortcutsDialog extends MediaChromeDialog {\n constructor() {\n super(...arguments);\n __privateAdd(this, _clickHandler, (e) => {\n var _a;\n if (!this.open)\n return;\n const content = (_a = this.shadowRoot) == null ? void 0 : _a.querySelector(\"#content\");\n if (!content)\n return;\n const path = e.composedPath();\n const isClickOnHost = path[0] === this || path.includes(this);\n const isClickInsideContent = path.includes(content);\n if (isClickOnHost && !isClickInsideContent) {\n this.open = false;\n }\n });\n __privateAdd(this, _keyDownHandler, (e) => {\n if (!this.open)\n return;\n const isShiftSlash = e.shiftKey && (e.key === \"/\" || e.key === \"?\");\n if ((e.key === \"Escape\" || isShiftSlash) && !e.ctrlKey && !e.altKey && !e.metaKey) {\n this.open = false;\n e.preventDefault();\n e.stopPropagation();\n }\n });\n }\n connectedCallback() {\n super.connectedCallback();\n if (this.open) {\n this.addEventListener(\"click\", __privateGet(this, _clickHandler));\n document.addEventListener(\"keydown\", __privateGet(this, _keyDownHandler));\n }\n }\n disconnectedCallback() {\n this.removeEventListener(\"click\", __privateGet(this, _clickHandler));\n document.removeEventListener(\"keydown\", __privateGet(this, _keyDownHandler));\n }\n attributeChangedCallback(attrName, oldValue, newValue) {\n super.attributeChangedCallback(attrName, oldValue, newValue);\n if (attrName === \"open\") {\n if (this.open) {\n this.addEventListener(\"click\", __privateGet(this, _clickHandler));\n document.addEventListener(\"keydown\", __privateGet(this, _keyDownHandler));\n } else {\n this.removeEventListener(\"click\", __privateGet(this, _clickHandler));\n document.removeEventListener(\"keydown\", __privateGet(this, _keyDownHandler));\n }\n }\n }\n}\n_clickHandler = new WeakMap();\n_keyDownHandler = new WeakMap();\nMediaKeyboardShortcutsDialog.getSlotTemplateHTML = getSlotTemplateHTML;\nif (!globalThis.customElements.get(\"media-keyboard-shortcuts-dialog\")) {\n globalThis.customElements.define(\"media-keyboard-shortcuts-dialog\", MediaKeyboardShortcutsDialog);\n}\nvar media_keyboard_shortcuts_dialog_default = MediaKeyboardShortcutsDialog;\nexport {\n MediaKeyboardShortcutsDialog,\n media_keyboard_shortcuts_dialog_default as default\n};\n","var __accessCheck = (obj, member, msg) => {\n if (!member.has(obj))\n throw TypeError(\"Cannot \" + msg);\n};\nvar __privateGet = (obj, member, getter) => {\n __accessCheck(obj, member, \"read from private field\");\n return getter ? getter.call(obj) : member.get(obj);\n};\nvar __privateAdd = (obj, member, value) => {\n if (member.has(obj))\n throw TypeError(\"Cannot add the same private member more than once\");\n member instanceof WeakSet ? member.add(obj) : member.set(obj, value);\n};\nvar __privateSet = (obj, member, value, setter) => {\n __accessCheck(obj, member, \"write to private field\");\n setter ? setter.call(obj, value) : member.set(obj, value);\n return value;\n};\nvar _lastActionEvent;\nimport { MediaChromeButton } from \"./media-chrome-button.js\";\nimport { globalThis } from \"./utils/server-safe-globals.js\";\nimport { MediaUIEvents, MediaUIAttributes } from \"./constants.js\";\nimport { t } from \"./utils/i18n.js\";\nimport {\n getBooleanAttr,\n getStringAttr,\n setBooleanAttr,\n setStringAttr\n} from \"./utils/element-utils.js\";\nconst enterFullscreenIcon = `<svg aria-hidden=\"true\" viewBox=\"0 0 26 24\">\n <path d=\"M16 3v2.5h3.5V9H22V3h-6ZM4 9h2.5V5.5H10V3H4v6Zm15.5 9.5H16V21h6v-6h-2.5v3.5ZM6.5 15H4v6h6v-2.5H6.5V15Z\"/>\n</svg>`;\nconst exitFullscreenIcon = `<svg aria-hidden=\"true\" viewBox=\"0 0 26 24\">\n <path d=\"M18.5 6.5V3H16v6h6V6.5h-3.5ZM16 21h2.5v-3.5H22V15h-6v6ZM4 17.5h3.5V21H10v-6H4v2.5Zm3.5-11H4V9h6V3H7.5v3.5Z\"/>\n</svg>`;\nfunction getSlotTemplateHTML(_attrs) {\n return (\n /*html*/\n `\n <style>\n :host([${MediaUIAttributes.MEDIA_IS_FULLSCREEN}]) slot[name=icon] slot:not([name=exit]) {\n display: none !important;\n }\n\n ${/* Double negative, but safer if display doesn't equal 'block' */\n \"\"}\n :host(:not([${MediaUIAttributes.MEDIA_IS_FULLSCREEN}])) slot[name=icon] slot:not([name=enter]) {\n display: none !important;\n }\n\n :host([${MediaUIAttributes.MEDIA_IS_FULLSCREEN}]) slot[name=tooltip-enter],\n :host(:not([${MediaUIAttributes.MEDIA_IS_FULLSCREEN}])) slot[name=tooltip-exit] {\n display: none;\n }\n </style>\n\n <slot name=\"icon\">\n <slot name=\"enter\">${enterFullscreenIcon}</slot>\n <slot name=\"exit\">${exitFullscreenIcon}</slot>\n </slot>\n `\n );\n}\nfunction getTooltipContentHTML() {\n return (\n /*html*/\n `\n <slot name=\"tooltip-enter\">${t(\"Enter fullscreen mode\")}</slot>\n <slot name=\"tooltip-exit\">${t(\"Exit fullscreen mode\")}</slot>\n `\n );\n}\nconst updateAriaLabel = (el) => {\n const label = el.mediaIsFullscreen ? t(\"exit fullscreen mode\") : t(\"enter fullscreen mode\");\n el.setAttribute(\"aria-label\", label);\n};\nclass MediaFullscreenButton extends MediaChromeButton {\n constructor() {\n super(...arguments);\n __privateAdd(this, _lastActionEvent, null);\n }\n static get observedAttributes() {\n return [\n ...super.observedAttributes,\n MediaUIAttributes.MEDIA_IS_FULLSCREEN,\n MediaUIAttributes.MEDIA_FULLSCREEN_UNAVAILABLE\n ];\n }\n connectedCallback() {\n super.connectedCallback();\n updateAriaLabel(this);\n }\n attributeChangedCallback(attrName, oldValue, newValue) {\n super.attributeChangedCallback(attrName, oldValue, newValue);\n if (attrName === MediaUIAttributes.MEDIA_IS_FULLSCREEN) {\n updateAriaLabel(this);\n }\n }\n /**\n * @type {string | undefined} Fullscreen unavailability state\n */\n get mediaFullscreenUnavailable() {\n return getStringAttr(this, MediaUIAttributes.MEDIA_FULLSCREEN_UNAVAILABLE);\n }\n set mediaFullscreenUnavailable(value) {\n setStringAttr(this, MediaUIAttributes.MEDIA_FULLSCREEN_UNAVAILABLE, value);\n }\n /**\n * @type {boolean} Whether fullscreen is available\n */\n get mediaIsFullscreen() {\n return getBooleanAttr(this, MediaUIAttributes.MEDIA_IS_FULLSCREEN);\n }\n set mediaIsFullscreen(value) {\n setBooleanAttr(this, MediaUIAttributes.MEDIA_IS_FULLSCREEN, value);\n }\n handleClick(e) {\n __privateSet(this, _lastActionEvent, e);\n const isPointerEvent = __privateGet(this, _lastActionEvent) instanceof PointerEvent;\n const event = this.mediaIsFullscreen ? new globalThis.CustomEvent(\n MediaUIEvents.MEDIA_EXIT_FULLSCREEN_REQUEST,\n { composed: true, bubbles: true }\n ) : new globalThis.CustomEvent(\n MediaUIEvents.MEDIA_ENTER_FULLSCREEN_REQUEST,\n { composed: true, bubbles: true, detail: isPointerEvent }\n );\n this.dispatchEvent(event);\n }\n}\n_lastActionEvent = new WeakMap();\nMediaFullscreenButton.getSlotTemplateHTML = getSlotTemplateHTML;\nMediaFullscreenButton.getTooltipContentHTML = getTooltipContentHTML;\nif (!globalThis.customElements.get(\"media-fullscreen-button\")) {\n globalThis.customElements.define(\n \"media-fullscreen-button\",\n MediaFullscreenButton\n );\n}\nvar media_fullscreen_button_default = MediaFullscreenButton;\nexport {\n media_fullscreen_button_default as default\n};\n","import { MediaChromeButton } from \"./media-chrome-button.js\";\nimport { globalThis } from \"./utils/server-safe-globals.js\";\nimport { MediaUIEvents, MediaUIAttributes } from \"./constants.js\";\nimport { getBooleanAttr, setBooleanAttr } from \"./utils/element-utils.js\";\nimport { t } from \"./utils/i18n.js\";\nconst { MEDIA_TIME_IS_LIVE, MEDIA_PAUSED } = MediaUIAttributes;\nconst { MEDIA_SEEK_TO_LIVE_REQUEST, MEDIA_PLAY_REQUEST } = MediaUIEvents;\nconst indicatorSVG = '<svg viewBox=\"0 0 6 12\"><circle cx=\"3\" cy=\"6\" r=\"2\"></circle></svg>';\nfunction getSlotTemplateHTML(_attrs) {\n return (\n /*html*/\n `\n <style>\n :host { --media-tooltip-display: none; }\n \n slot[name=indicator] > *,\n :host ::slotted([slot=indicator]) {\n ${/* Override styles for icon-only buttons */\n \"\"}\n min-width: auto;\n fill: var(--media-live-button-icon-color, rgb(140, 140, 140));\n color: var(--media-live-button-icon-color, rgb(140, 140, 140));\n }\n\n :host([${MEDIA_TIME_IS_LIVE}]:not([${MEDIA_PAUSED}])) slot[name=indicator] > *,\n :host([${MEDIA_TIME_IS_LIVE}]:not([${MEDIA_PAUSED}])) ::slotted([slot=indicator]) {\n fill: var(--media-live-button-indicator-color, rgb(255, 0, 0));\n color: var(--media-live-button-indicator-color, rgb(255, 0, 0));\n }\n\n :host([${MEDIA_TIME_IS_LIVE}]:not([${MEDIA_PAUSED}])) {\n cursor: var(--media-cursor, not-allowed);\n }\n\n slot[name=text]{\n text-transform: uppercase;\n }\n\n </style>\n\n <slot name=\"indicator\">${indicatorSVG}</slot>\n ${/*\n A new line between spacer and text creates inconsistent spacing\n between slotted items and default slots.\n */\n \"\"}\n <slot name=\"spacer\">&nbsp;</slot><slot name=\"text\">${t(\"live\")}</slot>\n `\n );\n}\nconst updateAriaAttributes = (el) => {\n var _a;\n const isPausedOrNotLive = el.mediaPaused || !el.mediaTimeIsLive;\n const label = isPausedOrNotLive ? t(\"seek to live\") : t(\"playing live\");\n el.setAttribute(\"aria-label\", label);\n const textSlot = (_a = el.shadowRoot) == null ? void 0 : _a.querySelector('slot[name=\"text\"]');\n if (textSlot)\n textSlot.textContent = t(\"live\");\n isPausedOrNotLive ? el.removeAttribute(\"aria-disabled\") : el.setAttribute(\"aria-disabled\", \"true\");\n};\nclass MediaLiveButton extends MediaChromeButton {\n static get observedAttributes() {\n return [\n ...super.observedAttributes,\n MEDIA_TIME_IS_LIVE,\n MEDIA_PAUSED\n ];\n }\n connectedCallback() {\n super.connectedCallback();\n updateAriaAttributes(this);\n }\n attributeChangedCallback(attrName, oldValue, newValue) {\n super.attributeChangedCallback(attrName, oldValue, newValue);\n updateAriaAttributes(this);\n }\n /**\n * @type {boolean} Is the media paused\n */\n get mediaPaused() {\n return getBooleanAttr(this, MediaUIAttributes.MEDIA_PAUSED);\n }\n set mediaPaused(value) {\n setBooleanAttr(this, MediaUIAttributes.MEDIA_PAUSED, value);\n }\n /**\n * @type {boolean} Is the media playback currently live\n */\n get mediaTimeIsLive() {\n return getBooleanAttr(this, MediaUIAttributes.MEDIA_TIME_IS_LIVE);\n }\n set mediaTimeIsLive(value) {\n setBooleanAttr(this, MediaUIAttributes.MEDIA_TIME_IS_LIVE, value);\n }\n handleClick() {\n if (!this.mediaPaused && this.mediaTimeIsLive)\n return;\n this.dispatchEvent(\n new globalThis.CustomEvent(MEDIA_SEEK_TO_LIVE_REQUEST, {\n composed: true,\n bubbles: true\n })\n );\n if (this.hasAttribute(MEDIA_PAUSED)) {\n this.dispatchEvent(\n new globalThis.CustomEvent(MEDIA_PLAY_REQUEST, {\n composed: true,\n bubbles: true\n })\n );\n }\n }\n}\nMediaLiveButton.getSlotTemplateHTML = getSlotTemplateHTML;\nif (!globalThis.customElements.get(\"media-live-button\")) {\n globalThis.customElements.define(\"media-live-button\", MediaLiveButton);\n}\nvar media_live_button_default = MediaLiveButton;\nexport {\n media_live_button_default as default\n};\n","var __accessCheck = (obj, member, msg) => {\n if (!member.has(obj))\n throw TypeError(\"Cannot \" + msg);\n};\nvar __privateGet = (obj, member, getter) => {\n __accessCheck(obj, member, \"read from private field\");\n return getter ? getter.call(obj) : member.get(obj);\n};\nvar __privateAdd = (obj, member, value) => {\n if (member.has(obj))\n throw TypeError(\"Cannot add the same private member more than once\");\n member instanceof WeakSet ? member.add(obj) : member.set(obj, value);\n};\nvar __privateSet = (obj, member, value, setter) => {\n __accessCheck(obj, member, \"write to private field\");\n setter ? setter.call(obj, value) : member.set(obj, value);\n return value;\n};\nvar _mediaController, _delay;\nimport {\n MediaUIAttributes,\n MediaStateReceiverAttributes\n} from \"./constants.js\";\nimport { globalThis } from \"./utils/server-safe-globals.js\";\nimport {\n getBooleanAttr,\n setBooleanAttr,\n getOrInsertCSSRule,\n setStringAttr,\n getStringAttr,\n namedNodeMapToObject\n} from \"./utils/element-utils.js\";\nimport { t } from \"./utils/i18n.js\";\nconst Attributes = {\n LOADING_DELAY: \"loadingdelay\",\n NO_AUTOHIDE: \"noautohide\"\n};\nconst DEFAULT_LOADING_DELAY = 500;\nconst loadingIndicatorIcon = `\n<svg aria-hidden=\"true\" viewBox=\"0 0 100 100\">\n <path d=\"M73,50c0-12.7-10.3-23-23-23S27,37.3,27,50 M30.9,50c0-10.5,8.5-19.1,19.1-19.1S69.1,39.5,69.1,50\">\n <animateTransform\n attributeName=\"transform\"\n attributeType=\"XML\"\n type=\"rotate\"\n dur=\"1s\"\n from=\"0 50 50\"\n to=\"360 50 50\"\n repeatCount=\"indefinite\" />\n </path>\n</svg>\n`;\nfunction getTemplateHTML(_attrs) {\n return (\n /*html*/\n `\n <style>\n :host {\n display: var(--media-control-display, var(--media-loading-indicator-display, inline-block));\n vertical-align: middle;\n box-sizing: border-box;\n --_loading-indicator-delay: var(--media-loading-indicator-transition-delay, ${DEFAULT_LOADING_DELAY}ms);\n }\n\n #status {\n color: rgba(0,0,0,0);\n width: 0px;\n height: 0px;\n }\n\n :host slot[name=icon] > *,\n :host ::slotted([slot=icon]) {\n opacity: var(--media-loading-indicator-opacity, 0);\n transition: opacity 0.15s;\n }\n\n :host([${MediaUIAttributes.MEDIA_LOADING}]:not([${MediaUIAttributes.MEDIA_PAUSED}])) slot[name=icon] > *,\n :host([${MediaUIAttributes.MEDIA_LOADING}]:not([${MediaUIAttributes.MEDIA_PAUSED}])) ::slotted([slot=icon]) {\n opacity: var(--media-loading-indicator-opacity, 1);\n transition: opacity 0.15s var(--_loading-indicator-delay);\n }\n\n :host #status {\n visibility: var(--media-loading-indicator-opacity, hidden);\n transition: visibility 0.15s;\n }\n\n :host([${MediaUIAttributes.MEDIA_LOADING}]:not([${MediaUIAttributes.MEDIA_PAUSED}])) #status {\n visibility: var(--media-loading-indicator-opacity, visible);\n transition: visibility 0.15s var(--_loading-indicator-delay);\n }\n\n svg, img, ::slotted(svg), ::slotted(img) {\n width: var(--media-loading-indicator-icon-width);\n height: var(--media-loading-indicator-icon-height, 100px);\n fill: var(--media-icon-color, var(--media-primary-color, rgb(238 238 238)));\n vertical-align: middle;\n }\n </style>\n\n <slot name=\"icon\">${loadingIndicatorIcon}</slot>\n <div id=\"status\" role=\"status\" aria-live=\"polite\">${t(\"media loading\")}</div>\n `\n );\n}\nclass MediaLoadingIndicator extends globalThis.HTMLElement {\n constructor() {\n super();\n __privateAdd(this, _mediaController, void 0);\n __privateAdd(this, _delay, DEFAULT_LOADING_DELAY);\n if (!this.shadowRoot) {\n this.attachShadow(this.constructor.shadowRootOptions);\n const attrs = namedNodeMapToObject(this.attributes);\n this.shadowRoot.innerHTML = this.constructor.getTemplateHTML(attrs);\n }\n }\n static get observedAttributes() {\n return [\n MediaStateReceiverAttributes.MEDIA_CONTROLLER,\n MediaUIAttributes.MEDIA_PAUSED,\n MediaUIAttributes.MEDIA_LOADING,\n Attributes.LOADING_DELAY\n ];\n }\n attributeChangedCallback(attrName, oldValue, newValue) {\n var _a, _b, _c, _d, _e;\n if (attrName === Attributes.LOADING_DELAY && oldValue !== newValue) {\n this.loadingDelay = Number(newValue);\n } else if (attrName === MediaStateReceiverAttributes.MEDIA_CONTROLLER) {\n if (oldValue) {\n (_b = (_a = __privateGet(this, _mediaController)) == null ? void 0 : _a.unassociateElement) == null ? void 0 : _b.call(_a, this);\n __privateSet(this, _mediaController, null);\n }\n if (newValue && this.isConnected) {\n __privateSet(this, _mediaController, (_c = this.getRootNode()) == null ? void 0 : _c.getElementById(newValue));\n (_e = (_d = __privateGet(this, _mediaController)) == null ? void 0 : _d.associateElement) == null ? void 0 : _e.call(_d, this);\n }\n }\n }\n connectedCallback() {\n var _a, _b, _c;\n const mediaControllerId = this.getAttribute(\n MediaStateReceiverAttributes.MEDIA_CONTROLLER\n );\n if (mediaControllerId) {\n __privateSet(this, _mediaController, (_a = this.getRootNode()) == null ? void 0 : _a.getElementById(\n mediaControllerId\n ));\n (_c = (_b = __privateGet(this, _mediaController)) == null ? void 0 : _b.associateElement) == null ? void 0 : _c.call(_b, this);\n }\n }\n disconnectedCallback() {\n var _a, _b;\n (_b = (_a = __privateGet(this, _mediaController)) == null ? void 0 : _a.unassociateElement) == null ? void 0 : _b.call(_a, this);\n __privateSet(this, _mediaController, null);\n }\n /**\n * Delay in ms\n */\n get loadingDelay() {\n return __privateGet(this, _delay);\n }\n set loadingDelay(delay) {\n __privateSet(this, _delay, delay);\n const { style } = getOrInsertCSSRule(this.shadowRoot, \":host\");\n style.setProperty(\n \"--_loading-indicator-delay\",\n `var(--media-loading-indicator-transition-delay, ${delay}ms)`\n );\n }\n /**\n * Is the media paused\n */\n get mediaPaused() {\n return getBooleanAttr(this, MediaUIAttributes.MEDIA_PAUSED);\n }\n set mediaPaused(value) {\n setBooleanAttr(this, MediaUIAttributes.MEDIA_PAUSED, value);\n }\n /**\n * Is the media loading\n */\n get mediaLoading() {\n return getBooleanAttr(this, MediaUIAttributes.MEDIA_LOADING);\n }\n set mediaLoading(value) {\n setBooleanAttr(this, MediaUIAttributes.MEDIA_LOADING, value);\n }\n get mediaController() {\n return getStringAttr(this, MediaStateReceiverAttributes.MEDIA_CONTROLLER);\n }\n set mediaController(value) {\n setStringAttr(this, MediaStateReceiverAttributes.MEDIA_CONTROLLER, value);\n }\n get noAutohide() {\n return getBooleanAttr(this, Attributes.NO_AUTOHIDE);\n }\n set noAutohide(value) {\n setBooleanAttr(this, Attributes.NO_AUTOHIDE, value);\n }\n}\n_mediaController = new WeakMap();\n_delay = new WeakMap();\nMediaLoadingIndicator.shadowRootOptions = { mode: \"open\" };\nMediaLoadingIndicator.getTemplateHTML = getTemplateHTML;\nif (!globalThis.customElements.get(\"media-loading-indicator\")) {\n globalThis.customElements.define(\n \"media-loading-indicator\",\n MediaLoadingIndicator\n );\n}\nvar media_loading_indicator_default = MediaLoadingIndicator;\nexport {\n Attributes,\n media_loading_indicator_default as default\n};\n","import { MediaChromeButton } from \"./media-chrome-button.js\";\nimport { globalThis } from \"./utils/server-safe-globals.js\";\nimport { MediaUIEvents, MediaUIAttributes } from \"./constants.js\";\nimport { t } from \"./utils/i18n.js\";\nimport { getStringAttr, setStringAttr } from \"./utils/element-utils.js\";\nconst offIcon = `<svg aria-hidden=\"true\" viewBox=\"0 0 24 24\">\n <path d=\"M16.5 12A4.5 4.5 0 0 0 14 8v2.18l2.45 2.45a4.22 4.22 0 0 0 .05-.63Zm2.5 0a6.84 6.84 0 0 1-.54 2.64L20 16.15A8.8 8.8 0 0 0 21 12a9 9 0 0 0-7-8.77v2.06A7 7 0 0 1 19 12ZM4.27 3 3 4.27 7.73 9H3v6h4l5 5v-6.73l4.25 4.25A6.92 6.92 0 0 1 14 18.7v2.06A9 9 0 0 0 17.69 19l2 2.05L21 19.73l-9-9L4.27 3ZM12 4 9.91 6.09 12 8.18V4Z\"/>\n</svg>`;\nconst lowIcon = `<svg aria-hidden=\"true\" viewBox=\"0 0 24 24\">\n <path d=\"M3 9v6h4l5 5V4L7 9H3Zm13.5 3A4.5 4.5 0 0 0 14 8v8a4.47 4.47 0 0 0 2.5-4Z\"/>\n</svg>`;\nconst highIcon = `<svg aria-hidden=\"true\" viewBox=\"0 0 24 24\">\n <path d=\"M3 9v6h4l5 5V4L7 9H3Zm13.5 3A4.5 4.5 0 0 0 14 8v8a4.47 4.47 0 0 0 2.5-4ZM14 3.23v2.06a7 7 0 0 1 0 13.42v2.06a9 9 0 0 0 0-17.54Z\"/>\n</svg>`;\nfunction getSlotTemplateHTML(_attrs) {\n return (\n /*html*/\n `\n <style>\n :host(:not([${MediaUIAttributes.MEDIA_VOLUME_LEVEL}])) slot[name=icon] slot:not([name=high]),\n :host([${MediaUIAttributes.MEDIA_VOLUME_LEVEL}=high]) slot[name=icon] slot:not([name=high]) {\n display: none !important;\n }\n\n :host([${MediaUIAttributes.MEDIA_VOLUME_LEVEL}=off]) slot[name=icon] slot:not([name=off]) {\n display: none !important;\n }\n\n :host([${MediaUIAttributes.MEDIA_VOLUME_LEVEL}=low]) slot[name=icon] slot:not([name=low]) {\n display: none !important;\n }\n\n :host([${MediaUIAttributes.MEDIA_VOLUME_LEVEL}=medium]) slot[name=icon] slot:not([name=medium]) {\n display: none !important;\n }\n\n :host(:not([${MediaUIAttributes.MEDIA_VOLUME_LEVEL}=off])) slot[name=tooltip-unmute],\n :host([${MediaUIAttributes.MEDIA_VOLUME_LEVEL}=off]) slot[name=tooltip-mute] {\n display: none;\n }\n </style>\n\n <slot name=\"icon\">\n <slot name=\"off\">${offIcon}</slot>\n <slot name=\"low\">${lowIcon}</slot>\n <slot name=\"medium\">${lowIcon}</slot>\n <slot name=\"high\">${highIcon}</slot>\n </slot>\n `\n );\n}\nfunction getTooltipContentHTML() {\n return (\n /*html*/\n `\n <slot name=\"tooltip-mute\">${t(\"Mute\")}</slot>\n <slot name=\"tooltip-unmute\">${t(\"Unmute\")}</slot>\n `\n );\n}\nconst updateAriaLabel = (el) => {\n const muted = el.mediaVolumeLevel === \"off\";\n const label = muted ? t(\"unmute\") : t(\"mute\");\n el.setAttribute(\"aria-label\", label);\n};\nclass MediaMuteButton extends MediaChromeButton {\n static get observedAttributes() {\n return [...super.observedAttributes, MediaUIAttributes.MEDIA_VOLUME_LEVEL];\n }\n connectedCallback() {\n super.connectedCallback();\n updateAriaLabel(this);\n }\n attributeChangedCallback(attrName, oldValue, newValue) {\n super.attributeChangedCallback(attrName, oldValue, newValue);\n if (attrName === MediaUIAttributes.MEDIA_VOLUME_LEVEL) {\n updateAriaLabel(this);\n }\n }\n /**\n * @type {string | undefined}\n */\n get mediaVolumeLevel() {\n return getStringAttr(this, MediaUIAttributes.MEDIA_VOLUME_LEVEL);\n }\n set mediaVolumeLevel(value) {\n setStringAttr(this, MediaUIAttributes.MEDIA_VOLUME_LEVEL, value);\n }\n handleClick() {\n const eventName = this.mediaVolumeLevel === \"off\" ? MediaUIEvents.MEDIA_UNMUTE_REQUEST : MediaUIEvents.MEDIA_MUTE_REQUEST;\n this.dispatchEvent(\n new globalThis.CustomEvent(eventName, { composed: true, bubbles: true })\n );\n }\n}\nMediaMuteButton.getSlotTemplateHTML = getSlotTemplateHTML;\nMediaMuteButton.getTooltipContentHTML = getTooltipContentHTML;\nif (!globalThis.customElements.get(\"media-mute-button\")) {\n globalThis.customElements.define(\"media-mute-button\", MediaMuteButton);\n}\nvar media_mute_button_default = MediaMuteButton;\nexport {\n media_mute_button_default as default\n};\n","import { MediaChromeButton } from \"./media-chrome-button.js\";\nimport { globalThis } from \"./utils/server-safe-globals.js\";\nimport { MediaUIEvents, MediaUIAttributes } from \"./constants.js\";\nimport { t } from \"./utils/i18n.js\";\nimport {\n getBooleanAttr,\n getStringAttr,\n setBooleanAttr,\n setStringAttr\n} from \"./utils/element-utils.js\";\nconst pipIcon = `<svg aria-hidden=\"true\" viewBox=\"0 0 28 24\">\n <path d=\"M24 3H4a1 1 0 0 0-1 1v16a1 1 0 0 0 1 1h20a1 1 0 0 0 1-1V4a1 1 0 0 0-1-1Zm-1 16H5V5h18v14Zm-3-8h-7v5h7v-5Z\"/>\n</svg>`;\nfunction getSlotTemplateHTML(_attrs) {\n return (\n /*html*/\n `\n <style>\n :host([${MediaUIAttributes.MEDIA_IS_PIP}]) slot[name=icon] slot:not([name=exit]) {\n display: none !important;\n }\n\n :host(:not([${MediaUIAttributes.MEDIA_IS_PIP}])) slot[name=icon] slot:not([name=enter]) {\n display: none !important;\n }\n\n :host([${MediaUIAttributes.MEDIA_IS_PIP}]) slot[name=tooltip-enter],\n :host(:not([${MediaUIAttributes.MEDIA_IS_PIP}])) slot[name=tooltip-exit] {\n display: none;\n }\n </style>\n\n <slot name=\"icon\">\n <slot name=\"enter\">${pipIcon}</slot>\n <slot name=\"exit\">${pipIcon}</slot>\n </slot>\n `\n );\n}\nfunction getTooltipContentHTML() {\n return (\n /*html*/\n `\n <slot name=\"tooltip-enter\">${t(\"Enter picture in picture mode\")}</slot>\n <slot name=\"tooltip-exit\">${t(\"Exit picture in picture mode\")}</slot>\n `\n );\n}\nconst updateAriaLabel = (el) => {\n const label = el.mediaIsPip ? t(\"exit picture in picture mode\") : t(\"enter picture in picture mode\");\n el.setAttribute(\"aria-label\", label);\n};\nclass MediaPipButton extends MediaChromeButton {\n static get observedAttributes() {\n return [\n ...super.observedAttributes,\n MediaUIAttributes.MEDIA_IS_PIP,\n MediaUIAttributes.MEDIA_PIP_UNAVAILABLE\n ];\n }\n connectedCallback() {\n super.connectedCallback();\n updateAriaLabel(this);\n }\n attributeChangedCallback(attrName, oldValue, newValue) {\n super.attributeChangedCallback(attrName, oldValue, newValue);\n if (attrName === MediaUIAttributes.MEDIA_IS_PIP) {\n updateAriaLabel(this);\n }\n }\n /**\n * @type {string | undefined} Pip unavailability state\n */\n get mediaPipUnavailable() {\n return getStringAttr(this, MediaUIAttributes.MEDIA_PIP_UNAVAILABLE);\n }\n set mediaPipUnavailable(value) {\n setStringAttr(this, MediaUIAttributes.MEDIA_PIP_UNAVAILABLE, value);\n }\n /**\n * @type {boolean} Is the media currently playing picture-in-picture\n */\n get mediaIsPip() {\n return getBooleanAttr(this, MediaUIAttributes.MEDIA_IS_PIP);\n }\n set mediaIsPip(value) {\n setBooleanAttr(this, MediaUIAttributes.MEDIA_IS_PIP, value);\n }\n handleClick() {\n const eventName = this.mediaIsPip ? MediaUIEvents.MEDIA_EXIT_PIP_REQUEST : MediaUIEvents.MEDIA_ENTER_PIP_REQUEST;\n this.dispatchEvent(\n new globalThis.CustomEvent(eventName, { composed: true, bubbles: true })\n );\n }\n}\nMediaPipButton.getSlotTemplateHTML = getSlotTemplateHTML;\nMediaPipButton.getTooltipContentHTML = getTooltipContentHTML;\nif (!globalThis.customElements.get(\"media-pip-button\")) {\n globalThis.customElements.define(\"media-pip-button\", MediaPipButton);\n}\nvar media_pip_button_default = MediaPipButton;\nexport {\n media_pip_button_default as default\n};\n","var __accessCheck = (obj, member, msg) => {\n if (!member.has(obj))\n throw TypeError(\"Cannot \" + msg);\n};\nvar __privateGet = (obj, member, getter) => {\n __accessCheck(obj, member, \"read from private field\");\n return getter ? getter.call(obj) : member.get(obj);\n};\nvar __privateAdd = (obj, member, value) => {\n if (member.has(obj))\n throw TypeError(\"Cannot add the same private member more than once\");\n member instanceof WeakSet ? member.add(obj) : member.set(obj, value);\n};\nvar _rates;\nimport { MediaChromeButton } from \"./media-chrome-button.js\";\nimport { globalThis } from \"./utils/server-safe-globals.js\";\nimport { MediaUIEvents, MediaUIAttributes } from \"./constants.js\";\nimport { AttributeTokenList } from \"./utils/attribute-token-list.js\";\nimport { getNumericAttr, setNumericAttr } from \"./utils/element-utils.js\";\nimport { t } from \"./utils/i18n.js\";\nconst Attributes = {\n RATES: \"rates\"\n};\nconst DEFAULT_RATES = [1, 1.2, 1.5, 1.7, 2];\nconst DEFAULT_RATE = 1;\nfunction getSlotTemplateHTML(attrs) {\n return (\n /*html*/\n `\n <style>\n :host {\n min-width: 5ch;\n padding: var(--media-button-padding, var(--media-control-padding, 10px 5px));\n }\n </style>\n <slot name=\"icon\">${attrs[\"mediaplaybackrate\"] || DEFAULT_RATE}x</slot>\n `\n );\n}\nfunction getTooltipContentHTML() {\n return t(\"Playback rate\");\n}\nclass MediaPlaybackRateButton extends MediaChromeButton {\n constructor() {\n var _a;\n super();\n __privateAdd(this, _rates, new AttributeTokenList(this, Attributes.RATES, {\n defaultValue: DEFAULT_RATES\n }));\n this.container = this.shadowRoot.querySelector('slot[name=\"icon\"]');\n this.container.innerHTML = `${(_a = this.mediaPlaybackRate) != null ? _a : DEFAULT_RATE}x`;\n }\n static get observedAttributes() {\n return [\n ...super.observedAttributes,\n MediaUIAttributes.MEDIA_PLAYBACK_RATE,\n Attributes.RATES\n ];\n }\n attributeChangedCallback(attrName, oldValue, newValue) {\n super.attributeChangedCallback(attrName, oldValue, newValue);\n if (attrName === Attributes.RATES) {\n __privateGet(this, _rates).value = newValue;\n }\n if (attrName === MediaUIAttributes.MEDIA_PLAYBACK_RATE) {\n const newPlaybackRate = newValue ? +newValue : Number.NaN;\n const playbackRate = !Number.isNaN(newPlaybackRate) ? newPlaybackRate : DEFAULT_RATE;\n this.container.innerHTML = `${playbackRate}x`;\n this.setAttribute(\n \"aria-label\",\n t(\"Playback rate {playbackRate}\", { playbackRate })\n );\n }\n }\n /**\n * Get the playback rates for the button.\n */\n get rates() {\n return __privateGet(this, _rates);\n }\n /**\n * Set the playback rates for the button.\n * For React 19+ compatibility, accept a string of space-separated rates.\n */\n set rates(value) {\n if (!value) {\n __privateGet(this, _rates).value = \"\";\n } else if (Array.isArray(value)) {\n __privateGet(this, _rates).value = value.join(\" \");\n } else if (typeof value === \"string\") {\n __privateGet(this, _rates).value = value;\n }\n }\n /**\n * @type {number} The current playback rate\n */\n get mediaPlaybackRate() {\n return getNumericAttr(\n this,\n MediaUIAttributes.MEDIA_PLAYBACK_RATE,\n DEFAULT_RATE\n );\n }\n set mediaPlaybackRate(value) {\n setNumericAttr(this, MediaUIAttributes.MEDIA_PLAYBACK_RATE, value);\n }\n handleClick() {\n var _a, _b;\n const availableRates = Array.from(__privateGet(this, _rates).values(), (str) => +str).sort(\n (a, b) => a - b\n );\n const detail = (_b = (_a = availableRates.find((r) => r > this.mediaPlaybackRate)) != null ? _a : availableRates[0]) != null ? _b : DEFAULT_RATE;\n const evt = new globalThis.CustomEvent(\n MediaUIEvents.MEDIA_PLAYBACK_RATE_REQUEST,\n { composed: true, bubbles: true, detail }\n );\n this.dispatchEvent(evt);\n }\n}\n_rates = new WeakMap();\nMediaPlaybackRateButton.getSlotTemplateHTML = getSlotTemplateHTML;\nMediaPlaybackRateButton.getTooltipContentHTML = getTooltipContentHTML;\nif (!globalThis.customElements.get(\"media-playback-rate-button\")) {\n globalThis.customElements.define(\n \"media-playback-rate-button\",\n MediaPlaybackRateButton\n );\n}\nvar media_playback_rate_button_default = MediaPlaybackRateButton;\nexport {\n Attributes,\n DEFAULT_RATE,\n DEFAULT_RATES,\n media_playback_rate_button_default as default\n};\n","import { MediaChromeButton } from \"./media-chrome-button.js\";\nimport { globalThis } from \"./utils/server-safe-globals.js\";\nimport { MediaUIEvents, MediaUIAttributes } from \"./constants.js\";\nimport { t } from \"./utils/i18n.js\";\nimport { getBooleanAttr, setBooleanAttr } from \"./utils/element-utils.js\";\nconst playIcon = `<svg aria-hidden=\"true\" viewBox=\"0 0 24 24\">\n <path d=\"m6 21 15-9L6 3v18Z\"/>\n</svg>`;\nconst pauseIcon = `<svg aria-hidden=\"true\" viewBox=\"0 0 24 24\">\n <path d=\"M6 20h4V4H6v16Zm8-16v16h4V4h-4Z\"/>\n</svg>`;\nfunction getSlotTemplateHTML(_attrs) {\n return (\n /*html*/\n `\n <style>\n :host([${MediaUIAttributes.MEDIA_PAUSED}]) slot[name=pause],\n :host(:not([${MediaUIAttributes.MEDIA_PAUSED}])) slot[name=play] {\n display: none !important;\n }\n\n :host([${MediaUIAttributes.MEDIA_PAUSED}]) slot[name=tooltip-pause],\n :host(:not([${MediaUIAttributes.MEDIA_PAUSED}])) slot[name=tooltip-play] {\n display: none;\n }\n </style>\n\n <slot name=\"icon\">\n <slot name=\"play\">${playIcon}</slot>\n <slot name=\"pause\">${pauseIcon}</slot>\n </slot>\n `\n );\n}\nfunction getTooltipContentHTML() {\n return (\n /*html*/\n `\n <slot name=\"tooltip-play\">${t(\"Play\")}</slot>\n <slot name=\"tooltip-pause\">${t(\"Pause\")}</slot>\n `\n );\n}\nconst updateAriaLabel = (el) => {\n const label = el.mediaPaused ? t(\"play\") : t(\"pause\");\n el.setAttribute(\"aria-label\", label);\n};\nclass MediaPlayButton extends MediaChromeButton {\n static get observedAttributes() {\n return [\n ...super.observedAttributes,\n MediaUIAttributes.MEDIA_PAUSED,\n MediaUIAttributes.MEDIA_ENDED\n ];\n }\n connectedCallback() {\n super.connectedCallback();\n updateAriaLabel(this);\n }\n attributeChangedCallback(attrName, oldValue, newValue) {\n super.attributeChangedCallback(attrName, oldValue, newValue);\n if (attrName === MediaUIAttributes.MEDIA_PAUSED || attrName === MediaUIAttributes.MEDIA_LANG) {\n updateAriaLabel(this);\n }\n }\n /**\n * Is the media paused\n */\n get mediaPaused() {\n return getBooleanAttr(this, MediaUIAttributes.MEDIA_PAUSED);\n }\n set mediaPaused(value) {\n setBooleanAttr(this, MediaUIAttributes.MEDIA_PAUSED, value);\n }\n handleClick() {\n const eventName = this.mediaPaused ? MediaUIEvents.MEDIA_PLAY_REQUEST : MediaUIEvents.MEDIA_PAUSE_REQUEST;\n this.dispatchEvent(\n new globalThis.CustomEvent(eventName, { composed: true, bubbles: true })\n );\n }\n}\nMediaPlayButton.getSlotTemplateHTML = getSlotTemplateHTML;\nMediaPlayButton.getTooltipContentHTML = getTooltipContentHTML;\nif (!globalThis.customElements.get(\"media-play-button\")) {\n globalThis.customElements.define(\"media-play-button\", MediaPlayButton);\n}\nvar media_play_button_default = MediaPlayButton;\nexport {\n MediaPlayButton,\n media_play_button_default as default\n};\n","import { globalThis } from \"./utils/server-safe-globals.js\";\nimport { getStringAttr, namedNodeMapToObject, setStringAttr } from \"./utils/element-utils.js\";\nconst Attributes = {\n PLACEHOLDER_SRC: \"placeholdersrc\",\n SRC: \"src\"\n};\nfunction getTemplateHTML(_attrs) {\n return (\n /*html*/\n `\n <style>\n :host {\n pointer-events: none;\n display: var(--media-poster-image-display, inline-block);\n box-sizing: border-box;\n }\n\n img {\n max-width: 100%;\n max-height: 100%;\n min-width: 100%;\n min-height: 100%;\n background-repeat: no-repeat;\n background-position: var(--media-poster-image-background-position, var(--media-object-position, center));\n background-size: var(--media-poster-image-background-size, var(--media-object-fit, contain));\n object-fit: var(--media-object-fit, contain);\n object-position: var(--media-object-position, center);\n }\n </style>\n\n <img part=\"poster img\" aria-hidden=\"true\" id=\"image\"/>\n `\n );\n}\nconst unsetBackgroundImage = (el) => {\n el.style.removeProperty(\"background-image\");\n};\nconst setBackgroundImage = (el, image) => {\n el.style[\"background-image\"] = `url('${image}')`;\n};\nclass MediaPosterImage extends globalThis.HTMLElement {\n static get observedAttributes() {\n return [Attributes.PLACEHOLDER_SRC, Attributes.SRC];\n }\n constructor() {\n super();\n if (!this.shadowRoot) {\n this.attachShadow(this.constructor.shadowRootOptions);\n const attrs = namedNodeMapToObject(this.attributes);\n this.shadowRoot.innerHTML = this.constructor.getTemplateHTML(attrs);\n }\n this.image = this.shadowRoot.querySelector(\"#image\");\n }\n attributeChangedCallback(attrName, oldValue, newValue) {\n if (attrName === Attributes.SRC) {\n if (newValue == null) {\n this.image.removeAttribute(Attributes.SRC);\n } else {\n this.image.setAttribute(Attributes.SRC, newValue);\n }\n }\n if (attrName === Attributes.PLACEHOLDER_SRC) {\n if (newValue == null) {\n unsetBackgroundImage(this.image);\n } else {\n setBackgroundImage(this.image, newValue);\n }\n }\n }\n /**\n *\n */\n get placeholderSrc() {\n return getStringAttr(this, Attributes.PLACEHOLDER_SRC);\n }\n set placeholderSrc(value) {\n setStringAttr(this, Attributes.SRC, value);\n }\n /**\n *\n */\n get src() {\n return getStringAttr(this, Attributes.SRC);\n }\n set src(value) {\n setStringAttr(this, Attributes.SRC, value);\n }\n}\nMediaPosterImage.shadowRootOptions = { mode: \"open\" };\nMediaPosterImage.getTemplateHTML = getTemplateHTML;\nif (!globalThis.customElements.get(\"media-poster-image\")) {\n globalThis.customElements.define(\"media-poster-image\", MediaPosterImage);\n}\nvar media_poster_image_default = MediaPosterImage;\nexport {\n Attributes,\n media_poster_image_default as default\n};\n","var __accessCheck = (obj, member, msg) => {\n if (!member.has(obj))\n throw TypeError(\"Cannot \" + msg);\n};\nvar __privateGet = (obj, member, getter) => {\n __accessCheck(obj, member, \"read from private field\");\n return getter ? getter.call(obj) : member.get(obj);\n};\nvar __privateAdd = (obj, member, value) => {\n if (member.has(obj))\n throw TypeError(\"Cannot add the same private member more than once\");\n member instanceof WeakSet ? member.add(obj) : member.set(obj, value);\n};\nvar __privateSet = (obj, member, value, setter) => {\n __accessCheck(obj, member, \"write to private field\");\n setter ? setter.call(obj, value) : member.set(obj, value);\n return value;\n};\nvar _slot;\nimport { MediaTextDisplay } from \"./media-text-display.js\";\nimport { globalThis } from \"./utils/server-safe-globals.js\";\nimport { MediaUIAttributes } from \"./constants.js\";\nimport { getStringAttr, setStringAttr } from \"./utils/element-utils.js\";\nimport { t } from \"./utils/i18n.js\";\nclass MediaPreviewChapterDisplay extends MediaTextDisplay {\n constructor() {\n super();\n __privateAdd(this, _slot, void 0);\n __privateSet(this, _slot, this.shadowRoot.querySelector(\"slot\"));\n }\n static get observedAttributes() {\n return [\n ...super.observedAttributes,\n MediaUIAttributes.MEDIA_PREVIEW_CHAPTER,\n MediaUIAttributes.MEDIA_LANG\n ];\n }\n attributeChangedCallback(attrName, oldValue, newValue) {\n super.attributeChangedCallback(attrName, oldValue, newValue);\n if (attrName === MediaUIAttributes.MEDIA_PREVIEW_CHAPTER || attrName === MediaUIAttributes.MEDIA_LANG) {\n if (newValue !== oldValue && newValue != null) {\n __privateGet(this, _slot).textContent = newValue;\n if (newValue !== \"\") {\n const ariaValueText = t(\"chapter: {chapterName}\", {\n chapterName: newValue\n });\n this.setAttribute(\"aria-valuetext\", ariaValueText);\n } else {\n this.removeAttribute(\"aria-valuetext\");\n }\n }\n }\n }\n /**\n * @type {string | undefined} Timeline preview chapter\n */\n get mediaPreviewChapter() {\n return getStringAttr(this, MediaUIAttributes.MEDIA_PREVIEW_CHAPTER);\n }\n set mediaPreviewChapter(value) {\n setStringAttr(this, MediaUIAttributes.MEDIA_PREVIEW_CHAPTER, value);\n }\n}\n_slot = new WeakMap();\nif (!globalThis.customElements.get(\"media-preview-chapter-display\")) {\n globalThis.customElements.define(\n \"media-preview-chapter-display\",\n MediaPreviewChapterDisplay\n );\n}\nvar media_preview_chapter_display_default = MediaPreviewChapterDisplay;\nexport {\n media_preview_chapter_display_default as default\n};\n","var __accessCheck = (obj, member, msg) => {\n if (!member.has(obj))\n throw TypeError(\"Cannot \" + msg);\n};\nvar __privateGet = (obj, member, getter) => {\n __accessCheck(obj, member, \"read from private field\");\n return getter ? getter.call(obj) : member.get(obj);\n};\nvar __privateAdd = (obj, member, value) => {\n if (member.has(obj))\n throw TypeError(\"Cannot add the same private member more than once\");\n member instanceof WeakSet ? member.add(obj) : member.set(obj, value);\n};\nvar __privateSet = (obj, member, value, setter) => {\n __accessCheck(obj, member, \"write to private field\");\n setter ? setter.call(obj, value) : member.set(obj, value);\n return value;\n};\nvar _mediaController;\nimport { globalThis } from \"./utils/server-safe-globals.js\";\nimport {\n MediaUIAttributes,\n MediaStateReceiverAttributes\n} from \"./constants.js\";\nimport {\n getOrInsertCSSRule,\n getStringAttr,\n namedNodeMapToObject,\n setStringAttr\n} from \"./utils/element-utils.js\";\nfunction getTemplateHTML(_attrs) {\n return (\n /*html*/\n `\n <style>\n :host {\n box-sizing: border-box;\n display: var(--media-control-display, var(--media-preview-thumbnail-display, inline-block));\n overflow: hidden;\n }\n\n img {\n display: none;\n position: relative;\n }\n </style>\n <img crossorigin loading=\"eager\" decoding=\"async\">\n `\n );\n}\nclass MediaPreviewThumbnail extends globalThis.HTMLElement {\n constructor() {\n super();\n __privateAdd(this, _mediaController, void 0);\n if (!this.shadowRoot) {\n this.attachShadow(this.constructor.shadowRootOptions);\n const attrs = namedNodeMapToObject(this.attributes);\n this.shadowRoot.innerHTML = this.constructor.getTemplateHTML(attrs);\n }\n }\n static get observedAttributes() {\n return [\n MediaStateReceiverAttributes.MEDIA_CONTROLLER,\n MediaUIAttributes.MEDIA_PREVIEW_IMAGE,\n MediaUIAttributes.MEDIA_PREVIEW_COORDS\n ];\n }\n connectedCallback() {\n var _a, _b, _c;\n const mediaControllerId = this.getAttribute(\n MediaStateReceiverAttributes.MEDIA_CONTROLLER\n );\n if (mediaControllerId) {\n __privateSet(\n this,\n _mediaController,\n // @ts-ignore\n (_a = this.getRootNode()) == null ? void 0 : _a.getElementById(mediaControllerId)\n );\n (_c = (_b = __privateGet(this, _mediaController)) == null ? void 0 : _b.associateElement) == null ? void 0 : _c.call(_b, this);\n }\n }\n disconnectedCallback() {\n var _a, _b;\n (_b = (_a = __privateGet(this, _mediaController)) == null ? void 0 : _a.unassociateElement) == null ? void 0 : _b.call(_a, this);\n __privateSet(this, _mediaController, null);\n }\n attributeChangedCallback(attrName, oldValue, newValue) {\n var _a, _b, _c, _d, _e;\n if ([\n MediaUIAttributes.MEDIA_PREVIEW_IMAGE,\n MediaUIAttributes.MEDIA_PREVIEW_COORDS\n ].includes(attrName)) {\n this.update();\n }\n if (attrName === MediaStateReceiverAttributes.MEDIA_CONTROLLER) {\n if (oldValue) {\n (_b = (_a = __privateGet(this, _mediaController)) == null ? void 0 : _a.unassociateElement) == null ? void 0 : _b.call(_a, this);\n __privateSet(this, _mediaController, null);\n }\n if (newValue && this.isConnected) {\n __privateSet(this, _mediaController, (_c = this.getRootNode()) == null ? void 0 : _c.getElementById(newValue));\n (_e = (_d = __privateGet(this, _mediaController)) == null ? void 0 : _d.associateElement) == null ? void 0 : _e.call(_d, this);\n }\n }\n }\n /**\n * @type {string | undefined} The url of the preview image\n */\n get mediaPreviewImage() {\n return getStringAttr(this, MediaUIAttributes.MEDIA_PREVIEW_IMAGE);\n }\n set mediaPreviewImage(value) {\n setStringAttr(this, MediaUIAttributes.MEDIA_PREVIEW_IMAGE, value);\n }\n /**\n * @type {Array<number> | undefined} Fixed length array [x, y, width, height] or undefined\n */\n get mediaPreviewCoords() {\n const attrVal = this.getAttribute(MediaUIAttributes.MEDIA_PREVIEW_COORDS);\n if (!attrVal)\n return void 0;\n return attrVal.split(/\\s+/).map((coord) => +coord);\n }\n set mediaPreviewCoords(value) {\n if (!value) {\n this.removeAttribute(MediaUIAttributes.MEDIA_PREVIEW_COORDS);\n return;\n }\n this.setAttribute(MediaUIAttributes.MEDIA_PREVIEW_COORDS, value.join(\" \"));\n }\n update() {\n const coords = this.mediaPreviewCoords;\n const previewImage = this.mediaPreviewImage;\n if (!(coords && previewImage))\n return;\n const [x, y, w, h] = coords;\n const src = previewImage.split(\"#\")[0];\n const computedStyle = getComputedStyle(this);\n const { maxWidth, maxHeight, minWidth, minHeight } = computedStyle;\n const maxRatio = Math.min(parseInt(maxWidth) / w, parseInt(maxHeight) / h);\n const minRatio = Math.max(parseInt(minWidth) / w, parseInt(minHeight) / h);\n const isScalingDown = maxRatio < 1;\n const scale = isScalingDown ? maxRatio : minRatio > 1 ? minRatio : 1;\n const { style } = getOrInsertCSSRule(this.shadowRoot, \":host\");\n const imgStyle = getOrInsertCSSRule(this.shadowRoot, \"img\").style;\n const img = this.shadowRoot.querySelector(\"img\");\n const extremum = isScalingDown ? \"min\" : \"max\";\n style.setProperty(`${extremum}-width`, \"initial\", \"important\");\n style.setProperty(`${extremum}-height`, \"initial\", \"important\");\n style.width = `${w * scale}px`;\n style.height = `${h * scale}px`;\n const resize = () => {\n imgStyle.width = `${this.imgWidth * scale}px`;\n imgStyle.height = `${this.imgHeight * scale}px`;\n imgStyle.display = \"block\";\n };\n if (img.src !== src) {\n img.onload = () => {\n this.imgWidth = img.naturalWidth;\n this.imgHeight = img.naturalHeight;\n resize();\n };\n img.src = src;\n resize();\n }\n resize();\n imgStyle.transform = `translate(-${x * scale}px, -${y * scale}px)`;\n }\n}\n_mediaController = new WeakMap();\nMediaPreviewThumbnail.shadowRootOptions = { mode: \"open\" };\nMediaPreviewThumbnail.getTemplateHTML = getTemplateHTML;\nif (!globalThis.customElements.get(\"media-preview-thumbnail\")) {\n globalThis.customElements.define(\n \"media-preview-thumbnail\",\n MediaPreviewThumbnail\n );\n}\nvar media_preview_thumbnail_default = MediaPreviewThumbnail;\nexport {\n media_preview_thumbnail_default as default\n};\n","var __accessCheck = (obj, member, msg) => {\n if (!member.has(obj))\n throw TypeError(\"Cannot \" + msg);\n};\nvar __privateGet = (obj, member, getter) => {\n __accessCheck(obj, member, \"read from private field\");\n return getter ? getter.call(obj) : member.get(obj);\n};\nvar __privateAdd = (obj, member, value) => {\n if (member.has(obj))\n throw TypeError(\"Cannot add the same private member more than once\");\n member instanceof WeakSet ? member.add(obj) : member.set(obj, value);\n};\nvar __privateSet = (obj, member, value, setter) => {\n __accessCheck(obj, member, \"write to private field\");\n setter ? setter.call(obj, value) : member.set(obj, value);\n return value;\n};\nvar _slot;\nimport { MediaTextDisplay } from \"./media-text-display.js\";\nimport { globalThis } from \"./utils/server-safe-globals.js\";\nimport { formatTime } from \"./utils/time.js\";\nimport { MediaUIAttributes } from \"./constants.js\";\nimport { getNumericAttr, setNumericAttr } from \"./utils/element-utils.js\";\nclass MediaPreviewTimeDisplay extends MediaTextDisplay {\n constructor() {\n super();\n __privateAdd(this, _slot, void 0);\n __privateSet(this, _slot, this.shadowRoot.querySelector(\"slot\"));\n __privateGet(this, _slot).textContent = formatTime(0);\n }\n static get observedAttributes() {\n return [...super.observedAttributes, MediaUIAttributes.MEDIA_PREVIEW_TIME];\n }\n attributeChangedCallback(attrName, oldValue, newValue) {\n super.attributeChangedCallback(attrName, oldValue, newValue);\n if (attrName === MediaUIAttributes.MEDIA_PREVIEW_TIME && newValue != null) {\n __privateGet(this, _slot).textContent = formatTime(parseFloat(newValue));\n }\n }\n /**\n * Timeline preview time\n */\n get mediaPreviewTime() {\n return getNumericAttr(this, MediaUIAttributes.MEDIA_PREVIEW_TIME);\n }\n set mediaPreviewTime(value) {\n setNumericAttr(this, MediaUIAttributes.MEDIA_PREVIEW_TIME, value);\n }\n}\n_slot = new WeakMap();\nif (!globalThis.customElements.get(\"media-preview-time-display\")) {\n globalThis.customElements.define(\n \"media-preview-time-display\",\n MediaPreviewTimeDisplay\n );\n}\nvar media_preview_time_display_default = MediaPreviewTimeDisplay;\nexport {\n media_preview_time_display_default as default\n};\n","import { MediaChromeButton } from \"./media-chrome-button.js\";\nimport { globalThis } from \"./utils/server-safe-globals.js\";\nimport { MediaUIEvents, MediaUIAttributes } from \"./constants.js\";\nimport { getNumericAttr, setNumericAttr, getSlotted, updateIconText } from \"./utils/element-utils.js\";\nimport { t } from \"./utils/i18n.js\";\nconst Attributes = {\n SEEK_OFFSET: \"seekoffset\"\n};\nconst DEFAULT_SEEK_OFFSET = 30;\nconst backwardIcon = (seekOffset) => `\n <svg aria-hidden=\"true\" viewBox=\"0 0 20 24\">\n <defs>\n <style>.text{font-size:8px;font-family:Arial-BoldMT, Arial;font-weight:700;}</style>\n </defs>\n <text class=\"text value\" transform=\"translate(2.18 19.87)\">${seekOffset}</text>\n <path d=\"M10 6V3L4.37 7 10 10.94V8a5.54 5.54 0 0 1 1.9 10.48v2.12A7.5 7.5 0 0 0 10 6Z\"/>\n </svg>`;\nfunction getSlotTemplateHTML(_attrs, props) {\n return (\n /*html*/\n `\n <slot name=\"icon\">${backwardIcon(props.seekOffset)}</slot>\n `\n );\n}\nfunction getTooltipContentHTML() {\n return t(\"Seek backward\");\n}\nconst DEFAULT_TIME = 0;\nclass MediaSeekBackwardButton extends MediaChromeButton {\n static get observedAttributes() {\n return [\n ...super.observedAttributes,\n MediaUIAttributes.MEDIA_CURRENT_TIME,\n Attributes.SEEK_OFFSET\n ];\n }\n connectedCallback() {\n super.connectedCallback();\n this.seekOffset = getNumericAttr(\n this,\n Attributes.SEEK_OFFSET,\n DEFAULT_SEEK_OFFSET\n );\n }\n attributeChangedCallback(attrName, _oldValue, newValue) {\n super.attributeChangedCallback(attrName, _oldValue, newValue);\n if (attrName === Attributes.SEEK_OFFSET) {\n this.seekOffset = getNumericAttr(\n this,\n Attributes.SEEK_OFFSET,\n DEFAULT_SEEK_OFFSET\n );\n }\n }\n // Own props\n /**\n * Seek amount in seconds\n */\n get seekOffset() {\n return getNumericAttr(this, Attributes.SEEK_OFFSET, DEFAULT_SEEK_OFFSET);\n }\n set seekOffset(value) {\n setNumericAttr(this, Attributes.SEEK_OFFSET, value);\n this.setAttribute(\n \"aria-label\",\n t(\"seek back {seekOffset} seconds\", { seekOffset: this.seekOffset })\n );\n updateIconText(getSlotted(this, \"icon\"), this.seekOffset);\n }\n // Props derived from Media UI Attributes\n /**\n * The current time in seconds\n */\n get mediaCurrentTime() {\n return getNumericAttr(\n this,\n MediaUIAttributes.MEDIA_CURRENT_TIME,\n DEFAULT_TIME\n );\n }\n set mediaCurrentTime(time) {\n setNumericAttr(this, MediaUIAttributes.MEDIA_CURRENT_TIME, time);\n }\n handleClick() {\n const detail = Math.max(this.mediaCurrentTime - this.seekOffset, 0);\n const evt = new globalThis.CustomEvent(MediaUIEvents.MEDIA_SEEK_REQUEST, {\n composed: true,\n bubbles: true,\n detail\n });\n this.dispatchEvent(evt);\n }\n}\nMediaSeekBackwardButton.getSlotTemplateHTML = getSlotTemplateHTML;\nMediaSeekBackwardButton.getTooltipContentHTML = getTooltipContentHTML;\nif (!globalThis.customElements.get(\"media-seek-backward-button\")) {\n globalThis.customElements.define(\n \"media-seek-backward-button\",\n MediaSeekBackwardButton\n );\n}\nvar media_seek_backward_button_default = MediaSeekBackwardButton;\nexport {\n Attributes,\n media_seek_backward_button_default as default\n};\n","import { MediaChromeButton } from \"./media-chrome-button.js\";\nimport { globalThis } from \"./utils/server-safe-globals.js\";\nimport { MediaUIEvents, MediaUIAttributes } from \"./constants.js\";\nimport { getNumericAttr, setNumericAttr, getSlotted, updateIconText } from \"./utils/element-utils.js\";\nimport { t } from \"./utils/i18n.js\";\nconst Attributes = {\n SEEK_OFFSET: \"seekoffset\"\n};\nconst DEFAULT_SEEK_OFFSET = 30;\nconst forwardIcon = (seekOffset) => `\n <svg aria-hidden=\"true\" viewBox=\"0 0 20 24\">\n <defs>\n <style>.text{font-size:8px;font-family:Arial-BoldMT, Arial;font-weight:700;}</style>\n </defs>\n <text class=\"text value\" transform=\"translate(8.9 19.87)\">${seekOffset}</text>\n <path d=\"M10 6V3l5.61 4L10 10.94V8a5.54 5.54 0 0 0-1.9 10.48v2.12A7.5 7.5 0 0 1 10 6Z\"/>\n </svg>`;\nfunction getSlotTemplateHTML(_attrs, props) {\n return (\n /*html*/\n `\n <slot name=\"icon\">${forwardIcon(props.seekOffset)}</slot>\n `\n );\n}\nfunction getTooltipContentHTML() {\n return t(\"Seek forward\");\n}\nconst DEFAULT_TIME = 0;\nclass MediaSeekForwardButton extends MediaChromeButton {\n static get observedAttributes() {\n return [\n ...super.observedAttributes,\n MediaUIAttributes.MEDIA_CURRENT_TIME,\n Attributes.SEEK_OFFSET\n ];\n }\n connectedCallback() {\n super.connectedCallback();\n this.seekOffset = getNumericAttr(\n this,\n Attributes.SEEK_OFFSET,\n DEFAULT_SEEK_OFFSET\n );\n }\n attributeChangedCallback(attrName, _oldValue, newValue) {\n super.attributeChangedCallback(attrName, _oldValue, newValue);\n if (attrName === Attributes.SEEK_OFFSET) {\n this.seekOffset = getNumericAttr(\n this,\n Attributes.SEEK_OFFSET,\n DEFAULT_SEEK_OFFSET\n );\n }\n }\n // Own props\n /**\n * Seek amount in seconds\n */\n get seekOffset() {\n return getNumericAttr(this, Attributes.SEEK_OFFSET, DEFAULT_SEEK_OFFSET);\n }\n set seekOffset(value) {\n setNumericAttr(this, Attributes.SEEK_OFFSET, value);\n this.setAttribute(\n \"aria-label\",\n t(\"seek forward {seekOffset} seconds\", { seekOffset: this.seekOffset })\n );\n updateIconText(getSlotted(this, \"icon\"), this.seekOffset);\n }\n // Props derived from Media UI Attributes\n /**\n * The current time in seconds\n */\n get mediaCurrentTime() {\n return getNumericAttr(\n this,\n MediaUIAttributes.MEDIA_CURRENT_TIME,\n DEFAULT_TIME\n );\n }\n set mediaCurrentTime(time) {\n setNumericAttr(this, MediaUIAttributes.MEDIA_CURRENT_TIME, time);\n }\n handleClick() {\n const detail = this.mediaCurrentTime + this.seekOffset;\n const evt = new globalThis.CustomEvent(MediaUIEvents.MEDIA_SEEK_REQUEST, {\n composed: true,\n bubbles: true,\n detail\n });\n this.dispatchEvent(evt);\n }\n}\nMediaSeekForwardButton.getSlotTemplateHTML = getSlotTemplateHTML;\nMediaSeekForwardButton.getTooltipContentHTML = getTooltipContentHTML;\nif (!globalThis.customElements.get(\"media-seek-forward-button\")) {\n globalThis.customElements.define(\n \"media-seek-forward-button\",\n MediaSeekForwardButton\n );\n}\nvar media_seek_forward_button_default = MediaSeekForwardButton;\nexport {\n Attributes,\n media_seek_forward_button_default as default\n};\n","var __accessCheck = (obj, member, msg) => {\n if (!member.has(obj))\n throw TypeError(\"Cannot \" + msg);\n};\nvar __privateGet = (obj, member, getter) => {\n __accessCheck(obj, member, \"read from private field\");\n return getter ? getter.call(obj) : member.get(obj);\n};\nvar __privateAdd = (obj, member, value) => {\n if (member.has(obj))\n throw TypeError(\"Cannot add the same private member more than once\");\n member instanceof WeakSet ? member.add(obj) : member.set(obj, value);\n};\nvar __privateSet = (obj, member, value, setter) => {\n __accessCheck(obj, member, \"write to private field\");\n setter ? setter.call(obj, value) : member.set(obj, value);\n return value;\n};\nvar _slot;\nimport { MediaTextDisplay } from \"./media-text-display.js\";\nimport {\n getBooleanAttr,\n getNumericAttr,\n getOrInsertCSSRule,\n setBooleanAttr,\n setNumericAttr\n} from \"./utils/element-utils.js\";\nimport { globalThis } from \"./utils/server-safe-globals.js\";\nimport { formatAsTimePhrase, formatTime } from \"./utils/time.js\";\nimport { MediaUIAttributes } from \"./constants.js\";\nimport { t } from \"./utils/i18n.js\";\nconst Attributes = {\n REMAINING: \"remaining\",\n SHOW_DURATION: \"showduration\",\n NO_TOGGLE: \"notoggle\"\n};\nconst CombinedAttributes = [\n ...Object.values(Attributes),\n MediaUIAttributes.MEDIA_CURRENT_TIME,\n MediaUIAttributes.MEDIA_DURATION,\n MediaUIAttributes.MEDIA_SEEKABLE\n];\nconst ButtonPressedKeys = [\"Enter\", \" \"];\nconst DEFAULT_TIMES_SEP = \"&nbsp;/&nbsp;\";\nconst formatTimesLabel = (el, { timesSep = DEFAULT_TIMES_SEP } = {}) => {\n var _a, _b;\n const currentTime = (_a = el.mediaCurrentTime) != null ? _a : 0;\n const [, seekableEnd] = (_b = el.mediaSeekable) != null ? _b : [];\n let endTime = 0;\n if (Number.isFinite(el.mediaDuration)) {\n endTime = el.mediaDuration;\n } else if (Number.isFinite(seekableEnd)) {\n endTime = seekableEnd;\n }\n const timeLabel = el.remaining ? formatTime(0 - (endTime - currentTime)) : formatTime(currentTime);\n if (!el.showDuration)\n return timeLabel;\n return `${timeLabel}${timesSep}${formatTime(endTime)}`;\n};\nconst DEFAULT_MISSING_TIME_PHRASE = \"video not loaded, unknown time.\";\nconst updateAriaValueText = (el) => {\n var _a;\n const currentTime = el.mediaCurrentTime;\n const [, seekableEnd] = (_a = el.mediaSeekable) != null ? _a : [];\n let endTime = null;\n if (Number.isFinite(el.mediaDuration)) {\n endTime = el.mediaDuration;\n } else if (Number.isFinite(seekableEnd)) {\n endTime = seekableEnd;\n }\n if (currentTime == null || endTime === null) {\n el.setAttribute(\"aria-valuetext\", DEFAULT_MISSING_TIME_PHRASE);\n return;\n }\n const currentTimePhrase = el.remaining ? formatAsTimePhrase(0 - (endTime - currentTime)) : formatAsTimePhrase(currentTime);\n if (!el.showDuration) {\n el.setAttribute(\"aria-valuetext\", currentTimePhrase);\n return;\n }\n const totalTimePhrase = formatAsTimePhrase(endTime);\n const fullPhrase = `${currentTimePhrase} of ${totalTimePhrase}`;\n el.setAttribute(\"aria-valuetext\", fullPhrase);\n};\nfunction getSlotTemplateHTML(_attrs, props) {\n return (\n /*html*/\n `\n <slot>${formatTimesLabel(props)}</slot>\n `\n );\n}\nclass MediaTimeDisplay extends MediaTextDisplay {\n constructor() {\n super();\n __privateAdd(this, _slot, void 0);\n __privateSet(this, _slot, this.shadowRoot.querySelector(\"slot\"));\n __privateGet(this, _slot).innerHTML = `${formatTimesLabel(this)}`;\n }\n static get observedAttributes() {\n return [...super.observedAttributes, ...CombinedAttributes, \"disabled\"];\n }\n connectedCallback() {\n const { style } = getOrInsertCSSRule(\n this.shadowRoot,\n \":host(:hover:not([notoggle]))\"\n );\n style.setProperty(\"cursor\", \"var(--media-cursor, pointer)\");\n style.setProperty(\n \"background\",\n \"var(--media-control-hover-background, rgba(50 50 70 / .7))\"\n );\n if (!this.hasAttribute(\"disabled\")) {\n this.enable();\n }\n this.setAttribute(\"role\", \"progressbar\");\n this.setAttribute(\"aria-label\", t(\"playback time\"));\n const keyUpHandler = (evt) => {\n const { key } = evt;\n if (!ButtonPressedKeys.includes(key)) {\n this.removeEventListener(\"keyup\", keyUpHandler);\n return;\n }\n this.toggleTimeDisplay();\n };\n this.addEventListener(\"keydown\", (evt) => {\n const { metaKey, altKey, key } = evt;\n if (metaKey || altKey || !ButtonPressedKeys.includes(key)) {\n this.removeEventListener(\"keyup\", keyUpHandler);\n return;\n }\n this.addEventListener(\"keyup\", keyUpHandler);\n });\n this.addEventListener(\"click\", this.toggleTimeDisplay);\n super.connectedCallback();\n }\n toggleTimeDisplay() {\n if (this.noToggle) {\n return;\n }\n if (this.hasAttribute(\"remaining\")) {\n this.removeAttribute(\"remaining\");\n } else {\n this.setAttribute(\"remaining\", \"\");\n }\n }\n disconnectedCallback() {\n this.disable();\n super.disconnectedCallback();\n }\n attributeChangedCallback(attrName, oldValue, newValue) {\n if (CombinedAttributes.includes(attrName)) {\n this.update();\n } else if (attrName === \"disabled\" && newValue !== oldValue) {\n if (newValue == null) {\n this.enable();\n } else {\n this.disable();\n }\n }\n super.attributeChangedCallback(attrName, oldValue, newValue);\n }\n enable() {\n this.tabIndex = 0;\n }\n disable() {\n this.tabIndex = -1;\n }\n // Own props\n /**\n * Whether to show the remaining time\n */\n get remaining() {\n return getBooleanAttr(this, Attributes.REMAINING);\n }\n set remaining(show) {\n setBooleanAttr(this, Attributes.REMAINING, show);\n }\n /**\n * Whether to show the duration\n */\n get showDuration() {\n return getBooleanAttr(this, Attributes.SHOW_DURATION);\n }\n set showDuration(show) {\n setBooleanAttr(this, Attributes.SHOW_DURATION, show);\n }\n /**\n * Disable the default behavior that toggles between current and remaining time\n */\n get noToggle() {\n return getBooleanAttr(this, Attributes.NO_TOGGLE);\n }\n set noToggle(noToggle) {\n setBooleanAttr(this, Attributes.NO_TOGGLE, noToggle);\n }\n // Props derived from media UI attributes\n /**\n * Get the duration\n */\n get mediaDuration() {\n return getNumericAttr(this, MediaUIAttributes.MEDIA_DURATION);\n }\n set mediaDuration(time) {\n setNumericAttr(this, MediaUIAttributes.MEDIA_DURATION, time);\n }\n /**\n * The current time in seconds\n */\n get mediaCurrentTime() {\n return getNumericAttr(this, MediaUIAttributes.MEDIA_CURRENT_TIME);\n }\n set mediaCurrentTime(time) {\n setNumericAttr(this, MediaUIAttributes.MEDIA_CURRENT_TIME, time);\n }\n /**\n * Range of values that can be seeked to.\n * An array of two numbers [start, end]\n */\n get mediaSeekable() {\n const seekable = this.getAttribute(MediaUIAttributes.MEDIA_SEEKABLE);\n if (!seekable)\n return void 0;\n return seekable.split(\":\").map((time) => +time);\n }\n set mediaSeekable(range) {\n if (range == null) {\n this.removeAttribute(MediaUIAttributes.MEDIA_SEEKABLE);\n return;\n }\n this.setAttribute(MediaUIAttributes.MEDIA_SEEKABLE, range.join(\":\"));\n }\n update() {\n const timesLabel = formatTimesLabel(this);\n updateAriaValueText(this);\n if (timesLabel !== __privateGet(this, _slot).innerHTML) {\n __privateGet(this, _slot).innerHTML = timesLabel;\n }\n }\n}\n_slot = new WeakMap();\nMediaTimeDisplay.getSlotTemplateHTML = getSlotTemplateHTML;\nif (!globalThis.customElements.get(\"media-time-display\")) {\n globalThis.customElements.define(\"media-time-display\", MediaTimeDisplay);\n}\nvar media_time_display_default = MediaTimeDisplay;\nexport {\n Attributes,\n media_time_display_default as default\n};\n","var __accessCheck = (obj, member, msg) => {\n if (!member.has(obj))\n throw TypeError(\"Cannot \" + msg);\n};\nvar __privateGet = (obj, member, getter) => {\n __accessCheck(obj, member, \"read from private field\");\n return getter ? getter.call(obj) : member.get(obj);\n};\nvar __privateAdd = (obj, member, value) => {\n if (member.has(obj))\n throw TypeError(\"Cannot add the same private member more than once\");\n member instanceof WeakSet ? member.add(obj) : member.set(obj, value);\n};\nvar __privateSet = (obj, member, value, setter) => {\n __accessCheck(obj, member, \"write to private field\");\n setter ? setter.call(obj, value) : member.set(obj, value);\n return value;\n};\nvar __privateWrapper = (obj, member, setter, getter) => ({\n set _(value) {\n __privateSet(obj, member, value, setter);\n },\n get _() {\n return __privateGet(obj, member, getter);\n }\n});\nvar _range, _startTime, _previousTime, _deltaTime, _frameCount, _updateTimestamp, _updateStartValue, _lastRangeIncrease, _id, _animate;\nclass RangeAnimation {\n constructor(range, callback, fps) {\n __privateAdd(this, _range, void 0);\n __privateAdd(this, _startTime, void 0);\n __privateAdd(this, _previousTime, void 0);\n __privateAdd(this, _deltaTime, void 0);\n __privateAdd(this, _frameCount, void 0);\n __privateAdd(this, _updateTimestamp, void 0);\n __privateAdd(this, _updateStartValue, void 0);\n __privateAdd(this, _lastRangeIncrease, void 0);\n __privateAdd(this, _id, 0);\n __privateAdd(this, _animate, (now = performance.now()) => {\n __privateSet(this, _id, requestAnimationFrame(__privateGet(this, _animate)));\n __privateSet(this, _deltaTime, performance.now() - __privateGet(this, _previousTime));\n const fpsInterval = 1e3 / this.fps;\n if (__privateGet(this, _deltaTime) > fpsInterval) {\n __privateSet(this, _previousTime, now - __privateGet(this, _deltaTime) % fpsInterval);\n const fps = 1e3 / ((now - __privateGet(this, _startTime)) / ++__privateWrapper(this, _frameCount)._);\n const delta = (now - __privateGet(this, _updateTimestamp)) / 1e3 / this.duration;\n let value = __privateGet(this, _updateStartValue) + delta * this.playbackRate;\n const increase = value - __privateGet(this, _range).valueAsNumber;\n if (increase > 0) {\n __privateSet(this, _lastRangeIncrease, this.playbackRate / this.duration / fps);\n } else {\n __privateSet(this, _lastRangeIncrease, 0.995 * __privateGet(this, _lastRangeIncrease));\n value = __privateGet(this, _range).valueAsNumber + __privateGet(this, _lastRangeIncrease);\n }\n this.callback(value);\n }\n });\n __privateSet(this, _range, range);\n this.callback = callback;\n this.fps = fps;\n }\n start() {\n if (__privateGet(this, _id) !== 0)\n return;\n __privateSet(this, _previousTime, performance.now());\n __privateSet(this, _startTime, __privateGet(this, _previousTime));\n __privateSet(this, _frameCount, 0);\n __privateGet(this, _animate).call(this);\n }\n stop() {\n if (__privateGet(this, _id) === 0)\n return;\n cancelAnimationFrame(__privateGet(this, _id));\n __privateSet(this, _id, 0);\n }\n update({ start, duration, playbackRate }) {\n const increase = start - __privateGet(this, _range).valueAsNumber;\n const durationDelta = Math.abs(duration - this.duration);\n if (increase > 0 || increase < -0.03 || durationDelta >= 0.5) {\n this.callback(start);\n }\n __privateSet(this, _updateStartValue, start);\n __privateSet(this, _updateTimestamp, performance.now());\n this.duration = duration;\n this.playbackRate = playbackRate;\n }\n}\n_range = new WeakMap();\n_startTime = new WeakMap();\n_previousTime = new WeakMap();\n_deltaTime = new WeakMap();\n_frameCount = new WeakMap();\n_updateTimestamp = new WeakMap();\n_updateStartValue = new WeakMap();\n_lastRangeIncrease = new WeakMap();\n_id = new WeakMap();\n_animate = new WeakMap();\nexport {\n RangeAnimation\n};\n","var __accessCheck = (obj, member, msg) => {\n if (!member.has(obj))\n throw TypeError(\"Cannot \" + msg);\n};\nvar __privateGet = (obj, member, getter) => {\n __accessCheck(obj, member, \"read from private field\");\n return getter ? getter.call(obj) : member.get(obj);\n};\nvar __privateAdd = (obj, member, value) => {\n if (member.has(obj))\n throw TypeError(\"Cannot add the same private member more than once\");\n member instanceof WeakSet ? member.add(obj) : member.set(obj, value);\n};\nvar __privateSet = (obj, member, value, setter) => {\n __accessCheck(obj, member, \"write to private field\");\n setter ? setter.call(obj, value) : member.set(obj, value);\n return value;\n};\nvar __privateMethod = (obj, member, method) => {\n __accessCheck(obj, member, \"access private method\");\n return method;\n};\nvar _rootNode, _animation, _boxes, _previewTime, _previewBox, _currentBox, _boxPaddingLeft, _boxPaddingRight, _mediaChaptersCues, _isPointerDown, _toggleRangeAnimation, toggleRangeAnimation_fn, _shouldRangeAnimate, shouldRangeAnimate_fn, _updateRange, _getElementRects, getElementRects_fn, _getBoxPosition, getBoxPosition_fn, _getBoxShiftPosition, getBoxShiftPosition_fn, _handlePointerMove, handlePointerMove_fn, _previewRequest, previewRequest_fn, _seekRequest, seekRequest_fn;\nimport { globalThis } from \"./utils/server-safe-globals.js\";\nimport { MediaChromeRange } from \"./media-chrome-range.js\";\nimport \"./media-preview-thumbnail.js\";\nimport \"./media-preview-time-display.js\";\nimport \"./media-preview-chapter-display.js\";\nimport { MediaUIEvents, MediaUIAttributes } from \"./constants.js\";\nimport { isValidNumber } from \"./utils/utils.js\";\nimport { formatAsTimePhrase } from \"./utils/time.js\";\nimport { isElementVisible } from \"./utils/element-utils.js\";\nimport { RangeAnimation } from \"./utils/range-animation.js\";\nimport {\n getOrInsertCSSRule,\n containsComposedNode,\n closestComposedNode,\n getBooleanAttr,\n setBooleanAttr,\n getNumericAttr,\n setNumericAttr,\n getStringAttr,\n setStringAttr\n} from \"./utils/element-utils.js\";\nimport { t } from \"./utils/i18n.js\";\nimport MediaPreviewThumbnail from \"./media-preview-thumbnail.js\";\nconst DEFAULT_MISSING_TIME_PHRASE = \"video not loaded, unknown time.\";\nconst updateAriaValueText = (el) => {\n const range = el.range;\n const currentTimePhrase = formatAsTimePhrase(+calcTimeFromRangeValue(el));\n const totalTimePhrase = formatAsTimePhrase(+el.mediaSeekableEnd);\n const fullPhrase = !(currentTimePhrase && totalTimePhrase) ? DEFAULT_MISSING_TIME_PHRASE : `${currentTimePhrase} of ${totalTimePhrase}`;\n range.setAttribute(\"aria-valuetext\", fullPhrase);\n};\nfunction getTemplateHTML(_attrs) {\n return (\n /*html*/\n `\n ${MediaChromeRange.getTemplateHTML(_attrs)}\n <style>\n :host {\n --media-box-border-radius: 4px;\n --media-box-padding-left: 10px;\n --media-box-padding-right: 10px;\n --media-preview-border-radius: var(--media-box-border-radius);\n --media-box-arrow-offset: var(--media-box-border-radius);\n --_control-background: var(--media-control-background, var(--media-secondary-color, rgb(20 20 30 / .7)));\n --_preview-background: var(--media-preview-background, var(--_control-background));\n\n ${/* 1% rail width trick was off in Safari, contain: layout seems to\n prevent the horizontal overflow as well. */\n \"\"}\n contain: layout;\n }\n\n #buffered {\n background: var(--media-time-range-buffered-color, rgb(255 255 255 / .4));\n position: absolute;\n height: 100%;\n will-change: width;\n }\n\n #preview-rail,\n #current-rail {\n width: 100%;\n position: absolute;\n left: 0;\n bottom: 100%;\n pointer-events: none;\n will-change: transform;\n }\n\n [part~=\"box\"] {\n width: min-content;\n ${/* absolute position is needed here so the box doesn't overflow the bounds */\n \"\"}\n position: absolute;\n bottom: 100%;\n flex-direction: column;\n align-items: center;\n transform: translateX(-50%);\n }\n\n [part~=\"current-box\"] {\n display: var(--media-current-box-display, var(--media-box-display, flex));\n margin: var(--media-current-box-margin, var(--media-box-margin, 0 0 5px));\n visibility: hidden;\n }\n\n [part~=\"preview-box\"] {\n display: var(--media-preview-box-display, var(--media-box-display, flex));\n margin: var(--media-preview-box-margin, var(--media-box-margin, 0 0 5px));\n transition-property: var(--media-preview-transition-property, visibility, opacity);\n transition-duration: var(--media-preview-transition-duration-out, .25s);\n transition-delay: var(--media-preview-transition-delay-out, 0s);\n visibility: hidden;\n opacity: 0;\n }\n\n :host(:is([${MediaUIAttributes.MEDIA_PREVIEW_IMAGE}], [${MediaUIAttributes.MEDIA_PREVIEW_TIME}])[dragging]) [part~=\"preview-box\"] {\n transition-duration: var(--media-preview-transition-duration-in, .5s);\n transition-delay: var(--media-preview-transition-delay-in, .25s);\n visibility: visible;\n opacity: 1;\n }\n\n @media (hover: hover) {\n :host(:is([${MediaUIAttributes.MEDIA_PREVIEW_IMAGE}], [${MediaUIAttributes.MEDIA_PREVIEW_TIME}]):hover) [part~=\"preview-box\"] {\n transition-duration: var(--media-preview-transition-duration-in, .5s);\n transition-delay: var(--media-preview-transition-delay-in, .25s);\n visibility: visible;\n opacity: 1;\n }\n }\n\n media-preview-thumbnail,\n ::slotted(media-preview-thumbnail) {\n visibility: hidden;\n ${/* delay changing these CSS props until the preview box transition is ended */\n \"\"}\n transition: visibility 0s .25s;\n transition-delay: calc(var(--media-preview-transition-delay-out, 0s) + var(--media-preview-transition-duration-out, .25s));\n background: var(--media-preview-thumbnail-background, var(--_preview-background));\n box-shadow: var(--media-preview-thumbnail-box-shadow, 0 0 4px rgb(0 0 0 / .2));\n max-width: var(--media-preview-thumbnail-max-width, 180px);\n max-height: var(--media-preview-thumbnail-max-height, 160px);\n min-width: var(--media-preview-thumbnail-min-width, 120px);\n min-height: var(--media-preview-thumbnail-min-height, 80px);\n border: var(--media-preview-thumbnail-border);\n border-radius: var(--media-preview-thumbnail-border-radius,\n var(--media-preview-border-radius) var(--media-preview-border-radius) 0 0);\n }\n\n :host([${MediaUIAttributes.MEDIA_PREVIEW_IMAGE}][dragging]) media-preview-thumbnail,\n :host([${MediaUIAttributes.MEDIA_PREVIEW_IMAGE}][dragging]) ::slotted(media-preview-thumbnail) {\n transition-delay: var(--media-preview-transition-delay-in, .25s);\n visibility: visible;\n }\n\n @media (hover: hover) {\n :host([${MediaUIAttributes.MEDIA_PREVIEW_IMAGE}]:hover) media-preview-thumbnail,\n :host([${MediaUIAttributes.MEDIA_PREVIEW_IMAGE}]:hover) ::slotted(media-preview-thumbnail) {\n transition-delay: var(--media-preview-transition-delay-in, .25s);\n visibility: visible;\n }\n\n :host([${MediaUIAttributes.MEDIA_PREVIEW_TIME}]:hover) {\n --media-time-range-hover-display: block;\n }\n }\n\n media-preview-chapter-display,\n ::slotted(media-preview-chapter-display) {\n font-size: var(--media-font-size, 13px);\n line-height: 17px;\n min-width: 0;\n visibility: hidden;\n ${/* delay changing these CSS props until the preview box transition is ended */\n \"\"}\n transition: min-width 0s, border-radius 0s, margin 0s, padding 0s, visibility 0s;\n transition-delay: calc(var(--media-preview-transition-delay-out, 0s) + var(--media-preview-transition-duration-out, .25s));\n background: var(--media-preview-chapter-background, var(--_preview-background));\n border-radius: var(--media-preview-chapter-border-radius,\n var(--media-preview-border-radius) var(--media-preview-border-radius)\n var(--media-preview-border-radius) var(--media-preview-border-radius));\n padding: var(--media-preview-chapter-padding, 3.5px 9px);\n margin: var(--media-preview-chapter-margin, 0 0 5px);\n text-shadow: var(--media-preview-chapter-text-shadow, 0 0 4px rgb(0 0 0 / .75));\n }\n\n :host([${MediaUIAttributes.MEDIA_PREVIEW_IMAGE}]) media-preview-chapter-display,\n :host([${MediaUIAttributes.MEDIA_PREVIEW_IMAGE}]) ::slotted(media-preview-chapter-display) {\n transition-delay: var(--media-preview-transition-delay-in, .25s);\n border-radius: var(--media-preview-chapter-border-radius, 0);\n padding: var(--media-preview-chapter-padding, 3.5px 9px 0);\n margin: var(--media-preview-chapter-margin, 0);\n min-width: 100%;\n }\n\n media-preview-chapter-display[${MediaUIAttributes.MEDIA_PREVIEW_CHAPTER}],\n ::slotted(media-preview-chapter-display[${MediaUIAttributes.MEDIA_PREVIEW_CHAPTER}]) {\n visibility: visible;\n }\n\n media-preview-chapter-display:not([aria-valuetext]),\n ::slotted(media-preview-chapter-display:not([aria-valuetext])) {\n display: none;\n }\n\n media-preview-time-display,\n ::slotted(media-preview-time-display),\n media-time-display,\n ::slotted(media-time-display) {\n font-size: var(--media-font-size, 13px);\n line-height: 17px;\n min-width: 0;\n ${/* delay changing these CSS props until the preview box transition is ended */\n \"\"}\n transition: min-width 0s, border-radius 0s;\n transition-delay: calc(var(--media-preview-transition-delay-out, 0s) + var(--media-preview-transition-duration-out, .25s));\n background: var(--media-preview-time-background, var(--_preview-background));\n border-radius: var(--media-preview-time-border-radius,\n var(--media-preview-border-radius) var(--media-preview-border-radius)\n var(--media-preview-border-radius) var(--media-preview-border-radius));\n padding: var(--media-preview-time-padding, 3.5px 9px);\n margin: var(--media-preview-time-margin, 0);\n text-shadow: var(--media-preview-time-text-shadow, 0 0 4px rgb(0 0 0 / .75));\n transform: translateX(min(\n max(calc(50% - var(--_box-width) / 2),\n calc(var(--_box-shift, 0))),\n calc(var(--_box-width) / 2 - 50%)\n ));\n }\n\n :host([${MediaUIAttributes.MEDIA_PREVIEW_IMAGE}]) media-preview-time-display,\n :host([${MediaUIAttributes.MEDIA_PREVIEW_IMAGE}]) ::slotted(media-preview-time-display) {\n transition-delay: var(--media-preview-transition-delay-in, .25s);\n border-radius: var(--media-preview-time-border-radius,\n 0 0 var(--media-preview-border-radius) var(--media-preview-border-radius));\n min-width: 100%;\n }\n\n :host([${MediaUIAttributes.MEDIA_PREVIEW_TIME}]:hover) {\n --media-time-range-hover-display: block;\n }\n\n [part~=\"arrow\"],\n ::slotted([part~=\"arrow\"]) {\n display: var(--media-box-arrow-display, inline-block);\n transform: translateX(min(\n max(calc(50% - var(--_box-width) / 2 + var(--media-box-arrow-offset)),\n calc(var(--_box-shift, 0))),\n calc(var(--_box-width) / 2 - 50% - var(--media-box-arrow-offset))\n ));\n ${/* border-color has to come before border-top-color! */\n \"\"}\n border-color: transparent;\n border-top-color: var(--media-box-arrow-background, var(--_control-background));\n border-width: var(--media-box-arrow-border-width,\n var(--media-box-arrow-height, 5px) var(--media-box-arrow-width, 6px) 0);\n border-style: solid;\n justify-content: center;\n height: 0;\n }\n </style>\n <div id=\"preview-rail\">\n <slot name=\"preview\" part=\"box preview-box\">\n <media-preview-thumbnail>\n <template shadowrootmode=\"${MediaPreviewThumbnail.shadowRootOptions.mode}\">\n ${MediaPreviewThumbnail.getTemplateHTML({})}\n </template>\n </media-preview-thumbnail>\n <media-preview-chapter-display></media-preview-chapter-display>\n <media-preview-time-display></media-preview-time-display>\n <slot name=\"preview-arrow\"><div part=\"arrow\"></div></slot>\n </slot>\n </div>\n <div id=\"current-rail\">\n <slot name=\"current\" part=\"box current-box\">\n ${/* Example: add the current time w/ arrow to the playhead\n <media-time-display slot=\"current\"></media-time-display>\n <div part=\"arrow\" slot=\"current\"></div> */\n \"\"}\n </slot>\n </div>\n `\n );\n}\nconst calcRangeValueFromTime = (el, time = el.mediaCurrentTime) => {\n const startTime = Number.isFinite(el.mediaSeekableStart) ? el.mediaSeekableStart : 0;\n const endTime = Number.isFinite(el.mediaDuration) ? el.mediaDuration : el.mediaSeekableEnd;\n if (Number.isNaN(endTime))\n return 0;\n const value = (time - startTime) / (endTime - startTime);\n return Math.max(0, Math.min(value, 1));\n};\nconst calcTimeFromRangeValue = (el, value = el.range.valueAsNumber) => {\n const startTime = Number.isFinite(el.mediaSeekableStart) ? el.mediaSeekableStart : 0;\n const endTime = Number.isFinite(el.mediaDuration) ? el.mediaDuration : el.mediaSeekableEnd;\n if (Number.isNaN(endTime))\n return 0;\n return value * (endTime - startTime) + startTime;\n};\nclass MediaTimeRange extends MediaChromeRange {\n constructor() {\n super();\n __privateAdd(this, _toggleRangeAnimation);\n __privateAdd(this, _shouldRangeAnimate);\n __privateAdd(this, _getElementRects);\n /**\n * Get the position, max and min for the box in percentage.\n * It's important this is in percentage so when the player is resized\n * the box will move accordingly.\n */\n __privateAdd(this, _getBoxPosition);\n __privateAdd(this, _getBoxShiftPosition);\n __privateAdd(this, _handlePointerMove);\n __privateAdd(this, _previewRequest);\n __privateAdd(this, _seekRequest);\n __privateAdd(this, _rootNode, void 0);\n __privateAdd(this, _animation, void 0);\n __privateAdd(this, _boxes, void 0);\n __privateAdd(this, _previewTime, void 0);\n __privateAdd(this, _previewBox, void 0);\n __privateAdd(this, _currentBox, void 0);\n __privateAdd(this, _boxPaddingLeft, void 0);\n __privateAdd(this, _boxPaddingRight, void 0);\n __privateAdd(this, _mediaChaptersCues, void 0);\n __privateAdd(this, _isPointerDown, void 0);\n __privateAdd(this, _updateRange, (value) => {\n if (this.dragging)\n return;\n if (isValidNumber(value)) {\n this.range.valueAsNumber = value;\n }\n if (!__privateGet(this, _isPointerDown)) {\n this.updateBar();\n }\n });\n const track = this.shadowRoot.querySelector(\"#track\");\n track.insertAdjacentHTML(\n \"afterbegin\",\n '<div id=\"buffered\" part=\"buffered\"></div>'\n );\n __privateSet(this, _boxes, this.shadowRoot.querySelectorAll('[part~=\"box\"]'));\n __privateSet(this, _previewBox, this.shadowRoot.querySelector('[part~=\"preview-box\"]'));\n __privateSet(this, _currentBox, this.shadowRoot.querySelector('[part~=\"current-box\"]'));\n const computedStyle = getComputedStyle(this);\n __privateSet(this, _boxPaddingLeft, parseInt(\n computedStyle.getPropertyValue(\"--media-box-padding-left\")\n ));\n __privateSet(this, _boxPaddingRight, parseInt(\n computedStyle.getPropertyValue(\"--media-box-padding-right\")\n ));\n __privateSet(this, _animation, new RangeAnimation(this.range, __privateGet(this, _updateRange), 60));\n }\n static get observedAttributes() {\n return [\n ...super.observedAttributes,\n MediaUIAttributes.MEDIA_PAUSED,\n MediaUIAttributes.MEDIA_DURATION,\n MediaUIAttributes.MEDIA_SEEKABLE,\n MediaUIAttributes.MEDIA_CURRENT_TIME,\n MediaUIAttributes.MEDIA_PREVIEW_IMAGE,\n MediaUIAttributes.MEDIA_PREVIEW_TIME,\n MediaUIAttributes.MEDIA_PREVIEW_CHAPTER,\n MediaUIAttributes.MEDIA_BUFFERED,\n MediaUIAttributes.MEDIA_PLAYBACK_RATE,\n MediaUIAttributes.MEDIA_LOADING,\n MediaUIAttributes.MEDIA_ENDED\n ];\n }\n connectedCallback() {\n var _a;\n super.connectedCallback();\n this.range.setAttribute(\"aria-label\", t(\"seek\"));\n __privateMethod(this, _toggleRangeAnimation, toggleRangeAnimation_fn).call(this);\n __privateSet(this, _rootNode, this.getRootNode());\n (_a = __privateGet(this, _rootNode)) == null ? void 0 : _a.addEventListener(\"transitionstart\", this);\n }\n disconnectedCallback() {\n var _a;\n super.disconnectedCallback();\n __privateMethod(this, _toggleRangeAnimation, toggleRangeAnimation_fn).call(this);\n (_a = __privateGet(this, _rootNode)) == null ? void 0 : _a.removeEventListener(\"transitionstart\", this);\n __privateSet(this, _rootNode, null);\n }\n attributeChangedCallback(attrName, oldValue, newValue) {\n super.attributeChangedCallback(attrName, oldValue, newValue);\n if (oldValue == newValue)\n return;\n if (attrName === MediaUIAttributes.MEDIA_CURRENT_TIME || attrName === MediaUIAttributes.MEDIA_PAUSED || attrName === MediaUIAttributes.MEDIA_ENDED || attrName === MediaUIAttributes.MEDIA_LOADING || attrName === MediaUIAttributes.MEDIA_DURATION || attrName === MediaUIAttributes.MEDIA_SEEKABLE) {\n __privateGet(this, _animation).update({\n start: calcRangeValueFromTime(this),\n duration: this.mediaSeekableEnd - this.mediaSeekableStart,\n playbackRate: this.mediaPlaybackRate\n });\n __privateMethod(this, _toggleRangeAnimation, toggleRangeAnimation_fn).call(this);\n updateAriaValueText(this);\n } else if (attrName === MediaUIAttributes.MEDIA_BUFFERED) {\n this.updateBufferedBar();\n }\n if (attrName === MediaUIAttributes.MEDIA_DURATION || attrName === MediaUIAttributes.MEDIA_SEEKABLE) {\n this.mediaChaptersCues = __privateGet(this, _mediaChaptersCues);\n this.updateBar();\n }\n }\n get mediaChaptersCues() {\n return __privateGet(this, _mediaChaptersCues);\n }\n set mediaChaptersCues(value) {\n var _a;\n __privateSet(this, _mediaChaptersCues, value);\n this.updateSegments(\n (_a = __privateGet(this, _mediaChaptersCues)) == null ? void 0 : _a.map((c) => ({\n start: calcRangeValueFromTime(this, c.startTime),\n end: calcRangeValueFromTime(this, c.endTime)\n }))\n );\n }\n /**\n * Is the media paused\n */\n get mediaPaused() {\n return getBooleanAttr(this, MediaUIAttributes.MEDIA_PAUSED);\n }\n set mediaPaused(value) {\n setBooleanAttr(this, MediaUIAttributes.MEDIA_PAUSED, value);\n }\n /**\n * Is the media loading\n */\n get mediaLoading() {\n return getBooleanAttr(this, MediaUIAttributes.MEDIA_LOADING);\n }\n set mediaLoading(value) {\n setBooleanAttr(this, MediaUIAttributes.MEDIA_LOADING, value);\n }\n /**\n *\n */\n get mediaDuration() {\n return getNumericAttr(this, MediaUIAttributes.MEDIA_DURATION);\n }\n set mediaDuration(value) {\n setNumericAttr(this, MediaUIAttributes.MEDIA_DURATION, value);\n }\n /**\n *\n */\n get mediaCurrentTime() {\n return getNumericAttr(this, MediaUIAttributes.MEDIA_CURRENT_TIME);\n }\n set mediaCurrentTime(value) {\n setNumericAttr(this, MediaUIAttributes.MEDIA_CURRENT_TIME, value);\n }\n /**\n *\n */\n get mediaPlaybackRate() {\n return getNumericAttr(this, MediaUIAttributes.MEDIA_PLAYBACK_RATE, 1);\n }\n set mediaPlaybackRate(value) {\n setNumericAttr(this, MediaUIAttributes.MEDIA_PLAYBACK_RATE, value);\n }\n /**\n * An array of ranges, each range being an array of two numbers.\n * e.g. [[1, 2], [3, 4]]\n */\n get mediaBuffered() {\n const buffered = this.getAttribute(MediaUIAttributes.MEDIA_BUFFERED);\n if (!buffered)\n return [];\n return buffered.split(\" \").map((timePair) => timePair.split(\":\").map((timeStr) => +timeStr));\n }\n set mediaBuffered(list) {\n if (!list) {\n this.removeAttribute(MediaUIAttributes.MEDIA_BUFFERED);\n return;\n }\n const strVal = list.map((tuple) => tuple.join(\":\")).join(\" \");\n this.setAttribute(MediaUIAttributes.MEDIA_BUFFERED, strVal);\n }\n /**\n * Range of values that can be seeked to\n * An array of two numbers [start, end]\n */\n get mediaSeekable() {\n const seekable = this.getAttribute(MediaUIAttributes.MEDIA_SEEKABLE);\n if (!seekable)\n return void 0;\n return seekable.split(\":\").map((time) => +time);\n }\n set mediaSeekable(range) {\n if (range == null) {\n this.removeAttribute(MediaUIAttributes.MEDIA_SEEKABLE);\n return;\n }\n this.setAttribute(MediaUIAttributes.MEDIA_SEEKABLE, range.join(\":\"));\n }\n /**\n *\n */\n get mediaSeekableEnd() {\n var _a;\n const [, end = this.mediaDuration] = (_a = this.mediaSeekable) != null ? _a : [];\n return end;\n }\n get mediaSeekableStart() {\n var _a;\n const [start = 0] = (_a = this.mediaSeekable) != null ? _a : [];\n return start;\n }\n /**\n * The url of the preview image\n */\n get mediaPreviewImage() {\n return getStringAttr(this, MediaUIAttributes.MEDIA_PREVIEW_IMAGE);\n }\n set mediaPreviewImage(value) {\n setStringAttr(this, MediaUIAttributes.MEDIA_PREVIEW_IMAGE, value);\n }\n /**\n *\n */\n get mediaPreviewTime() {\n return getNumericAttr(this, MediaUIAttributes.MEDIA_PREVIEW_TIME);\n }\n set mediaPreviewTime(value) {\n setNumericAttr(this, MediaUIAttributes.MEDIA_PREVIEW_TIME, value);\n }\n /**\n *\n */\n get mediaEnded() {\n return getBooleanAttr(this, MediaUIAttributes.MEDIA_ENDED);\n }\n set mediaEnded(value) {\n setBooleanAttr(this, MediaUIAttributes.MEDIA_ENDED, value);\n }\n /* Add a buffered progress bar */\n updateBar() {\n super.updateBar();\n this.updateBufferedBar();\n this.updateCurrentBox();\n }\n updateBufferedBar() {\n var _a;\n const buffered = this.mediaBuffered;\n if (!buffered.length) {\n return;\n }\n let relativeBufferedEnd;\n if (!this.mediaEnded) {\n const currentTime = this.mediaCurrentTime;\n const [, bufferedEnd = this.mediaSeekableStart] = (_a = buffered.find(\n ([start, end]) => start <= currentTime && currentTime <= end\n )) != null ? _a : [];\n relativeBufferedEnd = calcRangeValueFromTime(this, bufferedEnd);\n } else {\n relativeBufferedEnd = 1;\n }\n const { style } = getOrInsertCSSRule(this.shadowRoot, \"#buffered\");\n style.setProperty(\"width\", `${relativeBufferedEnd * 100}%`);\n }\n updateCurrentBox() {\n const currentSlot = this.shadowRoot.querySelector(\n 'slot[name=\"current\"]'\n );\n if (!currentSlot.assignedElements().length)\n return;\n const currentRailRule = getOrInsertCSSRule(\n this.shadowRoot,\n \"#current-rail\"\n );\n const currentBoxRule = getOrInsertCSSRule(\n this.shadowRoot,\n '[part~=\"current-box\"]'\n );\n const rects = __privateMethod(this, _getElementRects, getElementRects_fn).call(this, __privateGet(this, _currentBox));\n const boxPos = __privateMethod(this, _getBoxPosition, getBoxPosition_fn).call(this, rects, this.range.valueAsNumber);\n const boxShift = __privateMethod(this, _getBoxShiftPosition, getBoxShiftPosition_fn).call(this, rects, this.range.valueAsNumber);\n currentRailRule.style.transform = `translateX(${boxPos})`;\n currentRailRule.style.setProperty(\"--_range-width\", `${rects.range.width}`);\n currentBoxRule.style.setProperty(\"--_box-shift\", `${boxShift}`);\n currentBoxRule.style.setProperty(\"--_box-width\", `${rects.box.width}px`);\n currentBoxRule.style.setProperty(\"visibility\", \"initial\");\n }\n handleEvent(evt) {\n super.handleEvent(evt);\n switch (evt.type) {\n case \"input\":\n __privateMethod(this, _seekRequest, seekRequest_fn).call(this);\n break;\n case \"pointermove\":\n __privateMethod(this, _handlePointerMove, handlePointerMove_fn).call(this, evt);\n break;\n case \"pointerup\":\n if (__privateGet(this, _isPointerDown))\n __privateSet(this, _isPointerDown, false);\n break;\n case \"pointerdown\":\n __privateSet(this, _isPointerDown, true);\n break;\n case \"pointerleave\":\n __privateMethod(this, _previewRequest, previewRequest_fn).call(this, null);\n break;\n case \"transitionstart\":\n if (containsComposedNode(evt.target, this)) {\n setTimeout(() => __privateMethod(this, _toggleRangeAnimation, toggleRangeAnimation_fn).call(this), 0);\n }\n break;\n }\n }\n}\n_rootNode = new WeakMap();\n_animation = new WeakMap();\n_boxes = new WeakMap();\n_previewTime = new WeakMap();\n_previewBox = new WeakMap();\n_currentBox = new WeakMap();\n_boxPaddingLeft = new WeakMap();\n_boxPaddingRight = new WeakMap();\n_mediaChaptersCues = new WeakMap();\n_isPointerDown = new WeakMap();\n_toggleRangeAnimation = new WeakSet();\ntoggleRangeAnimation_fn = function() {\n if (__privateMethod(this, _shouldRangeAnimate, shouldRangeAnimate_fn).call(this)) {\n __privateGet(this, _animation).start();\n } else {\n __privateGet(this, _animation).stop();\n }\n};\n_shouldRangeAnimate = new WeakSet();\nshouldRangeAnimate_fn = function() {\n return this.isConnected && !this.mediaPaused && !this.mediaLoading && !this.mediaEnded && this.mediaSeekableEnd > 0 && isElementVisible(this);\n};\n_updateRange = new WeakMap();\n_getElementRects = new WeakSet();\ngetElementRects_fn = function(box) {\n var _a;\n const bounds = (_a = this.getAttribute(\"bounds\") ? closestComposedNode(this, `#${this.getAttribute(\"bounds\")}`) : this.parentElement) != null ? _a : this;\n const boundsRect = bounds.getBoundingClientRect();\n const rangeRect = this.range.getBoundingClientRect();\n const width = box.offsetWidth;\n const min = -(rangeRect.left - boundsRect.left - width / 2);\n const max = boundsRect.right - rangeRect.left - width / 2;\n return {\n box: { width, min, max },\n bounds: boundsRect,\n range: rangeRect\n };\n};\n_getBoxPosition = new WeakSet();\ngetBoxPosition_fn = function(rects, ratio) {\n let position = `${ratio * 100}%`;\n const { width, min, max } = rects.box;\n if (!width)\n return position;\n if (!Number.isNaN(min)) {\n const pad = `var(--media-box-padding-left)`;\n const minPos = `calc(1 / var(--_range-width) * 100 * ${min}% + ${pad})`;\n position = `max(${minPos}, ${position})`;\n }\n if (!Number.isNaN(max)) {\n const pad = `var(--media-box-padding-right)`;\n const maxPos = `calc(1 / var(--_range-width) * 100 * ${max}% - ${pad})`;\n position = `min(${position}, ${maxPos})`;\n }\n return position;\n};\n_getBoxShiftPosition = new WeakSet();\ngetBoxShiftPosition_fn = function(rects, ratio) {\n const { width, min, max } = rects.box;\n const pointerX = ratio * rects.range.width;\n if (pointerX < min + __privateGet(this, _boxPaddingLeft)) {\n const offset = rects.range.left - rects.bounds.left - __privateGet(this, _boxPaddingLeft);\n return `${pointerX - width / 2 + offset}px`;\n }\n if (pointerX > max - __privateGet(this, _boxPaddingRight)) {\n const offset = rects.bounds.right - rects.range.right - __privateGet(this, _boxPaddingRight);\n return `${pointerX + width / 2 - offset - rects.range.width}px`;\n }\n return 0;\n};\n_handlePointerMove = new WeakSet();\nhandlePointerMove_fn = function(evt) {\n const isOverBoxes = [...__privateGet(this, _boxes)].some(\n (b) => evt.composedPath().includes(b)\n );\n if (!this.dragging && (isOverBoxes || !evt.composedPath().includes(this))) {\n __privateMethod(this, _previewRequest, previewRequest_fn).call(this, null);\n return;\n }\n const duration = this.mediaSeekableEnd;\n if (!duration)\n return;\n const previewRailRule = getOrInsertCSSRule(\n this.shadowRoot,\n \"#preview-rail\"\n );\n const previewBoxRule = getOrInsertCSSRule(\n this.shadowRoot,\n '[part~=\"preview-box\"]'\n );\n const rects = __privateMethod(this, _getElementRects, getElementRects_fn).call(this, __privateGet(this, _previewBox));\n let pointerRatio = (evt.clientX - rects.range.left) / rects.range.width;\n pointerRatio = Math.max(0, Math.min(1, pointerRatio));\n const boxPos = __privateMethod(this, _getBoxPosition, getBoxPosition_fn).call(this, rects, pointerRatio);\n const boxShift = __privateMethod(this, _getBoxShiftPosition, getBoxShiftPosition_fn).call(this, rects, pointerRatio);\n previewRailRule.style.transform = `translateX(${boxPos})`;\n previewRailRule.style.setProperty(\"--_range-width\", `${rects.range.width}`);\n previewBoxRule.style.setProperty(\"--_box-shift\", `${boxShift}`);\n previewBoxRule.style.setProperty(\"--_box-width\", `${rects.box.width}px`);\n const diff = Math.round(__privateGet(this, _previewTime)) - Math.round(pointerRatio * duration);\n if (Math.abs(diff) < 1 && pointerRatio > 0.01 && pointerRatio < 0.99)\n return;\n __privateSet(this, _previewTime, pointerRatio * duration);\n __privateMethod(this, _previewRequest, previewRequest_fn).call(this, __privateGet(this, _previewTime));\n};\n_previewRequest = new WeakSet();\npreviewRequest_fn = function(detail) {\n this.dispatchEvent(\n new globalThis.CustomEvent(MediaUIEvents.MEDIA_PREVIEW_REQUEST, {\n composed: true,\n bubbles: true,\n detail\n })\n );\n};\n_seekRequest = new WeakSet();\nseekRequest_fn = function() {\n __privateGet(this, _animation).stop();\n const detail = calcTimeFromRangeValue(this);\n this.dispatchEvent(\n new globalThis.CustomEvent(MediaUIEvents.MEDIA_SEEK_REQUEST, {\n composed: true,\n bubbles: true,\n detail\n })\n );\n};\nMediaTimeRange.shadowRootOptions = { mode: \"open\" };\nMediaTimeRange.getTemplateHTML = getTemplateHTML;\nif (!globalThis.customElements.get(\"media-time-range\")) {\n globalThis.customElements.define(\"media-time-range\", MediaTimeRange);\n}\nvar media_time_range_default = MediaTimeRange;\nexport {\n media_time_range_default as default\n};\n","import { globalThis } from \"./utils/server-safe-globals.js\";\nimport { MediaChromeRange } from \"./media-chrome-range.js\";\nimport { MediaUIAttributes, MediaUIEvents } from \"./constants.js\";\nimport { t } from \"./utils/i18n.js\";\nimport {\n getBooleanAttr,\n getNumericAttr,\n getStringAttr,\n setBooleanAttr,\n setNumericAttr,\n setStringAttr\n} from \"./utils/element-utils.js\";\nconst DEFAULT_VOLUME = 1;\nconst toVolume = (el) => {\n if (el.mediaMuted)\n return 0;\n return el.mediaVolume;\n};\nconst formatAsPercentString = (value) => `${Math.round(value * 100)}%`;\nclass MediaVolumeRange extends MediaChromeRange {\n static get observedAttributes() {\n return [\n ...super.observedAttributes,\n MediaUIAttributes.MEDIA_VOLUME,\n MediaUIAttributes.MEDIA_MUTED,\n MediaUIAttributes.MEDIA_VOLUME_UNAVAILABLE\n ];\n }\n constructor() {\n super();\n this.range.addEventListener(\"input\", () => {\n const detail = this.range.value;\n const evt = new globalThis.CustomEvent(\n MediaUIEvents.MEDIA_VOLUME_REQUEST,\n {\n composed: true,\n bubbles: true,\n detail\n }\n );\n this.dispatchEvent(evt);\n });\n }\n connectedCallback() {\n super.connectedCallback();\n this.range.setAttribute(\"aria-label\", t(\"volume\"));\n }\n attributeChangedCallback(attrName, oldValue, newValue) {\n super.attributeChangedCallback(attrName, oldValue, newValue);\n if (attrName === MediaUIAttributes.MEDIA_VOLUME || attrName === MediaUIAttributes.MEDIA_MUTED) {\n this.range.valueAsNumber = toVolume(this);\n this.range.setAttribute(\n \"aria-valuetext\",\n formatAsPercentString(this.range.valueAsNumber)\n );\n this.updateBar();\n }\n }\n /**\n *\n */\n get mediaVolume() {\n return getNumericAttr(this, MediaUIAttributes.MEDIA_VOLUME, DEFAULT_VOLUME);\n }\n set mediaVolume(value) {\n setNumericAttr(this, MediaUIAttributes.MEDIA_VOLUME, value);\n }\n /**\n * Is the media currently muted\n */\n get mediaMuted() {\n return getBooleanAttr(this, MediaUIAttributes.MEDIA_MUTED);\n }\n set mediaMuted(value) {\n setBooleanAttr(this, MediaUIAttributes.MEDIA_MUTED, value);\n }\n /**\n * The volume unavailability state\n */\n get mediaVolumeUnavailable() {\n return getStringAttr(this, MediaUIAttributes.MEDIA_VOLUME_UNAVAILABLE);\n }\n set mediaVolumeUnavailable(value) {\n setStringAttr(this, MediaUIAttributes.MEDIA_VOLUME_UNAVAILABLE, value);\n }\n}\nif (!globalThis.customElements.get(\"media-volume-range\")) {\n globalThis.customElements.define(\"media-volume-range\", MediaVolumeRange);\n}\nvar media_volume_range_default = MediaVolumeRange;\nexport {\n media_volume_range_default as default\n};\n","import { MediaChromeButton } from \"./media-chrome-button.js\";\nimport { globalThis } from \"./utils/server-safe-globals.js\";\nimport { MediaUIEvents, MediaUIAttributes } from \"./constants.js\";\nimport { getBooleanAttr, setBooleanAttr } from \"./utils/element-utils.js\";\nimport { t } from \"./utils/i18n.js\";\nfunction getSlotTemplateHTML(_attrs) {\n return (\n /*html*/\n `\n <style>\n :host {\n min-width: 4ch;\n padding: var(--media-button-padding, var(--media-control-padding, 10px 5px));\n width: 100%;\n display: grid;\n grid-template-columns: 1fr auto;\n gap: 1rem;\n font-weight: var(--media-button-font-weight, normal);\n }\n\n #checked-indicator {\n display: none;\n }\n\n :host([${MediaUIAttributes.MEDIA_LOOP}]) #checked-indicator {\n display: block;\n }\n </style>\n \n <span id=\"icon\">\n </span>\n\n <div id=\"checked-indicator\">\n <svg aria-hidden=\"true\" viewBox=\"0 1 24 24\" part=\"checked-indicator indicator\">\n <path d=\"m10 15.17 9.193-9.191 1.414 1.414-10.606 10.606-6.364-6.364 1.414-1.414 4.95 4.95Z\"/>\n </svg>\n </div>\n `\n );\n}\nfunction getTooltipContentHTML() {\n return t(\"Loop\");\n}\nclass MediaLoopButton extends MediaChromeButton {\n constructor() {\n super(...arguments);\n this.container = null;\n }\n static get observedAttributes() {\n return [...super.observedAttributes, MediaUIAttributes.MEDIA_LOOP];\n }\n connectedCallback() {\n var _a;\n super.connectedCallback();\n this.container = ((_a = this.shadowRoot) == null ? void 0 : _a.querySelector(\"#icon\")) || null;\n if (this.container) {\n this.container.textContent = t(\"Loop\");\n }\n }\n attributeChangedCallback(attrName, oldValue, newValue) {\n super.attributeChangedCallback(attrName, oldValue, newValue);\n if (attrName === MediaUIAttributes.MEDIA_LOOP && this.container) {\n this.setAttribute(\n \"aria-checked\",\n this.mediaLoop ? \"true\" : \"false\"\n );\n }\n }\n get mediaLoop() {\n return getBooleanAttr(this, MediaUIAttributes.MEDIA_LOOP);\n }\n set mediaLoop(value) {\n setBooleanAttr(this, MediaUIAttributes.MEDIA_LOOP, value);\n }\n handleClick() {\n const looping = !this.mediaLoop;\n const evt = new globalThis.CustomEvent(MediaUIEvents.MEDIA_LOOP_REQUEST, {\n composed: true,\n bubbles: true,\n detail: looping\n });\n this.dispatchEvent(evt);\n }\n}\nMediaLoopButton.getSlotTemplateHTML = getSlotTemplateHTML;\nMediaLoopButton.getTooltipContentHTML = getTooltipContentHTML;\nif (!globalThis.customElements.get(\"media-loop-button\")) {\n globalThis.customElements.define(\"media-loop-button\", MediaLoopButton);\n}\nvar media_loop_button_default = MediaLoopButton;\nexport {\n media_loop_button_default as default\n};\n","var __accessCheck = (obj, member, msg) => {\n if (!member.has(obj))\n throw TypeError(\"Cannot \" + msg);\n};\nvar __privateGet = (obj, member, getter) => {\n __accessCheck(obj, member, \"read from private field\");\n return getter ? getter.call(obj) : member.get(obj);\n};\nvar __privateAdd = (obj, member, value) => {\n if (member.has(obj))\n throw TypeError(\"Cannot add the same private member more than once\");\n member instanceof WeakSet ? member.add(obj) : member.set(obj, value);\n};\nvar __privateSet = (obj, member, value, setter) => {\n __accessCheck(obj, member, \"write to private field\");\n setter ? setter.call(obj, value) : member.set(obj, value);\n return value;\n};\nvar _parts, _processor, _items, _value, _element, _attributeName, _namespaceURI, _list, list_get, _parentNode, _nodes;\nimport { globalThis } from \"../utils/server-safe-globals.js\";\nconst ELEMENT = 1;\nconst STRING = 0;\nconst PART = 1;\nconst defaultProcessor = {\n processCallback(instance, parts, state) {\n if (!state)\n return;\n for (const [expression, part] of parts) {\n if (expression in state) {\n const value = state[expression];\n if (typeof value === \"boolean\" && part instanceof AttrPart && typeof part.element[part.attributeName] === \"boolean\") {\n part.booleanValue = value;\n } else if (typeof value === \"function\" && part instanceof AttrPart) {\n part.element[part.attributeName] = value;\n } else {\n part.value = value;\n }\n }\n }\n }\n};\nclass TemplateInstance extends globalThis.DocumentFragment {\n constructor(template, state, processor = defaultProcessor) {\n var _a;\n super();\n __privateAdd(this, _parts, void 0);\n __privateAdd(this, _processor, void 0);\n this.append(template.content.cloneNode(true));\n __privateSet(this, _parts, parse(this));\n __privateSet(this, _processor, processor);\n (_a = processor.createCallback) == null ? void 0 : _a.call(processor, this, __privateGet(this, _parts), state);\n processor.processCallback(this, __privateGet(this, _parts), state);\n }\n update(state) {\n __privateGet(this, _processor).processCallback(this, __privateGet(this, _parts), state);\n }\n}\n_parts = new WeakMap();\n_processor = new WeakMap();\nconst parse = (element, parts = []) => {\n let type, value;\n for (const attr of element.attributes || []) {\n if (attr.value.includes(\"{{\")) {\n const list = new AttrPartList();\n for ([type, value] of tokenize(attr.value)) {\n if (!type)\n list.append(value);\n else {\n const part = new AttrPart(element, attr.name, attr.namespaceURI);\n list.append(part);\n parts.push([value, part]);\n }\n }\n attr.value = list.toString();\n }\n }\n for (const node of element.childNodes) {\n if (node.nodeType === ELEMENT && !(node instanceof HTMLTemplateElement)) {\n parse(node, parts);\n } else {\n const data = node.data;\n if (node.nodeType === ELEMENT || data.includes(\"{{\")) {\n const items = [];\n if (data) {\n for ([type, value] of tokenize(data))\n if (!type)\n items.push(new Text(value));\n else {\n const part = new ChildNodePart(element);\n items.push(part);\n parts.push([value, part]);\n }\n } else if (node instanceof HTMLTemplateElement) {\n const part = new InnerTemplatePart(element, node);\n items.push(part);\n parts.push([part.expression, part]);\n }\n node.replaceWith(\n ...items.flatMap((part) => part.replacementNodes || [part])\n );\n }\n }\n }\n return parts;\n};\nconst mem = {};\nconst tokenize = (text) => {\n let value = \"\", open = 0, tokens = mem[text], i = 0, c;\n if (tokens)\n return tokens;\n else\n tokens = [];\n for (; c = text[i]; i++) {\n if (c === \"{\" && text[i + 1] === \"{\" && text[i - 1] !== \"\\\\\" && text[i + 2] && ++open == 1) {\n if (value)\n tokens.push([STRING, value]);\n value = \"\";\n i++;\n } else if (c === \"}\" && text[i + 1] === \"}\" && text[i - 1] !== \"\\\\\" && !--open) {\n tokens.push([PART, value.trim()]);\n value = \"\";\n i++;\n } else\n value += c || \"\";\n }\n if (value)\n tokens.push([STRING, (open > 0 ? \"{{\" : \"\") + value]);\n return mem[text] = tokens;\n};\nconst FRAGMENT = 11;\nclass Part {\n get value() {\n return \"\";\n }\n set value(val) {\n }\n toString() {\n return this.value;\n }\n}\nconst attrPartToList = /* @__PURE__ */ new WeakMap();\nclass AttrPartList {\n constructor() {\n __privateAdd(this, _items, []);\n }\n [Symbol.iterator]() {\n return __privateGet(this, _items).values();\n }\n get length() {\n return __privateGet(this, _items).length;\n }\n item(index) {\n return __privateGet(this, _items)[index];\n }\n append(...items) {\n for (const item of items) {\n if (item instanceof AttrPart) {\n attrPartToList.set(item, this);\n }\n __privateGet(this, _items).push(item);\n }\n }\n toString() {\n return __privateGet(this, _items).join(\"\");\n }\n}\n_items = new WeakMap();\nclass AttrPart extends Part {\n constructor(element, attributeName, namespaceURI) {\n super();\n __privateAdd(this, _list);\n __privateAdd(this, _value, \"\");\n __privateAdd(this, _element, void 0);\n __privateAdd(this, _attributeName, void 0);\n __privateAdd(this, _namespaceURI, void 0);\n __privateSet(this, _element, element);\n __privateSet(this, _attributeName, attributeName);\n __privateSet(this, _namespaceURI, namespaceURI);\n }\n get attributeName() {\n return __privateGet(this, _attributeName);\n }\n get attributeNamespace() {\n return __privateGet(this, _namespaceURI);\n }\n get element() {\n return __privateGet(this, _element);\n }\n get value() {\n return __privateGet(this, _value);\n }\n set value(newValue) {\n if (__privateGet(this, _value) === newValue)\n return;\n __privateSet(this, _value, newValue);\n if (!__privateGet(this, _list, list_get) || __privateGet(this, _list, list_get).length === 1) {\n if (newValue == null) {\n __privateGet(this, _element).removeAttributeNS(\n __privateGet(this, _namespaceURI),\n __privateGet(this, _attributeName)\n );\n } else {\n __privateGet(this, _element).setAttributeNS(\n __privateGet(this, _namespaceURI),\n __privateGet(this, _attributeName),\n newValue\n );\n }\n } else {\n __privateGet(this, _element).setAttributeNS(\n __privateGet(this, _namespaceURI),\n __privateGet(this, _attributeName),\n __privateGet(this, _list, list_get).toString()\n );\n }\n }\n get booleanValue() {\n return __privateGet(this, _element).hasAttributeNS(\n __privateGet(this, _namespaceURI),\n __privateGet(this, _attributeName)\n );\n }\n set booleanValue(value) {\n if (!__privateGet(this, _list, list_get) || __privateGet(this, _list, list_get).length === 1)\n this.value = value ? \"\" : null;\n else\n throw new DOMException(\"Value is not fully templatized\");\n }\n}\n_value = new WeakMap();\n_element = new WeakMap();\n_attributeName = new WeakMap();\n_namespaceURI = new WeakMap();\n_list = new WeakSet();\nlist_get = function() {\n return attrPartToList.get(this);\n};\nclass ChildNodePart extends Part {\n constructor(parentNode, nodes) {\n super();\n __privateAdd(this, _parentNode, void 0);\n __privateAdd(this, _nodes, void 0);\n __privateSet(this, _parentNode, parentNode);\n __privateSet(this, _nodes, nodes ? [...nodes] : [new Text()]);\n }\n get replacementNodes() {\n return __privateGet(this, _nodes);\n }\n get parentNode() {\n return __privateGet(this, _parentNode);\n }\n get nextSibling() {\n return __privateGet(this, _nodes)[__privateGet(this, _nodes).length - 1].nextSibling;\n }\n get previousSibling() {\n return __privateGet(this, _nodes)[0].previousSibling;\n }\n // FIXME: not sure why do we need string serialization here? Just because parent class has type DOMString?\n get value() {\n return __privateGet(this, _nodes).map((node) => node.textContent).join(\"\");\n }\n set value(newValue) {\n this.replace(newValue);\n }\n replace(...nodes) {\n const normalisedNodes = nodes.flat().flatMap(\n (node) => node == null ? [new Text()] : node.forEach ? [...node] : node.nodeType === FRAGMENT ? [...node.childNodes] : node.nodeType ? [node] : [new Text(node)]\n );\n if (!normalisedNodes.length)\n normalisedNodes.push(new Text());\n __privateSet(this, _nodes, swapdom(\n __privateGet(this, _nodes)[0].parentNode,\n __privateGet(this, _nodes),\n normalisedNodes,\n this.nextSibling\n ));\n }\n}\n_parentNode = new WeakMap();\n_nodes = new WeakMap();\nclass InnerTemplatePart extends ChildNodePart {\n constructor(parentNode, template) {\n const directive = template.getAttribute(\"directive\") || template.getAttribute(\"type\");\n let expression = template.getAttribute(\"expression\") || template.getAttribute(directive) || \"\";\n if (expression.startsWith(\"{{\"))\n expression = expression.trim().slice(2, -2).trim();\n super(parentNode);\n this.expression = expression;\n this.template = template;\n this.directive = directive;\n }\n}\nfunction swapdom(parent, a, b, end = null) {\n let i = 0, cur, next, bi, n = b.length, m = a.length;\n while (i < n && i < m && a[i] == b[i])\n i++;\n while (i < n && i < m && b[n - 1] == a[m - 1])\n end = b[--m, --n];\n if (i == m)\n while (i < n)\n parent.insertBefore(b[i++], end);\n if (i == n)\n while (i < m)\n parent.removeChild(a[i++]);\n else {\n cur = a[i];\n while (i < n) {\n bi = b[i++], next = cur ? cur.nextSibling : end;\n if (cur == bi)\n cur = next;\n else if (i < n && b[i] == next)\n parent.replaceChild(bi, cur), cur = next;\n else\n parent.insertBefore(bi, cur);\n }\n while (cur != end)\n next = cur.nextSibling, parent.removeChild(cur), cur = next;\n }\n return b;\n}\nexport {\n AttrPart,\n AttrPartList,\n ChildNodePart,\n InnerTemplatePart,\n Part,\n TemplateInstance,\n defaultProcessor,\n parse,\n tokenize\n};\n","import {\n AttrPart,\n InnerTemplatePart,\n TemplateInstance\n} from \"./template-parts.js\";\nimport { isNumericString } from \"./utils.js\";\nconst pipeModifiers = {\n string: (value) => String(value)\n};\nclass PartialTemplate {\n constructor(template) {\n this.template = template;\n this.state = void 0;\n }\n}\nconst templates = /* @__PURE__ */ new WeakMap();\nconst templateInstances = /* @__PURE__ */ new WeakMap();\nconst Directives = {\n partial: (part, state) => {\n state[part.expression] = new PartialTemplate(part.template);\n },\n if: (part, state) => {\n var _a;\n if (evaluateExpression(part.expression, state)) {\n if (templates.get(part) !== part.template) {\n templates.set(part, part.template);\n const tpl = new TemplateInstance(part.template, state, processor);\n part.replace(tpl);\n templateInstances.set(part, tpl);\n } else {\n (_a = templateInstances.get(part)) == null ? void 0 : _a.update(state);\n }\n } else {\n part.replace(\"\");\n templates.delete(part);\n templateInstances.delete(part);\n }\n }\n};\nconst DirectiveNames = Object.keys(Directives);\nconst processor = {\n processCallback(instance, parts, state) {\n var _a, _b;\n if (!state)\n return;\n for (const [expression, part] of parts) {\n if (part instanceof InnerTemplatePart) {\n if (!part.directive) {\n const directive = DirectiveNames.find(\n (n) => part.template.hasAttribute(n)\n );\n if (directive) {\n part.directive = directive;\n part.expression = part.template.getAttribute(directive);\n }\n }\n (_a = Directives[part.directive]) == null ? void 0 : _a.call(Directives, part, state);\n continue;\n }\n let value = evaluateExpression(expression, state);\n if (value instanceof PartialTemplate) {\n if (templates.get(part) !== value.template) {\n templates.set(part, value.template);\n value = new TemplateInstance(value.template, value.state, processor);\n part.value = value;\n templateInstances.set(part, value);\n } else {\n (_b = templateInstances.get(part)) == null ? void 0 : _b.update(value.state);\n }\n continue;\n }\n if (value) {\n if (part instanceof AttrPart) {\n if (part.attributeName.startsWith(\"aria-\")) {\n value = String(value);\n }\n }\n if (part instanceof AttrPart) {\n if (typeof value === \"boolean\") {\n part.booleanValue = value;\n } else if (typeof value === \"function\") {\n part.element[part.attributeName] = value;\n } else {\n part.value = value;\n }\n } else {\n part.value = value;\n templates.delete(part);\n templateInstances.delete(part);\n }\n } else {\n if (part instanceof AttrPart) {\n part.value = void 0;\n } else {\n part.value = void 0;\n templates.delete(part);\n templateInstances.delete(part);\n }\n }\n }\n }\n};\nconst operators = {\n \"!\": (a) => !a,\n \"!!\": (a) => !!a,\n \"==\": (a, b) => a == b,\n \"!=\": (a, b) => a != b,\n \">\": (a, b) => a > b,\n \">=\": (a, b) => a >= b,\n \"<\": (a, b) => a < b,\n \"<=\": (a, b) => a <= b,\n \"??\": (a, b) => a != null ? a : b,\n \"|\": (a, b) => {\n var _a;\n return (_a = pipeModifiers[b]) == null ? void 0 : _a.call(pipeModifiers, a);\n }\n};\nfunction tokenizeExpression(expr) {\n return tokenize(expr, {\n boolean: /true|false/,\n number: /-?\\d+\\.?\\d*/,\n string: /([\"'])((?:\\\\.|[^\\\\])*?)\\1/,\n operator: /[!=><][=!]?|\\?\\?|\\|/,\n ws: /\\s+/,\n param: /[$a-z_][$\\w]*/i\n }).filter(({ type }) => type !== \"ws\");\n}\nfunction evaluateExpression(expr, state = {}) {\n var _a, _b, _c, _d, _e, _f, _g;\n const tokens = tokenizeExpression(expr);\n if (tokens.length === 0 || tokens.some(({ type }) => !type)) {\n return invalidExpression(expr);\n }\n if (((_a = tokens[0]) == null ? void 0 : _a.token) === \">\") {\n const partial = state[(_b = tokens[1]) == null ? void 0 : _b.token];\n if (!partial) {\n return invalidExpression(expr);\n }\n const partialState = { ...state };\n partial.state = partialState;\n const args = tokens.slice(2);\n for (let i = 0; i < args.length; i += 3) {\n const name = (_c = args[i]) == null ? void 0 : _c.token;\n const operator = (_d = args[i + 1]) == null ? void 0 : _d.token;\n const value = (_e = args[i + 2]) == null ? void 0 : _e.token;\n if (name && operator === \"=\") {\n partialState[name] = getParamValue(value, state);\n }\n }\n return partial;\n }\n if (tokens.length === 1) {\n if (!isValidParam(tokens[0])) {\n return invalidExpression(expr);\n }\n return getParamValue(tokens[0].token, state);\n }\n if (tokens.length === 2) {\n const operator = (_f = tokens[0]) == null ? void 0 : _f.token;\n const run = operators[operator];\n if (!run || !isValidParam(tokens[1])) {\n return invalidExpression(expr);\n }\n const a = getParamValue(tokens[1].token, state);\n return run(a);\n }\n if (tokens.length === 3) {\n const operator = (_g = tokens[1]) == null ? void 0 : _g.token;\n const run = operators[operator];\n if (!run || !isValidParam(tokens[0]) || !isValidParam(tokens[2])) {\n return invalidExpression(expr);\n }\n const a = getParamValue(tokens[0].token, state);\n if (operator === \"|\") {\n return run(a, tokens[2].token);\n }\n const b = getParamValue(tokens[2].token, state);\n return run(a, b);\n }\n}\nfunction invalidExpression(expr) {\n console.warn(`Warning: invalid expression \\`${expr}\\``);\n return false;\n}\nfunction isValidParam({ type }) {\n return [\"number\", \"boolean\", \"string\", \"param\"].includes(type);\n}\nfunction getParamValue(raw, state) {\n const firstChar = raw[0];\n const lastChar = raw.slice(-1);\n if (raw === \"true\" || raw === \"false\") {\n return raw === \"true\";\n }\n if (firstChar === lastChar && [`'`, `\"`].includes(firstChar)) {\n return raw.slice(1, -1);\n }\n if (isNumericString(raw)) {\n return parseFloat(raw);\n }\n return state[raw];\n}\nfunction tokenize(str, parsers) {\n let len, match, token;\n const tokens = [];\n while (str) {\n token = null;\n len = str.length;\n for (const key in parsers) {\n match = parsers[key].exec(str);\n if (match && match.index < len) {\n token = {\n token: match[0],\n type: key,\n matches: match.slice(1)\n };\n len = match.index;\n }\n }\n if (len) {\n tokens.push({\n token: str.substr(0, len),\n type: void 0\n });\n }\n if (token) {\n tokens.push(token);\n }\n str = str.substr(len + (token ? token.token.length : 0));\n }\n return tokens;\n}\nexport {\n evaluateExpression,\n getParamValue,\n processor,\n tokenizeExpression\n};\n","var __accessCheck = (obj, member, msg) => {\n if (!member.has(obj))\n throw TypeError(\"Cannot \" + msg);\n};\nvar __privateGet = (obj, member, getter) => {\n __accessCheck(obj, member, \"read from private field\");\n return getter ? getter.call(obj) : member.get(obj);\n};\nvar __privateAdd = (obj, member, value) => {\n if (member.has(obj))\n throw TypeError(\"Cannot add the same private member more than once\");\n member instanceof WeakSet ? member.add(obj) : member.set(obj, value);\n};\nvar __privateSet = (obj, member, value, setter) => {\n __accessCheck(obj, member, \"write to private field\");\n setter ? setter.call(obj, value) : member.set(obj, value);\n return value;\n};\nvar __privateMethod = (obj, member, method) => {\n __accessCheck(obj, member, \"access private method\");\n return method;\n};\nvar _template, _prevTemplate, _prevTemplateId, _upgradeProperty, upgradeProperty_fn, _updateTemplate, updateTemplate_fn;\nimport { MediaStateChangeEvents } from \"./constants.js\";\nimport { globalThis, document } from \"./utils/server-safe-globals.js\";\nimport { TemplateInstance } from \"./utils/template-parts.js\";\nimport { processor } from \"./utils/template-processor.js\";\nimport { camelCase, isNumericString } from \"./utils/utils.js\";\nexport * from \"./utils/template-parts.js\";\nconst observedMediaAttributes = {\n mediatargetlivewindow: \"targetlivewindow\",\n mediastreamtype: \"streamtype\"\n};\nconst prependTemplate = document.createElement(\"template\");\nprependTemplate.innerHTML = /*html*/\n`\n <style>\n :host {\n display: inline-block;\n line-height: 0;\n }\n\n media-controller {\n width: 100%;\n height: 100%;\n }\n\n media-captions-button:not([mediasubtitleslist]),\n media-captions-menu:not([mediasubtitleslist]),\n media-captions-menu-button:not([mediasubtitleslist]),\n media-audio-track-menu[mediaaudiotrackunavailable],\n media-audio-track-menu-button[mediaaudiotrackunavailable],\n media-rendition-menu[mediarenditionunavailable],\n media-rendition-menu-button[mediarenditionunavailable],\n media-volume-range[mediavolumeunavailable],\n media-airplay-button[mediaairplayunavailable],\n media-fullscreen-button[mediafullscreenunavailable],\n media-cast-button[mediacastunavailable],\n media-pip-button[mediapipunavailable] {\n display: none;\n }\n </style>\n`;\nclass MediaThemeElement extends globalThis.HTMLElement {\n constructor() {\n super();\n __privateAdd(this, _upgradeProperty);\n __privateAdd(this, _updateTemplate);\n __privateAdd(this, _template, void 0);\n __privateAdd(this, _prevTemplate, void 0);\n __privateAdd(this, _prevTemplateId, void 0);\n if (this.shadowRoot) {\n this.renderRoot = this.shadowRoot;\n } else {\n this.renderRoot = this.attachShadow({ mode: \"open\" });\n this.createRenderer();\n }\n const observer = new MutationObserver((mutationList) => {\n var _a;\n if (this.mediaController && !((_a = this.mediaController) == null ? void 0 : _a.breakpointsComputed))\n return;\n if (mutationList.some((mutation) => {\n const target = mutation.target;\n if (target === this)\n return true;\n if (target.localName !== \"media-controller\")\n return false;\n if (observedMediaAttributes[mutation.attributeName])\n return true;\n if (mutation.attributeName.startsWith(\"breakpoint\"))\n return true;\n return false;\n })) {\n this.render();\n }\n });\n observer.observe(this, { attributes: true });\n observer.observe(this.renderRoot, {\n attributes: true,\n subtree: true\n });\n this.addEventListener(\n MediaStateChangeEvents.BREAKPOINTS_COMPUTED,\n this.render\n );\n __privateMethod(this, _upgradeProperty, upgradeProperty_fn).call(this, \"template\");\n }\n /** @type {HTMLElement & { breakpointsComputed?: boolean }} */\n get mediaController() {\n return this.renderRoot.querySelector(\"media-controller\");\n }\n get template() {\n var _a;\n return (_a = __privateGet(this, _template)) != null ? _a : this.constructor.template;\n }\n set template(value) {\n if (value === null) {\n this.removeAttribute(\"template\");\n return;\n }\n if (typeof value === \"string\") {\n this.setAttribute(\"template\", value);\n } else if (value instanceof HTMLTemplateElement) {\n __privateSet(this, _template, value);\n __privateSet(this, _prevTemplateId, null);\n this.createRenderer();\n }\n }\n get props() {\n var _a, _b, _c;\n const observedAttributes = [\n ...Array.from((_b = (_a = this.mediaController) == null ? void 0 : _a.attributes) != null ? _b : []).filter(\n ({ name }) => {\n return observedMediaAttributes[name] || name.startsWith(\"breakpoint\");\n }\n ),\n ...Array.from(this.attributes)\n ];\n const props = {};\n for (const attr of observedAttributes) {\n const name = (_c = observedMediaAttributes[attr.name]) != null ? _c : camelCase(attr.name);\n let { value } = attr;\n if (value != null) {\n if (isNumericString(value)) {\n value = parseFloat(value);\n }\n props[name] = value === \"\" ? true : value;\n } else {\n props[name] = false;\n }\n }\n return props;\n }\n attributeChangedCallback(attrName, oldValue, newValue) {\n if (attrName === \"template\" && oldValue != newValue) {\n __privateMethod(this, _updateTemplate, updateTemplate_fn).call(this);\n }\n }\n connectedCallback() {\n __privateMethod(this, _updateTemplate, updateTemplate_fn).call(this);\n }\n createRenderer() {\n if (this.template instanceof HTMLTemplateElement && this.template !== __privateGet(this, _prevTemplate)) {\n __privateSet(this, _prevTemplate, this.template);\n this.renderer = new TemplateInstance(\n this.template,\n this.props,\n // @ts-ignore\n this.constructor.processor\n );\n this.renderRoot.textContent = \"\";\n this.renderRoot.append(\n prependTemplate.content.cloneNode(true),\n this.renderer\n );\n }\n }\n render() {\n var _a;\n (_a = this.renderer) == null ? void 0 : _a.update(this.props);\n }\n}\n_template = new WeakMap();\n_prevTemplate = new WeakMap();\n_prevTemplateId = new WeakMap();\n_upgradeProperty = new WeakSet();\nupgradeProperty_fn = function(prop) {\n if (Object.prototype.hasOwnProperty.call(this, prop)) {\n const value = this[prop];\n delete this[prop];\n this[prop] = value;\n }\n};\n_updateTemplate = new WeakSet();\nupdateTemplate_fn = function() {\n var _a;\n const templateId = this.getAttribute(\"template\");\n if (!templateId || templateId === __privateGet(this, _prevTemplateId))\n return;\n const rootNode = this.getRootNode();\n const template = (_a = rootNode == null ? void 0 : rootNode.getElementById) == null ? void 0 : _a.call(\n rootNode,\n templateId\n );\n if (template) {\n __privateSet(this, _prevTemplateId, templateId);\n __privateSet(this, _template, template);\n this.createRenderer();\n return;\n }\n if (isValidUrl(templateId)) {\n __privateSet(this, _prevTemplateId, templateId);\n request(templateId).then((data) => {\n const template2 = document.createElement(\"template\");\n template2.innerHTML = data;\n __privateSet(this, _template, template2);\n this.createRenderer();\n }).catch(console.error);\n }\n};\nMediaThemeElement.observedAttributes = [\"template\"];\nMediaThemeElement.processor = processor;\nfunction isValidUrl(url) {\n if (!/^(\\/|\\.\\/|https?:\\/\\/)/.test(url))\n return false;\n const base = /^https?:\\/\\//.test(url) ? void 0 : location.origin;\n try {\n new URL(url, base);\n } catch (e) {\n return false;\n }\n return true;\n}\nasync function request(resource) {\n const response = await fetch(resource);\n if (response.status !== 200) {\n throw new Error(\n `Failed to load resource: the server responded with a status of ${response.status}`\n );\n }\n return response.text();\n}\nif (!globalThis.customElements.get(\"media-theme\")) {\n globalThis.customElements.define(\"media-theme\", MediaThemeElement);\n}\nexport {\n MediaThemeElement\n};\n","function computePosition({\n anchor,\n floating,\n placement\n}) {\n const rects = getElementRects({ anchor, floating });\n const { x, y } = computeCoordsFromPlacement(rects, placement);\n return { x, y };\n}\nfunction getElementRects({\n anchor,\n floating\n}) {\n return {\n anchor: getRectRelativeToOffsetParent(anchor, floating.offsetParent),\n floating: {\n x: 0,\n y: 0,\n width: floating.offsetWidth,\n height: floating.offsetHeight\n }\n };\n}\nfunction getRectRelativeToOffsetParent(element, offsetParent) {\n var _a;\n const rect = element.getBoundingClientRect();\n const offsetRect = (_a = offsetParent == null ? void 0 : offsetParent.getBoundingClientRect()) != null ? _a : { x: 0, y: 0 };\n return {\n x: rect.x - offsetRect.x,\n y: rect.y - offsetRect.y,\n width: rect.width,\n height: rect.height\n };\n}\nfunction computeCoordsFromPlacement({ anchor, floating }, placement) {\n const alignmentAxis = getSideAxis(placement) === \"x\" ? \"y\" : \"x\";\n const alignLength = alignmentAxis === \"y\" ? \"height\" : \"width\";\n const side = getSide(placement);\n const commonX = anchor.x + anchor.width / 2 - floating.width / 2;\n const commonY = anchor.y + anchor.height / 2 - floating.height / 2;\n const commonAlign = anchor[alignLength] / 2 - floating[alignLength] / 2;\n let coords;\n switch (side) {\n case \"top\":\n coords = { x: commonX, y: anchor.y - floating.height };\n break;\n case \"bottom\":\n coords = { x: commonX, y: anchor.y + anchor.height };\n break;\n case \"right\":\n coords = { x: anchor.x + anchor.width, y: commonY };\n break;\n case \"left\":\n coords = { x: anchor.x - floating.width, y: commonY };\n break;\n default:\n coords = { x: anchor.x, y: anchor.y };\n }\n switch (placement.split(\"-\")[1]) {\n case \"start\":\n coords[alignmentAxis] -= commonAlign;\n break;\n case \"end\":\n coords[alignmentAxis] += commonAlign;\n break;\n }\n return coords;\n}\nfunction getSide(placement) {\n return placement.split(\"-\")[0];\n}\nfunction getSideAxis(placement) {\n return [\"top\", \"bottom\"].includes(getSide(placement)) ? \"y\" : \"x\";\n}\nexport {\n computePosition\n};\n","class InvokeEvent extends Event {\n /**\n * @param init - The event options.\n */\n constructor({ action = \"auto\", relatedTarget, ...options }) {\n super(\"invoke\", options);\n this.action = action;\n this.relatedTarget = relatedTarget;\n }\n}\nclass ToggleEvent extends Event {\n /**\n * @param init - The event options.\n */\n constructor({ newState, oldState, ...options }) {\n super(\"toggle\", options);\n this.newState = newState;\n this.oldState = oldState;\n }\n}\nexport {\n InvokeEvent,\n ToggleEvent\n};\n","var __accessCheck = (obj, member, msg) => {\n if (!member.has(obj))\n throw TypeError(\"Cannot \" + msg);\n};\nvar __privateGet = (obj, member, getter) => {\n __accessCheck(obj, member, \"read from private field\");\n return getter ? getter.call(obj) : member.get(obj);\n};\nvar __privateAdd = (obj, member, value) => {\n if (member.has(obj))\n throw TypeError(\"Cannot add the same private member more than once\");\n member instanceof WeakSet ? member.add(obj) : member.set(obj, value);\n};\nvar __privateSet = (obj, member, value, setter) => {\n __accessCheck(obj, member, \"write to private field\");\n setter ? setter.call(obj, value) : member.set(obj, value);\n return value;\n};\nvar __privateMethod = (obj, member, method) => {\n __accessCheck(obj, member, \"access private method\");\n return method;\n};\nvar _mediaController, _previouslyFocused, _invokerElement, _previousItems, _mutationObserver, _isPopover, _cssRule, _handleSlotChange, handleSlotChange_fn, _toggleHeader, toggleHeader_fn, _handleMenuItems, _updateLayoutStyle, updateLayoutStyle_fn, _handleInvoke, handleInvoke_fn, _handleOpen, handleOpen_fn, _handleClosed, handleClosed_fn, _handleBoundsResize, _handleMenuResize, _positionMenu, positionMenu_fn, _resizeMenu, resizeMenu_fn, _handleClick, handleClick_fn, _backButtonElement, backButtonElement_get, _handleToggle, handleToggle_fn, _checkSubmenuHasExpanded, checkSubmenuHasExpanded_fn, _handleFocusOut, handleFocusOut_fn, _handleKeyDown, handleKeyDown_fn, _getItem, getItem_fn, _getTabItem, getTabItem_fn, _setTabItem, setTabItem_fn, _selectItem, selectItem_fn;\nimport { MediaStateReceiverAttributes } from \"../constants.js\";\nimport { globalThis, document } from \"../utils/server-safe-globals.js\";\nimport { computePosition } from \"../utils/anchor-utils.js\";\nimport { observeResize, unobserveResize } from \"../utils/resize-observer.js\";\nimport { ToggleEvent, InvokeEvent } from \"../utils/events.js\";\nimport {\n getActiveElement,\n containsComposedNode,\n closestComposedNode,\n insertCSSRule,\n getMediaController,\n getAttributeMediaController,\n getDocumentOrShadowRoot,\n namedNodeMapToObject\n} from \"../utils/element-utils.js\";\nfunction createMenuItem({\n type,\n text,\n value,\n checked\n}) {\n const item = document.createElement(\n \"media-chrome-menu-item\"\n );\n item.type = type != null ? type : \"\";\n item.part.add(\"menu-item\");\n if (type)\n item.part.add(type);\n item.value = value;\n item.checked = checked;\n const label = document.createElement(\"span\");\n label.textContent = text;\n item.append(label);\n return item;\n}\nfunction createIndicator(el, name) {\n let customIndicator = el.querySelector(`:scope > [slot=\"${name}\"]`);\n if ((customIndicator == null ? void 0 : customIndicator.nodeName) == \"SLOT\")\n customIndicator = customIndicator.assignedElements({ flatten: true })[0];\n if (customIndicator) {\n customIndicator = customIndicator.cloneNode(true);\n return customIndicator;\n }\n const fallbackIndicator = el.shadowRoot.querySelector(\n `[name=\"${name}\"] > svg`\n );\n if (fallbackIndicator) {\n return fallbackIndicator.cloneNode(true);\n }\n return \"\";\n}\nfunction getTemplateHTML(_attrs) {\n return (\n /*html*/\n `\n <style>\n :host {\n font: var(--media-font,\n var(--media-font-weight, normal)\n var(--media-font-size, 14px) /\n var(--media-text-content-height, var(--media-control-height, 24px))\n var(--media-font-family, helvetica neue, segoe ui, roboto, arial, sans-serif));\n color: var(--media-text-color, var(--media-primary-color, rgb(238 238 238)));\n --_menu-bg: rgb(20 20 30 / .8);\n background: var(--media-menu-background, var(--media-control-background, var(--media-secondary-color, var(--_menu-bg))));\n border-radius: var(--media-menu-border-radius);\n border: var(--media-menu-border, none);\n display: var(--media-menu-display, inline-flex) !important;\n ${/* ^^Prevent override by Tailwind CSS causing the menu to not hide properly. */\n \"\"}\n transition: var(--media-menu-transition-in,\n visibility 0s,\n opacity .2s ease-out,\n transform .15s ease-out,\n left .2s ease-in-out,\n min-width .2s ease-in-out,\n min-height .2s ease-in-out\n ) !important;\n ${/* ^^Prevent transition override by media-container */\n \"\"}\n visibility: var(--media-menu-visibility, visible);\n opacity: var(--media-menu-opacity, 1);\n max-height: var(--media-menu-max-height, var(--_menu-max-height, 300px));\n transform: var(--media-menu-transform-in, translateY(0) scale(1));\n flex-direction: column;\n ${/* Prevent overflowing a flex container */\n \"\"}\n min-height: 0;\n position: relative;\n bottom: var(--_menu-bottom);\n box-sizing: border-box;\n } \n\n @-moz-document url-prefix() {\n :host{\n --_menu-bg: rgb(20 20 30);\n }\n }\n\n :host([hidden]) {\n transition: var(--media-menu-transition-out,\n visibility .15s ease-in,\n opacity .15s ease-in,\n transform .15s ease-in\n ) !important;\n visibility: var(--media-menu-hidden-visibility, hidden);\n opacity: var(--media-menu-hidden-opacity, 0);\n max-height: var(--media-menu-hidden-max-height,\n var(--media-menu-max-height, var(--_menu-max-height, 300px)));\n transform: var(--media-menu-transform-out, translateY(2px) scale(.99));\n pointer-events: none;\n }\n\n :host([slot=\"submenu\"]) {\n background: none;\n width: 100%;\n min-height: 100%;\n position: absolute;\n bottom: 0;\n right: -100%;\n }\n\n #container {\n display: flex;\n flex-direction: column;\n min-height: 0;\n transition: transform .2s ease-out;\n transform: translate(0, 0);\n }\n\n #container.has-expanded {\n transition: transform .2s ease-in;\n transform: translate(-100%, 0);\n }\n\n button {\n background: none;\n color: inherit;\n border: none;\n padding: 0;\n font: inherit;\n outline: inherit;\n display: inline-flex;\n align-items: center;\n }\n\n slot[name=\"header\"][hidden] {\n display: none;\n }\n\n slot[name=\"header\"] > *,\n slot[name=\"header\"]::slotted(*) {\n padding: .4em .7em;\n border-bottom: 1px solid rgb(255 255 255 / .25);\n cursor: var(--media-cursor, default);\n }\n\n slot[name=\"header\"] > button[part~=\"back\"],\n slot[name=\"header\"]::slotted(button[part~=\"back\"]) {\n cursor: var(--media-cursor, pointer);\n }\n\n svg[part~=\"back\"] {\n height: var(--media-menu-icon-height, var(--media-control-height, 24px));\n fill: var(--media-icon-color, var(--media-primary-color, rgb(238 238 238)));\n display: block;\n margin-right: .5ch;\n }\n\n slot:not([name]) {\n gap: var(--media-menu-gap);\n flex-direction: var(--media-menu-flex-direction, column);\n overflow: var(--media-menu-overflow, hidden auto);\n display: flex;\n min-height: 0;\n }\n\n :host([role=\"menu\"]) slot:not([name]) {\n padding-block: .4em;\n }\n\n slot:not([name])::slotted([role=\"menu\"]) {\n background: none;\n }\n\n media-chrome-menu-item > span {\n margin-right: .5ch;\n max-width: var(--media-menu-item-max-width);\n text-overflow: ellipsis;\n overflow: hidden;\n }\n </style>\n <style id=\"layout-row\" media=\"width:0\">\n\n slot[name=\"header\"] > *,\n slot[name=\"header\"]::slotted(*) {\n padding: .4em .5em;\n }\n\n slot:not([name]) {\n gap: var(--media-menu-gap, .25em);\n flex-direction: var(--media-menu-flex-direction, row);\n padding-inline: .5em;\n }\n\n media-chrome-menu-item {\n padding: .3em .5em;\n }\n\n media-chrome-menu-item[aria-checked=\"true\"] {\n background: var(--media-menu-item-checked-background, rgb(255 255 255 / .2));\n }\n\n ${/* In row layout hide the checked indicator completely. */\n \"\"}\n media-chrome-menu-item::part(checked-indicator) {\n display: var(--media-menu-item-checked-indicator-display, none);\n }\n </style>\n <div id=\"container\" part=\"container\">\n <slot name=\"header\" hidden>\n <button part=\"back button\" aria-label=\"Back to previous menu\">\n <slot name=\"back-icon\">\n <svg aria-hidden=\"true\" viewBox=\"0 0 20 24\" part=\"back indicator\">\n <path d=\"m11.88 17.585.742-.669-4.2-4.665 4.2-4.666-.743-.669-4.803 5.335 4.803 5.334Z\"/>\n </svg>\n </slot>\n <slot name=\"title\"></slot>\n </button>\n </slot>\n <slot></slot>\n </div>\n <slot name=\"checked-indicator\" hidden></slot>\n `\n );\n}\nconst Attributes = {\n STYLE: \"style\",\n HIDDEN: \"hidden\",\n DISABLED: \"disabled\",\n ANCHOR: \"anchor\"\n};\nclass MediaChromeMenu extends globalThis.HTMLElement {\n constructor() {\n super();\n __privateAdd(this, _handleSlotChange);\n __privateAdd(this, _toggleHeader);\n /**\n * Sets the layout style for the menu.\n * It can be a row or column layout. e.g. playback-rate-menu\n */\n __privateAdd(this, _updateLayoutStyle);\n __privateAdd(this, _handleInvoke);\n __privateAdd(this, _handleOpen);\n __privateAdd(this, _handleClosed);\n /**\n * Updates the popover menu position based on the anchor element.\n * @param {number} [menuWidth]\n */\n __privateAdd(this, _positionMenu);\n /**\n * Resize this menu to fit the submenu.\n * @param {boolean} animate\n */\n __privateAdd(this, _resizeMenu);\n __privateAdd(this, _handleClick);\n __privateAdd(this, _backButtonElement);\n /**\n * Handle the toggle event of submenus.\n * Closes all other open submenus when opening a submenu.\n * Resizes this menu to fit the submenu.\n *\n * @param {ToggleEvent} event\n */\n __privateAdd(this, _handleToggle);\n /**\n * Check if any submenu is expanded and update the container class accordingly.\n * When the CSS :has() selector is supported, this can be done with CSS only.\n */\n __privateAdd(this, _checkSubmenuHasExpanded);\n __privateAdd(this, _handleFocusOut);\n __privateAdd(this, _handleKeyDown);\n __privateAdd(this, _getItem);\n __privateAdd(this, _getTabItem);\n __privateAdd(this, _setTabItem);\n __privateAdd(this, _selectItem);\n __privateAdd(this, _mediaController, null);\n __privateAdd(this, _previouslyFocused, null);\n __privateAdd(this, _invokerElement, null);\n __privateAdd(this, _previousItems, /* @__PURE__ */ new Set());\n __privateAdd(this, _mutationObserver, void 0);\n __privateAdd(this, _isPopover, false);\n __privateAdd(this, _cssRule, null);\n /**\n * Fires an event when a menu item is added or removed.\n * This is needed to update the description slot of an ancestor menu item.\n */\n __privateAdd(this, _handleMenuItems, () => {\n const previousItems = __privateGet(this, _previousItems);\n const currentItems = new Set(this.items);\n for (const item of previousItems) {\n if (!currentItems.has(item)) {\n this.dispatchEvent(new CustomEvent(\"removemenuitem\", { detail: item }));\n }\n }\n for (const item of currentItems) {\n if (!previousItems.has(item)) {\n this.dispatchEvent(new CustomEvent(\"addmenuitem\", { detail: item }));\n }\n }\n __privateSet(this, _previousItems, currentItems);\n });\n __privateAdd(this, _handleBoundsResize, () => {\n __privateMethod(this, _positionMenu, positionMenu_fn).call(this);\n __privateMethod(this, _resizeMenu, resizeMenu_fn).call(this, false);\n });\n __privateAdd(this, _handleMenuResize, () => {\n __privateMethod(this, _positionMenu, positionMenu_fn).call(this);\n });\n if (!this.shadowRoot) {\n this.attachShadow(this.constructor.shadowRootOptions);\n const attrs = namedNodeMapToObject(this.attributes);\n this.shadowRoot.innerHTML = this.constructor.getTemplateHTML(attrs);\n }\n this.container = this.shadowRoot.querySelector(\"#container\");\n this.defaultSlot = this.shadowRoot.querySelector(\n \"slot:not([name])\"\n );\n this.shadowRoot.addEventListener(\"slotchange\", this);\n __privateSet(this, _mutationObserver, new MutationObserver(__privateGet(this, _handleMenuItems)));\n __privateGet(this, _mutationObserver).observe(this.defaultSlot, { childList: true });\n }\n static get observedAttributes() {\n return [\n Attributes.DISABLED,\n Attributes.HIDDEN,\n Attributes.STYLE,\n Attributes.ANCHOR,\n MediaStateReceiverAttributes.MEDIA_CONTROLLER\n ];\n }\n static formatMenuItemText(text, _data) {\n return text;\n }\n enable() {\n this.addEventListener(\"click\", this);\n this.addEventListener(\"focusout\", this);\n this.addEventListener(\"keydown\", this);\n this.addEventListener(\"invoke\", this);\n this.addEventListener(\"toggle\", this);\n }\n disable() {\n this.removeEventListener(\"click\", this);\n this.removeEventListener(\"focusout\", this);\n this.removeEventListener(\"keyup\", this);\n this.removeEventListener(\"invoke\", this);\n this.removeEventListener(\"toggle\", this);\n }\n handleEvent(event) {\n switch (event.type) {\n case \"slotchange\":\n __privateMethod(this, _handleSlotChange, handleSlotChange_fn).call(this, event);\n break;\n case \"invoke\":\n __privateMethod(this, _handleInvoke, handleInvoke_fn).call(this, event);\n break;\n case \"click\":\n __privateMethod(this, _handleClick, handleClick_fn).call(this, event);\n break;\n case \"toggle\":\n __privateMethod(this, _handleToggle, handleToggle_fn).call(this, event);\n break;\n case \"focusout\":\n __privateMethod(this, _handleFocusOut, handleFocusOut_fn).call(this, event);\n break;\n case \"keydown\":\n __privateMethod(this, _handleKeyDown, handleKeyDown_fn).call(this, event);\n break;\n }\n }\n connectedCallback() {\n var _a, _b;\n __privateSet(this, _cssRule, insertCSSRule(this.shadowRoot, \":host\"));\n __privateMethod(this, _updateLayoutStyle, updateLayoutStyle_fn).call(this);\n if (!this.hasAttribute(\"disabled\")) {\n this.enable();\n }\n if (!this.role) {\n this.role = \"menu\";\n }\n __privateSet(this, _mediaController, getAttributeMediaController(this));\n (_b = (_a = __privateGet(this, _mediaController)) == null ? void 0 : _a.associateElement) == null ? void 0 : _b.call(_a, this);\n if (!this.hidden) {\n observeResize(getBoundsElement(this), __privateGet(this, _handleBoundsResize));\n observeResize(this, __privateGet(this, _handleMenuResize));\n }\n __privateMethod(this, _toggleHeader, toggleHeader_fn).call(this);\n }\n disconnectedCallback() {\n var _a, _b;\n unobserveResize(getBoundsElement(this), __privateGet(this, _handleBoundsResize));\n unobserveResize(this, __privateGet(this, _handleMenuResize));\n this.disable();\n (_b = (_a = __privateGet(this, _mediaController)) == null ? void 0 : _a.unassociateElement) == null ? void 0 : _b.call(_a, this);\n __privateSet(this, _mediaController, null);\n }\n attributeChangedCallback(attrName, oldValue, newValue) {\n var _a, _b, _c, _d;\n if (attrName === Attributes.HIDDEN && newValue !== oldValue) {\n if (!__privateGet(this, _isPopover))\n __privateSet(this, _isPopover, true);\n if (this.hidden) {\n __privateMethod(this, _handleClosed, handleClosed_fn).call(this);\n } else {\n __privateMethod(this, _handleOpen, handleOpen_fn).call(this);\n }\n this.dispatchEvent(\n new ToggleEvent({\n oldState: this.hidden ? \"open\" : \"closed\",\n newState: this.hidden ? \"closed\" : \"open\",\n bubbles: true\n })\n );\n } else if (attrName === MediaStateReceiverAttributes.MEDIA_CONTROLLER) {\n if (oldValue) {\n (_b = (_a = __privateGet(this, _mediaController)) == null ? void 0 : _a.unassociateElement) == null ? void 0 : _b.call(_a, this);\n __privateSet(this, _mediaController, null);\n }\n if (newValue && this.isConnected) {\n __privateSet(this, _mediaController, getAttributeMediaController(this));\n (_d = (_c = __privateGet(this, _mediaController)) == null ? void 0 : _c.associateElement) == null ? void 0 : _d.call(_c, this);\n }\n } else if (attrName === Attributes.DISABLED && newValue !== oldValue) {\n if (newValue == null) {\n this.enable();\n } else {\n this.disable();\n }\n } else if (attrName === Attributes.STYLE && newValue !== oldValue) {\n __privateMethod(this, _updateLayoutStyle, updateLayoutStyle_fn).call(this);\n }\n }\n formatMenuItemText(text, data) {\n return this.constructor.formatMenuItemText(\n text,\n data\n );\n }\n get anchor() {\n return this.getAttribute(\"anchor\");\n }\n set anchor(value) {\n this.setAttribute(\"anchor\", `${value}`);\n }\n /**\n * Returns the anchor element when it is a floating menu.\n */\n get anchorElement() {\n var _a;\n if (this.anchor) {\n return (_a = getDocumentOrShadowRoot(this)) == null ? void 0 : _a.querySelector(\n `#${this.anchor}`\n );\n }\n return null;\n }\n /**\n * Returns the menu items.\n */\n get items() {\n return this.defaultSlot.assignedElements({ flatten: true }).filter(isMenuItem);\n }\n get radioGroupItems() {\n return this.items.filter((item) => item.role === \"menuitemradio\");\n }\n get checkedItems() {\n return this.items.filter((item) => item.checked);\n }\n get value() {\n var _a, _b;\n return (_b = (_a = this.checkedItems[0]) == null ? void 0 : _a.value) != null ? _b : \"\";\n }\n set value(newValue) {\n const item = this.items.find((item2) => item2.value === newValue);\n if (!item)\n return;\n __privateMethod(this, _selectItem, selectItem_fn).call(this, item);\n }\n focus() {\n __privateSet(this, _previouslyFocused, getActiveElement());\n if (this.items.length) {\n __privateMethod(this, _setTabItem, setTabItem_fn).call(this, this.items[0]);\n this.items[0].focus();\n return;\n }\n const focusable = this.querySelector(\n '[autofocus], [tabindex]:not([tabindex=\"-1\"]), [role=\"menu\"]'\n );\n focusable == null ? void 0 : focusable.focus();\n }\n handleSelect(event) {\n var _a;\n const item = __privateMethod(this, _getItem, getItem_fn).call(this, event);\n if (!item)\n return;\n __privateMethod(this, _selectItem, selectItem_fn).call(this, item, item.type === \"checkbox\");\n if (__privateGet(this, _invokerElement) && !this.hidden) {\n (_a = __privateGet(this, _previouslyFocused)) == null ? void 0 : _a.focus();\n this.hidden = true;\n }\n }\n get keysUsed() {\n return [\n \"Enter\",\n \"Escape\",\n \"Tab\",\n \" \",\n \"ArrowDown\",\n \"ArrowUp\",\n \"Home\",\n \"End\"\n ];\n }\n handleMove(event) {\n var _a, _b;\n const { key } = event;\n const items = this.items;\n const currentItem = (_b = (_a = __privateMethod(this, _getItem, getItem_fn).call(this, event)) != null ? _a : __privateMethod(this, _getTabItem, getTabItem_fn).call(this)) != null ? _b : items[0];\n const currentIndex = items.indexOf(currentItem);\n let index = Math.max(0, currentIndex);\n if (key === \"ArrowDown\") {\n index++;\n } else if (key === \"ArrowUp\") {\n index--;\n } else if (event.key === \"Home\") {\n index = 0;\n } else if (event.key === \"End\") {\n index = items.length - 1;\n }\n if (index < 0) {\n index = items.length - 1;\n }\n if (index > items.length - 1) {\n index = 0;\n }\n __privateMethod(this, _setTabItem, setTabItem_fn).call(this, items[index]);\n items[index].focus();\n }\n}\n_mediaController = new WeakMap();\n_previouslyFocused = new WeakMap();\n_invokerElement = new WeakMap();\n_previousItems = new WeakMap();\n_mutationObserver = new WeakMap();\n_isPopover = new WeakMap();\n_cssRule = new WeakMap();\n_handleSlotChange = new WeakSet();\nhandleSlotChange_fn = function(event) {\n const slot = event.target;\n for (const node of slot.assignedNodes({ flatten: true })) {\n if (node.nodeType === 3 && node.textContent.trim() === \"\") {\n node.remove();\n }\n }\n if ([\"header\", \"title\"].includes(slot.name)) {\n __privateMethod(this, _toggleHeader, toggleHeader_fn).call(this);\n }\n if (!slot.name) {\n __privateGet(this, _handleMenuItems).call(this);\n }\n};\n_toggleHeader = new WeakSet();\ntoggleHeader_fn = function() {\n const header = this.shadowRoot.querySelector(\n 'slot[name=\"header\"]'\n );\n const title = this.shadowRoot.querySelector(\n 'slot[name=\"title\"]'\n );\n header.hidden = title.assignedNodes().length === 0 && header.assignedNodes().length === 0;\n};\n_handleMenuItems = new WeakMap();\n_updateLayoutStyle = new WeakSet();\nupdateLayoutStyle_fn = function() {\n var _a;\n const layoutRowStyle = this.shadowRoot.querySelector(\"#layout-row\");\n const menuLayout = (_a = getComputedStyle(this).getPropertyValue(\"--media-menu-layout\")) == null ? void 0 : _a.trim();\n layoutRowStyle.setAttribute(\"media\", menuLayout === \"row\" ? \"\" : \"width:0\");\n};\n_handleInvoke = new WeakSet();\nhandleInvoke_fn = function(event) {\n __privateSet(this, _invokerElement, event.relatedTarget);\n if (!containsComposedNode(this, event.relatedTarget)) {\n this.hidden = !this.hidden;\n }\n};\n_handleOpen = new WeakSet();\nhandleOpen_fn = function() {\n var _a;\n (_a = __privateGet(this, _invokerElement)) == null ? void 0 : _a.setAttribute(\"aria-expanded\", \"true\");\n this.addEventListener(\"transitionend\", () => this.focus(), { once: true });\n observeResize(getBoundsElement(this), __privateGet(this, _handleBoundsResize));\n observeResize(this, __privateGet(this, _handleMenuResize));\n};\n_handleClosed = new WeakSet();\nhandleClosed_fn = function() {\n var _a;\n (_a = __privateGet(this, _invokerElement)) == null ? void 0 : _a.setAttribute(\"aria-expanded\", \"false\");\n unobserveResize(getBoundsElement(this), __privateGet(this, _handleBoundsResize));\n unobserveResize(this, __privateGet(this, _handleMenuResize));\n};\n_handleBoundsResize = new WeakMap();\n_handleMenuResize = new WeakMap();\n_positionMenu = new WeakSet();\npositionMenu_fn = function(menuWidth) {\n if (this.hasAttribute(\"mediacontroller\") && !this.anchor)\n return;\n if (this.hidden || !this.anchorElement)\n return;\n const { x, y } = computePosition({\n anchor: this.anchorElement,\n floating: this,\n placement: \"top-start\"\n });\n menuWidth != null ? menuWidth : menuWidth = this.offsetWidth;\n const bounds = getBoundsElement(this);\n const boundsRect = bounds.getBoundingClientRect();\n const right = boundsRect.width - x - menuWidth;\n const bottom = boundsRect.height - y - this.offsetHeight;\n const { style } = __privateGet(this, _cssRule);\n style.setProperty(\"position\", \"absolute\");\n style.setProperty(\"right\", `${Math.max(0, right)}px`);\n style.setProperty(\"--_menu-bottom\", `${bottom}px`);\n const computedStyle = getComputedStyle(this);\n const isBottomCalc = style.getPropertyValue(\"--_menu-bottom\") === computedStyle.bottom;\n const realBottom = isBottomCalc ? bottom : parseFloat(computedStyle.bottom);\n const maxHeight = boundsRect.height - realBottom - parseFloat(computedStyle.marginBottom);\n this.style.setProperty(\"--_menu-max-height\", `${maxHeight}px`);\n};\n_resizeMenu = new WeakSet();\nresizeMenu_fn = function(animate) {\n const expandedMenuItem = this.querySelector(\n '[role=\"menuitem\"][aria-haspopup][aria-expanded=\"true\"]'\n );\n const expandedSubmenu = expandedMenuItem == null ? void 0 : expandedMenuItem.querySelector(\n '[role=\"menu\"]'\n );\n const { style } = __privateGet(this, _cssRule);\n if (!animate) {\n style.setProperty(\"--media-menu-transition-in\", \"none\");\n }\n if (expandedSubmenu) {\n const height = expandedSubmenu.offsetHeight;\n const width = Math.max(\n expandedSubmenu.offsetWidth,\n expandedMenuItem.offsetWidth\n );\n this.style.setProperty(\"min-width\", `${width}px`);\n this.style.setProperty(\"min-height\", `${height}px`);\n __privateMethod(this, _positionMenu, positionMenu_fn).call(this, width);\n } else {\n this.style.removeProperty(\"min-width\");\n this.style.removeProperty(\"min-height\");\n __privateMethod(this, _positionMenu, positionMenu_fn).call(this);\n }\n style.removeProperty(\"--media-menu-transition-in\");\n};\n_handleClick = new WeakSet();\nhandleClick_fn = function(event) {\n var _a;\n event.stopPropagation();\n if (event.composedPath().includes(__privateGet(this, _backButtonElement, backButtonElement_get))) {\n (_a = __privateGet(this, _previouslyFocused)) == null ? void 0 : _a.focus();\n this.hidden = true;\n return;\n }\n const item = __privateMethod(this, _getItem, getItem_fn).call(this, event);\n if (!item || item.hasAttribute(\"disabled\"))\n return;\n __privateMethod(this, _setTabItem, setTabItem_fn).call(this, item);\n this.handleSelect(event);\n};\n_backButtonElement = new WeakSet();\nbackButtonElement_get = function() {\n var _a;\n const headerSlot = this.shadowRoot.querySelector(\n 'slot[name=\"header\"]'\n );\n return (_a = headerSlot.assignedElements({ flatten: true })) == null ? void 0 : _a.find((el) => el.matches('button[part~=\"back\"]'));\n};\n_handleToggle = new WeakSet();\nhandleToggle_fn = function(event) {\n if (event.target === this)\n return;\n __privateMethod(this, _checkSubmenuHasExpanded, checkSubmenuHasExpanded_fn).call(this);\n const menuItemsWithSubmenu = Array.from(\n this.querySelectorAll('[role=\"menuitem\"][aria-haspopup]')\n );\n for (const item of menuItemsWithSubmenu) {\n if (item.invokeTargetElement == event.target)\n continue;\n if (event.newState == \"open\" && item.getAttribute(\"aria-expanded\") == \"true\" && !item.invokeTargetElement.hidden) {\n item.invokeTargetElement.dispatchEvent(\n new InvokeEvent({ relatedTarget: item })\n );\n }\n }\n for (const item of menuItemsWithSubmenu) {\n item.setAttribute(\"aria-expanded\", `${!item.submenuElement.hidden}`);\n }\n __privateMethod(this, _resizeMenu, resizeMenu_fn).call(this, true);\n};\n_checkSubmenuHasExpanded = new WeakSet();\ncheckSubmenuHasExpanded_fn = function() {\n const selector = '[role=\"menuitem\"] > [role=\"menu\"]:not([hidden])';\n const expandedMenuItem = this.querySelector(selector);\n this.container.classList.toggle(\"has-expanded\", !!expandedMenuItem);\n};\n_handleFocusOut = new WeakSet();\nhandleFocusOut_fn = function(event) {\n var _a;\n if (!containsComposedNode(this, event.relatedTarget)) {\n if (__privateGet(this, _isPopover)) {\n (_a = __privateGet(this, _previouslyFocused)) == null ? void 0 : _a.focus();\n }\n if (__privateGet(this, _invokerElement) && __privateGet(this, _invokerElement) !== event.relatedTarget && !this.hidden) {\n this.hidden = true;\n }\n }\n};\n_handleKeyDown = new WeakSet();\nhandleKeyDown_fn = function(event) {\n var _a, _b, _c, _d, _e;\n const { key, ctrlKey, altKey, metaKey } = event;\n if (ctrlKey || altKey || metaKey) {\n return;\n }\n if (!this.keysUsed.includes(key)) {\n return;\n }\n event.preventDefault();\n event.stopPropagation();\n if (key === \"Tab\") {\n if (__privateGet(this, _isPopover)) {\n this.hidden = true;\n return;\n }\n if (event.shiftKey) {\n (_b = (_a = this.previousElementSibling) == null ? void 0 : _a.focus) == null ? void 0 : _b.call(_a);\n } else {\n (_d = (_c = this.nextElementSibling) == null ? void 0 : _c.focus) == null ? void 0 : _d.call(_c);\n }\n this.blur();\n } else if (key === \"Escape\") {\n (_e = __privateGet(this, _previouslyFocused)) == null ? void 0 : _e.focus();\n if (__privateGet(this, _isPopover)) {\n this.hidden = true;\n }\n } else if (key === \"Enter\" || key === \" \") {\n this.handleSelect(event);\n } else {\n this.handleMove(event);\n }\n};\n_getItem = new WeakSet();\ngetItem_fn = function(event) {\n return event.composedPath().find((el) => {\n return [\"menuitemradio\", \"menuitemcheckbox\"].includes(\n el.role\n );\n });\n};\n_getTabItem = new WeakSet();\ngetTabItem_fn = function() {\n return this.items.find((item) => item.tabIndex === 0);\n};\n_setTabItem = new WeakSet();\nsetTabItem_fn = function(tabItem) {\n for (const item of this.items) {\n item.tabIndex = item === tabItem ? 0 : -1;\n }\n};\n_selectItem = new WeakSet();\nselectItem_fn = function(item, toggle) {\n const oldCheckedItems = [...this.checkedItems];\n if (item.type === \"radio\") {\n this.radioGroupItems.forEach((el) => el.checked = false);\n }\n if (toggle) {\n item.checked = !item.checked;\n } else {\n item.checked = true;\n }\n if (this.checkedItems.some((opt, i) => opt != oldCheckedItems[i])) {\n this.dispatchEvent(\n new Event(\"change\", { bubbles: true, composed: true })\n );\n }\n};\nMediaChromeMenu.shadowRootOptions = { mode: \"open\" };\nMediaChromeMenu.getTemplateHTML = getTemplateHTML;\nfunction isMenuItem(element) {\n return [\"menuitem\", \"menuitemradio\", \"menuitemcheckbox\"].includes(\n element == null ? void 0 : element.role\n );\n}\nfunction getBoundsElement(host) {\n var _a;\n return (_a = host.getAttribute(\"bounds\") ? closestComposedNode(host, `#${host.getAttribute(\"bounds\")}`) : getMediaController(host) || host.parentElement) != null ? _a : host;\n}\nif (!globalThis.customElements.get(\"media-chrome-menu\")) {\n globalThis.customElements.define(\"media-chrome-menu\", MediaChromeMenu);\n}\nvar media_chrome_menu_default = MediaChromeMenu;\nexport {\n Attributes,\n MediaChromeMenu,\n createIndicator,\n createMenuItem,\n media_chrome_menu_default as default\n};\n","var __accessCheck = (obj, member, msg) => {\n if (!member.has(obj))\n throw TypeError(\"Cannot \" + msg);\n};\nvar __privateGet = (obj, member, getter) => {\n __accessCheck(obj, member, \"read from private field\");\n return getter ? getter.call(obj) : member.get(obj);\n};\nvar __privateAdd = (obj, member, value) => {\n if (member.has(obj))\n throw TypeError(\"Cannot add the same private member more than once\");\n member instanceof WeakSet ? member.add(obj) : member.set(obj, value);\n};\nvar __privateSet = (obj, member, value, setter) => {\n __accessCheck(obj, member, \"write to private field\");\n setter ? setter.call(obj, value) : member.set(obj, value);\n return value;\n};\nvar __privateMethod = (obj, member, method) => {\n __accessCheck(obj, member, \"access private method\");\n return method;\n};\nvar _dirty, _ownerElement, _handleSlotChange, handleSlotChange_fn, _submenuConnected, submenuConnected_fn, _submenuDisconnected, submenuDisconnected_fn, _handleMenuItem, _handleKeyUp, handleKeyUp_fn, _handleKeyDown, handleKeyDown_fn, _reset, reset_fn;\nimport { globalThis, document } from \"../utils/server-safe-globals.js\";\nimport { InvokeEvent } from \"../utils/events.js\";\nimport {\n getDocumentOrShadowRoot,\n containsComposedNode,\n namedNodeMapToObject\n} from \"../utils/element-utils.js\";\nfunction getTemplateHTML(_attrs) {\n return (\n /*html*/\n `\n <style>\n :host {\n transition: var(--media-menu-item-transition,\n background .15s linear,\n opacity .2s ease-in-out\n );\n outline: var(--media-menu-item-outline, 0);\n outline-offset: var(--media-menu-item-outline-offset, -1px);\n cursor: var(--media-cursor, pointer);\n display: flex;\n align-items: center;\n align-self: stretch;\n justify-self: stretch;\n white-space: nowrap;\n white-space-collapse: collapse;\n text-wrap: nowrap;\n padding: .4em .8em .4em 1em;\n }\n\n :host(:focus-visible) {\n box-shadow: var(--media-menu-item-focus-shadow, inset 0 0 0 2px rgb(27 127 204 / .9));\n outline: var(--media-menu-item-hover-outline, 0);\n outline-offset: var(--media-menu-item-hover-outline-offset, var(--media-menu-item-outline-offset, -1px));\n }\n\n :host(:hover) {\n cursor: var(--media-cursor, pointer);\n background: var(--media-menu-item-hover-background, rgb(92 92 102 / .5));\n outline: var(--media-menu-item-hover-outline);\n outline-offset: var(--media-menu-item-hover-outline-offset, var(--media-menu-item-outline-offset, -1px));\n }\n\n :host([aria-checked=\"true\"]) {\n background: var(--media-menu-item-checked-background);\n }\n\n :host([hidden]) {\n display: none;\n }\n\n :host([disabled]) {\n pointer-events: none;\n color: rgba(255, 255, 255, .3);\n }\n\n slot:not([name]) {\n width: 100%;\n }\n\n slot:not([name=\"submenu\"]) {\n display: inline-flex;\n align-items: center;\n transition: inherit;\n opacity: var(--media-menu-item-opacity, 1);\n }\n\n slot[name=\"description\"] {\n justify-content: end;\n }\n\n slot[name=\"description\"] > span {\n display: inline-block;\n margin-inline: 1em .2em;\n max-width: var(--media-menu-item-description-max-width, 100px);\n text-overflow: ellipsis;\n overflow: hidden;\n font-size: .8em;\n font-weight: 400;\n text-align: right;\n position: relative;\n top: .04em;\n }\n\n slot[name=\"checked-indicator\"] {\n display: none;\n }\n\n :host(:is([role=\"menuitemradio\"],[role=\"menuitemcheckbox\"])) slot[name=\"checked-indicator\"] {\n display: var(--media-menu-item-checked-indicator-display, inline-block);\n }\n\n ${/* For all slotted icons in prefix and suffix. */\n \"\"}\n svg, img, ::slotted(svg), ::slotted(img) {\n height: var(--media-menu-item-icon-height, var(--media-control-height, 24px));\n fill: var(--media-icon-color, var(--media-primary-color, rgb(238 238 238)));\n display: block;\n }\n\n ${/* Only for indicator icons like checked-indicator or captions-indicator. */\n \"\"}\n [part~=\"indicator\"],\n ::slotted([part~=\"indicator\"]) {\n fill: var(--media-menu-item-indicator-fill,\n var(--media-icon-color, var(--media-primary-color, rgb(238 238 238))));\n height: var(--media-menu-item-indicator-height, 1.25em);\n margin-right: .5ch;\n }\n\n [part~=\"checked-indicator\"] {\n visibility: hidden;\n }\n\n :host([aria-checked=\"true\"]) [part~=\"checked-indicator\"] {\n visibility: visible;\n }\n </style>\n <slot name=\"checked-indicator\">\n <svg aria-hidden=\"true\" viewBox=\"0 1 24 24\" part=\"checked-indicator indicator\">\n <path d=\"m10 15.17 9.193-9.191 1.414 1.414-10.606 10.606-6.364-6.364 1.414-1.414 4.95 4.95Z\"/>\n </svg>\n </slot>\n <slot name=\"prefix\"></slot>\n <slot></slot>\n <slot name=\"description\"></slot>\n <slot name=\"suffix\">\n ${this.getSuffixSlotInnerHTML(_attrs)}\n </slot>\n <slot name=\"submenu\"></slot>\n `\n );\n}\nfunction getSuffixSlotInnerHTML(_attrs) {\n return \"\";\n}\nconst Attributes = {\n TYPE: \"type\",\n VALUE: \"value\",\n CHECKED: \"checked\",\n DISABLED: \"disabled\"\n};\nclass MediaChromeMenuItem extends globalThis.HTMLElement {\n constructor() {\n super();\n __privateAdd(this, _handleSlotChange);\n __privateAdd(this, _submenuConnected);\n __privateAdd(this, _submenuDisconnected);\n __privateAdd(this, _handleKeyUp);\n __privateAdd(this, _handleKeyDown);\n __privateAdd(this, _reset);\n __privateAdd(this, _dirty, false);\n __privateAdd(this, _ownerElement, void 0);\n /**\n * If there is a slotted submenu the fallback content of the description slot\n * is populated with the text of the first checked item.\n */\n __privateAdd(this, _handleMenuItem, () => {\n var _a, _b;\n if (this.submenuElement.items) {\n this.setAttribute(\"submenusize\", `${this.submenuElement.items.length}`);\n }\n const descriptionSlot = this.shadowRoot.querySelector(\n 'slot[name=\"description\"]'\n );\n const checkedItem = (_a = this.submenuElement.checkedItems) == null ? void 0 : _a[0];\n const description = (_b = checkedItem == null ? void 0 : checkedItem.dataset.description) != null ? _b : checkedItem == null ? void 0 : checkedItem.text;\n const span = document.createElement(\"span\");\n span.textContent = description != null ? description : \"\";\n descriptionSlot.replaceChildren(span);\n });\n if (!this.shadowRoot) {\n this.attachShadow(this.constructor.shadowRootOptions);\n const attrs = namedNodeMapToObject(this.attributes);\n this.shadowRoot.innerHTML = this.constructor.getTemplateHTML(attrs);\n }\n this.shadowRoot.addEventListener(\"slotchange\", this);\n }\n static get observedAttributes() {\n return [\n Attributes.TYPE,\n Attributes.DISABLED,\n Attributes.CHECKED,\n Attributes.VALUE\n ];\n }\n enable() {\n if (!this.hasAttribute(\"tabindex\")) {\n this.setAttribute(\"tabindex\", \"-1\");\n }\n if (isCheckable(this) && !this.hasAttribute(\"aria-checked\")) {\n this.setAttribute(\"aria-checked\", \"false\");\n }\n this.addEventListener(\"click\", this);\n this.addEventListener(\"keydown\", this);\n }\n disable() {\n this.removeAttribute(\"tabindex\");\n this.removeEventListener(\"click\", this);\n this.removeEventListener(\"keydown\", this);\n this.removeEventListener(\"keyup\", this);\n }\n handleEvent(event) {\n switch (event.type) {\n case \"slotchange\":\n __privateMethod(this, _handleSlotChange, handleSlotChange_fn).call(this, event);\n break;\n case \"click\":\n this.handleClick(event);\n break;\n case \"keydown\":\n __privateMethod(this, _handleKeyDown, handleKeyDown_fn).call(this, event);\n break;\n case \"keyup\":\n __privateMethod(this, _handleKeyUp, handleKeyUp_fn).call(this, event);\n break;\n }\n }\n attributeChangedCallback(attrName, oldValue, newValue) {\n if (attrName === Attributes.CHECKED && isCheckable(this) && !__privateGet(this, _dirty)) {\n this.setAttribute(\"aria-checked\", newValue != null ? \"true\" : \"false\");\n } else if (attrName === Attributes.TYPE && newValue !== oldValue) {\n this.role = \"menuitem\" + newValue;\n } else if (attrName === Attributes.DISABLED && newValue !== oldValue) {\n if (newValue == null) {\n this.enable();\n } else {\n this.disable();\n }\n }\n }\n connectedCallback() {\n if (!this.hasAttribute(Attributes.DISABLED)) {\n this.enable();\n }\n this.role = \"menuitem\" + this.type;\n __privateSet(this, _ownerElement, closestMenuItemsContainer(this, this.parentNode));\n __privateMethod(this, _reset, reset_fn).call(this);\n if (this.submenuElement) {\n __privateMethod(this, _submenuConnected, submenuConnected_fn).call(this);\n }\n }\n disconnectedCallback() {\n this.disable();\n __privateMethod(this, _reset, reset_fn).call(this);\n __privateSet(this, _ownerElement, null);\n }\n get invokeTarget() {\n return this.getAttribute(\"invoketarget\");\n }\n set invokeTarget(value) {\n this.setAttribute(\"invoketarget\", `${value}`);\n }\n /**\n * Returns the element with the id specified by the `invoketarget` attribute\n * or the slotted submenu element.\n */\n get invokeTargetElement() {\n var _a;\n if (this.invokeTarget) {\n return (_a = getDocumentOrShadowRoot(this)) == null ? void 0 : _a.querySelector(\n `#${this.invokeTarget}`\n );\n }\n return this.submenuElement;\n }\n /**\n * Returns the slotted submenu element.\n */\n get submenuElement() {\n const submenuSlot = this.shadowRoot.querySelector(\n 'slot[name=\"submenu\"]'\n );\n return submenuSlot.assignedElements({\n flatten: true\n })[0];\n }\n get type() {\n var _a;\n return (_a = this.getAttribute(Attributes.TYPE)) != null ? _a : \"\";\n }\n set type(val) {\n this.setAttribute(Attributes.TYPE, `${val}`);\n }\n get value() {\n var _a;\n return (_a = this.getAttribute(Attributes.VALUE)) != null ? _a : this.text;\n }\n set value(val) {\n this.setAttribute(Attributes.VALUE, val);\n }\n get text() {\n var _a;\n return ((_a = this.textContent) != null ? _a : \"\").trim();\n }\n get checked() {\n if (!isCheckable(this))\n return void 0;\n return this.getAttribute(\"aria-checked\") === \"true\";\n }\n set checked(value) {\n if (!isCheckable(this))\n return;\n __privateSet(this, _dirty, true);\n this.setAttribute(\"aria-checked\", value ? \"true\" : \"false\");\n if (value) {\n this.part.add(\"checked\");\n } else {\n this.part.remove(\"checked\");\n }\n }\n handleClick(event) {\n if (isCheckable(this))\n return;\n if (this.invokeTargetElement && containsComposedNode(this, event.target)) {\n this.invokeTargetElement.dispatchEvent(\n new InvokeEvent({ relatedTarget: this })\n );\n }\n }\n get keysUsed() {\n return [\"Enter\", \" \"];\n }\n}\n_dirty = new WeakMap();\n_ownerElement = new WeakMap();\n_handleSlotChange = new WeakSet();\nhandleSlotChange_fn = function(event) {\n const slot = event.target;\n const isDefaultSlot = !(slot == null ? void 0 : slot.name);\n if (isDefaultSlot) {\n for (const node of slot.assignedNodes({ flatten: true })) {\n if (node instanceof Text && node.textContent.trim() === \"\") {\n node.remove();\n }\n }\n }\n if (slot.name === \"submenu\") {\n if (this.submenuElement) {\n __privateMethod(this, _submenuConnected, submenuConnected_fn).call(this);\n } else {\n __privateMethod(this, _submenuDisconnected, submenuDisconnected_fn).call(this);\n }\n }\n};\n_submenuConnected = new WeakSet();\nsubmenuConnected_fn = async function() {\n this.setAttribute(\"aria-haspopup\", \"menu\");\n this.setAttribute(\"aria-expanded\", `${!this.submenuElement.hidden}`);\n this.submenuElement.addEventListener(\"change\", __privateGet(this, _handleMenuItem));\n this.submenuElement.addEventListener(\"addmenuitem\", __privateGet(this, _handleMenuItem));\n this.submenuElement.addEventListener(\n \"removemenuitem\",\n __privateGet(this, _handleMenuItem)\n );\n __privateGet(this, _handleMenuItem).call(this);\n};\n_submenuDisconnected = new WeakSet();\nsubmenuDisconnected_fn = function() {\n this.removeAttribute(\"aria-haspopup\");\n this.removeAttribute(\"aria-expanded\");\n this.submenuElement.removeEventListener(\"change\", __privateGet(this, _handleMenuItem));\n this.submenuElement.removeEventListener(\n \"addmenuitem\",\n __privateGet(this, _handleMenuItem)\n );\n this.submenuElement.removeEventListener(\n \"removemenuitem\",\n __privateGet(this, _handleMenuItem)\n );\n __privateGet(this, _handleMenuItem).call(this);\n};\n_handleMenuItem = new WeakMap();\n_handleKeyUp = new WeakSet();\nhandleKeyUp_fn = function(event) {\n const { key } = event;\n if (!this.keysUsed.includes(key)) {\n this.removeEventListener(\"keyup\", __privateMethod(this, _handleKeyUp, handleKeyUp_fn));\n return;\n }\n this.handleClick(event);\n};\n_handleKeyDown = new WeakSet();\nhandleKeyDown_fn = function(event) {\n const { metaKey, altKey, key } = event;\n if (metaKey || altKey || !this.keysUsed.includes(key)) {\n this.removeEventListener(\"keyup\", __privateMethod(this, _handleKeyUp, handleKeyUp_fn));\n return;\n }\n this.addEventListener(\"keyup\", __privateMethod(this, _handleKeyUp, handleKeyUp_fn), { once: true });\n};\n_reset = new WeakSet();\nreset_fn = function() {\n var _a;\n const items = (_a = __privateGet(this, _ownerElement)) == null ? void 0 : _a.radioGroupItems;\n if (!items)\n return;\n let checkedItem = items.filter((item) => item.getAttribute(\"aria-checked\") === \"true\").pop();\n if (!checkedItem)\n checkedItem = items[0];\n for (const item of items) {\n item.setAttribute(\"aria-checked\", \"false\");\n }\n checkedItem == null ? void 0 : checkedItem.setAttribute(\"aria-checked\", \"true\");\n};\nMediaChromeMenuItem.shadowRootOptions = { mode: \"open\" };\nMediaChromeMenuItem.getTemplateHTML = getTemplateHTML;\nMediaChromeMenuItem.getSuffixSlotInnerHTML = getSuffixSlotInnerHTML;\nfunction isCheckable(item) {\n return item.type === \"radio\" || item.type === \"checkbox\";\n}\nfunction closestMenuItemsContainer(childNode, parentNode) {\n if (!childNode)\n return null;\n const { host } = childNode.getRootNode();\n if (!parentNode && host)\n return closestMenuItemsContainer(childNode, host);\n if (parentNode == null ? void 0 : parentNode.items)\n return parentNode;\n return closestMenuItemsContainer(parentNode, parentNode == null ? void 0 : parentNode.parentNode);\n}\nif (!globalThis.customElements.get(\"media-chrome-menu-item\")) {\n globalThis.customElements.define(\n \"media-chrome-menu-item\",\n MediaChromeMenuItem\n );\n}\nvar media_chrome_menu_item_default = MediaChromeMenuItem;\nexport {\n Attributes,\n MediaChromeMenuItem,\n media_chrome_menu_item_default as default\n};\n","import { globalThis } from \"../utils/server-safe-globals.js\";\nimport { MediaChromeMenu } from \"./media-chrome-menu.js\";\nimport { getMediaController } from \"../utils/element-utils.js\";\nfunction getTemplateHTML(_attrs) {\n return (\n /*html*/\n `\n ${MediaChromeMenu.getTemplateHTML(_attrs)}\n <style>\n :host {\n --_menu-bg: rgb(20 20 30 / .8);\n background: var(--media-settings-menu-background,\n var(--media-menu-background,\n var(--media-control-background,\n var(--media-secondary-color, var(--_menu-bg)))));\n min-width: var(--media-settings-menu-min-width, 170px);\n border-radius: 2px 2px 0 0;\n overflow: hidden;\n }\n\n @-moz-document url-prefix() {\n :host{\n --_menu-bg: rgb(20 20 30);\n }\n }\n\n :host([role=\"menu\"]) {\n ${/* Bottom fix setting menu items for animation when the height expands. */\n \"\"}\n justify-content: end;\n }\n\n slot:not([name]) {\n justify-content: var(--media-settings-menu-justify-content);\n flex-direction: var(--media-settings-menu-flex-direction, column);\n overflow: visible;\n }\n\n #container.has-expanded {\n --media-settings-menu-item-opacity: 0;\n }\n </style>\n `\n );\n}\nclass MediaSettingsMenu extends MediaChromeMenu {\n /**\n * Returns the anchor element when it is a floating menu.\n */\n get anchorElement() {\n if (this.anchor !== \"auto\")\n return super.anchorElement;\n return getMediaController(this).querySelector(\n \"media-settings-menu-button\"\n );\n }\n}\nMediaSettingsMenu.getTemplateHTML = getTemplateHTML;\nif (!globalThis.customElements.get(\"media-settings-menu\")) {\n globalThis.customElements.define(\"media-settings-menu\", MediaSettingsMenu);\n}\nvar media_settings_menu_default = MediaSettingsMenu;\nexport {\n MediaSettingsMenu,\n media_settings_menu_default as default\n};\n","import { globalThis } from \"../utils/server-safe-globals.js\";\nimport { MediaChromeMenuItem } from \"./media-chrome-menu-item.js\";\nfunction getTemplateHTML(_attrs) {\n return (\n /*html*/\n `\n ${MediaChromeMenuItem.getTemplateHTML.call(this, _attrs)}\n <style>\n slot:not([name=\"submenu\"]) {\n opacity: var(--media-settings-menu-item-opacity, var(--media-menu-item-opacity));\n }\n\n :host([aria-expanded=\"true\"]:hover) {\n background: transparent;\n }\n </style>\n `\n );\n}\nfunction getSuffixSlotInnerHTML(_attrs) {\n return (\n /*html*/\n `\n <svg aria-hidden=\"true\" viewBox=\"0 0 20 24\">\n <path d=\"m8.12 17.585-.742-.669 4.2-4.665-4.2-4.666.743-.669 4.803 5.335-4.803 5.334Z\"/>\n </svg>\n `\n );\n}\nclass MediaSettingsMenuItem extends MediaChromeMenuItem {\n}\nMediaSettingsMenuItem.shadowRootOptions = { mode: \"open\" };\nMediaSettingsMenuItem.getTemplateHTML = getTemplateHTML;\nMediaSettingsMenuItem.getSuffixSlotInnerHTML = getSuffixSlotInnerHTML;\nif (!globalThis.customElements.get(\"media-settings-menu-item\")) {\n globalThis.customElements.define(\n \"media-settings-menu-item\",\n MediaSettingsMenuItem\n );\n}\nvar media_settings_menu_item_default = MediaSettingsMenuItem;\nexport {\n MediaSettingsMenuItem,\n media_settings_menu_item_default as default\n};\n","import { MediaChromeButton } from \"../media-chrome-button.js\";\nimport { globalThis } from \"../utils/server-safe-globals.js\";\nimport { InvokeEvent } from \"../utils/events.js\";\nimport { getDocumentOrShadowRoot } from \"../utils/element-utils.js\";\nclass MediaChromeMenuButton extends MediaChromeButton {\n connectedCallback() {\n super.connectedCallback();\n if (this.invokeTargetElement) {\n this.setAttribute(\"aria-haspopup\", \"menu\");\n }\n }\n get invokeTarget() {\n return this.getAttribute(\"invoketarget\");\n }\n set invokeTarget(value) {\n this.setAttribute(\"invoketarget\", `${value}`);\n }\n /**\n * Returns the element with the id specified by the `invoketarget` attribute.\n * @return {HTMLElement | null}\n */\n get invokeTargetElement() {\n var _a;\n if (this.invokeTarget) {\n return (_a = getDocumentOrShadowRoot(this)) == null ? void 0 : _a.querySelector(\n `#${this.invokeTarget}`\n );\n }\n return null;\n }\n handleClick() {\n var _a;\n (_a = this.invokeTargetElement) == null ? void 0 : _a.dispatchEvent(\n new InvokeEvent({ relatedTarget: this })\n );\n }\n}\nif (!globalThis.customElements.get(\"media-chrome-menu-button\")) {\n globalThis.customElements.define(\n \"media-chrome-menu-button\",\n MediaChromeMenuButton\n );\n}\nvar media_chrome_menu_button_default = MediaChromeMenuButton;\nexport {\n MediaChromeMenuButton,\n media_chrome_menu_button_default as default\n};\n","import { MediaChromeMenuButton } from \"./media-chrome-menu-button.js\";\nimport { globalThis } from \"../utils/server-safe-globals.js\";\nimport { getMediaController } from \"../utils/element-utils.js\";\nimport { t } from \"../utils/i18n.js\";\nfunction getSlotTemplateHTML() {\n return (\n /*html*/\n `\n <style>\n :host([aria-expanded=\"true\"]) slot[name=tooltip] {\n display: none;\n }\n </style>\n <slot name=\"icon\">\n <svg aria-hidden=\"true\" viewBox=\"0 0 24 24\">\n <path d=\"M4.5 14.5a2.5 2.5 0 1 0 0-5 2.5 2.5 0 0 0 0 5Zm7.5 0a2.5 2.5 0 1 0 0-5 2.5 2.5 0 0 0 0 5Zm7.5 0a2.5 2.5 0 1 0 0-5 2.5 2.5 0 0 0 0 5Z\"/>\n </svg>\n </slot>\n `\n );\n}\nfunction getTooltipContentHTML() {\n return t(\"Settings\");\n}\nclass MediaSettingsMenuButton extends MediaChromeMenuButton {\n static get observedAttributes() {\n return [...super.observedAttributes, \"target\"];\n }\n connectedCallback() {\n super.connectedCallback();\n this.setAttribute(\"aria-label\", t(\"settings\"));\n }\n /**\n * Returns the element with the id specified by the `invoketarget` attribute.\n * @return {HTMLElement | null}\n */\n get invokeTargetElement() {\n if (this.invokeTarget != void 0)\n return super.invokeTargetElement;\n return getMediaController(this).querySelector(\"media-settings-menu\");\n }\n}\nMediaSettingsMenuButton.getSlotTemplateHTML = getSlotTemplateHTML;\nMediaSettingsMenuButton.getTooltipContentHTML = getTooltipContentHTML;\nif (!globalThis.customElements.get(\"media-settings-menu-button\")) {\n globalThis.customElements.define(\n \"media-settings-menu-button\",\n MediaSettingsMenuButton\n );\n}\nvar media_settings_menu_button_default = MediaSettingsMenuButton;\nexport {\n MediaSettingsMenuButton,\n media_settings_menu_button_default as default\n};\n","var __accessCheck = (obj, member, msg) => {\n if (!member.has(obj))\n throw TypeError(\"Cannot \" + msg);\n};\nvar __privateGet = (obj, member, getter) => {\n __accessCheck(obj, member, \"read from private field\");\n return getter ? getter.call(obj) : member.get(obj);\n};\nvar __privateAdd = (obj, member, value) => {\n if (member.has(obj))\n throw TypeError(\"Cannot add the same private member more than once\");\n member instanceof WeakSet ? member.add(obj) : member.set(obj, value);\n};\nvar __privateSet = (obj, member, value, setter) => {\n __accessCheck(obj, member, \"write to private field\");\n setter ? setter.call(obj, value) : member.set(obj, value);\n return value;\n};\nvar __privateMethod = (obj, member, method) => {\n __accessCheck(obj, member, \"access private method\");\n return method;\n};\nvar _audioTrackList, _prevState, _render, render_fn, _onChange, onChange_fn;\nimport { globalThis } from \"../utils/server-safe-globals.js\";\nimport { MediaUIAttributes, MediaUIEvents } from \"../constants.js\";\nimport { parseAudioTrackList } from \"../utils/utils.js\";\nimport {\n MediaChromeMenu,\n createMenuItem,\n createIndicator\n} from \"./media-chrome-menu.js\";\nimport {\n getStringAttr,\n setStringAttr,\n getMediaController\n} from \"../utils/element-utils.js\";\nclass MediaAudioTrackMenu extends MediaChromeMenu {\n constructor() {\n super(...arguments);\n __privateAdd(this, _render);\n __privateAdd(this, _onChange);\n __privateAdd(this, _audioTrackList, []);\n __privateAdd(this, _prevState, void 0);\n }\n static get observedAttributes() {\n return [\n ...super.observedAttributes,\n MediaUIAttributes.MEDIA_AUDIO_TRACK_LIST,\n MediaUIAttributes.MEDIA_AUDIO_TRACK_ENABLED,\n MediaUIAttributes.MEDIA_AUDIO_TRACK_UNAVAILABLE\n ];\n }\n attributeChangedCallback(attrName, oldValue, newValue) {\n super.attributeChangedCallback(attrName, oldValue, newValue);\n if (attrName === MediaUIAttributes.MEDIA_AUDIO_TRACK_ENABLED && oldValue !== newValue) {\n this.value = newValue;\n } else if (attrName === MediaUIAttributes.MEDIA_AUDIO_TRACK_LIST && oldValue !== newValue) {\n __privateSet(this, _audioTrackList, parseAudioTrackList(newValue != null ? newValue : \"\"));\n __privateMethod(this, _render, render_fn).call(this);\n }\n }\n connectedCallback() {\n super.connectedCallback();\n this.addEventListener(\"change\", __privateMethod(this, _onChange, onChange_fn));\n }\n disconnectedCallback() {\n super.disconnectedCallback();\n this.removeEventListener(\"change\", __privateMethod(this, _onChange, onChange_fn));\n }\n /**\n * Returns the anchor element when it is a floating menu.\n */\n get anchorElement() {\n var _a;\n if (this.anchor !== \"auto\")\n return super.anchorElement;\n return (_a = getMediaController(this)) == null ? void 0 : _a.querySelector(\n \"media-audio-track-menu-button\"\n );\n }\n get mediaAudioTrackList() {\n return __privateGet(this, _audioTrackList);\n }\n set mediaAudioTrackList(list) {\n __privateSet(this, _audioTrackList, list);\n __privateMethod(this, _render, render_fn).call(this);\n }\n /**\n * Get enabled audio track id.\n */\n get mediaAudioTrackEnabled() {\n var _a;\n return (_a = getStringAttr(this, MediaUIAttributes.MEDIA_AUDIO_TRACK_ENABLED)) != null ? _a : \"\";\n }\n set mediaAudioTrackEnabled(id) {\n setStringAttr(this, MediaUIAttributes.MEDIA_AUDIO_TRACK_ENABLED, id);\n }\n}\n_audioTrackList = new WeakMap();\n_prevState = new WeakMap();\n_render = new WeakSet();\nrender_fn = function() {\n if (__privateGet(this, _prevState) === JSON.stringify(this.mediaAudioTrackList))\n return;\n __privateSet(this, _prevState, JSON.stringify(this.mediaAudioTrackList));\n const audioTrackList = this.mediaAudioTrackList;\n this.defaultSlot.textContent = \"\";\n audioTrackList.sort((a, b) => a.id.localeCompare(b.id, void 0, { numeric: true }));\n for (const audioTrack of audioTrackList) {\n const text = this.formatMenuItemText(audioTrack.label, audioTrack);\n const item = createMenuItem({\n type: \"radio\",\n text,\n value: `${audioTrack.id}`,\n checked: audioTrack.enabled\n });\n item.prepend(createIndicator(this, \"checked-indicator\"));\n this.defaultSlot.append(item);\n }\n};\n_onChange = new WeakSet();\nonChange_fn = function() {\n if (this.value == null)\n return;\n const event = new globalThis.CustomEvent(\n MediaUIEvents.MEDIA_AUDIO_TRACK_REQUEST,\n {\n composed: true,\n bubbles: true,\n detail: this.value\n }\n );\n this.dispatchEvent(event);\n};\nif (!globalThis.customElements.get(\"media-audio-track-menu\")) {\n globalThis.customElements.define(\n \"media-audio-track-menu\",\n MediaAudioTrackMenu\n );\n}\nvar media_audio_track_menu_default = MediaAudioTrackMenu;\nexport {\n MediaAudioTrackMenu,\n media_audio_track_menu_default as default\n};\n","import { MediaUIAttributes } from \"../constants.js\";\nimport { MediaChromeMenuButton } from \"./media-chrome-menu-button.js\";\nimport { globalThis } from \"../utils/server-safe-globals.js\";\nimport {\n getStringAttr,\n setStringAttr,\n getMediaController\n} from \"../utils/element-utils.js\";\nimport { t } from \"../utils/i18n.js\";\nconst audioTrackIcon = (\n /*html*/\n `<svg aria-hidden=\"true\" viewBox=\"0 0 24 24\">\n <path d=\"M11 17H9.5V7H11v10Zm-3-3H6.5v-4H8v4Zm6-5h-1.5v6H14V9Zm3 7h-1.5V8H17v8Z\"/>\n <path d=\"M22 12c0 5.523-4.477 10-10 10S2 17.523 2 12 6.477 2 12 2s10 4.477 10 10Zm-2 0a8 8 0 1 0-16 0 8 8 0 0 0 16 0Z\"/>\n</svg>`\n);\nfunction getSlotTemplateHTML() {\n return (\n /*html*/\n `\n <style>\n :host([aria-expanded=\"true\"]) slot[name=tooltip] {\n display: none;\n }\n </style>\n <slot name=\"icon\">${audioTrackIcon}</slot>\n `\n );\n}\nfunction getTooltipContentHTML() {\n return t(\"Audio\");\n}\nconst updateAriaLabel = (el) => {\n const label = t(\"Audio\");\n el.setAttribute(\"aria-label\", label);\n};\nclass MediaAudioTrackMenuButton extends MediaChromeMenuButton {\n static get observedAttributes() {\n return [\n ...super.observedAttributes,\n MediaUIAttributes.MEDIA_AUDIO_TRACK_ENABLED,\n MediaUIAttributes.MEDIA_AUDIO_TRACK_UNAVAILABLE\n ];\n }\n connectedCallback() {\n super.connectedCallback();\n updateAriaLabel(this);\n }\n attributeChangedCallback(attrName, _oldValue, newValue) {\n super.attributeChangedCallback(attrName, _oldValue, newValue);\n if (attrName === MediaUIAttributes.MEDIA_LANG) {\n updateAriaLabel(this);\n }\n }\n /**\n * Returns the element with the id specified by the `invoketarget` attribute.\n * @return {HTMLElement | null}\n */\n get invokeTargetElement() {\n var _a;\n if (this.invokeTarget != void 0)\n return super.invokeTargetElement;\n return (_a = getMediaController(this)) == null ? void 0 : _a.querySelector(\"media-audio-track-menu\");\n }\n /**\n * Get enabled audio track id.\n * @return {string}\n */\n get mediaAudioTrackEnabled() {\n var _a;\n return (_a = getStringAttr(this, MediaUIAttributes.MEDIA_AUDIO_TRACK_ENABLED)) != null ? _a : \"\";\n }\n set mediaAudioTrackEnabled(id) {\n setStringAttr(this, MediaUIAttributes.MEDIA_AUDIO_TRACK_ENABLED, id);\n }\n}\nMediaAudioTrackMenuButton.getSlotTemplateHTML = getSlotTemplateHTML;\nMediaAudioTrackMenuButton.getTooltipContentHTML = getTooltipContentHTML;\nif (!globalThis.customElements.get(\"media-audio-track-menu-button\")) {\n globalThis.customElements.define(\n \"media-audio-track-menu-button\",\n MediaAudioTrackMenuButton\n );\n}\nvar media_audio_track_menu_button_default = MediaAudioTrackMenuButton;\nexport {\n MediaAudioTrackMenuButton,\n media_audio_track_menu_button_default as default\n};\n","var __accessCheck = (obj, member, msg) => {\n if (!member.has(obj))\n throw TypeError(\"Cannot \" + msg);\n};\nvar __privateGet = (obj, member, getter) => {\n __accessCheck(obj, member, \"read from private field\");\n return getter ? getter.call(obj) : member.get(obj);\n};\nvar __privateAdd = (obj, member, value) => {\n if (member.has(obj))\n throw TypeError(\"Cannot add the same private member more than once\");\n member instanceof WeakSet ? member.add(obj) : member.set(obj, value);\n};\nvar __privateSet = (obj, member, value, setter) => {\n __accessCheck(obj, member, \"write to private field\");\n setter ? setter.call(obj, value) : member.set(obj, value);\n return value;\n};\nvar __privateMethod = (obj, member, method) => {\n __accessCheck(obj, member, \"access private method\");\n return method;\n};\nvar _prevState, _render, render_fn, _onChange, onChange_fn;\nimport { globalThis } from \"../utils/server-safe-globals.js\";\nimport { MediaUIAttributes, MediaUIEvents } from \"../constants.js\";\nimport { getMediaController } from \"../utils/element-utils.js\";\nimport {\n MediaChromeMenu,\n createMenuItem,\n createIndicator\n} from \"./media-chrome-menu.js\";\nimport {\n parseTextTracksStr,\n stringifyTextTrackList,\n formatTextTrackObj\n} from \"../utils/captions.js\";\nimport { t } from \"../utils/i18n.js\";\nconst ccIcon = (\n /*html*/\n `\n <svg aria-hidden=\"true\" viewBox=\"0 0 26 24\" part=\"captions-indicator indicator\">\n <path d=\"M22.83 5.68a2.58 2.58 0 0 0-2.3-2.5c-3.62-.24-11.44-.24-15.06 0a2.58 2.58 0 0 0-2.3 2.5c-.23 4.21-.23 8.43 0 12.64a2.58 2.58 0 0 0 2.3 2.5c3.62.24 11.44.24 15.06 0a2.58 2.58 0 0 0 2.3-2.5c.23-4.21.23-8.43 0-12.64Zm-11.39 9.45a3.07 3.07 0 0 1-1.91.57 3.06 3.06 0 0 1-2.34-1 3.75 3.75 0 0 1-.92-2.67 3.92 3.92 0 0 1 .92-2.77 3.18 3.18 0 0 1 2.43-1 2.94 2.94 0 0 1 2.13.78c.364.359.62.813.74 1.31l-1.43.35a1.49 1.49 0 0 0-1.51-1.17 1.61 1.61 0 0 0-1.29.58 2.79 2.79 0 0 0-.5 1.89 3 3 0 0 0 .49 1.93 1.61 1.61 0 0 0 1.27.58 1.48 1.48 0 0 0 1-.37 2.1 2.1 0 0 0 .59-1.14l1.4.44a3.23 3.23 0 0 1-1.07 1.69Zm7.22 0a3.07 3.07 0 0 1-1.91.57 3.06 3.06 0 0 1-2.34-1 3.75 3.75 0 0 1-.92-2.67 3.88 3.88 0 0 1 .93-2.77 3.14 3.14 0 0 1 2.42-1 3 3 0 0 1 2.16.82 2.8 2.8 0 0 1 .73 1.31l-1.43.35a1.49 1.49 0 0 0-1.51-1.21 1.61 1.61 0 0 0-1.29.58A2.79 2.79 0 0 0 15 12a3 3 0 0 0 .49 1.93 1.61 1.61 0 0 0 1.27.58 1.44 1.44 0 0 0 1-.37 2.1 2.1 0 0 0 .6-1.15l1.4.44a3.17 3.17 0 0 1-1.1 1.7Z\"/>\n </svg>`\n);\nfunction getTemplateHTML(_attrs) {\n return (\n /*html*/\n `\n ${MediaChromeMenu.getTemplateHTML(_attrs)}\n <slot name=\"captions-indicator\" hidden>${ccIcon}</slot>\n `\n );\n}\nclass MediaCaptionsMenu extends MediaChromeMenu {\n constructor() {\n super(...arguments);\n __privateAdd(this, _render);\n __privateAdd(this, _onChange);\n __privateAdd(this, _prevState, void 0);\n }\n static get observedAttributes() {\n return [\n ...super.observedAttributes,\n MediaUIAttributes.MEDIA_SUBTITLES_LIST,\n MediaUIAttributes.MEDIA_SUBTITLES_SHOWING\n ];\n }\n attributeChangedCallback(attrName, oldValue, newValue) {\n super.attributeChangedCallback(attrName, oldValue, newValue);\n if (attrName === MediaUIAttributes.MEDIA_SUBTITLES_LIST && oldValue !== newValue) {\n __privateMethod(this, _render, render_fn).call(this);\n } else if (attrName === MediaUIAttributes.MEDIA_SUBTITLES_SHOWING && oldValue !== newValue) {\n this.value = newValue || \"\";\n __privateMethod(this, _render, render_fn).call(this);\n }\n }\n connectedCallback() {\n super.connectedCallback();\n this.addEventListener(\"change\", __privateMethod(this, _onChange, onChange_fn));\n }\n disconnectedCallback() {\n super.disconnectedCallback();\n this.removeEventListener(\"change\", __privateMethod(this, _onChange, onChange_fn));\n }\n /**\n * Returns the anchor element when it is a floating menu.\n */\n get anchorElement() {\n if (this.anchor !== \"auto\")\n return super.anchorElement;\n return getMediaController(this).querySelector(\"media-captions-menu-button\");\n }\n /**\n * @type {Array<object>} An array of TextTrack-like objects.\n * Objects must have the properties: kind, language, and label.\n */\n get mediaSubtitlesList() {\n return getSubtitlesListAttr(this, MediaUIAttributes.MEDIA_SUBTITLES_LIST);\n }\n set mediaSubtitlesList(list) {\n setSubtitlesListAttr(this, MediaUIAttributes.MEDIA_SUBTITLES_LIST, list);\n }\n /**\n * An array of TextTrack-like objects.\n * Objects must have the properties: kind, language, and label.\n */\n get mediaSubtitlesShowing() {\n return getSubtitlesListAttr(\n this,\n MediaUIAttributes.MEDIA_SUBTITLES_SHOWING\n );\n }\n set mediaSubtitlesShowing(list) {\n setSubtitlesListAttr(this, MediaUIAttributes.MEDIA_SUBTITLES_SHOWING, list);\n }\n}\n_prevState = new WeakMap();\n_render = new WeakSet();\nrender_fn = function() {\n var _a;\n const hasListChanged = __privateGet(this, _prevState) !== JSON.stringify(this.mediaSubtitlesList);\n const hasShowingChanged = this.value !== this.getAttribute(MediaUIAttributes.MEDIA_SUBTITLES_SHOWING);\n if (!hasListChanged && !hasShowingChanged)\n return;\n __privateSet(this, _prevState, JSON.stringify(this.mediaSubtitlesList));\n this.defaultSlot.textContent = \"\";\n const isOff = !this.value;\n const item = createMenuItem({\n type: \"radio\",\n text: this.formatMenuItemText(t(\"Off\")),\n value: \"off\",\n checked: isOff\n });\n item.prepend(createIndicator(this, \"checked-indicator\"));\n this.defaultSlot.append(item);\n const subtitlesList = this.mediaSubtitlesList;\n for (const subs of subtitlesList) {\n const item2 = createMenuItem({\n type: \"radio\",\n text: this.formatMenuItemText(subs.label, subs),\n value: formatTextTrackObj(subs),\n checked: this.value == formatTextTrackObj(subs)\n });\n item2.prepend(createIndicator(this, \"checked-indicator\"));\n const type = (_a = subs.kind) != null ? _a : \"subs\";\n if (type === \"captions\") {\n item2.append(createIndicator(this, \"captions-indicator\"));\n }\n this.defaultSlot.append(item2);\n }\n};\n_onChange = new WeakSet();\nonChange_fn = function() {\n const showingSubs = this.mediaSubtitlesShowing;\n const showingSubsStr = this.getAttribute(\n MediaUIAttributes.MEDIA_SUBTITLES_SHOWING\n );\n const localStateChange = this.value !== showingSubsStr;\n if ((showingSubs == null ? void 0 : showingSubs.length) && localStateChange) {\n this.dispatchEvent(\n new globalThis.CustomEvent(\n MediaUIEvents.MEDIA_DISABLE_SUBTITLES_REQUEST,\n {\n composed: true,\n bubbles: true,\n detail: showingSubs\n }\n )\n );\n }\n if (!this.value || !localStateChange)\n return;\n const event = new globalThis.CustomEvent(\n MediaUIEvents.MEDIA_SHOW_SUBTITLES_REQUEST,\n {\n composed: true,\n bubbles: true,\n detail: this.value\n }\n );\n this.dispatchEvent(event);\n};\nMediaCaptionsMenu.getTemplateHTML = getTemplateHTML;\nconst getSubtitlesListAttr = (el, attrName) => {\n const attrVal = el.getAttribute(attrName);\n return attrVal ? parseTextTracksStr(attrVal) : [];\n};\nconst setSubtitlesListAttr = (el, attrName, list) => {\n if (!(list == null ? void 0 : list.length)) {\n el.removeAttribute(attrName);\n return;\n }\n const newValStr = stringifyTextTrackList(list);\n const oldVal = el.getAttribute(attrName);\n if (oldVal === newValStr)\n return;\n el.setAttribute(attrName, newValStr);\n};\nif (!globalThis.customElements.get(\"media-captions-menu\")) {\n globalThis.customElements.define(\"media-captions-menu\", MediaCaptionsMenu);\n}\nvar media_captions_menu_default = MediaCaptionsMenu;\nexport {\n MediaCaptionsMenu,\n media_captions_menu_default as default\n};\n","import { globalThis } from \"../utils/server-safe-globals.js\";\nimport { MediaUIAttributes } from \"../constants.js\";\nimport { MediaChromeMenuButton } from \"./media-chrome-menu-button.js\";\nimport { getMediaController } from \"../utils/element-utils.js\";\nimport {\n areSubsOn,\n parseTextTracksStr,\n stringifyTextTrackList\n} from \"../utils/captions.js\";\nimport { t } from \"../utils/i18n.js\";\nconst ccIconOn = `<svg aria-hidden=\"true\" viewBox=\"0 0 26 24\">\n <path d=\"M22.83 5.68a2.58 2.58 0 0 0-2.3-2.5c-3.62-.24-11.44-.24-15.06 0a2.58 2.58 0 0 0-2.3 2.5c-.23 4.21-.23 8.43 0 12.64a2.58 2.58 0 0 0 2.3 2.5c3.62.24 11.44.24 15.06 0a2.58 2.58 0 0 0 2.3-2.5c.23-4.21.23-8.43 0-12.64Zm-11.39 9.45a3.07 3.07 0 0 1-1.91.57 3.06 3.06 0 0 1-2.34-1 3.75 3.75 0 0 1-.92-2.67 3.92 3.92 0 0 1 .92-2.77 3.18 3.18 0 0 1 2.43-1 2.94 2.94 0 0 1 2.13.78c.364.359.62.813.74 1.31l-1.43.35a1.49 1.49 0 0 0-1.51-1.17 1.61 1.61 0 0 0-1.29.58 2.79 2.79 0 0 0-.5 1.89 3 3 0 0 0 .49 1.93 1.61 1.61 0 0 0 1.27.58 1.48 1.48 0 0 0 1-.37 2.1 2.1 0 0 0 .59-1.14l1.4.44a3.23 3.23 0 0 1-1.07 1.69Zm7.22 0a3.07 3.07 0 0 1-1.91.57 3.06 3.06 0 0 1-2.34-1 3.75 3.75 0 0 1-.92-2.67 3.88 3.88 0 0 1 .93-2.77 3.14 3.14 0 0 1 2.42-1 3 3 0 0 1 2.16.82 2.8 2.8 0 0 1 .73 1.31l-1.43.35a1.49 1.49 0 0 0-1.51-1.21 1.61 1.61 0 0 0-1.29.58A2.79 2.79 0 0 0 15 12a3 3 0 0 0 .49 1.93 1.61 1.61 0 0 0 1.27.58 1.44 1.44 0 0 0 1-.37 2.1 2.1 0 0 0 .6-1.15l1.4.44a3.17 3.17 0 0 1-1.1 1.7Z\"/>\n</svg>`;\nconst ccIconOff = `<svg aria-hidden=\"true\" viewBox=\"0 0 26 24\">\n <path d=\"M17.73 14.09a1.4 1.4 0 0 1-1 .37 1.579 1.579 0 0 1-1.27-.58A3 3 0 0 1 15 12a2.8 2.8 0 0 1 .5-1.85 1.63 1.63 0 0 1 1.29-.57 1.47 1.47 0 0 1 1.51 1.2l1.43-.34A2.89 2.89 0 0 0 19 9.07a3 3 0 0 0-2.14-.78 3.14 3.14 0 0 0-2.42 1 3.91 3.91 0 0 0-.93 2.78 3.74 3.74 0 0 0 .92 2.66 3.07 3.07 0 0 0 2.34 1 3.07 3.07 0 0 0 1.91-.57 3.17 3.17 0 0 0 1.07-1.74l-1.4-.45c-.083.43-.3.822-.62 1.12Zm-7.22 0a1.43 1.43 0 0 1-1 .37 1.58 1.58 0 0 1-1.27-.58A3 3 0 0 1 7.76 12a2.8 2.8 0 0 1 .5-1.85 1.63 1.63 0 0 1 1.29-.57 1.47 1.47 0 0 1 1.51 1.2l1.43-.34a2.81 2.81 0 0 0-.74-1.32 2.94 2.94 0 0 0-2.13-.78 3.18 3.18 0 0 0-2.43 1 4 4 0 0 0-.92 2.78 3.74 3.74 0 0 0 .92 2.66 3.07 3.07 0 0 0 2.34 1 3.07 3.07 0 0 0 1.91-.57 3.23 3.23 0 0 0 1.07-1.74l-1.4-.45a2.06 2.06 0 0 1-.6 1.07Zm12.32-8.41a2.59 2.59 0 0 0-2.3-2.51C18.72 3.05 15.86 3 13 3c-2.86 0-5.72.05-7.53.17a2.59 2.59 0 0 0-2.3 2.51c-.23 4.207-.23 8.423 0 12.63a2.57 2.57 0 0 0 2.3 2.5c1.81.13 4.67.19 7.53.19 2.86 0 5.72-.06 7.53-.19a2.57 2.57 0 0 0 2.3-2.5c.23-4.207.23-8.423 0-12.63Zm-1.49 12.53a1.11 1.11 0 0 1-.91 1.11c-1.67.11-4.45.18-7.43.18-2.98 0-5.76-.07-7.43-.18a1.11 1.11 0 0 1-.91-1.11c-.21-4.14-.21-8.29 0-12.43a1.11 1.11 0 0 1 .91-1.11C7.24 4.56 10 4.49 13 4.49s5.76.07 7.43.18a1.11 1.11 0 0 1 .91 1.11c.21 4.14.21 8.29 0 12.43Z\"/>\n</svg>`;\nfunction getSlotTemplateHTML() {\n return (\n /*html*/\n `\n <style>\n :host([data-captions-enabled=\"true\"]) slot[name=off] {\n display: none !important;\n }\n\n ${/* Double negative, but safer if display doesn't equal 'block' */\n \"\"}\n :host(:not([data-captions-enabled=\"true\"])) slot[name=on] {\n display: none !important;\n }\n\n :host([aria-expanded=\"true\"]) slot[name=tooltip] {\n display: none;\n }\n </style>\n\n <slot name=\"icon\">\n <slot name=\"on\">${ccIconOn}</slot>\n <slot name=\"off\">${ccIconOff}</slot>\n </slot>\n `\n );\n}\nfunction getTooltipContentHTML() {\n return t(\"Captions\");\n}\nconst updateAriaChecked = (el) => {\n el.setAttribute(\"data-captions-enabled\", areSubsOn(el).toString());\n};\nconst updateAriaLabel = (el) => {\n el.setAttribute(\"aria-label\", t(\"closed captions\"));\n};\nclass MediaCaptionsMenuButton extends MediaChromeMenuButton {\n static get observedAttributes() {\n return [\n ...super.observedAttributes,\n MediaUIAttributes.MEDIA_SUBTITLES_LIST,\n MediaUIAttributes.MEDIA_SUBTITLES_SHOWING,\n MediaUIAttributes.MEDIA_LANG\n ];\n }\n connectedCallback() {\n super.connectedCallback();\n updateAriaLabel(this);\n updateAriaChecked(this);\n }\n attributeChangedCallback(attrName, oldValue, newValue) {\n super.attributeChangedCallback(attrName, oldValue, newValue);\n if (attrName === MediaUIAttributes.MEDIA_SUBTITLES_SHOWING) {\n updateAriaChecked(this);\n } else if (attrName === MediaUIAttributes.MEDIA_LANG) {\n updateAriaLabel(this);\n }\n }\n /**\n * Returns the element with the id specified by the `invoketarget` attribute.\n * @return {HTMLElement | null}\n */\n get invokeTargetElement() {\n var _a;\n if (this.invokeTarget != void 0)\n return super.invokeTargetElement;\n return (_a = getMediaController(this)) == null ? void 0 : _a.querySelector(\"media-captions-menu\");\n }\n /**\n * An array of TextTrack-like objects.\n * Objects must have the properties: kind, language, and label.\n */\n get mediaSubtitlesList() {\n return getSubtitlesListAttr(this, MediaUIAttributes.MEDIA_SUBTITLES_LIST);\n }\n set mediaSubtitlesList(list) {\n setSubtitlesListAttr(this, MediaUIAttributes.MEDIA_SUBTITLES_LIST, list);\n }\n /**\n * An array of TextTrack-like objects.\n * Objects must have the properties: kind, language, and label.\n */\n get mediaSubtitlesShowing() {\n return getSubtitlesListAttr(\n this,\n MediaUIAttributes.MEDIA_SUBTITLES_SHOWING\n );\n }\n set mediaSubtitlesShowing(list) {\n setSubtitlesListAttr(this, MediaUIAttributes.MEDIA_SUBTITLES_SHOWING, list);\n }\n}\nMediaCaptionsMenuButton.getSlotTemplateHTML = getSlotTemplateHTML;\nMediaCaptionsMenuButton.getTooltipContentHTML = getTooltipContentHTML;\nconst getSubtitlesListAttr = (el, attrName) => {\n const attrVal = el.getAttribute(attrName);\n return attrVal ? parseTextTracksStr(attrVal) : [];\n};\nconst setSubtitlesListAttr = (el, attrName, list) => {\n if (!(list == null ? void 0 : list.length)) {\n el.removeAttribute(attrName);\n return;\n }\n const newValStr = stringifyTextTrackList(list);\n const oldVal = el.getAttribute(attrName);\n if (oldVal === newValStr)\n return;\n el.setAttribute(attrName, newValStr);\n};\nif (!globalThis.customElements.get(\"media-captions-menu-button\")) {\n globalThis.customElements.define(\n \"media-captions-menu-button\",\n MediaCaptionsMenuButton\n );\n}\nvar media_captions_menu_button_default = MediaCaptionsMenuButton;\nexport {\n MediaCaptionsMenuButton,\n media_captions_menu_button_default as default\n};\n","var __accessCheck = (obj, member, msg) => {\n if (!member.has(obj))\n throw TypeError(\"Cannot \" + msg);\n};\nvar __privateGet = (obj, member, getter) => {\n __accessCheck(obj, member, \"read from private field\");\n return getter ? getter.call(obj) : member.get(obj);\n};\nvar __privateAdd = (obj, member, value) => {\n if (member.has(obj))\n throw TypeError(\"Cannot add the same private member more than once\");\n member instanceof WeakSet ? member.add(obj) : member.set(obj, value);\n};\nvar __privateMethod = (obj, member, method) => {\n __accessCheck(obj, member, \"access private method\");\n return method;\n};\nvar _rates, _render, render_fn, _onChange, onChange_fn;\nimport { globalThis } from \"../utils/server-safe-globals.js\";\nimport { MediaUIAttributes, MediaUIEvents } from \"../constants.js\";\nimport { AttributeTokenList } from \"../utils/attribute-token-list.js\";\nimport {\n getNumericAttr,\n setNumericAttr,\n getMediaController\n} from \"../utils/element-utils.js\";\nimport { DEFAULT_RATES, DEFAULT_RATE } from \"../media-playback-rate-button.js\";\nimport {\n MediaChromeMenu,\n createMenuItem,\n createIndicator\n} from \"./media-chrome-menu.js\";\nconst Attributes = {\n RATES: \"rates\"\n};\nclass MediaPlaybackRateMenu extends MediaChromeMenu {\n constructor() {\n super();\n __privateAdd(this, _render);\n __privateAdd(this, _onChange);\n __privateAdd(this, _rates, new AttributeTokenList(this, Attributes.RATES, {\n defaultValue: DEFAULT_RATES\n }));\n __privateMethod(this, _render, render_fn).call(this);\n }\n static get observedAttributes() {\n return [\n ...super.observedAttributes,\n MediaUIAttributes.MEDIA_PLAYBACK_RATE,\n Attributes.RATES\n ];\n }\n attributeChangedCallback(attrName, oldValue, newValue) {\n super.attributeChangedCallback(attrName, oldValue, newValue);\n if (attrName === MediaUIAttributes.MEDIA_PLAYBACK_RATE && oldValue != newValue) {\n this.value = newValue;\n __privateMethod(this, _render, render_fn).call(this);\n } else if (attrName === Attributes.RATES && oldValue != newValue) {\n __privateGet(this, _rates).value = newValue;\n __privateMethod(this, _render, render_fn).call(this);\n }\n }\n connectedCallback() {\n super.connectedCallback();\n this.addEventListener(\"change\", __privateMethod(this, _onChange, onChange_fn));\n }\n disconnectedCallback() {\n super.disconnectedCallback();\n this.removeEventListener(\"change\", __privateMethod(this, _onChange, onChange_fn));\n }\n /**\n * Returns the anchor element when it is a floating menu.\n */\n get anchorElement() {\n if (this.anchor !== \"auto\")\n return super.anchorElement;\n return getMediaController(this).querySelector(\n \"media-playback-rate-menu-button\"\n );\n }\n /**\n * Get the playback rates for the button.\n */\n get rates() {\n return __privateGet(this, _rates);\n }\n /**\n * Set the playback rates for the button.\n * For React 19+ compatibility, accept a string of space-separated rates.\n */\n set rates(value) {\n if (!value) {\n __privateGet(this, _rates).value = \"\";\n } else if (Array.isArray(value)) {\n __privateGet(this, _rates).value = value.join(\" \");\n } else if (typeof value === \"string\") {\n __privateGet(this, _rates).value = value;\n }\n __privateMethod(this, _render, render_fn).call(this);\n }\n /**\n * The current playback rate\n */\n get mediaPlaybackRate() {\n return getNumericAttr(\n this,\n MediaUIAttributes.MEDIA_PLAYBACK_RATE,\n DEFAULT_RATE\n );\n }\n set mediaPlaybackRate(value) {\n setNumericAttr(this, MediaUIAttributes.MEDIA_PLAYBACK_RATE, value);\n }\n}\n_rates = new WeakMap();\n_render = new WeakSet();\nrender_fn = function() {\n this.defaultSlot.textContent = \"\";\n const currentRate = this.mediaPlaybackRate;\n const ratesSet = new Set(Array.from(__privateGet(this, _rates)).map((rate) => Number(rate)));\n if (currentRate > 0 && !ratesSet.has(currentRate)) {\n ratesSet.add(currentRate);\n }\n const sortedRates = Array.from(ratesSet).sort((a, b) => a - b);\n for (const rate of sortedRates) {\n const item = createMenuItem({\n type: \"radio\",\n text: this.formatMenuItemText(`${rate}x`, rate),\n value: rate.toString(),\n checked: currentRate === rate\n });\n item.prepend(createIndicator(this, \"checked-indicator\"));\n this.defaultSlot.append(item);\n }\n};\n_onChange = new WeakSet();\nonChange_fn = function() {\n if (!this.value)\n return;\n const event = new globalThis.CustomEvent(\n MediaUIEvents.MEDIA_PLAYBACK_RATE_REQUEST,\n {\n composed: true,\n bubbles: true,\n detail: this.value\n }\n );\n this.dispatchEvent(event);\n};\nif (!globalThis.customElements.get(\"media-playback-rate-menu\")) {\n globalThis.customElements.define(\n \"media-playback-rate-menu\",\n MediaPlaybackRateMenu\n );\n}\nvar media_playback_rate_menu_default = MediaPlaybackRateMenu;\nexport {\n Attributes,\n MediaPlaybackRateMenu,\n media_playback_rate_menu_default as default\n};\n","import { globalThis } from \"../utils/server-safe-globals.js\";\nimport { MediaUIAttributes } from \"../constants.js\";\nimport { MediaChromeMenuButton } from \"./media-chrome-menu-button.js\";\nimport {\n getNumericAttr,\n setNumericAttr,\n getMediaController\n} from \"../utils/element-utils.js\";\nimport { t } from \"../utils/i18n.js\";\nconst DEFAULT_RATE = 1;\nfunction getSlotTemplateHTML(attrs) {\n return (\n /*html*/\n `\n <style>\n :host {\n min-width: 5ch;\n padding: var(--media-button-padding, var(--media-control-padding, 10px 5px));\n }\n \n :host([aria-expanded=\"true\"]) slot[name=tooltip] {\n display: none;\n }\n </style>\n <slot name=\"icon\">${attrs[\"mediaplaybackrate\"] || DEFAULT_RATE}x</slot>\n `\n );\n}\nfunction getTooltipContentHTML() {\n return t(\"Playback rate\");\n}\nclass MediaPlaybackRateMenuButton extends MediaChromeMenuButton {\n static get observedAttributes() {\n return [\n ...super.observedAttributes,\n MediaUIAttributes.MEDIA_PLAYBACK_RATE\n ];\n }\n constructor() {\n var _a;\n super();\n this.container = this.shadowRoot.querySelector('slot[name=\"icon\"]');\n this.container.innerHTML = `${(_a = this.mediaPlaybackRate) != null ? _a : DEFAULT_RATE}x`;\n }\n attributeChangedCallback(attrName, oldValue, newValue) {\n super.attributeChangedCallback(attrName, oldValue, newValue);\n if (attrName === MediaUIAttributes.MEDIA_PLAYBACK_RATE) {\n const newPlaybackRate = newValue ? +newValue : Number.NaN;\n const playbackRate = !Number.isNaN(newPlaybackRate) ? newPlaybackRate : DEFAULT_RATE;\n this.container.innerHTML = `${playbackRate}x`;\n this.setAttribute(\n \"aria-label\",\n t(\"Playback rate {playbackRate}\", { playbackRate })\n );\n }\n }\n /**\n * Returns the element with the id specified by the `invoketarget` attribute.\n */\n get invokeTargetElement() {\n if (this.invokeTarget != void 0)\n return super.invokeTargetElement;\n return getMediaController(this).querySelector(\"media-playback-rate-menu\");\n }\n /**\n * The current playback rate\n */\n get mediaPlaybackRate() {\n return getNumericAttr(\n this,\n MediaUIAttributes.MEDIA_PLAYBACK_RATE,\n DEFAULT_RATE\n );\n }\n set mediaPlaybackRate(value) {\n setNumericAttr(this, MediaUIAttributes.MEDIA_PLAYBACK_RATE, value);\n }\n}\nMediaPlaybackRateMenuButton.getSlotTemplateHTML = getSlotTemplateHTML;\nMediaPlaybackRateMenuButton.getTooltipContentHTML = getTooltipContentHTML;\nif (!globalThis.customElements.get(\"media-playback-rate-menu-button\")) {\n globalThis.customElements.define(\n \"media-playback-rate-menu-button\",\n MediaPlaybackRateMenuButton\n );\n}\nvar media_playback_rate_menu_button_default = MediaPlaybackRateMenuButton;\nexport {\n DEFAULT_RATE,\n MediaPlaybackRateMenuButton,\n media_playback_rate_menu_button_default as default\n};\n","var __accessCheck = (obj, member, msg) => {\n if (!member.has(obj))\n throw TypeError(\"Cannot \" + msg);\n};\nvar __privateGet = (obj, member, getter) => {\n __accessCheck(obj, member, \"read from private field\");\n return getter ? getter.call(obj) : member.get(obj);\n};\nvar __privateAdd = (obj, member, value) => {\n if (member.has(obj))\n throw TypeError(\"Cannot add the same private member more than once\");\n member instanceof WeakSet ? member.add(obj) : member.set(obj, value);\n};\nvar __privateSet = (obj, member, value, setter) => {\n __accessCheck(obj, member, \"write to private field\");\n setter ? setter.call(obj, value) : member.set(obj, value);\n return value;\n};\nvar __privateMethod = (obj, member, method) => {\n __accessCheck(obj, member, \"access private method\");\n return method;\n};\nvar _renditionList, _prevState, _render, render_fn, _onChange, onChange_fn;\nimport { globalThis } from \"../utils/server-safe-globals.js\";\nimport { MediaUIAttributes, MediaUIEvents } from \"../constants.js\";\nimport {\n getMediaController,\n getStringAttr,\n setStringAttr,\n getNumericAttr,\n setNumericAttr\n} from \"../utils/element-utils.js\";\nimport { parseRenditionList } from \"../utils/utils.js\";\nimport {\n MediaChromeMenu,\n createMenuItem,\n createIndicator\n} from \"./media-chrome-menu.js\";\nimport { t } from \"../utils/i18n.js\";\nclass MediaRenditionMenu extends MediaChromeMenu {\n constructor() {\n super(...arguments);\n __privateAdd(this, _render);\n __privateAdd(this, _onChange);\n __privateAdd(this, _renditionList, []);\n __privateAdd(this, _prevState, {});\n }\n static get observedAttributes() {\n return [\n ...super.observedAttributes,\n MediaUIAttributes.MEDIA_RENDITION_LIST,\n MediaUIAttributes.MEDIA_RENDITION_SELECTED,\n MediaUIAttributes.MEDIA_RENDITION_UNAVAILABLE,\n MediaUIAttributes.MEDIA_HEIGHT\n ];\n }\n static formatMenuItemText(text, rendition) {\n return super.formatMenuItemText(text, rendition);\n }\n static formatRendition(rendition, { showBitrate = false } = {}) {\n const renditionText = `${Math.min(\n rendition.width,\n rendition.height\n )}p`;\n if (showBitrate && rendition.bitrate) {\n const mbps = rendition.bitrate / 1e6;\n const bitrateText = `${mbps.toFixed(mbps < 1 ? 1 : 0)} Mbps`;\n return `${renditionText} (${bitrateText})`;\n }\n return this.formatMenuItemText(renditionText, rendition);\n }\n static compareRendition(a, b) {\n var _a, _b;\n return b.height === a.height ? ((_a = b.bitrate) != null ? _a : 0) - ((_b = a.bitrate) != null ? _b : 0) : b.height - a.height;\n }\n attributeChangedCallback(attrName, oldValue, newValue) {\n super.attributeChangedCallback(attrName, oldValue, newValue);\n if (attrName === MediaUIAttributes.MEDIA_RENDITION_SELECTED && oldValue !== newValue) {\n this.value = newValue != null ? newValue : \"auto\";\n __privateMethod(this, _render, render_fn).call(this);\n } else if (attrName === MediaUIAttributes.MEDIA_RENDITION_LIST && oldValue !== newValue) {\n __privateSet(this, _renditionList, parseRenditionList(newValue));\n __privateMethod(this, _render, render_fn).call(this);\n } else if (attrName === MediaUIAttributes.MEDIA_HEIGHT && oldValue !== newValue) {\n __privateMethod(this, _render, render_fn).call(this);\n }\n }\n connectedCallback() {\n super.connectedCallback();\n this.addEventListener(\"change\", __privateMethod(this, _onChange, onChange_fn));\n }\n disconnectedCallback() {\n super.disconnectedCallback();\n this.removeEventListener(\"change\", __privateMethod(this, _onChange, onChange_fn));\n }\n /**\n * Returns the anchor element when it is a floating menu.\n */\n get anchorElement() {\n if (this.anchor !== \"auto\")\n return super.anchorElement;\n return getMediaController(this).querySelector(\n \"media-rendition-menu-button\"\n );\n }\n get mediaRenditionList() {\n return __privateGet(this, _renditionList);\n }\n set mediaRenditionList(list) {\n __privateSet(this, _renditionList, list);\n __privateMethod(this, _render, render_fn).call(this);\n }\n /**\n * Get selected rendition id.\n */\n get mediaRenditionSelected() {\n return getStringAttr(this, MediaUIAttributes.MEDIA_RENDITION_SELECTED);\n }\n set mediaRenditionSelected(id) {\n setStringAttr(this, MediaUIAttributes.MEDIA_RENDITION_SELECTED, id);\n }\n get mediaHeight() {\n return getNumericAttr(this, MediaUIAttributes.MEDIA_HEIGHT);\n }\n set mediaHeight(height) {\n setNumericAttr(this, MediaUIAttributes.MEDIA_HEIGHT, height);\n }\n compareRendition(a, b) {\n const ctor = this.constructor;\n return ctor.compareRendition(a, b);\n }\n formatMenuItemText(text, rendition) {\n const ctor = this.constructor;\n return ctor.formatMenuItemText(text, rendition);\n }\n formatRendition(rendition, options) {\n const ctor = this.constructor;\n return ctor.formatRendition(rendition, options);\n }\n showRenditionBitrate(rendition) {\n return this.mediaRenditionList.some(\n (r) => r !== rendition && r.height === rendition.height && r.bitrate !== rendition.bitrate\n );\n }\n}\n_renditionList = new WeakMap();\n_prevState = new WeakMap();\n_render = new WeakSet();\nrender_fn = function() {\n if (__privateGet(this, _prevState).mediaRenditionList === JSON.stringify(this.mediaRenditionList) && __privateGet(this, _prevState).mediaHeight === this.mediaHeight)\n return;\n __privateGet(this, _prevState).mediaRenditionList = JSON.stringify(\n this.mediaRenditionList\n );\n __privateGet(this, _prevState).mediaHeight = this.mediaHeight;\n const renditionList = this.mediaRenditionList.sort(\n this.compareRendition.bind(this)\n );\n const selectedRendition = renditionList.find(\n (rendition) => rendition.id === this.mediaRenditionSelected\n );\n for (const rendition of renditionList) {\n rendition.selected = rendition === selectedRendition;\n }\n this.defaultSlot.textContent = \"\";\n const isAuto = !this.mediaRenditionSelected;\n for (const rendition of renditionList) {\n const text = this.formatRendition(rendition, {\n showBitrate: this.showRenditionBitrate(rendition)\n });\n const item2 = createMenuItem({\n type: \"radio\",\n text,\n value: `${rendition.id}`,\n checked: rendition.selected && !isAuto\n });\n item2.prepend(createIndicator(this, \"checked-indicator\"));\n this.defaultSlot.append(item2);\n }\n const showSelectedBitrate = selectedRendition && this.showRenditionBitrate(selectedRendition);\n const autoText = isAuto ? (\n // Auto • 1080p (4 Mbps)\n selectedRendition ? this.formatMenuItemText(\n `${t(\"Auto\")} \\u2022 ${this.formatRendition(selectedRendition, {\n showBitrate: showSelectedBitrate\n })}`,\n selectedRendition\n ) : this.formatMenuItemText(`${t(\"Auto\")} (${this.mediaHeight}p)`)\n ) : this.formatMenuItemText(t(\"Auto\"));\n const item = createMenuItem({\n type: \"radio\",\n text: autoText,\n value: \"auto\",\n checked: isAuto\n });\n item.dataset.description = autoText;\n item.prepend(createIndicator(this, \"checked-indicator\"));\n this.defaultSlot.append(item);\n};\n_onChange = new WeakSet();\nonChange_fn = function() {\n if (this.value == null)\n return;\n const event = new globalThis.CustomEvent(\n MediaUIEvents.MEDIA_RENDITION_REQUEST,\n {\n composed: true,\n bubbles: true,\n detail: this.value\n }\n );\n this.dispatchEvent(event);\n};\nif (!globalThis.customElements.get(\"media-rendition-menu\")) {\n globalThis.customElements.define(\"media-rendition-menu\", MediaRenditionMenu);\n}\nvar media_rendition_menu_default = MediaRenditionMenu;\nexport {\n MediaRenditionMenu,\n media_rendition_menu_default as default\n};\n","import { MediaUIAttributes } from \"../constants.js\";\nimport { MediaChromeMenuButton } from \"./media-chrome-menu-button.js\";\nimport { globalThis } from \"../utils/server-safe-globals.js\";\nimport {\n getStringAttr,\n setStringAttr,\n getMediaController,\n getNumericAttr,\n setNumericAttr\n} from \"../utils/element-utils.js\";\nimport { t } from \"../utils/i18n.js\";\nconst renditionIcon = (\n /*html*/\n `<svg aria-hidden=\"true\" viewBox=\"0 0 24 24\">\n <path d=\"M13.5 2.5h2v6h-2v-2h-11v-2h11v-2Zm4 2h4v2h-4v-2Zm-12 4h2v6h-2v-2h-3v-2h3v-2Zm4 2h12v2h-12v-2Zm1 4h2v6h-2v-2h-8v-2h8v-2Zm4 2h7v2h-7v-2Z\" />\n</svg>`\n);\nfunction getSlotTemplateHTML() {\n return (\n /*html*/\n `\n <style>\n :host([aria-expanded=\"true\"]) slot[name=tooltip] {\n display: none;\n }\n </style>\n <slot name=\"icon\">${renditionIcon}</slot>\n `\n );\n}\nfunction getTooltipContentHTML() {\n return t(\"Quality\");\n}\nclass MediaRenditionMenuButton extends MediaChromeMenuButton {\n static get observedAttributes() {\n return [\n ...super.observedAttributes,\n MediaUIAttributes.MEDIA_RENDITION_SELECTED,\n MediaUIAttributes.MEDIA_RENDITION_UNAVAILABLE,\n MediaUIAttributes.MEDIA_HEIGHT\n ];\n }\n connectedCallback() {\n super.connectedCallback();\n this.setAttribute(\"aria-label\", t(\"quality\"));\n }\n /**\n * Returns the element with the id specified by the `invoketarget` attribute.\n */\n get invokeTargetElement() {\n if (this.invokeTarget != void 0)\n return super.invokeTargetElement;\n return getMediaController(this).querySelector(\"media-rendition-menu\");\n }\n /**\n * Get selected rendition id.\n */\n get mediaRenditionSelected() {\n return getStringAttr(this, MediaUIAttributes.MEDIA_RENDITION_SELECTED);\n }\n set mediaRenditionSelected(id) {\n setStringAttr(this, MediaUIAttributes.MEDIA_RENDITION_SELECTED, id);\n }\n get mediaHeight() {\n return getNumericAttr(this, MediaUIAttributes.MEDIA_HEIGHT);\n }\n set mediaHeight(height) {\n setNumericAttr(this, MediaUIAttributes.MEDIA_HEIGHT, height);\n }\n}\nMediaRenditionMenuButton.getSlotTemplateHTML = getSlotTemplateHTML;\nMediaRenditionMenuButton.getTooltipContentHTML = getTooltipContentHTML;\nif (!globalThis.customElements.get(\"media-rendition-menu-button\")) {\n globalThis.customElements.define(\n \"media-rendition-menu-button\",\n MediaRenditionMenuButton\n );\n}\nvar media_rendition_menu_button_default = MediaRenditionMenuButton;\nexport {\n MediaRenditionMenuButton,\n media_rendition_menu_button_default as default\n};\n","var __accessCheck = (obj, member, msg) => {\n if (!member.has(obj))\n throw TypeError(\"Cannot \" + msg);\n};\nvar __privateGet = (obj, member, getter) => {\n __accessCheck(obj, member, \"read from private field\");\n return getter ? getter.call(obj) : member.get(obj);\n};\nvar __privateAdd = (obj, member, value) => {\n if (member.has(obj))\n throw TypeError(\"Cannot add the same private member more than once\");\n member instanceof WeakSet ? member.add(obj) : member.set(obj, value);\n};\nvar __privateSet = (obj, member, value, setter) => {\n __accessCheck(obj, member, \"write to private field\");\n setter ? setter.call(obj, value) : member.set(obj, value);\n return value;\n};\nvar __privateMethod = (obj, member, method) => {\n __accessCheck(obj, member, \"access private method\");\n return method;\n};\nvar _isContextMenuOpen, _updateVisibility, updateVisibility_fn, _closeContextMenu, closeContextMenu_fn, _closeOtherContextMenus, closeOtherContextMenus_fn, _isVideoContainer, isVideoContainer_fn, _onControllerContextMenu, _onContextMenu, onContextMenu_fn, _onDocumentClick, _onKeyDown, _onMenuClick;\nimport { globalThis } from \"../utils/server-safe-globals.js\";\nimport { MediaChromeMenu } from \"./media-chrome-menu.js\";\nimport { getMediaController } from \"../utils/element-utils.js\";\nfunction getTemplateHTML(_attrs) {\n return (\n /*html*/\n `\n ${MediaChromeMenu.getTemplateHTML(_attrs)}\n <style>\n :host {\n --_menu-bg: rgb(20 20 30 / .8);\n background: var(--media-settings-menu-background,\n var(--media-menu-background,\n var(--media-control-background,\n var(--media-secondary-color, var(--_menu-bg)))));\n min-width: var(--media-settings-menu-min-width, 170px);\n border-radius: 2px;\n overflow: hidden;\n }\n </style>\n `\n );\n}\nclass MediaContextMenu extends MediaChromeMenu {\n constructor() {\n super();\n __privateAdd(this, _updateVisibility);\n __privateAdd(this, _closeContextMenu);\n __privateAdd(this, _closeOtherContextMenus);\n __privateAdd(this, _isVideoContainer);\n __privateAdd(this, _onContextMenu);\n __privateAdd(this, _isContextMenuOpen, false);\n __privateAdd(this, _onControllerContextMenu, (event) => {\n const target = event.target;\n const isVideoElement = (target == null ? void 0 : target.nodeName) === \"VIDEO\";\n const isVideoContainer = __privateMethod(this, _isVideoContainer, isVideoContainer_fn).call(this, target);\n if (isVideoElement || isVideoContainer) {\n if (!__privateGet(this, _isContextMenuOpen)) {\n __privateMethod(this, _onContextMenu, onContextMenu_fn).call(this, event);\n } else {\n __privateMethod(this, _closeContextMenu, closeContextMenu_fn).call(this);\n }\n }\n });\n __privateAdd(this, _onDocumentClick, (event) => {\n const target = event.target;\n const isInsideMenu = this.contains(target);\n const isRightClick = event.button === 2;\n const isVideo = (target == null ? void 0 : target.nodeName) === \"VIDEO\";\n const isVideoContainer = __privateMethod(this, _isVideoContainer, isVideoContainer_fn).call(this, target);\n if (isInsideMenu) {\n return;\n }\n const isRightClickOnVideo = isRightClick && (isVideo || isVideoContainer);\n if (isRightClickOnVideo) {\n return;\n }\n __privateMethod(this, _closeContextMenu, closeContextMenu_fn).call(this);\n });\n __privateAdd(this, _onKeyDown, (event) => {\n if (event.key === \"Escape\") {\n __privateMethod(this, _closeContextMenu, closeContextMenu_fn).call(this);\n }\n });\n __privateAdd(this, _onMenuClick, (event) => {\n var _a, _b;\n const target = event.target;\n if ((_a = target.matches) == null ? void 0 : _a.call(target, 'button[invoke=\"copy\"]')) {\n const input = (_b = target.closest(\"media-context-menu-item\")) == null ? void 0 : _b.querySelector('input[slot=\"copy\"]');\n input && navigator.clipboard.writeText(input.value);\n }\n __privateMethod(this, _closeContextMenu, closeContextMenu_fn).call(this);\n });\n this.setAttribute(\"noautohide\", \"\");\n __privateMethod(this, _updateVisibility, updateVisibility_fn).call(this);\n }\n connectedCallback() {\n super.connectedCallback();\n getMediaController(this).addEventListener(\n \"contextmenu\",\n __privateGet(this, _onControllerContextMenu)\n );\n this.addEventListener(\"click\", __privateGet(this, _onMenuClick));\n }\n disconnectedCallback() {\n super.disconnectedCallback();\n getMediaController(this).removeEventListener(\n \"contextmenu\",\n __privateGet(this, _onControllerContextMenu)\n );\n this.removeEventListener(\"click\", __privateGet(this, _onMenuClick));\n document.removeEventListener(\"mousedown\", __privateGet(this, _onDocumentClick));\n document.removeEventListener(\"keydown\", __privateGet(this, _onKeyDown));\n }\n}\n_isContextMenuOpen = new WeakMap();\n_updateVisibility = new WeakSet();\nupdateVisibility_fn = function() {\n this.hidden = !__privateGet(this, _isContextMenuOpen);\n};\n_closeContextMenu = new WeakSet();\ncloseContextMenu_fn = function() {\n __privateSet(this, _isContextMenuOpen, false);\n __privateMethod(this, _updateVisibility, updateVisibility_fn).call(this);\n};\n_closeOtherContextMenus = new WeakSet();\ncloseOtherContextMenus_fn = function() {\n const allContextMenus = document.querySelectorAll(\"media-context-menu\");\n allContextMenus.forEach((menu) => {\n var _a;\n if (menu !== this) {\n __privateMethod(_a = menu, _closeContextMenu, closeContextMenu_fn).call(_a);\n }\n });\n};\n_isVideoContainer = new WeakSet();\nisVideoContainer_fn = function(element) {\n if (!element)\n return false;\n if (element.hasAttribute(\"slot\") && element.getAttribute(\"slot\") === \"media\") {\n return true;\n }\n if (element.nodeName.includes(\"-\") && element.tagName.includes(\"-\")) {\n const hasVideoAttributes = element.hasAttribute(\"src\") || element.hasAttribute(\"poster\") || element.hasAttribute(\"preload\") || element.hasAttribute(\"playsinline\");\n return hasVideoAttributes;\n }\n return false;\n};\n_onControllerContextMenu = new WeakMap();\n_onContextMenu = new WeakSet();\nonContextMenu_fn = function(event) {\n event.preventDefault();\n __privateMethod(this, _closeOtherContextMenus, closeOtherContextMenus_fn).call(this);\n __privateSet(this, _isContextMenuOpen, true);\n this.style.position = \"fixed\";\n this.style.left = `${event.clientX}px`;\n this.style.top = `${event.clientY}px`;\n __privateMethod(this, _updateVisibility, updateVisibility_fn).call(this);\n document.addEventListener(\"mousedown\", __privateGet(this, _onDocumentClick), {\n once: true\n });\n document.addEventListener(\"keydown\", __privateGet(this, _onKeyDown), { once: true });\n};\n_onDocumentClick = new WeakMap();\n_onKeyDown = new WeakMap();\n_onMenuClick = new WeakMap();\nMediaContextMenu.getTemplateHTML = getTemplateHTML;\nif (!globalThis.customElements.get(\"media-context-menu\")) {\n globalThis.customElements.define(\"media-context-menu\", MediaContextMenu);\n}\nvar media_context_menu_default = MediaContextMenu;\nexport {\n MediaContextMenu,\n media_context_menu_default as default\n};\n","import { globalThis } from \"../utils/server-safe-globals.js\";\nimport { MediaChromeMenuItem } from \"./media-chrome-menu-item.js\";\nfunction getTemplateHTML(_attrs) {\n return (\n /*html*/\n `\n ${MediaChromeMenuItem.getTemplateHTML.call(this, _attrs)}\n <style>\n ::slotted(*) {\n color: var(--media-text-color, white);\n text-decoration: none;\n border: none;\n background: none;\n cursor: pointer;\n padding: 0;\n min-height: var(--media-control-height, 24px);\n }\n </style>\n `\n );\n}\nclass MediaContextMenuItem extends MediaChromeMenuItem {\n}\nMediaContextMenuItem.shadowRootOptions = { mode: \"open\" };\nMediaContextMenuItem.getTemplateHTML = getTemplateHTML;\nif (!globalThis.customElements.get(\"media-context-menu-item\")) {\n globalThis.customElements.define(\n \"media-context-menu-item\",\n MediaContextMenuItem\n );\n}\nvar media_context_menu_item_default = MediaContextMenuItem;\nexport {\n MediaContextMenuItem,\n media_context_menu_item_default as default\n};\n","var et=t=>{throw TypeError(t)};var he=(t,a,e)=>a.has(t)||et(\"Cannot \"+e);var u=(t,a,e)=>(he(t,a,\"read from private field\"),e?e.call(t):a.get(t)),v=(t,a,e)=>a.has(t)?et(\"Cannot add the same private member more than once\"):a instanceof WeakSet?a.add(t):a.set(t,e),C=(t,a,e,i)=>(he(t,a,\"write to private field\"),i?i.call(t,e):a.set(t,e),e),p=(t,a,e)=>(he(t,a,\"access private method\"),e);var F=class{addEventListener(){}removeEventListener(){}dispatchEvent(a){return!0}};if(typeof DocumentFragment==\"undefined\"){class t extends F{}globalThis.DocumentFragment=t}var G=class extends F{},ge=class extends F{},Vt={get(t){},define(t,a,e){},getName(t){return null},upgrade(t){},whenDefined(t){return Promise.resolve(G)}},j,fe=class{constructor(a,e={}){v(this,j);C(this,j,e==null?void 0:e.detail)}get detail(){return u(this,j)}initCustomEvent(){}};j=new WeakMap;function Bt(t,a){return new G}var tt={document:{createElement:Bt},DocumentFragment,customElements:Vt,CustomEvent:fe,EventTarget:F,HTMLElement:G,HTMLVideoElement:ge},at=typeof window==\"undefined\"||typeof globalThis.customElements==\"undefined\",k=at?tt:globalThis,P=at?tt.document:globalThis.document;import{MediaController as ga,MediaErrorDialog as Nt}from\"media-chrome\";import{Attributes as Oe}from\"media-chrome/dist/media-container.js\";import{MediaStateChangeEvents as _t,MediaUIAttributes as ce,MediaUIEvents as Rt}from\"media-chrome/dist/constants.js\";import\"media-chrome/dist/experimental/index.js\";import{MediaError as be,Attributes as s}from\"@mux/mux-video/base\";import{StreamTypes as O,PlaybackTypes as pe,addTextTrack as fa,removeTextTrack as ya,CmcdTypeValues as xt,i18n as B,parseJwt as Me,MuxJWTAud as Le,generatePlayerInitTime as Ta}from\"@mux/playback-core\";import{i18n as Yt}from\"@mux/playback-core\";import{StreamTypes as ve,parseJwt as rt}from\"@mux/playback-core\";function it(t){let a=\"\";return Object.entries(t).forEach(([e,i])=>{i!=null&&(a+=`${re(e)}: ${i}; `)}),a?a.trim():void 0}function re(t){return t.replace(/([a-z])([A-Z])/g,\"$1-$2\").toLowerCase()}function oe(t){return t.replace(/[-_]([a-z])/g,(a,e)=>e.toUpperCase())}function y(t){if(t==null)return;let a=+t;return Number.isNaN(a)?void 0:a}function ye(t){let a=Ht(t).toString();return a?\"?\"+a:\"\"}function Ht(t){let a={};for(let e in t)t[e]!=null&&(a[e]=t[e]);return new URLSearchParams(a)}var Te=(t,a)=>!t||!a?!1:t.contains(a)?!0:Te(t,a.getRootNode().host);var ot=\"mux.com\",Kt=()=>{try{return\"3.10.1\"}catch{}return\"UNKNOWN\"},$t=Kt(),se=()=>$t,nt=(t,{token:a,customDomain:e=ot,thumbnailTime:i,programTime:r}={})=>{var l;let n=a==null?i:void 0,{aud:d}=(l=rt(a))!=null?l:{};if(!(a&&d!==\"t\"))return`https://image.${e}/${t}/thumbnail.webp${ye({token:a,time:n,program_time:r})}`},st=(t,{token:a,customDomain:e=ot,programStartTime:i,programEndTime:r}={})=>{var d;let{aud:n}=(d=rt(a))!=null?d:{};if(!(a&&n!==\"s\"))return`https://image.${e}/${t}/storyboard.vtt${ye({token:a,format:\"webp\",program_start_time:i,program_end_time:r})}`},X=t=>{if(t){if([ve.LIVE,ve.ON_DEMAND].includes(t))return t;if(t!=null&&t.includes(\"live\"))return ve.LIVE}};var Ft={crossorigin:\"crossOrigin\",playsinline:\"playsInline\"};function dt(t){var a;return(a=Ft[t])!=null?a:oe(t)}var D,U,T,ne=class{constructor(a,e){v(this,D);v(this,U);v(this,T,[]);C(this,D,a),C(this,U,e)}[Symbol.iterator](){return u(this,T).values()}get length(){return u(this,T).length}get value(){var a;return(a=u(this,T).join(\" \"))!=null?a:\"\"}set value(a){var e;a!==this.value&&(C(this,T,[]),this.add(...(e=a==null?void 0:a.split(\" \"))!=null?e:[]))}toString(){return this.value}item(a){return u(this,T)[a]}values(){return u(this,T).values()}keys(){return u(this,T).keys()}forEach(a){u(this,T).forEach(a)}add(...a){var e,i;a.forEach(r=>{this.contains(r)||u(this,T).push(r)}),!(this.value===\"\"&&!((e=u(this,D))!=null&&e.hasAttribute(`${u(this,U)}`)))&&((i=u(this,D))==null||i.setAttribute(`${u(this,U)}`,`${this.value}`))}remove(...a){var e;a.forEach(i=>{u(this,T).splice(u(this,T).indexOf(i),1)}),(e=u(this,D))==null||e.setAttribute(`${u(this,U)}`,`${this.value}`)}contains(a){return u(this,T).includes(a)}toggle(a,e){return typeof e!=\"undefined\"?e?(this.add(a),!0):(this.remove(a),!1):this.contains(a)?(this.remove(a),!1):(this.add(a),!0)}replace(a,e){this.remove(a),this.add(e)}};D=new WeakMap,U=new WeakMap,T=new WeakMap;var lt=`[mux-player ${se()}]`;function x(...t){console.warn(lt,...t)}function E(...t){console.error(lt,...t)}function Ee(t){var e;let a=(e=t.message)!=null?e:\"\";t.context&&(a+=` ${t.context}`),t.file&&(a+=` ${Yt(\"Read more: \")}\nhttps://github.com/muxinc/elements/blob/main/errors/${t.file}`),x(a)}var g={AUTOPLAY:\"autoplay\",CROSSORIGIN:\"crossorigin\",LOOP:\"loop\",MUTED:\"muted\",PLAYSINLINE:\"playsinline\",PRELOAD:\"preload\"},N={VOLUME:\"volume\",PLAYBACKRATE:\"playbackrate\",MUTED:\"muted\"},Ka={...g,...N},mt=Object.freeze({length:0,start(t){let a=t>>>0;if(a>=this.length)throw new DOMException(`Failed to execute 'start' on 'TimeRanges': The index provided (${a}) is greater than or equal to the maximum bound (${this.length}).`);return 0},end(t){let a=t>>>0;if(a>=this.length)throw new DOMException(`Failed to execute 'end' on 'TimeRanges': The index provided (${a}) is greater than or equal to the maximum bound (${this.length}).`);return 0}}),Wt=Object.values(g).filter(t=>g.PLAYSINLINE!==t),Zt=Object.values(N),Gt=[...Wt,...Zt],Ae=class extends k.HTMLElement{static get observedAttributes(){return Gt}constructor(){super()}attributeChangedCallback(a,e,i){var r,n;switch(a){case N.MUTED:{this.media&&(this.media.muted=i!=null,this.media.defaultMuted=i!=null);return}case N.VOLUME:{let d=(r=y(i))!=null?r:1;this.media&&(this.media.volume=d);return}case N.PLAYBACKRATE:{let d=(n=y(i))!=null?n:1;this.media&&(this.media.playbackRate=d,this.media.defaultPlaybackRate=d);return}}}play(){var a,e;return(e=(a=this.media)==null?void 0:a.play())!=null?e:Promise.reject()}pause(){var a;(a=this.media)==null||a.pause()}load(){var a;(a=this.media)==null||a.load()}get media(){var a;return(a=this.shadowRoot)==null?void 0:a.querySelector(\"mux-video\")}get audioTracks(){return this.media.audioTracks}get videoTracks(){return this.media.videoTracks}get audioRenditions(){return this.media.audioRenditions}get videoRenditions(){return this.media.videoRenditions}get paused(){var a,e;return(e=(a=this.media)==null?void 0:a.paused)!=null?e:!0}get duration(){var a,e;return(e=(a=this.media)==null?void 0:a.duration)!=null?e:NaN}get ended(){var a,e;return(e=(a=this.media)==null?void 0:a.ended)!=null?e:!1}get buffered(){var a,e;return(e=(a=this.media)==null?void 0:a.buffered)!=null?e:mt}get seekable(){var a,e;return(e=(a=this.media)==null?void 0:a.seekable)!=null?e:mt}get readyState(){var a,e;return(e=(a=this.media)==null?void 0:a.readyState)!=null?e:0}get videoWidth(){var a,e;return(e=(a=this.media)==null?void 0:a.videoWidth)!=null?e:0}get videoHeight(){var a,e;return(e=(a=this.media)==null?void 0:a.videoHeight)!=null?e:0}get currentSrc(){var a,e;return(e=(a=this.media)==null?void 0:a.currentSrc)!=null?e:\"\"}get currentTime(){var a,e;return(e=(a=this.media)==null?void 0:a.currentTime)!=null?e:0}set currentTime(a){this.media&&(this.media.currentTime=Number(a))}get volume(){var a,e;return(e=(a=this.media)==null?void 0:a.volume)!=null?e:1}set volume(a){this.media&&(this.media.volume=Number(a))}get playbackRate(){var a,e;return(e=(a=this.media)==null?void 0:a.playbackRate)!=null?e:1}set playbackRate(a){this.media&&(this.media.playbackRate=Number(a))}get defaultPlaybackRate(){var a;return(a=y(this.getAttribute(N.PLAYBACKRATE)))!=null?a:1}set defaultPlaybackRate(a){a!=null?this.setAttribute(N.PLAYBACKRATE,`${a}`):this.removeAttribute(N.PLAYBACKRATE)}get crossOrigin(){return z(this,g.CROSSORIGIN)}set crossOrigin(a){this.setAttribute(g.CROSSORIGIN,`${a}`)}get autoplay(){return z(this,g.AUTOPLAY)!=null}set autoplay(a){a?this.setAttribute(g.AUTOPLAY,typeof a==\"string\"?a:\"\"):this.removeAttribute(g.AUTOPLAY)}get loop(){return z(this,g.LOOP)!=null}set loop(a){a?this.setAttribute(g.LOOP,\"\"):this.removeAttribute(g.LOOP)}get muted(){var a,e;return(e=(a=this.media)==null?void 0:a.muted)!=null?e:!1}set muted(a){this.media&&(this.media.muted=!!a)}get defaultMuted(){return z(this,g.MUTED)!=null}set defaultMuted(a){a?this.setAttribute(g.MUTED,\"\"):this.removeAttribute(g.MUTED)}get playsInline(){return z(this,g.PLAYSINLINE)!=null}set playsInline(a){E(\"playsInline is set to true by default and is not currently supported as a setter.\")}get preload(){return this.media?this.media.preload:this.getAttribute(\"preload\")}set preload(a){[\"\",\"none\",\"metadata\",\"auto\"].includes(a)?this.setAttribute(g.PRELOAD,a):this.removeAttribute(g.PRELOAD)}};function z(t,a){return t.media?t.media.getAttribute(a):t.getAttribute(a)}var Ce=Ae;import\"media-chrome/dist/media-theme-element.js\";var ct=`:host {\n --media-control-display: var(--controls);\n --media-loading-indicator-display: var(--loading-indicator);\n --media-dialog-display: var(--dialog);\n --media-play-button-display: var(--play-button);\n --media-live-button-display: var(--live-button);\n --media-seek-backward-button-display: var(--seek-backward-button);\n --media-seek-forward-button-display: var(--seek-forward-button);\n --media-mute-button-display: var(--mute-button);\n --media-captions-button-display: var(--captions-button);\n --media-captions-menu-button-display: var(--captions-menu-button, var(--media-captions-button-display));\n --media-rendition-menu-button-display: var(--rendition-menu-button);\n --media-audio-track-menu-button-display: var(--audio-track-menu-button);\n --media-airplay-button-display: var(--airplay-button);\n --media-pip-button-display: var(--pip-button);\n --media-fullscreen-button-display: var(--fullscreen-button);\n --media-cast-button-display: var(--cast-button, var(--_cast-button-drm-display));\n --media-playback-rate-button-display: var(--playback-rate-button);\n --media-playback-rate-menu-button-display: var(--playback-rate-menu-button);\n --media-volume-range-display: var(--volume-range);\n --media-time-range-display: var(--time-range);\n --media-time-display-display: var(--time-display);\n --media-duration-display-display: var(--duration-display);\n --media-title-display-display: var(--title-display);\n\n display: inline-block;\n line-height: 0;\n width: 100%;\n}\n\na {\n color: #fff;\n font-size: 0.9em;\n text-decoration: underline;\n}\n\nmedia-theme {\n display: inline-block;\n line-height: 0;\n width: 100%;\n height: 100%;\n direction: ltr;\n}\n\nmedia-poster-image {\n display: inline-block;\n line-height: 0;\n width: 100%;\n height: 100%;\n}\n\nmedia-poster-image:not([src]):not([placeholdersrc]) {\n display: none;\n}\n\n::part(top),\n[part~='top'] {\n --media-control-display: var(--controls, var(--top-controls));\n --media-play-button-display: var(--play-button, var(--top-play-button));\n --media-live-button-display: var(--live-button, var(--top-live-button));\n --media-seek-backward-button-display: var(--seek-backward-button, var(--top-seek-backward-button));\n --media-seek-forward-button-display: var(--seek-forward-button, var(--top-seek-forward-button));\n --media-mute-button-display: var(--mute-button, var(--top-mute-button));\n --media-captions-button-display: var(--captions-button, var(--top-captions-button));\n --media-captions-menu-button-display: var(\n --captions-menu-button,\n var(--media-captions-button-display, var(--top-captions-menu-button))\n );\n --media-rendition-menu-button-display: var(--rendition-menu-button, var(--top-rendition-menu-button));\n --media-audio-track-menu-button-display: var(--audio-track-menu-button, var(--top-audio-track-menu-button));\n --media-airplay-button-display: var(--airplay-button, var(--top-airplay-button));\n --media-pip-button-display: var(--pip-button, var(--top-pip-button));\n --media-fullscreen-button-display: var(--fullscreen-button, var(--top-fullscreen-button));\n --media-cast-button-display: var(--cast-button, var(--top-cast-button, var(--_cast-button-drm-display)));\n --media-playback-rate-button-display: var(--playback-rate-button, var(--top-playback-rate-button));\n --media-playback-rate-menu-button-display: var(\n --captions-menu-button,\n var(--media-playback-rate-button-display, var(--top-playback-rate-menu-button))\n );\n --media-volume-range-display: var(--volume-range, var(--top-volume-range));\n --media-time-range-display: var(--time-range, var(--top-time-range));\n --media-time-display-display: var(--time-display, var(--top-time-display));\n --media-duration-display-display: var(--duration-display, var(--top-duration-display));\n --media-title-display-display: var(--title-display, var(--top-title-display));\n}\n\n::part(center),\n[part~='center'] {\n --media-control-display: var(--controls, var(--center-controls));\n --media-play-button-display: var(--play-button, var(--center-play-button));\n --media-live-button-display: var(--live-button, var(--center-live-button));\n --media-seek-backward-button-display: var(--seek-backward-button, var(--center-seek-backward-button));\n --media-seek-forward-button-display: var(--seek-forward-button, var(--center-seek-forward-button));\n --media-mute-button-display: var(--mute-button, var(--center-mute-button));\n --media-captions-button-display: var(--captions-button, var(--center-captions-button));\n --media-captions-menu-button-display: var(\n --captions-menu-button,\n var(--media-captions-button-display, var(--center-captions-menu-button))\n );\n --media-rendition-menu-button-display: var(--rendition-menu-button, var(--center-rendition-menu-button));\n --media-audio-track-menu-button-display: var(--audio-track-menu-button, var(--center-audio-track-menu-button));\n --media-airplay-button-display: var(--airplay-button, var(--center-airplay-button));\n --media-pip-button-display: var(--pip-button, var(--center-pip-button));\n --media-fullscreen-button-display: var(--fullscreen-button, var(--center-fullscreen-button));\n --media-cast-button-display: var(--cast-button, var(--center-cast-button, var(--_cast-button-drm-display)));\n --media-playback-rate-button-display: var(--playback-rate-button, var(--center-playback-rate-button));\n --media-playback-rate-menu-button-display: var(\n --playback-rate-menu-button,\n var(--media-playback-rate-button-display, var(--center-playback-rate-menu-button))\n );\n --media-volume-range-display: var(--volume-range, var(--center-volume-range));\n --media-time-range-display: var(--time-range, var(--center-time-range));\n --media-time-display-display: var(--time-display, var(--center-time-display));\n --media-duration-display-display: var(--duration-display, var(--center-duration-display));\n}\n\n::part(bottom),\n[part~='bottom'] {\n --media-control-display: var(--controls, var(--bottom-controls));\n --media-play-button-display: var(--play-button, var(--bottom-play-button));\n --media-live-button-display: var(--live-button, var(--bottom-live-button));\n --media-seek-backward-button-display: var(--seek-backward-button, var(--bottom-seek-backward-button));\n --media-seek-forward-button-display: var(--seek-forward-button, var(--bottom-seek-forward-button));\n --media-mute-button-display: var(--mute-button, var(--bottom-mute-button));\n --media-captions-button-display: var(--captions-button, var(--bottom-captions-button));\n --media-captions-menu-button-display: var(\n --captions-menu-button,\n var(--media-captions-button-display, var(--bottom-captions-menu-button))\n );\n --media-rendition-menu-button-display: var(--rendition-menu-button, var(--bottom-rendition-menu-button));\n --media-audio-track-menu-button-display: var(--audio-track-menu-button, var(--bottom-audio-track-menu-button));\n --media-airplay-button-display: var(--airplay-button, var(--bottom-airplay-button));\n --media-pip-button-display: var(--pip-button, var(--bottom-pip-button));\n --media-fullscreen-button-display: var(--fullscreen-button, var(--bottom-fullscreen-button));\n --media-cast-button-display: var(--cast-button, var(--bottom-cast-button, var(--_cast-button-drm-display)));\n --media-playback-rate-button-display: var(--playback-rate-button, var(--bottom-playback-rate-button));\n --media-playback-rate-menu-button-display: var(\n --playback-rate-menu-button,\n var(--media-playback-rate-button-display, var(--bottom-playback-rate-menu-button))\n );\n --media-volume-range-display: var(--volume-range, var(--bottom-volume-range));\n --media-time-range-display: var(--time-range, var(--bottom-time-range));\n --media-time-display-display: var(--time-display, var(--bottom-time-display));\n --media-duration-display-display: var(--duration-display, var(--bottom-duration-display));\n --media-title-display-display: var(--title-display, var(--bottom-title-display));\n}\n\n:host([no-tooltips]) {\n --media-tooltip-display: none;\n}\n`;import{TemplateInstance as Xt,ChildNodePart as le,AttrPart as ue}from\"media-chrome/dist/media-theme-element.js\";var q=new WeakMap,_e=class t{constructor(a,e){this.element=a;this.type=e;this.element.addEventListener(this.type,this);let i=q.get(this.element);i&&i.set(this.type,this)}set(a){if(typeof a==\"function\")this.handleEvent=a.bind(this.element);else if(typeof a==\"object\"&&typeof a.handleEvent==\"function\")this.handleEvent=a.handleEvent.bind(a);else{this.element.removeEventListener(this.type,this);let e=q.get(this.element);e&&e.delete(this.type)}}static for(a){q.has(a.element)||q.set(a.element,new Map);let e=a.attributeName.slice(2),i=q.get(a.element);return i&&i.has(e)?i.get(e):new t(a.element,e)}};function zt(t,a){return t instanceof ue&&t.attributeName.startsWith(\"on\")?(_e.for(t).set(a),t.element.removeAttributeNS(t.attributeNamespace,t.attributeName),!0):!1}function qt(t,a){return a instanceof de&&t instanceof le?(a.renderInto(t),!0):!1}function Qt(t,a){return a instanceof DocumentFragment&&t instanceof le?(a.childNodes.length&&t.replace(...a.childNodes),!0):!1}function Jt(t,a){if(t instanceof ue){let e=t.attributeNamespace,i=t.element.getAttributeNS(e,t.attributeName);return String(a)!==i&&(t.value=String(a)),!0}return t.value=String(a),!0}function ea(t,a){if(t instanceof ue&&a instanceof Element){let e=t.element;return e[t.attributeName]!==a&&(t.element.removeAttributeNS(t.attributeNamespace,t.attributeName),e[t.attributeName]=a),!0}return!1}function ta(t,a){if(typeof a==\"boolean\"&&t instanceof ue){let e=t.attributeNamespace,i=t.element.hasAttributeNS(e,t.attributeName);return a!==i&&(t.booleanValue=a),!0}return!1}function aa(t,a){return a===!1&&t instanceof le?(t.replace(\"\"),!0):!1}function ia(t,a){ea(t,a)||ta(t,a)||zt(t,a)||aa(t,a)||qt(t,a)||Qt(t,a)||Jt(t,a)}var ke=new Map,pt=new WeakMap,bt=new WeakMap,de=class{constructor(a,e,i){this.strings=a;this.values=e;this.processor=i;this.stringsKey=this.strings.join(\"\u0001\")}get template(){if(ke.has(this.stringsKey))return ke.get(this.stringsKey);{let a=P.createElement(\"template\"),e=this.strings.length-1;return a.innerHTML=this.strings.reduce((i,r,n)=>i+r+(n<e?`{{ ${n} }}`:\"\"),\"\"),ke.set(this.stringsKey,a),a}}renderInto(a){var r;let e=this.template;if(pt.get(a)!==e){pt.set(a,e);let n=new Xt(e,this.values,this.processor);bt.set(a,n),a instanceof le?a.replace(...n.children):a.appendChild(n);return}let i=bt.get(a);(r=i==null?void 0:i.update)==null||r.call(i,this.values)}},ra={processCallback(t,a,e){var i;if(e){for(let[r,n]of a)if(r in e){let d=(i=e[r])!=null?i:\"\";ia(n,d)}}}};function Q(t,...a){return new de(t,a,ra)}function ht(t,a){t.renderInto(a)}import{StreamTypes as oa,toMuxVideoURL as gt}from\"@mux/playback-core\";var na=t=>{let{tokens:a}=t;return a.drm?\":host(:not([cast-receiver])) { --_cast-button-drm-display: none; }\":\"\"},ft=t=>Q`\n <style>\n ${na(t)}\n ${ct}\n </style>\n ${ua(t)}\n`,sa=t=>{let a=t.hotKeys?`${t.hotKeys}`:\"\";return X(t.streamType)===\"live\"&&(a+=\" noarrowleft noarrowright\"),a},da={TOP:\"top\",CENTER:\"center\",BOTTOM:\"bottom\",LAYER:\"layer\",MEDIA_LAYER:\"media-layer\",POSTER_LAYER:\"poster-layer\",VERTICAL_LAYER:\"vertical-layer\",CENTERED_LAYER:\"centered-layer\",GESTURE_LAYER:\"gesture-layer\",CONTROLLER_LAYER:\"controller\",BUTTON:\"button\",RANGE:\"range\",THUMB:\"thumb\",DISPLAY:\"display\",CONTROL_BAR:\"control-bar\",MENU_BUTTON:\"menu-button\",MENU:\"menu\",MENU_ITEM:\"menu-item\",OPTION:\"option\",POSTER:\"poster\",LIVE:\"live\",PLAY:\"play\",PRE_PLAY:\"pre-play\",SEEK_BACKWARD:\"seek-backward\",SEEK_FORWARD:\"seek-forward\",MUTE:\"mute\",CAPTIONS:\"captions\",AIRPLAY:\"airplay\",PIP:\"pip\",FULLSCREEN:\"fullscreen\",CAST:\"cast\",PLAYBACK_RATE:\"playback-rate\",VOLUME:\"volume\",TIME:\"time\",TITLE:\"title\",AUDIO_TRACK:\"audio-track\",RENDITION:\"rendition\"},la=Object.values(da).join(\", \"),ua=t=>{var a,e,i,r,n,d,l,b,S,Y,_,A,R,$,h,ie,W,Z,we,Pe,De,Ue,Ve,Be,He,Ke,$e,Fe,Ye,We,Ze,Ge,je,Xe,ze,qe,Qe,Je;return Q`\n <media-theme\n template=\"${t.themeTemplate||!1}\"\n defaultstreamtype=\"${(a=t.defaultStreamType)!=null?a:!1}\"\n hotkeys=\"${sa(t)||!1}\"\n nohotkeys=\"${t.noHotKeys||!t.hasSrc||!1}\"\n noautoseektolive=\"${!!((e=t.streamType)!=null&&e.includes(oa.LIVE))&&t.targetLiveWindow!==0}\"\n novolumepref=\"${t.novolumepref||!1}\"\n nomutedpref=\"${t.nomutedpref||!1}\"\n disabled=\"${!t.hasSrc||t.isDialogOpen}\"\n audio=\"${(i=t.audio)!=null?i:!1}\"\n style=\"${(r=it({\"--media-primary-color\":t.primaryColor,\"--media-secondary-color\":t.secondaryColor,\"--media-accent-color\":t.accentColor}))!=null?r:!1}\"\n defaultsubtitles=\"${!t.defaultHiddenCaptions}\"\n forwardseekoffset=\"${(n=t.forwardSeekOffset)!=null?n:!1}\"\n backwardseekoffset=\"${(d=t.backwardSeekOffset)!=null?d:!1}\"\n playbackrates=\"${(l=t.playbackRates)!=null?l:!1}\"\n defaultshowremainingtime=\"${(b=t.defaultShowRemainingTime)!=null?b:!1}\"\n defaultduration=\"${(S=t.defaultDuration)!=null?S:!1}\"\n hideduration=\"${(Y=t.hideDuration)!=null?Y:!1}\"\n title=\"${(_=t.title)!=null?_:!1}\"\n videotitle=\"${(A=t.videoTitle)!=null?A:!1}\"\n proudlydisplaymuxbadge=\"${(R=t.proudlyDisplayMuxBadge)!=null?R:!1}\"\n exportparts=\"${la}\"\n onclose=\"${t.onCloseErrorDialog}\"\n onfocusin=\"${t.onFocusInErrorDialog}\"\n >\n <mux-video\n slot=\"media\"\n inert=\"${($=t.noHotKeys)!=null?$:!1}\"\n target-live-window=\"${(h=t.targetLiveWindow)!=null?h:!1}\"\n stream-type=\"${(ie=X(t.streamType))!=null?ie:!1}\"\n crossorigin=\"${(W=t.crossOrigin)!=null?W:\"\"}\"\n playsinline\n autoplay=\"${(Z=t.autoplay)!=null?Z:!1}\"\n muted=\"${(we=t.muted)!=null?we:!1}\"\n loop=\"${(Pe=t.loop)!=null?Pe:!1}\"\n preload=\"${(De=t.preload)!=null?De:!1}\"\n debug=\"${(Ue=t.debug)!=null?Ue:!1}\"\n prefer-cmcd=\"${(Ve=t.preferCmcd)!=null?Ve:!1}\"\n disable-tracking=\"${(Be=t.disableTracking)!=null?Be:!1}\"\n disable-cookies=\"${(He=t.disableCookies)!=null?He:!1}\"\n prefer-playback=\"${(Ke=t.preferPlayback)!=null?Ke:!1}\"\n start-time=\"${t.startTime!=null?t.startTime:!1}\"\n beacon-collection-domain=\"${($e=t.beaconCollectionDomain)!=null?$e:!1}\"\n player-init-time=\"${(Fe=t.playerInitTime)!=null?Fe:!1}\"\n player-software-name=\"${(Ye=t.playerSoftwareName)!=null?Ye:!1}\"\n player-software-version=\"${(We=t.playerSoftwareVersion)!=null?We:!1}\"\n env-key=\"${(Ze=t.envKey)!=null?Ze:!1}\"\n custom-domain=\"${(Ge=t.customDomain)!=null?Ge:!1}\"\n src=\"${t.src?t.src:t.playbackId?gt(t):!1}\"\n cast-src=\"${t.src?t.src:t.playbackId?gt(t):!1}\"\n cast-receiver=\"${(je=t.castReceiver)!=null?je:!1}\"\n drm-token=\"${(ze=(Xe=t.tokens)==null?void 0:Xe.drm)!=null?ze:!1}\"\n exportparts=\"video\"\n disable-pseudo-ended=\"${(qe=t.disablePseudoEnded)!=null?qe:!1}\"\n max-auto-resolution=\"${(Qe=t.maxAutoResolution)!=null?Qe:!1}\"\n >\n ${t.storyboard?Q`<track label=\"thumbnails\" default kind=\"metadata\" src=\"${t.storyboard}\" />`:Q``}\n <slot></slot>\n </mux-video>\n <slot name=\"poster\" slot=\"poster\">\n <media-poster-image\n part=\"poster\"\n exportparts=\"poster, img\"\n src=\"${t.poster?t.poster:!1}\"\n placeholdersrc=\"${(Je=t.placeholder)!=null?Je:!1}\"\n ></media-poster-image>\n </slot>\n </media-theme>\n`};import{errorCategoryToTokenNameOrPrefix as yt,i18n as f,MediaError as M,MuxErrorCategory as Tt,MuxErrorCode as c}from\"@mux/playback-core\";var vt=t=>t.charAt(0).toUpperCase()+t.slice(1),ma=(t,a=!1)=>{var e,i;if(t.muxCode){let r=vt((e=t.errorCategory)!=null?e:\"video\"),n=yt((i=t.errorCategory)!=null?i:Tt.VIDEO);if(t.muxCode===c.NETWORK_OFFLINE)return f(\"Your device appears to be offline\",a);if(t.muxCode===c.NETWORK_TOKEN_EXPIRED)return f(\"{category} URL has expired\",a).format({category:r});if([c.NETWORK_TOKEN_SUB_MISMATCH,c.NETWORK_TOKEN_AUD_MISMATCH,c.NETWORK_TOKEN_AUD_MISSING,c.NETWORK_TOKEN_MALFORMED].includes(t.muxCode))return f(\"{category} URL is formatted incorrectly\",a).format({category:r});if(t.muxCode===c.NETWORK_TOKEN_MISSING)return f(\"Invalid {categoryName} URL\",a).format({categoryName:n});if(t.muxCode===c.NETWORK_NOT_FOUND)return f(\"{category} does not exist\",a).format({category:r});if(t.muxCode===c.NETWORK_NOT_READY){let d=t.streamType===\"live\"?\"Live stream\":\"Video\";return f(\"{mediaType} is not currently available\",a).format({mediaType:d})}}if(t.code){if(t.code===M.MEDIA_ERR_NETWORK)return f(\"Network Error\",a);if(t.code===M.MEDIA_ERR_DECODE)return f(\"Media Error\",a);if(t.code===M.MEDIA_ERR_SRC_NOT_SUPPORTED)return f(\"Source Not Supported\",a)}return f(\"Error\",a)},ca=(t,a=!1)=>{var e,i;if(t.muxCode){let r=vt((e=t.errorCategory)!=null?e:\"video\"),n=yt((i=t.errorCategory)!=null?i:Tt.VIDEO);return t.muxCode===c.NETWORK_OFFLINE?f(\"Check your internet connection and try reloading this video.\",a):t.muxCode===c.NETWORK_TOKEN_EXPIRED?f(\"The video\\u2019s secured {tokenNamePrefix}-token has expired.\",a).format({tokenNamePrefix:n}):t.muxCode===c.NETWORK_TOKEN_SUB_MISMATCH?f(\"The video\\u2019s playback ID does not match the one encoded in the {tokenNamePrefix}-token.\",a).format({tokenNamePrefix:n}):t.muxCode===c.NETWORK_TOKEN_MALFORMED?f(\"{category} URL is formatted incorrectly\",a).format({category:r}):[c.NETWORK_TOKEN_AUD_MISMATCH,c.NETWORK_TOKEN_AUD_MISSING].includes(t.muxCode)?f(\"The {tokenNamePrefix}-token is formatted with incorrect information.\",a).format({tokenNamePrefix:n}):[c.NETWORK_TOKEN_MISSING,c.NETWORK_INVALID_URL].includes(t.muxCode)?f(\"The video URL or {tokenNamePrefix}-token are formatted with incorrect or incomplete information.\",a).format({tokenNamePrefix:n}):t.muxCode===c.NETWORK_NOT_FOUND?\"\":t.message}return t.code&&(t.code===M.MEDIA_ERR_NETWORK||t.code===M.MEDIA_ERR_DECODE||t.code===M.MEDIA_ERR_SRC_NOT_SUPPORTED),t.message},Et=(t,a=!1)=>{let e=ma(t,a).toString(),i=ca(t,a).toString();return{title:e,message:i}},pa=t=>{if(t.muxCode){if(t.muxCode===c.NETWORK_TOKEN_EXPIRED)return\"403-expired-token.md\";if(t.muxCode===c.NETWORK_TOKEN_MALFORMED)return\"403-malformatted-token.md\";if([c.NETWORK_TOKEN_AUD_MISMATCH,c.NETWORK_TOKEN_AUD_MISSING].includes(t.muxCode))return\"403-incorrect-aud-value.md\";if(t.muxCode===c.NETWORK_TOKEN_SUB_MISMATCH)return\"403-playback-id-mismatch.md\";if(t.muxCode===c.NETWORK_TOKEN_MISSING)return\"missing-signed-tokens.md\";if(t.muxCode===c.NETWORK_NOT_FOUND)return\"404-not-found.md\";if(t.muxCode===c.NETWORK_NOT_READY)return\"412-not-playable.md\"}if(t.code){if(t.code===M.MEDIA_ERR_NETWORK)return\"\";if(t.code===M.MEDIA_ERR_DECODE)return\"media-decode-error.md\";if(t.code===M.MEDIA_ERR_SRC_NOT_SUPPORTED)return\"media-src-not-supported.md\"}return\"\"},Re=(t,a)=>{let e=pa(t);return{message:t.message,context:t.context,file:e}};var At=`<template id=\"media-theme-gerwig\">\n <style>\n @keyframes pre-play-hide {\n 0% {\n transform: scale(1);\n opacity: 1;\n }\n\n 30% {\n transform: scale(0.7);\n }\n\n 100% {\n transform: scale(1.5);\n opacity: 0;\n }\n }\n\n :host {\n --_primary-color: var(--media-primary-color, #fff);\n --_secondary-color: var(--media-secondary-color, transparent);\n --_accent-color: var(--media-accent-color, #fa50b5);\n --_text-color: var(--media-text-color, #000);\n\n --media-icon-color: var(--_primary-color);\n --media-control-background: var(--_secondary-color);\n --media-control-hover-background: var(--_accent-color);\n --media-time-buffered-color: rgba(255, 255, 255, 0.4);\n --media-preview-time-text-shadow: none;\n --media-control-height: 14px;\n --media-control-padding: 6px;\n --media-tooltip-container-margin: 6px;\n --media-tooltip-distance: 18px;\n\n color: var(--_primary-color);\n display: inline-block;\n width: 100%;\n height: 100%;\n }\n\n :host([audio]) {\n --_secondary-color: var(--media-secondary-color, black);\n --media-preview-time-text-shadow: none;\n }\n\n :host([audio]) ::slotted([slot='media']) {\n height: 0px;\n }\n\n :host([audio]) media-loading-indicator {\n display: none;\n }\n\n :host([audio]) media-controller {\n background: transparent;\n }\n\n :host([audio]) media-controller::part(vertical-layer) {\n background: transparent;\n }\n\n :host([audio]) media-control-bar {\n width: 100%;\n background-color: var(--media-control-background);\n }\n\n /*\n * 0.433s is the transition duration for VTT Regions.\n * Borrowed here, so the captions don't move too fast.\n */\n media-controller {\n --media-webkit-text-track-transform: translateY(0) scale(0.98);\n --media-webkit-text-track-transition: transform 0.433s ease-out 0.3s;\n }\n media-controller:is([mediapaused], :not([userinactive])) {\n --media-webkit-text-track-transform: translateY(-50px) scale(0.98);\n --media-webkit-text-track-transition: transform 0.15s ease;\n }\n\n /*\n * CSS specific to iOS devices.\n * See: https://stackoverflow.com/questions/30102792/css-media-query-to-target-only-ios-devices/60220757#60220757\n */\n @supports (-webkit-touch-callout: none) {\n /* Disable subtitle adjusting for iOS Safari */\n media-controller[mediaisfullscreen] {\n --media-webkit-text-track-transform: unset;\n --media-webkit-text-track-transition: unset;\n }\n }\n\n media-time-range {\n --media-box-padding-left: 6px;\n --media-box-padding-right: 6px;\n --media-range-bar-color: var(--_accent-color);\n --media-time-range-buffered-color: var(--_primary-color);\n --media-range-track-color: transparent;\n --media-range-track-background: rgba(255, 255, 255, 0.4);\n --media-range-thumb-background: radial-gradient(\n circle,\n #000 0%,\n #000 25%,\n var(--_accent-color) 25%,\n var(--_accent-color)\n );\n --media-range-thumb-width: 12px;\n --media-range-thumb-height: 12px;\n --media-range-thumb-transform: scale(0);\n --media-range-thumb-transition: transform 0.3s;\n --media-range-thumb-opacity: 1;\n --media-preview-background: var(--_primary-color);\n --media-box-arrow-background: var(--_primary-color);\n --media-preview-thumbnail-border: 5px solid var(--_primary-color);\n --media-preview-border-radius: 5px;\n --media-text-color: var(--_text-color);\n --media-control-hover-background: transparent;\n --media-preview-chapter-text-shadow: none;\n color: var(--_accent-color);\n padding: 0 6px;\n }\n\n :host([audio]) media-time-range {\n --media-preview-time-padding: 1.5px 6px;\n --media-preview-box-margin: 0 0 -5px;\n }\n\n media-time-range:hover {\n --media-range-thumb-transform: scale(1);\n }\n\n media-preview-thumbnail {\n border-bottom-width: 0;\n }\n\n [part~='menu'] {\n border-radius: 2px;\n border: 1px solid rgba(0, 0, 0, 0.1);\n bottom: 50px;\n padding: 2.5px 10px;\n }\n\n [part~='menu']::part(indicator) {\n fill: var(--_accent-color);\n }\n\n [part~='menu']::part(menu-item) {\n box-sizing: border-box;\n display: flex;\n align-items: center;\n padding: 6px 10px;\n min-height: 34px;\n }\n\n [part~='menu']::part(checked) {\n font-weight: 700;\n }\n\n media-captions-menu,\n media-rendition-menu,\n media-audio-track-menu,\n media-playback-rate-menu {\n position: absolute; /* ensure they don't take up space in DOM on load */\n --media-menu-background: var(--_primary-color);\n --media-menu-item-checked-background: transparent;\n --media-text-color: var(--_text-color);\n --media-menu-item-hover-background: transparent;\n --media-menu-item-hover-outline: var(--_accent-color) solid 1px;\n }\n\n media-rendition-menu {\n min-width: 140px;\n }\n\n /* The icon is a circle so make it 16px high instead of 14px for more balance. */\n media-audio-track-menu-button {\n --media-control-padding: 5px;\n --media-control-height: 16px;\n }\n\n media-playback-rate-menu-button {\n --media-control-padding: 6px 3px;\n min-width: 4.4ch;\n }\n\n media-playback-rate-menu {\n --media-menu-flex-direction: row;\n --media-menu-item-checked-background: var(--_accent-color);\n --media-menu-item-checked-indicator-display: none;\n margin-right: 6px;\n padding: 0;\n --media-menu-gap: 0.25em;\n }\n\n media-playback-rate-menu[part~='menu']::part(menu-item) {\n padding: 6px 6px 6px 8px;\n }\n\n media-playback-rate-menu[part~='menu']::part(checked) {\n color: #fff;\n }\n\n :host(:not([audio])) media-time-range {\n /* Adding px is required here for calc() */\n --media-range-padding: 0px;\n background: transparent;\n z-index: 10;\n height: 10px;\n bottom: -3px;\n width: 100%;\n }\n\n media-control-bar :is([role='button'], [role='switch'], button) {\n line-height: 0;\n }\n\n media-control-bar :is([part*='button'], [part*='range'], [part*='display']) {\n border-radius: 3px;\n }\n\n .spacer {\n flex-grow: 1;\n background-color: var(--media-control-background, rgba(20, 20, 30, 0.7));\n }\n\n media-control-bar[slot~='top-chrome'] {\n min-height: 42px;\n pointer-events: none;\n }\n\n media-control-bar {\n --gradient-steps:\n hsl(0 0% 0% / 0) 0%, hsl(0 0% 0% / 0.013) 8.1%, hsl(0 0% 0% / 0.049) 15.5%, hsl(0 0% 0% / 0.104) 22.5%,\n hsl(0 0% 0% / 0.175) 29%, hsl(0 0% 0% / 0.259) 35.3%, hsl(0 0% 0% / 0.352) 41.2%, hsl(0 0% 0% / 0.45) 47.1%,\n hsl(0 0% 0% / 0.55) 52.9%, hsl(0 0% 0% / 0.648) 58.8%, hsl(0 0% 0% / 0.741) 64.7%, hsl(0 0% 0% / 0.825) 71%,\n hsl(0 0% 0% / 0.896) 77.5%, hsl(0 0% 0% / 0.951) 84.5%, hsl(0 0% 0% / 0.987) 91.9%, hsl(0 0% 0%) 100%;\n }\n\n :host([title]) media-control-bar[slot='top-chrome']::before,\n :host([videotitle]) media-control-bar[slot='top-chrome']::before {\n content: '';\n position: absolute;\n width: 100%;\n padding-bottom: min(100px, 25%);\n background: linear-gradient(to top, var(--gradient-steps));\n opacity: 0.8;\n pointer-events: none;\n }\n\n :host(:not([audio])) media-control-bar[part~='bottom']::before {\n content: '';\n position: absolute;\n width: 100%;\n bottom: 0;\n left: 0;\n padding-bottom: min(100px, 25%);\n background: linear-gradient(to bottom, var(--gradient-steps));\n opacity: 0.8;\n z-index: 1;\n pointer-events: none;\n }\n\n media-control-bar[part~='bottom'] > * {\n z-index: 20;\n }\n\n media-control-bar[part~='bottom'] {\n padding: 6px 6px;\n }\n\n media-control-bar[slot~='top-chrome'] > * {\n --media-control-background: transparent;\n --media-control-hover-background: transparent;\n position: relative;\n }\n\n media-controller::part(vertical-layer) {\n transition: background-color 1s;\n }\n\n media-controller:is([mediapaused], :not([userinactive]))::part(vertical-layer) {\n background-color: var(--controls-backdrop-color, var(--controls, transparent));\n transition: background-color 0.25s;\n }\n\n .center-controls {\n --media-button-icon-width: 100%;\n --media-button-icon-height: auto;\n --media-tooltip-display: none;\n pointer-events: none;\n width: 100%;\n display: flex;\n flex-flow: row;\n align-items: center;\n justify-content: center;\n paint-order: stroke;\n stroke: rgba(102, 102, 102, 1);\n stroke-width: 0.3px;\n text-shadow:\n 0 0 2px rgb(0 0 0 / 0.25),\n 0 0 6px rgb(0 0 0 / 0.25);\n }\n\n .center-controls media-play-button {\n --media-control-background: transparent;\n --media-control-hover-background: transparent;\n --media-control-padding: 0;\n width: 40px;\n filter: drop-shadow(0 0 2px rgb(0 0 0 / 0.25)) drop-shadow(0 0 6px rgb(0 0 0 / 0.25));\n }\n\n [breakpointsm] .center-controls media-play-button {\n width: 90px;\n height: 90px;\n border-radius: 50%;\n transition: background 0.4s;\n padding: 24px;\n --media-control-background: #000;\n --media-control-hover-background: var(--_accent-color);\n }\n\n .center-controls media-seek-backward-button,\n .center-controls media-seek-forward-button {\n --media-control-background: transparent;\n --media-control-hover-background: transparent;\n padding: 0;\n margin: 0 20px;\n width: max(33px, min(8%, 40px));\n text-shadow:\n 0 0 2px rgb(0 0 0 / 0.25),\n 0 0 6px rgb(0 0 0 / 0.25);\n }\n\n [breakpointsm]:not([audio]) .center-controls.pre-playback {\n display: grid;\n align-items: initial;\n justify-content: initial;\n height: 100%;\n overflow: hidden;\n }\n\n [breakpointsm]:not([audio]) .center-controls.pre-playback media-play-button {\n place-self: var(--_pre-playback-place, center);\n grid-area: 1 / 1;\n margin: 16px;\n }\n\n /* Show and hide controls or pre-playback state */\n\n [breakpointsm]:is([mediahasplayed], :not([mediapaused])):not([audio])\n .center-controls.pre-playback\n media-play-button {\n /* Using \\`forwards\\` would lead to a laggy UI after the animation got in the end state */\n animation: 0.3s linear pre-play-hide;\n opacity: 0;\n pointer-events: none;\n }\n\n .autoplay-unmute {\n --media-control-hover-background: transparent;\n width: 100%;\n display: flex;\n align-items: center;\n justify-content: center;\n filter: drop-shadow(0 0 2px rgb(0 0 0 / 0.25)) drop-shadow(0 0 6px rgb(0 0 0 / 0.25));\n }\n\n .autoplay-unmute-btn {\n --media-control-height: 16px;\n border-radius: 8px;\n background: #000;\n color: var(--_primary-color);\n display: flex;\n align-items: center;\n padding: 8px 16px;\n font-size: 18px;\n font-weight: 500;\n cursor: pointer;\n }\n\n .autoplay-unmute-btn:hover {\n background: var(--_accent-color);\n }\n\n [breakpointsm] .autoplay-unmute-btn {\n --media-control-height: 30px;\n padding: 14px 24px;\n font-size: 26px;\n }\n\n .autoplay-unmute-btn svg {\n margin: 0 6px 0 0;\n }\n\n [breakpointsm] .autoplay-unmute-btn svg {\n margin: 0 10px 0 0;\n }\n\n media-controller:not([audio]):not([mediahasplayed]) *:is(media-control-bar, media-time-range) {\n display: none;\n }\n\n media-error-dialog:not([mediaerrorcode]) {\n opacity: 0;\n }\n\n media-loading-indicator {\n --media-loading-icon-width: 100%;\n --media-button-icon-height: auto;\n display: var(--media-control-display, var(--media-loading-indicator-display, flex));\n pointer-events: none;\n position: absolute;\n width: min(15%, 150px);\n flex-flow: row;\n align-items: center;\n justify-content: center;\n }\n\n /* Intentionally don't target the div for transition but the children\n of the div. Prevents messing with media-chrome's autohide feature. */\n media-loading-indicator + div * {\n transition: opacity 0.15s;\n opacity: 1;\n }\n\n media-loading-indicator[medialoading]:not([mediapaused]) ~ div > * {\n opacity: 0;\n transition-delay: 400ms;\n }\n\n media-volume-range {\n width: min(100%, 100px);\n --media-range-padding-left: 10px;\n --media-range-padding-right: 10px;\n --media-range-thumb-width: 12px;\n --media-range-thumb-height: 12px;\n --media-range-thumb-background: radial-gradient(\n circle,\n #000 0%,\n #000 25%,\n var(--_primary-color) 25%,\n var(--_primary-color)\n );\n --media-control-hover-background: none;\n }\n\n media-time-display {\n white-space: nowrap;\n }\n\n /* Generic style for explicitly disabled controls */\n media-control-bar[part~='bottom'] [disabled],\n media-control-bar[part~='bottom'] [aria-disabled='true'] {\n opacity: 60%;\n cursor: not-allowed;\n }\n\n media-text-display {\n --media-font-size: 16px;\n --media-control-padding: 14px;\n font-weight: 500;\n }\n\n media-play-button.animated *:is(g, path) {\n transition: all 0.3s;\n }\n\n media-play-button.animated[mediapaused] .pause-icon-pt1 {\n opacity: 0;\n }\n\n media-play-button.animated[mediapaused] .pause-icon-pt2 {\n transform-origin: center center;\n transform: scaleY(0);\n }\n\n media-play-button.animated[mediapaused] .play-icon {\n clip-path: inset(0 0 0 0);\n }\n\n media-play-button.animated:not([mediapaused]) .play-icon {\n clip-path: inset(0 0 0 100%);\n }\n\n media-seek-forward-button,\n media-seek-backward-button {\n --media-font-weight: 400;\n }\n\n .mute-icon {\n display: inline-block;\n }\n\n .mute-icon :is(path, g) {\n transition: opacity 0.5s;\n }\n\n .muted {\n opacity: 0;\n }\n\n media-mute-button[mediavolumelevel='low'] :is(.volume-medium, .volume-high),\n media-mute-button[mediavolumelevel='medium'] :is(.volume-high) {\n opacity: 0;\n }\n\n media-mute-button[mediavolumelevel='off'] .unmuted {\n opacity: 0;\n }\n\n media-mute-button[mediavolumelevel='off'] .muted {\n opacity: 1;\n }\n\n /**\n * Our defaults for these buttons are to hide them at small sizes\n * users can override this with CSS\n */\n media-controller:not([breakpointsm]):not([audio]) {\n --bottom-play-button: none;\n --bottom-seek-backward-button: none;\n --bottom-seek-forward-button: none;\n --bottom-time-display: none;\n --bottom-playback-rate-menu-button: none;\n --bottom-pip-button: none;\n }\n\n [part='mux-badge'] {\n position: absolute;\n bottom: 10px;\n right: 10px;\n z-index: 2;\n opacity: 0.6;\n transition:\n opacity 0.2s ease-in-out,\n bottom 0.2s ease-in-out;\n }\n\n [part='mux-badge']:hover {\n opacity: 1;\n }\n\n [part='mux-badge'] a {\n font-size: 14px;\n font-family: var(--_font-family);\n color: var(--_primary-color);\n text-decoration: none;\n display: flex;\n align-items: center;\n gap: 5px;\n }\n\n [part='mux-badge'] .mux-badge-text {\n transition: opacity 0.5s ease-in-out;\n opacity: 0;\n }\n\n [part='mux-badge'] .mux-badge-logo {\n width: 40px;\n height: auto;\n display: inline-block;\n }\n\n [part='mux-badge'] .mux-badge-logo svg {\n width: 100%;\n height: 100%;\n fill: white;\n }\n\n media-controller:not([userinactive]):not([mediahasplayed]) [part='mux-badge'],\n media-controller:not([userinactive]) [part='mux-badge'],\n media-controller[mediahasplayed][mediapaused] [part='mux-badge'] {\n transition: bottom 0.1s ease-in-out;\n }\n\n media-controller[userinactive]:not([mediapaused]) [part='mux-badge'] {\n transition: bottom 0.2s ease-in-out 0.62s;\n }\n\n media-controller:not([userinactive]) [part='mux-badge'] .mux-badge-text,\n media-controller[mediahasplayed][mediapaused] [part='mux-badge'] .mux-badge-text {\n opacity: 1;\n }\n\n media-controller[userinactive]:not([mediapaused]) [part='mux-badge'] .mux-badge-text {\n opacity: 0;\n }\n\n media-controller[userinactive]:not([mediapaused]) [part='mux-badge'] {\n bottom: 10px;\n }\n\n media-controller:not([userinactive]):not([mediahasplayed]) [part='mux-badge'] {\n bottom: 10px;\n }\n\n media-controller:not([userinactive])[mediahasplayed] [part='mux-badge'],\n media-controller[mediahasplayed][mediapaused] [part='mux-badge'] {\n bottom: calc(28px + var(--media-control-height, 0px) + var(--media-control-padding, 0px) * 2);\n }\n </style>\n\n <template partial=\"TitleDisplay\">\n <template if=\"videotitle\">\n <template if=\"videotitle != true\">\n <media-text-display part=\"top title display\" class=\"title-display\">{{videotitle}}</media-text-display>\n </template>\n </template>\n <template if=\"!videotitle\">\n <template if=\"title\">\n <media-text-display part=\"top title display\" class=\"title-display\">{{title}}</media-text-display>\n </template>\n </template>\n </template>\n\n <template partial=\"PlayButton\">\n <media-play-button\n part=\"{{section ?? 'bottom'}} play button\"\n disabled=\"{{disabled}}\"\n aria-disabled=\"{{disabled}}\"\n class=\"animated\"\n >\n <svg aria-hidden=\"true\" viewBox=\"0 0 18 14\" slot=\"icon\">\n <g class=\"play-icon\">\n <path\n d=\"M15.5987 6.2911L3.45577 0.110898C2.83667 -0.204202 2.06287 0.189698 2.06287 0.819798V13.1802C2.06287 13.8103 2.83667 14.2042 3.45577 13.8891L15.5987 7.7089C16.2178 7.3938 16.2178 6.6061 15.5987 6.2911Z\"\n />\n </g>\n <g class=\"pause-icon\">\n <path\n class=\"pause-icon-pt1\"\n d=\"M5.90709 0H2.96889C2.46857 0 2.06299 0.405585 2.06299 0.9059V13.0941C2.06299 13.5944 2.46857 14 2.96889 14H5.90709C6.4074 14 6.81299 13.5944 6.81299 13.0941V0.9059C6.81299 0.405585 6.4074 0 5.90709 0Z\"\n />\n <path\n class=\"pause-icon-pt2\"\n d=\"M15.1571 0H12.2189C11.7186 0 11.313 0.405585 11.313 0.9059V13.0941C11.313 13.5944 11.7186 14 12.2189 14H15.1571C15.6574 14 16.063 13.5944 16.063 13.0941V0.9059C16.063 0.405585 15.6574 0 15.1571 0Z\"\n />\n </g>\n </svg>\n </media-play-button>\n </template>\n\n <template partial=\"PrePlayButton\">\n <media-play-button\n part=\"{{section ?? 'center'}} play button pre-play\"\n disabled=\"{{disabled}}\"\n aria-disabled=\"{{disabled}}\"\n >\n <svg aria-hidden=\"true\" viewBox=\"0 0 18 14\" slot=\"icon\" style=\"transform: translate(3px, 0)\">\n <path\n d=\"M15.5987 6.2911L3.45577 0.110898C2.83667 -0.204202 2.06287 0.189698 2.06287 0.819798V13.1802C2.06287 13.8103 2.83667 14.2042 3.45577 13.8891L15.5987 7.7089C16.2178 7.3938 16.2178 6.6061 15.5987 6.2911Z\"\n />\n </svg>\n </media-play-button>\n </template>\n\n <template partial=\"SeekBackwardButton\">\n <media-seek-backward-button\n seekoffset=\"{{backwardseekoffset}}\"\n part=\"{{section ?? 'bottom'}} seek-backward button\"\n disabled=\"{{disabled}}\"\n aria-disabled=\"{{disabled}}\"\n >\n <svg viewBox=\"0 0 22 14\" aria-hidden=\"true\" slot=\"icon\">\n <path\n d=\"M3.65 2.07888L0.0864 6.7279C-0.0288 6.87812 -0.0288 7.12188 0.0864 7.2721L3.65 11.9211C3.7792 12.0896 4 11.9703 4 11.7321V2.26787C4 2.02968 3.7792 1.9104 3.65 2.07888Z\"\n />\n <text transform=\"translate(6 12)\" style=\"font-size: 14px; font-family: 'ArialMT', 'Arial'\">\n {{backwardseekoffset}}\n </text>\n </svg>\n </media-seek-backward-button>\n </template>\n\n <template partial=\"SeekForwardButton\">\n <media-seek-forward-button\n seekoffset=\"{{forwardseekoffset}}\"\n part=\"{{section ?? 'bottom'}} seek-forward button\"\n disabled=\"{{disabled}}\"\n aria-disabled=\"{{disabled}}\"\n >\n <svg viewBox=\"0 0 22 14\" aria-hidden=\"true\" slot=\"icon\">\n <g>\n <text transform=\"translate(-1 12)\" style=\"font-size: 14px; font-family: 'ArialMT', 'Arial'\">\n {{forwardseekoffset}}\n </text>\n <path\n d=\"M18.35 11.9211L21.9136 7.2721C22.0288 7.12188 22.0288 6.87812 21.9136 6.7279L18.35 2.07888C18.2208 1.91041 18 2.02968 18 2.26787V11.7321C18 11.9703 18.2208 12.0896 18.35 11.9211Z\"\n />\n </g>\n </svg>\n </media-seek-forward-button>\n </template>\n\n <template partial=\"MuteButton\">\n <media-mute-button part=\"bottom mute button\" disabled=\"{{disabled}}\" aria-disabled=\"{{disabled}}\">\n <svg viewBox=\"0 0 18 14\" slot=\"icon\" class=\"mute-icon\" aria-hidden=\"true\">\n <g class=\"unmuted\">\n <path\n d=\"M6.76786 1.21233L3.98606 3.98924H1.19937C0.593146 3.98924 0.101743 4.51375 0.101743 5.1607V6.96412L0 6.99998L0.101743 7.03583V8.83926C0.101743 9.48633 0.593146 10.0108 1.19937 10.0108H3.98606L6.76773 12.7877C7.23561 13.2547 8 12.9007 8 12.2171V1.78301C8 1.09925 7.23574 0.745258 6.76786 1.21233Z\"\n />\n <path\n class=\"volume-low\"\n d=\"M10 3.54781C10.7452 4.55141 11.1393 5.74511 11.1393 6.99991C11.1393 8.25471 10.7453 9.44791 10 10.4515L10.7988 11.0496C11.6734 9.87201 12.1356 8.47161 12.1356 6.99991C12.1356 5.52821 11.6735 4.12731 10.7988 2.94971L10 3.54781Z\"\n />\n <path\n class=\"volume-medium\"\n d=\"M12.3778 2.40086C13.2709 3.76756 13.7428 5.35806 13.7428 7.00026C13.7428 8.64246 13.2709 10.233 12.3778 11.5992L13.2106 12.1484C14.2107 10.6185 14.739 8.83796 14.739 7.00016C14.739 5.16236 14.2107 3.38236 13.2106 1.85156L12.3778 2.40086Z\"\n />\n <path\n class=\"volume-high\"\n d=\"M15.5981 0.75L14.7478 1.2719C15.7937 2.9919 16.3468 4.9723 16.3468 7C16.3468 9.0277 15.7937 11.0082 14.7478 12.7281L15.5981 13.25C16.7398 11.3722 17.343 9.211 17.343 7C17.343 4.789 16.7398 2.6268 15.5981 0.75Z\"\n />\n </g>\n <g class=\"muted\">\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M4.39976 4.98924H1.19937C1.19429 4.98924 1.17777 4.98961 1.15296 5.01609C1.1271 5.04369 1.10174 5.09245 1.10174 5.1607V8.83926C1.10174 8.90761 1.12714 8.95641 1.15299 8.984C1.17779 9.01047 1.1943 9.01084 1.19937 9.01084H4.39977L7 11.6066V2.39357L4.39976 4.98924ZM7.47434 1.92006C7.4743 1.9201 7.47439 1.92002 7.47434 1.92006V1.92006ZM6.76773 12.7877L3.98606 10.0108H1.19937C0.593146 10.0108 0.101743 9.48633 0.101743 8.83926V7.03583L0 6.99998L0.101743 6.96412V5.1607C0.101743 4.51375 0.593146 3.98924 1.19937 3.98924H3.98606L6.76786 1.21233C7.23574 0.745258 8 1.09925 8 1.78301V12.2171C8 12.9007 7.23561 13.2547 6.76773 12.7877Z\"\n />\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M15.2677 9.30323C15.463 9.49849 15.7796 9.49849 15.9749 9.30323C16.1701 9.10796 16.1701 8.79138 15.9749 8.59612L14.2071 6.82841L15.9749 5.06066C16.1702 4.8654 16.1702 4.54882 15.9749 4.35355C15.7796 4.15829 15.4631 4.15829 15.2678 4.35355L13.5 6.1213L11.7322 4.35348C11.537 4.15822 11.2204 4.15822 11.0251 4.35348C10.8298 4.54874 10.8298 4.86532 11.0251 5.06058L12.7929 6.82841L11.0251 8.59619C10.8299 8.79146 10.8299 9.10804 11.0251 9.3033C11.2204 9.49856 11.537 9.49856 11.7323 9.3033L13.5 7.53552L15.2677 9.30323Z\"\n />\n </g>\n </svg>\n </media-mute-button>\n </template>\n\n <template partial=\"PipButton\">\n <media-pip-button part=\"bottom pip button\" disabled=\"{{disabled}}\" aria-disabled=\"{{disabled}}\">\n <svg viewBox=\"0 0 18 14\" aria-hidden=\"true\" slot=\"icon\">\n <path\n d=\"M15.9891 0H2.011C0.9004 0 0 0.9003 0 2.0109V11.989C0 13.0996 0.9004 14 2.011 14H15.9891C17.0997 14 18 13.0997 18 11.9891V2.0109C18 0.9003 17.0997 0 15.9891 0ZM17 11.9891C17 12.5465 16.5465 13 15.9891 13H2.011C1.4536 13 1.0001 12.5465 1.0001 11.9891V2.0109C1.0001 1.4535 1.4536 0.9999 2.011 0.9999H15.9891C16.5465 0.9999 17 1.4535 17 2.0109V11.9891Z\"\n />\n <path\n d=\"M15.356 5.67822H8.19523C8.03253 5.67822 7.90063 5.81012 7.90063 5.97282V11.3836C7.90063 11.5463 8.03253 11.6782 8.19523 11.6782H15.356C15.5187 11.6782 15.6506 11.5463 15.6506 11.3836V5.97282C15.6506 5.81012 15.5187 5.67822 15.356 5.67822Z\"\n />\n </svg>\n </media-pip-button>\n </template>\n\n <template partial=\"CaptionsMenu\">\n <media-captions-menu-button part=\"bottom captions button\">\n <svg aria-hidden=\"true\" viewBox=\"0 0 18 14\" slot=\"on\">\n <path\n d=\"M15.989 0H2.011C0.9004 0 0 0.9003 0 2.0109V11.9891C0 13.0997 0.9004 14 2.011 14H15.989C17.0997 14 18 13.0997 18 11.9891V2.0109C18 0.9003 17.0997 0 15.989 0ZM4.2292 8.7639C4.5954 9.1902 5.0935 9.4031 5.7233 9.4031C6.1852 9.4031 6.5544 9.301 6.8302 9.0969C7.1061 8.8933 7.2863 8.614 7.3702 8.26H8.4322C8.3062 8.884 8.0093 9.3733 7.5411 9.7273C7.0733 10.0813 6.4703 10.2581 5.732 10.2581C5.108 10.2581 4.5699 10.1219 4.1168 9.8489C3.6637 9.5759 3.3141 9.1946 3.0685 8.7058C2.8224 8.2165 2.6994 7.6511 2.6994 7.009C2.6994 6.3611 2.8224 5.7927 3.0685 5.3034C3.3141 4.8146 3.6637 4.4323 4.1168 4.1559C4.5699 3.88 5.108 3.7418 5.732 3.7418C6.4703 3.7418 7.0733 3.922 7.5411 4.2818C8.0094 4.6422 8.3062 5.1461 8.4322 5.794H7.3702C7.2862 5.4283 7.106 5.1368 6.8302 4.921C6.5544 4.7052 6.1852 4.5968 5.7233 4.5968C5.0934 4.5968 4.5954 4.8116 4.2292 5.2404C3.8635 5.6696 3.6804 6.259 3.6804 7.009C3.6804 7.7531 3.8635 8.3381 4.2292 8.7639ZM11.0974 8.7639C11.4636 9.1902 11.9617 9.4031 12.5915 9.4031C13.0534 9.4031 13.4226 9.301 13.6984 9.0969C13.9743 8.8933 14.1545 8.614 14.2384 8.26H15.3004C15.1744 8.884 14.8775 9.3733 14.4093 9.7273C13.9415 10.0813 13.3385 10.2581 12.6002 10.2581C11.9762 10.2581 11.4381 10.1219 10.985 9.8489C10.5319 9.5759 10.1823 9.1946 9.9367 8.7058C9.6906 8.2165 9.5676 7.6511 9.5676 7.009C9.5676 6.3611 9.6906 5.7927 9.9367 5.3034C10.1823 4.8146 10.5319 4.4323 10.985 4.1559C11.4381 3.88 11.9762 3.7418 12.6002 3.7418C13.3385 3.7418 13.9415 3.922 14.4093 4.2818C14.8776 4.6422 15.1744 5.1461 15.3004 5.794H14.2384C14.1544 5.4283 13.9742 5.1368 13.6984 4.921C13.4226 4.7052 13.0534 4.5968 12.5915 4.5968C11.9616 4.5968 11.4636 4.8116 11.0974 5.2404C10.7317 5.6696 10.5486 6.259 10.5486 7.009C10.5486 7.7531 10.7317 8.3381 11.0974 8.7639Z\"\n />\n </svg>\n <svg aria-hidden=\"true\" viewBox=\"0 0 18 14\" slot=\"off\">\n <path\n d=\"M5.73219 10.258C5.10819 10.258 4.57009 10.1218 4.11699 9.8488C3.66389 9.5758 3.31429 9.1945 3.06869 8.7057C2.82259 8.2164 2.69958 7.651 2.69958 7.0089C2.69958 6.361 2.82259 5.7926 3.06869 5.3033C3.31429 4.8145 3.66389 4.4322 4.11699 4.1558C4.57009 3.8799 5.10819 3.7417 5.73219 3.7417C6.47049 3.7417 7.07348 3.9219 7.54128 4.2817C8.00958 4.6421 8.30638 5.146 8.43238 5.7939H7.37039C7.28639 5.4282 7.10618 5.1367 6.83039 4.9209C6.55459 4.7051 6.18538 4.5967 5.72348 4.5967C5.09358 4.5967 4.59559 4.8115 4.22939 5.2403C3.86369 5.6695 3.68058 6.2589 3.68058 7.0089C3.68058 7.753 3.86369 8.338 4.22939 8.7638C4.59559 9.1901 5.09368 9.403 5.72348 9.403C6.18538 9.403 6.55459 9.3009 6.83039 9.0968C7.10629 8.8932 7.28649 8.6139 7.37039 8.2599H8.43238C8.30638 8.8839 8.00948 9.3732 7.54128 9.7272C7.07348 10.0812 6.47049 10.258 5.73219 10.258Z\"\n />\n <path\n d=\"M12.6003 10.258C11.9763 10.258 11.4382 10.1218 10.9851 9.8488C10.532 9.5758 10.1824 9.1945 9.93685 8.7057C9.69075 8.2164 9.56775 7.651 9.56775 7.0089C9.56775 6.361 9.69075 5.7926 9.93685 5.3033C10.1824 4.8145 10.532 4.4322 10.9851 4.1558C11.4382 3.8799 11.9763 3.7417 12.6003 3.7417C13.3386 3.7417 13.9416 3.9219 14.4094 4.2817C14.8777 4.6421 15.1745 5.146 15.3005 5.7939H14.2385C14.1545 5.4282 13.9743 5.1367 13.6985 4.9209C13.4227 4.7051 13.0535 4.5967 12.5916 4.5967C11.9617 4.5967 11.4637 4.8115 11.0975 5.2403C10.7318 5.6695 10.5487 6.2589 10.5487 7.0089C10.5487 7.753 10.7318 8.338 11.0975 8.7638C11.4637 9.1901 11.9618 9.403 12.5916 9.403C13.0535 9.403 13.4227 9.3009 13.6985 9.0968C13.9744 8.8932 14.1546 8.6139 14.2385 8.2599H15.3005C15.1745 8.8839 14.8776 9.3732 14.4094 9.7272C13.9416 10.0812 13.3386 10.258 12.6003 10.258Z\"\n />\n <path\n d=\"M15.9891 1C16.5465 1 17 1.4535 17 2.011V11.9891C17 12.5465 16.5465 13 15.9891 13H2.0109C1.4535 13 1 12.5465 1 11.9891V2.0109C1 1.4535 1.4535 0.9999 2.0109 0.9999L15.9891 1ZM15.9891 0H2.0109C0.9003 0 0 0.9003 0 2.0109V11.9891C0 13.0997 0.9003 14 2.0109 14H15.9891C17.0997 14 18 13.0997 18 11.9891V2.0109C18 0.9003 17.0997 0 15.9891 0Z\"\n />\n </svg>\n </media-captions-menu-button>\n <media-captions-menu\n hidden\n anchor=\"auto\"\n part=\"bottom captions menu\"\n disabled=\"{{disabled}}\"\n aria-disabled=\"{{disabled}}\"\n exportparts=\"menu-item\"\n >\n <div slot=\"checked-indicator\">\n <style>\n .indicator {\n position: relative;\n top: 1px;\n width: 0.9em;\n height: auto;\n fill: var(--_accent-color);\n margin-right: 5px;\n }\n\n [aria-checked='false'] .indicator {\n display: none;\n }\n </style>\n <svg viewBox=\"0 0 14 18\" class=\"indicator\">\n <path\n d=\"M12.252 3.48c-.115.033-.301.161-.425.291-.059.063-1.407 1.815-2.995 3.894s-2.897 3.79-2.908 3.802c-.013.014-.661-.616-1.672-1.624-.908-.905-1.702-1.681-1.765-1.723-.401-.27-.783-.211-1.176.183a1.285 1.285 0 0 0-.261.342.582.582 0 0 0-.082.35c0 .165.01.205.08.35.075.153.213.296 2.182 2.271 1.156 1.159 2.17 2.159 2.253 2.222.189.143.338.196.539.194.203-.003.412-.104.618-.299.205-.193 6.7-8.693 6.804-8.903a.716.716 0 0 0 .085-.345c.01-.179.005-.203-.062-.339-.124-.252-.45-.531-.746-.639a.784.784 0 0 0-.469-.027\"\n fill-rule=\"evenodd\"\n />\n </svg></div\n ></media-captions-menu>\n </template>\n\n <template partial=\"AirplayButton\">\n <media-airplay-button part=\"bottom airplay button\" disabled=\"{{disabled}}\" aria-disabled=\"{{disabled}}\">\n <svg viewBox=\"0 0 18 14\" aria-hidden=\"true\" slot=\"icon\">\n <path\n d=\"M16.1383 0H1.8618C0.8335 0 0 0.8335 0 1.8617V10.1382C0 11.1664 0.8335 12 1.8618 12H3.076C3.1204 11.9433 3.1503 11.8785 3.2012 11.826L4.004 11H1.8618C1.3866 11 1 10.6134 1 10.1382V1.8617C1 1.3865 1.3866 0.9999 1.8618 0.9999H16.1383C16.6135 0.9999 17.0001 1.3865 17.0001 1.8617V10.1382C17.0001 10.6134 16.6135 11 16.1383 11H13.9961L14.7989 11.826C14.8499 11.8785 14.8798 11.9432 14.9241 12H16.1383C17.1665 12 18.0001 11.1664 18.0001 10.1382V1.8617C18 0.8335 17.1665 0 16.1383 0Z\"\n />\n <path\n d=\"M9.55061 8.21903C9.39981 8.06383 9.20001 7.98633 9.00011 7.98633C8.80021 7.98633 8.60031 8.06383 8.44951 8.21903L4.09771 12.697C3.62471 13.1838 3.96961 13.9998 4.64831 13.9998H13.3518C14.0304 13.9998 14.3754 13.1838 13.9023 12.697L9.55061 8.21903Z\"\n />\n </svg>\n </media-airplay-button>\n </template>\n\n <template partial=\"FullscreenButton\">\n <media-fullscreen-button part=\"bottom fullscreen button\" disabled=\"{{disabled}}\" aria-disabled=\"{{disabled}}\">\n <svg viewBox=\"0 0 18 14\" aria-hidden=\"true\" slot=\"enter\">\n <path\n d=\"M1.00745 4.39539L1.01445 1.98789C1.01605 1.43049 1.47085 0.978289 2.02835 0.979989L6.39375 0.992589L6.39665 -0.007411L2.03125 -0.020011C0.920646 -0.023211 0.0176463 0.874489 0.0144463 1.98509L0.00744629 4.39539H1.00745Z\"\n />\n <path\n d=\"M17.0144 2.03431L17.0076 4.39541H18.0076L18.0144 2.03721C18.0176 0.926712 17.1199 0.0237125 16.0093 0.0205125L11.6439 0.0078125L11.641 1.00781L16.0064 1.02041C16.5638 1.02201 17.016 1.47681 17.0144 2.03431Z\"\n />\n <path\n d=\"M16.9925 9.60498L16.9855 12.0124C16.9839 12.5698 16.5291 13.022 15.9717 13.0204L11.6063 13.0078L11.6034 14.0078L15.9688 14.0204C17.0794 14.0236 17.9823 13.1259 17.9855 12.0153L17.9925 9.60498H16.9925Z\"\n />\n <path\n d=\"M0.985626 11.9661L0.992426 9.60498H-0.0074737L-0.0142737 11.9632C-0.0174737 13.0738 0.880226 13.9767 1.99083 13.98L6.35623 13.9926L6.35913 12.9926L1.99373 12.98C1.43633 12.9784 0.983926 12.5236 0.985626 11.9661Z\"\n />\n </svg>\n <svg viewBox=\"0 0 18 14\" aria-hidden=\"true\" slot=\"exit\">\n <path\n d=\"M5.39655 -0.0200195L5.38955 2.38748C5.38795 2.94488 4.93315 3.39708 4.37565 3.39538L0.0103463 3.38278L0.00744629 4.38278L4.37285 4.39538C5.48345 4.39858 6.38635 3.50088 6.38965 2.39028L6.39665 -0.0200195H5.39655Z\"\n />\n <path\n d=\"M12.6411 2.36891L12.6479 0.0078125H11.6479L11.6411 2.36601C11.6379 3.47651 12.5356 4.37951 13.6462 4.38271L18.0116 4.39531L18.0145 3.39531L13.6491 3.38271C13.0917 3.38111 12.6395 2.92641 12.6411 2.36891Z\"\n />\n <path\n d=\"M12.6034 14.0204L12.6104 11.613C12.612 11.0556 13.0668 10.6034 13.6242 10.605L17.9896 10.6176L17.9925 9.61759L13.6271 9.60499C12.5165 9.60179 11.6136 10.4995 11.6104 11.6101L11.6034 14.0204H12.6034Z\"\n />\n <path\n d=\"M5.359 11.6315L5.3522 13.9926H6.3522L6.359 11.6344C6.3622 10.5238 5.4645 9.62088 4.3539 9.61758L-0.0115043 9.60498L-0.0144043 10.605L4.351 10.6176C4.9084 10.6192 5.3607 11.074 5.359 11.6315Z\"\n />\n </svg>\n </media-fullscreen-button>\n </template>\n\n <template partial=\"CastButton\">\n <media-cast-button part=\"bottom cast button\" disabled=\"{{disabled}}\" aria-disabled=\"{{disabled}}\">\n <svg viewBox=\"0 0 18 14\" aria-hidden=\"true\" slot=\"enter\">\n <path\n d=\"M16.0072 0H2.0291C0.9185 0 0.0181 0.9003 0.0181 2.011V5.5009C0.357 5.5016 0.6895 5.5275 1.0181 5.5669V2.011C1.0181 1.4536 1.4716 1 2.029 1H16.0072C16.5646 1 17.0181 1.4536 17.0181 2.011V11.9891C17.0181 12.5465 16.5646 13 16.0072 13H8.4358C8.4746 13.3286 8.4999 13.6611 8.4999 13.9999H16.0071C17.1177 13.9999 18.018 13.0996 18.018 11.989V2.011C18.0181 0.9003 17.1178 0 16.0072 0ZM0 6.4999V7.4999C3.584 7.4999 6.5 10.4159 6.5 13.9999H7.5C7.5 9.8642 4.1357 6.4999 0 6.4999ZM0 8.7499V9.7499C2.3433 9.7499 4.25 11.6566 4.25 13.9999H5.25C5.25 11.1049 2.895 8.7499 0 8.7499ZM0.0181 11V14H3.0181C3.0181 12.3431 1.675 11 0.0181 11Z\"\n />\n </svg>\n <svg viewBox=\"0 0 18 14\" aria-hidden=\"true\" slot=\"exit\">\n <path\n d=\"M15.9891 0H2.01103C0.900434 0 3.35947e-05 0.9003 3.35947e-05 2.011V5.5009C0.338934 5.5016 0.671434 5.5275 1.00003 5.5669V2.011C1.00003 1.4536 1.45353 1 2.01093 1H15.9891C16.5465 1 17 1.4536 17 2.011V11.9891C17 12.5465 16.5465 13 15.9891 13H8.41773C8.45653 13.3286 8.48183 13.6611 8.48183 13.9999H15.989C17.0996 13.9999 17.9999 13.0996 17.9999 11.989V2.011C18 0.9003 17.0997 0 15.9891 0ZM-0.0180664 6.4999V7.4999C3.56593 7.4999 6.48193 10.4159 6.48193 13.9999H7.48193C7.48193 9.8642 4.11763 6.4999 -0.0180664 6.4999ZM-0.0180664 8.7499V9.7499C2.32523 9.7499 4.23193 11.6566 4.23193 13.9999H5.23193C5.23193 11.1049 2.87693 8.7499 -0.0180664 8.7499ZM3.35947e-05 11V14H3.00003C3.00003 12.3431 1.65693 11 3.35947e-05 11Z\"\n />\n <path d=\"M2.15002 5.634C5.18352 6.4207 7.57252 8.8151 8.35282 11.8499H15.8501V2.1499H2.15002V5.634Z\" />\n </svg>\n </media-cast-button>\n </template>\n\n <template partial=\"LiveButton\">\n <media-live-button part=\"{{section ?? 'top'}} live button\" disabled=\"{{disabled}}\" aria-disabled=\"{{disabled}}\">\n <span slot=\"text\">Live</span>\n </media-live-button>\n </template>\n\n <template partial=\"PlaybackRateMenu\">\n <media-playback-rate-menu-button part=\"bottom playback-rate button\"></media-playback-rate-menu-button>\n <media-playback-rate-menu\n hidden\n anchor=\"auto\"\n rates=\"{{playbackrates}}\"\n exportparts=\"menu-item\"\n part=\"bottom playback-rate menu\"\n disabled=\"{{disabled}}\"\n aria-disabled=\"{{disabled}}\"\n ></media-playback-rate-menu>\n </template>\n\n <template partial=\"VolumeRange\">\n <media-volume-range\n part=\"bottom volume range\"\n disabled=\"{{disabled}}\"\n aria-disabled=\"{{disabled}}\"\n ></media-volume-range>\n </template>\n\n <template partial=\"TimeDisplay\">\n <media-time-display\n remaining=\"{{defaultshowremainingtime}}\"\n showduration=\"{{!hideduration}}\"\n part=\"bottom time display\"\n disabled=\"{{disabled}}\"\n aria-disabled=\"{{disabled}}\"\n ></media-time-display>\n </template>\n\n <template partial=\"TimeRange\">\n <media-time-range part=\"bottom time range\" disabled=\"{{disabled}}\" aria-disabled=\"{{disabled}}\" exportparts=\"thumb\">\n <media-preview-thumbnail slot=\"preview\"></media-preview-thumbnail>\n <media-preview-chapter-display slot=\"preview\"></media-preview-chapter-display>\n <media-preview-time-display slot=\"preview\"></media-preview-time-display>\n <div slot=\"preview\" part=\"arrow\"></div>\n </media-time-range>\n </template>\n\n <template partial=\"AudioTrackMenu\">\n <media-audio-track-menu-button part=\"bottom audio-track button\">\n <svg aria-hidden=\"true\" slot=\"icon\" viewBox=\"0 0 18 16\">\n <path d=\"M9 15A7 7 0 1 1 9 1a7 7 0 0 1 0 14Zm0 1A8 8 0 1 0 9 0a8 8 0 0 0 0 16Z\" />\n <path\n d=\"M5.2 6.3a.5.5 0 0 1 .5.5v2.4a.5.5 0 1 1-1 0V6.8a.5.5 0 0 1 .5-.5Zm2.4-2.4a.5.5 0 0 1 .5.5v7.2a.5.5 0 0 1-1 0V4.4a.5.5 0 0 1 .5-.5ZM10 5.5a.5.5 0 0 1 .5.5v4a.5.5 0 0 1-1 0V6a.5.5 0 0 1 .5-.5Zm2.4-.8a.5.5 0 0 1 .5.5v5.6a.5.5 0 0 1-1 0V5.2a.5.5 0 0 1 .5-.5Z\"\n />\n </svg>\n </media-audio-track-menu-button>\n <media-audio-track-menu\n hidden\n anchor=\"auto\"\n part=\"bottom audio-track menu\"\n disabled=\"{{disabled}}\"\n aria-disabled=\"{{disabled}}\"\n exportparts=\"menu-item\"\n >\n <div slot=\"checked-indicator\">\n <style>\n .indicator {\n position: relative;\n top: 1px;\n width: 0.9em;\n height: auto;\n fill: var(--_accent-color);\n margin-right: 5px;\n }\n\n [aria-checked='false'] .indicator {\n display: none;\n }\n </style>\n <svg viewBox=\"0 0 14 18\" class=\"indicator\">\n <path\n d=\"M12.252 3.48c-.115.033-.301.161-.425.291-.059.063-1.407 1.815-2.995 3.894s-2.897 3.79-2.908 3.802c-.013.014-.661-.616-1.672-1.624-.908-.905-1.702-1.681-1.765-1.723-.401-.27-.783-.211-1.176.183a1.285 1.285 0 0 0-.261.342.582.582 0 0 0-.082.35c0 .165.01.205.08.35.075.153.213.296 2.182 2.271 1.156 1.159 2.17 2.159 2.253 2.222.189.143.338.196.539.194.203-.003.412-.104.618-.299.205-.193 6.7-8.693 6.804-8.903a.716.716 0 0 0 .085-.345c.01-.179.005-.203-.062-.339-.124-.252-.45-.531-.746-.639a.784.784 0 0 0-.469-.027\"\n fill-rule=\"evenodd\"\n />\n </svg>\n </div>\n </media-audio-track-menu>\n </template>\n\n <template partial=\"RenditionMenu\">\n <media-rendition-menu-button part=\"bottom rendition button\">\n <svg aria-hidden=\"true\" slot=\"icon\" viewBox=\"0 0 18 14\">\n <path\n d=\"M2.25 9a2 2 0 1 0 0-4 2 2 0 0 0 0 4ZM9 9a2 2 0 1 0 0-4 2 2 0 0 0 0 4Zm6.75 0a2 2 0 1 0 0-4 2 2 0 0 0 0 4Z\"\n />\n </svg>\n </media-rendition-menu-button>\n <media-rendition-menu\n hidden\n anchor=\"auto\"\n part=\"bottom rendition menu\"\n disabled=\"{{disabled}}\"\n aria-disabled=\"{{disabled}}\"\n >\n <div slot=\"checked-indicator\">\n <style>\n .indicator {\n position: relative;\n top: 1px;\n width: 0.9em;\n height: auto;\n fill: var(--_accent-color);\n margin-right: 5px;\n }\n\n [aria-checked='false'] .indicator {\n opacity: 0;\n }\n </style>\n <svg viewBox=\"0 0 14 18\" class=\"indicator\">\n <path\n d=\"M12.252 3.48c-.115.033-.301.161-.425.291-.059.063-1.407 1.815-2.995 3.894s-2.897 3.79-2.908 3.802c-.013.014-.661-.616-1.672-1.624-.908-.905-1.702-1.681-1.765-1.723-.401-.27-.783-.211-1.176.183a1.285 1.285 0 0 0-.261.342.582.582 0 0 0-.082.35c0 .165.01.205.08.35.075.153.213.296 2.182 2.271 1.156 1.159 2.17 2.159 2.253 2.222.189.143.338.196.539.194.203-.003.412-.104.618-.299.205-.193 6.7-8.693 6.804-8.903a.716.716 0 0 0 .085-.345c.01-.179.005-.203-.062-.339-.124-.252-.45-.531-.746-.639a.784.784 0 0 0-.469-.027\"\n fill-rule=\"evenodd\"\n />\n </svg>\n </div>\n </media-rendition-menu>\n </template>\n\n <template partial=\"MuxBadge\">\n <div part=\"mux-badge\">\n <a href=\"https://www.mux.com/player\" target=\"_blank\">\n <span class=\"mux-badge-text\">Powered by</span>\n <div class=\"mux-badge-logo\">\n <svg\n viewBox=\"0 0 1600 500\"\n style=\"fill-rule: evenodd; clip-rule: evenodd; stroke-linejoin: round; stroke-miterlimit: 2\"\n >\n <g>\n <path\n d=\"M994.287,93.486c-17.121,-0 -31,-13.879 -31,-31c0,-17.121 13.879,-31 31,-31c17.121,-0 31,13.879 31,31c0,17.121 -13.879,31 -31,31m0,-93.486c-34.509,-0 -62.484,27.976 -62.484,62.486l0,187.511c0,68.943 -56.09,125.033 -125.032,125.033c-68.942,-0 -125.03,-56.09 -125.03,-125.033l0,-187.511c0,-34.51 -27.976,-62.486 -62.485,-62.486c-34.509,-0 -62.484,27.976 -62.484,62.486l0,187.511c0,137.853 112.149,250.003 249.999,250.003c137.851,-0 250.001,-112.15 250.001,-250.003l0,-187.511c0,-34.51 -27.976,-62.486 -62.485,-62.486\"\n style=\"fill-rule: nonzero\"\n ></path>\n <path\n d=\"M1537.51,468.511c-17.121,-0 -31,-13.879 -31,-31c0,-17.121 13.879,-31 31,-31c17.121,-0 31,13.879 31,31c0,17.121 -13.879,31 -31,31m-275.883,-218.509l-143.33,143.329c-24.402,24.402 -24.402,63.966 0,88.368c24.402,24.402 63.967,24.402 88.369,-0l143.33,-143.329l143.328,143.329c24.402,24.4 63.967,24.402 88.369,-0c24.403,-24.402 24.403,-63.966 0.001,-88.368l-143.33,-143.329l0.001,-0.004l143.329,-143.329c24.402,-24.402 24.402,-63.965 0,-88.367c-24.402,-24.402 -63.967,-24.402 -88.369,-0l-143.329,143.328l-143.329,-143.328c-24.402,-24.401 -63.967,-24.402 -88.369,-0c-24.402,24.402 -24.402,63.965 0,88.367l143.329,143.329l0,0.004Z\"\n style=\"fill-rule: nonzero\"\n ></path>\n <path\n d=\"M437.511,468.521c-17.121,-0 -31,-13.879 -31,-31c0,-17.121 13.879,-31 31,-31c17.121,-0 31,13.879 31,31c0,17.121 -13.879,31 -31,31m23.915,-463.762c-23.348,-9.672 -50.226,-4.327 -68.096,13.544l-143.331,143.329l-143.33,-143.329c-17.871,-17.871 -44.747,-23.216 -68.096,-13.544c-23.349,9.671 -38.574,32.455 -38.574,57.729l0,375.026c0,34.51 27.977,62.486 62.487,62.486c34.51,-0 62.486,-27.976 62.486,-62.486l0,-224.173l80.843,80.844c24.404,24.402 63.965,24.402 88.369,-0l80.843,-80.844l0,224.173c0,34.51 27.976,62.486 62.486,62.486c34.51,-0 62.486,-27.976 62.486,-62.486l0,-375.026c0,-25.274 -15.224,-48.058 -38.573,-57.729\"\n style=\"fill-rule: nonzero\"\n ></path>\n </g>\n </svg>\n </div>\n </a>\n </div>\n </template>\n\n <media-controller\n part=\"controller\"\n defaultstreamtype=\"{{defaultstreamtype ?? 'on-demand'}}\"\n breakpoints=\"sm:470\"\n gesturesdisabled=\"{{disabled}}\"\n hotkeys=\"{{hotkeys}}\"\n nohotkeys=\"{{nohotkeys}}\"\n novolumepref=\"{{novolumepref}}\"\n audio=\"{{audio}}\"\n noautoseektolive=\"{{noautoseektolive}}\"\n defaultsubtitles=\"{{defaultsubtitles}}\"\n defaultduration=\"{{defaultduration ?? false}}\"\n keyboardforwardseekoffset=\"{{forwardseekoffset}}\"\n keyboardbackwardseekoffset=\"{{backwardseekoffset}}\"\n exportparts=\"layer, media-layer, poster-layer, vertical-layer, centered-layer, gesture-layer\"\n style=\"--_pre-playback-place:{{preplaybackplace ?? 'center'}}\"\n >\n <slot name=\"media\" slot=\"media\"></slot>\n <slot name=\"poster\" slot=\"poster\"></slot>\n\n <media-loading-indicator slot=\"centered-chrome\" noautohide></media-loading-indicator>\n\n <template if=\"!audio\">\n <media-error-dialog slot=\"dialog\" noautohide></media-error-dialog>\n <!-- Pre-playback UI -->\n <!-- same for both on-demand and live -->\n <div slot=\"centered-chrome\" class=\"center-controls pre-playback\">\n <template if=\"!breakpointsm\">{{>PlayButton section=\"center\"}}</template>\n <template if=\"breakpointsm\">{{>PrePlayButton section=\"center\"}}</template>\n </div>\n\n <!-- Mux Badge -->\n <template if=\"proudlydisplaymuxbadge\"> {{>MuxBadge}} </template>\n\n <!-- Autoplay centered unmute button -->\n <!--\n todo: figure out how show this with available state variables\n needs to show when:\n - autoplay is enabled\n - playback has been successful\n - audio is muted\n - in place / instead of the pre-plaback play button\n - not to show again after user has interacted with this button\n - OR user has interacted with the mute button in the control bar\n -->\n <!--\n There should be a >MuteButton to the left of the \"Unmute\" text, but a templating bug\n makes it appear even if commented out in the markup, add it back when code is un-commented\n -->\n <!-- <div slot=\"centered-chrome\" class=\"autoplay-unmute\">\n <div role=\"button\" class=\"autoplay-unmute-btn\">Unmute</div>\n </div> -->\n\n <template if=\"streamtype == 'on-demand'\">\n <template if=\"breakpointsm\">\n <media-control-bar part=\"control-bar top\" slot=\"top-chrome\">{{>TitleDisplay}} </media-control-bar>\n </template>\n {{>TimeRange}}\n <media-control-bar part=\"control-bar bottom\">\n {{>PlayButton}} {{>SeekBackwardButton}} {{>SeekForwardButton}} {{>TimeDisplay}} {{>MuteButton}}\n {{>VolumeRange}}\n <div class=\"spacer\"></div>\n {{>RenditionMenu}} {{>PlaybackRateMenu}} {{>AudioTrackMenu}} {{>CaptionsMenu}} {{>AirplayButton}}\n {{>CastButton}} {{>PipButton}} {{>FullscreenButton}}\n </media-control-bar>\n </template>\n\n <template if=\"streamtype == 'live'\">\n <media-control-bar part=\"control-bar top\" slot=\"top-chrome\">\n {{>LiveButton}}\n <template if=\"breakpointsm\"> {{>TitleDisplay}} </template>\n </media-control-bar>\n <template if=\"targetlivewindow > 0\">{{>TimeRange}}</template>\n <media-control-bar part=\"control-bar bottom\">\n {{>PlayButton}}\n <template if=\"targetlivewindow > 0\">{{>SeekBackwardButton}} {{>SeekForwardButton}}</template>\n {{>MuteButton}} {{>VolumeRange}}\n <div class=\"spacer\"></div>\n {{>RenditionMenu}} {{>AudioTrackMenu}} {{>CaptionsMenu}} {{>AirplayButton}} {{>CastButton}} {{>PipButton}}\n {{>FullscreenButton}}\n </media-control-bar>\n </template>\n </template>\n\n <template if=\"audio\">\n <template if=\"streamtype == 'on-demand'\">\n <template if=\"title\">\n <media-control-bar part=\"control-bar top\">{{>TitleDisplay}}</media-control-bar>\n </template>\n <media-control-bar part=\"control-bar bottom\">\n {{>PlayButton}}\n <template if=\"breakpointsm\"> {{>SeekBackwardButton}} {{>SeekForwardButton}} </template>\n {{>MuteButton}}\n <template if=\"breakpointsm\">{{>VolumeRange}}</template>\n {{>TimeDisplay}} {{>TimeRange}}\n <template if=\"breakpointsm\">{{>PlaybackRateMenu}}</template>\n {{>AirplayButton}} {{>CastButton}}\n </media-control-bar>\n </template>\n\n <template if=\"streamtype == 'live'\">\n <template if=\"title\">\n <media-control-bar part=\"control-bar top\">{{>TitleDisplay}}</media-control-bar>\n </template>\n <media-control-bar part=\"control-bar bottom\">\n {{>PlayButton}} {{>LiveButton section=\"bottom\"}} {{>MuteButton}}\n <template if=\"breakpointsm\">\n {{>VolumeRange}}\n <template if=\"targetlivewindow > 0\"> {{>SeekBackwardButton}} {{>SeekForwardButton}} </template>\n </template>\n <template if=\"targetlivewindow > 0\"> {{>TimeDisplay}} {{>TimeRange}} </template>\n <template if=\"!targetlivewindow\"><div class=\"spacer\"></div></template>\n {{>AirplayButton}} {{>CastButton}}\n </media-control-bar>\n </template>\n </template>\n\n <slot></slot>\n </media-controller>\n</template>\n`;import{MediaThemeElement as ha}from\"media-chrome/dist/media-theme-element.js\";import\"media-chrome/dist/menu\";var xe=P.createElement(\"template\");\"innerHTML\"in xe&&(xe.innerHTML=At);var Ct,kt,me=class extends ha{};me.template=(kt=(Ct=xe.content)==null?void 0:Ct.children)==null?void 0:kt[0];k.customElements.get(\"media-theme-gerwig\")||k.customElements.define(\"media-theme-gerwig\",me);var va=\"gerwig\",L={SRC:\"src\",POSTER:\"poster\"},o={STYLE:\"style\",DEFAULT_HIDDEN_CAPTIONS:\"default-hidden-captions\",PRIMARY_COLOR:\"primary-color\",SECONDARY_COLOR:\"secondary-color\",ACCENT_COLOR:\"accent-color\",FORWARD_SEEK_OFFSET:\"forward-seek-offset\",BACKWARD_SEEK_OFFSET:\"backward-seek-offset\",PLAYBACK_TOKEN:\"playback-token\",THUMBNAIL_TOKEN:\"thumbnail-token\",STORYBOARD_TOKEN:\"storyboard-token\",FULLSCREEN_ELEMENT:\"fullscreen-element\",DRM_TOKEN:\"drm-token\",STORYBOARD_SRC:\"storyboard-src\",THUMBNAIL_TIME:\"thumbnail-time\",AUDIO:\"audio\",NOHOTKEYS:\"nohotkeys\",HOTKEYS:\"hotkeys\",PLAYBACK_RATES:\"playbackrates\",DEFAULT_SHOW_REMAINING_TIME:\"default-show-remaining-time\",DEFAULT_DURATION:\"default-duration\",TITLE:\"title\",VIDEO_TITLE:\"video-title\",PLACEHOLDER:\"placeholder\",THEME:\"theme\",DEFAULT_STREAM_TYPE:\"default-stream-type\",TARGET_LIVE_WINDOW:\"target-live-window\",EXTRA_SOURCE_PARAMS:\"extra-source-params\",NO_VOLUME_PREF:\"no-volume-pref\",NO_MUTED_PREF:\"no-muted-pref\",CAST_RECEIVER:\"cast-receiver\",NO_TOOLTIPS:\"no-tooltips\",PROUDLY_DISPLAY_MUX_BADGE:\"proudly-display-mux-badge\",DISABLE_PSEUDO_ENDED:\"disable-pseudo-ended\"},Se=[\"audio\",\"backwardseekoffset\",\"defaultduration\",\"defaultshowremainingtime\",\"defaultsubtitles\",\"noautoseektolive\",\"disabled\",\"exportparts\",\"forwardseekoffset\",\"hideduration\",\"hotkeys\",\"nohotkeys\",\"playbackrates\",\"defaultstreamtype\",\"streamtype\",\"style\",\"targetlivewindow\",\"template\",\"title\",\"videotitle\",\"novolumepref\",\"nomutedpref\",\"proudlydisplaymuxbadge\"];function Ea(t,a){var i,r;return{src:!t.playbackId&&t.src,playbackId:t.playbackId,hasSrc:!!t.playbackId||!!t.src||!!t.currentSrc,poster:t.poster,storyboard:t.storyboard,storyboardSrc:t.getAttribute(o.STORYBOARD_SRC),fullscreenElement:t.getAttribute(o.FULLSCREEN_ELEMENT),placeholder:t.getAttribute(\"placeholder\"),themeTemplate:Ca(t),thumbnailTime:!t.tokens.thumbnail&&t.thumbnailTime,autoplay:t.autoplay,crossOrigin:t.crossOrigin,loop:t.loop,noHotKeys:t.hasAttribute(o.NOHOTKEYS),hotKeys:t.getAttribute(o.HOTKEYS),muted:t.muted,paused:t.paused,preload:t.preload,envKey:t.envKey,preferCmcd:t.preferCmcd,debug:t.debug,disableTracking:t.disableTracking,disableCookies:t.disableCookies,tokens:t.tokens,beaconCollectionDomain:t.beaconCollectionDomain,maxResolution:t.maxResolution,minResolution:t.minResolution,maxAutoResolution:t.maxAutoResolution,programStartTime:t.programStartTime,programEndTime:t.programEndTime,assetStartTime:t.assetStartTime,assetEndTime:t.assetEndTime,renditionOrder:t.renditionOrder,metadata:t.metadata,playerInitTime:t.playerInitTime,playerSoftwareName:t.playerSoftwareName,playerSoftwareVersion:t.playerSoftwareVersion,startTime:t.startTime,preferPlayback:t.preferPlayback,audio:t.audio,defaultStreamType:t.defaultStreamType,targetLiveWindow:t.getAttribute(s.TARGET_LIVE_WINDOW),streamType:X(t.getAttribute(s.STREAM_TYPE)),primaryColor:t.getAttribute(o.PRIMARY_COLOR),secondaryColor:t.getAttribute(o.SECONDARY_COLOR),accentColor:t.getAttribute(o.ACCENT_COLOR),forwardSeekOffset:t.forwardSeekOffset,backwardSeekOffset:t.backwardSeekOffset,defaultHiddenCaptions:t.defaultHiddenCaptions,defaultDuration:t.defaultDuration,defaultShowRemainingTime:t.defaultShowRemainingTime,hideDuration:ka(t),playbackRates:t.getAttribute(o.PLAYBACK_RATES),customDomain:(i=t.getAttribute(s.CUSTOM_DOMAIN))!=null?i:void 0,title:t.getAttribute(o.TITLE),videoTitle:(r=t.getAttribute(o.VIDEO_TITLE))!=null?r:t.getAttribute(o.TITLE),novolumepref:t.hasAttribute(o.NO_VOLUME_PREF),nomutedpref:t.hasAttribute(o.NO_MUTED_PREF),proudlyDisplayMuxBadge:t.hasAttribute(o.PROUDLY_DISPLAY_MUX_BADGE),castReceiver:t.castReceiver,disablePseudoEnded:t.hasAttribute(o.DISABLE_PSEUDO_ENDED),...a,extraSourceParams:t.extraSourceParams}}var Aa=Nt.formatErrorMessage;Nt.formatErrorMessage=t=>{var a,e;if(t instanceof be){let i=Et(t,!1);return`\n ${i!=null&&i.title?`<h3>${i.title}</h3>`:\"\"}\n ${i!=null&&i.message||i!=null&&i.linkUrl?`<p>\n ${i==null?void 0:i.message}\n ${i!=null&&i.linkUrl?`<a\n href=\"${i.linkUrl}\"\n target=\"_blank\"\n rel=\"external noopener\"\n aria-label=\"${(a=i.linkText)!=null?a:\"\"} ${B(\"(opens in a new window)\")}\"\n >${(e=i.linkText)!=null?e:i.linkUrl}</a\n >`:\"\"}\n </p>`:\"\"}\n `}return Aa(t)};function Ca(t){var e,i;let a=t.theme;if(a){let r=(i=(e=t.getRootNode())==null?void 0:e.getElementById)==null?void 0:i.call(e,a);if(r&&r instanceof HTMLTemplateElement)return r;a.startsWith(\"media-theme-\")||(a=`media-theme-${a}`);let n=k.customElements.get(a);if(n!=null&&n.template)return n.template}}function ka(t){var e;let a=(e=t.mediaController)==null?void 0:e.querySelector(\"media-time-display\");return a&&getComputedStyle(a).getPropertyValue(\"--media-duration-display-display\").trim()===\"none\"}function Ot(t){let a=t.videoTitle?{video_title:t.videoTitle}:{};return t.getAttributeNames().filter(e=>e.startsWith(\"metadata-\")).reduce((e,i)=>{let r=t.getAttribute(i);return r!==null&&(e[i.replace(/^metadata-/,\"\").replace(/-/g,\"_\")]=r),e},a)}var _a=Object.values(s),Ra=Object.values(L),xa=Object.values(o),Mt=se(),Lt=\"mux-player\",St={isDialogOpen:!1},Oa={redundant_streams:!0},J,ee,te,w,ae,K,m,I,It,Ie,H,wt,Pt,Dt,Ut,Ne=class extends Ce{constructor(){super();v(this,m);v(this,J);v(this,ee,!1);v(this,te,{});v(this,w,!0);v(this,ae,new ne(this,\"hotkeys\"));v(this,K,{...St,onCloseErrorDialog:e=>{var r;((r=e.composedPath()[0])==null?void 0:r.localName)===\"media-error-dialog\"&&p(this,m,Ie).call(this,{isDialogOpen:!1})},onFocusInErrorDialog:e=>{var n;if(((n=e.composedPath()[0])==null?void 0:n.localName)!==\"media-error-dialog\")return;Te(this,P.activeElement)||e.preventDefault()}});C(this,J,Ta()),this.attachShadow({mode:\"open\"}),p(this,m,It).call(this),this.isConnected&&p(this,m,I).call(this)}static get NAME(){return Lt}static get VERSION(){return Mt}static get observedAttributes(){var e;return[...(e=Ce.observedAttributes)!=null?e:[],...Ra,..._a,...xa]}get mediaTheme(){var e;return(e=this.shadowRoot)==null?void 0:e.querySelector(\"media-theme\")}get mediaController(){var e,i;return(i=(e=this.mediaTheme)==null?void 0:e.shadowRoot)==null?void 0:i.querySelector(\"media-controller\")}connectedCallback(){let e=this.media;e&&(e.metadata=Ot(this))}attributeChangedCallback(e,i,r){switch(p(this,m,I).call(this),super.attributeChangedCallback(e,i,r),e){case o.HOTKEYS:u(this,ae).value=r;break;case o.THUMBNAIL_TIME:{r!=null&&this.tokens.thumbnail&&x(B(\"Use of thumbnail-time with thumbnail-token is currently unsupported. Ignore thumbnail-time.\").toString());break}case o.THUMBNAIL_TOKEN:{if(r){let d=Me(r);if(d){let{aud:l}=d,b=Le.THUMBNAIL;l!==b&&x(B(\"The {tokenNamePrefix}-token has an incorrect aud value: {aud}. aud value should be {expectedAud}.\").format({aud:l,expectedAud:b,tokenNamePrefix:\"thumbnail\"}))}}break}case o.STORYBOARD_TOKEN:{if(r){let d=Me(r);if(d){let{aud:l}=d,b=Le.STORYBOARD;l!==b&&x(B(\"The {tokenNamePrefix}-token has an incorrect aud value: {aud}. aud value should be {expectedAud}.\").format({aud:l,expectedAud:b,tokenNamePrefix:\"storyboard\"}))}}break}case o.DRM_TOKEN:{if(r){let d=Me(r);if(d){let{aud:l}=d,b=Le.DRM;l!==b&&x(B(\"The {tokenNamePrefix}-token has an incorrect aud value: {aud}. aud value should be {expectedAud}.\").format({aud:l,expectedAud:b,tokenNamePrefix:\"drm\"}))}}break}case s.PLAYBACK_ID:{r!=null&&r.includes(\"?token\")&&E(B(\"The specificed playback ID {playbackId} contains a token which must be provided via the playback-token attribute.\").format({playbackId:r}));break}case s.STREAM_TYPE:{r&&![O.LIVE,O.ON_DEMAND,O.UNKNOWN].includes(r)?[\"ll-live\",\"live:dvr\",\"ll-live:dvr\"].includes(this.streamType)?this.targetLiveWindow=r.includes(\"dvr\")?Number.POSITIVE_INFINITY:0:Ee({file:\"invalid-stream-type.md\",message:B(\"Invalid stream-type value supplied: `{streamType}`. Please provide stream-type as either: `on-demand` or `live`\").format({streamType:this.streamType})}):r===O.LIVE?this.getAttribute(o.TARGET_LIVE_WINDOW)==null&&(this.targetLiveWindow=0):this.targetLiveWindow=Number.NaN;break}case o.FULLSCREEN_ELEMENT:{if(r!=null||r!==i){let d=P.getElementById(r),l=d==null?void 0:d.querySelector(\"mux-player\");this.mediaController&&d&&l&&(this.mediaController.fullscreenElement=d)}break}}[s.PLAYBACK_ID,L.SRC,o.PLAYBACK_TOKEN].includes(e)&&i!==r&&C(this,K,{...u(this,K),...St}),p(this,m,H).call(this,{[dt(e)]:r})}async requestFullscreen(e){var i;if(!(!this.mediaController||this.mediaController.hasAttribute(ce.MEDIA_IS_FULLSCREEN)))return(i=this.mediaController)==null||i.dispatchEvent(new k.CustomEvent(Rt.MEDIA_ENTER_FULLSCREEN_REQUEST,{composed:!0,bubbles:!0})),new Promise((r,n)=>{var d;(d=this.mediaController)==null||d.addEventListener(_t.MEDIA_IS_FULLSCREEN,()=>r(),{once:!0})})}async exitFullscreen(){var e;if(!(!this.mediaController||!this.mediaController.hasAttribute(ce.MEDIA_IS_FULLSCREEN)))return(e=this.mediaController)==null||e.dispatchEvent(new k.CustomEvent(Rt.MEDIA_EXIT_FULLSCREEN_REQUEST,{composed:!0,bubbles:!0})),new Promise((i,r)=>{var n;(n=this.mediaController)==null||n.addEventListener(_t.MEDIA_IS_FULLSCREEN,()=>i(),{once:!0})})}get preferCmcd(){var e;return(e=this.getAttribute(s.PREFER_CMCD))!=null?e:void 0}set preferCmcd(e){e!==this.preferCmcd&&(e?xt.includes(e)?this.setAttribute(s.PREFER_CMCD,e):x(`Invalid value for preferCmcd. Must be one of ${xt.join()}`):this.removeAttribute(s.PREFER_CMCD))}get hasPlayed(){var e,i;return(i=(e=this.mediaController)==null?void 0:e.hasAttribute(ce.MEDIA_HAS_PLAYED))!=null?i:!1}get inLiveWindow(){var e;return(e=this.mediaController)==null?void 0:e.hasAttribute(ce.MEDIA_TIME_IS_LIVE)}get _hls(){var e;return(e=this.media)==null?void 0:e._hls}get mux(){var e;return(e=this.media)==null?void 0:e.mux}get theme(){var e;return(e=this.getAttribute(o.THEME))!=null?e:va}set theme(e){this.setAttribute(o.THEME,`${e}`)}get themeProps(){let e=this.mediaTheme;if(!e)return;let i={};for(let r of e.getAttributeNames()){if(Se.includes(r))continue;let n=e.getAttribute(r);i[oe(r)]=n===\"\"?!0:n}return i}set themeProps(e){var r,n;p(this,m,I).call(this);let i={...this.themeProps,...e};for(let d in i){if(Se.includes(d))continue;let l=e==null?void 0:e[d];typeof l==\"boolean\"||l==null?(r=this.mediaTheme)==null||r.toggleAttribute(re(d),!!l):(n=this.mediaTheme)==null||n.setAttribute(re(d),l)}}get playbackId(){var e;return(e=this.getAttribute(s.PLAYBACK_ID))!=null?e:void 0}set playbackId(e){e?this.setAttribute(s.PLAYBACK_ID,e):this.removeAttribute(s.PLAYBACK_ID)}get src(){var e,i;return this.playbackId?(e=V(this,L.SRC))!=null?e:void 0:(i=this.getAttribute(L.SRC))!=null?i:void 0}set src(e){e?this.setAttribute(L.SRC,e):this.removeAttribute(L.SRC)}get poster(){var r;let e=this.getAttribute(L.POSTER);if(e!=null)return e;let{tokens:i}=this;if(i.playback&&!i.thumbnail){x(\"Missing expected thumbnail token. No poster image will be shown\");return}if(this.playbackId&&!this.audio)return nt(this.playbackId,{customDomain:this.customDomain,thumbnailTime:(r=this.thumbnailTime)!=null?r:this.startTime,programTime:this.programStartTime,token:i.thumbnail})}set poster(e){e||e===\"\"?this.setAttribute(L.POSTER,e):this.removeAttribute(L.POSTER)}get storyboardSrc(){var e;return(e=this.getAttribute(o.STORYBOARD_SRC))!=null?e:void 0}set storyboardSrc(e){e?this.setAttribute(o.STORYBOARD_SRC,e):this.removeAttribute(o.STORYBOARD_SRC)}get storyboard(){let{tokens:e}=this;if(this.storyboardSrc&&!e.storyboard)return this.storyboardSrc;if(!(this.audio||!this.playbackId||!this.streamType||[O.LIVE,O.UNKNOWN].includes(this.streamType)||e.playback&&!e.storyboard))return st(this.playbackId,{customDomain:this.customDomain,token:e.storyboard,programStartTime:this.programStartTime,programEndTime:this.programEndTime})}get audio(){return this.hasAttribute(o.AUDIO)}set audio(e){if(!e){this.removeAttribute(o.AUDIO);return}this.setAttribute(o.AUDIO,\"\")}get hotkeys(){return u(this,ae)}get nohotkeys(){return this.hasAttribute(o.NOHOTKEYS)}set nohotkeys(e){if(!e){this.removeAttribute(o.NOHOTKEYS);return}this.setAttribute(o.NOHOTKEYS,\"\")}get thumbnailTime(){return y(this.getAttribute(o.THUMBNAIL_TIME))}set thumbnailTime(e){this.setAttribute(o.THUMBNAIL_TIME,`${e}`)}get videoTitle(){var e,i;return(i=(e=this.getAttribute(o.VIDEO_TITLE))!=null?e:this.getAttribute(o.TITLE))!=null?i:\"\"}set videoTitle(e){e!==this.videoTitle&&(e?this.setAttribute(o.VIDEO_TITLE,e):this.removeAttribute(o.VIDEO_TITLE))}get placeholder(){var e;return(e=V(this,o.PLACEHOLDER))!=null?e:\"\"}set placeholder(e){this.setAttribute(o.PLACEHOLDER,`${e}`)}get primaryColor(){var i,r;let e=this.getAttribute(o.PRIMARY_COLOR);if(e!=null||this.mediaTheme&&(e=(r=(i=k.getComputedStyle(this.mediaTheme))==null?void 0:i.getPropertyValue(\"--_primary-color\"))==null?void 0:r.trim(),e))return e}set primaryColor(e){this.setAttribute(o.PRIMARY_COLOR,`${e}`)}get secondaryColor(){var i,r;let e=this.getAttribute(o.SECONDARY_COLOR);if(e!=null||this.mediaTheme&&(e=(r=(i=k.getComputedStyle(this.mediaTheme))==null?void 0:i.getPropertyValue(\"--_secondary-color\"))==null?void 0:r.trim(),e))return e}set secondaryColor(e){this.setAttribute(o.SECONDARY_COLOR,`${e}`)}get accentColor(){var i,r;let e=this.getAttribute(o.ACCENT_COLOR);if(e!=null||this.mediaTheme&&(e=(r=(i=k.getComputedStyle(this.mediaTheme))==null?void 0:i.getPropertyValue(\"--_accent-color\"))==null?void 0:r.trim(),e))return e}set accentColor(e){this.setAttribute(o.ACCENT_COLOR,`${e}`)}get defaultShowRemainingTime(){return this.hasAttribute(o.DEFAULT_SHOW_REMAINING_TIME)}set defaultShowRemainingTime(e){e?this.setAttribute(o.DEFAULT_SHOW_REMAINING_TIME,\"\"):this.removeAttribute(o.DEFAULT_SHOW_REMAINING_TIME)}get playbackRates(){if(this.hasAttribute(o.PLAYBACK_RATES))return this.getAttribute(o.PLAYBACK_RATES).trim().split(/\\s*,?\\s+/).map(e=>Number(e)).filter(e=>!Number.isNaN(e)).sort((e,i)=>e-i)}set playbackRates(e){if(!e){this.removeAttribute(o.PLAYBACK_RATES);return}this.setAttribute(o.PLAYBACK_RATES,e.join(\" \"))}get forwardSeekOffset(){var e;return(e=y(this.getAttribute(o.FORWARD_SEEK_OFFSET)))!=null?e:10}set forwardSeekOffset(e){this.setAttribute(o.FORWARD_SEEK_OFFSET,`${e}`)}get backwardSeekOffset(){var e;return(e=y(this.getAttribute(o.BACKWARD_SEEK_OFFSET)))!=null?e:10}set backwardSeekOffset(e){this.setAttribute(o.BACKWARD_SEEK_OFFSET,`${e}`)}get defaultHiddenCaptions(){return this.hasAttribute(o.DEFAULT_HIDDEN_CAPTIONS)}set defaultHiddenCaptions(e){e?this.setAttribute(o.DEFAULT_HIDDEN_CAPTIONS,\"\"):this.removeAttribute(o.DEFAULT_HIDDEN_CAPTIONS)}get defaultDuration(){return y(this.getAttribute(o.DEFAULT_DURATION))}set defaultDuration(e){e==null?this.removeAttribute(o.DEFAULT_DURATION):this.setAttribute(o.DEFAULT_DURATION,`${e}`)}get playerInitTime(){return this.hasAttribute(s.PLAYER_INIT_TIME)?y(this.getAttribute(s.PLAYER_INIT_TIME)):u(this,J)}set playerInitTime(e){e!=this.playerInitTime&&(e==null?this.removeAttribute(s.PLAYER_INIT_TIME):this.setAttribute(s.PLAYER_INIT_TIME,`${+e}`))}get playerSoftwareName(){var e;return(e=this.getAttribute(s.PLAYER_SOFTWARE_NAME))!=null?e:Lt}get playerSoftwareVersion(){var e;return(e=this.getAttribute(s.PLAYER_SOFTWARE_VERSION))!=null?e:Mt}get beaconCollectionDomain(){var e;return(e=this.getAttribute(s.BEACON_COLLECTION_DOMAIN))!=null?e:void 0}set beaconCollectionDomain(e){e!==this.beaconCollectionDomain&&(e?this.setAttribute(s.BEACON_COLLECTION_DOMAIN,e):this.removeAttribute(s.BEACON_COLLECTION_DOMAIN))}get maxResolution(){var e;return(e=this.getAttribute(s.MAX_RESOLUTION))!=null?e:void 0}set maxResolution(e){e!==this.maxResolution&&(e?this.setAttribute(s.MAX_RESOLUTION,e):this.removeAttribute(s.MAX_RESOLUTION))}get minResolution(){var e;return(e=this.getAttribute(s.MIN_RESOLUTION))!=null?e:void 0}set minResolution(e){e!==this.minResolution&&(e?this.setAttribute(s.MIN_RESOLUTION,e):this.removeAttribute(s.MIN_RESOLUTION))}get maxAutoResolution(){var e;return(e=this.getAttribute(s.MAX_AUTO_RESOLUTION))!=null?e:void 0}set maxAutoResolution(e){e==null?this.removeAttribute(s.MAX_AUTO_RESOLUTION):this.setAttribute(s.MAX_AUTO_RESOLUTION,e)}get renditionOrder(){var e;return(e=this.getAttribute(s.RENDITION_ORDER))!=null?e:void 0}set renditionOrder(e){e!==this.renditionOrder&&(e?this.setAttribute(s.RENDITION_ORDER,e):this.removeAttribute(s.RENDITION_ORDER))}get programStartTime(){return y(this.getAttribute(s.PROGRAM_START_TIME))}set programStartTime(e){e==null?this.removeAttribute(s.PROGRAM_START_TIME):this.setAttribute(s.PROGRAM_START_TIME,`${e}`)}get programEndTime(){return y(this.getAttribute(s.PROGRAM_END_TIME))}set programEndTime(e){e==null?this.removeAttribute(s.PROGRAM_END_TIME):this.setAttribute(s.PROGRAM_END_TIME,`${e}`)}get assetStartTime(){return y(this.getAttribute(s.ASSET_START_TIME))}set assetStartTime(e){e==null?this.removeAttribute(s.ASSET_START_TIME):this.setAttribute(s.ASSET_START_TIME,`${e}`)}get assetEndTime(){return y(this.getAttribute(s.ASSET_END_TIME))}set assetEndTime(e){e==null?this.removeAttribute(s.ASSET_END_TIME):this.setAttribute(s.ASSET_END_TIME,`${e}`)}get extraSourceParams(){return this.hasAttribute(o.EXTRA_SOURCE_PARAMS)?[...new URLSearchParams(this.getAttribute(o.EXTRA_SOURCE_PARAMS)).entries()].reduce((e,[i,r])=>(e[i]=r,e),{}):Oa}set extraSourceParams(e){e==null?this.removeAttribute(o.EXTRA_SOURCE_PARAMS):this.setAttribute(o.EXTRA_SOURCE_PARAMS,new URLSearchParams(e).toString())}get customDomain(){var e;return(e=this.getAttribute(s.CUSTOM_DOMAIN))!=null?e:void 0}set customDomain(e){e!==this.customDomain&&(e?this.setAttribute(s.CUSTOM_DOMAIN,e):this.removeAttribute(s.CUSTOM_DOMAIN))}get envKey(){var e;return(e=V(this,s.ENV_KEY))!=null?e:void 0}set envKey(e){this.setAttribute(s.ENV_KEY,`${e}`)}get noVolumePref(){return this.hasAttribute(o.NO_VOLUME_PREF)}set noVolumePref(e){e?this.setAttribute(o.NO_VOLUME_PREF,\"\"):this.removeAttribute(o.NO_VOLUME_PREF)}get noMutedPref(){return this.hasAttribute(o.NO_MUTED_PREF)}set noMutedPref(e){e?this.setAttribute(o.NO_MUTED_PREF,\"\"):this.removeAttribute(o.NO_MUTED_PREF)}get debug(){return V(this,s.DEBUG)!=null}set debug(e){e?this.setAttribute(s.DEBUG,\"\"):this.removeAttribute(s.DEBUG)}get disableTracking(){return V(this,s.DISABLE_TRACKING)!=null}set disableTracking(e){this.toggleAttribute(s.DISABLE_TRACKING,!!e)}get disableCookies(){return V(this,s.DISABLE_COOKIES)!=null}set disableCookies(e){e?this.setAttribute(s.DISABLE_COOKIES,\"\"):this.removeAttribute(s.DISABLE_COOKIES)}get streamType(){var e,i,r;return(r=(i=this.getAttribute(s.STREAM_TYPE))!=null?i:(e=this.media)==null?void 0:e.streamType)!=null?r:O.UNKNOWN}set streamType(e){this.setAttribute(s.STREAM_TYPE,`${e}`)}get defaultStreamType(){var e,i,r;return(r=(i=this.getAttribute(o.DEFAULT_STREAM_TYPE))!=null?i:(e=this.mediaController)==null?void 0:e.getAttribute(o.DEFAULT_STREAM_TYPE))!=null?r:O.ON_DEMAND}set defaultStreamType(e){e?this.setAttribute(o.DEFAULT_STREAM_TYPE,e):this.removeAttribute(o.DEFAULT_STREAM_TYPE)}get targetLiveWindow(){var e,i;return this.hasAttribute(o.TARGET_LIVE_WINDOW)?+this.getAttribute(o.TARGET_LIVE_WINDOW):(i=(e=this.media)==null?void 0:e.targetLiveWindow)!=null?i:Number.NaN}set targetLiveWindow(e){e==this.targetLiveWindow||Number.isNaN(e)&&Number.isNaN(this.targetLiveWindow)||(e==null?this.removeAttribute(o.TARGET_LIVE_WINDOW):this.setAttribute(o.TARGET_LIVE_WINDOW,`${+e}`))}get liveEdgeStart(){var e;return(e=this.media)==null?void 0:e.liveEdgeStart}get startTime(){return y(V(this,s.START_TIME))}set startTime(e){this.setAttribute(s.START_TIME,`${e}`)}get preferPlayback(){let e=this.getAttribute(s.PREFER_PLAYBACK);if(e===pe.MSE||e===pe.NATIVE)return e}set preferPlayback(e){e!==this.preferPlayback&&(e===pe.MSE||e===pe.NATIVE?this.setAttribute(s.PREFER_PLAYBACK,e):this.removeAttribute(s.PREFER_PLAYBACK))}get metadata(){var e;return(e=this.media)==null?void 0:e.metadata}set metadata(e){if(p(this,m,I).call(this),!this.media){E(\"underlying media element missing when trying to set metadata. metadata will not be set.\");return}this.media.metadata={...Ot(this),...e}}get _hlsConfig(){var e;return(e=this.media)==null?void 0:e._hlsConfig}set _hlsConfig(e){if(p(this,m,I).call(this),!this.media){E(\"underlying media element missing when trying to set _hlsConfig. _hlsConfig will not be set.\");return}this.media._hlsConfig=e}async addCuePoints(e){var i;if(p(this,m,I).call(this),!this.media){E(\"underlying media element missing when trying to addCuePoints. cuePoints will not be added.\");return}return(i=this.media)==null?void 0:i.addCuePoints(e)}get activeCuePoint(){var e;return(e=this.media)==null?void 0:e.activeCuePoint}get cuePoints(){var e,i;return(i=(e=this.media)==null?void 0:e.cuePoints)!=null?i:[]}addChapters(e){var i;if(p(this,m,I).call(this),!this.media){E(\"underlying media element missing when trying to addChapters. chapters will not be added.\");return}return(i=this.media)==null?void 0:i.addChapters(e)}get activeChapter(){var e;return(e=this.media)==null?void 0:e.activeChapter}get chapters(){var e,i;return(i=(e=this.media)==null?void 0:e.chapters)!=null?i:[]}getStartDate(){var e;return(e=this.media)==null?void 0:e.getStartDate()}get currentPdt(){var e;return(e=this.media)==null?void 0:e.currentPdt}get tokens(){let e=this.getAttribute(o.PLAYBACK_TOKEN),i=this.getAttribute(o.DRM_TOKEN),r=this.getAttribute(o.THUMBNAIL_TOKEN),n=this.getAttribute(o.STORYBOARD_TOKEN);return{...u(this,te),...e!=null?{playback:e}:{},...i!=null?{drm:i}:{},...r!=null?{thumbnail:r}:{},...n!=null?{storyboard:n}:{}}}set tokens(e){C(this,te,e!=null?e:{})}get playbackToken(){var e;return(e=this.getAttribute(o.PLAYBACK_TOKEN))!=null?e:void 0}set playbackToken(e){this.setAttribute(o.PLAYBACK_TOKEN,`${e}`)}get drmToken(){var e;return(e=this.getAttribute(o.DRM_TOKEN))!=null?e:void 0}set drmToken(e){this.setAttribute(o.DRM_TOKEN,`${e}`)}get thumbnailToken(){var e;return(e=this.getAttribute(o.THUMBNAIL_TOKEN))!=null?e:void 0}set thumbnailToken(e){this.setAttribute(o.THUMBNAIL_TOKEN,`${e}`)}get storyboardToken(){var e;return(e=this.getAttribute(o.STORYBOARD_TOKEN))!=null?e:void 0}set storyboardToken(e){this.setAttribute(o.STORYBOARD_TOKEN,`${e}`)}addTextTrack(e,i,r,n){var l;let d=(l=this.media)==null?void 0:l.nativeEl;if(d)return fa(d,e,i,r,n)}removeTextTrack(e){var r;let i=(r=this.media)==null?void 0:r.nativeEl;if(i)return ya(i,e)}get textTracks(){var e;return(e=this.media)==null?void 0:e.textTracks}get castReceiver(){var e;return(e=this.getAttribute(o.CAST_RECEIVER))!=null?e:void 0}set castReceiver(e){e!==this.castReceiver&&(e?this.setAttribute(o.CAST_RECEIVER,e):this.removeAttribute(o.CAST_RECEIVER))}get castCustomData(){var e;return(e=this.media)==null?void 0:e.castCustomData}set castCustomData(e){if(!this.media){E(\"underlying media element missing when trying to set castCustomData. castCustomData will not be set.\");return}this.media.castCustomData=e}get noTooltips(){return this.hasAttribute(o.NO_TOOLTIPS)}set noTooltips(e){if(!e){this.removeAttribute(o.NO_TOOLTIPS);return}this.setAttribute(o.NO_TOOLTIPS,\"\")}get proudlyDisplayMuxBadge(){return this.hasAttribute(o.PROUDLY_DISPLAY_MUX_BADGE)}set proudlyDisplayMuxBadge(e){e?this.setAttribute(o.PROUDLY_DISPLAY_MUX_BADGE,\"\"):this.removeAttribute(o.PROUDLY_DISPLAY_MUX_BADGE)}};J=new WeakMap,ee=new WeakMap,te=new WeakMap,w=new WeakMap,ae=new WeakMap,K=new WeakMap,m=new WeakSet,I=function(){var e,i,r,n;if(!u(this,ee)){C(this,ee,!0),p(this,m,H).call(this);try{if(customElements.upgrade(this.mediaTheme),!(this.mediaTheme instanceof k.HTMLElement))throw\"\"}catch{E(\"<media-theme> failed to upgrade!\")}try{customElements.upgrade(this.media)}catch{E(\"underlying media element failed to upgrade!\")}try{if(customElements.upgrade(this.mediaController),!(this.mediaController instanceof ga))throw\"\"}catch{E(\"<media-controller> failed to upgrade!\")}p(this,m,wt).call(this),p(this,m,Pt).call(this),p(this,m,Dt).call(this),C(this,w,(i=(e=this.mediaController)==null?void 0:e.hasAttribute(Oe.USER_INACTIVE))!=null?i:!0),p(this,m,Ut).call(this),(r=this.media)==null||r.addEventListener(\"streamtypechange\",()=>p(this,m,H).call(this)),(n=this.media)==null||n.addEventListener(\"loadstart\",()=>p(this,m,H).call(this))}},It=function(){var e,i;try{(e=window==null?void 0:window.CSS)==null||e.registerProperty({name:\"--media-primary-color\",syntax:\"<color>\",inherits:!0}),(i=window==null?void 0:window.CSS)==null||i.registerProperty({name:\"--media-secondary-color\",syntax:\"<color>\",inherits:!0})}catch{}},Ie=function(e){Object.assign(u(this,K),e),p(this,m,H).call(this)},H=function(e={}){ht(ft(Ea(this,{...u(this,K),...e})),this.shadowRoot)},wt=function(){let e=r=>{var l,b;if(!(r!=null&&r.startsWith(\"theme-\")))return;let n=r.replace(/^theme-/,\"\");if(Se.includes(n))return;let d=this.getAttribute(r);d!=null?(l=this.mediaTheme)==null||l.setAttribute(n,d):(b=this.mediaTheme)==null||b.removeAttribute(n)};new MutationObserver(r=>{for(let{attributeName:n}of r)e(n)}).observe(this,{attributes:!0}),this.getAttributeNames().forEach(e)},Pt=function(){let e=i=>{var d;let r=(d=this.media)==null?void 0:d.error;if(!(r instanceof be)){let{message:l,code:b}=r!=null?r:{};r=new be(l,b)}if(!(r!=null&&r.fatal)){x(r),r.data&&x(`${r.name} data:`,r.data);return}let n=Re(r,!1);n.message&&Ee(n),E(r),r.data&&E(`${r.name} data:`,r.data),p(this,m,Ie).call(this,{isDialogOpen:!0})};this.addEventListener(\"error\",e),this.media&&(this.media.errorTranslator=(i={})=>{var n,d,l;if(!(((n=this.media)==null?void 0:n.error)instanceof be))return i;let r=Re((d=this.media)==null?void 0:d.error,!1);return{player_error_code:(l=this.media)==null?void 0:l.error.code,player_error_message:r.message?String(r.message):i.player_error_message,player_error_context:r.context?String(r.context):i.player_error_context}})},Dt=function(){var i,r,n,d;let e=()=>p(this,m,H).call(this);(r=(i=this.media)==null?void 0:i.textTracks)==null||r.addEventListener(\"addtrack\",e),(d=(n=this.media)==null?void 0:n.textTracks)==null||d.addEventListener(\"removetrack\",e)},Ut=function(){var S,Y;if(!/Firefox/i.test(navigator.userAgent))return;let i,r=new WeakMap,n=()=>this.streamType===O.LIVE&&!this.secondaryColor&&this.offsetWidth>=800,d=(_,A,R=!1)=>{if(n())return;Array.from(_&&_.activeCues||[]).forEach(h=>{if(!(!h.snapToLines||h.line<-5||h.line>=0&&h.line<10))if(!A||this.paused){let ie=h.text.split(`\n`).length,W=-3;this.streamType===O.LIVE&&(W=-2);let Z=W-ie;if(h.line===Z&&!R)return;r.has(h)||r.set(h,h.line),h.line=Z}else setTimeout(()=>{h.line=r.get(h)||\"auto\"},500)})},l=()=>{var _,A;d(i,(A=(_=this.mediaController)==null?void 0:_.hasAttribute(Oe.USER_INACTIVE))!=null?A:!1)},b=()=>{var R,$;let A=Array.from((($=(R=this.mediaController)==null?void 0:R.media)==null?void 0:$.textTracks)||[]).filter(h=>[\"subtitles\",\"captions\"].includes(h.kind)&&h.mode===\"showing\")[0];A!==i&&(i==null||i.removeEventListener(\"cuechange\",l)),i=A,i==null||i.addEventListener(\"cuechange\",l),d(i,u(this,w))};b(),(S=this.textTracks)==null||S.addEventListener(\"change\",b),(Y=this.textTracks)==null||Y.addEventListener(\"addtrack\",b),this.addEventListener(\"userinactivechange\",()=>{var A,R;let _=(R=(A=this.mediaController)==null?void 0:A.hasAttribute(Oe.USER_INACTIVE))!=null?R:!0;u(this,w)!==_&&(C(this,w,_),d(i,u(this,w)))})};function V(t,a){return t.media?t.media.getAttribute(a):t.getAttribute(a)}var ki=Ne;export{be as MediaError,ki as default,Ta as generatePlayerInitTime,V as getVideoAttribute,Lt as playerSoftwareName,Mt as playerSoftwareVersion};\n","var c=e=>{throw TypeError(e)};var d=(e,t,n)=>t.has(e)||c(\"Cannot \"+n);var g=(e,t,n)=>(d(e,t,\"read from private field\"),n?n.call(e):t.get(e)),p=(e,t,n)=>t.has(e)?c(\"Cannot add the same private member more than once\"):t instanceof WeakSet?t.add(e):t.set(e,n),f=(e,t,n,i)=>(d(e,t,\"write to private field\"),i?i.call(e,n):t.set(e,n),n);var o=class{addEventListener(){}removeEventListener(){}dispatchEvent(t){return!0}};if(typeof DocumentFragment==\"undefined\"){class e extends o{}globalThis.DocumentFragment=e}var s=class extends o{},a=class extends o{},b={get(e){},define(e,t,n){},getName(e){return null},upgrade(e){},whenDefined(e){return Promise.resolve(s)}},r,m=class{constructor(t,n={}){p(this,r);f(this,r,n==null?void 0:n.detail)}get detail(){return g(this,r)}initCustomEvent(){}};r=new WeakMap;function y(e,t){return new s}var h={document:{createElement:y},DocumentFragment,customElements:b,CustomEvent:m,EventTarget:o,HTMLElement:s,HTMLVideoElement:a},E=typeof window==\"undefined\"||typeof globalThis.customElements==\"undefined\",l=E?h:globalThis,x=E?h.document:globalThis.document;import\"@mux/mux-video\";import u from\"@mux/mux-player/base\";export*from\"@mux/mux-player/base\";l.customElements.get(\"mux-player\")||(l.customElements.define(\"mux-player\",u),l.MuxPlayerElement=u);var F=u;export{F as default};\n","\"use client\";import m,{useState as pe,useRef as Ee}from\"react\";import{MaxResolution as Le,MinResolution as Ae,RenditionOrder as Ie,generatePlayerInitTime as Me}from\"@mux/playback-core\";import{MediaError as Ke}from\"@mux/mux-player\";import X from\"react\";var M=parseInt(X.version)>=19,E={className:\"class\",classname:\"class\",htmlFor:\"for\",crossOrigin:\"crossorigin\",viewBox:\"viewBox\",playsInline:\"playsinline\",autoPlay:\"autoplay\",playbackRate:\"playbackrate\"},B=e=>e==null,ee=(e,t)=>B(t)?!1:e in t,te=e=>e.replace(/[A-Z]/g,t=>`-${t.toLowerCase()}`),ne=(e,t)=>{if(!(!M&&typeof t==\"boolean\"&&!t)){if(ee(e,E))return E[e];if(typeof t!=\"undefined\")return/[A-Z]/.test(e)?te(e):e}};var ae=(e,t)=>!M&&typeof e==\"boolean\"?\"\":e,P=(e={})=>{let{ref:t,...n}=e;return Object.entries(n).reduce((o,[a,l])=>{let i=ne(a,l);if(!i)return o;let c=ae(l,a);return o[i]=c,o},{})};import*as d from\"react\";function x(e,t){if(typeof e==\"function\")return e(t);e!=null&&(e.current=t)}function re(...e){return t=>{let n=!1,o=e.map(a=>{let l=x(a,t);return!n&&typeof l==\"function\"&&(n=!0),l});if(n)return()=>{for(let a=0;a<o.length;a++){let l=o[a];typeof l==\"function\"?l():x(e[a],null)}}}}function f(...e){return d.useCallback(re(...e),e)}import{useEffect as le}from\"react\";var oe=Object.prototype.hasOwnProperty,ue=(e,t)=>{if(Object.is(e,t))return!0;if(typeof e!=\"object\"||e===null||typeof t!=\"object\"||t===null)return!1;if(Array.isArray(e))return!Array.isArray(t)||e.length!==t.length?!1:e.some((a,l)=>t[l]===a);let n=Object.keys(e),o=Object.keys(t);if(n.length!==o.length)return!1;for(let a=0;a<n.length;a++)if(!oe.call(t,n[a])||!Object.is(e[n[a]],t[n[a]]))return!1;return!0},p=(e,t,n)=>!ue(t,e[n]),se=(e,t,n)=>{e[n]=t},ie=(e,t,n,o=se,a=p)=>le(()=>{let l=n==null?void 0:n.current;l&&a(l,t,e)&&o(l,t,e)},[n==null?void 0:n.current,t]),u=ie;var ye=()=>{try{return\"3.10.1\"}catch{}return\"UNKNOWN\"},me=ye(),g=()=>me;import{useEffect as ce}from\"react\";var r=(e,t,n)=>ce(()=>{let o=t==null?void 0:t.current;if(!o||!n)return;let a=e,l=n;return o.addEventListener(a,l),()=>{o.removeEventListener(a,l)}},[t==null?void 0:t.current,n,e]);var Pe=m.forwardRef(({children:e,...t},n)=>m.createElement(\"mux-player\",{suppressHydrationWarning:!0,...P(t),ref:n},e)),xe=(e,t)=>{let{onAbort:n,onCanPlay:o,onCanPlayThrough:a,onEmptied:l,onLoadStart:i,onLoadedData:c,onLoadedMetadata:v,onProgress:R,onDurationChange:T,onVolumeChange:h,onRateChange:b,onResize:C,onWaiting:k,onPlay:O,onPlaying:S,onTimeUpdate:w,onPause:N,onSeeking:L,onSeeked:A,onStalled:I,onSuspend:_,onEnded:K,onError:H,onCuePointChange:D,onChapterChange:V,metadata:W,tokens:U,paused:z,playbackId:F,playbackRates:G,currentTime:Z,themeProps:j,extraSourceParams:q,castCustomData:J,_hlsConfig:Y,...$}=t;return u(\"tokens\",U,e),u(\"playbackId\",F,e),u(\"playbackRates\",G,e),u(\"metadata\",W,e),u(\"extraSourceParams\",q,e),u(\"_hlsConfig\",Y,e),u(\"themeProps\",j,e),u(\"castCustomData\",J,e),u(\"paused\",z,e,(s,y)=>{y!=null&&(y?s.pause():s.play())},(s,y,Q)=>s.hasAttribute(\"autoplay\")&&!s.hasPlayed?!1:p(s,y,Q)),u(\"currentTime\",Z,e,(s,y)=>{y!=null&&(s.currentTime=y)}),r(\"abort\",e,n),r(\"canplay\",e,o),r(\"canplaythrough\",e,a),r(\"emptied\",e,l),r(\"loadstart\",e,i),r(\"loadeddata\",e,c),r(\"loadedmetadata\",e,v),r(\"progress\",e,R),r(\"durationchange\",e,T),r(\"volumechange\",e,h),r(\"ratechange\",e,b),r(\"resize\",e,C),r(\"waiting\",e,k),r(\"play\",e,O),r(\"playing\",e,S),r(\"timeupdate\",e,w),r(\"pause\",e,N),r(\"seeking\",e,L),r(\"seeked\",e,A),r(\"stalled\",e,I),r(\"suspend\",e,_),r(\"ended\",e,K),r(\"error\",e,H),r(\"cuepointchange\",e,D),r(\"chapterchange\",e,V),[$]},de=g(),fe=\"mux-player-react\",ge=m.forwardRef((e,t)=>{var i;let n=Ee(null),o=f(n,t),[a]=xe(n,e),[l]=pe((i=e.playerInitTime)!=null?i:Me());return m.createElement(Pe,{ref:o,defaultHiddenCaptions:e.defaultHiddenCaptions,playerSoftwareName:fe,playerSoftwareVersion:de,playerInitTime:l,...a})}),ze=ge;export{Le as MaxResolution,Ke as MediaError,Ae as MinResolution,Ie as RenditionOrder,ze as default,Me as generatePlayerInitTime,fe as playerSoftwareName,de as playerSoftwareVersion};\n//# sourceMappingURL=index.mjs.map\n"],"names":["Yr","ft","Xr","$r","Zr","ea","pt","r","B","ta","t","i","a","o","s","u","V","J","ji","yt","xe","U","te","Ne","Je","Ye","Ts","cr","lr","Pa","e","fr","Es","_r","me","vr","xs","pr","ae","n","Xe","Ds","mr","Ia","$e","Ss","hr","Na","Ze","Rs","yr","La","wr","As","Tr","gr","Ca","et","Ma","Fa","Ua","Ha","Ba","br","Va","rt","Ps","kr","tt","Wa","ja","Ga","Ja","Er","I","Dr","Ns","xr","at","K","Rr","Ls","Sr","it","Ar","Ms","qr","Qa","za","Ka","Re","Ya","Xa","$a","Za","ei","Be","j","Pr","Hs","Or","ti","nt","Bs","Nr","Ir","ri","qe","vt","mt","ht","ke","Ae","H","be","Ge","gt","ra","A","ee","p","b","Oe","Q","se","bt","Tt","wt","W","Y","Et","k","y","T","x","m","q","Pe","ce","g","D","kt","L","l","X","xt","De","Ie","Dt","St","Rt","qt","F","re","Le","aa","_e","O","ue","ia","fe","na","At","oa","pe","de","sa","Ce","Me","Se","Ot","f","_","d","h","w","E","S","N","M","G","oe","P","R","Z","Te","we","c","v","Pt","It","ua","da","la","Nt","Ee","z","Ve","We","je","Jr","Qr","zr","Kr","Lt","Ct","ca","Mt","He","_a","Ht","fa","Bt","pa","Ut","va","Ft","ma","Vt","Wt","ha","jt","ya","Gt","ga","Jt","ba","Qt","Ta","wa","zt","Kt","Ea","ka","Yt","Qe","xa","Xt","Da","$t","Ue","ze","Zt","Sa","Ra","er","tr","rr","ar","Ke","ir","nr","or","sr","qa","Aa","dr","Oa","ur","ve","ie","Lr","ai","ii","ni","oi","$","Cr","si","Mr","ui","di","li","ci","_i","Hr","fi","Br","pi","vi","Ur","mi","hi","yi","Fr","he","ot","gi","bi","st","ut","ge","ye","dt","lt","le","Fe","ki","_t","ct","xi","Vr","Ei","wi","Ti","Wr","Di","jr","Si","Gr","Ri","qi","Ai","C","ne","Oi","Ed","privateProps","InvalidStateError","NotSupportedError","HLS_RESPONSE_HEADERS","IterableWeakSet","el","fn","ref","value","onCastApiAvailable","callback","requiresCastFramework","loadCastFramework","sdkUrl","script","castContext","currentSession","currentMedia","editTracksInfo","request","resolve","reject","getMediaStatus","setCastOptions","options","getDefaultCastOptions","getFormat","segment","regex","match","parsePlaylistUrls","playlistContent","lines","urls","nextLine","parseSegment","line","isHls","url","contentType","header","err","getPlaylistSegmentFormat","mainManifestContent","availableChunksContent","playlists","chosenPlaylistUrl","remoteInstances","castElementRef","cf","remotePlaybackCallbackIdCount","RemotePlayback","#media","#isInit","#remotePlayer","#remoteListeners","#state","#available","#callbacks","#callbackIds","media","#init","#onCastStateChanged","#onSessionStateChanged","#castPlayer","#hasDevicesAvailable","willDisconnect","event","listener","#disconnect","castState","SESSION_RESUMED","error","#updateRemoteTextTrack","#onRemoteMediaLoaded","remoteSubtitles","type","localSubtitles","kind","subtitles","language","name","trackId","mode","local","hiddenTrackIds","showingSubtitle","activeTrackIds","requestTrackIds","id","CastableMediaMixin","superclass","#localState","#castOptions","#castCustomData","#remote","#loadOnPrompt","attrName","oldValue","newValue","mediaInfo","src","textTrackIdCount","trackEl","track","segmentFormat","val","valType","MediaUIEvents","MediaStateReceiverAttributes","MediaUIProps","MediaUIPropsEntries","MediaUIAttributes","dictObj","key","propName","AdditionalStateChangeEvents","MediaStateChangeEvents","mapObj","eventType","AttributeToStateChangeEventMap","evtType","TextTrackKinds","TextTrackModes","PointerTypes","AvailabilityStates","StreamTypes","WebkitPresentationModes","stringifyRenditionList","renditions","stringifyRendition","parseRenditionList","parseRendition","rendition","width","height","stringifyAudioTrackList","audioTracks","stringifyAudioTrack","parseAudioTrackList","parseAudioTrack","audioTrack","label","camelCase","$0","$1","isValidNumber","isNumericString","str","delay","ms","UnitLabels","toTimeUnitPhrase","timeUnitValue","unitIndex","unitLabel","formatAsTimePhrase","seconds","positiveSeconds","negative","secondsDateTime","index","formatTime","guide","gm","gh","En","translations","currentLang","setLanguage","langCode","resolveTranslation","_a2","_b","_c","base","vars","EventTarget$1","EventTarget","Node","ResizeObserver$1","documentShim","globalThisShim","_event","ResizeObserver","Element","_key","_value","string","_contentType","isServer","isShimmed","GlobalThis","Document","callbacksMap","getCallbacks","element","callbacks","observer","globalThis","entries","entry","observeResize","unobserveResize","namedNodeMapToObject","namedNodeMap","obj","attr","getMediaController","host","getAttributeMediaController","closestComposedNode","MEDIA_CONTROLLER","mediaControllerId","getDocumentOrShadowRoot","updateIconText","svg","selector","node","getAllSlotted","slotSelector","slot","getSlotted","containsComposedNode","rootNode","childNode","closest","getActiveElement","root","activeEl","isElementVisible","depth","checkOpacity","checkVisibilityCSS","style","getPointProgressOnLine","p1","p2","dx","dy","lengthSquared","projection","getOrInsertCSSRule","styleParent","selectorText","cssRule","getCSSRule","insertCSSRule","predicate","cssRules","rule","styles","getNumericAttr","defaultValue","attrVal","setNumericAttr","nextNumericValue","getBooleanAttr","setBooleanAttr","getStringAttr","setStringAttr","nextValue","__accessCheck","member","msg","__privateGet","getter","__privateAdd","__privateSet","setter","_mediaController","getTemplateHTML","_attrs","MediaGestureReceiver","attrs","_d","getMediaControllerEl","composedTarget","clientX","clientY","left","top","pointerType","eventName","controlEl","media_gesture_receiver_default","__privateMethod","method","_pointerDownTimeStamp","_currentMedia","_inactiveTimeout","_autohide","_mutationObserver","_handleMutation","handleMutation_fn","_isResizePending","_handleResize","_handlePointerMove","handlePointerMove_fn","_handlePointerUp","handlePointerUp_fn","_setInactive","setInactive_fn","_setActive","setActive_fn","_scheduleInactive","scheduleInactive_fn","Attributes","MEDIA_UI_ATTRIBUTE_NAMES","defaultBreakpoints","resizeCallback","setBreakpoints","container","breakpoints","ranges","createBreakpointMap","activeBreakpoints","getBreakpoints","changed","evt","pairs","pair","MediaContainer","html","chainedSlot","_oldValue","isAudioChrome","_media","parsedSeconds","mutationsList","mutation","removedNodes","previousSibling","wasFirst","autohideOverControls","controlsVisible","autohide","_el","_attr","_defaultSet","_tokenSet","_tokens","tokens_get","AttributeTokenList","thisArg","tokens","token","force","oldToken","newToken","splitTextTracksStr","textTracksStr","parseTextTrackStr","textTrackStr","encodedLabel","parseTextTracksStr","textTrackLikeObj","textTrackObj","parseTracks","trackOrTracks","trackObjOrStr","formatTextTrackObj","stringifyTextTrackList","textTracks","isMatchingPropOf","textTrackObjAsPred","filterObj","preds","textTrack","pred","updateTracksModeTo","tracks","tracksToUpdate","isTrackToUpdate","getTextTracksList","filterPredOrObj","filterPred","areSubsOn","enterFullscreen","stateOwners","fullscreenElement","enterFullscreenKey","maybePromise","exitFullscreenKey","document","exitFullscreen","documentElement","fullscreenElementKey","getFullscreenElement","docFullscreenElement","isFullscreen","currentFullscreenElement","currentRoot","fullscreenEnabledKey","isFullscreenEnabled","testMediaEl","getTestMediaEl","hasVolumeSupportAsync","mediaEl","prevVolume","abortController","volumeSupported","dispatchedVolumeChange","volumeChanged","signal","isSafari","hasPipSupport","hasFullscreenSupport","fullscreenSupported","pipSupported","airplaySupported","castSupported","getSubtitleTracks","getShowingSubtitleTracks","toggleSubtitleTracks","showingSubitleTracks","subtitlesShowing","subTrack","subtitlesPref","userLangPrefs","preferredAvailableSubs","lang","textTrackA","textTrackB","idxA","idxB","areValuesEq","areArraysEq","ys","xIsArray","yIsArray","StreamTypeValues","volumeSupportPromise","supported","prepareStateOwners","stateOwner","classDef","domParser","parseHtmlToText","text","stateMediator","noMutedPref","hasLocalStoragePrefMuted","hasMutedAttribute","handler","mutedPref","noVolumePref","volumePref","defaultDuration","start","end","timeRanges","defaultStreamType","usedDefaultStreamType","streamType","duration","targetLiveWindow","liveEdgeOffset","seekable","liveEdgeStart","_handler","updateDefaultSubtitlesCallback","_b2","chaptersTrack","startTime","endTime","shadowChaptersTrack","warnNotReady","cleanup","tryPip","videoRendition","renditionId","audioTrackId","availability","availabilityBool","_stateOwners","mediaLang","requestMap","detail","mediaPreviewTime","mediaPreviewImage","mediaPreviewCoords","cue","cs","numStr","mediaDuration","mediaPreviewChapter","isLive","canAutoSeekToLive","isDVR","seekableEnd","seekToLiveOffset","liveEdgeTime","_stateMediator","preferredLanguage","createMediaStore","defaultStateMediator","defaultRequestMap","monitorStateOwnersOnlyWithSubscriptions","state","updateState","nextStateDelta","cb","updateStateFromFacade","nextState","nextState2","stateName","get","stateUpdateHandlers","nextStateOwners","updateStateOwners","nextStateOwnersDelta","nextSubscriberCount","_f","_g","_h","_j","_k","_l","_m","_n","_o","_p","pendingUpdate","shouldTeardownFromSubscriberCount","mediaChanged","textTracksChanged","videoRenditionsChanged","audioTracksChanged","remoteChanged","rootNodeChanged","teardownMedia","teardownTextTracks","teardownVideoRenditions","teardownAudioTracks","teardownRemote","teardownRootNode","teardownSomething","shouldSetupFromSubscriberCount","setupMedia","setupTextTracks","setupVideoRenditions","setupAudioTracks","setupRemote","setupRootNode","setupSomething","stateOwnerName","mediaEvents","textTracksEvents","videoRenditionsEvents","audioTracksEvents","remoteEvents","rootEvents","stateOwnersUpdateHandlers","prevHandler","prevHandlerTeardowns","teardown","newTeardowns","action","optionName","optionValue","idx","_hotKeys","_fullscreenElement","_mediaStore","_keyboardShortcutsDialog","_mediaStateCallback","_mediaStoreUnsubscribe","_mediaStateEventHandler","_setupDefaultStore","setupDefaultStore_fn","_keyUpHandler","keyUpHandler_fn","_keyDownHandler","keyDownHandler_fn","_showKeyboardShortcutsDialog","showKeyboardShortcutsDialog_fn","ButtonPressedKeys","DEFAULT_SEEK_OFFSET","DEFAULT_VOLUME_STEP","DEFAULT_PLAYBACK_RATE_STEP","MIN_PLAYBACK_RATE","MAX_PLAYBACK_RATE","MediaController","prevState","stateValue","propagateMediaState","associatedElementSubscriptions","registerMediaStateReceiver","unregisterMediaStateReceiver","unsubscribe","monitorForMediaStateReceivers","els","target","offsetValue","step","playbackRate","shiftKey","metaKey","altKey","isShiftSlash","isRangeInput","MEDIA_UI_PROP_NAMES","getMediaUIAttributesFrom","child","observedAttributes","mediaChromeAttributesList","hasMediaUIProps","mediaStateReceiverCandidate","isMediaStateReceiver","serializeTuple","tuple","CustomAttrSerializer","tuples","coords","setAttr","attrValue","isMediaSlotElementDescendant","traverseForMediaStateReceivers","mediaStateReceiverCallback","traverseForMediaStateReceiversSync","rootNode2","mediaStateReceiverCallback2","children","shadowChildren","relevantAttrs","registerMediaStateReceiverHandler","unregisterMediaStateReceiverHandler","mutationCallback","mutationRecord","addedNodes","attributeName","prevSlotted","slotChangeHandler","slotEl","media_controller_default","MediaTooltip","placement","tooltipStyle","containingEl","containerX","containerWidth","tooltipX","tooltipWidth","tooltipRight","containerRight","offsetXVal","currOffsetX","marginVal","currMargin","leftDiff","rightDiff","media_tooltip_default","_clickListener","_positionTooltip","_keyupListener","_keydownListener","_setupTooltip","setupTooltip_fn","_props","getSlotTemplateHTML","getTooltipContentHTML","MediaChromeButton","initialPlacement","airplayIcon","updateAriaLabel","MediaAirplayButton","ccIconOn","ccIconOff","updateAriaChecked","MediaCaptionsButton","getSubtitlesListAttr","list","setSubtitlesListAttr","newValStr","enterIcon","exitIcon","MediaCastButton","_isInit","_previouslyFocused","_invokerElement","_init","init_fn","_handleOpen","handleOpen_fn","_handleClosed","handleClosed_fn","_handleInvoke","handleInvoke_fn","_handleFocusOut","handleFocusOut_fn","_handleKeyDown","handleKeyDown_fn","MediaChromeDialog","focusCancelled","focusInCancelled","focusable","ctrlKey","_isInputTarget","_startpoint","_endpoint","_cssRules","_segments","_onFocusIn","_onFocusOut","_updateComputedStyles","_updateActiveSegment","updateActiveSegment_fn","_enableUserEvents","enableUserEvents_fn","_disableUserEvents","disableUserEvents_fn","_handlePointerDown","handlePointerDown_fn","_handlePointerEnter","handlePointerEnter_fn","_handlePointerLeave","handlePointerLeave_fn","MediaChromeRange","clipping","rangePercent","segments","normalized","lastMarker","marker","isFirst","isLast","segmentEl","pointerRatio","arr","MediaControlBar","MediaTextDisplay","_slot","props","MediaDurationDisplay","time","defaultErrorTitles","defaultErrorMessages","formatError","_mediaError","formatErrorMessage","shouldOpenErrorDialog","title","message","MediaErrorDialog","mediaError","media_error_dialog_default","_clickHandler","formatKeyboardShortcuts","keys","description","MediaKeyboardShortcutsDialog","content","path","isClickOnHost","isClickInsideContent","_lastActionEvent","enterFullscreenIcon","exitFullscreenIcon","MediaFullscreenButton","isPointerEvent","MEDIA_TIME_IS_LIVE","MEDIA_PAUSED","MEDIA_SEEK_TO_LIVE_REQUEST","MEDIA_PLAY_REQUEST","indicatorSVG","updateAriaAttributes","isPausedOrNotLive","textSlot","MediaLiveButton","_delay","DEFAULT_LOADING_DELAY","loadingIndicatorIcon","MediaLoadingIndicator","offIcon","lowIcon","highIcon","muted","MediaMuteButton","pipIcon","MediaPipButton","_rates","DEFAULT_RATES","DEFAULT_RATE","MediaPlaybackRateButton","newPlaybackRate","availableRates","playIcon","pauseIcon","MediaPlayButton","unsetBackgroundImage","setBackgroundImage","image","MediaPosterImage","MediaPreviewChapterDisplay","ariaValueText","MediaPreviewThumbnail","coord","previewImage","computedStyle","maxWidth","maxHeight","minWidth","minHeight","maxRatio","minRatio","isScalingDown","scale","imgStyle","img","extremum","resize","media_preview_thumbnail_default","MediaPreviewTimeDisplay","backwardIcon","seekOffset","DEFAULT_TIME","MediaSeekBackwardButton","forwardIcon","MediaSeekForwardButton","CombinedAttributes","DEFAULT_TIMES_SEP","formatTimesLabel","timesSep","currentTime","timeLabel","DEFAULT_MISSING_TIME_PHRASE","updateAriaValueText","currentTimePhrase","totalTimePhrase","fullPhrase","MediaTimeDisplay","keyUpHandler","show","noToggle","range","timesLabel","__privateWrapper","_range","_startTime","_previousTime","_deltaTime","_frameCount","_updateTimestamp","_updateStartValue","_lastRangeIncrease","_id","_animate","RangeAnimation","fps","now","fpsInterval","delta","increase","durationDelta","_rootNode","_animation","_boxes","_previewTime","_previewBox","_currentBox","_boxPaddingLeft","_boxPaddingRight","_mediaChaptersCues","_isPointerDown","_toggleRangeAnimation","toggleRangeAnimation_fn","_shouldRangeAnimate","shouldRangeAnimate_fn","_updateRange","_getElementRects","getElementRects_fn","_getBoxPosition","getBoxPosition_fn","_getBoxShiftPosition","getBoxShiftPosition_fn","_previewRequest","previewRequest_fn","_seekRequest","seekRequest_fn","calcTimeFromRangeValue","calcRangeValueFromTime","MediaTimeRange","buffered","timePair","timeStr","strVal","relativeBufferedEnd","bufferedEnd","currentRailRule","currentBoxRule","rects","boxPos","boxShift","box","boundsRect","rangeRect","min","max","ratio","position","maxPos","pointerX","offset","isOverBoxes","previewRailRule","previewBoxRule","diff","DEFAULT_VOLUME","toVolume","formatAsPercentString","MediaVolumeRange","MediaLoopButton","looping","_parts","_processor","_items","_element","_attributeName","_namespaceURI","_list","list_get","_parentNode","_nodes","ELEMENT","STRING","PART","defaultProcessor","instance","parts","expression","part","AttrPart","TemplateInstance","template","processor","parse","AttrPartList","tokenize","data","items","ChildNodePart","InnerTemplatePart","mem","open","FRAGMENT","Part","attrPartToList","item","namespaceURI","parentNode","nodes","normalisedNodes","swapdom","directive","parent","cur","next","pipeModifiers","PartialTemplate","templates","templateInstances","Directives","evaluateExpression","tpl","DirectiveNames","operators","tokenizeExpression","expr","invalidExpression","partial","partialState","args","operator","getParamValue","isValidParam","run","raw","firstChar","lastChar","parsers","len","_template","_prevTemplate","_prevTemplateId","_upgradeProperty","upgradeProperty_fn","_updateTemplate","updateTemplate_fn","observedMediaAttributes","prependTemplate","MediaThemeElement","mutationList","prop","templateId","isValidUrl","template2","resource","response","computePosition","anchor","floating","getElementRects","computeCoordsFromPlacement","getRectRelativeToOffsetParent","offsetParent","rect","offsetRect","alignmentAxis","getSideAxis","alignLength","side","getSide","commonX","commonY","commonAlign","InvokeEvent","relatedTarget","ToggleEvent","newState","oldState","_previousItems","_isPopover","_cssRule","_handleSlotChange","handleSlotChange_fn","_toggleHeader","toggleHeader_fn","_handleMenuItems","_updateLayoutStyle","updateLayoutStyle_fn","_handleBoundsResize","_handleMenuResize","_positionMenu","positionMenu_fn","_resizeMenu","resizeMenu_fn","_handleClick","handleClick_fn","_backButtonElement","backButtonElement_get","_handleToggle","handleToggle_fn","_checkSubmenuHasExpanded","checkSubmenuHasExpanded_fn","_getItem","getItem_fn","_getTabItem","getTabItem_fn","_setTabItem","setTabItem_fn","_selectItem","selectItem_fn","createMenuItem","checked","createIndicator","customIndicator","fallbackIndicator","MediaChromeMenu","previousItems","currentItems","_data","getBoundsElement","isMenuItem","item2","currentItem","currentIndex","layoutRowStyle","menuLayout","menuWidth","right","bottom","realBottom","animate","expandedMenuItem","expandedSubmenu","menuItemsWithSubmenu","tabItem","toggle","oldCheckedItems","opt","_dirty","_ownerElement","_submenuConnected","submenuConnected_fn","_submenuDisconnected","submenuDisconnected_fn","_handleMenuItem","_handleKeyUp","handleKeyUp_fn","_reset","reset_fn","getSuffixSlotInnerHTML","MediaChromeMenuItem","descriptionSlot","checkedItem","span","isCheckable","closestMenuItemsContainer","MediaSettingsMenu","MediaSettingsMenuItem","MediaChromeMenuButton","MediaSettingsMenuButton","_audioTrackList","_prevState","_render","render_fn","_onChange","onChange_fn","MediaAudioTrackMenu","audioTrackList","audioTrackIcon","MediaAudioTrackMenuButton","ccIcon","MediaCaptionsMenu","hasListChanged","hasShowingChanged","isOff","subtitlesList","subs","showingSubs","showingSubsStr","localStateChange","MediaCaptionsMenuButton","MediaPlaybackRateMenu","currentRate","ratesSet","rate","sortedRates","MediaPlaybackRateMenuButton","_renditionList","MediaRenditionMenu","showBitrate","renditionText","mbps","bitrateText","renditionList","selectedRendition","isAuto","showSelectedBitrate","autoText","renditionIcon","MediaRenditionMenuButton","_isContextMenuOpen","_updateVisibility","updateVisibility_fn","_closeContextMenu","closeContextMenu_fn","_closeOtherContextMenus","closeOtherContextMenus_fn","_isVideoContainer","isVideoContainer_fn","_onControllerContextMenu","_onContextMenu","onContextMenu_fn","_onDocumentClick","_onKeyDown","_onMenuClick","MediaContextMenu","isVideoElement","isVideoContainer","isInsideMenu","isRightClick","isVideo","input","menu","MediaContextMenuItem"],"mappings":"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AAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GA4mCjuG9I,KAAGkK,GAAE,cAAc,UAAU;AAAE,eAA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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80]}