j1-template 2024.3.24 → 2024.3.25

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 (168) hide show
  1. checksums.yaml +4 -4
  2. data/assets/data/apps/amplitudehtml +1147 -0
  3. data/assets/data/apps/gallery.html +342 -0
  4. data/assets/data/{masonry.html → apps/masonry.html} +22 -9
  5. data/assets/data/apps/swiper.html +901 -0
  6. data/assets/data/masonry_app.html +521 -0
  7. data/assets/theme/j1/modules/lightGallery/css/theme/uno/uno.css +21 -13
  8. data/assets/theme/j1/modules/lightGallery/css/theme/uno/uno.min.css +1 -2
  9. data/assets/theme/j1/modules/lightGallery/js/lightgallery.js +14 -13
  10. data/assets/theme/j1/modules/lightGallery/js/lightgallery.min.js +1 -1
  11. data/assets/theme/j1/modules/lightGallery/js/plugins/lg-video.js +265 -226
  12. data/assets/theme/j1/modules/lightGallery/js/plugins/lg-video.min.js +1 -1
  13. data/assets/theme/j1/modules/videojs/css/themes/uno.css +12 -2
  14. data/assets/theme/j1/modules/videojs/css/videojs.css +2 -3
  15. data/assets/theme/j1/modules/videojs/css/videojs.min.css +1 -1
  16. data/assets/theme/j1/modules/videojs/plugins/controls/zoom/css/zoom.css +55 -55
  17. data/assets/theme/j1/modules/videojs/plugins/controls/zoom/css/zoom.min.css +2 -1
  18. data/assets/theme/j1/modules/videojs/plugins/controls/zoom/js/zoom.js +590 -382
  19. data/assets/theme/j1/modules/videojs/plugins/controls/zoom/js/zoom.min.js +1 -1
  20. data/assets/theme/j1/modules/videojs/plugins/j1_core/template.min.js +31 -0
  21. data/assets/theme/j1/modules/videojs/plugins/players/dm/!examples/{simple.html → index.html} +11 -10
  22. data/assets/theme/j1/modules/videojs/plugins/players/dm/js/dailymotion.0.js +647 -0
  23. data/assets/theme/j1/modules/videojs/plugins/players/dm/js/dailymotion.1.js +653 -0
  24. data/assets/theme/j1/modules/videojs/plugins/players/vm/!examples/{player → iframe_api}/index.html +3 -3
  25. data/assets/theme/j1/modules/videojs/plugins/players/vm/!examples/{index.html → videojs_api/index.html} +7 -3
  26. data/assets/theme/j1/modules/videojs/plugins/players/vm/api/js/v2.21.0/vimeo.js +3562 -0
  27. data/assets/theme/j1/modules/videojs/plugins/players/vm/api/js/v2.21.0/vimeo.min.js +36 -0
  28. data/assets/theme/j1/modules/videojs/plugins/players/vm/api/js/vimeo.js +451 -1849
  29. data/assets/theme/j1/modules/videojs/plugins/players/vm/api/js/vimeo.min.js +2 -14
  30. data/assets/theme/j1/modules/videojs/plugins/players/vm/js/LICENSE +21 -0
  31. data/assets/theme/j1/modules/videojs/plugins/players/vm/js/README.md +54 -0
  32. data/assets/theme/j1/modules/videojs/plugins/players/vm/js/old/vimeo.js +666 -0
  33. data/assets/theme/j1/modules/videojs/plugins/players/vm/js/old/vimeo.min.js +28 -0
  34. data/assets/theme/j1/modules/videojs/plugins/players/vm/js/vimeo.js +2318 -548
  35. data/assets/theme/j1/modules/videojs/plugins/players/vm/js/vimeo.min.js +12 -18
  36. data/assets/theme/j1/modules/videojs/plugins/players/yt/!examples/{simple.html → index.html} +15 -6
  37. data/assets/theme/j1/modules/videojs/plugins/players/yt/js/youtube.js +12 -5
  38. data/assets/theme/j1/modules/videojs/plugins/players/yt/js/youtube.min.js +1 -1
  39. data/lib/j1/version.rb +1 -1
  40. data/lib/starter_web/Gemfile +1 -1
  41. data/lib/starter_web/README.md +5 -5
  42. data/lib/starter_web/_config.yml +2 -2
  43. data/lib/starter_web/_data/blocks/banner.yml +1 -1
  44. data/lib/starter_web/_data/j1_config.yml +1 -1
  45. data/lib/starter_web/_data/layouts/home.yml +1 -1
  46. data/lib/starter_web/_data/modules/authentication.yml +1 -2
  47. data/lib/starter_web/_data/modules/defaults/masonry.yml +1 -1
  48. data/lib/starter_web/_data/modules/gallery.yml +35 -24
  49. data/lib/starter_web/_data/modules/log4javascript.yml +1 -1
  50. data/lib/starter_web/_data/modules/masonry.yml +30 -14
  51. data/lib/starter_web/_data/modules/navigator.yml +1 -1
  52. data/lib/starter_web/_data/modules/navigator_menu.yml +12 -8
  53. data/lib/starter_web/_data/templates/feed.xml +1 -1
  54. data/lib/starter_web/_plugins/asciidoctor/dailymotion-block.rb +206 -24
  55. data/lib/starter_web/_plugins/index/lunr.rb +1 -1
  56. data/lib/starter_web/assets/image/module/attic/1920x1280/admin-dashboard-bootstrap.jpg +0 -0
  57. data/lib/starter_web/assets/image/module/attic/1920x1280/alexander-redl.jpg +0 -0
  58. data/lib/starter_web/assets/image/module/attic/1920x1280/alexander-shatov.jpg +0 -0
  59. data/lib/starter_web/assets/image/module/attic/1920x1280/alexey-ruban.jpg +0 -0
  60. data/lib/starter_web/assets/image/module/attic/1920x1280/andrea-badino.jpg +0 -0
  61. data/lib/starter_web/assets/image/module/attic/1920x1280/bootstrap-modal.jpg +0 -0
  62. data/lib/starter_web/assets/image/module/attic/1920x1280/bp-miller.jpg +0 -0
  63. data/lib/starter_web/assets/image/module/attic/1920x1280/brad-neathery.jpg +0 -0
  64. data/lib/starter_web/assets/image/module/attic/1920x1280/brigitta-schneiter.jpg +0 -0
  65. data/lib/starter_web/assets/image/module/attic/1920x1280/build-with-gemini.jpg +0 -0
  66. data/lib/starter_web/assets/image/module/attic/1920x1280/clem-onojeghuo.jpg +0 -0
  67. data/lib/starter_web/assets/image/module/attic/1920x1280/eleni-afiontzi.jpg +0 -0
  68. data/lib/starter_web/assets/image/module/attic/1920x1280/fly-d.jpg +0 -0
  69. data/lib/starter_web/assets/image/module/attic/1920x1280/guillaume-bolduc.jpg +0 -0
  70. data/lib/starter_web/assets/image/module/attic/1920x1280/ideas-start-here-1920x1280.jpg +0 -0
  71. data/lib/starter_web/assets/image/module/attic/1920x1280/isaac-davis.jpg +0 -0
  72. data/lib/starter_web/assets/image/module/attic/1920x1280/j1-launch.jpg +0 -0
  73. data/lib/starter_web/assets/image/module/attic/1920x1280/j1-mockup.jpg +0 -0
  74. data/lib/starter_web/assets/image/module/attic/1920x1280/john-schnobrich-2.jpg +0 -0
  75. data/lib/starter_web/assets/image/module/attic/1920x1280/josep-martins.jpg +0 -0
  76. data/lib/starter_web/assets/image/module/attic/1920x1280/josh-liu.jpg +0 -0
  77. data/lib/starter_web/assets/image/module/attic/1920x1280/kelly-sikkemal.jpg +0 -0
  78. data/lib/starter_web/assets/image/module/attic/1920x1280/kira-auf-der-heide.jpg +0 -0
  79. data/lib/starter_web/assets/image/module/attic/1920x1280/kristopher-roller.jpg +0 -0
  80. data/lib/starter_web/assets/image/module/attic/1920x1280/markus-spiske.jpg +0 -0
  81. data/lib/starter_web/assets/image/module/attic/1920x1280/martin-sanchez.jpg +0 -0
  82. data/lib/starter_web/assets/image/module/attic/1920x1280/material_symbols.jpg +0 -0
  83. data/lib/starter_web/assets/image/module/attic/1920x1280/matthaeus.jpg +0 -0
  84. data/lib/starter_web/assets/image/module/attic/1920x1280/melanie-deziel.jpg +0 -0
  85. data/lib/starter_web/assets/image/module/attic/1920x1280/nasa.jpg +0 -0
  86. data/lib/starter_web/assets/image/module/attic/1920x1280/quino-al-2.jpg +0 -0
  87. data/lib/starter_web/assets/image/module/attic/1920x1280/stories-ink-tattoo-care.jpg +0 -0
  88. data/lib/starter_web/assets/image/module/attic/1920x1280/towfiqu-barbhuiya.jpg +0 -0
  89. data/lib/starter_web/collections/posts/public/featured/_posts/0000-00-00-welcome-to-j1.adoc.erb +1 -1
  90. data/lib/starter_web/collections/posts/public/featured/_posts/2022-02-01-about-j1.adoc +2 -2
  91. data/lib/starter_web/collections/posts/public/featured/_posts/2023-10-18-url-types.adoc +2 -2
  92. data/lib/starter_web/config.ru +1 -1
  93. data/lib/starter_web/dot.gitattributes +1 -1
  94. data/lib/starter_web/index.html +8 -8
  95. data/lib/starter_web/package.json +1 -1
  96. data/lib/starter_web/pages/public/about/features.adoc +5 -5
  97. data/lib/starter_web/pages/public/about/reporting_issues.adoc +5 -5
  98. data/lib/starter_web/pages/public/about/site.adoc +14 -10
  99. data/lib/starter_web/pages/public/asciidoc_skeletons/documentation/000_intro.adoc +1 -1
  100. data/lib/starter_web/pages/public/asciidoc_skeletons/documentation/100_converter.adoc +1 -1
  101. data/lib/starter_web/pages/public/asciidoc_skeletons/documentation/200_themes.adoc +1 -1
  102. data/lib/starter_web/pages/public/asciidoc_skeletons/documentation/documentation.adoc +1 -1
  103. data/lib/starter_web/pages/public/asciidoc_skeletons/multi-document/multi.adoc +1 -1
  104. data/lib/starter_web/pages/public/asciidoc_skeletons/simple-document/simple.adoc +1 -1
  105. data/lib/starter_web/pages/public/blog/navigator/archive/allview.html +1 -1
  106. data/lib/starter_web/pages/public/blog/navigator/archive/categoryview.html +1 -1
  107. data/lib/starter_web/pages/public/blog/navigator/archive/dateview.html +1 -1
  108. data/lib/starter_web/pages/public/blog/navigator/archive/tagview.html +1 -1
  109. data/lib/starter_web/pages/public/blog/navigator/index.html +1 -1
  110. data/lib/starter_web/pages/public/learn/bookshelf/article_previewer/viewer_biography.adoc +1 -1
  111. data/lib/starter_web/pages/public/learn/bookshelf/article_previewer/viewer_fantasy.adoc +1 -1
  112. data/lib/starter_web/pages/public/learn/bookshelf/article_previewer/viewer_romance.adoc +1 -1
  113. data/lib/starter_web/pages/public/learn/bookshelf/jekyll_collections.adoc +1 -1
  114. data/lib/starter_web/pages/public/learn/bookshelf/viewer_all_books.adoc +1 -1
  115. data/lib/starter_web/pages/public/learn/where_to_go.adoc +1 -1
  116. data/lib/starter_web/pages/public/legal/en/100_copyright.adoc +3 -3
  117. data/lib/starter_web/pages/public/legal/en/200_impress.adoc +3 -3
  118. data/lib/starter_web/pages/public/legal/en/300_privacy.adoc +3 -3
  119. data/lib/starter_web/pages/public/legal/en/400_comment_policy.adoc +3 -3
  120. data/lib/starter_web/pages/public/panels/intro_panel/panel.adoc +1 -4
  121. data/lib/starter_web/pages/public/plans/plans.adoc +1 -1
  122. data/lib/starter_web/pages/public/tools/previewer/preview_bootstrap_theme.adoc +1 -1
  123. data/lib/starter_web/pages/public/tools/tester/videojs_macro_tester.adoc +116 -43
  124. data/lib/starter_web/pages/public/tour/_includes/documents/419_advanced_modals_demo.asciidoc +1 -1
  125. data/lib/starter_web/pages/public/tour/video_data.adoc +28 -22
  126. metadata +25 -49
  127. data/assets/theme/j1/modules/videojs/plugins/players/dm/!examples/dailymotion-controls.html +0 -18
  128. data/assets/theme/j1/modules/videojs/plugins/players/dm/!examples/dailymotion-javascript.html +0 -28
  129. data/assets/theme/j1/modules/videojs/plugins/players/dm/!examples/dailymotion-playlist.html +0 -19
  130. data/assets/theme/j1/modules/videojs/plugins/players/dm/!examples/global-parameters.html +0 -30
  131. data/assets/theme/j1/modules/videojs/plugins/players/dm/!examples/switch.html +0 -39
  132. data/assets/theme/j1/modules/videojs/plugins/players/yt/!examples/global-parameters.html +0 -34
  133. data/assets/theme/j1/modules/videojs/plugins/players/yt/!examples/switch.html +0 -39
  134. data/assets/theme/j1/modules/videojs/plugins/players/yt/!examples/youtube-controls.html +0 -20
  135. data/assets/theme/j1/modules/videojs/plugins/players/yt/!examples/youtube-javascript.html +0 -29
  136. data/assets/theme/j1/modules/videojs/plugins/players/yt/!examples/youtube-list.html +0 -21
  137. data/assets/theme/j1/modules/videojs/plugins/players/yt/!examples/youtube-playlist.html +0 -21
  138. data/lib/starter_web/assets/image/module/attic/1920x1280/j1-content-mockup-2.jpg +0 -0
  139. data/lib/starter_web/assets/image/module/attic/1920x1280/j1-content-mockup-3.jpg +0 -0
  140. data/lib/starter_web/assets/image/module/attic/1920x1280/j1-starter-mockup-1.jpg +0 -0
  141. data/lib/starter_web/assets/image/module/attic/admin-dashboard-bootstrap-1280x600.jpg +0 -0
  142. data/lib/starter_web/assets/image/module/attic/alice-donovan-rouse-2.jpg +0 -0
  143. data/lib/starter_web/assets/image/module/attic/building-blocks-1920x1280.jpg +0 -0
  144. data/lib/starter_web/assets/image/module/attic/christina-1920x1280.jpg +0 -0
  145. data/lib/starter_web/assets/image/module/attic/franck-1920x1280.jpg +0 -0
  146. data/lib/starter_web/assets/image/module/attic/giammarco-boscaro-1920x1280.jpg +0 -0
  147. data/lib/starter_web/assets/image/module/attic/jessica-ruscello-1920x1280.jpg +0 -0
  148. data/lib/starter_web/assets/image/module/attic/joanna-kosinska-1920x1280.jpg +0 -0
  149. data/lib/starter_web/assets/image/module/attic/leon-1920x1280.jpg +0 -0
  150. data/lib/starter_web/assets/image/module/attic/lianhao-1920x1280.jpg +0 -0
  151. data/lib/starter_web/assets/image/module/attic/library-1920x1280.jpg +0 -0
  152. data/lib/starter_web/assets/image/module/attic/markus-krisetya-1920x1280.jpg +0 -0
  153. data/lib/starter_web/assets/image/module/attic/markus-spiske-1920x1280.jpg +0 -0
  154. data/lib/starter_web/assets/image/module/attic/markus-spiske4-1920x1280.jpg +0 -0
  155. data/lib/starter_web/assets/image/module/attic/matthaeus-1920x1280.jpg +0 -0
  156. data/lib/starter_web/assets/image/module/attic/matthew-dockery-1920x1280.jpg +0 -0
  157. data/lib/starter_web/assets/image/module/attic/no-time-1920x1280.jpg +0 -0
  158. data/lib/starter_web/assets/image/module/attic/rirri-1920x1280.jpg +0 -0
  159. data/lib/starter_web/assets/image/module/attic/shubham-dhage-1920x1280.jpg +0 -0
  160. data/lib/starter_web/assets/image/module/attic/shutterstock_sponsor-1920x1280.jpg +0 -0
  161. data/lib/starter_web/assets/image/module/attic/sigmund-1920x1280.jpg +0 -0
  162. data/lib/starter_web/assets/image/module/attic/szabo-viktor-1920x1280.jpg +0 -0
  163. data/lib/starter_web/assets/image/module/attic/themes-1920x1280-bw.jpg +0 -0
  164. data/lib/starter_web/assets/image/module/attic/tldr-1920x800.jpg +0 -0
  165. data/lib/starter_web/assets/image/module/attic/vladislav-klapin-1920x1280.jpg +0 -0
  166. data/lib/starter_web/assets/image/module/attic/yellow-cactus-1920x1280.jpg +0 -0
  167. /data/assets/theme/j1/modules/videojs/plugins/players/vm/{LICENSE → js/old/LICENSE} +0 -0
  168. /data/assets/theme/j1/modules/videojs/plugins/players/vm/{README.md → js/old/README.md} +0 -0
@@ -18,4 +18,4 @@
18
18
  # -----------------------------------------------------------------------------
19
19
  */
20
20
 
21
- !function(t,s){"object"==typeof exports&&"undefined"!=typeof module?module.exports=s(require("video.js")):"function"==typeof define&&define.amd?define(["video.js"],s):(t="undefined"!=typeof globalThis?globalThis:t||self)["@theonlyducks/videojs-zoom"]=s(t.videojs)}(this,(function(t){"use strict";const s=t.getComponent("Button"),e=t.getPlugin("plugin"),o=t.getComponent("Component"),n=.2,i={zoom:1,moveX:0,moveY:0,flip:"+",rotate:0};class a{static _instance=null;constructor(){this._listeners=[]}static getInstance(){return a._instance||(a._instance=new a),a._instance}subscribe(t,s){this._listeners.push({event:t,callback:s})}notify(t,s){this._listeners.forEach((e=>{if(e.event===t)return e.callback(s)}))}}class l{constructor(t,s){this.player=t.el(),this.plugin=s.plugin,this.observer=a.getInstance(),t.on("playing",(()=>{this._updateSalt()})),this.observer.subscribe("change",(t=>{this.state={...t,saltMoveX:70,saltMoveY:70},this._updateSalt()}))}_updateSalt(){this.state.saltMoveX=this.player.offsetWidth*n/2,this.state.saltMoveY=this.player.offsetHeight*n/2}_zoom(){this.plugin.zoom(this.state.zoom),this.plugin.listeners.change(this.state)}zoomIn(){this.state.zoom>=9.8||(this.state.moveCount++,this.state.zoom+=n,this.plugin.zoom(this.state.zoom),this.plugin.listeners.change(this.state))}zoomOut(){this.state.zoom<=1||(this.state.moveCount--,this.state.zoom-=n,this.plugin.zoom(this.state.zoom),this.plugin.move(0,0),this.plugin.listeners.change(this.state))}_move(){this.plugin.move(this.state.moveX,this.state.moveY),this.plugin.listeners.change(this.state)}moveUp(){const t=this.state.moveY+this.state.saltMoveY;this.state.moveCount*this.state.saltMoveY<t||(this._updateSalt(),this.state.moveY+=this.state.saltMoveY,this._move())}moveDown(){const t=this.state.moveY-this.state.saltMoveY;-(this.state.moveCount*this.state.saltMoveY)>t||(this._updateSalt(),this.state.moveY-=this.state.saltMoveY,this._move())}reset(){this.state.zoom=1,this.state.moveX=0,this.state.moveY=0,this.state.rotate=0,this.state.moveCount=0,this.plugin.zoom(1),this.plugin.flip("+"),this.plugin.rotate(0),this.plugin.move(0,0),this.plugin.listeners.change(this.state)}moveLeft(){const t=this.state.moveX+this.state.saltMoveX;this.state.moveCount*this.state.saltMoveX<t||(this._updateSalt(),this.state.moveX+=this.state.saltMoveX,this._move())}moveRight(){const t=this.state.moveX-this.state.saltMoveX;-(this.state.moveCount*this.state.saltMoveX)>t||(this._updateSalt(),this.state.moveX-=this.state.saltMoveX,this._move())}_rotate(){this.plugin.rotate(this.state.rotate),this.plugin.listeners.change(this.state)}rotate(){this.state.rotate-=90,-360===this.state.rotate&&(this.state.rotate=0),this._rotate()}_flip(){this.plugin.flip(this.state.flip),this.plugin.listeners.change(this.state)}flip(){this.state.flip="+"===this.state.flip?"-":"+",this._flip()}}class h{constructor(){this.content=null,this._createContent()}getContent(){return this.content}_createContent(){this.content='\n\t\t\t<div class="vjs-zoom-duck__container--row">\n\t\t\t\t<button id="vjs-zoom-duck__zoomIn" class="vjs-zoom-duck__button">\n\t\t\t\t\t<span class="vjs-zoom-icons">add</span>\n\t\t\t\t</button>\n\t\t\t\t<span class="vjs-zoom-duck__space"></span>\n\t\t\t\t<button id="vjs-zoom-duck__zoomOut" class="vjs-zoom-duck__button">\n\t\t\t\t\t<span class="vjs-zoom-icons">remove</span>\n\t\t\t\t</button>\n\t\t\t</div>\n\t\t\t<div class="vjs-zoom-duck__container--row">\n\t\t\t\t<span class="vjs-zoom-duck__space"></span>\n\t\t\t\t<button id="vjs-zoom-duck__moveUp" class="vjs-zoom-duck__button">\n\t\t\t\t\t<span class="vjs-zoom-icons">arrow_drop_up</span>\n\t\t\t\t</button>\n\t\t\t\t<span class="vjs-zoom-duck__space"></span>\n\t\t\t</div>\n\t\t\t<div class="vjs-zoom-duck__container--row">\n\t\t\t\t<button id="vjs-zoom-duck__moveLeft" class="vjs-zoom-duck__button">\n\t\t\t\t\t<span class="vjs-zoom-icons">arrow_left</span>\n\t\t\t\t</button>\n\t\t\t\t<button id="vjs-zoom-duck__reset" class="vjs-zoom-duck__button">\n\t\t\t\t\t<span class="vjs-zoom-icons">fiber_manual_record</span>\n\t\t\t\t</button>\n\t\t\t\t<button id="vjs-zoom-duck__moveRight" class="vjs-zoom-duck__button">\n\t\t\t\t\t<span class="vjs-zoom-icons">arrow_right</span>\n\t\t\t\t</button>\n\t\t\t</div>\n\t\t\t<div class="vjs-zoom-duck__container--row">\n\t\t\t\t<span class="vjs-zoom-duck__space"></span>\n\t\t\t\t<button id="vjs-zoom-duck__moveDown" class="vjs-zoom-duck__button">\n\t\t\t\t\t<span class="vjs-zoom-icons">arrow_drop_down</span>\n\t\t\t\t</button>\n\t\t\t\t<span class="vjs-zoom-duck__space"></span>\n\t\t\t</div>\n\t\t\t<div class="vjs-zoom-duck__container--row">\n\t\t\t\t<button id="vjs-zoom-duck__rotate" class="vjs-zoom-duck__button">\n\t\t\t\t\t<span class="vjs-zoom-icons">rotate_left</span>\n\t\t\t\t</button>\n\t\t\t\t<span class="vjs-zoom-duck__space"></span>\n\t\t\t\t<button id="vjs-zoom-duck__flip" class="vjs-zoom-duck__button">\n\t\t\t\t\t<span class="vjs-zoom-icons">swap_horiz</span>\n\t\t\t\t</button>\n\t\t\t</div>\n\t\t'}}class c extends e{constructor(s){let e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};super(s,e),t.log("[~Zoom Plugin] start ",e),this.player=s.el(),this.listeners={click:()=>{},change:()=>{}};var o=t.VERSION<="7.10.0"?t.mergeOptions:t.obj.merge;this.state=o(i,e),this.player.style.overflow="hidden",this.state.flip="+",this.state.moveCount=Math.round((this.state.zoom-1)/n),s.getChild("ControlBar").addChild("ZoomButton"),s.addChild("ZoomModal",{plugin:this,state:this.state}),this._observer=a.getInstance(),this._setTransform()}zoom(t){if(t<=0)throw new Error("Zoom value invalid");this.state.zoom=t,this.state.moveCount=Math.round((this.state.zoom-1)/n),this._setTransform()}rotate(t){this.state.rotate=t,this._setTransform()}move(t,s){this.state.moveX=t,this.state.moveY=s,this._setTransform()}flip(t){this.state.flip=t,this._setTransform()}toggle(){const[t]=this.player.getElementsByClassName("vjs-zoom-duck__container");t.classList.toggle("open")}listen(t,s){this.listeners[t]=s}_notify(){this._observer.notify("change",this.state)}_setTransform(){const[t]=this.player.getElementsByTagName("video");t.style.transform=`\n\t\t\ttranslate(${this.state.moveX}px, ${this.state.moveY}px)\n\t\t\tscale(${this.state.flip}${this.state.zoom}, ${this.state.zoom})\n\t\t\trotate(${this.state.rotate}deg)\n\t\t`,this._notify()}}return t.registerComponent("ZoomModal",class extends o{constructor(t,s){super(t,s),this.player=t.el(),this.plugin=s.plugin,this.function=new l(t,s),t.on("playing",(()=>{this.listeners()}))}createEl(){const s=t.dom.createEl("div",{className:"vjs-zoom-duck__container"}),e=new h;return s.innerHTML=e.getContent(),s}listeners(){let t=this.player.getElementsByClassName("vjs-zoom-duck__button");t=Array.from(t),t.map((t=>{const[,s]=t.id.split("__");t.onclick=()=>this.function[s]()}))}toggle(){const[t]=this.player.getElementsByClassName("vjs-zoom-duck__container");t.classList.toggle("open"),this.plugin.listeners.click()}open(){const[t]=this.player.getElementsByClassName("vjs-zoom-duck__container");t.classList.add("open"),this.plugin.listeners.click()}close(){const[t]=this.player.getElementsByClassName("vjs-zoom-duck__container");t.classList.remove("open"),this.plugin.listeners.click()}}),t.registerComponent("ZoomButton",class extends s{constructor(t,s){super(t,s),this.isOpen=!1,t.on("useractive",(()=>{if(!this.isOpen)return;this.player().getChild("ZoomModal").open()})),t.on("userinactive",(()=>{if(!this.isOpen)return;this.player().getChild("ZoomModal").close()}))}buildCSSClass(){return`vjs-zoom-duck ${super.buildCSSClass()}`}handleClick(){const s=this.player().getChild("ZoomModal");t.log("[~Zoom Plugin] button handleClick"),this.isOpen=!this.isOpen,s.toggle()}}),t.registerPlugin("zoomPlugin",c),c}));
21
+ !function(t,s){"object"==typeof exports&&"undefined"!=typeof module?module.exports=s(require("video.js")):"function"==typeof define&&define.amd?define(["video.js"],s):(t="undefined"!=typeof globalThis?globalThis:t||self)["@theonlyducks/videojs-zoom"]=s(t.videojs)}(this,(function(t){"use strict";const s=t.getComponent("Button"),o=t.getPlugin("plugin"),n=t.getComponent("Component"),e=.2,i={zoom:1,moveX:0,moveY:0,flip:"+",rotate:0,showZoom:!0,showMove:!0,showRotate:!0,gestureHandler:!1};class a{static _instance=null;constructor(){this._listeners=[]}static getInstance(){return a._instance||(a._instance=new a),a._instance}subscribe(t,s){this._listeners.push({event:t,callback:s})}notify(t,s){this._listeners.forEach((o=>{if(o.event===t)return o.callback(s)}))}}class l{constructor(t,s){this.player=t.el(),this.plugin=s.plugin,this.observer=a.getInstance(),t.on("playing",(()=>{this._updateSalt()})),this.observer.subscribe("change",(t=>{this.state={...t,saltMoveX:70,saltMoveY:70},this._updateSalt()}))}_updateSalt(){this.state.saltMoveX=this.player.offsetWidth*e/2,this.state.saltMoveY=this.player.offsetHeight*e/2}_zoom(){this.plugin.zoom(this.state.zoom),this.plugin.listeners.change(this.state)}zoomIn(){this.state.zoom>=9.8||(this.state.moveCount++,this.state.zoom+=e,this.plugin.zoom(this.state.zoom),this.plugin.listeners.change(this.state))}zoomOut(){this.state.zoom<=1||(this.state.moveCount--,this.state.zoom-=e,this.plugin.zoom(this.state.zoom),this.plugin.move(0,0),this.plugin.listeners.change(this.state))}_move(){this.plugin.move(this.state.moveX,this.state.moveY),this.plugin.listeners.change(this.state)}moveUp(){const t=this.state.moveY+this.state.saltMoveY;this.state.moveCount*this.state.saltMoveY<t||(this._updateSalt(),this.state.moveY+=this.state.saltMoveY,this._move())}moveDown(){const t=this.state.moveY-this.state.saltMoveY;-(this.state.moveCount*this.state.saltMoveY)>t||(this._updateSalt(),this.state.moveY-=this.state.saltMoveY,this._move())}moveX(t){const s=this._getMoveYAvailable();this.state.moveY=Math.max(-s,Math.min(s,this.state.moveY+t)),this._move()}reset(){this.state.zoom=1,this.state.moveX=0,this.state.moveY=0,this.state.rotate=0,this.state.moveCount=0,this.plugin.zoom(1),this.plugin.flip("+"),this.plugin.rotate(0),this.plugin.move(0,0),this.plugin.listeners.change(this.state)}moveLeft(){const t=this.state.moveX+this.state.saltMoveX;this.state.moveCount*this.state.saltMoveX<t||(this._updateSalt(),this.state.moveX+=this.state.saltMoveX,this._move())}moveRight(){const t=this.state.moveX-this.state.saltMoveX;-(this.state.moveCount*this.state.saltMoveX)>t||(this._updateSalt(),this.state.moveX-=this.state.saltMoveX,this._move())}moveY(t){const s=this._getMoveXAvailable();this.state.moveX=Math.max(-s,Math.min(s,this.state.moveX+t)),this._move()}_rotate(){this.plugin.rotate(this.state.rotate),this.plugin.listeners.change(this.state)}rotate(){this.state.rotate-=90,-360===this.state.rotate&&(this.state.rotate=0),this._rotate()}_flip(){this.plugin.flip(this.state.flip),this.plugin.listeners.change(this.state)}flip(){this.state.flip="+"===this.state.flip?"-":"+",this._flip()}}class r{constructor(){this.content=null,this._createContent()}getContent(){return this.content}_createContent(){var s=(t.VERSION<="7.10.0"?t.mergeOptions:t.obj.merge)(i,s);this.content="",s.showZoom&&(this.content+='\n <div class="vjs-zoom-buttons__container--row">\n <button id="vjs-zoom-buttons__zoomIn" class="vjs-zoom-buttons__button">\n <span class="vjs-zoom-icons">add</span>\n </button>\n <span class="vjs-zoom-buttons__space"></span>\n <button id="vjs-zoom-buttons__zoomOut" class="vjs-zoom-buttons__button">\n <span class="vjs-zoom-icons">remove</span>\n </button>\n </div>\n '),s.showMove&&(this.content+='\n <div class="vjs-zoom-buttons__container--row">\n <span class="vjs-zoom-buttons__space"></span>\n <button id="vjs-zoom-buttons__moveUp" class="vjs-zoom-buttons__button">\n <span class="vjs-zoom-icons">arrow_drop_up</span>\n </button>\n <span class="vjs-zoom-buttons__space"></span>\n </div>\n <div class="vjs-zoom-buttons__container--row">\n <button id="vjs-zoom-buttons__moveLeft" class="vjs-zoom-buttons__button">\n <span class="vjs-zoom-icons">arrow_left</span>\n </button>\n <button id="vjs-zoom-buttons__reset" class="vjs-zoom-buttons__button">\n <span class="vjs-zoom-icons">fiber_manual_record</span>\n </button>\n <button id="vjs-zoom-buttons__moveRight" class="vjs-zoom-buttons__button">\n <span class="vjs-zoom-icons">arrow_right</span>\n </button>\n </div>\n <div class="vjs-zoom-buttons__container--row">\n <span class="vjs-zoom-buttons__space"></span>\n <button id="vjs-zoom-buttons__moveDown" class="vjs-zoom-buttons__button">\n <span class="vjs-zoom-icons">arrow_drop_down</span>\n </button>\n <span class="vjs-zoom-buttons__space"></span>\n </div>\n '),s.showRotate&&(this.content+='\n <div class="vjs-zoom-buttons__container--row">\n <button id="vjs-zoom-buttons__rotate" class="vjs-zoom-buttons__button">\n <span class="vjs-zoom-icons">rotate_left</span>\n </button>\n <span class="vjs-zoom-buttons__space"></span>\n <button id="vjs-zoom-buttons__flip" class="vjs-zoom-buttons__button">\n <span class="vjs-zoom-icons">swap_horiz</span>\n </button>\n </div>\n ')}_createContent_old(){this.content='\n <div class="vjs-zoom-buttons__container--row">\n <button id="vjs-zoom-buttons__zoomIn" class="vjs-zoom-buttons__button">\n <span class="vjs-zoom-icons">add</span>\n </button>\n <span class="vjs-zoom-buttons__space"></span>\n <button id="vjs-zoom-buttons__zoomOut" class="vjs-zoom-buttons__button">\n <span class="vjs-zoom-icons">remove</span>\n </button>\n </div>\n <div class="vjs-zoom-buttons__container--row">\n <span class="vjs-zoom-buttons__space"></span>\n <button id="vjs-zoom-buttons__moveUp" class="vjs-zoom-buttons__button">\n <span class="vjs-zoom-icons">arrow_drop_up</span>\n </button>\n <span class="vjs-zoom-buttons__space"></span>\n </div>\n <div class="vjs-zoom-buttons__container--row">\n <button id="vjs-zoom-buttons__moveLeft" class="vjs-zoom-buttons__button">\n <span class="vjs-zoom-icons">arrow_left</span>\n </button>\n <button id="vjs-zoom-buttons__reset" class="vjs-zoom-buttons__button">\n <span class="vjs-zoom-icons">fiber_manual_record</span>\n </button>\n <button id="vjs-zoom-buttons__moveRight" class="vjs-zoom-buttons__button">\n <span class="vjs-zoom-icons">arrow_right</span>\n </button>\n </div>\n <div class="vjs-zoom-buttons__container--row">\n <span class="vjs-zoom-buttons__space"></span>\n <button id="vjs-zoom-buttons__moveDown" class="vjs-zoom-buttons__button">\n <span class="vjs-zoom-icons">arrow_drop_down</span>\n </button>\n <span class="vjs-zoom-buttons__space"></span>\n </div>\n <div class="vjs-zoom-buttons__container--row">\n <button id="vjs-zoom-buttons__rotate" class="vjs-zoom-buttons__button">\n <span class="vjs-zoom-icons">rotate_left</span>\n </button>\n <span class="vjs-zoom-buttons__space"></span>\n <button id="vjs-zoom-buttons__flip" class="vjs-zoom-buttons__button">\n <span class="vjs-zoom-icons">swap_horiz</span>\n </button>\n </div>\n '}}class h extends o{constructor(s){var o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};super(s,o),t.log("[~Zoom Plugin] start ",o),this.player=s.el(),this.listeners={click:()=>{},change:()=>{}};var n=t.VERSION<="7.10.0"?t.mergeOptions:t.obj.merge;this.state=n(i,o),this.player.style.overflow="hidden",this.state.flip="+",this.state.moveCount=Math.round((this.state.zoom-1)/e),s.getChild("ControlBar").addChild("ZoomButton"),s.addChild("ZoomModal",{plugin:this,state:this.state}),s.addChild("ZoomGesture",{plugin:this,state:this.state}),this._observer=a.getInstance(),this._observer.notify("plugin",{enabled:this._enabled}),this._setTransform()}zoom(t){if(t<=0)throw new Error("Zoom value invalid");this.state.zoom=t,this.state.moveCount=Math.round((this.state.zoom-1)/e),this._setTransform()}rotate(t){this.state.rotate=t,this._setTransform()}move(t,s){this.state.moveX=t,this.state.moveY=s,this._setTransform()}flip(t){this.state.flip=t,this._setTransform()}toggle(){const[t]=this.player.getElementsByClassName("vjs-zoom-buttons__container");t.classList.toggle("open")}listen(t,s){this.listeners[t]=s}_notify(){this._observer.notify("change",this.state)}_setTransform(){const[t]=this.player.getElementsByTagName("video");t.style.transform=`\n translate(${this.state.moveX}px, ${this.state.moveY}px)\n scale(${this.state.flip}${this.state.zoom}, ${this.state.zoom})\n rotate(${this.state.rotate}deg)\n `,this._notify()}}return t.registerComponent("ZoomModal",class extends n{constructor(t,s){super(t,s),this.player=t.el(),this.plugin=s.plugin,this.function=new l(t,s),t.on("playing",(()=>{this.listeners()}))}createEl(){const s=t.dom.createEl("div",{className:"vjs-zoom-buttons__container"}),o=new r;return s.innerHTML=o.getContent(),s}listeners(){var t=this.player.getElementsByClassName("vjs-zoom-buttons__button");(t=Array.from(t)).map((t=>{const[,s]=t.id.split("__");t.onclick=()=>this.function[s]()}))}toggle(){const[t]=this.player.getElementsByClassName("vjs-zoom-buttons__container");t.classList.toggle("open"),this.plugin.listeners.click()}open(){const[t]=this.player.getElementsByClassName("vjs-zoom-buttons__container");t.classList.add("open"),this.plugin.listeners.click()}close(){const[t]=this.player.getElementsByClassName("vjs-zoom-buttons__container");t.classList.remove("open"),this.plugin.listeners.click()}}),t.registerComponent("ZoomGesture",class extends n{constructor(t,s){super(t,s),this._enabled=!1,this._observer=a.getInstance(),this.pointers={},this.player=t.el(),this.state=s.state,this.function=new l(t,s),t.on("loadstart",(()=>{this.gesture()})),this._observer.subscribe("plugin",(t=>{this._enabled=t.enabled}))}gesture(){this.player.addEventListener("pointerdown",(t=>{this.pointers[t.pointerId]=t})),this.player.addEventListener("pointerup",(t=>{delete this.pointers[t.pointerId],this.player.firstChild.style.pointerEvents=""})),this.player.addEventListener("pointerleave",(t=>{delete this.pointers[t.pointerId]})),this.player.addEventListener("pointermove",(t=>{if(!this._enabled)return;if(!Object.keys(this.pointers).length)return;this.player.firstChild.style.pointerEvents="none";const s=this.pointers[t.pointerId],o=t.clientX-s.clientX,n=t.clientY-s.clientY;this.pointers[t.pointerId]=t,this.function.moveY(o),this.function.moveX(n)})),this.player.addEventListener("wheel",(t=>{t.preventDefault(),t.stopPropagation(),this._enabled&&(this.function.zoomHandler(-.01*t.deltaY),this.function.moveY(0),this.function.moveX(0))}))}}),t.registerComponent("ZoomButton",class extends s{constructor(t,s){super(t,s),this.isOpen=!1,t.on("useractive",(()=>{if(!this.isOpen)return;this.player().getChild("ZoomModal").open()})),t.on("userinactive",(()=>{if(!this.isOpen)return;this.player().getChild("ZoomModal").close()}))}buildCSSClass(){return`vjs-zoom-buttons ${super.buildCSSClass()}`}handleClick(){const s=this.player().getChild("ZoomModal");t.log("[~Zoom Plugin] button handleClick"),this.isOpen=!this.isOpen,s.toggle()}}),t.registerPlugin("zoomButtons",h),h}));