@hanifhan1f/vidstack 1.12.13 → 1.12.18
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/cdn/chunks/vidstack-2f5gzOW6.js +1 -0
- package/cdn/chunks/vidstack-BYgY9wmd.js +1 -0
- package/cdn/chunks/vidstack-BfBBPhXV.js +1 -0
- package/cdn/chunks/vidstack-Bjo5esRp.js +1 -0
- package/cdn/chunks/vidstack-BuL67v3q.js +1 -0
- package/cdn/chunks/vidstack-C0msPRTd.js +3 -0
- package/cdn/chunks/vidstack-CIjxJCz3.js +1 -0
- package/cdn/chunks/vidstack-C_AxqLKV.js +1 -0
- package/cdn/chunks/vidstack-CioT3Yw2.js +1 -0
- package/cdn/chunks/vidstack-CmpbA3Yd.js +16 -0
- package/cdn/chunks/vidstack-CrqkytHl.js +1 -0
- package/cdn/chunks/vidstack-D0M8R0ZU.js +1 -0
- package/cdn/chunks/vidstack-D40FSa5B.js +3 -0
- package/cdn/chunks/vidstack-DD2JwFVU.js +1 -0
- package/cdn/chunks/vidstack-DRH_1tFW.js +1 -0
- package/cdn/chunks/vidstack-DfDZuHNP.js +1 -0
- package/cdn/chunks/vidstack-DiNS2Vx5.js +1 -0
- package/cdn/chunks/vidstack-xjJ-ui_l.js +1 -0
- package/cdn/providers/vidstack-audio-2Dt_Ivbp.js +1 -0
- package/cdn/providers/vidstack-dash-CUtD4e6q.js +1 -0
- package/cdn/providers/vidstack-google-cast-BdORATUX.js +1 -0
- package/cdn/providers/vidstack-hls-R25Kb6DP.js +1 -0
- package/cdn/providers/vidstack-html-DaAUJYsD.js +1 -0
- package/cdn/providers/vidstack-video-Csvox7SO.js +1 -0
- package/cdn/providers/vidstack-vimeo-D4Z96kg2.js +1 -0
- package/cdn/providers/vidstack-youtube-DiND6h3s.js +1 -0
- package/cdn/vidstack.js +1 -0
- package/cdn/with-layouts/chunks/vidstack-2f5gzOW6.js +1 -0
- package/cdn/with-layouts/chunks/vidstack-BGhRKayG.js +914 -0
- package/cdn/with-layouts/chunks/vidstack-BL_lNyW_.js +1 -0
- package/cdn/with-layouts/chunks/vidstack-BMhNagfl.js +1 -0
- package/cdn/with-layouts/chunks/vidstack-BfBBPhXV.js +1 -0
- package/cdn/with-layouts/chunks/vidstack-BjOOdDcQ.js +1 -0
- package/cdn/with-layouts/chunks/vidstack-Bxv1Qnxe.js +1 -0
- package/cdn/with-layouts/chunks/vidstack-C5AP9wid.js +1 -0
- package/cdn/with-layouts/chunks/vidstack-CS2aNc61.js +1 -0
- package/cdn/with-layouts/chunks/vidstack-C_AxqLKV.js +1 -0
- package/cdn/with-layouts/chunks/vidstack-D-3_fAsK.js +1 -0
- package/cdn/with-layouts/chunks/vidstack-DKqYI_HJ.js +1 -0
- package/cdn/with-layouts/chunks/vidstack-DLVdcWrK.js +3 -0
- package/cdn/with-layouts/chunks/vidstack-DPO7J4-v.js +3 -0
- package/cdn/with-layouts/chunks/vidstack-DRH_1tFW.js +1 -0
- package/cdn/with-layouts/chunks/vidstack-DWjB11vV.js +1 -0
- package/cdn/with-layouts/chunks/vidstack-Dge3KT8k.js +1 -0
- package/cdn/with-layouts/chunks/vidstack-Dh2GOjra.js +1 -0
- package/cdn/with-layouts/chunks/vidstack-DiNS2Vx5.js +1 -0
- package/cdn/with-layouts/chunks/vidstack-QW5tTAS4.js +897 -0
- package/cdn/with-layouts/chunks/vidstack-Xe_d7ovA.js +1 -0
- package/cdn/with-layouts/chunks/vidstack-wt2OT4N7.js +1 -0
- package/cdn/with-layouts/providers/vidstack-audio-Bw1csc6N.js +1 -0
- package/cdn/with-layouts/providers/vidstack-dash-DHRMFG4Y.js +1 -0
- package/cdn/with-layouts/providers/vidstack-google-cast-BSYJYn-o.js +1 -0
- package/cdn/with-layouts/providers/vidstack-hls-DG1rTEqu.js +1 -0
- package/cdn/with-layouts/providers/vidstack-html-CoKFAYW5.js +1 -0
- package/cdn/with-layouts/providers/vidstack-video-CIxFJ9Z1.js +1 -0
- package/cdn/with-layouts/providers/vidstack-vimeo-CNLKOGMa.js +1 -0
- package/cdn/with-layouts/providers/vidstack-youtube-D1e-LE-8.js +1 -0
- package/cdn/with-layouts/vidstack.js +1 -0
- package/dev/chunks/vidstack-03oQOdB7.js +58 -0
- package/dev/chunks/vidstack-0Of4tJ8D.js +224 -0
- package/dev/chunks/vidstack-BJsZjPkB.js +204 -0
- package/dev/chunks/vidstack-BQSA-Rux.js +56 -0
- package/{src/core/quality/utils.ts → dev/chunks/vidstack-BTM4ERc7.js} +5 -7
- package/dev/chunks/vidstack-BXSB7eI9.js +58 -0
- package/dev/chunks/vidstack-BaGbgcvz.js +107 -0
- package/{src/core/time-ranges.ts → dev/chunks/vidstack-Becy7l6h.js} +22 -61
- package/dev/chunks/vidstack-Bf6x4gWe.js +29 -0
- package/dev/chunks/vidstack-BjxlZzGu.js +11 -0
- package/dev/chunks/vidstack-Blfm1k-4.js +1520 -0
- package/dev/chunks/vidstack-Bpr4fI4n.js +7 -0
- package/dev/chunks/vidstack-Bs54kFSz.js +66 -0
- package/dev/chunks/vidstack-Bur7I7Vy.js +57 -0
- package/dev/chunks/vidstack-C0SWkbs7.js +254 -0
- package/dev/chunks/vidstack-C1PwJD_4.js +1635 -0
- package/dev/chunks/vidstack-C4aPQ7hZ.js +1482 -0
- package/dev/chunks/vidstack-C6OqdJO7.js +114 -0
- package/dev/chunks/vidstack-C_rvOKWp.js +33 -0
- package/dev/chunks/vidstack-CaudO1jl.js +109 -0
- package/dev/chunks/vidstack-Cax7aAP-.js +66 -0
- package/dev/chunks/vidstack-CcQdBWil.js +58 -0
- package/dev/chunks/vidstack-CwTj4H1w.js +18 -0
- package/dev/chunks/vidstack-DAOcbKGP.js +254 -0
- package/dev/chunks/vidstack-DKaohJzR.js +5181 -0
- package/dev/chunks/vidstack-DXxIKXmd.js +50 -0
- package/dev/chunks/vidstack-DXzRuMtJ.js +107 -0
- package/dev/chunks/vidstack-Db1-Hg_U.js +297 -0
- package/dev/chunks/vidstack-DbBJlz7I.js +10 -0
- package/dev/chunks/vidstack-Dihypf8P.js +11 -0
- package/dev/chunks/vidstack-Dm1xEU9Q.js +34 -0
- package/dev/chunks/vidstack-Dv_LIPFu.js +14 -0
- package/{src/foundation/observers/raf-loop.ts → dev/chunks/vidstack-DwyWIZjv.js} +8 -11
- package/dev/chunks/vidstack-EoLRQZbs.js +2986 -0
- package/dev/chunks/vidstack-FKkY62Dr.js +104 -0
- package/dev/chunks/vidstack-krOAtKMi.js +32 -0
- package/dev/define/plyr-layout.js +52 -0
- package/dev/define/templates/plyr-layout.js +571 -0
- package/dev/define/templates/vidstack-audio-layout.js +168 -0
- package/dev/define/templates/vidstack-video-layout.js +486 -0
- package/dev/define/vidstack-icons.js +1 -0
- package/dev/define/vidstack-player-default-layout.js +22 -0
- package/dev/define/vidstack-player-layouts.js +26 -0
- package/dev/define/vidstack-player-ui.js +71 -0
- package/dev/define/vidstack-player.js +19 -0
- package/dev/global/plyr.js +502 -0
- package/dev/global/vidstack-player.js +129 -0
- package/dev/providers/vidstack-audio.js +35 -0
- package/dev/providers/vidstack-dash.js +516 -0
- package/dev/providers/vidstack-google-cast.js +474 -0
- package/dev/providers/vidstack-hls.js +408 -0
- package/dev/providers/vidstack-html.js +567 -0
- package/dev/providers/vidstack-video.js +207 -0
- package/dev/providers/vidstack-vimeo.js +554 -0
- package/dev/providers/vidstack-youtube.js +286 -0
- package/dev/vidstack-elements.js +37 -0
- package/dev/vidstack.js +92 -0
- package/elements.d.ts +1433 -0
- package/global/player.d.ts +52 -0
- package/{types/global → global}/plyr.d.ts +32 -33
- package/icons.d.ts +1 -0
- package/index.d.ts +402 -0
- package/package.json +3 -87
- package/{styles/player → player/styles}/default/layouts/video.css +69 -0
- package/plugins.d.ts +19 -0
- package/plugins.js +13 -0
- package/prod/chunks/vidstack-9_r3lWNO.js +45 -0
- package/prod/chunks/vidstack-B01xzxC4.js +7 -0
- package/prod/chunks/vidstack-BDIzK77F.js +107 -0
- package/prod/chunks/vidstack-BHqGlnGz.js +1482 -0
- package/prod/chunks/vidstack-BNpgCJJ1.js +1588 -0
- package/prod/chunks/vidstack-BP49Gz0m.js +58 -0
- package/prod/chunks/vidstack-BRZe2BNi.js +107 -0
- package/prod/chunks/vidstack-BTM4ERc7.js +11 -0
- package/prod/chunks/vidstack-BaaRY-9x.js +201 -0
- package/prod/chunks/vidstack-BdFYWy6h.js +26 -0
- package/prod/chunks/vidstack-BpLd9ASW.js +246 -0
- package/prod/chunks/vidstack-C05ipjAK.js +1520 -0
- package/prod/chunks/vidstack-C9vIqaYT.js +10 -0
- package/prod/chunks/vidstack-CA4tDJdF.js +33 -0
- package/prod/chunks/vidstack-COLU-zPZ.js +57 -0
- package/prod/chunks/vidstack-CwTj4H1w.js +18 -0
- package/prod/chunks/vidstack-D5EzK014.js +14 -0
- package/prod/chunks/vidstack-D7hJcnN-.js +297 -0
- package/prod/chunks/vidstack-DB9WDRL5.js +248 -0
- package/prod/chunks/vidstack-DESBVLFp.js +104 -0
- package/prod/chunks/vidstack-DXxIKXmd.js +50 -0
- package/prod/chunks/vidstack-DcMkaIHJ.js +2976 -0
- package/prod/chunks/vidstack-Dihypf8P.js +11 -0
- package/prod/chunks/vidstack-Dm1xEU9Q.js +34 -0
- package/prod/chunks/vidstack-DwenML7x.js +4771 -0
- package/prod/chunks/vidstack-Fem0yF3c.js +77 -0
- package/prod/chunks/vidstack-IDWYvfna.js +58 -0
- package/prod/chunks/vidstack-MbEMbVfP.js +109 -0
- package/prod/chunks/vidstack-Oq65llxr.js +29 -0
- package/prod/chunks/vidstack-SnIdjCkV.js +58 -0
- package/prod/chunks/vidstack-V1jwkH0s.js +66 -0
- package/prod/chunks/vidstack-bdt7uOlN.js +114 -0
- package/prod/chunks/vidstack-krOAtKMi.js +32 -0
- package/prod/chunks/vidstack-mxJIo4Sg.js +56 -0
- package/prod/chunks/vidstack-tt3O1zL6.js +11 -0
- package/prod/chunks/vidstack-zfCm-GM5.js +205 -0
- package/prod/define/plyr-layout.js +52 -0
- package/prod/define/templates/plyr-layout.js +571 -0
- package/prod/define/templates/vidstack-audio-layout.js +168 -0
- package/prod/define/templates/vidstack-video-layout.js +486 -0
- package/prod/define/vidstack-icons.js +1 -0
- package/prod/define/vidstack-player-default-layout.js +22 -0
- package/prod/define/vidstack-player-layouts.js +26 -0
- package/prod/define/vidstack-player-ui.js +71 -0
- package/prod/define/vidstack-player.js +19 -0
- package/prod/global/plyr.js +494 -0
- package/prod/global/vidstack-player.js +129 -0
- package/prod/providers/vidstack-audio.js +35 -0
- package/prod/providers/vidstack-dash.js +501 -0
- package/prod/providers/vidstack-google-cast.js +468 -0
- package/prod/providers/vidstack-hls.js +393 -0
- package/prod/providers/vidstack-html.js +555 -0
- package/prod/providers/vidstack-video.js +204 -0
- package/prod/providers/vidstack-vimeo.js +548 -0
- package/prod/providers/vidstack-youtube.js +286 -0
- package/prod/vidstack-elements.js +37 -0
- package/prod/vidstack.js +159 -0
- package/server/chunks/vidstack-B4CWj0Hp.js +381 -0
- package/server/chunks/vidstack-B8LynzY5.js +1564 -0
- package/server/chunks/vidstack-BGgfNYAH.js +141 -0
- package/server/chunks/vidstack-BGmwlunt.js +3035 -0
- package/server/chunks/vidstack-BOTZD4tC.js +18 -0
- package/server/chunks/vidstack-C19bj3Wq.js +307 -0
- package/server/chunks/vidstack-CFTkUXGK.js +295 -0
- package/server/chunks/vidstack-CQMB7Msg.js +1502 -0
- package/server/chunks/vidstack-CdBfecZT.js +205 -0
- package/server/chunks/vidstack-Cv_Art04.js +4635 -0
- package/server/chunks/vidstack-CwTj4H1w.js +18 -0
- package/server/chunks/vidstack-DE4b5Bgx.js +2002 -0
- package/server/chunks/vidstack-DXxIKXmd.js +50 -0
- package/server/chunks/vidstack-DbvCOsqU.js +107 -0
- package/server/chunks/vidstack-DgHfFDiw.js +1962 -0
- package/server/chunks/vidstack-Dm1xEU9Q.js +34 -0
- package/server/chunks/vidstack-DnkB7eGO.js +207 -0
- package/server/chunks/vidstack-DsnTqzpL.js +29 -0
- package/{src/elements/define/layouts/plyr/ui.ts → server/chunks/vidstack-FHGkN5xj.js} +144 -235
- package/server/chunks/vidstack-P_QDjYIl.js +56 -0
- package/server/chunks/vidstack-f5-aflD2.js +104 -0
- package/server/chunks/vidstack-krOAtKMi.js +32 -0
- package/server/define/plyr-layout.js +16 -0
- package/server/define/vidstack-icons.js +1 -0
- package/server/define/vidstack-player-default-layout.js +13 -0
- package/server/define/vidstack-player-layouts.js +16 -0
- package/server/define/vidstack-player-ui.js +11 -0
- package/server/define/vidstack-player.js +6 -0
- package/server/global/plyr.js +322 -0
- package/server/global/vidstack-player.js +58 -0
- package/server/vidstack-elements.js +46 -0
- package/server/vidstack.js +148 -0
- package/types/vidstack-BOvzfZjK.d.ts +1269 -0
- package/types/vidstack-DYLKXUvI.d.ts +7479 -0
- package/.templates/sandbox/favicon-32x32.png +0 -0
- package/.templates/sandbox/index.html +0 -42
- package/.templates/sandbox/main.ts +0 -137
- package/.templates/sandbox/styles.css +0 -68
- package/analyze.config.ts +0 -133
- package/build/build-styles.js +0 -33
- package/build/rollup-decorators.ts +0 -102
- package/build/rollup-minify.js +0 -20
- package/build/rollup-ts.js +0 -57
- package/rollup.config.ts +0 -442
- package/src/components/aria/announcer.ts +0 -181
- package/src/components/layouts/default/audio-layout.ts +0 -20
- package/src/components/layouts/default/context.ts +0 -15
- package/src/components/layouts/default/default-layout.ts +0 -67
- package/src/components/layouts/default/props.ts +0 -143
- package/src/components/layouts/default/translations.ts +0 -70
- package/src/components/layouts/default/video-layout.ts +0 -20
- package/src/components/layouts/plyr/context.ts +0 -13
- package/src/components/layouts/plyr/plyr-layout.ts +0 -90
- package/src/components/layouts/plyr/props.ts +0 -114
- package/src/components/layouts/plyr/translations.ts +0 -53
- package/src/components/player.ts +0 -758
- package/src/components/provider/provider.ts +0 -184
- package/src/components/provider/source-select.ts +0 -378
- package/src/components/provider/tracks.ts +0 -37
- package/src/components/ui/buttons/airplay-button.ts +0 -74
- package/src/components/ui/buttons/caption-button.ts +0 -68
- package/src/components/ui/buttons/fullscreen-button.ts +0 -90
- package/src/components/ui/buttons/google-cast-button.ts +0 -75
- package/src/components/ui/buttons/live-button.ts +0 -76
- package/src/components/ui/buttons/mute-button.ts +0 -69
- package/src/components/ui/buttons/pip-button.ts +0 -71
- package/src/components/ui/buttons/play-button.ts +0 -62
- package/src/components/ui/buttons/seek-button.ts +0 -92
- package/src/components/ui/buttons/toggle-button-controller.ts +0 -92
- package/src/components/ui/buttons/toggle-button.ts +0 -49
- package/src/components/ui/captions/captions-renderer.ts +0 -63
- package/src/components/ui/captions/captions.ts +0 -227
- package/src/components/ui/controls-group.ts +0 -13
- package/src/components/ui/controls.ts +0 -101
- package/src/components/ui/gesture.ts +0 -252
- package/src/components/ui/menu/menu-button.ts +0 -95
- package/src/components/ui/menu/menu-context.ts +0 -27
- package/src/components/ui/menu/menu-focus-controller.ts +0 -205
- package/src/components/ui/menu/menu-item.ts +0 -9
- package/src/components/ui/menu/menu-items.ts +0 -129
- package/src/components/ui/menu/menu-portal.ts +0 -105
- package/src/components/ui/menu/menu.ts +0 -612
- package/src/components/ui/menu/radio/radio-controller.ts +0 -18
- package/src/components/ui/menu/radio/radio-group-controller.ts +0 -81
- package/src/components/ui/menu/radio/radio-group.ts +0 -78
- package/src/components/ui/menu/radio/radio.ts +0 -151
- package/src/components/ui/menu/radio-groups/audio-gain-radio-group.ts +0 -116
- package/src/components/ui/menu/radio-groups/audio-radio-group.ts +0 -121
- package/src/components/ui/menu/radio-groups/captions-radio-group.ts +0 -153
- package/src/components/ui/menu/radio-groups/chapters-radio-group.ts +0 -211
- package/src/components/ui/menu/radio-groups/quality-radio-group.ts +0 -181
- package/src/components/ui/menu/radio-groups/speed-radio-group.ts +0 -112
- package/src/components/ui/popper/popper.ts +0 -103
- package/src/components/ui/poster.ts +0 -187
- package/src/components/ui/sliders/audio-gain-slider.ts +0 -150
- package/src/components/ui/sliders/quality-slider.ts +0 -148
- package/src/components/ui/sliders/slider/api/cssvars.ts +0 -10
- package/src/components/ui/sliders/slider/api/events.ts +0 -65
- package/src/components/ui/sliders/slider/api/state.ts +0 -101
- package/src/components/ui/sliders/slider/events-controller.ts +0 -383
- package/src/components/ui/sliders/slider/format.ts +0 -12
- package/src/components/ui/sliders/slider/slider-context.ts +0 -18
- package/src/components/ui/sliders/slider/slider-controller.ts +0 -211
- package/src/components/ui/sliders/slider/slider.ts +0 -94
- package/src/components/ui/sliders/slider/types.ts +0 -1
- package/src/components/ui/sliders/slider/utils.ts +0 -14
- package/src/components/ui/sliders/slider-preview.ts +0 -131
- package/src/components/ui/sliders/slider-thumbnail.ts +0 -28
- package/src/components/ui/sliders/slider-value.ts +0 -122
- package/src/components/ui/sliders/slider-video.ts +0 -198
- package/src/components/ui/sliders/speed-slider.ts +0 -147
- package/src/components/ui/sliders/time-slider/slider-chapters.ts +0 -444
- package/src/components/ui/sliders/time-slider/time-slider.ts +0 -319
- package/src/components/ui/sliders/volume-slider.ts +0 -145
- package/src/components/ui/thumbnails/thumbnail-loader.ts +0 -324
- package/src/components/ui/thumbnails/thumbnail.ts +0 -244
- package/src/components/ui/time.ts +0 -191
- package/src/components/ui/tooltip/tooltip-content.ts +0 -105
- package/src/components/ui/tooltip/tooltip-context.ts +0 -13
- package/src/components/ui/tooltip/tooltip-trigger.ts +0 -49
- package/src/components/ui/tooltip/tooltip.ts +0 -127
- package/src/core/api/media-attrs.ts +0 -35
- package/src/core/api/media-context.ts +0 -52
- package/src/core/api/media-events.ts +0 -601
- package/src/core/api/media-request-events.ts +0 -323
- package/src/core/api/player-controller.ts +0 -10
- package/src/core/api/player-events.ts +0 -49
- package/src/core/api/player-props.ts +0 -233
- package/src/core/api/player-state.ts +0 -940
- package/src/core/api/src-types.ts +0 -97
- package/src/core/api/types.ts +0 -69
- package/src/core/controls.ts +0 -251
- package/src/core/font/font-options.ts +0 -106
- package/src/core/font/font-vars.ts +0 -107
- package/src/core/keyboard/aria-shortcuts.ts +0 -42
- package/src/core/keyboard/controller.ts +0 -302
- package/src/core/keyboard/types.ts +0 -40
- package/src/core/quality/events.ts +0 -48
- package/src/core/quality/symbols.ts +0 -8
- package/src/core/quality/video-quality.ts +0 -86
- package/src/core/state/media-events-logger.ts +0 -67
- package/src/core/state/media-load-controller.ts +0 -40
- package/src/core/state/media-player-delegate.ts +0 -170
- package/src/core/state/media-request-manager.ts +0 -952
- package/src/core/state/media-state-manager.ts +0 -1077
- package/src/core/state/media-state-sync.ts +0 -162
- package/src/core/state/media-storage.ts +0 -196
- package/src/core/state/navigator-media-session.ts +0 -62
- package/src/core/state/remote-control.ts +0 -584
- package/src/core/state/tracked-media-events.ts +0 -22
- package/src/core/tracks/audio/audio-tracks.ts +0 -33
- package/src/core/tracks/audio/events.ts +0 -41
- package/src/core/tracks/text/events.ts +0 -52
- package/src/core/tracks/text/render/libass-text-renderer.ts +0 -246
- package/src/core/tracks/text/render/native-text-renderer.ts +0 -106
- package/src/core/tracks/text/render/text-renderer.ts +0 -134
- package/src/core/tracks/text/symbols.ts +0 -17
- package/src/core/tracks/text/text-track.test.ts +0 -407
- package/src/core/tracks/text/text-track.ts +0 -413
- package/src/core/tracks/text/text-tracks.ts +0 -210
- package/src/core/tracks/text/utils.ts +0 -85
- package/src/elements/bundles/cdn/player.core.ts +0 -6
- package/src/elements/bundles/cdn/player.ts +0 -8
- package/src/elements/bundles/cdn/plyr.ts +0 -6
- package/src/elements/bundles/cdn-legacy/player-with-default.ts +0 -4
- package/src/elements/bundles/cdn-legacy/player-with-layouts.ts +0 -4
- package/src/elements/bundles/cdn-legacy/player-with-plyr.ts +0 -3
- package/src/elements/bundles/cdn-legacy/player.ts +0 -3
- package/src/elements/bundles/icons.ts +0 -3
- package/src/elements/bundles/player-layouts/default.ts +0 -7
- package/src/elements/bundles/player-layouts/index.ts +0 -9
- package/src/elements/bundles/player-layouts/plyr.ts +0 -65
- package/src/elements/bundles/player-ui.ts +0 -108
- package/src/elements/bundles/player.ts +0 -7
- package/src/elements/define/announcer-element.ts +0 -20
- package/src/elements/define/buttons/airplay-button-element.ts +0 -21
- package/src/elements/define/buttons/caption-button-element.ts +0 -22
- package/src/elements/define/buttons/fullscreen-button-element.ts +0 -22
- package/src/elements/define/buttons/google-cast-button-element.ts +0 -21
- package/src/elements/define/buttons/live-button-element.ts +0 -22
- package/src/elements/define/buttons/mute-button-element.ts +0 -23
- package/src/elements/define/buttons/pip-button-element.ts +0 -22
- package/src/elements/define/buttons/play-button-element.ts +0 -23
- package/src/elements/define/buttons/seek-button-element.ts +0 -26
- package/src/elements/define/buttons/toggle-button-element.ts +0 -21
- package/src/elements/define/captions-element.ts +0 -20
- package/src/elements/define/chapter-title-element.ts +0 -54
- package/src/elements/define/controls-element.ts +0 -26
- package/src/elements/define/controls-group-element.ts +0 -26
- package/src/elements/define/gesture-element.ts +0 -24
- package/src/elements/define/layouts/default/audio-layout-element.ts +0 -137
- package/src/elements/define/layouts/default/audio-layout.ts +0 -113
- package/src/elements/define/layouts/default/icons-loader.ts +0 -17
- package/src/elements/define/layouts/default/icons.ts +0 -86
- package/src/elements/define/layouts/default/slots.ts +0 -12
- package/src/elements/define/layouts/default/ui/announcer.ts +0 -14
- package/src/elements/define/layouts/default/ui/buttons.ts +0 -291
- package/src/elements/define/layouts/default/ui/captions.ts +0 -14
- package/src/elements/define/layouts/default/ui/controls.ts +0 -5
- package/src/elements/define/layouts/default/ui/keyboard-display.ts +0 -114
- package/src/elements/define/layouts/default/ui/menu/accessibility-menu.ts +0 -79
- package/src/elements/define/layouts/default/ui/menu/audio-menu.ts +0 -135
- package/src/elements/define/layouts/default/ui/menu/captions-menu.ts +0 -114
- package/src/elements/define/layouts/default/ui/menu/chapters-menu.ts +0 -117
- package/src/elements/define/layouts/default/ui/menu/episodes-menu.ts +0 -133
- package/src/elements/define/layouts/default/ui/menu/font-menu.ts +0 -253
- package/src/elements/define/layouts/default/ui/menu/items/menu-checkbox.ts +0 -67
- package/src/elements/define/layouts/default/ui/menu/items/menu-items.ts +0 -108
- package/src/elements/define/layouts/default/ui/menu/items/menu-slider.ts +0 -59
- package/src/elements/define/layouts/default/ui/menu/menu-portal.ts +0 -56
- package/src/elements/define/layouts/default/ui/menu/playback-menu.ts +0 -183
- package/src/elements/define/layouts/default/ui/menu/settings-menu.ts +0 -98
- package/src/elements/define/layouts/default/ui/slider.ts +0 -112
- package/src/elements/define/layouts/default/ui/time.ts +0 -41
- package/src/elements/define/layouts/default/ui/title.ts +0 -25
- package/src/elements/define/layouts/default/ui/utils.ts +0 -10
- package/src/elements/define/layouts/default/video-layout-element.ts +0 -125
- package/src/elements/define/layouts/default/video-layout.ts +0 -353
- package/src/elements/define/layouts/icons/icons-loader.ts +0 -47
- package/src/elements/define/layouts/icons/layout-icons-loader.ts +0 -24
- package/src/elements/define/layouts/layout-element.ts +0 -78
- package/src/elements/define/layouts/layout-name.ts +0 -15
- package/src/elements/define/layouts/plyr/icons/plyr-airplay.js +0 -1
- package/src/elements/define/layouts/plyr/icons/plyr-captions-off.js +0 -1
- package/src/elements/define/layouts/plyr/icons/plyr-captions-on.js +0 -1
- package/src/elements/define/layouts/plyr/icons/plyr-download.js +0 -1
- package/src/elements/define/layouts/plyr/icons/plyr-enter-fullscreen.js +0 -1
- package/src/elements/define/layouts/plyr/icons/plyr-exit-fullscreen.js +0 -1
- package/src/elements/define/layouts/plyr/icons/plyr-fast-forward.js +0 -1
- package/src/elements/define/layouts/plyr/icons/plyr-muted.js +0 -1
- package/src/elements/define/layouts/plyr/icons/plyr-pause.js +0 -1
- package/src/elements/define/layouts/plyr/icons/plyr-pip.js +0 -1
- package/src/elements/define/layouts/plyr/icons/plyr-play.js +0 -1
- package/src/elements/define/layouts/plyr/icons/plyr-restart.js +0 -1
- package/src/elements/define/layouts/plyr/icons/plyr-rewind.js +0 -1
- package/src/elements/define/layouts/plyr/icons/plyr-settings.js +0 -1
- package/src/elements/define/layouts/plyr/icons/plyr-volume.js +0 -1
- package/src/elements/define/layouts/plyr/icons-loader.ts +0 -21
- package/src/elements/define/layouts/plyr/icons.ts +0 -34
- package/src/elements/define/layouts/plyr/plyr-layout-element.ts +0 -67
- package/src/elements/define/layouts/slot-manager.ts +0 -61
- package/src/elements/define/layouts/slot-observer.ts +0 -70
- package/src/elements/define/menus/_template.ts +0 -47
- package/src/elements/define/menus/audio-gain-group-element.ts +0 -37
- package/src/elements/define/menus/audio-radio-group-element.ts +0 -37
- package/src/elements/define/menus/captions-radio-group-element.ts +0 -37
- package/src/elements/define/menus/chapters-radio-group-element.ts +0 -68
- package/src/elements/define/menus/menu-button-element.ts +0 -27
- package/src/elements/define/menus/menu-element.ts +0 -28
- package/src/elements/define/menus/menu-item-element.ts +0 -24
- package/src/elements/define/menus/menu-items-element.ts +0 -27
- package/src/elements/define/menus/menu-portal-element.ts +0 -35
- package/src/elements/define/menus/quality-radio-group-element.ts +0 -51
- package/src/elements/define/menus/radio-element.ts +0 -24
- package/src/elements/define/menus/radio-group-element.ts +0 -24
- package/src/elements/define/menus/speed-radio-group-element.ts +0 -37
- package/src/elements/define/player-element.ts +0 -33
- package/src/elements/define/poster-element.ts +0 -53
- package/src/elements/define/provider-cast-display.ts +0 -36
- package/src/elements/define/provider-element.ts +0 -158
- package/src/elements/define/sliders/audio-gain-slider-element.ts +0 -34
- package/src/elements/define/sliders/quality-slider-element.ts +0 -34
- package/src/elements/define/sliders/slider-chapters-element.ts +0 -53
- package/src/elements/define/sliders/slider-element.ts +0 -25
- package/src/elements/define/sliders/slider-preview-element.ts +0 -16
- package/src/elements/define/sliders/slider-steps-element.ts +0 -50
- package/src/elements/define/sliders/slider-thumbnail-element.ts +0 -48
- package/src/elements/define/sliders/slider-value-element.ts +0 -49
- package/src/elements/define/sliders/slider-video-element.ts +0 -59
- package/src/elements/define/sliders/speed-slider-element.ts +0 -34
- package/src/elements/define/sliders/time-slider-element.ts +0 -34
- package/src/elements/define/sliders/volume-slider-element.ts +0 -34
- package/src/elements/define/spinner-element.ts +0 -96
- package/src/elements/define/thumbnail-element.ts +0 -63
- package/src/elements/define/time-element.ts +0 -32
- package/src/elements/define/title-element.ts +0 -38
- package/src/elements/define/tooltips/tooltip-content-element.ts +0 -28
- package/src/elements/define/tooltips/tooltip-element.ts +0 -28
- package/src/elements/define/tooltips/tooltip-trigger-element.ts +0 -32
- package/src/elements/icon.ts +0 -30
- package/src/elements/index.ts +0 -71
- package/src/elements/lit/directives/signal.ts +0 -80
- package/src/elements/lit/html.ts +0 -11
- package/src/elements/lit/lit-element.ts +0 -23
- package/src/elements/state-controller.ts +0 -48
- package/src/exports/components.ts +0 -79
- package/src/exports/core.ts +0 -41
- package/src/exports/events.ts +0 -46
- package/src/exports/font.ts +0 -3
- package/src/exports/foundation.ts +0 -8
- package/src/exports/maverick.ts +0 -9
- package/src/exports/providers.ts +0 -42
- package/src/exports/utils.ts +0 -18
- package/src/foundation/fullscreen/controller.ts +0 -128
- package/src/foundation/fullscreen/events.ts +0 -26
- package/src/foundation/list/list.ts +0 -127
- package/src/foundation/list/select-list.ts +0 -86
- package/src/foundation/list/symbols.ts +0 -22
- package/src/foundation/logger/colors.ts +0 -33
- package/src/foundation/logger/controller.ts +0 -71
- package/src/foundation/logger/events.ts +0 -29
- package/src/foundation/logger/grouped-log.ts +0 -44
- package/src/foundation/logger/log-level.ts +0 -17
- package/src/foundation/logger/log-printer.ts +0 -119
- package/src/foundation/logger/ms.ts +0 -31
- package/src/foundation/observers/focus-visible.ts +0 -74
- package/src/foundation/observers/intersection-observer.ts +0 -60
- package/src/foundation/observers/page-visibility.ts +0 -105
- package/src/foundation/orientation/controller.ts +0 -139
- package/src/foundation/orientation/events.ts +0 -20
- package/src/foundation/orientation/types.ts +0 -96
- package/src/foundation/queue/queue.ts +0 -41
- package/src/foundation/queue/request-queue.test.ts +0 -139
- package/src/foundation/queue/request-queue.ts +0 -94
- package/src/global/layouts/default.ts +0 -28
- package/src/global/layouts/loader.ts +0 -5
- package/src/global/layouts/plyr.ts +0 -24
- package/src/global/player.ts +0 -144
- package/src/global/plyr.ts +0 -917
- package/src/globals.d.ts +0 -11
- package/src/index.ts +0 -10
- package/src/plugins.ts +0 -369
- package/src/providers/audio/loader.ts +0 -45
- package/src/providers/audio/provider.ts +0 -50
- package/src/providers/dash/dash.ts +0 -417
- package/src/providers/dash/events.ts +0 -585
- package/src/providers/dash/lib-loader.ts +0 -202
- package/src/providers/dash/loader.ts +0 -33
- package/src/providers/dash/provider.ts +0 -135
- package/src/providers/dash/types.ts +0 -21
- package/src/providers/embed/EmbedProvider.ts +0 -84
- package/src/providers/google-cast/events.ts +0 -53
- package/src/providers/google-cast/loader.ts +0 -174
- package/src/providers/google-cast/media-info.ts +0 -49
- package/src/providers/google-cast/provider.ts +0 -483
- package/src/providers/google-cast/tracks.ts +0 -170
- package/src/providers/google-cast/types.ts +0 -3
- package/src/providers/google-cast/utils.ts +0 -112
- package/src/providers/hls/events.ts +0 -472
- package/src/providers/hls/hls.ts +0 -290
- package/src/providers/hls/lib-loader.ts +0 -178
- package/src/providers/hls/loader.ts +0 -33
- package/src/providers/hls/provider.ts +0 -137
- package/src/providers/hls/types.ts +0 -10
- package/src/providers/html/audio/audio-context.ts +0 -60
- package/src/providers/html/audio/audio-gain.ts +0 -100
- package/src/providers/html/html/342/200/223media-events.ts +0 -338
- package/src/providers/html/native-audio-tracks.ts +0 -91
- package/src/providers/html/provider.ts +0 -141
- package/src/providers/html/remote-playback.ts +0 -94
- package/src/providers/type-check.ts +0 -61
- package/src/providers/types.ts +0 -95
- package/src/providers/video/loader.ts +0 -45
- package/src/providers/video/native-hls-text-tracks.ts +0 -69
- package/src/providers/video/picture-in-picture.ts +0 -54
- package/src/providers/video/presentation/events.ts +0 -12
- package/src/providers/video/presentation/video-presentation.ts +0 -110
- package/src/providers/video/provider.ts +0 -91
- package/src/providers/vimeo/embed/command.ts +0 -118
- package/src/providers/vimeo/embed/event.ts +0 -124
- package/src/providers/vimeo/embed/message.ts +0 -9
- package/src/providers/vimeo/embed/misc.ts +0 -57
- package/src/providers/vimeo/embed/params.ts +0 -168
- package/src/providers/vimeo/loader.ts +0 -61
- package/src/providers/vimeo/provider.ts +0 -730
- package/src/providers/vimeo/utils.ts +0 -53
- package/src/providers/youtube/embed/command.ts +0 -21
- package/src/providers/youtube/embed/event.ts +0 -1
- package/src/providers/youtube/embed/message.ts +0 -54
- package/src/providers/youtube/embed/params.ts +0 -238
- package/src/providers/youtube/embed/quality.ts +0 -35
- package/src/providers/youtube/embed/state.ts +0 -13
- package/src/providers/youtube/loader.ts +0 -61
- package/src/providers/youtube/provider.ts +0 -403
- package/src/providers/youtube/utils.ts +0 -45
- package/src/tailwind.test.ts +0 -413
- package/src/test-utils/index.ts +0 -22
- package/src/test-utils/setup.ts +0 -3
- package/src/utils/aria.ts +0 -14
- package/src/utils/array.ts +0 -3
- package/src/utils/color.ts +0 -5
- package/src/utils/dom.ts +0 -458
- package/src/utils/error.ts +0 -11
- package/src/utils/language.ts +0 -16
- package/src/utils/manifest.ts +0 -61
- package/src/utils/mime.ts +0 -101
- package/src/utils/network.ts +0 -118
- package/src/utils/number.ts +0 -25
- package/src/utils/promise.ts +0 -12
- package/src/utils/scroll.ts +0 -19
- package/src/utils/support.ts +0 -163
- package/src/utils/time.test.ts +0 -111
- package/src/utils/time.ts +0 -123
- package/tsconfig.build.json +0 -9
- package/tsconfig.json +0 -11
- package/types/components/aria/announcer.d.ts +0 -27
- package/types/components/layouts/default/audio-layout.d.ts +0 -15
- package/types/components/layouts/default/context.d.ts +0 -9
- package/types/components/layouts/default/default-layout.d.ts +0 -10
- package/types/components/layouts/default/props.d.ts +0 -125
- package/types/components/layouts/default/translations.d.ts +0 -6
- package/types/components/layouts/default/video-layout.d.ts +0 -15
- package/types/components/layouts/plyr/context.d.ts +0 -7
- package/types/components/layouts/plyr/plyr-layout.d.ts +0 -9
- package/types/components/layouts/plyr/props.d.ts +0 -68
- package/types/components/layouts/plyr/translations.d.ts +0 -6
- package/types/components/player.d.ts +0 -214
- package/types/components/provider/provider.d.ts +0 -24
- package/types/components/provider/source-select.d.ts +0 -10
- package/types/components/provider/tracks.d.ts +0 -7
- package/types/components/ui/buttons/airplay-button.d.ts +0 -23
- package/types/components/ui/buttons/caption-button.d.ts +0 -21
- package/types/components/ui/buttons/fullscreen-button.d.ts +0 -28
- package/types/components/ui/buttons/google-cast-button.d.ts +0 -23
- package/types/components/ui/buttons/live-button.d.ts +0 -30
- package/types/components/ui/buttons/mute-button.d.ts +0 -21
- package/types/components/ui/buttons/pip-button.d.ts +0 -22
- package/types/components/ui/buttons/play-button.d.ts +0 -21
- package/types/components/ui/buttons/seek-button.d.ts +0 -32
- package/types/components/ui/buttons/toggle-button-controller.d.ts +0 -20
- package/types/components/ui/buttons/toggle-button.d.ts +0 -29
- package/types/components/ui/captions/captions-renderer.d.ts +0 -12
- package/types/components/ui/captions/captions.d.ts +0 -22
- package/types/components/ui/controls-group.d.ts +0 -9
- package/types/components/ui/controls.d.ts +0 -38
- package/types/components/ui/gesture.d.ts +0 -64
- package/types/components/ui/menu/menu-button.d.ts +0 -37
- package/types/components/ui/menu/menu-context.d.ts +0 -23
- package/types/components/ui/menu/menu-focus-controller.d.ts +0 -14
- package/types/components/ui/menu/menu-item.d.ts +0 -9
- package/types/components/ui/menu/menu-items.d.ts +0 -44
- package/types/components/ui/menu/menu-portal.d.ts +0 -31
- package/types/components/ui/menu/menu.d.ts +0 -66
- package/types/components/ui/menu/radio/radio-controller.d.ts +0 -14
- package/types/components/ui/menu/radio/radio-group-controller.d.ts +0 -11
- package/types/components/ui/menu/radio/radio-group.d.ts +0 -40
- package/types/components/ui/menu/radio/radio.d.ts +0 -50
- package/types/components/ui/menu/radio-groups/audio-gain-radio-group.d.ts +0 -36
- package/types/components/ui/menu/radio-groups/audio-radio-group.d.ts +0 -37
- package/types/components/ui/menu/radio-groups/captions-radio-group.d.ts +0 -38
- package/types/components/ui/menu/radio-groups/chapters-radio-group.d.ts +0 -46
- package/types/components/ui/menu/radio-groups/quality-radio-group.d.ts +0 -48
- package/types/components/ui/menu/radio-groups/speed-radio-group.d.ts +0 -36
- package/types/components/ui/popper/popper.d.ts +0 -15
- package/types/components/ui/poster.d.ts +0 -47
- package/types/components/ui/sliders/audio-gain-slider.d.ts +0 -43
- package/types/components/ui/sliders/quality-slider.d.ts +0 -34
- package/types/components/ui/sliders/slider/api/cssvars.d.ts +0 -10
- package/types/components/ui/sliders/slider/api/events.d.ts +0 -57
- package/types/components/ui/sliders/slider/api/state.d.ts +0 -68
- package/types/components/ui/sliders/slider/events-controller.d.ts +0 -23
- package/types/components/ui/sliders/slider/format.d.ts +0 -8
- package/types/components/ui/sliders/slider/slider-context.d.ts +0 -13
- package/types/components/ui/sliders/slider/slider-controller.d.ts +0 -59
- package/types/components/ui/sliders/slider/slider.d.ts +0 -39
- package/types/components/ui/sliders/slider/types.d.ts +0 -1
- package/types/components/ui/sliders/slider/utils.d.ts +0 -2
- package/types/components/ui/sliders/slider-preview.d.ts +0 -34
- package/types/components/ui/sliders/slider-thumbnail.d.ts +0 -16
- package/types/components/ui/sliders/slider-value.d.ts +0 -59
- package/types/components/ui/sliders/slider-video.d.ts +0 -73
- package/types/components/ui/sliders/speed-slider.d.ts +0 -42
- package/types/components/ui/sliders/time-slider/slider-chapters.d.ts +0 -36
- package/types/components/ui/sliders/time-slider/time-slider.d.ts +0 -56
- package/types/components/ui/sliders/volume-slider.d.ts +0 -35
- package/types/components/ui/thumbnails/thumbnail-loader.d.ts +0 -47
- package/types/components/ui/thumbnails/thumbnail.d.ts +0 -50
- package/types/components/ui/time.d.ts +0 -62
- package/types/components/ui/tooltip/tooltip-content.d.ts +0 -39
- package/types/components/ui/tooltip/tooltip-context.d.ts +0 -11
- package/types/components/ui/tooltip/tooltip-trigger.d.ts +0 -14
- package/types/components/ui/tooltip/tooltip.d.ts +0 -23
- package/types/core/api/media-attrs.d.ts +0 -3
- package/types/core/api/media-context.d.ts +0 -37
- package/types/core/api/media-events.d.ts +0 -581
- package/types/core/api/media-request-events.d.ts +0 -319
- package/types/core/api/player-controller.d.ts +0 -6
- package/types/core/api/player-events.d.ts +0 -38
- package/types/core/api/player-props.d.ts +0 -163
- package/types/core/api/player-state.d.ts +0 -656
- package/types/core/api/src-types.d.ts +0 -50
- package/types/core/api/types.d.ts +0 -54
- package/types/core/controls.d.ts +0 -43
- package/types/core/font/font-options.d.ts +0 -42
- package/types/core/font/font-vars.d.ts +0 -1
- package/types/core/keyboard/aria-shortcuts.d.ts +0 -6
- package/types/core/keyboard/controller.d.ts +0 -9
- package/types/core/keyboard/types.d.ts +0 -33
- package/types/core/quality/events.d.ts +0 -43
- package/types/core/quality/symbols.d.ts +0 -6
- package/types/core/quality/utils.d.ts +0 -2
- package/types/core/quality/video-quality.d.ts +0 -52
- package/types/core/state/media-events-logger.d.ts +0 -7
- package/types/core/state/media-load-controller.d.ts +0 -6
- package/types/core/state/media-player-delegate.d.ts +0 -13
- package/types/core/state/media-request-manager.d.ts +0 -71
- package/types/core/state/media-state-manager.d.ts +0 -59
- package/types/core/state/media-state-sync.d.ts +0 -8
- package/types/core/state/media-storage.d.ts +0 -74
- package/types/core/state/navigator-media-session.d.ts +0 -5
- package/types/core/state/remote-control.d.ts +0 -288
- package/types/core/state/tracked-media-events.d.ts +0 -2
- package/types/core/time-ranges.d.ts +0 -12
- package/types/core/tracks/audio/audio-tracks.d.ts +0 -32
- package/types/core/tracks/audio/events.d.ts +0 -37
- package/types/core/tracks/text/events.d.ts +0 -49
- package/types/core/tracks/text/render/libass-text-renderer.d.ts +0 -181
- package/types/core/tracks/text/render/native-text-renderer.d.ts +0 -13
- package/types/core/tracks/text/render/text-renderer.d.ts +0 -17
- package/types/core/tracks/text/symbols.d.ts +0 -11
- package/types/core/tracks/text/text-track.d.ts +0 -137
- package/types/core/tracks/text/text-tracks.d.ts +0 -55
- package/types/core/tracks/text/utils.d.ts +0 -8
- package/types/elements/bundles/cdn/player.core.d.ts +0 -5
- package/types/elements/bundles/cdn/player.d.ts +0 -7
- package/types/elements/bundles/cdn/plyr.d.ts +0 -5
- package/types/elements/bundles/cdn-legacy/player-with-default.d.ts +0 -4
- package/types/elements/bundles/cdn-legacy/player-with-layouts.d.ts +0 -4
- package/types/elements/bundles/cdn-legacy/player-with-plyr.d.ts +0 -3
- package/types/elements/bundles/cdn-legacy/player.d.ts +0 -3
- package/types/elements/bundles/icons.d.ts +0 -2
- package/types/elements/bundles/player-layouts/default.d.ts +0 -1
- package/types/elements/bundles/player-layouts/index.d.ts +0 -1
- package/types/elements/bundles/player-layouts/plyr.d.ts +0 -1
- package/types/elements/bundles/player-ui.d.ts +0 -1
- package/types/elements/bundles/player.d.ts +0 -1
- package/types/elements/define/announcer-element.d.ts +0 -18
- package/types/elements/define/buttons/airplay-button-element.d.ts +0 -19
- package/types/elements/define/buttons/caption-button-element.d.ts +0 -20
- package/types/elements/define/buttons/fullscreen-button-element.d.ts +0 -20
- package/types/elements/define/buttons/google-cast-button-element.d.ts +0 -19
- package/types/elements/define/buttons/live-button-element.d.ts +0 -20
- package/types/elements/define/buttons/mute-button-element.d.ts +0 -21
- package/types/elements/define/buttons/pip-button-element.d.ts +0 -20
- package/types/elements/define/buttons/play-button-element.d.ts +0 -21
- package/types/elements/define/buttons/seek-button-element.d.ts +0 -24
- package/types/elements/define/buttons/toggle-button-element.d.ts +0 -19
- package/types/elements/define/captions-element.d.ts +0 -18
- package/types/elements/define/chapter-title-element.d.ts +0 -30
- package/types/elements/define/controls-element.d.ts +0 -24
- package/types/elements/define/controls-group-element.d.ts +0 -24
- package/types/elements/define/gesture-element.d.ts +0 -22
- package/types/elements/define/layouts/default/audio-layout-element.d.ts +0 -29
- package/types/elements/define/layouts/default/audio-layout.d.ts +0 -1
- package/types/elements/define/layouts/default/icons-loader.d.ts +0 -5
- package/types/elements/define/layouts/default/icons.d.ts +0 -52
- package/types/elements/define/layouts/default/slots.d.ts +0 -2
- package/types/elements/define/layouts/default/ui/announcer.d.ts +0 -1
- package/types/elements/define/layouts/default/ui/buttons.d.ts +0 -31
- package/types/elements/define/layouts/default/ui/captions.d.ts +0 -1
- package/types/elements/define/layouts/default/ui/controls.d.ts +0 -1
- package/types/elements/define/layouts/default/ui/keyboard-display.d.ts +0 -1
- package/types/elements/define/layouts/default/ui/menu/accessibility-menu.d.ts +0 -1
- package/types/elements/define/layouts/default/ui/menu/audio-menu.d.ts +0 -1
- package/types/elements/define/layouts/default/ui/menu/captions-menu.d.ts +0 -1
- package/types/elements/define/layouts/default/ui/menu/chapters-menu.d.ts +0 -8
- package/types/elements/define/layouts/default/ui/menu/episodes-menu.d.ts +0 -8
- package/types/elements/define/layouts/default/ui/menu/font-menu.d.ts +0 -1
- package/types/elements/define/layouts/default/ui/menu/items/menu-checkbox.d.ts +0 -8
- package/types/elements/define/layouts/default/ui/menu/items/menu-items.d.ts +0 -26
- package/types/elements/define/layouts/default/ui/menu/items/menu-slider.d.ts +0 -3
- package/types/elements/define/layouts/default/ui/menu/menu-portal.d.ts +0 -4
- package/types/elements/define/layouts/default/ui/menu/playback-menu.d.ts +0 -1
- package/types/elements/define/layouts/default/ui/menu/settings-menu.d.ts +0 -8
- package/types/elements/define/layouts/default/ui/slider.d.ts +0 -10
- package/types/elements/define/layouts/default/ui/time.d.ts +0 -3
- package/types/elements/define/layouts/default/ui/title.d.ts +0 -2
- package/types/elements/define/layouts/default/ui/utils.d.ts +0 -3
- package/types/elements/define/layouts/default/video-layout-element.d.ts +0 -29
- package/types/elements/define/layouts/default/video-layout.d.ts +0 -5
- package/types/elements/define/layouts/icons/icons-loader.d.ts +0 -11
- package/types/elements/define/layouts/icons/layout-icons-loader.d.ts +0 -4
- package/types/elements/define/layouts/layout-element.d.ts +0 -38
- package/types/elements/define/layouts/layout-name.d.ts +0 -2
- package/types/elements/define/layouts/plyr/icons/plyr-airplay.d.ts +0 -2
- package/types/elements/define/layouts/plyr/icons/plyr-captions-off.d.ts +0 -2
- package/types/elements/define/layouts/plyr/icons/plyr-captions-on.d.ts +0 -2
- package/types/elements/define/layouts/plyr/icons/plyr-download.d.ts +0 -2
- package/types/elements/define/layouts/plyr/icons/plyr-enter-fullscreen.d.ts +0 -2
- package/types/elements/define/layouts/plyr/icons/plyr-exit-fullscreen.d.ts +0 -2
- package/types/elements/define/layouts/plyr/icons/plyr-fast-forward.d.ts +0 -2
- package/types/elements/define/layouts/plyr/icons/plyr-muted.d.ts +0 -2
- package/types/elements/define/layouts/plyr/icons/plyr-pause.d.ts +0 -2
- package/types/elements/define/layouts/plyr/icons/plyr-pip.d.ts +0 -2
- package/types/elements/define/layouts/plyr/icons/plyr-play.d.ts +0 -2
- package/types/elements/define/layouts/plyr/icons/plyr-restart.d.ts +0 -2
- package/types/elements/define/layouts/plyr/icons/plyr-rewind.d.ts +0 -2
- package/types/elements/define/layouts/plyr/icons/plyr-settings.d.ts +0 -2
- package/types/elements/define/layouts/plyr/icons/plyr-volume.d.ts +0 -2
- package/types/elements/define/layouts/plyr/icons-loader.d.ts +0 -5
- package/types/elements/define/layouts/plyr/icons.d.ts +0 -18
- package/types/elements/define/layouts/plyr/plyr-layout-element.d.ts +0 -26
- package/types/elements/define/layouts/plyr/ui.d.ts +0 -3
- package/types/elements/define/layouts/slot-manager.d.ts +0 -7
- package/types/elements/define/layouts/slot-observer.d.ts +0 -12
- package/types/elements/define/menus/_template.d.ts +0 -7
- package/types/elements/define/menus/audio-gain-group-element.d.ts +0 -31
- package/types/elements/define/menus/audio-radio-group-element.d.ts +0 -31
- package/types/elements/define/menus/captions-radio-group-element.d.ts +0 -31
- package/types/elements/define/menus/chapters-radio-group-element.d.ts +0 -36
- package/types/elements/define/menus/menu-button-element.d.ts +0 -25
- package/types/elements/define/menus/menu-element.d.ts +0 -26
- package/types/elements/define/menus/menu-item-element.d.ts +0 -22
- package/types/elements/define/menus/menu-items-element.d.ts +0 -25
- package/types/elements/define/menus/menu-portal-element.d.ts +0 -25
- package/types/elements/define/menus/quality-radio-group-element.d.ts +0 -33
- package/types/elements/define/menus/radio-element.d.ts +0 -22
- package/types/elements/define/menus/radio-group-element.d.ts +0 -22
- package/types/elements/define/menus/speed-radio-group-element.d.ts +0 -31
- package/types/elements/define/player-element.d.ts +0 -24
- package/types/elements/define/poster-element.d.ts +0 -25
- package/types/elements/define/provider-cast-display.d.ts +0 -2
- package/types/elements/define/provider-element.d.ts +0 -25
- package/types/elements/define/sliders/audio-gain-slider-element.d.ts +0 -32
- package/types/elements/define/sliders/quality-slider-element.d.ts +0 -32
- package/types/elements/define/sliders/slider-chapters-element.d.ts +0 -31
- package/types/elements/define/sliders/slider-element.d.ts +0 -23
- package/types/elements/define/sliders/slider-preview-element.d.ts +0 -14
- package/types/elements/define/sliders/slider-steps-element.d.ts +0 -28
- package/types/elements/define/sliders/slider-thumbnail-element.d.ts +0 -26
- package/types/elements/define/sliders/slider-value-element.d.ts +0 -37
- package/types/elements/define/sliders/slider-video-element.d.ts +0 -25
- package/types/elements/define/sliders/speed-slider-element.d.ts +0 -32
- package/types/elements/define/sliders/time-slider-element.d.ts +0 -32
- package/types/elements/define/sliders/volume-slider-element.d.ts +0 -32
- package/types/elements/define/spinner-element.d.ts +0 -50
- package/types/elements/define/thumbnail-element.d.ts +0 -29
- package/types/elements/define/time-element.d.ts +0 -24
- package/types/elements/define/title-element.d.ts +0 -23
- package/types/elements/define/tooltips/tooltip-content-element.d.ts +0 -26
- package/types/elements/define/tooltips/tooltip-element.d.ts +0 -26
- package/types/elements/define/tooltips/tooltip-trigger-element.d.ts +0 -27
- package/types/elements/icon.d.ts +0 -10
- package/types/elements/index.d.ts +0 -56
- package/types/elements/lit/directives/signal.d.ts +0 -1
- package/types/elements/lit/html.d.ts +0 -4
- package/types/elements/lit/lit-element.d.ts +0 -8
- package/types/elements/state-controller.d.ts +0 -5
- package/types/exports/components.d.ts +0 -59
- package/types/exports/core.d.ts +0 -26
- package/types/exports/events.d.ts +0 -32
- package/types/exports/font.d.ts +0 -2
- package/types/exports/foundation.d.ts +0 -8
- package/types/exports/maverick.d.ts +0 -1
- package/types/exports/providers.d.ts +0 -22
- package/types/exports/utils.d.ts +0 -4
- package/types/foundation/fullscreen/controller.d.ts +0 -39
- package/types/foundation/fullscreen/events.d.ts +0 -25
- package/types/foundation/list/list.d.ts +0 -64
- package/types/foundation/list/select-list.d.ts +0 -30
- package/types/foundation/list/symbols.d.ts +0 -14
- package/types/foundation/logger/colors.d.ts +0 -5
- package/types/foundation/logger/controller.d.ts +0 -20
- package/types/foundation/logger/events.d.ts +0 -26
- package/types/foundation/logger/grouped-log.d.ts +0 -22
- package/types/foundation/logger/log-level.d.ts +0 -15
- package/types/foundation/logger/log-printer.d.ts +0 -11
- package/types/foundation/logger/ms.d.ts +0 -4
- package/types/foundation/observers/focus-visible.d.ts +0 -7
- package/types/foundation/observers/intersection-observer.d.ts +0 -36
- package/types/foundation/observers/page-visibility.d.ts +0 -37
- package/types/foundation/observers/raf-loop.d.ts +0 -6
- package/types/foundation/orientation/controller.d.ts +0 -62
- package/types/foundation/orientation/events.d.ts +0 -16
- package/types/foundation/orientation/types.d.ts +0 -85
- package/types/foundation/queue/queue.d.ts +0 -24
- package/types/foundation/queue/request-queue.d.ts +0 -42
- package/types/global/layouts/default.d.ts +0 -9
- package/types/global/layouts/loader.d.ts +0 -5
- package/types/global/layouts/plyr.d.ts +0 -9
- package/types/global/player.d.ts +0 -26
- package/types/index.d.ts +0 -6
- package/types/plugins.d.ts +0 -11
- package/types/providers/audio/loader.d.ts +0 -12
- package/types/providers/audio/provider.d.ts +0 -29
- package/types/providers/dash/dash.d.ts +0 -15
- package/types/providers/dash/events.d.ts +0 -570
- package/types/providers/dash/lib-loader.d.ts +0 -6
- package/types/providers/dash/loader.d.ts +0 -10
- package/types/providers/dash/provider.d.ts +0 -62
- package/types/providers/dash/types.d.ts +0 -13
- package/types/providers/embed/EmbedProvider.d.ts +0 -18
- package/types/providers/google-cast/events.d.ts +0 -36
- package/types/providers/google-cast/loader.d.ts +0 -18
- package/types/providers/google-cast/media-info.d.ts +0 -11
- package/types/providers/google-cast/provider.d.ts +0 -48
- package/types/providers/google-cast/tracks.d.ts +0 -10
- package/types/providers/google-cast/types.d.ts +0 -3
- package/types/providers/google-cast/utils.d.ts +0 -34
- package/types/providers/hls/events.d.ts +0 -463
- package/types/providers/hls/hls.d.ts +0 -14
- package/types/providers/hls/lib-loader.d.ts +0 -6
- package/types/providers/hls/loader.d.ts +0 -10
- package/types/providers/hls/provider.d.ts +0 -64
- package/types/providers/hls/types.d.ts +0 -9
- package/types/providers/html/audio/audio-context.d.ts +0 -6
- package/types/providers/html/audio/audio-gain.d.ts +0 -10
- package/types/providers/html/html/342/200/223media-events.d.ts +0 -6
- package/types/providers/html/native-audio-tracks.d.ts +0 -6
- package/types/providers/html/provider.d.ts +0 -34
- package/types/providers/html/remote-playback.d.ts +0 -18
- package/types/providers/type-check.d.ts +0 -28
- package/types/providers/types.d.ts +0 -95
- package/types/providers/video/loader.d.ts +0 -12
- package/types/providers/video/native-hls-text-tracks.d.ts +0 -9
- package/types/providers/video/picture-in-picture.d.ts +0 -16
- package/types/providers/video/presentation/events.d.ts +0 -11
- package/types/providers/video/presentation/video-presentation.d.ts +0 -30
- package/types/providers/video/provider.d.ts +0 -34
- package/types/providers/vimeo/embed/command.d.ts +0 -81
- package/types/providers/vimeo/embed/event.d.ts +0 -58
- package/types/providers/vimeo/embed/message.d.ts +0 -8
- package/types/providers/vimeo/embed/misc.d.ts +0 -52
- package/types/providers/vimeo/embed/params.d.ts +0 -148
- package/types/providers/vimeo/loader.d.ts +0 -14
- package/types/providers/vimeo/provider.d.ts +0 -61
- package/types/providers/vimeo/utils.d.ts +0 -6
- package/types/providers/youtube/embed/command.d.ts +0 -13
- package/types/providers/youtube/embed/event.d.ts +0 -1
- package/types/providers/youtube/embed/message.d.ts +0 -50
- package/types/providers/youtube/embed/params.d.ts +0 -218
- package/types/providers/youtube/embed/quality.d.ts +0 -2
- package/types/providers/youtube/embed/state.d.ts +0 -12
- package/types/providers/youtube/loader.d.ts +0 -14
- package/types/providers/youtube/provider.d.ts +0 -61
- package/types/providers/youtube/utils.d.ts +0 -2
- package/types/utils/aria.d.ts +0 -4
- package/types/utils/array.d.ts +0 -1
- package/types/utils/color.d.ts +0 -1
- package/types/utils/dom.d.ts +0 -41
- package/types/utils/error.d.ts +0 -2
- package/types/utils/language.d.ts +0 -8
- package/types/utils/manifest.d.ts +0 -3
- package/types/utils/mime.d.ts +0 -15
- package/types/utils/network.d.ts +0 -17
- package/types/utils/number.d.ts +0 -17
- package/types/utils/promise.d.ts +0 -1
- package/types/utils/scroll.d.ts +0 -5
- package/types/utils/support.d.ts +0 -72
- package/types/utils/time.d.ts +0 -57
- package/vite.config.ts +0 -61
- /package/{npm/analyze.json.d.ts → analyze.json.d.ts} +0 -0
- /package/{npm/bundle.d.ts → bundle.d.ts} +0 -0
- /package/{npm/dom.d.ts → dom.d.ts} +0 -0
- /package/{npm/empty.vtt → empty.vtt} +0 -0
- /package/{npm/google-cast.d.ts → google-cast.d.ts} +0 -0
- /package/{npm/player → player}/index.d.ts +0 -0
- /package/{npm/player → player}/layouts/default.d.ts +0 -0
- /package/{npm/player → player}/layouts/index.d.ts +0 -0
- /package/{npm/player → player}/layouts/plyr.d.ts +0 -0
- /package/{styles/player → player/styles}/base.css +0 -0
- /package/{styles/player → player/styles}/default/buffering.css +0 -0
- /package/{styles/player → player/styles}/default/buttons.css +0 -0
- /package/{styles/player → player/styles}/default/captions.css +0 -0
- /package/{styles/player → player/styles}/default/chapter-title.css +0 -0
- /package/{styles/player → player/styles}/default/controls.css +0 -0
- /package/{styles/player → player/styles}/default/gestures.css +0 -0
- /package/{styles/player → player/styles}/default/icons.css +0 -0
- /package/{styles/player → player/styles}/default/keyboard.css +0 -0
- /package/{styles/player → player/styles}/default/layouts/audio.css +0 -0
- /package/{styles/player → player/styles}/default/menus.css +0 -0
- /package/{styles/player → player/styles}/default/poster.css +0 -0
- /package/{styles/player → player/styles}/default/sliders.css +0 -0
- /package/{styles/player → player/styles}/default/theme.css +0 -0
- /package/{styles/player → player/styles}/default/thumbnail.css +0 -0
- /package/{styles/player → player/styles}/default/time.css +0 -0
- /package/{styles/player → player/styles}/default/tooltips.css +0 -0
- /package/{styles/player → player/styles}/plyr/theme.css +0 -0
- /package/{npm/player → player}/ui.d.ts +0 -0
- /package/{npm/tailwind.cjs → tailwind.cjs} +0 -0
- /package/{npm/tailwind.d.cts → tailwind.d.cts} +0 -0
|
@@ -1,60 +0,0 @@
|
|
|
1
|
-
import { onDispose, ViewController } from 'maverick.js';
|
|
2
|
-
|
|
3
|
-
export class IntersectionObserverController extends ViewController {
|
|
4
|
-
#init: IntersectionObserverInit;
|
|
5
|
-
#observer: IntersectionObserver | undefined;
|
|
6
|
-
|
|
7
|
-
constructor(init: IntersectionObserverInit) {
|
|
8
|
-
super();
|
|
9
|
-
this.#init = init;
|
|
10
|
-
}
|
|
11
|
-
|
|
12
|
-
protected override onConnect(el: HTMLElement) {
|
|
13
|
-
this.#observer = new IntersectionObserver((entries) => {
|
|
14
|
-
this.#init.callback?.(entries, this.#observer!);
|
|
15
|
-
}, this.#init);
|
|
16
|
-
|
|
17
|
-
this.#observer.observe(el);
|
|
18
|
-
|
|
19
|
-
onDispose(this.#onDisconnect.bind(this));
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
/**
|
|
23
|
-
* Disconnect any active intersection observers.
|
|
24
|
-
*/
|
|
25
|
-
#onDisconnect(): void {
|
|
26
|
-
this.#observer?.disconnect();
|
|
27
|
-
this.#observer = undefined;
|
|
28
|
-
}
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
export interface IntersectionObserverInit {
|
|
32
|
-
/**
|
|
33
|
-
* The element that is used as the viewport for checking visibility of the target. Must be the
|
|
34
|
-
* ancestor of the target. Defaults to the browser viewport if not specified or if `null`.
|
|
35
|
-
*/
|
|
36
|
-
root?: Element | Document | null;
|
|
37
|
-
/**
|
|
38
|
-
* Margin around the root. Can have values similar to the CSS margin property, e.g.
|
|
39
|
-
* "10px 20px 30px 40px" (top, right, bottom, left). The values can be percentages. This set
|
|
40
|
-
* of values serves to grow or shrink each side of the root element's bounding box before
|
|
41
|
-
* computing intersections. Defaults to all zeros.
|
|
42
|
-
*/
|
|
43
|
-
rootMargin?: string;
|
|
44
|
-
/**
|
|
45
|
-
* Either a single number or an array of numbers which indicate at what percentage of the
|
|
46
|
-
* target's visibility the observer's callback should be executed. If you only want to detect
|
|
47
|
-
* when visibility passes the `50%` mark, you can use a value of `0.5`. If you want the callback
|
|
48
|
-
* to run every time visibility passes another `25%`, you would specify the array
|
|
49
|
-
* `[0, 0.25, 0.5, 0.75, 1]`.
|
|
50
|
-
*
|
|
51
|
-
* The default is `0` (meaning as soon as even one pixel is visible, the callback will be run).
|
|
52
|
-
* A value of `1.0` means that the threshold isn't considered passed until every pixel is
|
|
53
|
-
* visible.
|
|
54
|
-
*/
|
|
55
|
-
threshold?: number | number[];
|
|
56
|
-
/**
|
|
57
|
-
* Invoked when an intersection event occurs.
|
|
58
|
-
*/
|
|
59
|
-
callback?: IntersectionObserverCallback;
|
|
60
|
-
}
|
|
@@ -1,105 +0,0 @@
|
|
|
1
|
-
import { signal } from 'maverick.js';
|
|
2
|
-
import { EventsController, listenEvent } from 'maverick.js/std';
|
|
3
|
-
|
|
4
|
-
import { IS_SAFARI } from '../../utils/support';
|
|
5
|
-
|
|
6
|
-
const PAGE_EVENTS = ['focus', 'blur', 'visibilitychange', 'pageshow', 'pagehide'] as const;
|
|
7
|
-
|
|
8
|
-
declare global {
|
|
9
|
-
interface GlobalEventHandlersEventMap {
|
|
10
|
-
beforeunload: Event;
|
|
11
|
-
pageshow: Event;
|
|
12
|
-
pagehide: Event;
|
|
13
|
-
visibilitychange: Event;
|
|
14
|
-
}
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
export class PageVisibility {
|
|
18
|
-
#state = signal<PageState>(determinePageState());
|
|
19
|
-
|
|
20
|
-
#visibility = signal<DocumentVisibility>(__SERVER__ ? 'visible' : document.visibilityState);
|
|
21
|
-
|
|
22
|
-
#safariBeforeUnloadTimeout: any;
|
|
23
|
-
|
|
24
|
-
connect() {
|
|
25
|
-
const events = new EventsController(window),
|
|
26
|
-
handlePageEvent = this.#handlePageEvent.bind(this);
|
|
27
|
-
|
|
28
|
-
for (const eventType of PAGE_EVENTS) {
|
|
29
|
-
events.add(eventType, handlePageEvent);
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
/**
|
|
33
|
-
* Safari does not reliably fire the `pagehide` or `visibilitychange` events when closing a
|
|
34
|
-
* tab, so we have to use `beforeunload` with a timeout to check whether the default action
|
|
35
|
-
* was prevented.
|
|
36
|
-
*
|
|
37
|
-
* We only add this to Safari because adding it to Firefox would prevent the page from being
|
|
38
|
-
* eligible for `bfcache`.
|
|
39
|
-
*
|
|
40
|
-
* @see https://bugs.webkit.org/show_bug.cgi?id=151610
|
|
41
|
-
* @see https://bugs.webkit.org/show_bug.cgi?id=151234
|
|
42
|
-
*/
|
|
43
|
-
if (IS_SAFARI) {
|
|
44
|
-
events.add('beforeunload', (event) => {
|
|
45
|
-
this.#safariBeforeUnloadTimeout = setTimeout(() => {
|
|
46
|
-
if (!(event.defaultPrevented || (event.returnValue as any).length > 0)) {
|
|
47
|
-
this.#state.set('hidden');
|
|
48
|
-
this.#visibility.set('hidden');
|
|
49
|
-
}
|
|
50
|
-
}, 0);
|
|
51
|
-
});
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
/**
|
|
56
|
-
* The current page state. Important to note we only account for a subset of page states, as
|
|
57
|
-
* the rest aren't valuable to the player at the moment.
|
|
58
|
-
*
|
|
59
|
-
* - **active:** A page is in the active state if it is visible and has input focus.
|
|
60
|
-
* - **passive:** A page is in the passive state if it is visible and does not have input focus.
|
|
61
|
-
* - **hidden:** A page is in the hidden state if it is not visible.
|
|
62
|
-
*
|
|
63
|
-
* @see https://developers.google.com/web/updates/2018/07/page-lifecycle-api#states
|
|
64
|
-
*/
|
|
65
|
-
get pageState(): PageState {
|
|
66
|
-
return this.#state();
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
/**
|
|
70
|
-
* The current document visibility state.
|
|
71
|
-
*
|
|
72
|
-
* - **visible:** The page content may be at least partially visible. In practice, this means that
|
|
73
|
-
* the page is the foreground tab of a non-minimized window.
|
|
74
|
-
* - **hidden:** The page content is not visible to the user. In practice this means that the
|
|
75
|
-
* document is either a background tab or part of a minimized window, or the OS screen lock is
|
|
76
|
-
* active.
|
|
77
|
-
*
|
|
78
|
-
* @see https://developer.mozilla.org/en-US/docs/Web/API/Document/visibilityState
|
|
79
|
-
*/
|
|
80
|
-
get visibility(): DocumentVisibility {
|
|
81
|
-
return this.#visibility();
|
|
82
|
-
}
|
|
83
|
-
|
|
84
|
-
#handlePageEvent(event: Event) {
|
|
85
|
-
if (IS_SAFARI) window.clearTimeout(this.#safariBeforeUnloadTimeout);
|
|
86
|
-
// The `blur` event can fire while the page is being unloaded, so we only need to update the
|
|
87
|
-
// state if the current state is "active".
|
|
88
|
-
if (event.type !== 'blur' || this.#state() === 'active') {
|
|
89
|
-
this.#state.set(determinePageState(event));
|
|
90
|
-
// The ternary condition is incase some browser implements other states such as `prerender`.
|
|
91
|
-
this.#visibility.set(document.visibilityState == 'hidden' ? 'hidden' : 'visible');
|
|
92
|
-
}
|
|
93
|
-
}
|
|
94
|
-
}
|
|
95
|
-
|
|
96
|
-
function determinePageState(event?: Event): PageState {
|
|
97
|
-
if (__SERVER__) return 'hidden';
|
|
98
|
-
if (event?.type === 'blur' || document.visibilityState === 'hidden') return 'hidden';
|
|
99
|
-
if (document.hasFocus()) return 'active';
|
|
100
|
-
return 'passive';
|
|
101
|
-
}
|
|
102
|
-
|
|
103
|
-
export type PageState = 'active' | 'passive' | 'hidden';
|
|
104
|
-
|
|
105
|
-
export type DocumentVisibility = 'visible' | 'hidden';
|
|
@@ -1,139 +0,0 @@
|
|
|
1
|
-
import { onDispose, peek, signal, ViewController } from 'maverick.js';
|
|
2
|
-
import { listenEvent } from 'maverick.js/std';
|
|
3
|
-
|
|
4
|
-
import { canOrientScreen } from '../../utils/support';
|
|
5
|
-
import type { ScreenOrientationEvents } from './events';
|
|
6
|
-
import type { ScreenOrientationLockType, ScreenOrientationType } from './types';
|
|
7
|
-
|
|
8
|
-
export class ScreenOrientationController extends ViewController<{}, {}, ScreenOrientationEvents> {
|
|
9
|
-
#type = signal(this.#getScreenOrientation());
|
|
10
|
-
#locked = signal(false);
|
|
11
|
-
#currentLock: ScreenOrientationLockType | undefined;
|
|
12
|
-
|
|
13
|
-
/**
|
|
14
|
-
* The current screen orientation type.
|
|
15
|
-
*
|
|
16
|
-
* @signal
|
|
17
|
-
* @see {@link https://developer.mozilla.org/en-US/docs/Web/API/ScreenOrientation}
|
|
18
|
-
* @see https://w3c.github.io/screen-orientation/#screen-orientation-types-and-locks
|
|
19
|
-
*/
|
|
20
|
-
get type(): ScreenOrientationType | undefined {
|
|
21
|
-
return this.#type();
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
/**
|
|
25
|
-
* Whether the screen orientation is currently locked.
|
|
26
|
-
*
|
|
27
|
-
* @signal
|
|
28
|
-
* @see {@link https://developer.mozilla.org/en-US/docs/Web/API/ScreenOrientation}
|
|
29
|
-
* @see https://w3c.github.io/screen-orientation/#screen-orientation-types-and-locks
|
|
30
|
-
*/
|
|
31
|
-
get locked(): boolean {
|
|
32
|
-
return this.#locked();
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
/**
|
|
36
|
-
* Whether the viewport is in a portrait orientation.
|
|
37
|
-
*
|
|
38
|
-
* @signal
|
|
39
|
-
*/
|
|
40
|
-
get portrait() {
|
|
41
|
-
return this.#type().startsWith('portrait');
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
/**
|
|
45
|
-
* Whether the viewport is in a landscape orientation.
|
|
46
|
-
*
|
|
47
|
-
* @signal
|
|
48
|
-
*/
|
|
49
|
-
get landscape() {
|
|
50
|
-
return this.#type().startsWith('landscape');
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
/**
|
|
54
|
-
* Whether the native Screen Orientation API is available.
|
|
55
|
-
*/
|
|
56
|
-
static readonly supported = canOrientScreen();
|
|
57
|
-
|
|
58
|
-
/**
|
|
59
|
-
* Whether the native Screen Orientation API is available.
|
|
60
|
-
*/
|
|
61
|
-
get supported() {
|
|
62
|
-
return ScreenOrientationController.supported;
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
protected override onConnect() {
|
|
66
|
-
if (this.supported) {
|
|
67
|
-
listenEvent(screen.orientation, 'change', this.#onOrientationChange.bind(this));
|
|
68
|
-
} else {
|
|
69
|
-
const query = window.matchMedia('(orientation: landscape)');
|
|
70
|
-
query.onchange = this.#onOrientationChange.bind(this);
|
|
71
|
-
onDispose(() => (query.onchange = null));
|
|
72
|
-
}
|
|
73
|
-
|
|
74
|
-
onDispose(this.#onDisconnect.bind(this));
|
|
75
|
-
}
|
|
76
|
-
|
|
77
|
-
async #onDisconnect() {
|
|
78
|
-
if (this.supported && this.#locked()) await this.unlock();
|
|
79
|
-
}
|
|
80
|
-
|
|
81
|
-
#onOrientationChange(event: Event) {
|
|
82
|
-
this.#type.set(this.#getScreenOrientation()!);
|
|
83
|
-
this.dispatch('orientation-change', {
|
|
84
|
-
detail: {
|
|
85
|
-
orientation: peek(this.#type),
|
|
86
|
-
lock: this.#currentLock,
|
|
87
|
-
},
|
|
88
|
-
trigger: event,
|
|
89
|
-
});
|
|
90
|
-
}
|
|
91
|
-
|
|
92
|
-
/**
|
|
93
|
-
* Locks the orientation of the screen to the desired orientation type using the
|
|
94
|
-
* Screen Orientation API.
|
|
95
|
-
*
|
|
96
|
-
* @param lockType - The screen lock orientation type.
|
|
97
|
-
* @throws Error - If screen orientation API is unavailable.
|
|
98
|
-
* @see {@link https://developer.mozilla.org/en-US/docs/Web/API/Screen/orientation}
|
|
99
|
-
* @see {@link https://w3c.github.io/screen-orientation}
|
|
100
|
-
*/
|
|
101
|
-
async lock(lockType: ScreenOrientationLockType): Promise<void> {
|
|
102
|
-
if (peek(this.#locked) || this.#currentLock === lockType) return;
|
|
103
|
-
this.#assertScreenOrientationAPI();
|
|
104
|
-
await (screen.orientation as any).lock(lockType);
|
|
105
|
-
this.#locked.set(true);
|
|
106
|
-
this.#currentLock = lockType;
|
|
107
|
-
}
|
|
108
|
-
|
|
109
|
-
/**
|
|
110
|
-
* Unlocks the orientation of the screen to it's default state using the Screen Orientation
|
|
111
|
-
* API. This method will throw an error if the API is unavailable.
|
|
112
|
-
*
|
|
113
|
-
* @throws Error - If screen orientation API is unavailable.
|
|
114
|
-
* @see {@link https://developer.mozilla.org/en-US/docs/Web/API/Screen/orientation}
|
|
115
|
-
* @see {@link https://w3c.github.io/screen-orientation}
|
|
116
|
-
*/
|
|
117
|
-
async unlock(): Promise<void> {
|
|
118
|
-
if (!peek(this.#locked)) return;
|
|
119
|
-
this.#assertScreenOrientationAPI();
|
|
120
|
-
this.#currentLock = undefined;
|
|
121
|
-
await screen.orientation.unlock();
|
|
122
|
-
this.#locked.set(false);
|
|
123
|
-
}
|
|
124
|
-
|
|
125
|
-
#assertScreenOrientationAPI() {
|
|
126
|
-
if (this.supported) return;
|
|
127
|
-
throw Error(
|
|
128
|
-
__DEV__
|
|
129
|
-
? '[vidstack] screen orientation API is not available'
|
|
130
|
-
: '[vidstack] no orientation API',
|
|
131
|
-
);
|
|
132
|
-
}
|
|
133
|
-
|
|
134
|
-
#getScreenOrientation(): ScreenOrientationType {
|
|
135
|
-
if (__SERVER__) return 'portrait-primary';
|
|
136
|
-
if (this.supported) return window.screen!.orientation!.type;
|
|
137
|
-
return window.innerWidth >= window.innerHeight ? 'landscape-primary' : 'portrait-primary';
|
|
138
|
-
}
|
|
139
|
-
}
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
import type { DOMEvent } from 'maverick.js/std';
|
|
2
|
-
|
|
3
|
-
import type { ScreenOrientationLockType, ScreenOrientationType } from './types';
|
|
4
|
-
|
|
5
|
-
export interface ScreenOrientationEvents {
|
|
6
|
-
'orientation-change': ScreenOrientationChangeEvent;
|
|
7
|
-
}
|
|
8
|
-
|
|
9
|
-
export interface ScreenOrientationChangeEventDetail {
|
|
10
|
-
orientation: ScreenOrientationType;
|
|
11
|
-
lock?: ScreenOrientationLockType;
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
/**
|
|
15
|
-
* Fired when the current screen orientation changes.
|
|
16
|
-
*
|
|
17
|
-
* @detail orientation
|
|
18
|
-
*/
|
|
19
|
-
export interface ScreenOrientationChangeEvent
|
|
20
|
-
extends DOMEvent<ScreenOrientationChangeEventDetail> {}
|
|
@@ -1,96 +0,0 @@
|
|
|
1
|
-
export type ScreenOrientationType =
|
|
2
|
-
/**
|
|
3
|
-
* Landscape-primary is an orientation where the screen width is greater than the screen height.
|
|
4
|
-
* If the device's natural orientation is landscape, then it is in landscape-primary when held
|
|
5
|
-
* in that position. If the device's natural orientation is portrait, the user agent sets
|
|
6
|
-
* landscape-primary from the two options as shown in the screen orientation values table.
|
|
7
|
-
*/
|
|
8
|
-
| 'landscape-primary'
|
|
9
|
-
|
|
10
|
-
/**
|
|
11
|
-
* Landscape-secondary is an orientation where the screen width is greater than the screen
|
|
12
|
-
* height. If the device's natural orientation is landscape, it is in landscape-secondary when
|
|
13
|
-
* rotated 180º from its natural orientation. If the device's natural orientation is portrait,
|
|
14
|
-
* the user agent sets landscape-secondary from the two options as shown in the screen
|
|
15
|
-
* orientation values table.
|
|
16
|
-
*/
|
|
17
|
-
| 'landscape-secondary'
|
|
18
|
-
|
|
19
|
-
/**
|
|
20
|
-
* Portrait-primary is an orientation where the screen width is less than or equal to the screen
|
|
21
|
-
* height. If the device's natural orientation is portrait, then it is in portrait-primary when
|
|
22
|
-
* held in that position. If the device's natural orientation is landscape, the user agent sets
|
|
23
|
-
* portrait-primary from the two options as shown in the screen orientation values table.
|
|
24
|
-
*/
|
|
25
|
-
| 'portrait-primary'
|
|
26
|
-
|
|
27
|
-
/**
|
|
28
|
-
* Portrait-secondary is an orientation where the screen width is less than or equal to the
|
|
29
|
-
* screen height. If the device's natural orientation is portrait, then it is in
|
|
30
|
-
* portrait-secondary when rotated 180º from its natural position. If the device's natural
|
|
31
|
-
* orientation is landscape, the user agent sets portrait-secondary from the two options as
|
|
32
|
-
* shown in the screen orientation values table.
|
|
33
|
-
*/
|
|
34
|
-
| 'portrait-secondary';
|
|
35
|
-
|
|
36
|
-
export type ScreenOrientationLockType =
|
|
37
|
-
/**
|
|
38
|
-
* Any is an orientation that means the screen can be locked to any one of portrait-primary,
|
|
39
|
-
* portrait-secondary, landscape-primary and landscape-secondary.
|
|
40
|
-
*/
|
|
41
|
-
| 'any'
|
|
42
|
-
|
|
43
|
-
/**
|
|
44
|
-
* Landscape is an orientation where the screen width is greater than the screen height and
|
|
45
|
-
* depending on platform convention locking the screen to landscape can represent
|
|
46
|
-
* landscape-primary, landscape-secondary or both.
|
|
47
|
-
*/
|
|
48
|
-
| 'landscape'
|
|
49
|
-
|
|
50
|
-
/**
|
|
51
|
-
* Landscape-primary is an orientation where the screen width is greater than the screen height.
|
|
52
|
-
* If the device's natural orientation is landscape, then it is in landscape-primary when held
|
|
53
|
-
* in that position. If the device's natural orientation is portrait, the user agent sets
|
|
54
|
-
* landscape-primary from the two options as shown in the screen orientation values table.
|
|
55
|
-
*/
|
|
56
|
-
| 'landscape-primary'
|
|
57
|
-
|
|
58
|
-
/**
|
|
59
|
-
* Landscape-secondary is an orientation where the screen width is greater than the screen
|
|
60
|
-
* height. If the device's natural orientation is landscape, it is in landscape-secondary when
|
|
61
|
-
* rotated 180º from its natural orientation. If the device's natural orientation is portrait,
|
|
62
|
-
* the user agent sets landscape-secondary from the two options as shown in the screen
|
|
63
|
-
* orientation values table.
|
|
64
|
-
*/
|
|
65
|
-
| 'landscape-secondary'
|
|
66
|
-
|
|
67
|
-
/**
|
|
68
|
-
* Natural is an orientation that refers to either portrait-primary or landscape-primary
|
|
69
|
-
* depending on the device's usual orientation. This orientation is usually provided by the
|
|
70
|
-
* underlying operating system.
|
|
71
|
-
*/
|
|
72
|
-
| 'natural'
|
|
73
|
-
|
|
74
|
-
/**
|
|
75
|
-
* Portrait is an orientation where the screen width is less than or equal to the screen height
|
|
76
|
-
* and depending on platform convention locking the screen to portrait can represent
|
|
77
|
-
* portrait-primary, portrait-secondary or both.
|
|
78
|
-
*/
|
|
79
|
-
| 'portrait'
|
|
80
|
-
|
|
81
|
-
/**
|
|
82
|
-
* Portrait-primary is an orientation where the screen width is less than or equal to the screen
|
|
83
|
-
* height. If the device's natural orientation is portrait, then it is in portrait-primary when
|
|
84
|
-
* held in that position. If the device's natural orientation is landscape, the user agent sets
|
|
85
|
-
* portrait-primary from the two options as shown in the screen orientation values table.
|
|
86
|
-
*/
|
|
87
|
-
| 'portrait-primary'
|
|
88
|
-
|
|
89
|
-
/**
|
|
90
|
-
* Portrait-secondary is an orientation where the screen width is less than or equal to the
|
|
91
|
-
* screen height. If the device's natural orientation is portrait, then it is in
|
|
92
|
-
* portrait-secondary when rotated 180º from its natural position. If the device's natural
|
|
93
|
-
* orientation is landscape, the user agent sets portrait-secondary from the two options as
|
|
94
|
-
* shown in the screen orientation values table.
|
|
95
|
-
*/
|
|
96
|
-
| 'portrait-secondary';
|
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
export class Queue<Items> {
|
|
2
|
-
#queue = new Map<keyof Items, any>();
|
|
3
|
-
|
|
4
|
-
/**
|
|
5
|
-
* Queue the given `item` under the given `key` to be processed at a later time by calling
|
|
6
|
-
* `serve(key)`.
|
|
7
|
-
*/
|
|
8
|
-
enqueue<T extends keyof Items>(key: T, item: Items[T]) {
|
|
9
|
-
this.#queue.set(key, item);
|
|
10
|
-
}
|
|
11
|
-
|
|
12
|
-
/**
|
|
13
|
-
* Process item in queue for the given `key`.
|
|
14
|
-
*/
|
|
15
|
-
serve<T extends keyof Items>(key: T): Items[T] | undefined {
|
|
16
|
-
const value = this.peek(key);
|
|
17
|
-
this.#queue.delete(key);
|
|
18
|
-
return value;
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
/**
|
|
22
|
-
* Peek at item in queue for the given `key`.
|
|
23
|
-
*/
|
|
24
|
-
peek<T extends keyof Items>(key: T): Items[T] | undefined {
|
|
25
|
-
return this.#queue.get(key);
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
/**
|
|
29
|
-
* Removes queued item under the given `key`.
|
|
30
|
-
*/
|
|
31
|
-
delete(key: keyof Items) {
|
|
32
|
-
this.#queue.delete(key);
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
/**
|
|
36
|
-
* Clear all items in the queue.
|
|
37
|
-
*/
|
|
38
|
-
clear() {
|
|
39
|
-
this.#queue.clear();
|
|
40
|
-
}
|
|
41
|
-
}
|
|
@@ -1,139 +0,0 @@
|
|
|
1
|
-
import { RequestQueue } from './request-queue';
|
|
2
|
-
|
|
3
|
-
it('should return correct queue size', () => {
|
|
4
|
-
const q = new RequestQueue();
|
|
5
|
-
|
|
6
|
-
q.enqueue('a', () => {});
|
|
7
|
-
q.enqueue('b', () => {});
|
|
8
|
-
|
|
9
|
-
expect(q.size).to.equal(2);
|
|
10
|
-
});
|
|
11
|
-
|
|
12
|
-
it('should serve items in queue', async () => {
|
|
13
|
-
const q = new RequestQueue();
|
|
14
|
-
|
|
15
|
-
const itemA = vi.fn();
|
|
16
|
-
const itemB = vi.fn();
|
|
17
|
-
|
|
18
|
-
q.enqueue('a', itemA);
|
|
19
|
-
q.enqueue('b', itemB);
|
|
20
|
-
|
|
21
|
-
expect(itemA).not.toHaveBeenCalled();
|
|
22
|
-
expect(itemB).not.toHaveBeenCalled();
|
|
23
|
-
|
|
24
|
-
await q.serve('a');
|
|
25
|
-
expect(itemA).toHaveBeenCalledOnce();
|
|
26
|
-
expect(itemB).not.toHaveBeenCalled();
|
|
27
|
-
expect(q.size).to.equal(1);
|
|
28
|
-
|
|
29
|
-
await q.serve('b');
|
|
30
|
-
expect(itemB).toHaveBeenCalledOnce();
|
|
31
|
-
expect(q.size).to.equal(0);
|
|
32
|
-
});
|
|
33
|
-
|
|
34
|
-
it('should flush queue in-order', async () => {
|
|
35
|
-
const q = new RequestQueue();
|
|
36
|
-
|
|
37
|
-
let timestampA, timestampB, timestampC;
|
|
38
|
-
|
|
39
|
-
const itemA = () => {
|
|
40
|
-
timestampA = process.hrtime();
|
|
41
|
-
};
|
|
42
|
-
const itemB = () => {
|
|
43
|
-
timestampB = process.hrtime();
|
|
44
|
-
};
|
|
45
|
-
const itemC = () => {
|
|
46
|
-
timestampC = process.hrtime();
|
|
47
|
-
};
|
|
48
|
-
|
|
49
|
-
q.enqueue('a', itemA);
|
|
50
|
-
q.enqueue('b', itemB);
|
|
51
|
-
q.enqueue('c', itemC);
|
|
52
|
-
|
|
53
|
-
q.start();
|
|
54
|
-
|
|
55
|
-
expect(timestampA < timestampB && timestampA < timestampC).to.be.true;
|
|
56
|
-
expect(timestampB < timestampC).to.be.true;
|
|
57
|
-
});
|
|
58
|
-
|
|
59
|
-
it('should flush pending requests on start', async () => {
|
|
60
|
-
const q = new RequestQueue();
|
|
61
|
-
|
|
62
|
-
const itemA = vi.fn();
|
|
63
|
-
const itemB = vi.fn();
|
|
64
|
-
|
|
65
|
-
q.enqueue('a', itemA);
|
|
66
|
-
q.enqueue('b', itemB);
|
|
67
|
-
|
|
68
|
-
q.start();
|
|
69
|
-
|
|
70
|
-
expect(itemA).toHaveBeenCalledOnce();
|
|
71
|
-
expect(itemB).toHaveBeenCalledOnce();
|
|
72
|
-
});
|
|
73
|
-
|
|
74
|
-
it('should serve immediately once started', async () => {
|
|
75
|
-
const q = new RequestQueue();
|
|
76
|
-
|
|
77
|
-
q.start();
|
|
78
|
-
|
|
79
|
-
const itemA = vi.fn();
|
|
80
|
-
const itemB = vi.fn();
|
|
81
|
-
|
|
82
|
-
q.enqueue('a', itemA);
|
|
83
|
-
q.enqueue('b', itemB);
|
|
84
|
-
|
|
85
|
-
expect(itemA).toHaveBeenCalledOnce();
|
|
86
|
-
expect(itemB).toHaveBeenCalledOnce();
|
|
87
|
-
});
|
|
88
|
-
|
|
89
|
-
it('should not serve immediately once stopped', async () => {
|
|
90
|
-
const q = new RequestQueue();
|
|
91
|
-
|
|
92
|
-
q.start();
|
|
93
|
-
q.stop();
|
|
94
|
-
|
|
95
|
-
const itemA = vi.fn();
|
|
96
|
-
const itemB = vi.fn();
|
|
97
|
-
|
|
98
|
-
q.enqueue('a', itemA);
|
|
99
|
-
q.enqueue('b', itemB);
|
|
100
|
-
|
|
101
|
-
expect(itemA).not.toHaveBeenCalled();
|
|
102
|
-
expect(itemB).not.toHaveBeenCalled();
|
|
103
|
-
});
|
|
104
|
-
|
|
105
|
-
it('should release pending flush when started', async () => {
|
|
106
|
-
const q = new RequestQueue();
|
|
107
|
-
|
|
108
|
-
setTimeout(() => {
|
|
109
|
-
q.start();
|
|
110
|
-
});
|
|
111
|
-
|
|
112
|
-
await q.waitForFlush();
|
|
113
|
-
});
|
|
114
|
-
|
|
115
|
-
it('should release pending flush when destroyed', async () => {
|
|
116
|
-
const q = new RequestQueue();
|
|
117
|
-
|
|
118
|
-
setTimeout(() => {
|
|
119
|
-
q.reset();
|
|
120
|
-
});
|
|
121
|
-
|
|
122
|
-
await q.waitForFlush();
|
|
123
|
-
});
|
|
124
|
-
|
|
125
|
-
it('should clear queue when destroyed', async () => {
|
|
126
|
-
const q = new RequestQueue();
|
|
127
|
-
|
|
128
|
-
const itemA = vi.fn();
|
|
129
|
-
const itemB = vi.fn();
|
|
130
|
-
|
|
131
|
-
q.enqueue('a', itemA);
|
|
132
|
-
q.enqueue('b', itemB);
|
|
133
|
-
|
|
134
|
-
await q.reset();
|
|
135
|
-
|
|
136
|
-
expect(itemA).not.toHaveBeenCalled();
|
|
137
|
-
expect(itemB).not.toHaveBeenCalled();
|
|
138
|
-
expect(q.size).to.equal(0);
|
|
139
|
-
});
|
|
@@ -1,94 +0,0 @@
|
|
|
1
|
-
import { deferredPromise } from 'maverick.js/std';
|
|
2
|
-
|
|
3
|
-
export class RequestQueue {
|
|
4
|
-
#serving = false;
|
|
5
|
-
#pending = deferredPromise();
|
|
6
|
-
#queue = new Map<string | symbol, () => void | Promise<void>>();
|
|
7
|
-
|
|
8
|
-
/**
|
|
9
|
-
* The number of callbacks that are currently in queue.
|
|
10
|
-
*/
|
|
11
|
-
get size(): number {
|
|
12
|
-
return this.#queue.size;
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
/**
|
|
16
|
-
* Whether items in the queue are being served immediately, otherwise they're queued to
|
|
17
|
-
* be processed later.
|
|
18
|
-
*/
|
|
19
|
-
get isServing() {
|
|
20
|
-
return this.#serving;
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
/**
|
|
24
|
-
* Waits for the queue to be flushed (ie: start serving).
|
|
25
|
-
*/
|
|
26
|
-
async waitForFlush() {
|
|
27
|
-
if (this.#serving) return;
|
|
28
|
-
await this.#pending.promise;
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
/**
|
|
32
|
-
* Queue the given `callback` to be invoked at a later time by either calling the `serve()` or
|
|
33
|
-
* `start()` methods. If the queue has started serving (i.e., `start()` was already called),
|
|
34
|
-
* then the callback will be invoked immediately.
|
|
35
|
-
*
|
|
36
|
-
* @param key - Uniquely identifies this callback so duplicates are ignored.
|
|
37
|
-
* @param callback - The function to call when this item in the queue is being served.
|
|
38
|
-
*/
|
|
39
|
-
enqueue(key: string | symbol, callback: () => void) {
|
|
40
|
-
if (this.#serving) {
|
|
41
|
-
callback();
|
|
42
|
-
return;
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
// Delete the key so we can set it last so iteration order is correct.
|
|
46
|
-
this.#queue.delete(key);
|
|
47
|
-
this.#queue.set(key, callback);
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
/**
|
|
51
|
-
* Invokes the callback with the given `key` in the queue (if it exists).
|
|
52
|
-
*/
|
|
53
|
-
serve(key: string | symbol) {
|
|
54
|
-
this.#queue.get(key)?.();
|
|
55
|
-
this.#queue.delete(key);
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
/**
|
|
59
|
-
* Flush all queued items and start serving future requests immediately until `stop()` is called.
|
|
60
|
-
*/
|
|
61
|
-
start() {
|
|
62
|
-
this.#flush();
|
|
63
|
-
this.#serving = true;
|
|
64
|
-
if (this.#queue.size > 0) this.#flush();
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
/**
|
|
68
|
-
* Stop serving requests, they'll be queued until you begin processing again by calling `start()`.
|
|
69
|
-
*/
|
|
70
|
-
stop() {
|
|
71
|
-
this.#serving = false;
|
|
72
|
-
}
|
|
73
|
-
|
|
74
|
-
/**
|
|
75
|
-
* Stop serving requests, empty the request queue, and release any promises waiting for the
|
|
76
|
-
* queue to flush.
|
|
77
|
-
*/
|
|
78
|
-
reset() {
|
|
79
|
-
this.stop();
|
|
80
|
-
this.#queue.clear();
|
|
81
|
-
this.#release();
|
|
82
|
-
}
|
|
83
|
-
|
|
84
|
-
#flush() {
|
|
85
|
-
for (const key of this.#queue.keys()) this.serve(key);
|
|
86
|
-
this.#release();
|
|
87
|
-
}
|
|
88
|
-
|
|
89
|
-
#release() {
|
|
90
|
-
// Release anyone waiting.
|
|
91
|
-
this.#pending.resolve();
|
|
92
|
-
this.#pending = deferredPromise();
|
|
93
|
-
}
|
|
94
|
-
}
|