j1-template 2024.3.22 → 2024.3.23
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.
- checksums.yaml +4 -4
- data/assets/data/{galeries.html → gallery_app.html} +4 -4
- data/assets/theme/bla +0 -0
- data/assets/theme/j1/adapter/js/amplitude.js +144 -52
- data/assets/theme/j1/adapter/js/gallery.js +1 -1
- data/assets/theme/j1/adapter/js/themes.js +41 -69
- data/assets/theme/j1/core/css/themes/unolight/bootstrap.css +19 -52
- data/assets/theme/j1/core/css/themes/unolight/bootstrap.min.css +1 -1
- data/assets/theme/j1/modules/amplitudejs/js/tech/ytp.js +466 -396
- data/assets/theme/j1/modules/lightGallery/!v2.7.2/css/lg-transitions.css +984 -0
- data/assets/theme/j1/modules/lightGallery/!v2.7.2/css/lg-transitions.min.css +26 -0
- data/assets/theme/j1/modules/lightGallery/!v2.7.2/css/lightgallery-bundle.css +1627 -0
- data/assets/theme/j1/modules/lightGallery/!v2.7.2/css/lightgallery-bundle.min.css +25 -0
- data/assets/theme/j1/modules/lightGallery/{css → !v2.7.2/css}/themes/uno/uno.css +1 -1
- data/assets/theme/j1/modules/lightGallery/{css → !v2.7.2/css}/themes/uno/uno.min.css +1 -1
- data/assets/theme/j1/modules/lightGallery/!v2.7.2/fonts/lg.svg +54 -0
- data/assets/theme/j1/modules/lightGallery/!v2.7.2/fonts/lg.ttf +0 -0
- data/assets/theme/j1/modules/lightGallery/!v2.7.2/fonts/lg.woff +0 -0
- data/assets/theme/j1/modules/lightGallery/!v2.7.2/fonts/lg.woff2 +0 -0
- data/assets/theme/j1/modules/lightGallery/!v2.7.2/images/loading.gif +0 -0
- data/assets/theme/j1/modules/lightGallery/!v2.7.2/img/loading.gif +0 -0
- data/assets/theme/j1/modules/lightGallery/!v2.7.2/img/video-play.png +0 -0
- data/assets/theme/j1/modules/lightGallery/!v2.7.2/img/vimeo-play.png +0 -0
- data/assets/theme/j1/modules/lightGallery/!v2.7.2/img/youtube-play.png +0 -0
- data/assets/theme/j1/modules/lightGallery/!v2.7.2/js/lightgallery.js +2782 -0
- data/assets/theme/j1/modules/lightGallery/!v2.7.2/js/lightgallery.min.js +26 -0
- data/assets/theme/j1/modules/lightGallery/!v2.7.2/js/parser/webvtt/LICENSE.md +44 -0
- data/assets/theme/j1/modules/lightGallery/!v2.7.2/js/parser/webvtt/README.md +37 -0
- data/assets/theme/j1/modules/lightGallery/!v2.7.2/js/parser/webvtt/parser.js +890 -0
- data/assets/theme/j1/modules/lightGallery/!v2.7.2/js/parser/webvtt/parser.min.js +8 -0
- data/assets/theme/j1/modules/lightGallery/!v2.7.2/js/plugins/j1/lg-video.1.js +585 -0
- data/assets/theme/j1/modules/lightGallery/!v2.7.2/js/plugins/lg-autoplay.js +275 -0
- data/assets/theme/j1/modules/lightGallery/!v2.7.2/js/plugins/lg-autoplay.min.js +26 -0
- data/assets/theme/j1/modules/lightGallery/!v2.7.2/js/plugins/lg-comment.js +230 -0
- data/assets/theme/j1/modules/lightGallery/!v2.7.2/js/plugins/lg-comment.min.js +26 -0
- data/assets/theme/j1/modules/lightGallery/!v2.7.2/js/plugins/lg-fullscreen.js +160 -0
- data/assets/theme/j1/modules/lightGallery/!v2.7.2/js/plugins/lg-fullscreen.min.js +26 -0
- data/assets/theme/j1/modules/lightGallery/!v2.7.2/js/plugins/lg-hash.js +223 -0
- data/assets/theme/j1/modules/lightGallery/!v2.7.2/js/plugins/lg-hash.min.js +27 -0
- data/assets/theme/j1/modules/lightGallery/!v2.7.2/js/plugins/lg-medium-zoom.js +157 -0
- data/assets/theme/j1/modules/lightGallery/!v2.7.2/js/plugins/lg-medium-zoom.min.js +26 -0
- data/assets/theme/j1/modules/lightGallery/!v2.7.2/js/plugins/lg-pager.js +164 -0
- data/assets/theme/j1/modules/lightGallery/!v2.7.2/js/plugins/lg-pager.min.js +26 -0
- data/assets/theme/j1/modules/lightGallery/!v2.7.2/js/plugins/lg-rotate.js +299 -0
- data/assets/theme/j1/modules/lightGallery/!v2.7.2/js/plugins/lg-rotate.min.js +26 -0
- data/assets/theme/j1/modules/lightGallery/!v2.7.2/js/plugins/lg-share.js +244 -0
- data/assets/theme/j1/modules/lightGallery/!v2.7.2/js/plugins/lg-share.min.js +27 -0
- data/assets/theme/j1/modules/lightGallery/!v2.7.2/js/plugins/lg-thumbnail.js +509 -0
- data/assets/theme/j1/modules/lightGallery/!v2.7.2/js/plugins/lg-thumbnail.min.js +26 -0
- data/assets/theme/j1/modules/lightGallery/!v2.7.2/js/plugins/lg-video.js +909 -0
- data/assets/theme/j1/modules/lightGallery/!v2.7.2/js/plugins/lg-video.min.js +26 -0
- data/assets/theme/j1/modules/lightGallery/!v2.7.2/js/plugins/lg-vimeo-thumbnail.js +207 -0
- data/assets/theme/j1/modules/lightGallery/!v2.7.2/js/plugins/lg-vimeo-thumbnail.min.js +26 -0
- data/assets/theme/j1/modules/lightGallery/!v2.7.2/js/plugins/lg-zoom.js +999 -0
- data/assets/theme/j1/modules/lightGallery/!v2.7.2/js/plugins/lg-zoom.min.js +26 -0
- data/assets/theme/j1/modules/lightGallery/css/lg-transitions.css +3 -126
- data/assets/theme/j1/modules/lightGallery/css/lg-transitions.min.css +3 -10
- data/assets/theme/j1/modules/lightGallery/css/lightgallery-bundle.css +70 -237
- data/assets/theme/j1/modules/lightGallery/css/lightgallery-bundle.min.css +4 -10
- data/assets/theme/j1/modules/lightGallery/css/theme/uno/icons/animation-w.png +0 -0
- data/assets/theme/j1/modules/lightGallery/css/theme/uno/icons/customize-w.png +0 -0
- data/assets/theme/j1/modules/lightGallery/css/theme/uno/icons/dynamic-w.png +0 -0
- data/assets/theme/j1/modules/lightGallery/css/theme/uno/icons/facebook-icon.svg +10 -0
- data/assets/theme/j1/modules/lightGallery/css/theme/uno/icons/googleplus-icon.svg +30 -0
- data/assets/theme/j1/modules/lightGallery/css/theme/uno/icons/html5-w.png +0 -0
- data/assets/theme/j1/modules/lightGallery/css/theme/uno/icons/linked-in.png +0 -0
- data/assets/theme/j1/modules/lightGallery/css/theme/uno/icons/module-w.png +0 -0
- data/assets/theme/j1/modules/lightGallery/css/theme/uno/icons/play-button-hover.svg +94 -0
- data/assets/theme/j1/modules/lightGallery/css/theme/uno/icons/play-button.png +0 -0
- data/assets/theme/j1/modules/lightGallery/css/theme/uno/icons/play-button.svg +93 -0
- data/assets/theme/j1/modules/lightGallery/css/theme/uno/icons/responsive-w.png +0 -0
- data/assets/theme/j1/modules/lightGallery/css/theme/uno/icons/thumb-w.png +0 -0
- data/assets/theme/j1/modules/lightGallery/css/theme/uno/icons/touch-w.png +0 -0
- data/assets/theme/j1/modules/lightGallery/css/theme/uno/icons/twitter-icon.svg +15 -0
- data/assets/theme/j1/modules/lightGallery/css/theme/uno/icons/twitter.png +0 -0
- data/assets/theme/j1/modules/lightGallery/css/theme/uno/icons/video1-w.png +0 -0
- data/assets/theme/j1/modules/lightGallery/css/theme/uno/icons/zoom-w.png +0 -0
- data/assets/theme/j1/modules/lightGallery/css/theme/uno/icons/zoom.png +0 -0
- data/assets/theme/j1/modules/lightGallery/css/theme/uno/uno.css +276 -0
- data/assets/theme/j1/modules/lightGallery/css/theme/uno/uno.min.css +17 -0
- data/assets/theme/j1/modules/lightGallery/js/lightgallery.js +163 -120
- data/assets/theme/j1/modules/lightGallery/js/lightgallery.min.js +6 -6
- data/assets/theme/j1/modules/lightGallery/js/plugins/j1/lg-thumbnail.0.js +495 -0
- data/assets/theme/j1/modules/lightGallery/js/plugins/j1/lg-thumbnail.1.js +513 -0
- data/assets/theme/j1/modules/lightGallery/js/plugins/j1/lg-video.0.js +553 -0
- data/assets/theme/j1/modules/lightGallery/js/plugins/j1/lg-video.1.js +1 -1
- data/assets/theme/j1/modules/lightGallery/js/plugins/j1/lg-video.2.js +914 -0
- data/assets/theme/j1/modules/lightGallery/js/plugins/lg-autoplay.js +4 -4
- data/assets/theme/j1/modules/lightGallery/js/plugins/lg-autoplay.min.js +5 -5
- data/assets/theme/j1/modules/lightGallery/js/plugins/lg-comment.js +5 -5
- data/assets/theme/j1/modules/lightGallery/js/plugins/lg-comment.min.js +6 -6
- data/assets/theme/j1/modules/lightGallery/js/plugins/lg-fullscreen.js +4 -4
- data/assets/theme/j1/modules/lightGallery/js/plugins/lg-fullscreen.min.js +5 -5
- data/assets/theme/j1/modules/lightGallery/js/plugins/lg-hash.js +4 -4
- data/assets/theme/j1/modules/lightGallery/js/plugins/lg-hash.min.js +5 -6
- data/assets/theme/j1/modules/lightGallery/js/plugins/lg-medium-zoom.js +5 -5
- data/assets/theme/j1/modules/lightGallery/js/plugins/lg-medium-zoom.min.js +6 -6
- data/assets/theme/j1/modules/lightGallery/js/plugins/lg-pager.js +4 -4
- data/assets/theme/j1/modules/lightGallery/js/plugins/lg-pager.min.js +5 -5
- data/assets/theme/j1/modules/lightGallery/js/plugins/lg-relative-caption.js +179 -0
- data/assets/theme/j1/modules/lightGallery/js/plugins/lg-relative-caption.min.js +32 -0
- data/assets/theme/j1/modules/lightGallery/js/plugins/lg-rotate.js +4 -4
- data/assets/theme/j1/modules/lightGallery/js/plugins/lg-rotate.min.js +6 -6
- data/assets/theme/j1/modules/lightGallery/js/plugins/lg-share.js +4 -4
- data/assets/theme/j1/modules/lightGallery/js/plugins/lg-share.min.js +6 -7
- data/assets/theme/j1/modules/lightGallery/js/plugins/lg-thumbnail.js +27 -20
- data/assets/theme/j1/modules/lightGallery/js/plugins/lg-thumbnail.min.js +5 -5
- data/assets/theme/j1/modules/lightGallery/js/plugins/lg-video.js +77 -125
- data/assets/theme/j1/modules/lightGallery/js/plugins/lg-video.min.js +6 -6
- data/assets/theme/j1/modules/lightGallery/js/plugins/lg-vimeo-thumbnail.js +4 -4
- data/assets/theme/j1/modules/lightGallery/js/plugins/lg-vimeo-thumbnail.min.js +5 -5
- data/assets/theme/j1/modules/lightGallery/js/plugins/lg-zoom.js +11 -5
- data/assets/theme/j1/modules/lightGallery/js/plugins/lg-zoom.min.js +5 -5
- data/assets/theme/j1/modules/themeSwitcher/js/switcher.js +13 -12
- data/assets/theme/j1/modules/videoPlayer/tiktoc/README.md +1 -0
- data/assets/theme/j1/modules/videojs/!v8.12.0/css/font/README.md +151 -0
- data/assets/theme/j1/modules/videojs/!v8.12.0/css/font/VideoJS.svg +150 -0
- data/assets/theme/j1/modules/videojs/!v8.12.0/css/themes/city.css +147 -0
- data/assets/theme/j1/modules/videojs/!v8.12.0/css/themes/city.min.css +5 -0
- data/assets/theme/j1/modules/videojs/!v8.12.0/css/themes/fantasy.css +113 -0
- data/assets/theme/j1/modules/videojs/!v8.12.0/css/themes/fantasy.min.css +5 -0
- data/assets/theme/j1/modules/videojs/!v8.12.0/css/themes/forest.css +166 -0
- data/assets/theme/j1/modules/videojs/!v8.12.0/css/themes/forest.min.css +5 -0
- data/assets/theme/j1/modules/videojs/!v8.12.0/css/themes/sea.css +72 -0
- data/assets/theme/j1/modules/videojs/!v8.12.0/css/themes/sea.min.css +5 -0
- data/assets/theme/j1/modules/videojs/!v8.12.0/css/themes/uno.css +311 -0
- data/assets/theme/j1/modules/videojs/!v8.12.0/css/themes/uno.min.css +19 -0
- data/assets/theme/j1/modules/videojs/!v8.12.0/css/videojs.css +1686 -0
- data/assets/theme/j1/modules/videojs/!v8.12.0/css/videojs.min.css +13 -0
- data/assets/theme/j1/modules/videojs/!v8.12.0/js/video.js +65226 -0
- data/assets/theme/j1/modules/videojs/!v8.12.0/js/video.min.js +55 -0
- data/assets/theme/j1/modules/videojs/assets/README.md +1 -0
- data/assets/theme/j1/modules/videojs/assets/icons/speedometer-medium.svg +35 -0
- data/assets/theme/j1/modules/videojs/css/font/VideoJS.ttf +0 -0
- data/assets/theme/j1/modules/videojs/css/font/VideoJS.woff +0 -0
- data/assets/theme/j1/modules/videojs/css/themes/uno.css +157 -22
- data/assets/theme/j1/modules/videojs/css/themes/uno.min.css +1 -1
- data/assets/theme/j1/modules/videojs/css/videojs.css +674 -316
- data/assets/theme/j1/modules/videojs/css/videojs.min.css +4 -3
- data/assets/theme/j1/modules/videojs/js/video.js +15893 -12288
- data/assets/theme/j1/modules/videojs/js/video.min.js +22 -23
- data/assets/theme/j1/modules/videojs/plugins/controls/aspect-ratio-panel/!examples/index.html +31 -0
- data/assets/theme/j1/modules/videojs/plugins/controls/aspect-ratio-panel/LICENSE +19 -0
- data/assets/theme/j1/modules/videojs/plugins/controls/aspect-ratio-panel/README.md +69 -0
- data/assets/theme/j1/modules/videojs/plugins/controls/aspect-ratio-panel/css/aspect-ratio-panel.css +2 -0
- data/assets/theme/j1/modules/videojs/plugins/controls/aspect-ratio-panel/css/aspect-ratio-panel.min.css +2 -0
- data/assets/theme/j1/modules/videojs/plugins/controls/aspect-ratio-panel/js/aspect-ratio-panel.js +339 -0
- data/assets/theme/j1/modules/videojs/plugins/controls/aspect-ratio-panel/js/aspect-ratio-panel.min.js +2 -0
- data/assets/theme/j1/modules/videojs/{js/plugins/controls/autocaption → plugins/controls/autocaption/js}/autocaption.js +0 -5
- data/assets/theme/j1/modules/videojs/plugins/controls/persist-settings/!examples/index.html +29 -0
- data/assets/theme/j1/modules/videojs/plugins/controls/persist-settings/LICENSE +19 -0
- data/assets/theme/j1/modules/videojs/plugins/controls/persist-settings/README.md +90 -0
- data/assets/theme/j1/modules/videojs/plugins/controls/persist-settings/js/videojs-persist.js +120 -0
- data/assets/theme/j1/modules/videojs/plugins/controls/persist-settings/js/videojs-persist.min.js +2 -0
- data/assets/theme/j1/modules/videojs/plugins/controls/playbackrate-adjuster/!examples/index.html +37 -0
- data/assets/theme/j1/modules/videojs/plugins/controls/playbackrate-adjuster/LICENSE +19 -0
- data/assets/theme/j1/modules/videojs/plugins/controls/playbackrate-adjuster/README.md +61 -0
- data/assets/theme/j1/modules/videojs/plugins/controls/playbackrate-adjuster/js/playbackrate-adjuster.js +94 -0
- data/assets/theme/j1/modules/videojs/plugins/controls/playbackrate-adjuster/js/playbackrate-adjuster.min.js +20 -0
- data/assets/theme/j1/modules/videojs/{js/plugins → plugins}/controls/skipbuttons/README.md +25 -11
- data/assets/theme/j1/modules/videojs/{css/plugins/controls → plugins/controls/zoom/css}/zoom.css +7 -6
- data/assets/theme/j1/modules/videojs/plugins/controls/zoom/css/zoom.min.css +22 -0
- data/assets/theme/j1/modules/videojs/{js/plugins/players/dm → plugins/players/dm/js}/dailymotion.js +1 -1
- data/assets/theme/j1/modules/videojs/plugins/players/vm/!unused/vimeo.0.js +521 -0
- data/assets/theme/j1/modules/videojs/plugins/players/vm/!unused/vimeo.1.js +605 -0
- data/assets/theme/j1/modules/videojs/plugins/players/vm/!unused/vimeo.3.js +643 -0
- data/assets/theme/j1/modules/videojs/plugins/players/vm/!unused/vimeo.4.js +583 -0
- data/assets/theme/j1/modules/videojs/plugins/players/vm/!unused/vimeo.5.js +665 -0
- data/assets/theme/j1/modules/videojs/plugins/players/vm/!unused/vimeo.6.js +642 -0
- data/assets/theme/j1/modules/videojs/plugins/players/vm/!unused/vimeo.7.js +673 -0
- data/assets/theme/j1/modules/videojs/{js/plugins/players/vm/api → plugins/players/vm/api/js}/vimeo.js +1 -1
- data/assets/theme/j1/modules/videojs/{js/plugins/players/vm/api → plugins/players/vm/api/js}/vimeo.min.js +1 -1
- data/assets/theme/j1/modules/videojs/{js/plugins/players/vm → plugins/players/vm/js}/vimeo.js +4 -5
- data/assets/theme/j1/modules/videojs/plugins/players/vm/js/vimeo.min.js +28 -0
- data/assets/theme/j1/modules/videojs/plugins/players/wt/!unused/wistia.0.js +395 -0
- data/assets/theme/j1/modules/videojs/plugins/players/wt/!unused/wistia.1.js +401 -0
- data/lib/j1/version.rb +1 -1
- data/lib/starter_web/README.md +5 -5
- data/lib/starter_web/_config.yml +1 -1
- data/lib/starter_web/_data/modules/amplitude_playlists.yml +16 -1
- data/lib/starter_web/_data/modules/defaults/gallery.yml +3 -3
- data/lib/starter_web/_data/modules/gallery.yml +83 -87
- data/lib/starter_web/_data/modules/navigator_menu.yml +3 -3
- data/lib/starter_web/_data/resources.yml +16 -12
- data/lib/starter_web/_data/templates/feed.xml +1 -1
- data/lib/starter_web/_plugins/asciidoctor/videojs-block.rb +50 -30
- data/lib/starter_web/_plugins/asciidoctor/youtube-block.rb +37 -23
- data/lib/starter_web/_plugins/index/lunr.rb +1 -1
- data/lib/starter_web/assets/video/poster/vimeo/fall_2011.jpg +0 -0
- data/lib/starter_web/package.json +1 -1
- data/lib/starter_web/pages/public/tools/tester/videojs_macro_tester.adoc +282 -0
- data/lib/starter_web/pages/public/tour/video_data.adoc +1 -0
- metadata +221 -106
- data/assets/data/swiper_app.2.html +0 -757
- data/assets/data/swiper_app.4.html +0 -769
- data/assets/theme/j1/modules/videojs/css/plugins/controls/skipbuttons.0.css +0 -32
- data/assets/theme/j1/modules/videojs/css/plugins/controls/skipbuttons.1.css +0 -31
- data/assets/theme/j1/modules/videojs/css/plugins/controls/zoom.min.css +0 -21
- data/assets/theme/j1/modules/videojs/js/plugins/players/vm/vimeo.min.js +0 -16
- data/assets/theme/j1/modules/videojs/js/plugins/players/wt/api/src/WistiaPlayer.ts +0 -1617
- data/lib/starter_web/assets/video/poster/vimeo/stay_colorful.jpg +0 -0
- /data/assets/theme/j1/modules/lightGallery/{css → !v2.7.2/css}/themes/uno/icons/animation-w.png +0 -0
- /data/assets/theme/j1/modules/lightGallery/{css → !v2.7.2/css}/themes/uno/icons/customize-w.png +0 -0
- /data/assets/theme/j1/modules/lightGallery/{css → !v2.7.2/css}/themes/uno/icons/dynamic-w.png +0 -0
- /data/assets/theme/j1/modules/lightGallery/{css → !v2.7.2/css}/themes/uno/icons/facebook-icon.svg +0 -0
- /data/assets/theme/j1/modules/lightGallery/{css → !v2.7.2/css}/themes/uno/icons/googleplus-icon.svg +0 -0
- /data/assets/theme/j1/modules/lightGallery/{css → !v2.7.2/css}/themes/uno/icons/html5-w.png +0 -0
- /data/assets/theme/j1/modules/lightGallery/{css → !v2.7.2/css}/themes/uno/icons/linked-in.png +0 -0
- /data/assets/theme/j1/modules/lightGallery/{css → !v2.7.2/css}/themes/uno/icons/module-w.png +0 -0
- /data/assets/theme/j1/modules/lightGallery/{css → !v2.7.2/css}/themes/uno/icons/play-button-hover.svg +0 -0
- /data/assets/theme/j1/modules/lightGallery/{css → !v2.7.2/css}/themes/uno/icons/play-button.png +0 -0
- /data/assets/theme/j1/modules/lightGallery/{css → !v2.7.2/css}/themes/uno/icons/play-button.svg +0 -0
- /data/assets/theme/j1/modules/lightGallery/{css → !v2.7.2/css}/themes/uno/icons/responsive-w.png +0 -0
- /data/assets/theme/j1/modules/lightGallery/{css → !v2.7.2/css}/themes/uno/icons/thumb-w.png +0 -0
- /data/assets/theme/j1/modules/lightGallery/{css → !v2.7.2/css}/themes/uno/icons/touch-w.png +0 -0
- /data/assets/theme/j1/modules/lightGallery/{css → !v2.7.2/css}/themes/uno/icons/twitter-icon.svg +0 -0
- /data/assets/theme/j1/modules/lightGallery/{css → !v2.7.2/css}/themes/uno/icons/twitter.png +0 -0
- /data/assets/theme/j1/modules/lightGallery/{css → !v2.7.2/css}/themes/uno/icons/video1-w.png +0 -0
- /data/assets/theme/j1/modules/lightGallery/{css → !v2.7.2/css}/themes/uno/icons/zoom-w.png +0 -0
- /data/assets/theme/j1/modules/lightGallery/{css → !v2.7.2/css}/themes/uno/icons/zoom.png +0 -0
- /data/assets/theme/j1/modules/lightGallery/{js → !v2.7.2/js}/plugins/j1/j1-video.js +0 -0
- /data/assets/theme/j1/modules/lightGallery/{js → !v2.7.2/js}/plugins/j1/j1-video.min.js +0 -0
- /data/assets/theme/j1/modules/videoPlayer/dailymotion/js/{!readme → README.md} +0 -0
- /data/assets/theme/j1/modules/videoPlayer/tiktoc/{js/player.min.js → player.min.js} +0 -0
- /data/assets/theme/j1/modules/videoPlayer/vimeo/js/{!readme → README.md} +0 -0
- /data/assets/theme/j1/modules/videoPlayer/wistia/js/{!readme → README.md} +0 -0
- /data/assets/theme/j1/modules/videojs/{css → !v8.12.0/css}/font/video-js-cdn.css +0 -0
- /data/assets/theme/j1/modules/videojs/{js/plugins → plugins}/controls/autocaption/LICENSE +0 -0
- /data/assets/theme/j1/modules/videojs/{js/plugins → plugins}/controls/autocaption/README.md +0 -0
- /data/assets/theme/j1/modules/videojs/{js/plugins/controls/autocaption → plugins/controls/autocaption/js}/autocaption.min.js +0 -0
- /data/assets/theme/j1/modules/videojs/{js/plugins/controls/hotkeys/examples → plugins/controls/hotkeys/!examples}/example.html +0 -0
- /data/assets/theme/j1/modules/videojs/{js/plugins → plugins}/controls/hotkeys/LICENSE.md +0 -0
- /data/assets/theme/j1/modules/videojs/{js/plugins → plugins}/controls/hotkeys/README.md +0 -0
- /data/assets/theme/j1/modules/videojs/{js/plugins/controls/hotkeys → plugins/controls/hotkeys/js}/hotkeys.js +0 -0
- /data/assets/theme/j1/modules/videojs/{js/plugins/controls/hotkeys → plugins/controls/hotkeys/js}/hotkeys.min.js +0 -0
- /data/assets/theme/j1/modules/videojs/{css/plugins/controls → plugins/controls/skipbuttons/css}/skipbuttons.css +0 -0
- /data/assets/theme/j1/modules/videojs/{css/plugins/controls → plugins/controls/skipbuttons/css}/skipbuttons.min.css +0 -0
- /data/assets/theme/j1/modules/videojs/{js/plugins/controls/skipbuttons → plugins/controls/skipbuttons/js}/skipbuttons.js +0 -0
- /data/assets/theme/j1/modules/videojs/{js/plugins/controls/skipbuttons → plugins/controls/skipbuttons/js}/skipbuttons.min.js +0 -0
- /data/assets/theme/j1/modules/videojs/{js/plugins/controls/zoom/examples → plugins/controls/zoom/!examples}/index.html +0 -0
- /data/assets/theme/j1/modules/videojs/{js/plugins/controls/zoom/examples → plugins/controls/zoom/!examples}/index.js +0 -0
- /data/assets/theme/j1/modules/videojs/{js/plugins/controls/zoom/examples → plugins/controls/zoom/!examples}/styles.css +0 -0
- /data/assets/theme/j1/modules/videojs/{js/plugins → plugins}/controls/zoom/LICENSE.md +0 -0
- /data/assets/theme/j1/modules/videojs/{js/plugins → plugins}/controls/zoom/README.md +0 -0
- /data/assets/theme/j1/modules/videojs/{js/plugins/controls/zoom → plugins/controls/zoom/js}/zoom.js +0 -0
- /data/assets/theme/j1/modules/videojs/{js/plugins/controls/zoom → plugins/controls/zoom/js}/zoom.min.js +0 -0
- /data/assets/theme/j1/modules/videojs/{js/plugins/players/dm/examples → plugins/players/dm/!examples}/dailymotion-controls.html +0 -0
- /data/assets/theme/j1/modules/videojs/{js/plugins/players/dm/examples → plugins/players/dm/!examples}/dailymotion-javascript.html +0 -0
- /data/assets/theme/j1/modules/videojs/{js/plugins/players/dm/examples → plugins/players/dm/!examples}/dailymotion-playlist.html +0 -0
- /data/assets/theme/j1/modules/videojs/{js/plugins/players/dm/examples → plugins/players/dm/!examples}/global-parameters.html +0 -0
- /data/assets/theme/j1/modules/videojs/{js/plugins/players/dm/examples → plugins/players/dm/!examples}/simple.html +0 -0
- /data/assets/theme/j1/modules/videojs/{js/plugins/players/dm/examples → plugins/players/dm/!examples}/switch.html +0 -0
- /data/assets/theme/j1/modules/videojs/{js/plugins → plugins}/players/dm/LICENSE +0 -0
- /data/assets/theme/j1/modules/videojs/{js/plugins/players/dm/doc → plugins/players/dm}/README.md +0 -0
- /data/assets/theme/j1/modules/videojs/{js/plugins → plugins}/players/dm/api/LICENSE +0 -0
- /data/assets/theme/j1/modules/videojs/{js/plugins/players/dm/api/doc → plugins/players/dm/api}/README.md +0 -0
- /data/assets/theme/j1/modules/videojs/{js/plugins/players/dm/api → plugins/players/dm/api/js}/dailymotion.sdk.js +0 -0
- /data/assets/theme/j1/modules/videojs/{js/plugins/players/dm/api → plugins/players/dm/api/js}/dailymotion.sdk.min.js +0 -0
- /data/assets/theme/j1/modules/videojs/{js/plugins → plugins}/players/dm/icon/scalable/dailymotion.svg +0 -0
- /data/assets/theme/j1/modules/videojs/{js/plugins/players/dm → plugins/players/dm/js}/dailymotion.min.js +0 -0
- /data/assets/theme/j1/modules/videojs/{js/plugins/players/vm/examples → plugins/players/vm/!examples}/index.html +0 -0
- /data/assets/theme/j1/modules/videojs/{js/plugins/players/vm/examples → plugins/players/vm/!examples}/player/index.html +0 -0
- /data/assets/theme/j1/modules/videojs/{js/plugins → plugins}/players/vm/LICENSE +0 -0
- /data/assets/theme/j1/modules/videojs/{js/plugins/players/vm/doc → plugins/players/vm}/README.md +0 -0
- /data/assets/theme/j1/modules/videojs/{js/plugins/players/vm/api/doc → plugins/players/vm/api}/README.md +0 -0
- /data/assets/theme/j1/modules/videojs/{js/plugins → plugins}/players/vm/api/css/embed.player.css +0 -0
- /data/assets/theme/j1/modules/videojs/{js/plugins → plugins}/players/vm/api/css/embed.player.uno.css +0 -0
- /data/assets/theme/j1/modules/videojs/{js/plugins → plugins}/players/vm/api/css/player.css +0 -0
- /data/assets/theme/j1/modules/videojs/{js/plugins/players/wt/doc → plugins/players/wt}/README.md +0 -0
- /data/assets/theme/j1/modules/videojs/{js/plugins/players/wt/api/doc/Readme.txt → plugins/players/wt/api/README.md} +0 -0
- /data/assets/theme/j1/modules/videojs/{js/plugins/players/wt/api → plugins/players/wt/api/js}/wistia.min.js +0 -0
- /data/assets/theme/j1/modules/videojs/{js/plugins/players/wt → plugins/players/wt/js}/wistia.js +0 -0
- /data/assets/theme/j1/modules/videojs/{js/plugins/players/wt → plugins/players/wt/js}/wistia.min.js +0 -0
- /data/assets/theme/j1/modules/videojs/{js/plugins/players/yt/examples → plugins/players/yt/!examples}/global-parameters.html +0 -0
- /data/assets/theme/j1/modules/videojs/{js/plugins/players/yt/examples → plugins/players/yt/!examples}/simple.html +0 -0
- /data/assets/theme/j1/modules/videojs/{js/plugins/players/yt/examples → plugins/players/yt/!examples}/switch.html +0 -0
- /data/assets/theme/j1/modules/videojs/{js/plugins/players/yt/examples → plugins/players/yt/!examples}/youtube-controls.html +0 -0
- /data/assets/theme/j1/modules/videojs/{js/plugins/players/yt/examples → plugins/players/yt/!examples}/youtube-javascript.html +0 -0
- /data/assets/theme/j1/modules/videojs/{js/plugins/players/yt/examples → plugins/players/yt/!examples}/youtube-list.html +0 -0
- /data/assets/theme/j1/modules/videojs/{js/plugins/players/yt/examples → plugins/players/yt/!examples}/youtube-playlist.html +0 -0
- /data/assets/theme/j1/modules/videojs/{js/plugins/players/yt/v3.0.0 → plugins/players/yt/!v3.0.0}/youtube.js +0 -0
- /data/assets/theme/j1/modules/videojs/{js/plugins/players/yt/v3.0.0 → plugins/players/yt/!v3.0.0}/youtube.min.js +0 -0
- /data/assets/theme/j1/modules/videojs/{js/plugins → plugins}/players/yt/LICENSE +0 -0
- /data/assets/theme/j1/modules/videojs/{js/plugins/players/yt/doc → plugins/players/yt}/README.md +0 -0
- /data/assets/theme/j1/modules/videojs/{js/plugins/players/yt/api → plugins/players/yt/api/js}/youtube.min.js +0 -0
- /data/assets/theme/j1/modules/videojs/{js/plugins/players/yt → plugins/players/yt/js}/youtube.js +0 -0
- /data/assets/theme/j1/modules/videojs/{js/plugins/players/yt → plugins/players/yt/js}/youtube.min.js +0 -0
@@ -0,0 +1,643 @@
|
|
1
|
+
/*
|
2
|
+
# -----------------------------------------------------------------------------
|
3
|
+
# ~/assets/theme/j1/modules/videojs/js/vimeo/vimeo.js
|
4
|
+
# Provides Vimeo Playback Technology (Tech) for Video.js V8 and newer
|
5
|
+
#
|
6
|
+
# Product/Info:
|
7
|
+
# http://jekyll.one
|
8
|
+
#
|
9
|
+
# Copyright (C) 2023-2025 Juergen Adams
|
10
|
+
#
|
11
|
+
# J1 Theme is licensed under MIT License.
|
12
|
+
# See: https://github.com/jekyll-one-org/j1-template/blob/main/LICENSE
|
13
|
+
# -----------------------------------------------------------------------------
|
14
|
+
*/
|
15
|
+
|
16
|
+
/* global define, VM */
|
17
|
+
(function (root, factory) {
|
18
|
+
if(typeof exports==='object' && typeof module!=='undefined') {
|
19
|
+
var videojs = require('video.js');
|
20
|
+
module.exports = factory(videojs.default || videojs);
|
21
|
+
} else if(typeof define === 'function' && define.amd) {
|
22
|
+
define(['videojs'], function(videojs){
|
23
|
+
return (root.Vimeo = factory(videojs));
|
24
|
+
});
|
25
|
+
} else {
|
26
|
+
root.Vimeo = factory(root.videojs);
|
27
|
+
}
|
28
|
+
}(this, function(videojs) {
|
29
|
+
'use strict';
|
30
|
+
|
31
|
+
var logger = log4javascript.getLogger('videoJS.plugin.vimeo');
|
32
|
+
var _isOnMobile = videojs.browser.IS_IOS || videojs.browser.IS_ANDROID;
|
33
|
+
var Tech = videojs.getTech('Tech');
|
34
|
+
var cssInjected = false;
|
35
|
+
|
36
|
+
var startTimeModule;
|
37
|
+
var endTimeModule;
|
38
|
+
|
39
|
+
class Vimeo extends Tech {
|
40
|
+
|
41
|
+
/**
|
42
|
+
* Vimeo - Wrapper for Video Player API
|
43
|
+
*
|
44
|
+
* @param {Object=} options Object of option names and values
|
45
|
+
* @param {Function=} ready Ready callback function
|
46
|
+
* @extends Tech
|
47
|
+
* @class Vimeo
|
48
|
+
*/
|
49
|
+
constructor(options, ready) {
|
50
|
+
super(options, ready);
|
51
|
+
|
52
|
+
// jadams: enable VJS controlbar
|
53
|
+
var divElement = document.getElementById(options.playerId);
|
54
|
+
divElement.classList.remove("vjs-controls-disabled");
|
55
|
+
|
56
|
+
this.setPoster(options.poster);
|
57
|
+
|
58
|
+
// Set the vjs-vimeo class on the player PARENT node.
|
59
|
+
// When not set, yet so we have to wait a tick
|
60
|
+
var vm = this;
|
61
|
+
setTimeout(function() {
|
62
|
+
if (this.el_) {
|
63
|
+
this.el_.parentNode.className += ' vjs-vimeo';
|
64
|
+
|
65
|
+
if (_isOnMobile) {
|
66
|
+
this.el_.parentNode.className += ' vjs-vimeo-mobile';
|
67
|
+
}
|
68
|
+
|
69
|
+
if (Vimeo.isSdkReady) {
|
70
|
+
vm.initVMPlayer();
|
71
|
+
} else {
|
72
|
+
Vimeo.sdkReadyQueue.push(vm);
|
73
|
+
}
|
74
|
+
}
|
75
|
+
}.bind(this));
|
76
|
+
|
77
|
+
} // END Constructor
|
78
|
+
|
79
|
+
initVMPlayer() {
|
80
|
+
const vimeoOptions = {
|
81
|
+
url: this.options_.source.src,
|
82
|
+
byline: false,
|
83
|
+
controls: false, // jadams: controlbar may required for some click events
|
84
|
+
portrait: false,
|
85
|
+
title: false
|
86
|
+
};
|
87
|
+
|
88
|
+
if (this.options_.autoplay) {
|
89
|
+
vimeoOptions.autoplay = true;
|
90
|
+
}
|
91
|
+
if (this.options_.height) {
|
92
|
+
vimeoOptions.height = this.options_.height;
|
93
|
+
}
|
94
|
+
if (this.options_.width) {
|
95
|
+
vimeoOptions.width = this.options_.width;
|
96
|
+
}
|
97
|
+
if (this.options_.maxheight) {
|
98
|
+
vimeoOptions.maxheight = this.options_.maxheight;
|
99
|
+
}
|
100
|
+
if (this.options_.maxwidth) {
|
101
|
+
vimeoOptions.maxwidth = this.options_.maxwidth;
|
102
|
+
}
|
103
|
+
if (this.options_.loop) {
|
104
|
+
vimeoOptions.loop = this.options_.loop;
|
105
|
+
}
|
106
|
+
if (this.options_.color) {
|
107
|
+
// vimeo is the only API on earth to reject hex color with leading #
|
108
|
+
vimeoOptions.color = this.options_.color.replace(/^#/, '');
|
109
|
+
}
|
110
|
+
|
111
|
+
this.vmPlayer = new VM.Player(this.el(), vimeoOptions);
|
112
|
+
this.initVimeoState();
|
113
|
+
|
114
|
+
// setup API events
|
115
|
+
var apiEvents = [
|
116
|
+
'play', 'playing', 'pause', 'ended', 'loaded',
|
117
|
+
'timeupdate', 'progress', 'seeking', 'seeked',
|
118
|
+
'ready'
|
119
|
+
];
|
120
|
+
apiEvents.forEach(e => {
|
121
|
+
this.vmPlayer.on(e, (progress) => {
|
122
|
+
if (this._vimeoState.progress.duration !== progress.duration) {
|
123
|
+
this.trigger('durationchange');
|
124
|
+
}
|
125
|
+
this._vimeoState.progress = progress;
|
126
|
+
this.trigger(e);
|
127
|
+
});
|
128
|
+
|
129
|
+
this.vmPlayer.on(e, (ready) => {
|
130
|
+
this._vimeoState.currState = 'beforeplay';
|
131
|
+
this.vmPlayer.getVideoEmbedCode()
|
132
|
+
.then (function(embedCode) {
|
133
|
+
var code = embedCode;
|
134
|
+
})
|
135
|
+
.catch(function(error) {
|
136
|
+
console.err('Vimeo API: an error occurred');
|
137
|
+
});
|
138
|
+
}); // END on ready
|
139
|
+
|
140
|
+
this.vmPlayer.on(e, (timeupdate) => {
|
141
|
+
if (this._vimeoState.progress.duration !== progress.duration) {
|
142
|
+
this.trigger('durationchange');
|
143
|
+
}
|
144
|
+
this._vimeoState.progress = progress;
|
145
|
+
this.trigger(e);
|
146
|
+
});
|
147
|
+
|
148
|
+
this.vmPlayer.on('pause', () => this._vimeoState.playing = false);
|
149
|
+
|
150
|
+
this.vmPlayer.on('play', () => {
|
151
|
+
this._vimeoState.playing = true;
|
152
|
+
this._vimeoState.ended = false;
|
153
|
+
});
|
154
|
+
}); // END forEach apiEvents
|
155
|
+
|
156
|
+
this.vmPlayer.on('ended', () => {
|
157
|
+
this._vimeoState.playing = false;
|
158
|
+
this._vimeoState.ended = true;
|
159
|
+
});
|
160
|
+
|
161
|
+
this.vmPlayer.on('volumechange', (v) => {
|
162
|
+
this._vimeoState.volume = v;
|
163
|
+
});
|
164
|
+
|
165
|
+
this.vmPlayer.on('error', (e) => {
|
166
|
+
this.trigger('error', e);
|
167
|
+
});
|
168
|
+
// END API events
|
169
|
+
|
170
|
+
var player = videojs(this.options_.playerId);
|
171
|
+
var vjs_player = document.getElementById(this.options_.playerId);
|
172
|
+
var vm_player = document.getElementById(this.options_.playerId + '_vimeo_api');
|
173
|
+
var currState;
|
174
|
+
|
175
|
+
// initialize click event when player ready
|
176
|
+
// ---------------------------------------------------------------------
|
177
|
+
var dependencies_met_player_ready = setInterval (() => {
|
178
|
+
var playerReady = (this._vimeoState.currState === 'beforeplay') ? true : false;
|
179
|
+
|
180
|
+
if (playerReady) {
|
181
|
+
// workaround toggle play|pause for Wistia Tech (click on video)
|
182
|
+
vm_player.addEventListener('click', (event) => {
|
183
|
+
currState = this._vimeoState.currState;
|
184
|
+
|
185
|
+
// suppress default actions|bubble up
|
186
|
+
event.preventDefault();
|
187
|
+
event.stopPropagation();
|
188
|
+
|
189
|
+
// trigger play on state beforeplay (FIRST play)
|
190
|
+
if (currState === 'beforeplay') {
|
191
|
+
this.vmPlayer.play();
|
192
|
+
this.trigger('play');
|
193
|
+
logger.debug('\n' + 'triggered play on state: ' + currState);
|
194
|
+
}
|
195
|
+
|
196
|
+
// update player states
|
197
|
+
if (currState === 'playing' ) {
|
198
|
+
this.trigger('play');
|
199
|
+
}
|
200
|
+
|
201
|
+
if (currState === 'paused' ) {
|
202
|
+
this.trigger('pause');
|
203
|
+
}
|
204
|
+
}); // END vm_player click
|
205
|
+
|
206
|
+
clearInterval(dependencies_met_player_ready);
|
207
|
+
} // END playerReady
|
208
|
+
}, 10); // END dependencies_met_page_ready
|
209
|
+
|
210
|
+
this.triggerReady();
|
211
|
+
logger.debug('\n' + 'created ' + this.name_ + ' player on ID: ' + this.vmPlayer.element.id);
|
212
|
+
} // END initVMPlayer
|
213
|
+
|
214
|
+
initVimeoState() {
|
215
|
+
const state = this._vimeoState = {
|
216
|
+
currState: 'not set',
|
217
|
+
ended: false,
|
218
|
+
playing: false,
|
219
|
+
muted: false,
|
220
|
+
volume: 0,
|
221
|
+
progress: {
|
222
|
+
seconds: 0,
|
223
|
+
percent: 0,
|
224
|
+
duration: 0
|
225
|
+
}
|
226
|
+
};
|
227
|
+
|
228
|
+
this.vmPlayer.getCurrentTime().then(time => state.progress.seconds = time);
|
229
|
+
this.vmPlayer.getDuration().then(time => state.progress.duration = time);
|
230
|
+
this.vmPlayer.getPaused().then(paused => state.playing = !paused);
|
231
|
+
this.vmPlayer.getVolume().then(volume => state.volume = volume);
|
232
|
+
|
233
|
+
} // END initVimeoState
|
234
|
+
|
235
|
+
createEl() {
|
236
|
+
const div = videojs.dom.createEl('div', {
|
237
|
+
id: this.options_.techId
|
238
|
+
});
|
239
|
+
|
240
|
+
div.style.cssText = 'width:100%;height:100%;top:0;left:0;position:absolute';
|
241
|
+
div.className = 'vjs-vimeo';
|
242
|
+
|
243
|
+
return div;
|
244
|
+
} // END createEl
|
245
|
+
|
246
|
+
controls() {
|
247
|
+
return true;
|
248
|
+
} // END controls
|
249
|
+
|
250
|
+
supportsFullScreen() {
|
251
|
+
return true;
|
252
|
+
} // END supportsFullScreen
|
253
|
+
|
254
|
+
src() {
|
255
|
+
return this.options_.source;
|
256
|
+
} // END
|
257
|
+
|
258
|
+
currentSrc() {
|
259
|
+
return this.options_.source.src;
|
260
|
+
} // END currentSrc
|
261
|
+
|
262
|
+
volume() {
|
263
|
+
// return this._vimeoState.volume;
|
264
|
+
this.vmPlayer.getVolume().then((volume) => {
|
265
|
+
// volume = the volume level of the player
|
266
|
+
return volume;
|
267
|
+
}).catch(function(error) {
|
268
|
+
// an error occurred
|
269
|
+
});
|
270
|
+
} // END volume
|
271
|
+
|
272
|
+
setVolume(volume) {
|
273
|
+
// return this.vmPlayer.setVolume(volume);
|
274
|
+
|
275
|
+
this.vmPlayer.setVolume(volume).then((volume) => {
|
276
|
+
// volume was set
|
277
|
+
this.trigger('volumechange');
|
278
|
+
return volume;
|
279
|
+
}).catch(function(error) {
|
280
|
+
switch (error.name) {
|
281
|
+
case 'RangeError':
|
282
|
+
// the volume was less than 0 or greater than 1
|
283
|
+
break;
|
284
|
+
default:
|
285
|
+
// some other error occurred
|
286
|
+
break;
|
287
|
+
}
|
288
|
+
});
|
289
|
+
} // END setVolume
|
290
|
+
|
291
|
+
muted() {} // END muted
|
292
|
+
|
293
|
+
setMuted(mute) {
|
294
|
+
var isMuted = !this._vimeoState.muted; // toggle mute state
|
295
|
+
var _this = this;
|
296
|
+
|
297
|
+
this.vmPlayer.setMuted(isMuted).then((muted) => {
|
298
|
+
|
299
|
+
_this._vimeoState.muted = muted;
|
300
|
+
return muted;
|
301
|
+
}).catch(function(error) {
|
302
|
+
// an error occurred
|
303
|
+
});
|
304
|
+
}
|
305
|
+
|
306
|
+
buffered() {
|
307
|
+
const progress = this._vimeoState.progress;
|
308
|
+
|
309
|
+
return videojs.time.createTimeRanges(0, progress.percent * progress.duration);
|
310
|
+
} // END
|
311
|
+
|
312
|
+
paused() {
|
313
|
+
return !this._vimeoState.playing;
|
314
|
+
} // END
|
315
|
+
|
316
|
+
pause() {
|
317
|
+
this.vmPlayer.pause();
|
318
|
+
this._vimeoState.currState = 'paused';
|
319
|
+
} // END
|
320
|
+
|
321
|
+
play() {
|
322
|
+
this.vmPlayer.play();
|
323
|
+
this._vimeoState.currState = 'playing';
|
324
|
+
} // END
|
325
|
+
|
326
|
+
ended() {
|
327
|
+
return this._vimeoState.ended;
|
328
|
+
} // END
|
329
|
+
|
330
|
+
|
331
|
+
// currentTime() {
|
332
|
+
// return this._vimeoState.progress.seconds;
|
333
|
+
// } // END
|
334
|
+
//
|
335
|
+
// setCurrentTime(time) {
|
336
|
+
// // this.vmPlayer.setCurrentTime(time);
|
337
|
+
// this.vmPlayer.setCurrentTime(30.456).then(function(seconds) {
|
338
|
+
// // seconds = the actual time that the player seeked to
|
339
|
+
// var currentTime = seconds
|
340
|
+
// }).catch(function(error) {
|
341
|
+
// switch (error.name) {
|
342
|
+
// case 'RangeError':
|
343
|
+
// // the time was less than 0 or greater than the video’s duration
|
344
|
+
// break;
|
345
|
+
// default:
|
346
|
+
// // some other error occurred
|
347
|
+
// break;
|
348
|
+
// }
|
349
|
+
// });
|
350
|
+
// } // END setCurrentTime
|
351
|
+
|
352
|
+
// currentTime() {
|
353
|
+
// var currentTime = this.vmPlayer ? this.vmPlayer.getCurrentTime() : 0;
|
354
|
+
// return currentTime;
|
355
|
+
// }
|
356
|
+
|
357
|
+
currentTime() {
|
358
|
+
this.vmPlayer.getCurrentTime().then(function(seconds) {
|
359
|
+
// seconds = the current playback position
|
360
|
+
return seconds;
|
361
|
+
}).catch(function(error) {
|
362
|
+
// an error occurred
|
363
|
+
});
|
364
|
+
}
|
365
|
+
|
366
|
+
setCurrentTime(seconds) {
|
367
|
+
if (this.lastState === vmPlayer.getPaused()) {
|
368
|
+
this.timeBeforeSeek = this.currentTime();
|
369
|
+
}
|
370
|
+
|
371
|
+
if (!this.isSeeking) {
|
372
|
+
this.wasPausedBeforeSeek = this.paused();
|
373
|
+
}
|
374
|
+
|
375
|
+
this.vmPlayer.seekTo(seconds, true);
|
376
|
+
this.trigger('timeupdate');
|
377
|
+
this.trigger('seeking');
|
378
|
+
this.isSeeking = true;
|
379
|
+
|
380
|
+
// A seek event during pause does not return an event to trigger a seeked event,
|
381
|
+
// so run an interval timer to look for the currentTime to change
|
382
|
+
if (this.lastState === vmPlayer.getPaused() && this.timeBeforeSeek !== seconds) {
|
383
|
+
clearInterval(this.checkSeekedInPauseInterval);
|
384
|
+
this.checkSeekedInPauseInterval = setInterval(function() {
|
385
|
+
if (this.lastState !== vmPlayer.getPaused() || !this.isSeeking) {
|
386
|
+
// If something changed while we were waiting for the currentTime to change,
|
387
|
+
// clear the interval timer
|
388
|
+
clearInterval(this.checkSeekedInPauseInterval);
|
389
|
+
} else if (this.currentTime() !== this.timeBeforeSeek) {
|
390
|
+
this.trigger('timeupdate');
|
391
|
+
this.onSeeked();
|
392
|
+
}
|
393
|
+
}.bind(this), 250);
|
394
|
+
}
|
395
|
+
} // END setCurrentTime
|
396
|
+
|
397
|
+
seeking() {
|
398
|
+
return this.isSeeking;
|
399
|
+
}
|
400
|
+
|
401
|
+
// jadams, 2023-10-01: videojs.createTimeRange() deprecated in VideoJS 9
|
402
|
+
//
|
403
|
+
seekable() {
|
404
|
+
if(!this.vmPlayer) {
|
405
|
+
// return videojs.createTimeRange();
|
406
|
+
return videojs.time.createTimeRanges();
|
407
|
+
}
|
408
|
+
// return videojs.createTimeRange(0, this.vmPlayer.getDuration());
|
409
|
+
return videojs.time.createTimeRanges(0, this.vmPlayer.getDuration());
|
410
|
+
}
|
411
|
+
|
412
|
+
onSeeked() {
|
413
|
+
clearInterval(this.checkSeekedInPauseInterval);
|
414
|
+
this.isSeeking = false;
|
415
|
+
|
416
|
+
if (this.wasPausedBeforeSeek) {
|
417
|
+
this.pause();
|
418
|
+
}
|
419
|
+
|
420
|
+
this.trigger('seeked');
|
421
|
+
}
|
422
|
+
|
423
|
+
playbackRate() {
|
424
|
+
return this.vmPlayer ? this.vmPlayer.getPlaybackRate() : 1;
|
425
|
+
}
|
426
|
+
|
427
|
+
setPlaybackRate(suggestedRate) {
|
428
|
+
if (!this.vmPlayer) {
|
429
|
+
return;
|
430
|
+
}
|
431
|
+
|
432
|
+
this.vmPlayer.setPlaybackRate(suggestedRate);
|
433
|
+
}
|
434
|
+
|
435
|
+
// duration() {
|
436
|
+
// var duration = this.vmPlayer ? this.vmPlayer.getDuration() : 0;
|
437
|
+
// return duration;
|
438
|
+
// }
|
439
|
+
|
440
|
+
// duration() {
|
441
|
+
// return this._vimeoState.progress.duration;
|
442
|
+
// } // END
|
443
|
+
|
444
|
+
duration() {
|
445
|
+
this.vmPlayer.getDuration().then(function(duration) {
|
446
|
+
// duration = the duration of the video in seconds
|
447
|
+
return duration;
|
448
|
+
}).catch(function(error) {
|
449
|
+
// an error occurred
|
450
|
+
});
|
451
|
+
}
|
452
|
+
|
453
|
+
} // END class Vimeo
|
454
|
+
|
455
|
+
Vimeo.prototype.featuresTimeupdateEvents = true;
|
456
|
+
|
457
|
+
Vimeo.isSupported = function() {
|
458
|
+
return true;
|
459
|
+
};
|
460
|
+
|
461
|
+
// Add Source Handler pattern functions to this tech
|
462
|
+
Tech.withSourceHandlers(Vimeo);
|
463
|
+
|
464
|
+
Vimeo.nativeSourceHandler = {};
|
465
|
+
|
466
|
+
/**
|
467
|
+
* Check if Vimeo can play the given videotype
|
468
|
+
* @param {String} type The mimetype to check
|
469
|
+
* @return {String} 'maybe', or '' (empty string)
|
470
|
+
*/
|
471
|
+
Vimeo.nativeSourceHandler.canPlayType = function(source) {
|
472
|
+
if (source === 'video/vimeo') {
|
473
|
+
return 'maybe';
|
474
|
+
}
|
475
|
+
|
476
|
+
return '';
|
477
|
+
};
|
478
|
+
|
479
|
+
/*
|
480
|
+
* Check Vimeo can handle the source natively
|
481
|
+
*
|
482
|
+
* @param {Object} source The source object
|
483
|
+
* @return {String} 'maybe', or '' (empty string)
|
484
|
+
* @note: Copied over from YouTube — not sure this is relevant
|
485
|
+
*/
|
486
|
+
Vimeo.nativeSourceHandler.canHandleSource = function(source) {
|
487
|
+
if (source.type) {
|
488
|
+
return Vimeo.nativeSourceHandler.canPlayType(source.type);
|
489
|
+
} else if (source.src) {
|
490
|
+
return Vimeo.nativeSourceHandler.canPlayType(source.src);
|
491
|
+
}
|
492
|
+
|
493
|
+
return '';
|
494
|
+
};
|
495
|
+
|
496
|
+
// @note: Copied over from YouTube — not sure this is relevant
|
497
|
+
Vimeo.nativeSourceHandler.handleSource = function(source, tech) {
|
498
|
+
tech.src(source.src);
|
499
|
+
};
|
500
|
+
|
501
|
+
// @note: Copied over from YouTube — not sure this is relevant
|
502
|
+
Vimeo.nativeSourceHandler.dispose = function() { };
|
503
|
+
|
504
|
+
Vimeo.registerSourceHandler(Vimeo.nativeSourceHandler);
|
505
|
+
|
506
|
+
// Include the version number
|
507
|
+
Vimeo.VERSION = '1.0.0';
|
508
|
+
|
509
|
+
Vimeo.sdkReadyQueue = [];
|
510
|
+
|
511
|
+
// Since the iframe can't be touched using Vimeo's way of embedding,
|
512
|
+
// let's add a new styling rule to have the same style as `vjs-tech`
|
513
|
+
//
|
514
|
+
function injectCss() {
|
515
|
+
if (cssInjected) {
|
516
|
+
return;
|
517
|
+
}
|
518
|
+
cssInjected = true;
|
519
|
+
|
520
|
+
// const css = `
|
521
|
+
// .vjs-vimeo iframe {
|
522
|
+
// position: absolute;
|
523
|
+
// top: 0;
|
524
|
+
// left: 0;
|
525
|
+
// width: 100%;
|
526
|
+
// height: 100%;
|
527
|
+
// }
|
528
|
+
//
|
529
|
+
// .vjs-control-bar { display: block; }
|
530
|
+
// .vjs-vimeo .vjs-iframe-blocker { display: none; }
|
531
|
+
// .vjs-vimeo.vjs-user-inactive .vjs-iframe-blocker { display: block; }
|
532
|
+
// .vjs-vimeo .vjs-poster { background-size: cover; }'
|
533
|
+
// .vjs-vimeo-mobile .vjs-big-play-button { display: none; }
|
534
|
+
//
|
535
|
+
// .vjs-vimeo .vjs-duration { display: none; }
|
536
|
+
// .vjs-vimeo .vjs-remaining-time { display: none; }
|
537
|
+
// `;
|
538
|
+
|
539
|
+
const css = `
|
540
|
+
.vjs-vimeo iframe {
|
541
|
+
position: absolute;
|
542
|
+
top: 0;
|
543
|
+
left: 0;
|
544
|
+
width: 100%;
|
545
|
+
height: 100%;
|
546
|
+
}
|
547
|
+
|
548
|
+
.vjs-vimeo .vjs-iframe-blocker { display: none; }
|
549
|
+
.vjs-vimeo.vjs-user-inactive .vjs-iframe-blocker { display: block; }
|
550
|
+
.vjs-vimeo .vjs-poster { background-size: cover; }'
|
551
|
+
.vjs-vimeo-mobile .vjs-big-play-button { display: none; }
|
552
|
+
`;
|
553
|
+
|
554
|
+
const head = document.head || document.getElementsByTagName('head')[0];
|
555
|
+
const style = document.createElement('style');
|
556
|
+
style.type = 'text/css';
|
557
|
+
|
558
|
+
if (style.styleSheet) {
|
559
|
+
style.styleSheet.cssText = css;
|
560
|
+
} else {
|
561
|
+
style.appendChild(document.createTextNode(css));
|
562
|
+
}
|
563
|
+
|
564
|
+
logger.debug('\n' + 'added additional CSS styles');
|
565
|
+
head.appendChild(style);
|
566
|
+
} // END injectCss
|
567
|
+
|
568
|
+
function apiLoaded() {
|
569
|
+
Vimeo.isSdkReady = true;
|
570
|
+
|
571
|
+
for (var i = 0; i < Vimeo.sdkReadyQueue.length; ++i) {
|
572
|
+
Vimeo.sdkReadyQueue[i].initVMPlayer();
|
573
|
+
}
|
574
|
+
logger.debug('\n' + 'created all players from queue: #' + i);
|
575
|
+
|
576
|
+
endTimeModule = Date.now();
|
577
|
+
logger.debug('\n' + 'initializing plugin: finished');
|
578
|
+
logger.debug('\n' + 'plugin initializing time: ' + (endTimeModule-startTimeModule) + 'ms');
|
579
|
+
} // END apiLoaded
|
580
|
+
|
581
|
+
function loadScript(src, callback) {
|
582
|
+
var loaded = false;
|
583
|
+
var tag = document.createElement('script');
|
584
|
+
var firstScriptTag = document.getElementsByTagName('script')[0];
|
585
|
+
|
586
|
+
if (!firstScriptTag) {
|
587
|
+
// when loaded in jest without jsdom setup it doesn't get any element.
|
588
|
+
// In jest it doesn't really make sense to do anything, because no
|
589
|
+
// one is watching dailymotion in jest
|
590
|
+
return;
|
591
|
+
}
|
592
|
+
|
593
|
+
firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);
|
594
|
+
tag.onload = function () {
|
595
|
+
if (!loaded) {
|
596
|
+
loaded = true;
|
597
|
+
callback();
|
598
|
+
}
|
599
|
+
};
|
600
|
+
|
601
|
+
tag.onreadystatechange = function () {
|
602
|
+
if (!loaded && (this.readyState === 'complete' || this.readyState === 'loaded')) {
|
603
|
+
loaded = true;
|
604
|
+
callback();
|
605
|
+
}
|
606
|
+
};
|
607
|
+
|
608
|
+
tag.src = src;
|
609
|
+
} // END loadScript
|
610
|
+
|
611
|
+
// initialize plugin if page ready
|
612
|
+
// -------------------------------------------------------------------------
|
613
|
+
var dependencies_met_page_ready = setInterval (() => {
|
614
|
+
var pageState = $('#content').css("display");
|
615
|
+
var pageVisible = (pageState === 'block') ? true : false;
|
616
|
+
var j1CoreFinished = (j1.getState() === 'finished') ? true : false;
|
617
|
+
var atticFinished = (j1.adapter.attic.getState() == 'finished') ? true : false;
|
618
|
+
|
619
|
+
if (j1CoreFinished && pageVisible && atticFinished) {
|
620
|
+
startTimeModule = Date.now();
|
621
|
+
|
622
|
+
logger.debug('\n' + 'initializing plugin: started');
|
623
|
+
logger.debug('\n' + 'version of videoJS detected: ' + videojs.VERSION);
|
624
|
+
|
625
|
+
// load script loaded from local because of NemeSpace conflicts (Vimeo -> VM)
|
626
|
+
loadScript('/assets/theme/j1/modules/videojs/js/plugins/vm/api/vimeo.js', apiLoaded);
|
627
|
+
// loadScript('https://player.vimeo.com/api/player.js', apiLoaded);
|
628
|
+
|
629
|
+
injectCss();
|
630
|
+
|
631
|
+
clearInterval(dependencies_met_page_ready);
|
632
|
+
} // END pageVisible
|
633
|
+
}, 10); // END dependencies_met_page_ready
|
634
|
+
|
635
|
+
|
636
|
+
// Check VJS versions to register Wistia TECH
|
637
|
+
if (typeof videojs.registerTech !== 'undefined') {
|
638
|
+
videojs.registerTech('Vimeo', Vimeo);
|
639
|
+
} else {
|
640
|
+
console.error('\n' + 'invalid version of videoJS detected: ' + videojs.VERSION);
|
641
|
+
}
|
642
|
+
|
643
|
+
}));
|