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.
Files changed (287) hide show
  1. checksums.yaml +4 -4
  2. data/assets/data/{galeries.html → gallery_app.html} +4 -4
  3. data/assets/theme/bla +0 -0
  4. data/assets/theme/j1/adapter/js/amplitude.js +144 -52
  5. data/assets/theme/j1/adapter/js/gallery.js +1 -1
  6. data/assets/theme/j1/adapter/js/themes.js +41 -69
  7. data/assets/theme/j1/core/css/themes/unolight/bootstrap.css +19 -52
  8. data/assets/theme/j1/core/css/themes/unolight/bootstrap.min.css +1 -1
  9. data/assets/theme/j1/modules/amplitudejs/js/tech/ytp.js +466 -396
  10. data/assets/theme/j1/modules/lightGallery/!v2.7.2/css/lg-transitions.css +984 -0
  11. data/assets/theme/j1/modules/lightGallery/!v2.7.2/css/lg-transitions.min.css +26 -0
  12. data/assets/theme/j1/modules/lightGallery/!v2.7.2/css/lightgallery-bundle.css +1627 -0
  13. data/assets/theme/j1/modules/lightGallery/!v2.7.2/css/lightgallery-bundle.min.css +25 -0
  14. data/assets/theme/j1/modules/lightGallery/{css → !v2.7.2/css}/themes/uno/uno.css +1 -1
  15. data/assets/theme/j1/modules/lightGallery/{css → !v2.7.2/css}/themes/uno/uno.min.css +1 -1
  16. data/assets/theme/j1/modules/lightGallery/!v2.7.2/fonts/lg.svg +54 -0
  17. data/assets/theme/j1/modules/lightGallery/!v2.7.2/fonts/lg.ttf +0 -0
  18. data/assets/theme/j1/modules/lightGallery/!v2.7.2/fonts/lg.woff +0 -0
  19. data/assets/theme/j1/modules/lightGallery/!v2.7.2/fonts/lg.woff2 +0 -0
  20. data/assets/theme/j1/modules/lightGallery/!v2.7.2/images/loading.gif +0 -0
  21. data/assets/theme/j1/modules/lightGallery/!v2.7.2/img/loading.gif +0 -0
  22. data/assets/theme/j1/modules/lightGallery/!v2.7.2/img/video-play.png +0 -0
  23. data/assets/theme/j1/modules/lightGallery/!v2.7.2/img/vimeo-play.png +0 -0
  24. data/assets/theme/j1/modules/lightGallery/!v2.7.2/img/youtube-play.png +0 -0
  25. data/assets/theme/j1/modules/lightGallery/!v2.7.2/js/lightgallery.js +2782 -0
  26. data/assets/theme/j1/modules/lightGallery/!v2.7.2/js/lightgallery.min.js +26 -0
  27. data/assets/theme/j1/modules/lightGallery/!v2.7.2/js/parser/webvtt/LICENSE.md +44 -0
  28. data/assets/theme/j1/modules/lightGallery/!v2.7.2/js/parser/webvtt/README.md +37 -0
  29. data/assets/theme/j1/modules/lightGallery/!v2.7.2/js/parser/webvtt/parser.js +890 -0
  30. data/assets/theme/j1/modules/lightGallery/!v2.7.2/js/parser/webvtt/parser.min.js +8 -0
  31. data/assets/theme/j1/modules/lightGallery/!v2.7.2/js/plugins/j1/lg-video.1.js +585 -0
  32. data/assets/theme/j1/modules/lightGallery/!v2.7.2/js/plugins/lg-autoplay.js +275 -0
  33. data/assets/theme/j1/modules/lightGallery/!v2.7.2/js/plugins/lg-autoplay.min.js +26 -0
  34. data/assets/theme/j1/modules/lightGallery/!v2.7.2/js/plugins/lg-comment.js +230 -0
  35. data/assets/theme/j1/modules/lightGallery/!v2.7.2/js/plugins/lg-comment.min.js +26 -0
  36. data/assets/theme/j1/modules/lightGallery/!v2.7.2/js/plugins/lg-fullscreen.js +160 -0
  37. data/assets/theme/j1/modules/lightGallery/!v2.7.2/js/plugins/lg-fullscreen.min.js +26 -0
  38. data/assets/theme/j1/modules/lightGallery/!v2.7.2/js/plugins/lg-hash.js +223 -0
  39. data/assets/theme/j1/modules/lightGallery/!v2.7.2/js/plugins/lg-hash.min.js +27 -0
  40. data/assets/theme/j1/modules/lightGallery/!v2.7.2/js/plugins/lg-medium-zoom.js +157 -0
  41. data/assets/theme/j1/modules/lightGallery/!v2.7.2/js/plugins/lg-medium-zoom.min.js +26 -0
  42. data/assets/theme/j1/modules/lightGallery/!v2.7.2/js/plugins/lg-pager.js +164 -0
  43. data/assets/theme/j1/modules/lightGallery/!v2.7.2/js/plugins/lg-pager.min.js +26 -0
  44. data/assets/theme/j1/modules/lightGallery/!v2.7.2/js/plugins/lg-rotate.js +299 -0
  45. data/assets/theme/j1/modules/lightGallery/!v2.7.2/js/plugins/lg-rotate.min.js +26 -0
  46. data/assets/theme/j1/modules/lightGallery/!v2.7.2/js/plugins/lg-share.js +244 -0
  47. data/assets/theme/j1/modules/lightGallery/!v2.7.2/js/plugins/lg-share.min.js +27 -0
  48. data/assets/theme/j1/modules/lightGallery/!v2.7.2/js/plugins/lg-thumbnail.js +509 -0
  49. data/assets/theme/j1/modules/lightGallery/!v2.7.2/js/plugins/lg-thumbnail.min.js +26 -0
  50. data/assets/theme/j1/modules/lightGallery/!v2.7.2/js/plugins/lg-video.js +909 -0
  51. data/assets/theme/j1/modules/lightGallery/!v2.7.2/js/plugins/lg-video.min.js +26 -0
  52. data/assets/theme/j1/modules/lightGallery/!v2.7.2/js/plugins/lg-vimeo-thumbnail.js +207 -0
  53. data/assets/theme/j1/modules/lightGallery/!v2.7.2/js/plugins/lg-vimeo-thumbnail.min.js +26 -0
  54. data/assets/theme/j1/modules/lightGallery/!v2.7.2/js/plugins/lg-zoom.js +999 -0
  55. data/assets/theme/j1/modules/lightGallery/!v2.7.2/js/plugins/lg-zoom.min.js +26 -0
  56. data/assets/theme/j1/modules/lightGallery/css/lg-transitions.css +3 -126
  57. data/assets/theme/j1/modules/lightGallery/css/lg-transitions.min.css +3 -10
  58. data/assets/theme/j1/modules/lightGallery/css/lightgallery-bundle.css +70 -237
  59. data/assets/theme/j1/modules/lightGallery/css/lightgallery-bundle.min.css +4 -10
  60. data/assets/theme/j1/modules/lightGallery/css/theme/uno/icons/animation-w.png +0 -0
  61. data/assets/theme/j1/modules/lightGallery/css/theme/uno/icons/customize-w.png +0 -0
  62. data/assets/theme/j1/modules/lightGallery/css/theme/uno/icons/dynamic-w.png +0 -0
  63. data/assets/theme/j1/modules/lightGallery/css/theme/uno/icons/facebook-icon.svg +10 -0
  64. data/assets/theme/j1/modules/lightGallery/css/theme/uno/icons/googleplus-icon.svg +30 -0
  65. data/assets/theme/j1/modules/lightGallery/css/theme/uno/icons/html5-w.png +0 -0
  66. data/assets/theme/j1/modules/lightGallery/css/theme/uno/icons/linked-in.png +0 -0
  67. data/assets/theme/j1/modules/lightGallery/css/theme/uno/icons/module-w.png +0 -0
  68. data/assets/theme/j1/modules/lightGallery/css/theme/uno/icons/play-button-hover.svg +94 -0
  69. data/assets/theme/j1/modules/lightGallery/css/theme/uno/icons/play-button.png +0 -0
  70. data/assets/theme/j1/modules/lightGallery/css/theme/uno/icons/play-button.svg +93 -0
  71. data/assets/theme/j1/modules/lightGallery/css/theme/uno/icons/responsive-w.png +0 -0
  72. data/assets/theme/j1/modules/lightGallery/css/theme/uno/icons/thumb-w.png +0 -0
  73. data/assets/theme/j1/modules/lightGallery/css/theme/uno/icons/touch-w.png +0 -0
  74. data/assets/theme/j1/modules/lightGallery/css/theme/uno/icons/twitter-icon.svg +15 -0
  75. data/assets/theme/j1/modules/lightGallery/css/theme/uno/icons/twitter.png +0 -0
  76. data/assets/theme/j1/modules/lightGallery/css/theme/uno/icons/video1-w.png +0 -0
  77. data/assets/theme/j1/modules/lightGallery/css/theme/uno/icons/zoom-w.png +0 -0
  78. data/assets/theme/j1/modules/lightGallery/css/theme/uno/icons/zoom.png +0 -0
  79. data/assets/theme/j1/modules/lightGallery/css/theme/uno/uno.css +276 -0
  80. data/assets/theme/j1/modules/lightGallery/css/theme/uno/uno.min.css +17 -0
  81. data/assets/theme/j1/modules/lightGallery/js/lightgallery.js +163 -120
  82. data/assets/theme/j1/modules/lightGallery/js/lightgallery.min.js +6 -6
  83. data/assets/theme/j1/modules/lightGallery/js/plugins/j1/lg-thumbnail.0.js +495 -0
  84. data/assets/theme/j1/modules/lightGallery/js/plugins/j1/lg-thumbnail.1.js +513 -0
  85. data/assets/theme/j1/modules/lightGallery/js/plugins/j1/lg-video.0.js +553 -0
  86. data/assets/theme/j1/modules/lightGallery/js/plugins/j1/lg-video.1.js +1 -1
  87. data/assets/theme/j1/modules/lightGallery/js/plugins/j1/lg-video.2.js +914 -0
  88. data/assets/theme/j1/modules/lightGallery/js/plugins/lg-autoplay.js +4 -4
  89. data/assets/theme/j1/modules/lightGallery/js/plugins/lg-autoplay.min.js +5 -5
  90. data/assets/theme/j1/modules/lightGallery/js/plugins/lg-comment.js +5 -5
  91. data/assets/theme/j1/modules/lightGallery/js/plugins/lg-comment.min.js +6 -6
  92. data/assets/theme/j1/modules/lightGallery/js/plugins/lg-fullscreen.js +4 -4
  93. data/assets/theme/j1/modules/lightGallery/js/plugins/lg-fullscreen.min.js +5 -5
  94. data/assets/theme/j1/modules/lightGallery/js/plugins/lg-hash.js +4 -4
  95. data/assets/theme/j1/modules/lightGallery/js/plugins/lg-hash.min.js +5 -6
  96. data/assets/theme/j1/modules/lightGallery/js/plugins/lg-medium-zoom.js +5 -5
  97. data/assets/theme/j1/modules/lightGallery/js/plugins/lg-medium-zoom.min.js +6 -6
  98. data/assets/theme/j1/modules/lightGallery/js/plugins/lg-pager.js +4 -4
  99. data/assets/theme/j1/modules/lightGallery/js/plugins/lg-pager.min.js +5 -5
  100. data/assets/theme/j1/modules/lightGallery/js/plugins/lg-relative-caption.js +179 -0
  101. data/assets/theme/j1/modules/lightGallery/js/plugins/lg-relative-caption.min.js +32 -0
  102. data/assets/theme/j1/modules/lightGallery/js/plugins/lg-rotate.js +4 -4
  103. data/assets/theme/j1/modules/lightGallery/js/plugins/lg-rotate.min.js +6 -6
  104. data/assets/theme/j1/modules/lightGallery/js/plugins/lg-share.js +4 -4
  105. data/assets/theme/j1/modules/lightGallery/js/plugins/lg-share.min.js +6 -7
  106. data/assets/theme/j1/modules/lightGallery/js/plugins/lg-thumbnail.js +27 -20
  107. data/assets/theme/j1/modules/lightGallery/js/plugins/lg-thumbnail.min.js +5 -5
  108. data/assets/theme/j1/modules/lightGallery/js/plugins/lg-video.js +77 -125
  109. data/assets/theme/j1/modules/lightGallery/js/plugins/lg-video.min.js +6 -6
  110. data/assets/theme/j1/modules/lightGallery/js/plugins/lg-vimeo-thumbnail.js +4 -4
  111. data/assets/theme/j1/modules/lightGallery/js/plugins/lg-vimeo-thumbnail.min.js +5 -5
  112. data/assets/theme/j1/modules/lightGallery/js/plugins/lg-zoom.js +11 -5
  113. data/assets/theme/j1/modules/lightGallery/js/plugins/lg-zoom.min.js +5 -5
  114. data/assets/theme/j1/modules/themeSwitcher/js/switcher.js +13 -12
  115. data/assets/theme/j1/modules/videoPlayer/tiktoc/README.md +1 -0
  116. data/assets/theme/j1/modules/videojs/!v8.12.0/css/font/README.md +151 -0
  117. data/assets/theme/j1/modules/videojs/!v8.12.0/css/font/VideoJS.svg +150 -0
  118. data/assets/theme/j1/modules/videojs/!v8.12.0/css/themes/city.css +147 -0
  119. data/assets/theme/j1/modules/videojs/!v8.12.0/css/themes/city.min.css +5 -0
  120. data/assets/theme/j1/modules/videojs/!v8.12.0/css/themes/fantasy.css +113 -0
  121. data/assets/theme/j1/modules/videojs/!v8.12.0/css/themes/fantasy.min.css +5 -0
  122. data/assets/theme/j1/modules/videojs/!v8.12.0/css/themes/forest.css +166 -0
  123. data/assets/theme/j1/modules/videojs/!v8.12.0/css/themes/forest.min.css +5 -0
  124. data/assets/theme/j1/modules/videojs/!v8.12.0/css/themes/sea.css +72 -0
  125. data/assets/theme/j1/modules/videojs/!v8.12.0/css/themes/sea.min.css +5 -0
  126. data/assets/theme/j1/modules/videojs/!v8.12.0/css/themes/uno.css +311 -0
  127. data/assets/theme/j1/modules/videojs/!v8.12.0/css/themes/uno.min.css +19 -0
  128. data/assets/theme/j1/modules/videojs/!v8.12.0/css/videojs.css +1686 -0
  129. data/assets/theme/j1/modules/videojs/!v8.12.0/css/videojs.min.css +13 -0
  130. data/assets/theme/j1/modules/videojs/!v8.12.0/js/video.js +65226 -0
  131. data/assets/theme/j1/modules/videojs/!v8.12.0/js/video.min.js +55 -0
  132. data/assets/theme/j1/modules/videojs/assets/README.md +1 -0
  133. data/assets/theme/j1/modules/videojs/assets/icons/speedometer-medium.svg +35 -0
  134. data/assets/theme/j1/modules/videojs/css/font/VideoJS.ttf +0 -0
  135. data/assets/theme/j1/modules/videojs/css/font/VideoJS.woff +0 -0
  136. data/assets/theme/j1/modules/videojs/css/themes/uno.css +157 -22
  137. data/assets/theme/j1/modules/videojs/css/themes/uno.min.css +1 -1
  138. data/assets/theme/j1/modules/videojs/css/videojs.css +674 -316
  139. data/assets/theme/j1/modules/videojs/css/videojs.min.css +4 -3
  140. data/assets/theme/j1/modules/videojs/js/video.js +15893 -12288
  141. data/assets/theme/j1/modules/videojs/js/video.min.js +22 -23
  142. data/assets/theme/j1/modules/videojs/plugins/controls/aspect-ratio-panel/!examples/index.html +31 -0
  143. data/assets/theme/j1/modules/videojs/plugins/controls/aspect-ratio-panel/LICENSE +19 -0
  144. data/assets/theme/j1/modules/videojs/plugins/controls/aspect-ratio-panel/README.md +69 -0
  145. data/assets/theme/j1/modules/videojs/plugins/controls/aspect-ratio-panel/css/aspect-ratio-panel.css +2 -0
  146. data/assets/theme/j1/modules/videojs/plugins/controls/aspect-ratio-panel/css/aspect-ratio-panel.min.css +2 -0
  147. data/assets/theme/j1/modules/videojs/plugins/controls/aspect-ratio-panel/js/aspect-ratio-panel.js +339 -0
  148. data/assets/theme/j1/modules/videojs/plugins/controls/aspect-ratio-panel/js/aspect-ratio-panel.min.js +2 -0
  149. data/assets/theme/j1/modules/videojs/{js/plugins/controls/autocaption → plugins/controls/autocaption/js}/autocaption.js +0 -5
  150. data/assets/theme/j1/modules/videojs/plugins/controls/persist-settings/!examples/index.html +29 -0
  151. data/assets/theme/j1/modules/videojs/plugins/controls/persist-settings/LICENSE +19 -0
  152. data/assets/theme/j1/modules/videojs/plugins/controls/persist-settings/README.md +90 -0
  153. data/assets/theme/j1/modules/videojs/plugins/controls/persist-settings/js/videojs-persist.js +120 -0
  154. data/assets/theme/j1/modules/videojs/plugins/controls/persist-settings/js/videojs-persist.min.js +2 -0
  155. data/assets/theme/j1/modules/videojs/plugins/controls/playbackrate-adjuster/!examples/index.html +37 -0
  156. data/assets/theme/j1/modules/videojs/plugins/controls/playbackrate-adjuster/LICENSE +19 -0
  157. data/assets/theme/j1/modules/videojs/plugins/controls/playbackrate-adjuster/README.md +61 -0
  158. data/assets/theme/j1/modules/videojs/plugins/controls/playbackrate-adjuster/js/playbackrate-adjuster.js +94 -0
  159. data/assets/theme/j1/modules/videojs/plugins/controls/playbackrate-adjuster/js/playbackrate-adjuster.min.js +20 -0
  160. data/assets/theme/j1/modules/videojs/{js/plugins → plugins}/controls/skipbuttons/README.md +25 -11
  161. data/assets/theme/j1/modules/videojs/{css/plugins/controls → plugins/controls/zoom/css}/zoom.css +7 -6
  162. data/assets/theme/j1/modules/videojs/plugins/controls/zoom/css/zoom.min.css +22 -0
  163. data/assets/theme/j1/modules/videojs/{js/plugins/players/dm → plugins/players/dm/js}/dailymotion.js +1 -1
  164. data/assets/theme/j1/modules/videojs/plugins/players/vm/!unused/vimeo.0.js +521 -0
  165. data/assets/theme/j1/modules/videojs/plugins/players/vm/!unused/vimeo.1.js +605 -0
  166. data/assets/theme/j1/modules/videojs/plugins/players/vm/!unused/vimeo.3.js +643 -0
  167. data/assets/theme/j1/modules/videojs/plugins/players/vm/!unused/vimeo.4.js +583 -0
  168. data/assets/theme/j1/modules/videojs/plugins/players/vm/!unused/vimeo.5.js +665 -0
  169. data/assets/theme/j1/modules/videojs/plugins/players/vm/!unused/vimeo.6.js +642 -0
  170. data/assets/theme/j1/modules/videojs/plugins/players/vm/!unused/vimeo.7.js +673 -0
  171. data/assets/theme/j1/modules/videojs/{js/plugins/players/vm/api → plugins/players/vm/api/js}/vimeo.js +1 -1
  172. data/assets/theme/j1/modules/videojs/{js/plugins/players/vm/api → plugins/players/vm/api/js}/vimeo.min.js +1 -1
  173. data/assets/theme/j1/modules/videojs/{js/plugins/players/vm → plugins/players/vm/js}/vimeo.js +4 -5
  174. data/assets/theme/j1/modules/videojs/plugins/players/vm/js/vimeo.min.js +28 -0
  175. data/assets/theme/j1/modules/videojs/plugins/players/wt/!unused/wistia.0.js +395 -0
  176. data/assets/theme/j1/modules/videojs/plugins/players/wt/!unused/wistia.1.js +401 -0
  177. data/lib/j1/version.rb +1 -1
  178. data/lib/starter_web/README.md +5 -5
  179. data/lib/starter_web/_config.yml +1 -1
  180. data/lib/starter_web/_data/modules/amplitude_playlists.yml +16 -1
  181. data/lib/starter_web/_data/modules/defaults/gallery.yml +3 -3
  182. data/lib/starter_web/_data/modules/gallery.yml +83 -87
  183. data/lib/starter_web/_data/modules/navigator_menu.yml +3 -3
  184. data/lib/starter_web/_data/resources.yml +16 -12
  185. data/lib/starter_web/_data/templates/feed.xml +1 -1
  186. data/lib/starter_web/_plugins/asciidoctor/videojs-block.rb +50 -30
  187. data/lib/starter_web/_plugins/asciidoctor/youtube-block.rb +37 -23
  188. data/lib/starter_web/_plugins/index/lunr.rb +1 -1
  189. data/lib/starter_web/assets/video/poster/vimeo/fall_2011.jpg +0 -0
  190. data/lib/starter_web/package.json +1 -1
  191. data/lib/starter_web/pages/public/tools/tester/videojs_macro_tester.adoc +282 -0
  192. data/lib/starter_web/pages/public/tour/video_data.adoc +1 -0
  193. metadata +221 -106
  194. data/assets/data/swiper_app.2.html +0 -757
  195. data/assets/data/swiper_app.4.html +0 -769
  196. data/assets/theme/j1/modules/videojs/css/plugins/controls/skipbuttons.0.css +0 -32
  197. data/assets/theme/j1/modules/videojs/css/plugins/controls/skipbuttons.1.css +0 -31
  198. data/assets/theme/j1/modules/videojs/css/plugins/controls/zoom.min.css +0 -21
  199. data/assets/theme/j1/modules/videojs/js/plugins/players/vm/vimeo.min.js +0 -16
  200. data/assets/theme/j1/modules/videojs/js/plugins/players/wt/api/src/WistiaPlayer.ts +0 -1617
  201. data/lib/starter_web/assets/video/poster/vimeo/stay_colorful.jpg +0 -0
  202. /data/assets/theme/j1/modules/lightGallery/{css → !v2.7.2/css}/themes/uno/icons/animation-w.png +0 -0
  203. /data/assets/theme/j1/modules/lightGallery/{css → !v2.7.2/css}/themes/uno/icons/customize-w.png +0 -0
  204. /data/assets/theme/j1/modules/lightGallery/{css → !v2.7.2/css}/themes/uno/icons/dynamic-w.png +0 -0
  205. /data/assets/theme/j1/modules/lightGallery/{css → !v2.7.2/css}/themes/uno/icons/facebook-icon.svg +0 -0
  206. /data/assets/theme/j1/modules/lightGallery/{css → !v2.7.2/css}/themes/uno/icons/googleplus-icon.svg +0 -0
  207. /data/assets/theme/j1/modules/lightGallery/{css → !v2.7.2/css}/themes/uno/icons/html5-w.png +0 -0
  208. /data/assets/theme/j1/modules/lightGallery/{css → !v2.7.2/css}/themes/uno/icons/linked-in.png +0 -0
  209. /data/assets/theme/j1/modules/lightGallery/{css → !v2.7.2/css}/themes/uno/icons/module-w.png +0 -0
  210. /data/assets/theme/j1/modules/lightGallery/{css → !v2.7.2/css}/themes/uno/icons/play-button-hover.svg +0 -0
  211. /data/assets/theme/j1/modules/lightGallery/{css → !v2.7.2/css}/themes/uno/icons/play-button.png +0 -0
  212. /data/assets/theme/j1/modules/lightGallery/{css → !v2.7.2/css}/themes/uno/icons/play-button.svg +0 -0
  213. /data/assets/theme/j1/modules/lightGallery/{css → !v2.7.2/css}/themes/uno/icons/responsive-w.png +0 -0
  214. /data/assets/theme/j1/modules/lightGallery/{css → !v2.7.2/css}/themes/uno/icons/thumb-w.png +0 -0
  215. /data/assets/theme/j1/modules/lightGallery/{css → !v2.7.2/css}/themes/uno/icons/touch-w.png +0 -0
  216. /data/assets/theme/j1/modules/lightGallery/{css → !v2.7.2/css}/themes/uno/icons/twitter-icon.svg +0 -0
  217. /data/assets/theme/j1/modules/lightGallery/{css → !v2.7.2/css}/themes/uno/icons/twitter.png +0 -0
  218. /data/assets/theme/j1/modules/lightGallery/{css → !v2.7.2/css}/themes/uno/icons/video1-w.png +0 -0
  219. /data/assets/theme/j1/modules/lightGallery/{css → !v2.7.2/css}/themes/uno/icons/zoom-w.png +0 -0
  220. /data/assets/theme/j1/modules/lightGallery/{css → !v2.7.2/css}/themes/uno/icons/zoom.png +0 -0
  221. /data/assets/theme/j1/modules/lightGallery/{js → !v2.7.2/js}/plugins/j1/j1-video.js +0 -0
  222. /data/assets/theme/j1/modules/lightGallery/{js → !v2.7.2/js}/plugins/j1/j1-video.min.js +0 -0
  223. /data/assets/theme/j1/modules/videoPlayer/dailymotion/js/{!readme → README.md} +0 -0
  224. /data/assets/theme/j1/modules/videoPlayer/tiktoc/{js/player.min.js → player.min.js} +0 -0
  225. /data/assets/theme/j1/modules/videoPlayer/vimeo/js/{!readme → README.md} +0 -0
  226. /data/assets/theme/j1/modules/videoPlayer/wistia/js/{!readme → README.md} +0 -0
  227. /data/assets/theme/j1/modules/videojs/{css → !v8.12.0/css}/font/video-js-cdn.css +0 -0
  228. /data/assets/theme/j1/modules/videojs/{js/plugins → plugins}/controls/autocaption/LICENSE +0 -0
  229. /data/assets/theme/j1/modules/videojs/{js/plugins → plugins}/controls/autocaption/README.md +0 -0
  230. /data/assets/theme/j1/modules/videojs/{js/plugins/controls/autocaption → plugins/controls/autocaption/js}/autocaption.min.js +0 -0
  231. /data/assets/theme/j1/modules/videojs/{js/plugins/controls/hotkeys/examples → plugins/controls/hotkeys/!examples}/example.html +0 -0
  232. /data/assets/theme/j1/modules/videojs/{js/plugins → plugins}/controls/hotkeys/LICENSE.md +0 -0
  233. /data/assets/theme/j1/modules/videojs/{js/plugins → plugins}/controls/hotkeys/README.md +0 -0
  234. /data/assets/theme/j1/modules/videojs/{js/plugins/controls/hotkeys → plugins/controls/hotkeys/js}/hotkeys.js +0 -0
  235. /data/assets/theme/j1/modules/videojs/{js/plugins/controls/hotkeys → plugins/controls/hotkeys/js}/hotkeys.min.js +0 -0
  236. /data/assets/theme/j1/modules/videojs/{css/plugins/controls → plugins/controls/skipbuttons/css}/skipbuttons.css +0 -0
  237. /data/assets/theme/j1/modules/videojs/{css/plugins/controls → plugins/controls/skipbuttons/css}/skipbuttons.min.css +0 -0
  238. /data/assets/theme/j1/modules/videojs/{js/plugins/controls/skipbuttons → plugins/controls/skipbuttons/js}/skipbuttons.js +0 -0
  239. /data/assets/theme/j1/modules/videojs/{js/plugins/controls/skipbuttons → plugins/controls/skipbuttons/js}/skipbuttons.min.js +0 -0
  240. /data/assets/theme/j1/modules/videojs/{js/plugins/controls/zoom/examples → plugins/controls/zoom/!examples}/index.html +0 -0
  241. /data/assets/theme/j1/modules/videojs/{js/plugins/controls/zoom/examples → plugins/controls/zoom/!examples}/index.js +0 -0
  242. /data/assets/theme/j1/modules/videojs/{js/plugins/controls/zoom/examples → plugins/controls/zoom/!examples}/styles.css +0 -0
  243. /data/assets/theme/j1/modules/videojs/{js/plugins → plugins}/controls/zoom/LICENSE.md +0 -0
  244. /data/assets/theme/j1/modules/videojs/{js/plugins → plugins}/controls/zoom/README.md +0 -0
  245. /data/assets/theme/j1/modules/videojs/{js/plugins/controls/zoom → plugins/controls/zoom/js}/zoom.js +0 -0
  246. /data/assets/theme/j1/modules/videojs/{js/plugins/controls/zoom → plugins/controls/zoom/js}/zoom.min.js +0 -0
  247. /data/assets/theme/j1/modules/videojs/{js/plugins/players/dm/examples → plugins/players/dm/!examples}/dailymotion-controls.html +0 -0
  248. /data/assets/theme/j1/modules/videojs/{js/plugins/players/dm/examples → plugins/players/dm/!examples}/dailymotion-javascript.html +0 -0
  249. /data/assets/theme/j1/modules/videojs/{js/plugins/players/dm/examples → plugins/players/dm/!examples}/dailymotion-playlist.html +0 -0
  250. /data/assets/theme/j1/modules/videojs/{js/plugins/players/dm/examples → plugins/players/dm/!examples}/global-parameters.html +0 -0
  251. /data/assets/theme/j1/modules/videojs/{js/plugins/players/dm/examples → plugins/players/dm/!examples}/simple.html +0 -0
  252. /data/assets/theme/j1/modules/videojs/{js/plugins/players/dm/examples → plugins/players/dm/!examples}/switch.html +0 -0
  253. /data/assets/theme/j1/modules/videojs/{js/plugins → plugins}/players/dm/LICENSE +0 -0
  254. /data/assets/theme/j1/modules/videojs/{js/plugins/players/dm/doc → plugins/players/dm}/README.md +0 -0
  255. /data/assets/theme/j1/modules/videojs/{js/plugins → plugins}/players/dm/api/LICENSE +0 -0
  256. /data/assets/theme/j1/modules/videojs/{js/plugins/players/dm/api/doc → plugins/players/dm/api}/README.md +0 -0
  257. /data/assets/theme/j1/modules/videojs/{js/plugins/players/dm/api → plugins/players/dm/api/js}/dailymotion.sdk.js +0 -0
  258. /data/assets/theme/j1/modules/videojs/{js/plugins/players/dm/api → plugins/players/dm/api/js}/dailymotion.sdk.min.js +0 -0
  259. /data/assets/theme/j1/modules/videojs/{js/plugins → plugins}/players/dm/icon/scalable/dailymotion.svg +0 -0
  260. /data/assets/theme/j1/modules/videojs/{js/plugins/players/dm → plugins/players/dm/js}/dailymotion.min.js +0 -0
  261. /data/assets/theme/j1/modules/videojs/{js/plugins/players/vm/examples → plugins/players/vm/!examples}/index.html +0 -0
  262. /data/assets/theme/j1/modules/videojs/{js/plugins/players/vm/examples → plugins/players/vm/!examples}/player/index.html +0 -0
  263. /data/assets/theme/j1/modules/videojs/{js/plugins → plugins}/players/vm/LICENSE +0 -0
  264. /data/assets/theme/j1/modules/videojs/{js/plugins/players/vm/doc → plugins/players/vm}/README.md +0 -0
  265. /data/assets/theme/j1/modules/videojs/{js/plugins/players/vm/api/doc → plugins/players/vm/api}/README.md +0 -0
  266. /data/assets/theme/j1/modules/videojs/{js/plugins → plugins}/players/vm/api/css/embed.player.css +0 -0
  267. /data/assets/theme/j1/modules/videojs/{js/plugins → plugins}/players/vm/api/css/embed.player.uno.css +0 -0
  268. /data/assets/theme/j1/modules/videojs/{js/plugins → plugins}/players/vm/api/css/player.css +0 -0
  269. /data/assets/theme/j1/modules/videojs/{js/plugins/players/wt/doc → plugins/players/wt}/README.md +0 -0
  270. /data/assets/theme/j1/modules/videojs/{js/plugins/players/wt/api/doc/Readme.txt → plugins/players/wt/api/README.md} +0 -0
  271. /data/assets/theme/j1/modules/videojs/{js/plugins/players/wt/api → plugins/players/wt/api/js}/wistia.min.js +0 -0
  272. /data/assets/theme/j1/modules/videojs/{js/plugins/players/wt → plugins/players/wt/js}/wistia.js +0 -0
  273. /data/assets/theme/j1/modules/videojs/{js/plugins/players/wt → plugins/players/wt/js}/wistia.min.js +0 -0
  274. /data/assets/theme/j1/modules/videojs/{js/plugins/players/yt/examples → plugins/players/yt/!examples}/global-parameters.html +0 -0
  275. /data/assets/theme/j1/modules/videojs/{js/plugins/players/yt/examples → plugins/players/yt/!examples}/simple.html +0 -0
  276. /data/assets/theme/j1/modules/videojs/{js/plugins/players/yt/examples → plugins/players/yt/!examples}/switch.html +0 -0
  277. /data/assets/theme/j1/modules/videojs/{js/plugins/players/yt/examples → plugins/players/yt/!examples}/youtube-controls.html +0 -0
  278. /data/assets/theme/j1/modules/videojs/{js/plugins/players/yt/examples → plugins/players/yt/!examples}/youtube-javascript.html +0 -0
  279. /data/assets/theme/j1/modules/videojs/{js/plugins/players/yt/examples → plugins/players/yt/!examples}/youtube-list.html +0 -0
  280. /data/assets/theme/j1/modules/videojs/{js/plugins/players/yt/examples → plugins/players/yt/!examples}/youtube-playlist.html +0 -0
  281. /data/assets/theme/j1/modules/videojs/{js/plugins/players/yt/v3.0.0 → plugins/players/yt/!v3.0.0}/youtube.js +0 -0
  282. /data/assets/theme/j1/modules/videojs/{js/plugins/players/yt/v3.0.0 → plugins/players/yt/!v3.0.0}/youtube.min.js +0 -0
  283. /data/assets/theme/j1/modules/videojs/{js/plugins → plugins}/players/yt/LICENSE +0 -0
  284. /data/assets/theme/j1/modules/videojs/{js/plugins/players/yt/doc → plugins/players/yt}/README.md +0 -0
  285. /data/assets/theme/j1/modules/videojs/{js/plugins/players/yt/api → plugins/players/yt/api/js}/youtube.min.js +0 -0
  286. /data/assets/theme/j1/modules/videojs/{js/plugins/players/yt → plugins/players/yt/js}/youtube.js +0 -0
  287. /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
+ }));