j1-template 2023.9.2 → 2023.10.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (741) hide show
  1. checksums.yaml +4 -4
  2. data/_includes/themes/j1/layouts/content_generator_collection.html +1 -1
  3. data/_includes/themes/j1/layouts/content_generator_news_panel_posts.html +1 -1
  4. data/_includes/themes/j1/layouts/content_generator_page.html +1 -1
  5. data/_includes/themes/j1/layouts/content_generator_post.html +1 -1
  6. data/_includes/themes/j1/layouts/content_generator_raw.html +1 -1
  7. data/_includes/themes/j1/layouts/layout_metadata_generator.html +1 -1
  8. data/_includes/themes/j1/layouts/layout_module_generator.html +1 -1
  9. data/_includes/themes/j1/layouts/layout_resource_generator.html +1 -1
  10. data/_includes/themes/j1/modules/attics/generator.html +1 -1
  11. data/_includes/themes/j1/modules/navigator/generator.html +1 -1
  12. data/_includes/themes/j1/modules/searcher/generator.html +1 -1
  13. data/_includes/themes/j1/modules/searcher/procedures/topsearch.proc +1 -1
  14. data/_includes/themes/j1/procedures/blocks/footer/boxes/about_box.proc +1 -1
  15. data/_includes/themes/j1/procedures/blocks/footer/boxes/contacts_box.proc +1 -1
  16. data/_includes/themes/j1/procedures/blocks/footer/boxes/issue.proc +1 -1
  17. data/_includes/themes/j1/procedures/blocks/footer/boxes/legal_statements.proc +1 -1
  18. data/_includes/themes/j1/procedures/blocks/footer/boxes/links_box.proc +1 -1
  19. data/_includes/themes/j1/procedures/blocks/footer/boxes/news_box.proc +1 -1
  20. data/_includes/themes/j1/procedures/blocks/footer/boxes/social_media_icons.proc +1 -1
  21. data/_includes/themes/j1/procedures/blocks/get_wave.proc +1 -1
  22. data/_includes/themes/j1/procedures/collections/create_collection_article_preview.proc +1 -1
  23. data/_includes/themes/j1/procedures/collections/pager.proc +1 -1
  24. data/_includes/themes/j1/procedures/global/attributes_loader.proc +1 -1
  25. data/_includes/themes/j1/procedures/global/collect_frontmatter_options.proc +1 -1
  26. data/_includes/themes/j1/procedures/global/collect_page_options.proc +1 -1
  27. data/_includes/themes/j1/procedures/global/create_bs_button.proc +1 -1
  28. data/_includes/themes/j1/procedures/global/create_word_cloud.proc +1 -1
  29. data/_includes/themes/j1/procedures/global/date-german.proc +1 -1
  30. data/_includes/themes/j1/procedures/global/get_category.proc +1 -1
  31. data/_includes/themes/j1/procedures/global/get_category_item.proc +1 -1
  32. data/_includes/themes/j1/procedures/global/get_documents_dir.proc +1 -1
  33. data/_includes/themes/j1/procedures/global/get_page_path.proc +1 -1
  34. data/_includes/themes/j1/procedures/global/get_page_url.proc +1 -1
  35. data/_includes/themes/j1/procedures/global/select_color.proc +1 -1
  36. data/_includes/themes/j1/procedures/global/select_font_size.proc +1 -1
  37. data/_includes/themes/j1/procedures/global/select_icon_size.proc +1 -1
  38. data/_includes/themes/j1/procedures/global/select_location.proc +1 -1
  39. data/_includes/themes/j1/procedures/global/set_base_vars_folders.proc +1 -1
  40. data/_includes/themes/j1/procedures/global/set_env_entry_document.proc +1 -1
  41. data/_includes/themes/j1/procedures/global/set_image_block.proc +1 -1
  42. data/_includes/themes/j1/procedures/global/setup.proc +1 -1
  43. data/_includes/themes/j1/procedures/layouts/content_writer.proc +1 -1
  44. data/_includes/themes/j1/procedures/layouts/default_writer.proc +1 -1
  45. data/_includes/themes/j1/procedures/layouts/module_writer.proc +1 -1
  46. data/_includes/themes/j1/procedures/layouts/resource_writer.proc +1 -1
  47. data/_includes/themes/j1/procedures/posts/collate_calendar.proc +1 -1
  48. data/_includes/themes/j1/procedures/posts/collate_list.proc +1 -1
  49. data/_includes/themes/j1/procedures/posts/collate_timeline.proc +1 -1
  50. data/_includes/themes/j1/procedures/posts/create_ad_block.proc +1 -1
  51. data/_includes/themes/j1/procedures/posts/create_series_header.proc +1 -1
  52. data/_includes/themes/j1/procedures/posts/pager.proc +1 -1
  53. data/_layouts/_home.html +1 -1
  54. data/_layouts/autopage_category.html +1 -1
  55. data/_layouts/autopage_collection.html +1 -1
  56. data/_layouts/autopage_collections_tags.html +1 -1
  57. data/_layouts/autopage_tags.html +1 -1
  58. data/_layouts/collection.html +1 -1
  59. data/_layouts/compress.html +1 -1
  60. data/_layouts/default.html +1 -1
  61. data/_layouts/home.html +1 -1
  62. data/_layouts/news_panel_posts.html +1 -1
  63. data/_layouts/page.html +1 -1
  64. data/_layouts/post.html +1 -1
  65. data/_layouts/raw.html +1 -1
  66. data/apps/public/cc/cc.yml +1 -1
  67. data/assets/data/authclient.html +2 -2
  68. data/assets/data/banner.html +5 -5
  69. data/assets/data/carousel.json +1 -1
  70. data/assets/data/cookieconsent.html +2 -2
  71. data/assets/data/fab.html +2 -2
  72. data/assets/data/footer.html +2 -2
  73. data/assets/data/galeries.html +240 -0
  74. data/assets/data/gallery_customizer.html +2 -2
  75. data/assets/data/iso-639-language-codes-flags.json +1 -1
  76. data/assets/data/iso-639-language-codes.json +1 -1
  77. data/assets/data/j1_config.json +1 -1
  78. data/assets/data/masonry.html +99 -86
  79. data/assets/data/masterslider.html +2 -2
  80. data/assets/data/mdi_icons.json +1 -1
  81. data/assets/data/mdil_icons.json +1 -1
  82. data/assets/data/menu.html +2 -2
  83. data/assets/data/mmenu.html +2 -2
  84. data/assets/data/mmenu_sidebar.html +2 -2
  85. data/assets/data/mmenu_toc.html +2 -2
  86. data/assets/data/panel.html +2 -2
  87. data/assets/data/particles.yml +1 -1
  88. data/assets/data/private.json +1 -1
  89. data/assets/data/quicklinks.html +2 -2
  90. data/assets/data/rtext_resizer.html +2 -2
  91. data/assets/data/slick.html +2 -2
  92. data/assets/data/speak2me.html +2 -2
  93. data/assets/data/themes.bootswatch.json +1 -1
  94. data/assets/data/themes.json +1 -1
  95. data/assets/data/translator.html +2 -2
  96. data/assets/error_pages/HTTP204.html +1 -1
  97. data/assets/error_pages/HTTP400.html +1 -1
  98. data/assets/error_pages/HTTP401.html +1 -1
  99. data/assets/error_pages/HTTP403.html +1 -1
  100. data/assets/error_pages/HTTP404.html +1 -1
  101. data/assets/error_pages/HTTP444.html +1 -1
  102. data/assets/error_pages/HTTP445.html +1 -1
  103. data/assets/error_pages/HTTP446.html +1 -1
  104. data/assets/error_pages/HTTP447.html +1 -1
  105. data/assets/error_pages/HTTP448.html +1 -1
  106. data/assets/error_pages/HTTP500.html +1 -1
  107. data/assets/error_pages/HTTP501.html +1 -1
  108. data/assets/error_pages/HTTP502.html +1 -1
  109. data/assets/error_pages/HTTP503.html +1 -1
  110. data/assets/themes/j1/adapter/js/advertising.js +2 -2
  111. data/assets/themes/j1/adapter/js/algolia.js +2 -2
  112. data/assets/themes/j1/adapter/js/analytics.js +2 -2
  113. data/assets/themes/j1/adapter/js/asciidoctor.js +2 -2
  114. data/assets/themes/j1/adapter/js/attic.js +2 -2
  115. data/assets/themes/j1/adapter/js/bmd.js +2 -2
  116. data/assets/themes/j1/adapter/js/carousel.js +2 -2
  117. data/assets/themes/j1/adapter/js/clipboard.js +2 -2
  118. data/assets/themes/j1/adapter/js/comments.js +2 -2
  119. data/assets/themes/j1/adapter/js/cookieConsent.js +1 -1
  120. data/assets/themes/j1/adapter/js/customFunctions.js +2 -2
  121. data/assets/themes/j1/adapter/js/customModule.js +2 -2
  122. data/assets/themes/j1/adapter/js/dropdowns.js +2 -2
  123. data/assets/themes/j1/adapter/js/fab.js +2 -2
  124. data/assets/themes/j1/adapter/js/framer.js +2 -2
  125. data/assets/themes/j1/adapter/js/gallery.js +324 -0
  126. data/assets/themes/j1/adapter/js/iconPicker.js +2 -2
  127. data/assets/themes/j1/adapter/js/j1.js +2 -2
  128. data/assets/themes/j1/adapter/js/lazyLoader.js +2 -2
  129. data/assets/themes/j1/adapter/js/{justifiedGallery.js → lightGallery.js} +54 -48
  130. data/assets/themes/j1/adapter/js/lightbox.js +2 -2
  131. data/assets/themes/j1/adapter/js/logger.js +2 -2
  132. data/assets/themes/j1/adapter/js/lunr.js +2 -2
  133. data/assets/themes/j1/adapter/js/masonry.js +80 -13
  134. data/assets/themes/j1/adapter/js/masterslider.js +2 -2
  135. data/assets/themes/j1/adapter/js/mmenu.js +2 -2
  136. data/assets/themes/j1/adapter/js/navigator.js +2 -2
  137. data/assets/themes/j1/adapter/js/particles.js +2 -2
  138. data/assets/themes/j1/adapter/js/rangeSlider.js +2 -2
  139. data/assets/themes/j1/adapter/js/rouge.js +2 -2
  140. data/assets/themes/j1/adapter/js/rtable.js +2 -2
  141. data/assets/themes/j1/adapter/js/rtextResizer.js +2 -2
  142. data/assets/themes/j1/adapter/js/scroller.js +2 -2
  143. data/assets/themes/j1/adapter/js/slick.js +1 -1
  144. data/assets/themes/j1/adapter/js/speak2me.js +2 -2
  145. data/assets/themes/j1/adapter/js/themeToggler.js +2 -2
  146. data/assets/themes/j1/adapter/js/themer.js +2 -2
  147. data/assets/themes/j1/adapter/js/toccer.js +2 -2
  148. data/assets/themes/j1/adapter/js/translator.js +1 -1
  149. data/assets/themes/j1/adapter/js/waves.js +2 -2
  150. data/assets/themes/j1/core/country-flags/css/theme/uno.css +1 -1
  151. data/assets/themes/j1/core/country-flags/css/theme/uno.min.css +1 -1
  152. data/assets/themes/j1/core/css/animate.css +2 -2
  153. data/assets/themes/j1/core/css/icon-fonts/fontawesome.css +2 -2
  154. data/assets/themes/j1/core/css/icon-fonts/iconify.css +5 -5
  155. data/assets/themes/j1/core/css/icon-fonts/mdi.css +9 -9
  156. data/assets/themes/j1/core/css/icon-fonts/mdib.css +7 -7
  157. data/assets/themes/j1/core/css/icon-fonts/mdil.css +10 -10
  158. data/assets/themes/j1/core/css/themes/bootstrap/bootstrap.css +1 -1
  159. data/assets/themes/j1/core/css/themes/unodark/bootstrap.css +30 -30
  160. data/assets/themes/j1/core/css/themes/unolight/bootstrap.css +99 -92
  161. data/assets/themes/j1/core/css/themes/unolight/bootstrap.min.css +1 -1
  162. data/assets/themes/j1/core/css/vendor.css +10 -10
  163. data/assets/themes/j1/core/js/template.js +159 -19
  164. data/assets/themes/j1/core/js/template.min.js +6 -6
  165. data/assets/themes/j1/core/js/template.min.js.map +1 -1
  166. data/assets/themes/j1/modules/backstretch/js/backstretch.js +1 -1
  167. data/assets/themes/j1/modules/backstretch/js/backstretch.min.js +1 -1
  168. data/assets/themes/j1/modules/bmd/js/bmd.js +1 -1
  169. data/assets/themes/j1/modules/bmd/js/bmd.min.js +1 -1
  170. data/assets/themes/j1/modules/bootstrap/js/bootstrap.js +2118 -2696
  171. data/assets/themes/j1/modules/bootstrap/js/bootstrap.js.map +1 -0
  172. data/assets/themes/j1/modules/bootstrap/js/bootstrap.min.js +3 -3
  173. data/assets/themes/j1/modules/bootstrap/js/bootstrap.min.js.map +1 -1
  174. data/assets/themes/j1/modules/carousel/css/carousel.css +1 -1
  175. data/assets/themes/j1/modules/carousel/css/carousel.min.css +1 -1
  176. data/assets/themes/j1/modules/carousel/css/carousel_transitions.css +1 -1
  177. data/assets/themes/j1/modules/carousel/css/carousel_transitions.min.css +1 -1
  178. data/assets/themes/j1/modules/carousel/css/theme/uno.css +1 -1
  179. data/assets/themes/j1/modules/carousel/css/theme/uno.min.css +1 -1
  180. data/assets/themes/j1/modules/clipboard/css/theme/uno.css +1 -1
  181. data/assets/themes/j1/modules/clipboard/css/theme/uno.min.css +1 -1
  182. data/assets/themes/j1/modules/dropdowns/css/theme/uno/dropdowns.css +1 -1
  183. data/assets/themes/j1/modules/dropdowns/css/theme/uno/dropdowns.min.css +1 -1
  184. data/assets/themes/j1/modules/dropdowns/js/cash.js +1 -1
  185. data/assets/themes/j1/modules/dropdowns/js/cash.min.js +1 -1
  186. data/assets/themes/j1/modules/dropdowns/js/dropdowns.js +1 -1
  187. data/assets/themes/j1/modules/dropdowns/js/dropdowns.min.js +1 -1
  188. data/assets/themes/j1/modules/fab/js/cash.js +1 -1
  189. data/assets/themes/j1/modules/fab/js/cash.min.js +1 -1
  190. data/assets/themes/j1/modules/fab/js/fab.js +1 -1
  191. data/assets/themes/j1/modules/fab/js/fab.min.js +1 -1
  192. data/assets/themes/j1/modules/iconPicker/css/universal-icon-picker.css +1 -1
  193. data/assets/themes/j1/modules/iconPicker/css/universal-icon-picker.min.css +1 -1
  194. data/assets/themes/j1/modules/iconPicker/js/universal-icon-picker.js +1 -1
  195. data/assets/themes/j1/modules/iconPicker/js/universal-icon-picker.min.js +1 -1
  196. data/assets/themes/j1/modules/iframeResizer/js/client/iframeResizer.contentWindow.min.js +0 -1
  197. data/assets/themes/j1/modules/iframeResizer/js/resizer.min.js +0 -1
  198. data/assets/themes/j1/modules/jquery/js/extensions/hasClass.js +1 -1
  199. data/assets/themes/j1/modules/jquery/js/extensions/hasClass.min.js +1 -1
  200. data/assets/themes/j1/modules/jquery/js/extensions/removeClass.js +1 -1
  201. data/assets/themes/j1/modules/jquery/js/extensions/removeClass.min.js +1 -1
  202. data/assets/themes/j1/modules/justifiedGallery/css/theme/uno.css +1 -1
  203. data/assets/themes/j1/modules/justifiedGallery/css/theme/uno.min.css +1 -1
  204. data/assets/themes/j1/modules/lightGallery/css/lg-transitions.css +984 -0
  205. data/assets/themes/j1/modules/lightGallery/css/lg-transitions.min.css +26 -0
  206. data/assets/themes/j1/modules/lightGallery/css/lightgallery-bundle.css +1627 -0
  207. data/assets/themes/j1/modules/lightGallery/css/lightgallery-bundle.min.css +25 -0
  208. data/assets/themes/j1/modules/lightGallery/css/plugins/lg-autoplay.css +67 -0
  209. data/assets/themes/j1/modules/lightGallery/css/plugins/lg-comments.css +157 -0
  210. data/assets/themes/j1/modules/lightGallery/css/plugins/lg-fullscreen.css +32 -0
  211. data/assets/themes/j1/modules/lightGallery/css/plugins/lg-medium-zoom.css +40 -0
  212. data/assets/themes/j1/modules/lightGallery/css/plugins/lg-pager.css +115 -0
  213. data/assets/themes/j1/modules/lightGallery/css/plugins/lg-rotate.css +74 -0
  214. data/assets/themes/j1/modules/lightGallery/css/plugins/lg-share.css +168 -0
  215. data/assets/themes/j1/modules/lightGallery/css/plugins/lg-thumbnail.css +133 -0
  216. data/assets/themes/j1/modules/lightGallery/css/plugins/lg-video.css +169 -0
  217. data/assets/themes/j1/modules/lightGallery/css/plugins/lg-zoom.css +141 -0
  218. data/assets/themes/j1/modules/lightGallery/css/themes/uno/uno.css +109 -0
  219. data/assets/themes/j1/modules/lightGallery/css/themes/uno/uno.min.css +19 -0
  220. data/assets/themes/j1/modules/lightGallery/{css/fonts → fonts}/lg.svg +35 -28
  221. data/assets/themes/j1/modules/lightGallery/fonts/lg.ttf +0 -0
  222. data/assets/themes/j1/modules/lightGallery/fonts/lg.woff +0 -0
  223. data/assets/themes/j1/modules/lightGallery/fonts/lg.woff2 +0 -0
  224. data/assets/themes/j1/modules/lightGallery/img/loading.gif +0 -0
  225. data/assets/themes/j1/modules/lightGallery/js/lightgallery.js +2759 -0
  226. data/assets/themes/j1/modules/lightGallery/js/lightgallery.min.js +25 -0
  227. data/assets/themes/j1/modules/lightGallery/js/plugins/lg-autoplay.js +275 -0
  228. data/assets/themes/j1/modules/lightGallery/js/plugins/lg-autoplay.min.js +26 -0
  229. data/assets/themes/j1/modules/lightGallery/js/plugins/lg-comment.js +230 -0
  230. data/assets/themes/j1/modules/lightGallery/js/plugins/lg-comment.min.js +26 -0
  231. data/assets/themes/j1/modules/lightGallery/js/plugins/lg-fullscreen.js +160 -0
  232. data/assets/themes/j1/modules/lightGallery/js/plugins/lg-fullscreen.min.js +26 -0
  233. data/assets/themes/j1/modules/lightGallery/js/plugins/lg-hash.js +223 -0
  234. data/assets/themes/j1/modules/lightGallery/js/plugins/lg-hash.min.js +27 -0
  235. data/assets/themes/j1/modules/lightGallery/js/plugins/lg-medium-zoom.js +157 -0
  236. data/assets/themes/j1/modules/lightGallery/js/plugins/lg-medium-zoom.min.js +26 -0
  237. data/assets/themes/j1/modules/lightGallery/js/plugins/lg-pager.js +164 -0
  238. data/assets/themes/j1/modules/lightGallery/js/plugins/lg-pager.min.js +26 -0
  239. data/assets/themes/j1/modules/lightGallery/js/plugins/lg-rotate.js +299 -0
  240. data/assets/themes/j1/modules/lightGallery/js/plugins/lg-rotate.min.js +26 -0
  241. data/assets/themes/j1/modules/lightGallery/js/plugins/lg-share.js +244 -0
  242. data/assets/themes/j1/modules/lightGallery/js/plugins/lg-share.min.js +27 -0
  243. data/assets/themes/j1/modules/lightGallery/js/plugins/lg-thumbnail.js +509 -0
  244. data/assets/themes/j1/modules/lightGallery/js/plugins/lg-thumbnail.min.js +26 -0
  245. data/assets/themes/j1/modules/lightGallery/js/plugins/lg-video.js +585 -0
  246. data/assets/themes/j1/modules/lightGallery/js/plugins/lg-video.min.js +27 -0
  247. data/assets/themes/j1/modules/lightGallery/js/plugins/lg-vimeo-thumbnail.js +207 -0
  248. data/assets/themes/j1/modules/lightGallery/js/plugins/lg-vimeo-thumbnail.min.js +26 -0
  249. data/assets/themes/j1/modules/lightGallery/js/plugins/lg-zoom.js +999 -0
  250. data/assets/themes/j1/modules/lightGallery/js/plugins/lg-zoom.min.js +26 -0
  251. data/assets/themes/j1/modules/lightbox/css/lightbox.css +1 -1
  252. data/assets/themes/j1/modules/lightbox/css/lightbox.min.css +1 -1
  253. data/assets/themes/j1/modules/lightbox/css/theme/uno.css +1 -1
  254. data/assets/themes/j1/modules/lightbox/css/theme/uno.min.css +1 -1
  255. data/assets/themes/j1/modules/lightbox/js/lightbox.js +1 -1
  256. data/assets/themes/j1/modules/lightbox/js/lightbox.min.js +1 -1
  257. data/assets/themes/j1/modules/lunr/js/j1.js +1 -1
  258. data/assets/themes/j1/modules/lunr/js/j1.min.js +1 -1
  259. data/assets/themes/j1/modules/masonry/js/utils/images_loaded.js +439 -0
  260. data/assets/themes/j1/modules/masonry/js/utils/images_loaded.min.js +12 -0
  261. data/assets/themes/j1/modules/masterslider/css/theme/uno.css +1 -1
  262. data/assets/themes/j1/modules/masterslider/css/theme/uno.min.css +1 -1
  263. data/assets/themes/j1/modules/mmenuLight/css/theme/uno/mmenu.css +1 -1
  264. data/assets/themes/j1/modules/mmenuLight/css/theme/uno/mmenu.min.css +1 -1
  265. data/assets/themes/j1/modules/mmenuLight/js/mmenu.js +1 -1
  266. data/assets/themes/j1/modules/mmenuLight/js/mmenu.min.js +1 -1
  267. data/assets/themes/j1/modules/mmenuLight/js/mmenu.polyfills.js +118 -0
  268. data/assets/themes/j1/modules/particles/skies/cavern1.png +0 -0
  269. data/assets/themes/j1/modules/particles/skies/cavern2.png +0 -0
  270. data/assets/themes/j1/modules/particles/skies/chrome.png +0 -0
  271. data/assets/themes/j1/modules/particles/skies/deep-space.jpg +0 -0
  272. data/assets/themes/j1/modules/particles/skies/deepblue.png +0 -0
  273. data/assets/themes/j1/modules/particles/skies/fire.png +0 -0
  274. data/assets/themes/j1/modules/particles/skies/fog.png +0 -0
  275. data/assets/themes/j1/modules/particles/skies/sky1.png +0 -0
  276. data/assets/themes/j1/modules/particles/skies/sky2.png +0 -0
  277. data/assets/themes/j1/modules/particles/skies/sky3.png +0 -0
  278. data/assets/themes/j1/modules/particles/skies/sky4.png +0 -0
  279. data/assets/themes/j1/modules/particles/skies/sky5.png +0 -0
  280. data/assets/themes/j1/modules/particles/skies/space1.png +0 -0
  281. data/assets/themes/j1/modules/particles/skies/space2.png +0 -0
  282. data/assets/themes/j1/modules/particles/skies/space3.png +0 -0
  283. data/assets/themes/j1/modules/particles/skies/starfield.png +0 -0
  284. data/assets/themes/j1/modules/particles/skies/sunorbit.png +0 -0
  285. data/assets/themes/j1/modules/particles/skies/sunset.png +0 -0
  286. data/assets/themes/j1/modules/particles/skies/toxic.png +0 -0
  287. data/assets/themes/j1/modules/particles/skies/underwater1.png +0 -0
  288. data/assets/themes/j1/modules/particles/skies/underwater2.png +0 -0
  289. data/assets/themes/j1/modules/particles/skies/underwater3.png +0 -0
  290. data/assets/themes/j1/modules/particles/skies/wtf.png +0 -0
  291. data/assets/themes/j1/modules/particles/sprites/slime.png +0 -0
  292. data/assets/themes/j1/modules/particles/sprites/slimeeyes.png +0 -0
  293. data/assets/themes/j1/modules/particles/sprites/snake.png +0 -0
  294. data/assets/themes/j1/modules/particles/sprites/snowflakes.png +0 -0
  295. data/assets/themes/j1/modules/particles/sprites/snowflakes_large.png +0 -0
  296. data/assets/themes/j1/modules/popper/js/popper.min.js +0 -1
  297. data/assets/themes/j1/modules/rangeSlider/css/theme/uno/nouislider.css +1 -1
  298. data/assets/themes/j1/modules/rangeSlider/css/theme/uno/nouislider.min.css +1 -1
  299. data/assets/themes/j1/modules/rouge/css/base16/theme.css +1 -1
  300. data/assets/themes/j1/modules/rouge/css/base16/theme.min.css +1 -1
  301. data/assets/themes/j1/modules/rouge/css/base16.dark/theme.css +1 -1
  302. data/assets/themes/j1/modules/rouge/css/base16.dark/theme.min.css +1 -1
  303. data/assets/themes/j1/modules/rouge/css/base16.light/theme.css +1 -1
  304. data/assets/themes/j1/modules/rouge/css/base16.light/theme.min.css +1 -1
  305. data/assets/themes/j1/modules/rouge/css/base16.monokai/theme.css +1 -1
  306. data/assets/themes/j1/modules/rouge/css/base16.monokai/theme.min.css +1 -1
  307. data/assets/themes/j1/modules/rouge/css/base16.monokai.dark/theme.css +1 -1
  308. data/assets/themes/j1/modules/rouge/css/base16.monokai.dark/theme.min.css +1 -1
  309. data/assets/themes/j1/modules/rouge/css/base16.monokai.light/theme.css +1 -1
  310. data/assets/themes/j1/modules/rouge/css/base16.monokai.light/theme.min.css +1 -1
  311. data/assets/themes/j1/modules/rouge/css/base16.solarized/theme.css +1 -1
  312. data/assets/themes/j1/modules/rouge/css/base16.solarized/theme.min.css +1 -1
  313. data/assets/themes/j1/modules/rouge/css/base16.solarized.dark/theme.css +1 -1
  314. data/assets/themes/j1/modules/rouge/css/base16.solarized.dark/theme.min.css +1 -1
  315. data/assets/themes/j1/modules/rouge/css/base16.solarized.light/theme.css +1 -1
  316. data/assets/themes/j1/modules/rouge/css/base16.solarized.light/theme.min.css +1 -1
  317. data/assets/themes/j1/modules/rouge/css/colorful/theme.css +1 -1
  318. data/assets/themes/j1/modules/rouge/css/colorful/theme.min.css +1 -1
  319. data/assets/themes/j1/modules/rouge/css/github/theme.css +1 -1
  320. data/assets/themes/j1/modules/rouge/css/github/theme.min.css +1 -1
  321. data/assets/themes/j1/modules/rouge/css/gruvbox/theme.css +1 -1
  322. data/assets/themes/j1/modules/rouge/css/gruvbox/theme.min.css +1 -1
  323. data/assets/themes/j1/modules/rouge/css/gruvbox.dark/theme.css +1 -1
  324. data/assets/themes/j1/modules/rouge/css/gruvbox.dark/theme.min.css +1 -1
  325. data/assets/themes/j1/modules/rouge/css/gruvbox.light/theme.css +1 -1
  326. data/assets/themes/j1/modules/rouge/css/gruvbox.light/theme.min.css +1 -1
  327. data/assets/themes/j1/modules/rouge/css/igorpro/theme.css +1 -1
  328. data/assets/themes/j1/modules/rouge/css/igorpro/theme.min.css +1 -1
  329. data/assets/themes/j1/modules/rouge/css/molokai/theme.css +1 -1
  330. data/assets/themes/j1/modules/rouge/css/molokai/theme.min.css +1 -1
  331. data/assets/themes/j1/modules/rouge/css/monokai/theme.css +1 -1
  332. data/assets/themes/j1/modules/rouge/css/monokai/theme.min.css +1 -1
  333. data/assets/themes/j1/modules/rouge/css/monokai.sublime/theme.css +1 -1
  334. data/assets/themes/j1/modules/rouge/css/monokai.sublime/theme.min.css +1 -1
  335. data/assets/themes/j1/modules/rouge/css/pastie/theme.css +1 -1
  336. data/assets/themes/j1/modules/rouge/css/pastie/theme.min.css +1 -1
  337. data/assets/themes/j1/modules/rouge/css/thankful_eyes/theme.css +1 -1
  338. data/assets/themes/j1/modules/rouge/css/thankful_eyes/theme.min.css +1 -1
  339. data/assets/themes/j1/modules/rouge/css/themes.txt +1 -1
  340. data/assets/themes/j1/modules/rouge/css/tulip/theme.css +1 -1
  341. data/assets/themes/j1/modules/rouge/css/tulip/theme.min.css +1 -1
  342. data/assets/themes/j1/modules/rouge/css/uno.dark/theme.css +1 -1
  343. data/assets/themes/j1/modules/rouge/css/uno.dark/theme.min.css +1 -1
  344. data/assets/themes/j1/modules/rouge/css/uno.light/theme.css +1 -1
  345. data/assets/themes/j1/modules/rouge/css/uno.light/theme.min.css +1 -1
  346. data/assets/themes/j1/modules/rouge/js/select.js +1 -1
  347. data/assets/themes/j1/modules/rtable/css/theme/uno/rtable.css +1 -1
  348. data/assets/themes/j1/modules/rtable/css/theme/uno/rtable.min.css +1 -1
  349. data/assets/themes/j1/modules/rtable/js/rtable.js +1 -1
  350. data/assets/themes/j1/modules/rtable/js/rtable.min.js +1 -1
  351. data/assets/themes/j1/modules/scroller/css/theme/uno.css +1 -1
  352. data/assets/themes/j1/modules/scroller/css/theme/uno.min.css +1 -1
  353. data/assets/themes/j1/modules/scroller/js/scroller.min.js +1 -1
  354. data/assets/themes/j1/modules/slick/lightbox/css/theme/uno.css +1 -1
  355. data/assets/themes/j1/modules/slick/lightbox/css/theme/uno.min.css +1 -1
  356. data/assets/themes/j1/modules/slick/lightbox/js/slick-lightbox.min.js +0 -1
  357. data/assets/themes/j1/modules/slick/slider/css/theme/uno.css +1 -1
  358. data/assets/themes/j1/modules/slick/slider/css/theme/uno.min.css +1 -1
  359. data/assets/themes/j1/modules/spinner/css/spin.css +1 -1
  360. data/assets/themes/j1/modules/spinner/css/spin.min.css +1 -1
  361. data/assets/themes/j1/modules/spinner/js/spin.js +1 -1
  362. data/assets/themes/j1/modules/spinner/js/spin.min.js +1 -1
  363. data/assets/themes/j1/modules/themeSwitcher/js/switcher.js +1 -1
  364. data/assets/themes/j1/modules/themeSwitcher/js/switcher.min.js +1 -1
  365. data/assets/themes/j1/modules/translator/css/translator.css +1 -1
  366. data/assets/themes/j1/modules/translator/css/translator.min.css +1 -1
  367. data/assets/themes/j1/modules/videojs/css/themes/city.css +74 -74
  368. data/assets/themes/j1/modules/videojs/css/themes/city.min.css +3 -4
  369. data/assets/themes/j1/modules/videojs/css/themes/fantasy.css +3 -3
  370. data/assets/themes/j1/modules/videojs/css/themes/fantasy.min.css +3 -4
  371. data/assets/themes/j1/modules/videojs/css/themes/forest.css +4 -3
  372. data/assets/themes/j1/modules/videojs/css/themes/forest.min.css +3 -4
  373. data/assets/themes/j1/modules/videojs/css/themes/sea.css +2 -2
  374. data/assets/themes/j1/modules/videojs/css/themes/sea.min.css +3 -4
  375. data/assets/themes/j1/modules/videojs/css/themes/uno.css +151 -0
  376. data/assets/themes/j1/modules/videojs/css/themes/uno.min.css +17 -0
  377. data/assets/themes/j1/modules/videojs/css/video-js.css +12 -0
  378. data/assets/themes/j1/modules/videojs/css/video-js.min.css +12 -0
  379. data/assets/themes/j1/modules/videojs/js/plugins/dm/LICENSE +19 -0
  380. data/assets/themes/j1/modules/videojs/js/plugins/dm/README.md +94 -0
  381. data/assets/themes/j1/modules/videojs/js/plugins/dm/api/README.md +7 -0
  382. data/assets/themes/j1/modules/videojs/js/plugins/dm/api/dailymotion.min.js +29 -0
  383. data/assets/themes/j1/modules/videojs/js/plugins/dm/api/dailymotion.player.min.js +80 -0
  384. data/assets/themes/j1/modules/videojs/js/plugins/dm/dailymotion.js +603 -0
  385. data/assets/themes/j1/modules/videojs/js/plugins/dm/dailymotion.min.js +16 -0
  386. data/assets/themes/j1/modules/videojs/js/plugins/dm/examples/dailymotion-controls.html +18 -0
  387. data/assets/themes/j1/modules/videojs/js/plugins/dm/examples/dailymotion-javascript.html +27 -0
  388. data/assets/themes/j1/modules/videojs/js/plugins/dm/examples/dailymotion-playlist.html +19 -0
  389. data/assets/themes/j1/modules/videojs/js/plugins/dm/examples/global-parameters.html +28 -0
  390. data/assets/themes/j1/modules/videojs/js/plugins/dm/examples/simple.html +20 -0
  391. data/assets/themes/j1/modules/videojs/js/plugins/dm/examples/switch.html +37 -0
  392. data/assets/themes/j1/modules/videojs/js/plugins/vm/LICENSE +21 -0
  393. data/assets/themes/j1/modules/videojs/js/plugins/vm/README.md +15 -0
  394. data/assets/themes/j1/modules/videojs/js/plugins/vm/api/README.md +1818 -0
  395. data/assets/themes/j1/modules/videojs/js/plugins/vm/api/player.min.js +23 -0
  396. data/assets/themes/j1/modules/videojs/js/plugins/vm/api/vimeo.js +3562 -0
  397. data/assets/themes/j1/modules/videojs/js/plugins/vm/api/vimeo.min.js +35 -0
  398. data/assets/themes/j1/modules/videojs/js/plugins/vm/examples/index.html +33 -0
  399. data/assets/themes/j1/modules/videojs/js/plugins/vm/examples/player/index.html +37 -0
  400. data/assets/themes/j1/modules/videojs/js/plugins/vm/vimeo.js +521 -0
  401. data/assets/themes/j1/modules/videojs/js/plugins/vm/vimeo.min.js +15 -0
  402. data/assets/themes/j1/modules/videojs/js/plugins/wt/api/Readme.txt +20 -0
  403. data/assets/themes/j1/modules/videojs/js/plugins/wt/api/WistiaPlayer.ts +1617 -0
  404. data/assets/themes/j1/modules/videojs/js/plugins/wt/api/wistia.min.js +2 -0
  405. data/assets/themes/j1/modules/videojs/js/plugins/wt/wistia.js +383 -0
  406. data/assets/themes/j1/modules/videojs/js/plugins/wt/wistia.min.js +18 -0
  407. data/assets/themes/j1/modules/videojs/js/plugins/yt/README.md +115 -0
  408. data/assets/themes/j1/modules/videojs/js/plugins/yt/api/youtube.min.js +20 -0
  409. data/assets/themes/j1/modules/videojs/js/plugins/yt/examples/global-parameters.html +32 -0
  410. data/assets/themes/j1/modules/videojs/js/plugins/yt/examples/simple.html +20 -0
  411. data/assets/themes/j1/modules/videojs/js/plugins/yt/examples/switch.html +37 -0
  412. data/assets/themes/j1/modules/videojs/js/plugins/yt/examples/youtube-controls.html +18 -0
  413. data/assets/themes/j1/modules/videojs/js/plugins/yt/examples/youtube-javascript.html +27 -0
  414. data/assets/themes/j1/modules/videojs/js/plugins/yt/examples/youtube-list.html +19 -0
  415. data/assets/themes/j1/modules/videojs/js/plugins/yt/examples/youtube-playlist.html +19 -0
  416. data/assets/themes/j1/modules/videojs/js/plugins/yt/youtube.js +832 -0
  417. data/assets/themes/j1/modules/videojs/js/plugins/yt/youtube.min.js +16 -0
  418. data/assets/themes/j1/modules/videojs/js/video.js +40610 -32915
  419. data/assets/themes/j1/modules/videojs/js/video.min.js +33 -20
  420. data/lib/j1/version.rb +1 -1
  421. data/lib/j1_app/j1_auth_manager/auth_manager.rb +1 -1
  422. data/lib/j1_app/j1_auth_manager/warden_omniauth.rb +1 -1
  423. data/lib/j1_app/omniauth/strategies/github.rb +1 -1
  424. data/lib/starter_web/Gemfile +3 -3
  425. data/lib/starter_web/README.md +5 -5
  426. data/lib/starter_web/_config.yml +2 -2
  427. data/lib/starter_web/_data/_defaults/categories.yml +1 -1
  428. data/lib/starter_web/_data/_defaults/colors.yml +1 -1
  429. data/lib/starter_web/_data/_defaults/font_sizes.yml +1 -1
  430. data/lib/starter_web/_data/_defaults/j1_config.yml +1 -1
  431. data/lib/starter_web/_data/_defaults/private.yml +1 -1
  432. data/lib/starter_web/_data/_defaults/resources.yml +1 -1
  433. data/lib/starter_web/_data/apps/defaults/justifiedGalleryCustomizer.yml +1 -1
  434. data/lib/starter_web/_data/apps/justifiedGalleryCustomizer.yml +1 -1
  435. data/lib/starter_web/_data/asciidoc2pdf/themes/j1-theme.yml +1 -1
  436. data/lib/starter_web/_data/blocks/banner.yml +1 -1
  437. data/lib/starter_web/_data/blocks/defaults/banner.yml +1 -1
  438. data/lib/starter_web/_data/blocks/defaults/footer.yml +1 -1
  439. data/lib/starter_web/_data/blocks/defaults/panel.yml +1 -1
  440. data/lib/starter_web/_data/blocks/footer.yml +2 -2
  441. data/lib/starter_web/_data/blocks/panel.yml +1 -1
  442. data/lib/starter_web/_data/categories.yml +1 -1
  443. data/lib/starter_web/_data/colors.yml +1 -1
  444. data/lib/starter_web/_data/font_sizes.yml +1 -1
  445. data/lib/starter_web/_data/j1_config.yml +1 -1
  446. data/lib/starter_web/_data/layouts/collection.yml +1 -1
  447. data/lib/starter_web/_data/layouts/default.yml +1 -1
  448. data/lib/starter_web/_data/layouts/home.yml +1 -1
  449. data/lib/starter_web/_data/layouts/news_panel_posts.yml +1 -1
  450. data/lib/starter_web/_data/layouts/page.yml +1 -1
  451. data/lib/starter_web/_data/layouts/post.yml +1 -1
  452. data/lib/starter_web/_data/layouts/raw.yml +1 -1
  453. data/lib/starter_web/_data/modules/advertising.yml +2 -2
  454. data/lib/starter_web/_data/modules/analytics.yml +1 -1
  455. data/lib/starter_web/_data/modules/attics.yml +1 -1
  456. data/lib/starter_web/_data/modules/authentication.yml +1 -1
  457. data/lib/starter_web/_data/modules/blog_navigator.yml +1 -1
  458. data/lib/starter_web/_data/modules/carousel.yml +1 -1
  459. data/lib/starter_web/_data/modules/comments.yml +1 -1
  460. data/lib/starter_web/_data/modules/cookieconsent.yml +1 -1
  461. data/lib/starter_web/_data/modules/cookies.yml +1 -1
  462. data/lib/starter_web/_data/modules/defaults/advertising.yml +1 -1
  463. data/lib/starter_web/_data/modules/defaults/analytics.yml +1 -1
  464. data/lib/starter_web/_data/modules/defaults/attics.yml +1 -1
  465. data/lib/starter_web/_data/modules/defaults/authentication.yml +1 -1
  466. data/lib/starter_web/_data/modules/defaults/blog_navigator.yml +1 -1
  467. data/lib/starter_web/_data/modules/defaults/carousel.yml +1 -1
  468. data/lib/starter_web/_data/modules/defaults/comments.yml +1 -1
  469. data/lib/starter_web/_data/modules/defaults/cookieconsent.yml +1 -1
  470. data/lib/starter_web/_data/modules/defaults/cookies.yml +1 -1
  471. data/lib/starter_web/_data/modules/defaults/dropdowns.yml +1 -1
  472. data/lib/starter_web/_data/modules/defaults/fab.yml +1 -1
  473. data/lib/starter_web/_data/modules/defaults/framer.yml +1 -1
  474. data/lib/starter_web/_data/modules/defaults/{justifiedGallery.yml → gallery.yml} +18 -28
  475. data/lib/starter_web/_data/modules/defaults/iconPicker.yml +1 -1
  476. data/lib/starter_web/_data/modules/defaults/lazyLoader.yml +1 -1
  477. data/lib/starter_web/_data/modules/defaults/lightGallery.yml +8 -6
  478. data/lib/starter_web/_data/modules/defaults/lightbox.yml +1 -1
  479. data/lib/starter_web/_data/modules/defaults/log4javascript.yml +1 -1
  480. data/lib/starter_web/_data/modules/defaults/log4r.yml +1 -1
  481. data/lib/starter_web/_data/modules/defaults/lunr.yml +1 -1
  482. data/lib/starter_web/_data/modules/defaults/masonry.yml +53 -13
  483. data/lib/starter_web/_data/modules/defaults/masterslider.yml +1 -1
  484. data/lib/starter_web/_data/modules/defaults/navigator.yml +1 -1
  485. data/lib/starter_web/_data/modules/defaults/particles.yml +1 -1
  486. data/lib/starter_web/_data/modules/defaults/rangeSlider.yml +1 -1
  487. data/lib/starter_web/_data/modules/defaults/rtable.yml +1 -1
  488. data/lib/starter_web/_data/modules/defaults/scroller.yml +1 -1
  489. data/lib/starter_web/_data/modules/defaults/slick.yml +1 -1
  490. data/lib/starter_web/_data/modules/defaults/speak2me.yml +1 -1
  491. data/lib/starter_web/_data/modules/defaults/theme_toggler.yml +1 -1
  492. data/lib/starter_web/_data/modules/defaults/themer.yml +1 -1
  493. data/lib/starter_web/_data/modules/defaults/toccer.yml +1 -1
  494. data/lib/starter_web/_data/modules/defaults/translator.yml +1 -1
  495. data/lib/starter_web/_data/modules/defaults/waves.yml +1 -1
  496. data/lib/starter_web/_data/modules/dropdowns.yml +1 -1
  497. data/lib/starter_web/_data/modules/fab.yml +1 -1
  498. data/lib/starter_web/_data/modules/framer.yml +1 -1
  499. data/lib/starter_web/_data/modules/gallery.yml +873 -0
  500. data/lib/starter_web/_data/modules/iconPicker.yml +1 -1
  501. data/lib/starter_web/_data/modules/lazyLoader.yml +1 -1
  502. data/lib/starter_web/_data/modules/lightGallery.yml +8 -5
  503. data/lib/starter_web/_data/modules/lightbox.yml +1 -1
  504. data/lib/starter_web/_data/modules/log4javascript.yml +1 -1
  505. data/lib/starter_web/_data/modules/log4r.yml +1 -1
  506. data/lib/starter_web/_data/modules/lunr.yml +1 -1
  507. data/lib/starter_web/_data/modules/masonry.yml +401 -87
  508. data/lib/starter_web/_data/modules/masterslider.yml +1 -1
  509. data/lib/starter_web/_data/modules/navigator.yml +1 -1
  510. data/lib/starter_web/_data/modules/navigator_menu.yml +18 -4
  511. data/lib/starter_web/_data/modules/nbinteract.yml +1 -1
  512. data/lib/starter_web/_data/modules/particles.yml +1 -1
  513. data/lib/starter_web/_data/modules/rangeSlider.yml +1 -1
  514. data/lib/starter_web/_data/modules/rtable.yml +1 -1
  515. data/lib/starter_web/_data/modules/scroller.yml +1 -1
  516. data/lib/starter_web/_data/modules/slick.yml +1 -1
  517. data/lib/starter_web/_data/modules/speak2me.yml +1 -1
  518. data/lib/starter_web/_data/modules/theme_toggler.yml +1 -1
  519. data/lib/starter_web/_data/modules/themer.yml +1 -1
  520. data/lib/starter_web/_data/modules/toccer.yml +1 -1
  521. data/lib/starter_web/_data/modules/translator.yml +1 -1
  522. data/lib/starter_web/_data/modules/waves.yml +1 -1
  523. data/lib/starter_web/_data/plugins/defaults/feed.yml +1 -1
  524. data/lib/starter_web/_data/plugins/defaults/paginator.yml +1 -1
  525. data/lib/starter_web/_data/plugins/defaults/seo-tags.yml +1 -1
  526. data/lib/starter_web/_data/plugins/defaults/sitemap.yml +1 -1
  527. data/lib/starter_web/_data/plugins/feed.yml +1 -1
  528. data/lib/starter_web/_data/plugins/paginator.yml +1 -1
  529. data/lib/starter_web/_data/plugins/seo-tags.yml +1 -1
  530. data/lib/starter_web/_data/plugins/sitemap.yml +1 -1
  531. data/lib/starter_web/_data/private.yml +1 -1
  532. data/lib/starter_web/_data/resources.yml +190 -118
  533. data/lib/starter_web/_data/templates/feed.xml +2 -2
  534. data/lib/starter_web/_data/templates/robots.txt +1 -1
  535. data/lib/starter_web/_data/templates/seo-tags.html +1 -1
  536. data/lib/starter_web/_data/templates/sitemap.xml +1 -1
  537. data/lib/starter_web/_data/utilities/defaults/util_srv.yml +1 -1
  538. data/lib/starter_web/_data/utilities/util_srv.yml +1 -1
  539. data/lib/starter_web/_includes/custom/static/bs5_accordion.html +1 -1
  540. data/lib/starter_web/_includes/custom/templates/bs5_accordion.html +1 -1
  541. data/lib/starter_web/_includes/custom/templates/collection_panel.html +1 -1
  542. data/lib/starter_web/_includes/custom/templates/custom_header.html +1 -1
  543. data/lib/starter_web/_includes/custom/templates/people_panel.html +1 -1
  544. data/lib/starter_web/_includes/google/static/google_ad__your-slot-id.html +1 -1
  545. data/lib/starter_web/_includes/google/templates/google_ads.html +1 -1
  546. data/lib/starter_web/_plugins/asciidoctor/admonition-block-answer.rb +3 -2
  547. data/lib/starter_web/_plugins/asciidoctor/admonition-block-question.rb +7 -6
  548. data/lib/starter_web/_plugins/asciidoctor/banner.rb +8 -5
  549. data/lib/starter_web/_plugins/asciidoctor/callout.rb +10 -8
  550. data/lib/starter_web/_plugins/asciidoctor/carousel-block.rb +14 -8
  551. data/lib/starter_web/_plugins/asciidoctor/conum.rb +3 -1
  552. data/lib/starter_web/_plugins/asciidoctor/dailymotion-block.rb +83 -0
  553. data/lib/starter_web/_plugins/asciidoctor/fab-icon-inline.rb +8 -5
  554. data/lib/starter_web/_plugins/asciidoctor/fas-icon-inline.rb +8 -5
  555. data/lib/starter_web/_plugins/asciidoctor/flag-icon-inline.rb +8 -5
  556. data/lib/starter_web/_plugins/asciidoctor/gallery-block.rb +13 -7
  557. data/lib/starter_web/_plugins/asciidoctor/gist-block.rb +19 -15
  558. data/lib/starter_web/_plugins/asciidoctor/google-ad-block.rb +10 -5
  559. data/lib/starter_web/_plugins/asciidoctor/iconify-icon-inline.rb +8 -5
  560. data/lib/starter_web/_plugins/asciidoctor/lightbox-block.rb +24 -18
  561. data/lib/starter_web/_plugins/asciidoctor/lorem_inline.rb +5 -4
  562. data/lib/starter_web/_plugins/asciidoctor/masonry-block.rb +13 -7
  563. data/lib/starter_web/_plugins/asciidoctor/masterslider-block.rb +12 -6
  564. data/lib/starter_web/_plugins/asciidoctor/mdi-icon-inline.rb +2 -1
  565. data/lib/starter_web/_plugins/asciidoctor/mdib-icon-inline.rb +2 -1
  566. data/lib/starter_web/_plugins/asciidoctor/mdil-icon-inline.rb +2 -1
  567. data/lib/starter_web/_plugins/asciidoctor/panel.rb +9 -5
  568. data/lib/starter_web/_plugins/asciidoctor/placeholder-inline.rb +4 -3
  569. data/lib/starter_web/_plugins/asciidoctor/range-slider-block.rb +11 -6
  570. data/lib/starter_web/_plugins/asciidoctor/shout-block.rb +6 -7
  571. data/lib/starter_web/_plugins/asciidoctor/slick-block.rb +12 -6
  572. data/lib/starter_web/_plugins/asciidoctor/textbook-block.rb +9 -5
  573. data/lib/starter_web/_plugins/asciidoctor/twitter-emoji-inline.rb +4 -1
  574. data/lib/starter_web/_plugins/asciidoctor/video-block.rb +65 -0
  575. data/lib/starter_web/_plugins/asciidoctor/videojs-block.rb +82 -0
  576. data/lib/starter_web/_plugins/asciidoctor/vimeo-block.rb +82 -0
  577. data/lib/starter_web/_plugins/asciidoctor/wistia-block.rb +87 -0
  578. data/lib/starter_web/_plugins/asciidoctor/youtube-block.rb +95 -0
  579. data/lib/starter_web/_plugins/filter/debug.rb +1 -1
  580. data/lib/starter_web/_plugins/filter/encodeBase64.rb +1 -1
  581. data/lib/starter_web/_plugins/filter/encryptAES.rb +1 -1
  582. data/lib/starter_web/_plugins/filter/filters.rb +1 -1
  583. data/lib/starter_web/_plugins/filter/liquify.rb +1 -1
  584. data/lib/starter_web/_plugins/filter/minifyJS.rb +1 -1
  585. data/lib/starter_web/_plugins/filter/minifyJSON.rb +1 -1
  586. data/lib/starter_web/_plugins/filter/prettify.rb +1 -1
  587. data/lib/starter_web/_plugins/filter/xml_prettify.rb +1 -1
  588. data/lib/starter_web/_plugins/helper/symlink_watcher.rb +1 -1
  589. data/lib/starter_web/_plugins/i18n/date.rb +1 -1
  590. data/lib/starter_web/_plugins/index/lunr.rb +2 -2
  591. data/lib/starter_web/_plugins/seo/j1-feed.rb +1 -1
  592. data/lib/starter_web/_plugins/seo/j1-seo-tags.rb +1 -1
  593. data/lib/starter_web/_plugins/seo/j1-sitemap.rb +1 -1
  594. data/lib/starter_web/assets/images/icons/videojs/videojs-logo.png +0 -0
  595. data/lib/starter_web/assets/images/icons/videojs/videojs-poster.png +0 -0
  596. data/lib/starter_web/assets/images/modules/attics/1920x1280/isaac-davis.jpg +0 -0
  597. data/lib/starter_web/assets/videos/gallery/_video_james_carpool_caraoke_poster.jpg +0 -0
  598. data/lib/starter_web/assets/videos/gallery/html5/video1-poster.jpg +0 -0
  599. data/lib/starter_web/assets/videos/gallery/html5/video1.subtitles.vtt +39 -0
  600. data/lib/starter_web/assets/videos/gallery/html5/video2-poster.jpg +0 -0
  601. data/lib/starter_web/assets/videos/gallery/html5/303/237video2-poster.jpg +0 -0
  602. data/lib/starter_web/assets/videos/gallery/video1-poster.1920..jpg +0 -0
  603. data/lib/starter_web/assets/videos/gallery/video_adele_last_carpool_caraoke_poster.1920.jpg +0 -0
  604. data/lib/starter_web/assets/videos/gallery/video_adele_last_carpool_caraoke_poster.jpg +0 -0
  605. data/lib/starter_web/assets/videos/gallery/video_gaga-poster.jpg +0 -0
  606. data/lib/starter_web/assets/videos/gallery/video_james_carpool_caraoke_poster.jpg +0 -0
  607. data/lib/starter_web/collections/posts/public/featured/_posts/2023-10-18-url-types.adoc +98 -0
  608. data/lib/starter_web/config.ru +1 -1
  609. data/lib/starter_web/dot.gitattributes +1 -1
  610. data/lib/starter_web/dot.nojekyll +1 -1
  611. data/lib/starter_web/package.json +1 -1
  612. data/lib/starter_web/pages/public/asciidoc_skeletons/documentation/_includes/documents/100_converter/111_about_the_converter.asciidoc +5 -0
  613. data/lib/starter_web/pages/public/asciidoc_skeletons/documentation/_includes/documents/100_converter/112_getting_started.asciidoc +3 -0
  614. data/lib/starter_web/pages/public/asciidoc_skeletons/documentation/_includes/documents/100_converter/113_themes.asciidoc +1 -0
  615. data/lib/starter_web/pages/public/asciidoc_skeletons/documentation/documentation.adoc +11 -7
  616. data/lib/starter_web/pages/public/asciidoc_skeletons/multi-document/_includes/documents/100_chapter.asciidoc +27 -11
  617. data/lib/starter_web/pages/public/asciidoc_skeletons/multi-document/_includes/documents/200_chapter.asciidoc +3 -0
  618. data/lib/starter_web/pages/public/asciidoc_skeletons/multi-document/multi.adoc +12 -7
  619. data/lib/starter_web/pages/public/asciidoc_skeletons/simple-document/simple.adoc +14 -7
  620. data/lib/starter_web/pages/public/features/general.adoc +12 -1
  621. data/lib/starter_web/pages/public/features/template.adoc +37 -38
  622. data/lib/starter_web/pages/public/learn/bookshelf/article_previewer/viewer_all_books.adoc +4 -3
  623. data/lib/starter_web/pages/public/learn/bookshelf/article_previewer/viewer_biography.adoc +2 -3
  624. data/lib/starter_web/pages/public/learn/bookshelf/article_previewer/viewer_fantasy.adoc +2 -2
  625. data/lib/starter_web/pages/public/learn/bookshelf/article_previewer/viewer_romance.adoc +2 -2
  626. data/lib/starter_web/pages/public/learn/bookshelf/jekyll_collections.adoc +6 -5
  627. data/lib/starter_web/pages/public/learn/roundtrip/_includes/attributes.asciidoc +1 -0
  628. data/lib/starter_web/pages/public/learn/roundtrip/_includes/documents/themes_rouge.asciidoc +4 -0
  629. data/lib/starter_web/pages/public/learn/roundtrip/asciidoc_extensions.adoc +6 -5
  630. data/lib/starter_web/pages/public/learn/roundtrip/bootstrap_themes.adoc +2 -0
  631. data/lib/starter_web/pages/public/learn/roundtrip/highlghter_rouge.adoc +7 -2
  632. data/lib/starter_web/pages/public/learn/roundtrip/icon_fonts.adoc +7 -2
  633. data/lib/starter_web/pages/public/learn/roundtrip/lunr_search.adoc +12 -3
  634. data/lib/starter_web/pages/public/learn/roundtrip/modal_extentions.adoc +4 -2
  635. data/lib/starter_web/pages/public/learn/roundtrip/present_images.adoc +49 -40
  636. data/lib/starter_web/pages/public/learn/roundtrip/present_videos.adoc +266 -65
  637. data/lib/starter_web/pages/public/learn/roundtrip/responsive_tables.adoc +5 -2
  638. data/lib/starter_web/pages/public/learn/roundtrip/typography.adoc +1 -0
  639. data/lib/starter_web/pages/public/learn/where_to_go.adoc +2 -1
  640. data/lib/starter_web/pages/public/legal/en/100_copyright.adoc +3 -1
  641. data/lib/starter_web/pages/public/legal/en/200_impress.adoc +3 -1
  642. data/lib/starter_web/pages/public/legal/en/300_privacy.adoc +595 -632
  643. data/lib/starter_web/pages/public/legal/en/400_comment_policy.adoc +2 -2
  644. data/lib/starter_web/pages/public/panels/intro_panel/panel.adoc +3 -2
  645. data/lib/starter_web/pages/public/plans/plans.adoc +14 -5
  646. data/lib/starter_web/pages/public/tools/previewer/_includes/attributes.asciidoc +69 -0
  647. data/lib/starter_web/pages/public/tools/previewer/_includes/documents/readme +0 -0
  648. data/lib/starter_web/pages/public/tools/previewer/preview_bootstrap_theme.adoc +3093 -3093
  649. data/lib/starter_web/utilsrv/_defaults/package.json +1 -1
  650. data/lib/starter_web/utilsrv/package.json +1 -1
  651. data/lib/starter_web/utilsrv/server.js +1 -1
  652. metadata +172 -94
  653. data/assets/data/galleries.json +0 -156
  654. data/assets/themes/j1/adapter/js/justifiedGalleryCustomizer.js +0 -360
  655. data/assets/themes/j1/modules/backstretch/js/v2.1.16/backstretch.js +0 -1694
  656. data/assets/themes/j1/modules/backstretch/js/v2.1.16/backstretch.min.js +0 -19
  657. data/assets/themes/j1/modules/iframeResizer/js/client/iframeResizer.contentWindow.map +0 -1
  658. data/assets/themes/j1/modules/iframeResizer/js/resizer.map +0 -1
  659. data/assets/themes/j1/modules/justifiedGallery/_versions/v3.7.0/css/justifiedGallery.css +0 -110
  660. data/assets/themes/j1/modules/justifiedGallery/_versions/v3.7.0/css/justifiedGallery.min.css +0 -110
  661. data/assets/themes/j1/modules/justifiedGallery/_versions/v3.7.0/css/theme/uno.css +0 -23
  662. data/assets/themes/j1/modules/justifiedGallery/_versions/v3.7.0/js/justifiedGallery.3.7.0.js +0 -1229
  663. data/assets/themes/j1/modules/justifiedGallery/_versions/v3.7.0/js/justifiedGallery.js +0 -1229
  664. data/assets/themes/j1/modules/justifiedGallery/_versions/v3.7.0/js/justifiedGallery.min.js +0 -8
  665. data/assets/themes/j1/modules/justifiedGallery/_versions/v3.7.0/less/.csslintrc +0 -20
  666. data/assets/themes/j1/modules/justifiedGallery/_versions/v3.7.0/less/justifiedGallery.less +0 -113
  667. data/assets/themes/j1/modules/justifiedGallery/_versions/v3.8.0/css/justifiedGallery.css +0 -110
  668. data/assets/themes/j1/modules/justifiedGallery/_versions/v3.8.0/css/justifiedGallery.min.css +0 -110
  669. data/assets/themes/j1/modules/justifiedGallery/_versions/v3.8.0/js/justifiedGallery.js +0 -1245
  670. data/assets/themes/j1/modules/justifiedGallery/_versions/v3.8.0/js/justifiedGallery.min.js +0 -7
  671. data/assets/themes/j1/modules/justifiedGallery/css/_archived/justifiedGallery.css +0 -110
  672. data/assets/themes/j1/modules/justifiedGallery/css/_archived/justifiedGallery.min.css +0 -110
  673. data/assets/themes/j1/modules/lightGallery/css/core/lg-fb-comment-box.css +0 -58
  674. data/assets/themes/j1/modules/lightGallery/css/core/lg-fb-comment-box.min.css +0 -5
  675. data/assets/themes/j1/modules/lightGallery/css/core/lg-transitions.css +0 -778
  676. data/assets/themes/j1/modules/lightGallery/css/core/lg-transitions.min.css +0 -5
  677. data/assets/themes/j1/modules/lightGallery/css/core/lightgallery.css +0 -981
  678. data/assets/themes/j1/modules/lightGallery/css/core/lightgallery.min.css +0 -5
  679. data/assets/themes/j1/modules/lightGallery/css/fonts/lg.eot +0 -0
  680. data/assets/themes/j1/modules/lightGallery/css/fonts/lg.ttf +0 -0
  681. data/assets/themes/j1/modules/lightGallery/css/fonts/lg.woff +0 -0
  682. data/assets/themes/j1/modules/lightGallery/css/themes/uno.css +0 -262
  683. data/assets/themes/j1/modules/lightGallery/css/themes/uno.min.css +0 -15
  684. data/assets/themes/j1/modules/lightGallery/js/core/j1/lightgallery.js +0 -1375
  685. data/assets/themes/j1/modules/lightGallery/js/core/j1/lightgallery.min.js +0 -5
  686. data/assets/themes/j1/modules/lightGallery/js/core/lightgallery.js +0 -1362
  687. data/assets/themes/j1/modules/lightGallery/js/core/lightgallery.min.js +0 -4
  688. data/assets/themes/j1/modules/lightGallery/js/modules/lg-autoplay.js +0 -206
  689. data/assets/themes/j1/modules/lightGallery/js/modules/lg-autoplay.min.js +0 -5
  690. data/assets/themes/j1/modules/lightGallery/js/modules/lg-fullscreen.js +0 -126
  691. data/assets/themes/j1/modules/lightGallery/js/modules/lg-fullscreen.min.js +0 -5
  692. data/assets/themes/j1/modules/lightGallery/js/modules/lg-hash.js +0 -101
  693. data/assets/themes/j1/modules/lightGallery/js/modules/lg-hash.min.js +0 -5
  694. data/assets/themes/j1/modules/lightGallery/js/modules/lg-pager.js +0 -105
  695. data/assets/themes/j1/modules/lightGallery/js/modules/lg-pager.min.js +0 -5
  696. data/assets/themes/j1/modules/lightGallery/js/modules/lg-share.js +0 -107
  697. data/assets/themes/j1/modules/lightGallery/js/modules/lg-share.min.js +0 -5
  698. data/assets/themes/j1/modules/lightGallery/js/modules/lg-thumbnail.js +0 -486
  699. data/assets/themes/j1/modules/lightGallery/js/modules/lg-thumbnail.min.js +0 -7
  700. data/assets/themes/j1/modules/lightGallery/js/modules/lg-zoom.js +0 -527
  701. data/assets/themes/j1/modules/lightGallery/js/modules/lg-zoom.min.js +0 -5
  702. data/assets/themes/j1/modules/msDropdown/js/msDropdown.min.js.map +0 -1
  703. data/assets/themes/j1/modules/popper/js/popper.min.js.map +0 -1
  704. data/assets/themes/j1/modules/rangeSlider/js/15.5.1/nouislider.js +0 -2337
  705. data/assets/themes/j1/modules/rangeSlider/js/15.5.1/nouislider.min.js +0 -1
  706. data/assets/themes/j1/modules/rangeSlider/js/9.1.0/nouislider.js +0 -2534
  707. data/assets/themes/j1/modules/slick/lightbox/js/slick-lightbox.min.js.map +0 -1
  708. data/assets/themes/j1/modules/themeSwitcher/js/_unsued/switcher.1.js +0 -454
  709. data/assets/themes/j1/modules/vimeo/froogaloop/js/froogaloop2.js +0 -4
  710. data/assets/themes/j1/modules/vimeo/froogaloop/js/froogaloop2.min.js +0 -4
  711. data/assets/themes/j1/modules/vimeo/player/js/player.js +0 -2138
  712. data/assets/themes/j1/modules/vimeo/player/js/player.js.map +0 -1
  713. data/assets/themes/j1/modules/vimeo/player/js/player.min.js +0 -2
  714. data/assets/themes/j1/modules/vimeo/player/js/player.min.js.map +0 -1
  715. data/lib/starter_web/_data/modules/justifiedGallery.yml +0 -556
  716. data/lib/starter_web/assets/videos/gallery/vk/hai.jpg +0 -0
  717. data/lib/starter_web/assets/videos/gallery/vk/otter.jpg +0 -0
  718. /data/assets/themes/j1/modules/backstretch/{LICENSE-MIT → LICENSE} +0 -0
  719. /data/assets/themes/j1/modules/lightGallery/css/themes/{icons → uno/icons}/animation-w.png +0 -0
  720. /data/assets/themes/j1/modules/lightGallery/css/themes/{icons → uno/icons}/customize-w.png +0 -0
  721. /data/assets/themes/j1/modules/lightGallery/css/themes/{icons → uno/icons}/dynamic-w.png +0 -0
  722. /data/assets/themes/j1/modules/lightGallery/css/themes/{icons → uno/icons}/facebook-icon.svg +0 -0
  723. /data/assets/themes/j1/modules/lightGallery/css/themes/{icons → uno/icons}/googleplus-icon.svg +0 -0
  724. /data/assets/themes/j1/modules/lightGallery/css/themes/{icons → uno/icons}/html5-w.png +0 -0
  725. /data/assets/themes/j1/modules/lightGallery/css/themes/{icons → uno/icons}/linked-in.png +0 -0
  726. /data/assets/themes/j1/modules/lightGallery/css/themes/{icons → uno/icons}/module-w.png +0 -0
  727. /data/assets/themes/j1/modules/lightGallery/css/themes/{icons → uno/icons}/play-button.png +0 -0
  728. /data/assets/themes/j1/modules/lightGallery/css/themes/{icons → uno/icons}/responsive-w.png +0 -0
  729. /data/assets/themes/j1/modules/lightGallery/css/themes/{icons → uno/icons}/thumb-w.png +0 -0
  730. /data/assets/themes/j1/modules/lightGallery/css/themes/{icons → uno/icons}/touch-w.png +0 -0
  731. /data/assets/themes/j1/modules/lightGallery/css/themes/{icons → uno/icons}/twitter-icon.svg +0 -0
  732. /data/assets/themes/j1/modules/lightGallery/css/themes/{icons → uno/icons}/twitter.png +0 -0
  733. /data/assets/themes/j1/modules/lightGallery/css/themes/{icons → uno/icons}/video1-w.png +0 -0
  734. /data/assets/themes/j1/modules/lightGallery/css/themes/{icons → uno/icons}/zoom-w.png +0 -0
  735. /data/assets/themes/j1/modules/lightGallery/css/themes/{icons → uno/icons}/zoom.png +0 -0
  736. /data/assets/themes/j1/modules/lightGallery/{css/img → images}/loading.gif +0 -0
  737. /data/assets/themes/j1/modules/lightGallery/{css/img → img}/video-play.png +0 -0
  738. /data/assets/themes/j1/modules/lightGallery/{css/img → img}/vimeo-play.png +0 -0
  739. /data/assets/themes/j1/modules/lightGallery/{css/img → img}/youtube-play.png +0 -0
  740. /data/assets/themes/j1/modules/lightGallery/js/{modules → plugins}/j1/j1-video.js +0 -0
  741. /data/assets/themes/j1/modules/lightGallery/js/{modules → plugins}/j1/j1-video.min.js +0 -0
@@ -0,0 +1,1818 @@
1
+ # Vimeo Player API [![npm](https://img.shields.io/npm/v/@vimeo/player.svg?cacheSeconds=120)](https://www.npmjs.com/package/@vimeo/player) [![Coverage](https://img.shields.io/codecov/c/github/vimeo/player.js.svg?cacheSeconds=120)](https://codecov.io/gh/vimeo/player.js) ![Badge size](https://img.badgesize.io/https://raw.githubusercontent.com/vimeo/player.js/master/dist/player.min.js?compression=gzip&label=gzip)
2
+
3
+ The Vimeo Player API allows you to interact with and control an embedded Vimeo
4
+ Player.
5
+
6
+ ## Installation
7
+
8
+ You can install the Vimeo Player API through either npm:
9
+
10
+ ```bash
11
+ npm install @vimeo/player
12
+ ```
13
+
14
+ Alternatively, you can reference an up‐to‐date version on our CDN:
15
+
16
+ ```html
17
+ <script src="https://player.vimeo.com/api/player.js"></script>
18
+ ```
19
+
20
+ **Warning:** when used with RequireJS it's required to load the script dynamically via the RequireJS load system.
21
+ http://www.requirejs.org/docs/api.html#jsfiles
22
+
23
+ ## Getting Started
24
+
25
+ In order to control the Vimeo player, you need a player to control. There are a
26
+ few ways to get a player:
27
+
28
+ ### Pre-existing player
29
+
30
+ Already have a player on the page? Pass the element to the `Vimeo.Player`
31
+ constructor and you’re ready to go.
32
+
33
+ ```html
34
+ <iframe src="https://player.vimeo.com/video/76979871?h=8272103f6e" width="640" height="360" frameborder="0" allowfullscreen allow="autoplay; encrypted-media"></iframe>
35
+
36
+ <script src="https://player.vimeo.com/api/player.js"></script>
37
+ <script>
38
+ const iframe = document.querySelector('iframe');
39
+ const player = new Vimeo.Player(iframe);
40
+
41
+ player.on('play', function() {
42
+ console.log('played the video!');
43
+ });
44
+
45
+ player.getVideoTitle().then(function(title) {
46
+ console.log('title:', title);
47
+ });
48
+ </script>
49
+ ```
50
+
51
+ ### Create with a video id or url
52
+
53
+ You can use the library to make the embed for you. All you need is an empty
54
+ element and the video id or vimeo.com url (and optional
55
+ [embed options](#embed-options)).
56
+
57
+ **NOTE:** If the video [privacy settings](https://vimeo.zendesk.com/hc/en-us/articles/224817847-Privacy-settings-overview) are "Private", instead of providing an `id` property, you will need to provide the full video URL as a `url` property and include the `h` parameter.
58
+
59
+ ```html
60
+ <div id="made-in-ny"></div>
61
+
62
+ <script src="https://player.vimeo.com/api/player.js"></script>
63
+ <script>
64
+ const options = {
65
+ id: 59777392,
66
+ width: 640,
67
+ loop: true
68
+ };
69
+
70
+ const player = new Vimeo.Player('made-in-ny', options);
71
+
72
+ player.setVolume(0);
73
+
74
+ player.on('play', function() {
75
+ console.log('played the video!');
76
+ });
77
+ </script>
78
+ ```
79
+
80
+ ### Automatically with HTML attributes
81
+
82
+ When the library loads, it will scan your page for elements with Vimeo
83
+ attributes. Each element must have at least a `data-vimeo-id` or
84
+ `data-vimeo-url` attribute in order for the embed to be created automatically.
85
+ You can also add attributes for any of the [embed options](#embed-options),
86
+ prefixed with `data-vimeo` (`data-vimeo-portrait="false"`, for example).
87
+
88
+ **NOTE:** If the video [privacy settings](https://vimeo.zendesk.com/hc/en-us/articles/224817847-Privacy-settings-overview) are "Private", instead of providing a `data-vimeo-id` attribute, you will need to provide the full video URL in a `data-vimeo-url` attribute and include the `h` parameter.
89
+
90
+ ```html
91
+ <div data-vimeo-id="19231868" data-vimeo-width="640" id="handstick"></div>
92
+ <div data-vimeo-url="https://player.vimeo.com/video/76979871?h=8272103f6e" id="playertwo"></div>
93
+
94
+ <script src="https://player.vimeo.com/api/player.js"></script>
95
+ <script>
96
+ // If you want to control the embeds, you’ll need to create a Player object.
97
+ // You can pass either the `<div>` or the `<iframe>` created inside the div.
98
+ const handstickPlayer = new Vimeo.Player('handstick');
99
+ handstickPlayer.on('play', function() {
100
+ console.log('played the handstick video!');
101
+ });
102
+
103
+ const playerTwoPlayer = new Vimeo.Player('playertwo');
104
+ playerTwoPlayer.on('play', function() {
105
+ console.log('played the player 2.0 video!');
106
+ });
107
+ </script>
108
+ ```
109
+
110
+ ## Browser Support
111
+
112
+ The Player API library is supported in IE 11+, Chrome, Firefox, Safari, and
113
+ Opera.
114
+
115
+ ## Migrate from Froogaloop
116
+
117
+ Using our old Froogaloop library? See the [migration doc](docs/migrate-from-froogaloop.md)
118
+ for details on how to update your code to use this library.
119
+
120
+ ## Using with a module bundler
121
+
122
+ If you’re using a module bundler like [webpack](https://webpack.js.org) or
123
+ [rollup](http://rollupjs.org/), the exported object will be the Player
124
+ constructor (unlike the browser where it is attached to `window.Vimeo`):
125
+
126
+ ```js
127
+ import Player from '@vimeo/player';
128
+
129
+ const player = new Player('handstick', {
130
+ id: 19231868,
131
+ width: 640
132
+ });
133
+
134
+ player.on('play', function() {
135
+ console.log('played the video!');
136
+ });
137
+ ```
138
+
139
+ Similarly, if you’re using [RequireJS](http://www.requirejs.org) in the browser,
140
+ it will also import the Player constructor directly:
141
+
142
+ ```html
143
+ <iframe src="https://player.vimeo.com/video/76979871?h=8272103f6e" width="640" height="360" frameborder="0" allowfullscreen allow="autoplay; encrypted-media"></iframe>
144
+
145
+ <script>
146
+ require(['https://player.vimeo.com/api/player.js'], function (Player) {
147
+ const iframe = document.querySelector('iframe');
148
+ const player = new Player(iframe);
149
+
150
+ player.on('play', function() {
151
+ console.log('played the video!');
152
+ });
153
+ });
154
+ </script>
155
+ ```
156
+
157
+ ## Table of Contents
158
+
159
+ * [Create a Player](#create-a-player)
160
+ * [Embed Options](#embed-options)
161
+ * [Methods](#methods)
162
+ + [on](#onevent-string-callback-function-void)
163
+ + [off](#offevent-string-callback-function-void)
164
+ + [loadVideo](#loadvideooptions-numberobject-promisenumberobject-typeerrorpassworderrorerror)
165
+ + [ready](#ready-promisevoid-error)
166
+ + [enableTextTrack](#enabletexttracklanguage-string-kind-string-promiseobject-invalidtracklanguageerrorinvalidtrackerrorerror)
167
+ + [disableTextTrack](#disabletexttrack-promisevoid-error)
168
+ + [pause](#pause-promisevoid-passworderrorprivacyerrorerror)
169
+ + [play](#play-promisevoid-passworderrorprivacyerrorerror)
170
+ + [unload](#unload-promisevoid-error)
171
+ + [destroy](#destroy-promisevoid-error)
172
+ + [requestFullscreen](#requestfullscreen-promisevoid-error)
173
+ + [exitFullscreen](#exitfullscreen-promisevoid-error)
174
+ + [getFullscreen](#getfullscreen-promiseboolean-error)
175
+ + [requestPictureInPicture](#requestpictureinpicture-promisevoid-error)
176
+ + [exitPictureInPicture](#exitpictureinpicture-promisevoid-error)
177
+ + [getPictureInPicture](#getpictureinpicture-promiseboolean-error)
178
+ + [remotePlaybackPrompt](#remoteplaybackprompt-promisevoid-error)
179
+ + [getRemotePlaybackAvailability](#getremoteplaybackavailability-promisestring-error)
180
+ + [getRemotePlaybackState](#getremoteplaybackstate-promiseboolean-error)
181
+ + [getAutopause](#getautopause-promiseboolean-unsupportederrorerror)
182
+ + [setAutopause](#setautopauseautopause-boolean-promiseboolean-unsupportederrorerror)
183
+ + [getBuffered](#getbuffered-promisearray-error)
184
+ + [getChapters](#getchapters-promisearray-error)
185
+ + [getCurrentChapter](#getcurrentchapter-promiseobject-error)
186
+ + [getColor](#getcolor-promisestring-error)
187
+ + [getColors](#getcolors-promisestring-error)
188
+ + [setColor](#setcolorcolor-string-promisestring-contrasterrortypeerrorerror)
189
+ + [setColors](#setcolorscolors-string-promisestring-contrasterrortypeerrorerror)
190
+ + [addCuePoint](#addcuepointtime-number-data-object-promisestring-unsupportederrorrangeerrorerror)
191
+ + [removeCuePoint](#removecuepointid-string-promisestring-unsupportederrorinvalidcuepointerror)
192
+ + [getCuePoints](#getcuepoints-promisearray-unsupportederrorerror)
193
+ + [getCurrentTime](#getcurrenttime-promisenumber-error)
194
+ + [setCurrentTime](#setcurrenttimeseconds-number-promisenumber-rangeerrorerror)
195
+ + [getDuration](#getduration-promisenumber-error)
196
+ + [getEnded](#getended-promiseboolean-error)
197
+ + [getLoop](#getloop-promiseboolean-error)
198
+ + [setLoop](#setlooploop-boolean-promiseboolean-error)
199
+ + [getMuted](#getmuted-promiseboolean-error)
200
+ + [setMuted](#setmuted-boolean-promiseboolean-error)
201
+ + [getPaused](#getpaused-promiseboolean-error)
202
+ + [getPlaybackRate](#getplaybackrate-promisenumber-error)
203
+ + [setPlaybackRate](#setplaybackrateplaybackrate-number-promisenumber-rangeerrorerror)
204
+ + [getPlayed](#getplayed-promisearray-error)
205
+ + [getSeekable](#getseekable-promisearray-error)
206
+ + [getSeeking](#getseeking-promiseboolean-error)
207
+ + [getTextTracks](#gettexttracks-promiseobject-error)
208
+ + [getVideoEmbedCode](#getvideoembedcode-promisestring-error)
209
+ + [getVideoId](#getvideoid-promisenumber-error)
210
+ + [getVideoTitle](#getvideotitle-promisestring-error)
211
+ + [getVideoWidth](#getvideowidth-promisenumber-error)
212
+ + [getVideoHeight](#getvideoheight-promisenumber-error)
213
+ + [getVideoUrl](#getvideourl-promisestring-privacyerrorerror)
214
+ + [getVolume](#getvolume-promisenumber-error)
215
+ + [setVolume](#setvolumevolume-number-promisenumber-rangeerrorerror)
216
+ + [setTimingSrc](#settimingsrctimingobject-timingobject-options-timingsrcconnectoroptions-promisetimingsrcconnector)
217
+ + [getQualities](#getqualities-promiseobject-error)
218
+ + [getQuality](#getquality-promisestring-error)
219
+ + [setQuality](#setqualityquality-string-promisestring-typeerrorerror)
220
+ + [getCameraProps](#getcameraprops-promiseobject-error)
221
+ + [setCameraProps](#setcamerapropscameraprops-object-promiseobject-rangeerrorerror)
222
+ * [Events](#events)
223
+ + [play](#play)
224
+ + [playing](#playing)
225
+ + [pause](#pause)
226
+ + [ended](#ended)
227
+ + [timeupdate](#timeupdate)
228
+ + [progress](#progress)
229
+ + [seeking](#seeking)
230
+ + [seeked](#seeked)
231
+ + [texttrackchange](#texttrackchange)
232
+ + [chapterchange](#chapterchange)
233
+ + [cuechange](#cuechange)
234
+ + [cuepoint](#cuepoint)
235
+ + [volumechange](#volumechange)
236
+ + [playbackratechange](#playbackratechange)
237
+ + [bufferstart](#bufferstart)
238
+ + [bufferend](#bufferend)
239
+ + [error](#error)
240
+ + [loaded](#loaded)
241
+ + [durationchange](#durationchange)
242
+ + [fullscreenchange](#fullscreenchange)
243
+ + [qualitychange](#qualitychange)
244
+ + [camerachange](#camerachange)
245
+ + [resize](#resize)
246
+ + [enterpictureinpicture](#enterpictureinpicture)
247
+ + [leavepictureinpicture](#leavepictureinpicture)
248
+ + [remoteplaybackavailabilitychange](#remoteplaybackavailabilitychange)
249
+ + [remoteplaybackconnecting](#remoteplaybackconnecting)
250
+ + [remoteplaybackconnect](#remoteplaybackconnect)
251
+ + [remoteplaybackdisconnect](#remoteplaybackdisconnect)
252
+ + [interactivehotspotclicked](#interactivehotspotclicked)
253
+ + [interactiveoverlaypanelclicked](#interactiveoverlaypanelclicked)
254
+
255
+
256
+ ## Create a Player
257
+
258
+ The `Vimeo.Player` object wraps an iframe so you can interact with and control a
259
+ Vimeo Player embed.
260
+
261
+ ### Existing embed
262
+
263
+ If you already have a Vimeo `<iframe>` on your page, pass that element into the
264
+ constructor to get a `Player` object. You can also use jQuery to select the
265
+ element, or pass a string that matches the `id` of the `<iframe>`.
266
+
267
+ ```js
268
+ // Select with the DOM API
269
+ const iframe = document.querySelector('iframe');
270
+ const iframePlayer = new Vimeo.Player(iframe);
271
+
272
+ // Select with jQuery
273
+ // If multiple elements are selected, it will use the first element.
274
+ const jqueryPlayer = new Vimeo.Player($('iframe'));
275
+
276
+ // Select with the `<iframe>`’s id
277
+ // Assumes that there is an <iframe id="player1"> on the page.
278
+ const idPlayer = new Vimeo.Player('player1');
279
+ ```
280
+
281
+ ### Create an embed
282
+
283
+ Pass any element and an options object to the `Vimeo.Player` constructor to make
284
+ an embed inside that element. The options object should consist of either an
285
+ `id` or `url` and any other [embed options](#embed-options) for the embed.
286
+
287
+ **NOTE:** If the video [privacy settings](https://vimeo.zendesk.com/hc/en-us/articles/224817847-Privacy-settings-overview) are "Private", instead of providing an `id` property, you will need to provide the full video URL as a `url` property and include the `h` parameter.
288
+
289
+ ```html
290
+ <div id="made-in-ny"></div>
291
+
292
+ <script src="https://player.vimeo.com/api/player.js"></script>
293
+ <script>
294
+ const options = {
295
+ id: 59777392,
296
+ width: 640,
297
+ loop: true
298
+ };
299
+
300
+ // Will create inside the made-in-ny div:
301
+ // <iframe src="https://player.vimeo.com/video/59777392?h=ab882a04fd&loop=1" width="640" height="360" frameborder="0" allowfullscreen allow="autoplay; encrypted-media"></iframe>
302
+ const madeInNy = new Vimeo.Player('made-in-ny', options);
303
+ </script>
304
+ ```
305
+
306
+ Embed options will also be read from the `data-vimeo-*` attributes. Attributes
307
+ on the element will override any defined in the options object passed to the
308
+ constructor (similar to how the `style` attribute overrides styles defined in
309
+ CSS).
310
+
311
+ Elements with a `data-vimeo-id` or `data-vimeo-url` attribute will have embeds
312
+ created automatically when the player API library is loaded. You can use the
313
+ `data-vimeo-defer` attribute to prevent that from happening and create the embed
314
+ at a later time. This is useful for situations where the player embed wouldn’t
315
+ be visible right away, but only after some action was taken by the user (a
316
+ lightbox opened from clicking on a thumbnail, for example).
317
+
318
+ ```html
319
+ <div data-vimeo-id="59777392" data-vimeo-defer id="made-in-ny"></div>
320
+ <div data-vimeo-id="19231868" data-vimeo-defer data-vimeo-width="500" id="handstick"></div>
321
+
322
+ <script src="https://player.vimeo.com/api/player.js"></script>
323
+ <script>
324
+ const options = {
325
+ width: 640,
326
+ loop: true
327
+ };
328
+
329
+ // Will create inside the made-in-ny div:
330
+ // <iframe src="https://player.vimeo.com/video/59777392?h=ab882a04fd&loop=1" width="640" height="360" frameborder="0" allowfullscreen allow="autoplay; encrypted-media"></iframe>
331
+ const madeInNy = new Vimeo.Player('made-in-ny', options);
332
+
333
+ // Will create inside the handstick div:
334
+ // <iframe src="https://player.vimeo.com/video/19231868?h=1034d5269b&loop=1" width="500" height="281" frameborder="0" allowfullscreen allow="autoplay; encrypted-media"></iframe>
335
+ const handstick = new Vimeo.Player(document.getElementById('handstick'), options);
336
+ </script>
337
+ ```
338
+
339
+ ## Embed Options
340
+
341
+ These options are available to be appended to the query string of the player URL, used as `data-vimeo-` attributes on elements, or included as
342
+ an object passed to the `Vimeo.Player` constructor. The complete list of embed options can be found in our [official SDK documentation](https://developer.vimeo.com/player/sdk/embed).
343
+
344
+ ## Methods
345
+
346
+ You can call methods on the player by calling the function on the Player object:
347
+
348
+ ```js
349
+ player.play();
350
+ ```
351
+
352
+ All methods, except for `on()` and `off()` return a
353
+ [Promise](http://www.html5rocks.com/en/tutorials/es6/promises/). The Promise may
354
+ or may not resolve with a value, depending on the specific method.
355
+
356
+ ```js
357
+ player.disableTextTrack().then(function() {
358
+ // the track was disabled
359
+ }).catch(function(error) {
360
+ // an error occurred
361
+ });
362
+ ```
363
+
364
+ Promises for getters are resolved with the value of the property:
365
+
366
+ ```js
367
+ player.getLoop().then(function(loop) {
368
+ // whether or not the player is set to loop
369
+ });
370
+ ```
371
+
372
+ Promises for setters are resolved with the value set, or rejected with an error
373
+ if the set fails. For example:
374
+
375
+ ```js
376
+ player.setColor('#00adef').then(function(color) {
377
+ // the color that was set
378
+ }).catch(function(error) {
379
+ // an error occurred setting the color
380
+ });
381
+ ```
382
+
383
+ ### on(event: string, callback: function): void
384
+
385
+ Add an event listener for the specified event. Will call the callback with a
386
+ single parameter, `data`, that contains the data for that event. See
387
+ [events](#events) below for details.
388
+
389
+ ```js
390
+ const onPlay = function(data) {
391
+ // data is an object containing properties specific to that event
392
+ };
393
+
394
+ player.on('play', onPlay);
395
+ ```
396
+
397
+ ### off(event: string, callback?: function): void
398
+
399
+ Remove an event listener for the specified event. Will remove all listeners for
400
+ that event if a `callback` isn’t passed, or only that specific callback if it is
401
+ passed.
402
+
403
+ ```js
404
+ const onPlay = function(data) {
405
+ // data is an object containing properties specific to that event
406
+ };
407
+
408
+ player.on('play', onPlay);
409
+
410
+ // If later on you decide that you don’t need to listen for play anymore.
411
+ player.off('play', onPlay);
412
+
413
+ // Alternatively, `off` can be called with just the event name to remove all
414
+ // listeners.
415
+ player.off('play');
416
+ ```
417
+
418
+ ### loadVideo(options: number|string|object): Promise&lt;number|object, (TypeError|PasswordError|Error)&gt;
419
+
420
+ Load a new video into this embed. The promise will be resolved if the video is
421
+ successfully loaded, or it will be rejected if it could not be loaded.
422
+
423
+ **NOTE:** If the video [privacy settings](https://vimeo.zendesk.com/hc/en-us/articles/224817847-Privacy-settings-overview) are "Private", instead of providing an `id` argument, you will need to provide the full video URL as a `url` argument and include the `h` parameter.
424
+
425
+ ```js
426
+ player.loadVideo(76979871).then(function(id) {
427
+ // the video successfully loaded
428
+ }).catch(function(error) {
429
+ switch (error.name) {
430
+ case 'TypeError':
431
+ // the id was not a number
432
+ break;
433
+
434
+ case 'PasswordError':
435
+ // the video is password-protected and the viewer needs to enter the
436
+ // password first
437
+ break;
438
+
439
+ case 'PrivacyError':
440
+ // the video is password-protected or private
441
+ break;
442
+
443
+ default:
444
+ // some other error occurred
445
+ break;
446
+ }
447
+ });
448
+ ```
449
+
450
+ ### ready(): Promise&lt;void, Error&gt;
451
+
452
+ Trigger a function when the player iframe has initialized. You do not need to
453
+ wait for `ready` to trigger to begin adding event listeners or calling other
454
+ methods.
455
+
456
+ ```js
457
+ player.ready().then(function() {
458
+ // the player is ready
459
+ });
460
+ ```
461
+
462
+ ### enableTextTrack(language: string, kind?: string): Promise&lt;object, (InvalidTrackLanguageError|InvalidTrackError|Error)&gt;
463
+
464
+ Enable the text track with the specified language, and optionally the specified
465
+ kind (captions or subtitles).
466
+
467
+ When set via the API, the track language will not change the viewer’s stored
468
+ preference.
469
+
470
+ ```js
471
+ player.enableTextTrack('en').then(function(track) {
472
+ // track.language = the iso code for the language
473
+ // track.kind = 'captions' or 'subtitles'
474
+ // track.label = the human-readable label
475
+ }).catch(function(error) {
476
+ switch (error.name) {
477
+ case 'InvalidTrackLanguageError':
478
+ // no track was available with the specified language
479
+ break;
480
+
481
+ case 'InvalidTrackError':
482
+ // no track was available with the specified language and kind
483
+ break;
484
+
485
+ default:
486
+ // some other error occurred
487
+ break;
488
+ }
489
+ });
490
+ ```
491
+
492
+ ### disableTextTrack(): Promise&lt;void, Error&gt;
493
+
494
+ Disable the currently-active text track.
495
+
496
+ ```js
497
+ player.disableTextTrack().then(function() {
498
+ // the track was disabled
499
+ }).catch(function(error) {
500
+ // an error occurred
501
+ });
502
+ ```
503
+
504
+ ### pause(): Promise&lt;void, (PasswordError|PrivacyError|Error)&gt;
505
+
506
+ Pause the video if it’s playing.
507
+
508
+ ```js
509
+ player.pause().then(function() {
510
+ // the video was paused
511
+ }).catch(function(error) {
512
+ switch (error.name) {
513
+ case 'PasswordError':
514
+ // the video is password-protected and the viewer needs to enter the
515
+ // password first
516
+ break;
517
+
518
+ case 'PrivacyError':
519
+ // the video is private
520
+ break;
521
+
522
+ default:
523
+ // some other error occurred
524
+ break;
525
+ }
526
+ });
527
+ ```
528
+
529
+ ### play(): Promise&lt;void, (PasswordError|PrivacyError|Error)&gt;
530
+
531
+ Play the video if it’s paused. **Note:** on iOS and some other mobile devices,
532
+ you cannot programmatically trigger play. Once the viewer has tapped on the play
533
+ button in the player, however, you will be able to use this function.
534
+
535
+ ```js
536
+ player.play().then(function() {
537
+ // the video was played
538
+ }).catch(function(error) {
539
+ switch (error.name) {
540
+ case 'PasswordError':
541
+ // the video is password-protected and the viewer needs to enter the
542
+ // password first
543
+ break;
544
+
545
+ case 'PrivacyError':
546
+ // the video is private
547
+ break;
548
+
549
+ default:
550
+ // some other error occurred
551
+ break;
552
+ }
553
+ });
554
+ ```
555
+
556
+ ### unload(): Promise&lt;void, Error&gt;
557
+
558
+ Return the internal player (iframe) to its initial state.
559
+
560
+ ```js
561
+ player.unload().then(function() {
562
+ // the video was unloaded
563
+ }).catch(function(error) {
564
+ // an error occurred
565
+ });
566
+ ```
567
+ ### destroy(): Promise&lt;void, Error&gt;
568
+
569
+ Cleanup the player and remove it from the DOM.
570
+
571
+ It won't be usable and a new one should be constructed
572
+ in order to do any operations.
573
+
574
+ ```js
575
+ player.destroy().then(function() {
576
+ // the player was destroyed
577
+ }).catch(function(error) {
578
+ // an error occurred
579
+ });
580
+ ```
581
+
582
+ ### requestFullscreen(): Promise&lt;void, Error&gt;
583
+
584
+ Request the player enters fullscreen.
585
+
586
+ ```js
587
+ player.requestFullscreen().then(function() {
588
+ // the player entered fullscreen
589
+ }).catch(function(error) {
590
+ // an error occurred
591
+ });
592
+ ```
593
+
594
+ ### exitFullscreen(): Promise&lt;void, Error&gt;
595
+
596
+ Request the player exits fullscreen.
597
+
598
+ ```js
599
+ player.exitFullscreen().then(function() {
600
+ // the player exits fullscreen
601
+ }).catch(function(error) {
602
+ // an error occurred
603
+ });
604
+ ```
605
+
606
+ ### getFullscreen(): Promise&lt;boolean, Error&gt;
607
+
608
+ Checks whether the player is currently fullscreen.
609
+
610
+ ```js
611
+ player.getFullscreen().then(function(fullscreen) {
612
+ // fullscreen = whether fullscreen is turned on or off
613
+ }).catch(function(error) {
614
+ // an error occurred
615
+ });
616
+ ```
617
+
618
+ ### requestPictureInPicture(): Promise&lt;void, Error&gt;
619
+
620
+ Request the player enters picture-in-picture.
621
+
622
+ ```js
623
+ player.requestPictureInPicture().then(function() {
624
+ // the player entered picture-in-picture
625
+ }).catch(function(error) {
626
+ // an error occurred
627
+ });
628
+ ```
629
+
630
+ ### exitPictureInPicture(): Promise&lt;void, Error&gt;
631
+
632
+ Request the player exits picture-in-picture.
633
+
634
+ ```js
635
+ player.exitPictureInPicture().then(function() {
636
+ // the player exits picture-in-picture
637
+ }).catch(function(error) {
638
+ // an error occurred
639
+ });
640
+ ```
641
+
642
+ ### getPictureInPicture(): Promise&lt;boolean, Error&gt;
643
+
644
+ Checks whether the player is currently picture-in-picture.
645
+
646
+ ```js
647
+ player.getPictureInPicture().then(function(pip) {
648
+ // pip = whether picture-in-picture is turned on or off
649
+ }).catch(function(error) {
650
+ // an error occurred
651
+ });
652
+ ```
653
+
654
+ ### remotePlaybackPrompt(): Promise&lt;void, Error&gt;
655
+
656
+ Prompt the viewer to activate or deactivate a remote playback device, if one is available.
657
+
658
+ *Note:* This method may require user interaction directly with the player before working properly and must be triggered by a user interaction. It is best to wait for initial playback before calling this method.
659
+
660
+ ```js
661
+ player.remotePlaybackPrompt().then(function() {
662
+ // viewer has been prompted
663
+ }).catch(function(error) {
664
+ switch (error.name) {
665
+ case 'NotFoundError':
666
+ // remote playback is not supported or there is no device available
667
+ break;
668
+
669
+ default:
670
+ // some other error occurred
671
+ break;
672
+ }
673
+ });
674
+ ```
675
+
676
+ ### getRemotePlaybackAvailability(): Promise&lt;string, Error&gt;
677
+
678
+ Checks if there is a remote playback device available.
679
+
680
+ ```js
681
+ player.getRemotePlaybackAvailability().then(function(remotePlaybackAvailable) {
682
+ // remotePlaybackAvailable = whether there is a remote playback device available or not
683
+ }).catch(function(error) {
684
+ // an error occurred
685
+ })
686
+ ```
687
+
688
+ ### getRemotePlaybackState(): Promise&lt;boolean, Error&gt;
689
+
690
+ Get the current state of remote playback. Can be one of `connecting`, `connected`, or `disconnected`. These values are equivalent to the state values in the [Remote Playback API](http://developer.mozilla.org/en-US/docs/Web/API/RemotePlayback/state).
691
+
692
+ ```js
693
+ player.getRemotePlaybackState().then(function(remotePlaybackState) {
694
+ // remotePlaybackState === 'connecting': player is attempting to connect to the remote device
695
+ // remotePlaybackState === 'connected': player successfully connected and is playing on the remote playback device
696
+ // remotePlaybackState === 'disconnected': player is not connected to a remote playback device
697
+ }).catch(function(error) {
698
+ // an error occurred
699
+ })
700
+ ```
701
+
702
+ ### getAutopause(): Promise&lt;boolean, (UnsupportedError|Error)&gt;
703
+
704
+ Get the autopause behavior for this player.
705
+
706
+ ```js
707
+ player.getAutopause().then(function(autopause) {
708
+ // autopause = whether autopause is turned on or off
709
+ }).catch(function(error) {
710
+ switch (error.name) {
711
+ case 'UnsupportedError':
712
+ // Autopause is not supported with the current player or browser
713
+ break;
714
+
715
+ default:
716
+ // some other error occurred
717
+ break;
718
+ }
719
+ });
720
+ ```
721
+
722
+ ### setAutopause(autopause: boolean): Promise&lt;boolean, (UnsupportedError|Error)&gt;
723
+
724
+ Enable or disable the autopause behavior of this player. By default, when
725
+ another video is played in the same browser, this player will automatically
726
+ pause. Unless you have a specific reason for doing so, we recommend that you
727
+ leave autopause set to the default (`true`).
728
+
729
+ ```js
730
+ player.setAutopause(false).then(function(autopause) {
731
+ // autopause was turned off
732
+ }).catch(function(error) {
733
+ switch (error.name) {
734
+ case 'UnsupportedError':
735
+ // Autopause is not supported with the current player or browser
736
+ break;
737
+
738
+ default:
739
+ // some other error occurred
740
+ break;
741
+ }
742
+ });
743
+ ```
744
+
745
+ ### getBuffered(): Promise&lt;array, Error&gt;
746
+
747
+ Get the buffered time ranges of the video.
748
+
749
+ ```js
750
+ player.getBuffered().then(function(buffered) {
751
+ // buffered = an array of the buffered video time ranges.
752
+ }).catch(function(error) {
753
+ // an error occurred
754
+ });
755
+ ```
756
+
757
+ ### getChapters(): Promise&lt;array, Error&gt;
758
+
759
+ Get an array of the chapters that are on the video.
760
+
761
+ ```js
762
+ player.getChapters().then(function(chapters) {
763
+ // chapters = an array of chapters objects
764
+ }).catch(function(error) {
765
+ // an error occurred
766
+ });
767
+ ```
768
+ Each chapters object looks like this:
769
+
770
+ ```js
771
+ {
772
+ "startTime": 15,
773
+ "title": "Chapter Title",
774
+ "index": 1
775
+ }
776
+ ```
777
+
778
+ ### getCurrentChapter(): Promise&lt;object, Error&gt;
779
+
780
+ Get the current chapter. A chapter is "current" when the `currentTime` of the video is equal to or after its `startTime` and before the `startTime` of the next chapter or the end of the video.
781
+
782
+ ```js
783
+ player.getCurrentChapter().then(function(chapter) {
784
+ // chapter = a chapter object
785
+ }).catch(function(error) {
786
+ // an error occurred
787
+ });
788
+ ```
789
+
790
+ ### getColor(): Promise&lt;string, Error&gt;
791
+
792
+ Get the accent color for this player. Note that this is deprecated in place of `getColors`.
793
+ ```js
794
+ player.getColor().then(function(color) {
795
+ // color = the hex color of the player
796
+ }).catch(function(error) {
797
+ // an error occurred
798
+ });
799
+
800
+ ```
801
+
802
+ ### getColors(): Promise&lt;string[], Error&gt;
803
+
804
+ Get all colors used for this player.
805
+ The return value is an array of primary, accent, text/icon, and background.
806
+
807
+ ```js
808
+ player.getColors().then(function(colors) {
809
+ // colors = [primary, accent, text/icon, background]
810
+ }).catch(function(error) {
811
+ // an error occurred
812
+ });
813
+ ```
814
+
815
+ ### setColor(color: string): Promise&lt;string, (ContrastError|TypeError|Error)&gt;
816
+
817
+ Set the accent color of this player to a hex or rgb string. Setting the color may fail
818
+ if the owner of the video has set their embed preferences to force a specific
819
+ color. Note that this setter is deprecated and should be replaced with `setColors`.
820
+
821
+ ```js
822
+ player.setColor('#00adef').then(function(color) {
823
+ // color was successfully set
824
+ }).catch(function(error) {
825
+ switch (error.name) {
826
+
827
+ case 'TypeError':
828
+ // the string was not a valid hex or rgb color
829
+ break;
830
+
831
+ case 'EmbedSettingsError':
832
+ // the owner of the video has chosen to use a specific color
833
+ break;
834
+
835
+ default:
836
+ // some other error occurred
837
+ break;
838
+ }
839
+ });
840
+
841
+ ```
842
+
843
+ ### setColors(colors: string[]): Promise&lt;string[], (ContrastError|TypeError|Error)&gt;
844
+
845
+ Set all colors of this player with an array of hex values. Setting the color may fail
846
+ if the owner of the video has set their embed preferences to force a specific
847
+ color.
848
+
849
+ ```js
850
+ player.setColors(['abc', 'def', '123', '456']).then(function(color) {
851
+ // colors were successfully set
852
+ // Array order: [primary, accent, text/icon, background]
853
+ }).catch(function(error) {
854
+ switch (error.name) {
855
+
856
+ case 'TypeError':
857
+ // the string was not a valid hex or rgb color
858
+ break;
859
+
860
+ case 'EmbedSettingsError':
861
+ // the owner of the video has chosen to use a specific color
862
+ break;
863
+
864
+ default:
865
+ // some other error occurred
866
+ break;
867
+ }
868
+ });
869
+ ```
870
+
871
+ ### addCuePoint(time: number, data: object): Promise&lt;string, (UnsupportedError|RangeError|Error)&gt;
872
+
873
+ Add a cue point to the player. Cue points fire a `cuepoint` event when the
874
+ `currentTime` of the video passes the specified time. *Note:* cue points should
875
+ be accurate to within a tenth of a second, but the precision may vary based on
876
+ browser or environment.
877
+
878
+ ```js
879
+ player.addCuePoint(15, {
880
+ customKey: 'customValue'
881
+ }).then(function(id) {
882
+ // cue point was added successfully
883
+ }).catch(function(error) {
884
+ switch (error.name) {
885
+ case 'UnsupportedError':
886
+ // cue points are not supported with the current player or browser
887
+ break;
888
+
889
+ case 'RangeError':
890
+ // the time was less than 0 or greater than the video’s duration
891
+ break;
892
+
893
+ default:
894
+ // some other error occurred
895
+ break;
896
+ }
897
+ });
898
+ ```
899
+
900
+ ### removeCuePoint(id: string): Promise&lt;string, (UnsupportedError|InvalidCuePoint|Error)&gt;
901
+
902
+ Remove the specified cue point using the id returned from `addCuePoint()` or
903
+ from `getCuePoints()`.
904
+
905
+ ```js
906
+ player.removeCuePoint('09ecf4e4-b587-42cf-ad9f-e666b679c9ab').then(function(id) {
907
+ // cue point was removed successfully
908
+ }).catch(function(error) {
909
+ switch (error.name) {
910
+ case 'UnsupportedError':
911
+ // cue points are not supported with the current player or browser
912
+ break;
913
+
914
+ case 'InvalidCuePoint':
915
+ // a cue point with the id passed wasn’t found
916
+ break;
917
+
918
+ default:
919
+ // some other error occurred
920
+ break;
921
+ }
922
+ });
923
+ ```
924
+
925
+ ### getCuePoints(): Promise&lt;array, (UnsupportedError|Error)&gt;
926
+
927
+ Get an array of the cue points that have been added to the video.
928
+
929
+ ```js
930
+ player.getCuePoints().then(function(cuePoints) {
931
+ // cuePoints = an array of cue point objects
932
+ }).catch(function(error) {
933
+ switch (error.name) {
934
+ case 'UnsupportedError':
935
+ // cue points are not supported with the current player or browser
936
+ break;
937
+
938
+ default:
939
+ // some other error occurred
940
+ break;
941
+ }
942
+ });
943
+ ```
944
+ Each cue point object looks like this:
945
+
946
+ ```js
947
+ {
948
+ "time": 15,
949
+ "data": {
950
+ "customKey": "customValue"
951
+ },
952
+ "id": "09ecf4e4-b587-42cf-ad9f-e666b679c9ab"
953
+ }
954
+ ```
955
+
956
+ ### getCurrentTime(): Promise&lt;number, Error&gt;
957
+
958
+ Get the current playback position in seconds.
959
+
960
+ ```js
961
+ player.getCurrentTime().then(function(seconds) {
962
+ // seconds = the current playback position
963
+ }).catch(function(error) {
964
+ // an error occurred
965
+ });
966
+ ```
967
+
968
+ ### setCurrentTime(seconds: number): Promise&lt;number, (RangeError|Error)&gt;
969
+
970
+ Set the current playback position in seconds. Once playback has started, if the
971
+ player was paused, it will remain paused. Likewise, if the player was playing,
972
+ it will resume playing once the video has buffered. Setting the current time
973
+ before playback has started will cause playback to start.
974
+
975
+ You can provide an accurate time and the player will attempt to seek to as close
976
+ to that time as possible. The exact time will be the fulfilled value of the
977
+ promise.
978
+
979
+ ```js
980
+ player.setCurrentTime(30.456).then(function(seconds) {
981
+ // seconds = the actual time that the player seeked to
982
+ }).catch(function(error) {
983
+ switch (error.name) {
984
+ case 'RangeError':
985
+ // the time was less than 0 or greater than the video’s duration
986
+ break;
987
+
988
+ default:
989
+ // some other error occurred
990
+ break;
991
+ }
992
+ });
993
+ ```
994
+
995
+ ### getDuration(): Promise&lt;number, Error&gt;
996
+
997
+ Get the duration of the video in seconds. It will be rounded to the nearest
998
+ second before playback begins, and to the nearest thousandth of a second after
999
+ playback begins.
1000
+
1001
+ ```js
1002
+ player.getDuration().then(function(duration) {
1003
+ // duration = the duration of the video in seconds
1004
+ }).catch(function(error) {
1005
+ // an error occurred
1006
+ });
1007
+ ```
1008
+
1009
+ ### getEnded(): Promise&lt;boolean, Error&gt;
1010
+
1011
+ Get the ended state of the video. The video has ended if
1012
+ `currentTime === duration`.
1013
+
1014
+ ```js
1015
+ player.getEnded().then(function(ended) {
1016
+ // ended = whether or not the video has ended
1017
+ }).catch(function(error) {
1018
+ // an error occurred
1019
+ });
1020
+ ```
1021
+
1022
+ ### getLoop(): Promise&lt;boolean, Error&gt;
1023
+
1024
+ Get the loop state of the player.
1025
+
1026
+ ```js
1027
+ player.getLoop().then(function(loop) {
1028
+ // loop = whether loop is turned on or not
1029
+ }).catch(function(error) {
1030
+ // an error occurred
1031
+ });
1032
+ ```
1033
+
1034
+ ### setLoop(loop: boolean): Promise&lt;boolean, Error&gt;
1035
+
1036
+ Set the loop state of the player. When set to `true`, the player will start over
1037
+ immediately once playback ends. *Note:* when loop is turned on, the `ended`
1038
+ event will not fire.
1039
+
1040
+ ```js
1041
+ player.setLoop(true).then(function(loop) {
1042
+ // loop was turned on
1043
+ }).catch(function(error) {
1044
+ // an error occurred
1045
+ });
1046
+ ```
1047
+
1048
+ ### getMuted(): Promise&lt;boolean, Error&gt;
1049
+
1050
+ Get the muted state of the player.
1051
+
1052
+ ```js
1053
+ player.getMuted().then(function(muted) {
1054
+ // muted = whether muted is turned on or not
1055
+ }).catch(function(error) {
1056
+ // an error occurred
1057
+ });
1058
+ ```
1059
+
1060
+ ### setMuted(muted: boolean): Promise&lt;boolean, Error&gt;
1061
+
1062
+ Set the muted state of the player. When set to `true`, the player volume will be muted.
1063
+
1064
+ ```js
1065
+ player.setMuted(true).then(function(muted) {
1066
+ // muted was turned on
1067
+ }).catch(function(error) {
1068
+ // an error occurred
1069
+ });
1070
+ ```
1071
+
1072
+ ### getPaused(): Promise&lt;boolean, Error&gt;
1073
+
1074
+ Get the paused state of the player.
1075
+
1076
+ ```js
1077
+ player.getPaused().then(function(paused) {
1078
+ // paused = whether or not the player is paused
1079
+ }).catch(function(error) {
1080
+ // an error occurred
1081
+ });
1082
+ ```
1083
+
1084
+ ### getPlaybackRate(): Promise&lt;number, Error&gt;
1085
+
1086
+ Get the playback rate of the player on a scale from `0` to `2`.
1087
+
1088
+ ```js
1089
+ player.getPlaybackRate().then(function(playbackRate) {
1090
+ // playbackRate = a numeric value of the current playback rate
1091
+ }).catch(function(error) {
1092
+ // an error occurred
1093
+ });
1094
+ ```
1095
+
1096
+ ### setPlaybackRate(playbackRate: number): Promise&lt;number, (RangeError|Error)&gt;
1097
+
1098
+ Set the playback rate of the player on a scale from `0` to `2` (available to PRO and Business accounts). When set
1099
+ via the API, the playback rate will not be synchronized to other
1100
+ players or stored as the viewer's preference.
1101
+
1102
+ ```js
1103
+ player.setPlaybackRate(0.5).then(function(playbackRate) {
1104
+ // playback rate was set
1105
+ }).catch(function(error) {
1106
+ switch (error.name) {
1107
+ case 'RangeError':
1108
+ // the playback rate was less than 0 or greater than 2
1109
+ break;
1110
+
1111
+ default:
1112
+ // some other error occurred
1113
+ break;
1114
+ }
1115
+ });
1116
+ ```
1117
+
1118
+ ### getPlayed(): Promise&lt;array, Error&gt;
1119
+
1120
+ Get the played time ranges of the video.
1121
+
1122
+ ```js
1123
+ player.getPlayed().then(function(played) {
1124
+ // played = array values of the played video time ranges.
1125
+ }).catch(function(error) {
1126
+ // an error occurred
1127
+ });
1128
+ ```
1129
+
1130
+ ### getSeekable(): Promise&lt;array, Error&gt;
1131
+
1132
+ Get the video time ranges that are seekable.
1133
+
1134
+ ```js
1135
+ player.getSeekable().then(function(seekable) {
1136
+ // seekable = array values of the seekable video time ranges.
1137
+ }).catch(function(error) {
1138
+ // an error occurred
1139
+ });
1140
+ ```
1141
+
1142
+ ### getSeeking(): Promise&lt;boolean, Error&gt;
1143
+
1144
+ Get if the player is currently seeking.
1145
+
1146
+ ```js
1147
+ player.getSeeking().then(function(seeking) {
1148
+ // seeking = whether the player is seeking or not
1149
+ }).catch(function(error) {
1150
+ // an error occurred
1151
+ });
1152
+ ```
1153
+
1154
+ ### getTextTracks(): Promise&lt;object[], Error&gt;
1155
+
1156
+ Get an array of the text tracks that exist for the video. For example:
1157
+
1158
+ ```js
1159
+ player.getTextTracks().then(function(tracks) {
1160
+ // tracks = an array of track objects
1161
+ }).catch(function(error) {
1162
+ // an error occurred
1163
+ });
1164
+ ```
1165
+
1166
+ Each track object looks like this:
1167
+
1168
+ ```js
1169
+ {
1170
+ "label": "English CC",
1171
+ "language": "en",
1172
+ "kind": "captions",
1173
+ "mode": "showing"
1174
+ }
1175
+ ```
1176
+
1177
+ Kind can be either `captions` or `subtitles`. The mode can be either `showing`
1178
+ or `disabled`. Only one track can be `showing` at any given time; the rest will
1179
+ be `disabled`.
1180
+
1181
+ ### getVideoEmbedCode(): Promise&lt;string, Error&gt;
1182
+
1183
+ Get the `<iframe>` embed code for the video.
1184
+
1185
+ ```js
1186
+ player.getVideoEmbedCode().then(function(embedCode) {
1187
+ // embedCode = <iframe> embed code
1188
+ }).catch(function(error) {
1189
+ // an error occurred
1190
+ });
1191
+ ```
1192
+
1193
+ ### getVideoId(): Promise&lt;number, Error&gt;
1194
+
1195
+ Get the id of the video.
1196
+
1197
+ ```js
1198
+ player.getVideoId().then(function(id) {
1199
+ // id = the video id
1200
+ }).catch(function(error) {
1201
+ // an error occurred
1202
+ });
1203
+ ```
1204
+
1205
+ ### getVideoTitle(): Promise&lt;string, Error&gt;
1206
+
1207
+ Get the title of the video.
1208
+
1209
+ ```js
1210
+ player.getVideoTitle().then(function(title) {
1211
+ // title = the title of the video
1212
+ }).catch(function(error) {
1213
+ // an error occurred
1214
+ });
1215
+ ```
1216
+
1217
+ ### getVideoWidth(): Promise&lt;number, Error&gt;
1218
+
1219
+ Get the native width of the currently‐playing video. The width of the highest
1220
+ resolution available will be used before playback begins.
1221
+
1222
+ ```js
1223
+ player.getVideoWidth().then(function(width) {
1224
+ // width = the width of the video that is currently playing
1225
+ }).catch(function(error) {
1226
+ // an error occurred
1227
+ });
1228
+ ```
1229
+
1230
+ ### getVideoHeight(): Promise&lt;number, Error&gt;
1231
+
1232
+ Get the native height of the currently‐playing video. The height of the highest
1233
+ resolution available will be used before playback begins.
1234
+
1235
+ ```js
1236
+ player.getVideoHeight().then(function(height) {
1237
+ // height = the height of the video that is currently playing
1238
+ }).catch(function(error) {
1239
+ // an error occurred
1240
+ });
1241
+ ```
1242
+
1243
+ To get both the width and height, you can do this:
1244
+
1245
+ ```js
1246
+ Promise.all([player.getVideoWidth(), player.getVideoHeight()]).then(function(dimensions) {
1247
+ var width = dimensions[0];
1248
+ var height = dimensions[1];
1249
+ });
1250
+ ```
1251
+
1252
+ ### getVideoUrl(): Promise&lt;string, (PrivacyError|Error)&gt;
1253
+
1254
+ Get the [vimeo.com](https://vimeo.com) url for the video.
1255
+
1256
+ ```js
1257
+ player.getVideoUrl().then(function(url) {
1258
+ // url = the vimeo.com url for the video
1259
+ }).catch(function(error) {
1260
+ switch (error.name) {
1261
+ case 'PrivacyError':
1262
+ // the url isn’t available because of the video’s privacy setting
1263
+ break;
1264
+
1265
+ default:
1266
+ // some other error occurred
1267
+ break;
1268
+ }
1269
+ });
1270
+ ```
1271
+
1272
+ ### getVolume(): Promise&lt;number, Error&gt;
1273
+
1274
+ Get the current volume level of the player on a scale from `0` to `1`.
1275
+
1276
+ Most mobile devices do not support an independent volume from the system volume.
1277
+ In those cases, this method will always return `1`.
1278
+
1279
+ ```js
1280
+ player.getVolume().then(function(volume) {
1281
+ // volume = the volume level of the player
1282
+ }).catch(function(error) {
1283
+ // an error occurred
1284
+ });
1285
+ ```
1286
+
1287
+ ### setVolume(volume: number): Promise&lt;number, (RangeError|Error)&gt;
1288
+
1289
+ Set the volume of the player on a scale from `0` to `1`. When set via the API,
1290
+ the volume level will not be synchronized to other players or stored as the
1291
+ viewer’s preference.
1292
+
1293
+ Most mobile devices (including iOS and Android) do not support setting the
1294
+ volume because the volume is controlled at the system level. An error will *not*
1295
+ be triggered in that situation.
1296
+
1297
+ ```js
1298
+ player.setVolume(0.5).then(function(volume) {
1299
+ // volume was set
1300
+ }).catch(function(error) {
1301
+ switch (error.name) {
1302
+ case 'RangeError':
1303
+ // the volume was less than 0 or greater than 1
1304
+ break;
1305
+
1306
+ default:
1307
+ // some other error occurred
1308
+ break;
1309
+ }
1310
+ });
1311
+ ```
1312
+
1313
+ ### setTimingSrc(timingObject: TimingObject, options?: TimingSrcConnectorOptions): Promise&lt;TimingSrcConnector&gt;
1314
+
1315
+ Syncs a Timing Object to the video player (https://webtiming.github.io/timingobject/)
1316
+
1317
+
1318
+ ```console
1319
+ npm install @vimeo/player timing-object
1320
+ ```
1321
+
1322
+ ```html
1323
+ <div id="handstick"></div>
1324
+ ```
1325
+
1326
+ ```js
1327
+ import Player from '@vimeo/player';
1328
+ import {TimingObject} from 'timing-object';
1329
+
1330
+ const player = new Player('handstick', {
1331
+ id: 19231868,
1332
+ width: 640
1333
+ });
1334
+
1335
+ const timingObject = new TimingObject();
1336
+
1337
+ player.setTimingSrc(timingObject)
1338
+ // any update to the timing object will reflect in the player
1339
+
1340
+ player.setTimingSrc(timingObject, {role: 'controller'})
1341
+ // any update to the player will reflect in the timing object
1342
+ ```
1343
+ See [TimingSrcConnectorOptions](src/lib/timing-src-connector.types.ts) for available options.
1344
+
1345
+ See this [demo app](https://salmoro.github.io/vimeo-timing-object-demo/dist) which syncs video playback in real-time for all viewers.
1346
+
1347
+
1348
+ ### getQualities(): Promise&lt;object[], Error&gt;
1349
+
1350
+ Get the available qualities of the current video.
1351
+
1352
+ ```js
1353
+ player.getQualities().then(function(qualities) {
1354
+ // qualities = an array of quality objects
1355
+ }).catch(function(error) {
1356
+ // an error occurred
1357
+ });
1358
+ ```
1359
+
1360
+ Each quality object looks like this:
1361
+
1362
+ ```js
1363
+ {
1364
+ "label": "4K",
1365
+ "id": "2160p",
1366
+ "active": true
1367
+ }
1368
+ ```
1369
+
1370
+ ### getQuality(): Promise&lt;string, Error&gt;
1371
+
1372
+ Get the current selected quality.
1373
+
1374
+ ```js
1375
+ player.getQuality().then(function(quality) {
1376
+ // quality = the current selected quality
1377
+ }).catch(function(error) {
1378
+ // an error occurred
1379
+ });
1380
+ ```
1381
+
1382
+ ### setQuality(quality: string): Promise&lt;string, (TypeError|Error)&gt;
1383
+
1384
+ Set the quality of the video. (available to Plus, PRO and Business accounts)
1385
+
1386
+ ```js
1387
+ player.setQuality('720p').then(function(quality) {
1388
+ // quality was successfully set
1389
+ }).catch(function(error) {
1390
+ switch (error.name) {
1391
+ case 'TypeError':
1392
+ // the quality selected is not valid
1393
+ break;
1394
+
1395
+ default:
1396
+ // some other error occurred
1397
+ break;
1398
+ }
1399
+ });
1400
+ ```
1401
+
1402
+ ### getCameraProps(): Promise&lt;object, Error&gt;
1403
+
1404
+ Get the current camera properties for a 360° video.
1405
+
1406
+ ```js
1407
+ player.getCameraProps().then(function(cameraProps) {
1408
+ // cameraProps = the current camera properties
1409
+ }).catch(function(error) {
1410
+ // an error occurred
1411
+ });
1412
+ ```
1413
+
1414
+ Each `cameraProps` object looks like this:
1415
+
1416
+ ```js
1417
+ {
1418
+ "yaw": 360,
1419
+ "pitch": 90,
1420
+ "roll": 180,
1421
+ "fov": 45
1422
+ }
1423
+ ```
1424
+
1425
+ ### setCameraProps(cameraProps: object): Promise&lt;object, (RangeError|Error)&gt;
1426
+
1427
+ Set the camera properties for a 360° video.
1428
+
1429
+ ```js
1430
+ player.setCameraProps({
1431
+ "yaw": 360, // Number between 0 and 360, left and right.
1432
+ "pitch": 90, // Number between -90 and 90, up and down.
1433
+ "roll": 180, // Number between -180 and 180.
1434
+ "fov": 45 // The field of view in degrees.
1435
+ }).then(function(cameraProps) {
1436
+ // cameraProps was successfully set
1437
+ }).catch(function(error) {
1438
+ switch (error.name) {
1439
+ case 'RangeError':
1440
+ // one of the camera properties is out of range
1441
+ break;
1442
+
1443
+ default:
1444
+ // some other error occurred
1445
+ break;
1446
+ }
1447
+ });
1448
+ ```
1449
+
1450
+
1451
+ ## Events
1452
+
1453
+ You can listen for events in the player by attaching a callback using `.on()`:
1454
+
1455
+ ```js
1456
+ player.on('eventName', function(data) {
1457
+ // data is an object containing properties specific to that event
1458
+ });
1459
+ ```
1460
+
1461
+ The events are equivalent to the HTML5 video events (except for `cuechange`,
1462
+ which is slightly different).
1463
+
1464
+ To remove a listener, call `.off()` with the callback function:
1465
+
1466
+ ```js
1467
+ var callback = function() {};
1468
+
1469
+ player.off('eventName', callback);
1470
+ ```
1471
+
1472
+ If you pass only an event name, all listeners for that event will be removed.
1473
+
1474
+ ### play
1475
+
1476
+ Triggered when video playback is initiated.
1477
+
1478
+ ```js
1479
+ {
1480
+ duration: 61.857
1481
+ percent: 0
1482
+ seconds: 0
1483
+ }
1484
+ ```
1485
+
1486
+ ### playing
1487
+
1488
+ Triggered when the video starts playing.
1489
+
1490
+ ```js
1491
+ {
1492
+ duration: 61.857
1493
+ percent: 0
1494
+ seconds: 0
1495
+ }
1496
+ ```
1497
+
1498
+ ### pause
1499
+
1500
+ Triggered when the video pauses.
1501
+
1502
+ ```js
1503
+ {
1504
+ duration: 61.857
1505
+ percent: 0
1506
+ seconds: 0
1507
+ }
1508
+ ```
1509
+
1510
+ ### ended
1511
+
1512
+ Triggered any time the video playback reaches the end. *Note:* when loop is
1513
+ turned on, the `ended` event will not fire.
1514
+
1515
+ ```js
1516
+ {
1517
+ duration: 61.857
1518
+ percent: 1
1519
+ seconds: 61.857
1520
+ }
1521
+ ```
1522
+
1523
+ ### timeupdate
1524
+
1525
+ Triggered as the `currentTime` of the video updates. It generally fires every
1526
+ 250ms, but it may vary depending on the browser.
1527
+
1528
+ ```js
1529
+ {
1530
+ duration: 61.857
1531
+ percent: 0.049
1532
+ seconds: 3.034
1533
+ }
1534
+ ```
1535
+
1536
+ ### progress
1537
+
1538
+ Triggered as the video is loaded. Reports back the amount of the video that has
1539
+ been buffered.
1540
+
1541
+ ```js
1542
+ {
1543
+ duration: 61.857
1544
+ percent: 0.502
1545
+ seconds: 31.052
1546
+ }
1547
+ ```
1548
+
1549
+ ### seeking
1550
+
1551
+ Triggered when the player starts seeking to a specific time. A `timeupdate` event will
1552
+ also be fired at the same time.
1553
+
1554
+ ```js
1555
+ {
1556
+ duration: 61.857
1557
+ percent: 0.485
1558
+ seconds: 30
1559
+ }
1560
+ ```
1561
+
1562
+ ### seeked
1563
+
1564
+ Triggered when the player seeks to a specific time. A `timeupdate` event will
1565
+ also be fired at the same time.
1566
+
1567
+ ```js
1568
+ {
1569
+ duration: 61.857
1570
+ percent: 0.485
1571
+ seconds: 30
1572
+ }
1573
+ ```
1574
+
1575
+ ### texttrackchange
1576
+
1577
+ Triggered when the active text track (captions/subtitles) changes. The values
1578
+ will be null if text tracks are turned off.
1579
+
1580
+ ```js
1581
+ {
1582
+ kind: "captions",
1583
+ label: "English CC",
1584
+ language: "en"
1585
+ }
1586
+ ```
1587
+
1588
+ ### chapterchange
1589
+
1590
+ Triggered when the current chapter changes.
1591
+
1592
+ ```js
1593
+ {
1594
+ startTime: 15,
1595
+ title: "Chapter 1",
1596
+ index: 1
1597
+ }
1598
+ ```
1599
+
1600
+ The `index` property of each chapter is the place it holds in the order of all the chapters. It starts at 1.
1601
+
1602
+ ### cuechange
1603
+
1604
+ Triggered when the active cue for the current text track changes. It also fires
1605
+ when the active text track changes. There may be multiple cues active.
1606
+
1607
+ ```js
1608
+ {
1609
+ cues: [
1610
+ {
1611
+ html: "<i>Here at Vimeo, there's always <br>one thing on our minds:</i>",
1612
+ text: "<i>Here at Vimeo, there's always ↵one thing on our minds:</i>"
1613
+ }
1614
+ ],
1615
+ kind: "captions",
1616
+ label: "English CC",
1617
+ language: "en"
1618
+ }
1619
+ ```
1620
+
1621
+ The `text` property of each cue is the raw value parsed from the caption or
1622
+ subtitle file. The `html` property contains the HTML that the Player renders for
1623
+ that cue.
1624
+
1625
+ ### cuepoint
1626
+
1627
+ Triggered when the current time hits a registered cue point.
1628
+
1629
+ ```js
1630
+ {
1631
+ time: 15,
1632
+ data: {
1633
+ customKey: 'customValue'
1634
+ },
1635
+ id: "40f5722b-09aa-4060-a887-3c81aaa37cce"
1636
+ }
1637
+ ```
1638
+
1639
+ The `data` property will be the custom data provided in the `addCuePoint()`
1640
+ call, or an empty object if none was provided.
1641
+
1642
+ ### volumechange
1643
+
1644
+ Triggered when the volume in the player changes. Some devices do not support
1645
+ setting the volume of the video independently from the system volume, so this
1646
+ event will never fire on those devices.
1647
+
1648
+ ```js
1649
+ {
1650
+ volume: 0.5
1651
+ }
1652
+ ```
1653
+
1654
+ ### playbackratechange
1655
+
1656
+ Triggered when the playback rate of the video in the player changes. The ability to change rate can be disabled by the creator
1657
+ and the event will not fire for those videos. The new playback rate is returned with the event.
1658
+
1659
+ ```js
1660
+ {
1661
+ playbackRate: 1.5
1662
+ }
1663
+ ```
1664
+
1665
+ ### bufferstart
1666
+
1667
+ Triggered when buffering starts in the player. This is also triggered during preload and while seeking. There is no associated data with this event.
1668
+
1669
+
1670
+ ### bufferend
1671
+
1672
+ Triggered when buffering ends in the player. This is also triggered at the end of preload and seeking. There is no associated data with this event.
1673
+
1674
+
1675
+ ### error
1676
+
1677
+ Triggered when some kind of error is generated in the player. In general if you
1678
+ are using this API library, you should use `.catch()` on each method call
1679
+ instead of globally listening for error events.
1680
+
1681
+ If the error was generated from a method call, the name of that method will be
1682
+ included.
1683
+
1684
+ ```js
1685
+ {
1686
+ message: "#984220 does not meet minimum contrast ratio. We recommend using brighter colors. (You could try #d35e30 instead.) See WCAG 2.0 guidelines: http://www.w3.org/TR/WCAG/#visual-audio-contrast"
1687
+ method: "setColor"
1688
+ name: "ContrastError"
1689
+ }
1690
+ ```
1691
+
1692
+ ### loaded
1693
+
1694
+ Triggered when a new video is loaded in the player.
1695
+
1696
+ ```js
1697
+ {
1698
+ id: 76979871
1699
+ }
1700
+ ```
1701
+
1702
+ ### durationchange
1703
+
1704
+ Triggered when the duration attribute has been updated.
1705
+
1706
+ ```js
1707
+ {
1708
+ duration: 60
1709
+ }
1710
+ ```
1711
+
1712
+ ### fullscreenchange
1713
+
1714
+ Triggered when the player enters or exits fullscreen.
1715
+
1716
+ ```js
1717
+ {
1718
+ fullscreen: true
1719
+ }
1720
+ ```
1721
+
1722
+ ### qualitychange
1723
+
1724
+ Triggered when the set quality changes.
1725
+
1726
+ ```js
1727
+ {
1728
+ quality: '720p'
1729
+ }
1730
+ ```
1731
+
1732
+ ### camerachange
1733
+
1734
+ Triggered when any of the camera properties change for 360° videos.
1735
+
1736
+ ```js
1737
+ {
1738
+ yaw: 270,
1739
+ pitch: 90,
1740
+ roll: 0,
1741
+ fov: 45
1742
+ }
1743
+ ```
1744
+
1745
+ ### resize
1746
+
1747
+ Triggered when the intrinsic size of the media changes.
1748
+
1749
+ ```js
1750
+ {
1751
+ videoWidth: 1280,
1752
+ videoHeight: 720
1753
+ }
1754
+ ```
1755
+
1756
+ ### enterpictureinpicture
1757
+
1758
+ Triggered when the player enters picture-in-picture.
1759
+
1760
+ ### leavepictureinpicture
1761
+
1762
+ Triggered when the player leaves picture-in-picture.
1763
+
1764
+ ### remoteplaybackavailabilitychange
1765
+
1766
+ Triggered when the availability of remote playback changes.
1767
+
1768
+ Listening for this event is equivalent to the [RemotePlayback.watchAvailability() API](http://developer.mozilla.org/en-US/docs/Web/API/RemotePlayback/watchAvailability), except that there is no `cancelWatchAvailability()`. You can remove the listener for this event instead.
1769
+
1770
+ ### remoteplaybackconnecting
1771
+
1772
+ Triggered when the player is attempting to connect to a remote playback device.
1773
+
1774
+ ### remoteplaybackconnect
1775
+
1776
+ Triggered when the player has successfully connected to a remote playback device.
1777
+
1778
+ ### remoteplaybackdisconnect
1779
+
1780
+ Triggered when the player has disconnected from a remote playback device.
1781
+
1782
+ ### interactivehotspotclicked
1783
+
1784
+ Triggered when a hotspot is clicked.
1785
+
1786
+ ```js
1787
+ {
1788
+ action: 'seek', // event, none, overlay, seek, url
1789
+ actionPreference: {
1790
+ pauseOnAction: false, // on `event`, `overlay`, `seek`, `url` action
1791
+ overlayId: 864334, // on `overlay` action
1792
+ seekTo: 30, // on `seek` action
1793
+ url: 'https://your-url.com', // on `url` action
1794
+ },
1795
+ currentTime: 15.585,
1796
+ customPayloadData: null,
1797
+ hotspotId: 8148223
1798
+ }
1799
+ ```
1800
+
1801
+ ### interactiveoverlaypanelclicked
1802
+
1803
+ Triggered when the overlay panel (buttons or images) within the interactive overlay is clicked.
1804
+
1805
+ ```js
1806
+ {
1807
+ action: 'seek', // clickthrough, close, event, none, seek
1808
+ actionPreference: {
1809
+ pauseOnAction: true, // on `close`, `seek` action
1810
+ seekTo: 30, // on `seek` action
1811
+ url: 'https://your-url.com', // on `clickthrough` action
1812
+ },
1813
+ currentTime: 25.67,
1814
+ customPayloadData: null,
1815
+ overlayId: 864334,
1816
+ panelId: 'c47193a0-8320-4572-9bcd-8425851b36e9'
1817
+ }
1818
+ ```