j1-template 2024.3.16 → 2024.3.18
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/_includes/themes/j1/layouts/content_generator_collection.html +1 -1
- data/_includes/themes/j1/layouts/content_generator_news_panel_posts.html +1 -1
- data/_includes/themes/j1/layouts/content_generator_page.html +1 -1
- data/_includes/themes/j1/layouts/content_generator_post.html +1 -1
- data/_includes/themes/j1/layouts/content_generator_raw.html +1 -1
- data/_includes/themes/j1/layouts/layout_metadata_generator.html +1 -1
- data/_includes/themes/j1/layouts/layout_module_generator.html +1 -1
- data/_includes/themes/j1/layouts/layout_resource_generator.html +1 -1
- data/_includes/themes/j1/modules/attics/generator.html +1 -1
- data/_includes/themes/j1/modules/navigator/generator.html +1 -1
- data/_includes/themes/j1/modules/searcher/generator.html +1 -1
- data/_includes/themes/j1/modules/searcher/procedures/topsearch.proc +1 -1
- data/_includes/themes/j1/procedures/blocks/footer/boxes/about_box.proc +1 -1
- data/_includes/themes/j1/procedures/blocks/footer/boxes/contacts_box.proc +1 -1
- data/_includes/themes/j1/procedures/blocks/footer/boxes/issue.proc +1 -1
- data/_includes/themes/j1/procedures/blocks/footer/boxes/legal_statements.proc +1 -1
- data/_includes/themes/j1/procedures/blocks/footer/boxes/links_box.proc +1 -1
- data/_includes/themes/j1/procedures/blocks/footer/boxes/news_box.proc +1 -1
- data/_includes/themes/j1/procedures/blocks/footer/boxes/social_media_icons.proc +1 -1
- data/_includes/themes/j1/procedures/blocks/get_wave.proc +1 -1
- data/_includes/themes/j1/procedures/collections/create_collection_article_preview.proc +1 -1
- data/_includes/themes/j1/procedures/collections/pager.proc +1 -1
- data/_includes/themes/j1/procedures/global/attributes_loader.proc +1 -1
- data/_includes/themes/j1/procedures/global/collect_frontmatter_options.proc +1 -1
- data/_includes/themes/j1/procedures/global/collect_page_options.proc +1 -1
- data/_includes/themes/j1/procedures/global/create_bs_button.proc +1 -1
- data/_includes/themes/j1/procedures/global/create_word_cloud.proc +1 -1
- data/_includes/themes/j1/procedures/global/date-german.proc +1 -1
- data/_includes/themes/j1/procedures/global/get_category.proc +1 -1
- data/_includes/themes/j1/procedures/global/get_category_item.proc +1 -1
- data/_includes/themes/j1/procedures/global/get_documents_dir.proc +1 -1
- data/_includes/themes/j1/procedures/global/get_page_path.proc +1 -1
- data/_includes/themes/j1/procedures/global/get_page_url.proc +1 -1
- data/_includes/themes/j1/procedures/global/select_color.proc +1 -1
- data/_includes/themes/j1/procedures/global/select_font_size.proc +1 -1
- data/_includes/themes/j1/procedures/global/select_icon_size.proc +1 -1
- data/_includes/themes/j1/procedures/global/select_location.proc +1 -1
- data/_includes/themes/j1/procedures/global/set_base_vars_folders.proc +1 -1
- data/_includes/themes/j1/procedures/global/set_env_entry_document.proc +1 -1
- data/_includes/themes/j1/procedures/global/set_image_block.proc +1 -1
- data/_includes/themes/j1/procedures/global/setup.proc +1 -1
- data/_includes/themes/j1/procedures/layouts/content_writer.proc +1 -1
- data/_includes/themes/j1/procedures/layouts/default_writer.proc +1 -1
- data/_includes/themes/j1/procedures/layouts/module_writer.proc +1 -1
- data/_includes/themes/j1/procedures/layouts/resource_writer.proc +1 -1
- data/_includes/themes/j1/procedures/posts/collate_calendar.proc +1 -1
- data/_includes/themes/j1/procedures/posts/collate_list.proc +1 -1
- data/_includes/themes/j1/procedures/posts/collate_timeline.proc +1 -1
- data/_includes/themes/j1/procedures/posts/create_ad_block.proc +1 -1
- data/_includes/themes/j1/procedures/posts/create_series_header.proc +1 -1
- data/_includes/themes/j1/procedures/posts/pager.proc +1 -1
- data/_layouts/autopage_category.html +1 -1
- data/_layouts/autopage_collection.html +1 -1
- data/_layouts/autopage_collections_tags.html +1 -1
- data/_layouts/autopage_tags.html +1 -1
- data/_layouts/collection.html +1 -1
- data/_layouts/compress.html +1 -1
- data/_layouts/default.html +1 -1
- data/_layouts/home.html +1 -1
- data/_layouts/news_panel_posts.html +1 -1
- data/_layouts/page.html +1 -1
- data/_layouts/post.html +1 -1
- data/_layouts/raw.html +1 -1
- data/apps/public/cc/cc.yml +1 -1
- data/assets/data/amplitude.html +137 -66
- data/assets/data/authclient.html +1 -1
- data/assets/data/banner.html +2 -2
- data/assets/data/carousel.json +1 -1
- data/assets/data/cookieconsent.html +2 -2
- data/assets/data/docsearch.html +2 -2
- data/assets/data/fab.html +2 -2
- data/assets/data/footer.html +2 -2
- data/assets/data/galeries.html +2 -2
- data/assets/data/gallery_customizer.html +2 -2
- data/assets/data/gemini-ui.html +2 -2
- data/assets/data/iframes.html +2 -2
- data/assets/data/iso-3166-country-codes.json +1 -1
- data/assets/data/iso-639-language-codes.json +1 -1
- data/assets/data/j1_config.json +1 -1
- data/assets/data/masonry.html +2 -2
- data/assets/data/masterslider.html +2 -2
- data/assets/data/mdi_icons.json +1 -1
- data/assets/data/mdil_icons.json +1 -1
- data/assets/data/menu.html +2 -2
- data/assets/data/mmenu.html +2 -2
- data/assets/data/mmenu_sidebar.html +2 -2
- data/assets/data/mmenu_toc.html +2 -2
- data/assets/data/panel.html +2 -2
- data/assets/data/particles.yml +1 -1
- data/assets/data/private.json +1 -1
- data/assets/data/quicklinks.html +2 -2
- data/assets/data/rtext_resizer.html +2 -2
- data/assets/data/slick.html +2 -2
- data/assets/data/speak2me.html +2 -2
- data/assets/data/swiper.html +244 -0
- data/assets/data/swiper.json +84 -0
- data/assets/data/themes.bootswatch.json +1 -1
- data/assets/data/themes.json +1 -1
- data/assets/data/translator.html +1 -1
- data/assets/error_pages/HTTP204.html +1 -1
- data/assets/error_pages/HTTP400.html +1 -1
- data/assets/error_pages/HTTP401.html +1 -1
- data/assets/error_pages/HTTP403.html +1 -1
- data/assets/error_pages/HTTP404.html +1 -1
- data/assets/error_pages/HTTP444.html +1 -1
- data/assets/error_pages/HTTP445.html +1 -1
- data/assets/error_pages/HTTP446.html +1 -1
- data/assets/error_pages/HTTP447.html +1 -1
- data/assets/error_pages/HTTP448.html +1 -1
- data/assets/error_pages/HTTP500.html +1 -1
- data/assets/error_pages/HTTP501.html +1 -1
- data/assets/error_pages/HTTP502.html +1 -1
- data/assets/error_pages/HTTP503.html +1 -1
- data/assets/theme/j1/adapter/js/advertising.js +2 -2
- data/assets/theme/j1/adapter/js/algolia.js +2 -2
- data/assets/theme/j1/adapter/js/amplitude.30.js +1177 -0
- data/assets/theme/j1/adapter/js/amplitude.js +165 -132
- data/assets/theme/j1/adapter/js/analytics.js +2 -2
- data/assets/theme/j1/adapter/js/asciidoctor.js +2 -2
- data/assets/theme/j1/adapter/js/attic.js +2 -2
- data/assets/theme/j1/adapter/js/bmd.js +2 -2
- data/assets/theme/j1/adapter/js/carousel.js +2 -2
- data/assets/theme/j1/adapter/js/chatbot.js +2 -2
- data/assets/theme/j1/adapter/js/clipboard.js +2 -2
- data/assets/theme/j1/adapter/js/comments.js +2 -2
- data/assets/theme/j1/adapter/js/cookieConsent.js +2 -2
- data/assets/theme/j1/adapter/js/customFunctions.js +2 -2
- data/assets/theme/j1/adapter/js/customModule.js +2 -2
- data/assets/theme/j1/adapter/js/docsearch.js +2 -2
- data/assets/theme/j1/adapter/js/dropdowns.js +2 -2
- data/assets/theme/j1/adapter/js/fab.js +2 -2
- data/assets/theme/j1/adapter/js/gallery.js +2 -2
- data/assets/theme/j1/adapter/js/gemini.js +2 -2
- data/assets/theme/j1/adapter/js/iconPicker.js +2 -2
- data/assets/theme/j1/adapter/js/iconPickerPage.js +2 -2
- data/assets/theme/j1/adapter/js/iframer.js +2 -2
- data/assets/theme/j1/adapter/js/j1.js +5 -5
- data/assets/theme/j1/adapter/js/lazyLoader.js +2 -2
- data/assets/theme/j1/adapter/js/lightbox.js +2 -2
- data/assets/theme/j1/adapter/js/logger.js +2 -2
- data/assets/theme/j1/adapter/js/lunr.js +2 -2
- data/assets/theme/j1/adapter/js/masonry.js +2 -2
- data/assets/theme/j1/adapter/js/masterslider.js +4 -3
- data/assets/theme/j1/adapter/js/mmenu.js +2 -2
- data/assets/theme/j1/adapter/js/navigator.js +2 -2
- data/assets/theme/j1/adapter/js/particles.js +2 -2
- data/assets/theme/j1/adapter/js/rangeSlider.js +2 -2
- data/assets/theme/j1/adapter/js/rouge.js +2 -2
- data/assets/theme/j1/adapter/js/rtable.js +2 -2
- data/assets/theme/j1/adapter/js/rtextResizer.js +2 -2
- data/assets/theme/j1/adapter/js/scroller.js +2 -2
- data/assets/theme/j1/adapter/js/slick.js +2 -2
- data/assets/theme/j1/adapter/js/slimSelect.js +2 -2
- data/assets/theme/j1/adapter/js/speak2me.js +2 -2
- data/assets/theme/j1/adapter/js/swiper.js +503 -0
- data/assets/theme/j1/adapter/js/themeToggler.js +2 -2
- data/assets/theme/j1/adapter/js/themes.js +2 -2
- data/assets/theme/j1/adapter/js/toccer.js +2 -2
- data/assets/theme/j1/adapter/js/translator.js +2 -2
- data/assets/theme/j1/adapter/js/videojs.js +2 -2
- data/assets/theme/j1/adapter/js/waves.js +2 -2
- data/assets/theme/j1/core/country-flags/css/theme/uno.css +1 -1
- data/assets/theme/j1/core/country-flags/css/theme/uno.min.css +1 -1
- data/assets/theme/j1/modules/amplitudejs/css/theme/uno/dark/amplitude.css +14 -4
- data/assets/theme/j1/modules/amplitudejs/css/theme/uno/dark/amplitude.min.css +2 -2
- data/assets/theme/j1/modules/amplitudejs/css/theme/uno/dark/player/compact.css +1 -1
- data/assets/theme/j1/modules/amplitudejs/css/theme/uno/dark/player/compact.min.css +1 -1
- data/assets/theme/j1/modules/amplitudejs/css/theme/uno/dark/player/large.css +54 -7
- data/assets/theme/j1/modules/amplitudejs/css/theme/uno/dark/player/large.min.css +3 -2
- data/assets/theme/j1/modules/amplitudejs/css/theme/uno/dark/player/mini.css +1 -1
- data/assets/theme/j1/modules/amplitudejs/css/theme/uno/dark/player/mini.min.css +1 -1
- data/assets/theme/j1/modules/amplitudejs/js/amplitude.js +1 -1
- data/assets/theme/j1/modules/amplitudejs/js/amplitude.map +1 -1
- data/assets/theme/j1/modules/amplitudejs/js/amplitude.min.js +1 -1
- data/assets/theme/j1/modules/amplitudejs/js/tech/ytp.js +1621 -90
- data/assets/theme/j1/modules/amplitudejs/js/tech/ytp.min.js +14 -0
- data/assets/theme/j1/modules/amplitudejs/js/visualizations/bar.js +2 -2
- data/assets/theme/j1/modules/amplitudejs/js/visualizations/bar.min.js +1 -1
- data/assets/theme/j1/modules/amplitudejs/js/visualizations/circular-equalizer.js +32 -2
- data/assets/theme/j1/modules/amplitudejs/js/visualizations/circular-equalizer.min.js +1 -1
- data/assets/theme/j1/modules/amplitudejs/js/visualizations/frequency-analyzer.js +2 -2
- data/assets/theme/j1/modules/amplitudejs/js/visualizations/frequency-analyzer.min.js +1 -1
- data/assets/theme/j1/modules/amplitudejs/js/visualizations/michael-bromley.js +2 -2
- data/assets/theme/j1/modules/amplitudejs/js/visualizations/michael-bromley.min.js +1 -1
- data/assets/theme/j1/modules/amplitudejs/js/visualizations/template.js +2 -2
- data/assets/theme/j1/modules/amplitudejs/js/visualizations/template.min.js +1 -1
- data/assets/theme/j1/modules/amplitudejs/scss/theme/uno/dark/amplitude.scss +1 -1
- data/assets/theme/j1/modules/amplitudejs/scss/theme/uno/dark/player/compact.scss +1 -1
- data/assets/theme/j1/modules/amplitudejs/scss/theme/uno/dark/player/large.scss +1 -1
- data/assets/theme/j1/modules/amplitudejs/scss/theme/uno/dark/player/mini.scss +1 -1
- data/assets/theme/j1/modules/backstretch/js/backstretch.js +1 -1
- data/assets/theme/j1/modules/backstretch/js/backstretch.min.js +1 -1
- data/assets/theme/j1/modules/bmd/js/bmd.js +1 -1
- data/assets/theme/j1/modules/bmd/js/bmd.min.js +1 -1
- data/assets/theme/j1/modules/carousel/css/carousel.css +1 -1
- data/assets/theme/j1/modules/carousel/css/carousel.min.css +1 -1
- data/assets/theme/j1/modules/carousel/css/carousel_transitions.css +1 -1
- data/assets/theme/j1/modules/carousel/css/carousel_transitions.min.css +1 -1
- data/assets/theme/j1/modules/carousel/css/theme/uno.css +1 -1
- data/assets/theme/j1/modules/carousel/css/theme/uno.min.css +1 -1
- data/assets/theme/j1/modules/chatbot/css/theme/uno.css +1 -1
- data/assets/theme/j1/modules/chatbot/css/theme/uno.min.css +1 -1
- data/assets/theme/j1/modules/clipboard/css/theme/uno.css +1 -1
- data/assets/theme/j1/modules/clipboard/css/theme/uno.min.css +1 -1
- data/assets/theme/j1/modules/cookieConsent/js/cookieConsent.js +1 -1
- data/assets/theme/j1/modules/cookieConsent/js/cookieConsent.min.js +1 -1
- data/assets/theme/j1/modules/dropdowns/css/theme/uno/dropdowns.css +1 -1
- data/assets/theme/j1/modules/dropdowns/css/theme/uno/dropdowns.min.css +1 -1
- data/assets/theme/j1/modules/dropdowns/js/cash.js +1 -1
- data/assets/theme/j1/modules/dropdowns/js/cash.min.js +1 -1
- data/assets/theme/j1/modules/dropdowns/js/dropdowns.js +1 -1
- data/assets/theme/j1/modules/dropdowns/js/dropdowns.min.js +1 -1
- data/assets/theme/j1/modules/fab/js/cash.js +1 -1
- data/assets/theme/j1/modules/fab/js/cash.min.js +1 -1
- data/assets/theme/j1/modules/fab/js/fab.js +1 -1
- data/assets/theme/j1/modules/fab/js/fab.min.js +1 -1
- data/assets/theme/j1/modules/gemini/css/theme/uno.css +1 -1
- data/assets/theme/j1/modules/gemini/css/theme/uno.min.css +1 -1
- data/assets/theme/j1/modules/gemini/js/gemini.js +1 -1
- data/assets/theme/j1/modules/gemini/js/gemini.min.js +1 -1
- data/assets/theme/j1/modules/iconPicker/css/theme/uno.css +1 -1
- data/assets/theme/j1/modules/iconPicker/css/theme/uno.min.css +1 -1
- data/assets/theme/j1/modules/iconPicker/css/universal-icon-picker.css +1 -1
- data/assets/theme/j1/modules/iconPicker/css/universal-icon-picker.min.css +1 -1
- data/assets/theme/j1/modules/iconPicker/js/universal-icon-picker.js +1 -1
- data/assets/theme/j1/modules/iconPicker/js/universal-icon-picker.min.js +1 -1
- data/assets/theme/j1/modules/j1LazyLoader/LICENSE +1 -1
- data/assets/theme/j1/modules/jquery/js/extensions/hasClass.js +1 -1
- data/assets/theme/j1/modules/jquery/js/extensions/hasClass.min.js +1 -1
- data/assets/theme/j1/modules/jquery/js/extensions/removeClass.js +1 -1
- data/assets/theme/j1/modules/jquery/js/extensions/removeClass.min.js +1 -1
- data/assets/theme/j1/modules/justifiedGallery/css/justifiedGallery.css +1 -1
- data/assets/theme/j1/modules/justifiedGallery/css/justifiedGallery.min.css +1 -1
- data/assets/theme/j1/modules/justifiedGallery/css/theme/uno.css +1 -1
- data/assets/theme/j1/modules/justifiedGallery/css/theme/uno.min.css +1 -1
- data/assets/theme/j1/modules/lazyCssLoader/js/main.0.js +1 -1
- data/assets/theme/j1/modules/lazyCssLoader/js/main.1.js +1 -1
- data/assets/theme/j1/modules/lazyCssLoader/js/main.js +1 -1
- data/assets/theme/j1/modules/lightGallery/css/lg-transitions.css +1 -1
- data/assets/theme/j1/modules/lightGallery/css/lg-transitions.min.css +1 -1
- data/assets/theme/j1/modules/lightGallery/css/lightgallery-bundle.css +1 -1
- data/assets/theme/j1/modules/lightGallery/css/lightgallery-bundle.min.css +1 -1
- data/assets/theme/j1/modules/lightGallery/css/themes/uno/uno.css +1 -1
- data/assets/theme/j1/modules/lightGallery/css/themes/uno/uno.min.css +1 -1
- data/assets/theme/j1/modules/lightGallery/js/lightgallery.js +1 -1
- data/assets/theme/j1/modules/lightGallery/js/lightgallery.min.js +1 -1
- data/assets/theme/j1/modules/lightGallery/js/plugins/j1/j1-video.js +1 -1
- data/assets/theme/j1/modules/lightGallery/js/plugins/j1/j1-video.min.js +1 -1
- data/assets/theme/j1/modules/lightGallery/js/plugins/j1/lg-video.1.js +1 -1
- data/assets/theme/j1/modules/lightGallery/js/plugins/lg-autoplay.js +1 -1
- data/assets/theme/j1/modules/lightGallery/js/plugins/lg-autoplay.min.js +1 -1
- data/assets/theme/j1/modules/lightGallery/js/plugins/lg-comment.js +1 -1
- data/assets/theme/j1/modules/lightGallery/js/plugins/lg-comment.min.js +1 -1
- data/assets/theme/j1/modules/lightGallery/js/plugins/lg-fullscreen.js +1 -1
- data/assets/theme/j1/modules/lightGallery/js/plugins/lg-fullscreen.min.js +1 -1
- data/assets/theme/j1/modules/lightGallery/js/plugins/lg-hash.js +1 -1
- data/assets/theme/j1/modules/lightGallery/js/plugins/lg-hash.min.js +1 -1
- data/assets/theme/j1/modules/lightGallery/js/plugins/lg-medium-zoom.js +1 -1
- data/assets/theme/j1/modules/lightGallery/js/plugins/lg-medium-zoom.min.js +1 -1
- data/assets/theme/j1/modules/lightGallery/js/plugins/lg-pager.js +1 -1
- data/assets/theme/j1/modules/lightGallery/js/plugins/lg-pager.min.js +1 -1
- data/assets/theme/j1/modules/lightGallery/js/plugins/lg-rotate.js +1 -1
- data/assets/theme/j1/modules/lightGallery/js/plugins/lg-rotate.min.js +1 -1
- data/assets/theme/j1/modules/lightGallery/js/plugins/lg-share.js +1 -1
- data/assets/theme/j1/modules/lightGallery/js/plugins/lg-share.min.js +1 -1
- data/assets/theme/j1/modules/lightGallery/js/plugins/lg-thumbnail.js +1 -1
- data/assets/theme/j1/modules/lightGallery/js/plugins/lg-thumbnail.min.js +1 -1
- data/assets/theme/j1/modules/lightGallery/js/plugins/lg-video.js +1 -1
- data/assets/theme/j1/modules/lightGallery/js/plugins/lg-video.min.js +1 -1
- data/assets/theme/j1/modules/lightGallery/js/plugins/lg-vimeo-thumbnail.js +1 -1
- data/assets/theme/j1/modules/lightGallery/js/plugins/lg-vimeo-thumbnail.min.js +1 -1
- data/assets/theme/j1/modules/lightGallery/js/plugins/lg-zoom.js +1 -1
- data/assets/theme/j1/modules/lightGallery/js/plugins/lg-zoom.min.js +1 -1
- data/assets/theme/j1/modules/lightbox/css/lightbox.css +1 -1
- data/assets/theme/j1/modules/lightbox/css/lightbox.min.css +1 -1
- data/assets/theme/j1/modules/lightbox/css/theme/uno.css +1 -1
- data/assets/theme/j1/modules/lightbox/css/theme/uno.min.css +1 -1
- data/assets/theme/j1/modules/lightbox/js/lightbox.js +1 -1
- data/assets/theme/j1/modules/lightbox/js/lightbox.min.js +1 -1
- data/assets/theme/j1/modules/lunr/css/theme/uno.css +1 -1
- data/assets/theme/j1/modules/lunr/css/theme/uno.min.css +1 -1
- data/assets/theme/j1/modules/lunr/js/j1.js +1 -1
- data/assets/theme/j1/modules/lunr/js/j1.min.js +1 -1
- data/assets/theme/j1/modules/masterslider/css/theme/uno.css +1 -1
- data/assets/theme/j1/modules/masterslider/css/theme/uno.min.css +1 -1
- data/assets/theme/j1/modules/mmenuLight/css/mmenu-light.css +1 -1
- data/assets/theme/j1/modules/mmenuLight/css/mmenu-light.min.css +1 -1
- data/assets/theme/j1/modules/mmenuLight/css/theme/uno/mmenu.css +1 -1
- data/assets/theme/j1/modules/mmenuLight/css/theme/uno/mmenu.min.css +1 -1
- data/assets/theme/j1/modules/mmenuLight/js/mmenu.js +1 -1
- data/assets/theme/j1/modules/mmenuLight/js/mmenu.min.js +1 -1
- data/assets/theme/j1/modules/msDropdown/css/flags.css +1 -1
- data/assets/theme/j1/modules/msDropdown/css/flags.min.css +1 -1
- data/assets/theme/j1/modules/msDropdown/css/msDropdown.css +1 -1
- data/assets/theme/j1/modules/msDropdown/css/msDropdown.min.css +1 -1
- data/assets/theme/j1/modules/msDropdown/css/themes/uno/msDropdown.css +1 -1
- data/assets/theme/j1/modules/msDropdown/css/themes/uno/msDropdown.min.css +1 -1
- data/assets/theme/j1/modules/msDropdown/js/msDropdown.js +1 -1
- data/assets/theme/j1/modules/msDropdown/js/msDropdown.min.js +1 -1
- data/assets/theme/j1/modules/photoswipe/LICENSE +21 -0
- data/assets/theme/j1/modules/photoswipe/README.md +32 -0
- data/assets/theme/j1/modules/photoswipe/_info/.version_5.4.4 +6 -0
- data/assets/theme/j1/modules/photoswipe/_info/example/photoswipe-caption-plugin.html +237 -0
- data/assets/theme/j1/modules/photoswipe/_info/example/test-gallery.html +36 -0
- data/assets/theme/j1/modules/photoswipe/css/photoswipe-caption-plugin.css +69 -0
- data/assets/theme/j1/modules/photoswipe/css/photoswipe-caption-plugin.min.css +16 -0
- data/assets/theme/j1/modules/photoswipe/css/photoswipe.css +376 -0
- data/assets/theme/j1/modules/photoswipe/css/photoswipe.min.css +17 -0
- data/assets/theme/j1/modules/photoswipe/js/_info/README.md +43 -0
- data/assets/theme/j1/modules/photoswipe/js/photoswipe-caption-plugin.js +428 -0
- data/assets/theme/j1/modules/photoswipe/js/photoswipe-caption-plugin.min.js +18 -0
- data/assets/theme/j1/modules/photoswipe/js/photoswipe-core.js +7102 -0
- data/assets/theme/j1/modules/photoswipe/js/photoswipe-core.min.js +18 -0
- data/assets/theme/j1/modules/photoswipe/js/photoswipe-lightbox.1.js +1990 -0
- data/assets/theme/j1/modules/photoswipe/js/photoswipe-lightbox.js +1981 -0
- data/assets/theme/j1/modules/photoswipe/js/photoswipe-lightbox.min.js +18 -0
- data/assets/theme/j1/modules/rangeSlider/css/theme/uno/nouislider.css +1 -1
- data/assets/theme/j1/modules/rangeSlider/css/theme/uno/nouislider.min.css +1 -1
- data/assets/theme/j1/modules/rouge/css/base16/theme.css +1 -1
- data/assets/theme/j1/modules/rouge/css/base16/theme.min.css +1 -1
- data/assets/theme/j1/modules/rouge/css/base16.dark/theme.css +1 -1
- data/assets/theme/j1/modules/rouge/css/base16.dark/theme.min.css +1 -1
- data/assets/theme/j1/modules/rouge/css/base16.light/theme.css +1 -1
- data/assets/theme/j1/modules/rouge/css/base16.light/theme.min.css +1 -1
- data/assets/theme/j1/modules/rouge/css/base16.monokai/theme.css +1 -1
- data/assets/theme/j1/modules/rouge/css/base16.monokai/theme.min.css +1 -1
- data/assets/theme/j1/modules/rouge/css/base16.monokai.dark/theme.css +1 -1
- data/assets/theme/j1/modules/rouge/css/base16.monokai.dark/theme.min.css +1 -1
- data/assets/theme/j1/modules/rouge/css/base16.monokai.light/theme.css +1 -1
- data/assets/theme/j1/modules/rouge/css/base16.monokai.light/theme.min.css +1 -1
- data/assets/theme/j1/modules/rouge/css/base16.solarized/theme.css +1 -1
- data/assets/theme/j1/modules/rouge/css/base16.solarized/theme.min.css +1 -1
- data/assets/theme/j1/modules/rouge/css/base16.solarized.dark/theme.css +1 -1
- data/assets/theme/j1/modules/rouge/css/base16.solarized.dark/theme.min.css +1 -1
- data/assets/theme/j1/modules/rouge/css/base16.solarized.light/theme.css +1 -1
- data/assets/theme/j1/modules/rouge/css/base16.solarized.light/theme.min.css +1 -1
- data/assets/theme/j1/modules/rouge/css/colorful/theme.css +1 -1
- data/assets/theme/j1/modules/rouge/css/colorful/theme.min.css +1 -1
- data/assets/theme/j1/modules/rouge/css/github/theme.css +1 -1
- data/assets/theme/j1/modules/rouge/css/github/theme.min.css +1 -1
- data/assets/theme/j1/modules/rouge/css/gruvbox/theme.css +1 -1
- data/assets/theme/j1/modules/rouge/css/gruvbox/theme.min.css +1 -1
- data/assets/theme/j1/modules/rouge/css/gruvbox.dark/theme.css +1 -1
- data/assets/theme/j1/modules/rouge/css/gruvbox.dark/theme.min.css +1 -1
- data/assets/theme/j1/modules/rouge/css/gruvbox.light/theme.css +1 -1
- data/assets/theme/j1/modules/rouge/css/gruvbox.light/theme.min.css +1 -1
- data/assets/theme/j1/modules/rouge/css/igorpro/theme.css +1 -1
- data/assets/theme/j1/modules/rouge/css/igorpro/theme.min.css +1 -1
- data/assets/theme/j1/modules/rouge/css/molokai/theme.css +1 -1
- data/assets/theme/j1/modules/rouge/css/molokai/theme.min.css +1 -1
- data/assets/theme/j1/modules/rouge/css/monokai/theme.css +1 -1
- data/assets/theme/j1/modules/rouge/css/monokai/theme.min.css +1 -1
- data/assets/theme/j1/modules/rouge/css/monokai.sublime/theme.css +1 -1
- data/assets/theme/j1/modules/rouge/css/monokai.sublime/theme.min.css +1 -1
- data/assets/theme/j1/modules/rouge/css/pastie/theme.css +1 -1
- data/assets/theme/j1/modules/rouge/css/pastie/theme.min.css +1 -1
- data/assets/theme/j1/modules/rouge/css/thankful_eyes/theme.css +1 -1
- data/assets/theme/j1/modules/rouge/css/thankful_eyes/theme.min.css +1 -1
- data/assets/theme/j1/modules/rouge/css/themes.txt +1 -1
- data/assets/theme/j1/modules/rouge/css/tulip/theme.css +1 -1
- data/assets/theme/j1/modules/rouge/css/tulip/theme.min.css +1 -1
- data/assets/theme/j1/modules/rouge/css/uno.dark/theme.css +1 -1
- data/assets/theme/j1/modules/rouge/css/uno.dark/theme.min.css +1 -1
- data/assets/theme/j1/modules/rouge/css/uno.light/theme.css +1 -1
- data/assets/theme/j1/modules/rouge/css/uno.light/theme.min.css +1 -1
- data/assets/theme/j1/modules/rouge/js/select.js +1 -1
- data/assets/theme/j1/modules/rtable/css/theme/uno/rtable.css +1 -1
- data/assets/theme/j1/modules/rtable/css/theme/uno/rtable.min.css +1 -1
- data/assets/theme/j1/modules/rtable/js/rtable.js +1 -1
- data/assets/theme/j1/modules/rtable/js/rtable.min.js +1 -1
- data/assets/theme/j1/modules/scroller/css/theme/uno.css +1 -1
- data/assets/theme/j1/modules/scroller/css/theme/uno.min.css +1 -1
- data/assets/theme/j1/modules/scroller/js/scroller.min.js +1 -1
- data/assets/theme/j1/modules/slick/lightbox/css/theme/uno.css +1 -1
- data/assets/theme/j1/modules/slick/lightbox/css/theme/uno.min.css +1 -1
- data/assets/theme/j1/modules/slick/slider/css/theme/uno.css +1 -1
- data/assets/theme/j1/modules/slick/slider/css/theme/uno.min.css +1 -1
- data/assets/theme/j1/modules/spinner/css/spin.css +1 -1
- data/assets/theme/j1/modules/spinner/css/spin.min.css +1 -1
- data/assets/theme/j1/modules/spinner/js/spin.js +1 -1
- data/assets/theme/j1/modules/spinner/js/spin.min.js +1 -1
- data/assets/theme/j1/modules/swiper/LICENSE +20 -0
- data/assets/theme/j1/modules/swiper/README.md +95 -0
- data/assets/theme/j1/modules/swiper/_info/.version_1.2.0 +15 -0
- data/assets/theme/j1/modules/swiper/_info/swiperjs.com-demos.url +2 -0
- data/assets/theme/j1/modules/swiper/css/modules/effectNeighbor.css +53 -0
- data/assets/theme/j1/modules/swiper/css/modules/effectNeighbor.min.css +17 -0
- data/assets/theme/j1/modules/swiper/css/modules/effectPanorama.css +26 -0
- data/assets/theme/j1/modules/swiper/css/modules/effectPanorama.min.css +17 -0
- data/assets/theme/j1/modules/swiper/css/modules/effectThumbs.css +44 -0
- data/assets/theme/j1/modules/swiper/css/modules/effectThumbs.min.css +44 -0
- data/assets/theme/j1/modules/swiper/css/swiper-bundle.css +746 -0
- data/assets/theme/j1/modules/swiper/css/swiper-bundle.min..css +23 -0
- data/assets/theme/j1/modules/swiper/css/theme/uno.css +229 -0
- data/assets/theme/j1/modules/swiper/css/theme/uno.min.css +144 -0
- data/assets/theme/j1/modules/swiper/js/modules/!readme +3 -0
- data/assets/theme/j1/modules/swiper/js/modules/effectNeighbor.js +33 -0
- data/assets/theme/j1/modules/swiper/js/modules/effectNeighbor.min.js +33 -0
- data/assets/theme/j1/modules/swiper/js/modules/effectPanorama.js +93 -0
- data/assets/theme/j1/modules/swiper/js/modules/effectPanorama.min.js +17 -0
- data/assets/theme/j1/modules/swiper/js/modules/effectThumbs.js +113 -0
- data/assets/theme/j1/modules/swiper/js/modules/effectThumbs.min.js +33 -0
- data/assets/theme/j1/modules/swiper/js/swiper-bundle.js +9791 -0
- data/assets/theme/j1/modules/swiper/js/swiper-bundle.min.js +23 -0
- data/assets/theme/j1/modules/themeSwitcher/js/switcher.js +1 -1
- data/assets/theme/j1/modules/themeSwitcher/js/switcher.min.js +1 -1
- data/assets/theme/j1/modules/translator/css/translator.css +1 -1
- data/assets/theme/j1/modules/translator/css/translator.min.css +1 -1
- data/assets/theme/j1/modules/translator/js/translator.js +1 -1
- data/assets/theme/j1/modules/translator/js/translator.min.js +1 -1
- data/assets/theme/j1/modules/videoPlayer/vimeo/js/player.min.js +1 -1
- data/assets/theme/j1/modules/videojs/css/plugins/controls/skipbuttons.0.css +1 -1
- data/assets/theme/j1/modules/videojs/css/plugins/controls/skipbuttons.1.css +1 -1
- data/assets/theme/j1/modules/videojs/css/plugins/controls/skipbuttons.css +1 -1
- data/assets/theme/j1/modules/videojs/css/plugins/controls/skipbuttons.min.css +1 -1
- data/assets/theme/j1/modules/videojs/css/plugins/controls/zoom.css +1 -1
- data/assets/theme/j1/modules/videojs/css/plugins/controls/zoom.min.css +1 -1
- data/assets/theme/j1/modules/videojs/css/themes/uno.css +1 -1
- data/assets/theme/j1/modules/videojs/css/themes/uno.min.css +1 -1
- data/assets/theme/j1/modules/videojs/js/plugins/controls/autocaption/autocaption.js +1 -1
- data/assets/theme/j1/modules/videojs/js/plugins/controls/autocaption/autocaption.min.js +1 -1
- data/assets/theme/j1/modules/videojs/js/plugins/controls/hotkeys/hotkeys.js +1 -1
- data/assets/theme/j1/modules/videojs/js/plugins/controls/hotkeys/hotkeys.min.js +1 -1
- data/assets/theme/j1/modules/videojs/js/plugins/controls/skipbuttons/skipbuttons.js +1 -1
- data/assets/theme/j1/modules/videojs/js/plugins/controls/skipbuttons/skipbuttons.min.js +1 -1
- data/assets/theme/j1/modules/videojs/js/plugins/controls/zoom/zoom.js +1 -1
- data/assets/theme/j1/modules/videojs/js/plugins/controls/zoom/zoom.min.js +1 -1
- data/assets/theme/j1/modules/videojs/js/plugins/players/dm/api/dailymotion.sdk.js +1 -1
- data/assets/theme/j1/modules/videojs/js/plugins/players/dm/api/dailymotion.sdk.min.js +1 -1
- data/assets/theme/j1/modules/videojs/js/plugins/players/dm/dailymotion.js +1 -1
- data/assets/theme/j1/modules/videojs/js/plugins/players/dm/dailymotion.min.js +1 -1
- data/assets/theme/j1/modules/videojs/js/plugins/players/vm/api/vimeo.js +1 -1
- data/assets/theme/j1/modules/videojs/js/plugins/players/vm/api/vimeo.min.js +1 -1
- data/assets/theme/j1/modules/videojs/js/plugins/players/vm/vimeo.js +1 -1
- data/assets/theme/j1/modules/videojs/js/plugins/players/vm/vimeo.min.js +1 -1
- data/assets/theme/j1/modules/videojs/js/plugins/players/wt/wistia.js +1 -1
- data/assets/theme/j1/modules/videojs/js/plugins/players/wt/wistia.min.js +1 -1
- data/assets/theme/j1/modules/videojs/js/plugins/players/yt/api/youtube.min.js +1 -1
- data/assets/theme/j1/modules/videojs/js/plugins/players/yt/v3.0.0/youtube.js +1 -1
- data/assets/theme/j1/modules/videojs/js/plugins/players/yt/v3.0.0/youtube.min.js +1 -1
- data/assets/theme/j1/modules/videojs/js/plugins/players/yt/youtube.js +1 -1
- data/assets/theme/j1/modules/videojs/js/plugins/players/yt/youtube.min.js +1 -1
- data/lib/j1/version.rb +1 -1
- data/lib/starter_web/Gemfile +1 -1
- data/lib/starter_web/README.md +5 -5
- data/lib/starter_web/_config.yml +2 -2
- data/lib/starter_web/_data/j1_config.yml +1 -1
- data/lib/starter_web/_data/modules/amplitude_players.yml +352 -0
- data/lib/starter_web/_data/modules/{amplitude.yml → amplitude_playlists.yml} +257 -239
- data/lib/starter_web/_data/modules/authentication.yml +1 -1
- data/lib/starter_web/_data/modules/defaults/amplitude.yml +60 -35
- data/lib/starter_web/_data/modules/defaults/slick.yml +1 -1
- data/lib/starter_web/_data/modules/defaults/swiper.yml +175 -0
- data/lib/starter_web/_data/modules/log4javascript.yml +1 -1
- data/lib/starter_web/_data/modules/navigator.yml +1 -1
- data/lib/starter_web/_data/modules/navigator_menu.yml +1 -1
- data/lib/starter_web/_data/modules/swiper.yml +655 -0
- data/lib/starter_web/_data/modules/swiper_playlists.yml +480 -0
- data/lib/starter_web/_data/private.yml +1 -1
- data/lib/starter_web/_data/resources.yml +272 -158
- data/lib/starter_web/_data/templates/feed.xml +1 -1
- data/lib/starter_web/_includes/custom/static/bs5_accordion.html +1 -1
- data/lib/starter_web/_includes/custom/templates/bs5_accordion.html +1 -1
- data/lib/starter_web/_includes/custom/templates/collection_panel.html +1 -1
- data/lib/starter_web/_includes/custom/templates/custom_header.html +1 -1
- data/lib/starter_web/_includes/custom/templates/people_panel.html +1 -1
- data/lib/starter_web/_includes/google/static/google_ad__your-slot-id.html +1 -1
- data/lib/starter_web/_includes/google/templates/google_ads.html +1 -1
- data/lib/starter_web/_plugins/asciidoctor/admonition-block-answer.rb +1 -1
- data/lib/starter_web/_plugins/asciidoctor/admonition-block-question.rb +1 -1
- data/lib/starter_web/_plugins/asciidoctor/amplitude-block.rb +2 -1
- data/lib/starter_web/_plugins/asciidoctor/banner.rb +1 -1
- data/lib/starter_web/_plugins/asciidoctor/callout.rb +1 -1
- data/lib/starter_web/_plugins/asciidoctor/carousel-block.rb +1 -1
- data/lib/starter_web/_plugins/asciidoctor/conum.rb +1 -1
- data/lib/starter_web/_plugins/asciidoctor/dailymotion-block.rb +1 -1
- data/lib/starter_web/_plugins/asciidoctor/fab-icon-inline.rb +1 -1
- data/lib/starter_web/_plugins/asciidoctor/fas-icon-inline.rb +1 -1
- data/lib/starter_web/_plugins/asciidoctor/flag-icon-inline.rb +1 -1
- data/lib/starter_web/_plugins/asciidoctor/gallery-block.rb +1 -1
- data/lib/starter_web/_plugins/asciidoctor/gemini-ui-block.rb +1 -1
- data/lib/starter_web/_plugins/asciidoctor/gist-block.rb +1 -1
- data/lib/starter_web/_plugins/asciidoctor/google-ad-block.rb +1 -1
- data/lib/starter_web/_plugins/asciidoctor/iconify-icon-inline.rb +1 -1
- data/lib/starter_web/_plugins/asciidoctor/iframe-block.rb +1 -1
- data/lib/starter_web/_plugins/asciidoctor/lightbox-block.rb +1 -1
- data/lib/starter_web/_plugins/asciidoctor/lorem_inline.rb +1 -1
- data/lib/starter_web/_plugins/asciidoctor/masonry-block.rb +1 -1
- data/lib/starter_web/_plugins/asciidoctor/masterslider-block.rb +1 -1
- data/lib/starter_web/_plugins/asciidoctor/mdi-icon-inline.rb +1 -1
- data/lib/starter_web/_plugins/asciidoctor/mdib-icon-inline.rb +1 -1
- data/lib/starter_web/_plugins/asciidoctor/mdil-icon-inline.rb +1 -1
- data/lib/starter_web/_plugins/asciidoctor/panel.rb +1 -1
- data/lib/starter_web/_plugins/asciidoctor/placeholder-inline.rb +1 -1
- data/lib/starter_web/_plugins/asciidoctor/range-slider-block.rb +1 -1
- data/lib/starter_web/_plugins/asciidoctor/shout-block.rb +1 -1
- data/lib/starter_web/_plugins/asciidoctor/slick-block.rb +1 -1
- data/lib/starter_web/_plugins/asciidoctor/slim-select-block.rb +1 -1
- data/lib/starter_web/_plugins/asciidoctor/swiper-block.rb +55 -0
- data/lib/starter_web/_plugins/asciidoctor/textbook-block.rb +1 -1
- data/lib/starter_web/_plugins/asciidoctor/twitter-emoji-inline.rb +1 -1
- data/lib/starter_web/_plugins/asciidoctor/videojs-block.rb +1 -5
- data/lib/starter_web/_plugins/asciidoctor/vimeo-block.rb +1 -1
- data/lib/starter_web/_plugins/asciidoctor/wistia-block.rb +1 -1
- data/lib/starter_web/_plugins/asciidoctor/youtube-block.rb +1 -1
- data/lib/starter_web/_plugins/filter/debug.rb +1 -1
- data/lib/starter_web/_plugins/filter/encodeBase64.rb +1 -1
- data/lib/starter_web/_plugins/filter/encryptAES.rb +1 -1
- data/lib/starter_web/_plugins/filter/filters.rb +32 -1
- data/lib/starter_web/_plugins/filter/liquify.rb +1 -1
- data/lib/starter_web/_plugins/filter/minifyJS.rb +1 -1
- data/lib/starter_web/_plugins/filter/minifyJSON.rb +1 -1
- data/lib/starter_web/_plugins/filter/prettify.rb +1 -1
- data/lib/starter_web/_plugins/filter/xml_prettify.rb +1 -1
- data/lib/starter_web/_plugins/helper/symlink_watcher.rb +1 -1
- data/lib/starter_web/_plugins/i18n/date.rb +1 -1
- data/lib/starter_web/_plugins/index/lunr.rb +2 -2
- data/lib/starter_web/_plugins/seo/j1-feed.rb +1 -1
- data/lib/starter_web/_plugins/seo/j1-seo-tags.rb +1 -1
- data/lib/starter_web/_plugins/seo/j1-sitemap.rb +1 -1
- data/lib/starter_web/assets/image/icons/tv/Index of -tv-logos-.url +2 -0
- data/lib/starter_web/assets/image/icons/tv/TV from Germany - LyngSat Logo.url +2 -0
- data/lib/starter_web/assets/image/icons/tv/Zeichnung.svg +47 -0
- data/lib/starter_web/assets/image/icons/tv/ard-icon-16x16.ico +0 -0
- data/lib/starter_web/assets/image/icons/tv/ard-icon-24x24.png +0 -0
- data/lib/starter_web/assets/image/icons/tv/ard-icon-512x512.png +0 -0
- data/lib/starter_web/assets/image/icons/tv/ard-icon.jpg +0 -0
- data/lib/starter_web/assets/image/icons/tv/ard-icon.jpg (353/303/227353).url" +2 -0
- data/lib/starter_web/assets/image/icons/tv/ard-icon.png +0 -0
- data/lib/starter_web/assets/image/icons/tv/ard-logo-png_seeklogo-428343.png +0 -0
- data/lib/starter_web/assets/image/icons/tv/cytec-tvlogos- collection of mostly german tv channel logos.url +2 -0
- data/lib/starter_web/assets/image/icons/tv/output_image.jpg +0 -0
- data/lib/starter_web/assets/image/icons/tv/pang.ping +0 -0
- data/lib/starter_web/assets/image/icons/tv/tv-logos-countries-germany-0_all_logos_mosaic.md at main /302/267 tv-logo-tv-logos.url" +2 -0
- data/lib/starter_web/assets/image/modules/attics/1920x1280/tiny_desk.jpg +0 -0
- data/lib/starter_web/assets/image/modules/attics/alice-donovan-rouse-2.jpg +0 -0
- data/lib/starter_web/assets/image/modules/gallery/free_animals/free-animals-1.jpg +0 -0
- data/lib/starter_web/assets/image/modules/gallery/free_animals/free-animals-2.jpg +0 -0
- data/lib/starter_web/assets/image/modules/gallery/free_animals/free-animals-3.jpg +0 -0
- data/lib/starter_web/assets/image/modules/gallery/free_animals/free-animals-4.jpg +0 -0
- data/lib/starter_web/assets/image/modules/gallery/free_animals/free-animals-5.jpg +0 -0
- data/lib/starter_web/assets/image/modules/gallery/free_animals/free-animals-6.jpg +0 -0
- data/lib/starter_web/assets/image/modules/gallery/mega_cities/295683517.jpg +0 -0
- data/lib/starter_web/assets/image/modules/gallery/mega_cities/chicago-us.jpg +0 -0
- data/lib/starter_web/assets/image/modules/gallery/mega_cities/denys-nevozhai-1_b.jpg +0 -0
- data/lib/starter_web/assets/image/modules/gallery/mega_cities/denys-nevozhai-1_c.jpg +0 -0
- data/lib/starter_web/assets/image/modules/gallery/mega_cities/denys-nevozhai-3_b.jpg +0 -0
- data/lib/starter_web/assets/image/modules/gallery/mega_cities/emmad-mazhari_c.jpg +0 -0
- data/lib/starter_web/assets/image/modules/gallery/mega_cities/federico-rizzarelli_b.jpg +0 -0
- data/lib/starter_web/assets/image/modules/gallery/mega_cities/federico-rizzarelli_c.jpg +0 -0
- data/lib/starter_web/assets/image/modules/gallery/mega_cities/jakarta_indonesia.jpg +0 -0
- data/lib/starter_web/assets/image/modules/gallery/mega_cities/jakarta_indonesia_2.jpg +0 -0
- data/lib/starter_web/assets/image/modules/gallery/mega_cities/melbourne_australia.jpg +0 -0
- data/lib/starter_web/assets/image/modules/gallery/mega_cities/melbourne_australia.webp +0 -0
- data/lib/starter_web/assets/image/modules/gallery/mega_cities/queen_bees_at_eureka_tower.jpg +0 -0
- data/lib/starter_web/assets/image/modules/gallery/mega_cities/shanghai_china.jpg +0 -0
- data/lib/starter_web/assets/image/modules/gallery/mega_cities/thomas-tucker_b.jpg +0 -0
- data/lib/starter_web/assets/image/modules/gallery/mega_cities/tokyo_japan.jpg +0 -0
- data/lib/starter_web/assets/image/modules/gallery/neighbor_slider/guardians-of-the-galaxy.jpg +0 -0
- data/lib/starter_web/assets/image/modules/gallery/neighbor_slider/justice-league.jpg +0 -0
- data/lib/starter_web/assets/image/modules/gallery/neighbor_slider/spider-man.jpg +0 -0
- data/lib/starter_web/assets/image/modules/gallery/neighbor_slider/suicide-squad.jpg +0 -0
- data/lib/starter_web/assets/image/modules/gallery/neighbor_slider/thor-ragnarok.jpg +0 -0
- data/lib/starter_web/assets/image/modules/gallery/panorama/1.jpg +0 -0
- data/lib/starter_web/assets/image/modules/gallery/panorama/10.jpg +0 -0
- data/lib/starter_web/assets/image/modules/gallery/panorama/11.jpg +0 -0
- data/lib/starter_web/assets/image/modules/gallery/panorama/12.jpg +0 -0
- data/lib/starter_web/assets/image/modules/gallery/panorama/2.jpg +0 -0
- data/lib/starter_web/assets/image/modules/gallery/panorama/3.jpg +0 -0
- data/lib/starter_web/assets/image/modules/gallery/panorama/4.jpg +0 -0
- data/lib/starter_web/assets/image/modules/gallery/panorama/5.jpg +0 -0
- data/lib/starter_web/assets/image/modules/gallery/panorama/6.jpg +0 -0
- data/lib/starter_web/assets/image/modules/gallery/panorama/7.jpg +0 -0
- data/lib/starter_web/assets/image/modules/gallery/panorama/8.jpg +0 -0
- data/lib/starter_web/assets/image/modules/gallery/panorama/9.jpg +0 -0
- data/lib/starter_web/assets/video/poster/youtube/faelle_des_bnd/der_unverzichtbare_feind.jpg +0 -0
- data/lib/starter_web/assets/video/poster/youtube/faelle_des_bnd/ein_diener_vieler_herren.jpg +0 -0
- data/lib/starter_web/assets/video/poster/youtube/the_piano/the-piano.jpg +0 -0
- data/lib/starter_web/config.ru +1 -1
- data/lib/starter_web/dot.gitattributes +1 -1
- data/lib/starter_web/dot.nojekyll +1 -1
- data/lib/starter_web/package.json +1 -1
- data/lib/starter_web/pages/public/{manuals/integrations/google/gemini/_includes → _includes}/attributes.asciidoc +5 -7
- data/lib/starter_web/pages/public/_includes/documents/photoswipe/200_photoswipe_parameters.asciidoc +529 -0
- data/lib/starter_web/pages/public/_includes/documents/photoswipe/210_photoswipe_lightbox_parameters.asciidoc +105 -0
- data/lib/starter_web/pages/public/_includes/documents/photoswipe/300_caption_plugin_for_photoSwipe.asciidoc +324 -0
- data/lib/starter_web/pages/public/_includes/documents/swiper/100_swiper_features.asciidoc +50 -0
- data/lib/starter_web/pages/public/_includes/documents/swiper/100_swiper_html_layout.asciidoc +122 -0
- data/lib/starter_web/pages/public/_includes/documents/swiper/100_swiper_initialization.asciidoc +53 -0
- data/lib/starter_web/pages/public/_includes/documents/swiper/110_swiper_common_options.asciidoc +118 -0
- data/lib/starter_web/pages/public/_includes/documents/swiper/200_swiper_parameters_a_k.asciidoc +1094 -0
- data/lib/starter_web/pages/public/_includes/documents/swiper/200_swiper_parameters_l_o.asciidoc +537 -0
- data/lib/starter_web/pages/public/_includes/documents/swiper/200_swiper_parameters_p_s.asciidoc +757 -0
- data/lib/starter_web/pages/public/_includes/documents/swiper/200_swiper_parameters_t_z.asciidoc +451 -0
- data/lib/starter_web/pages/public/_includes/documents/swiper/300_swiper_instance_properties.asciidoc +873 -0
- data/lib/starter_web/pages/public/_includes/documents/swiper/400_swiper_modules.asciidoc +3445 -0
- data/lib/starter_web/pages/public/_includes/documents/swiper/500_swiper_methods.asciidoc +989 -0
- data/lib/starter_web/pages/public/_includes/documents/swiper/600_swiper_events.asciidoc +1534 -0
- data/lib/starter_web/pages/public/{amplitude_yt_tester.adoc → tools/tester/amplitude_yt_tester.adoc} +81 -67
- data/lib/starter_web/pages/public/tools/tester/swiper_tester.adoc +796 -0
- data/lib/starter_web/pages/public/tour/modal_extentions.adoc +12 -5
- data/lib/starter_web/pages/public/tour/play_audio.adoc +60 -5
- data/lib/starter_web/pages/public/tour/play_video.adoc +30 -0
- data/lib/starter_web/pages/public/tour/present_images.adoc +24 -22
- metadata +128 -20
- data/assets/theme/j1/modules/amplitudejs/js/tech/youtube_example.js +0 -211
- data/lib/starter_web/assets/image/modules/gallery/mega_cities/thomas-tucker-bw.jpg +0 -0
- data/lib/starter_web/pages/public/lazy_loader_tester.adoc +0 -402
- data/lib/starter_web/pages/public/manuals/integrations/amplitudejs/_includes/attributes.asciidoc +0 -69
- data/lib/starter_web/pages/public/manuals/integrations/amplitudejs/_includes/documents/readme +0 -0
- data/lib/starter_web/pages/public/manuals/integrations/amplitudejs/amplitudejs-api.adoc +0 -2260
- data/lib/starter_web/pages/public/manuals/integrations/google/gemini/_includes/documents/preview_google_adsense.asciidoc +0 -448
- data/lib/starter_web/pages/public/manuals/integrations/google/gemini/_includes/documents/readme +0 -0
- data/lib/starter_web/pages/public/manuals/integrations/google/gemini/_includes/tables/readme +0 -0
- data/lib/starter_web/pages/public/manuals/integrations/google/gemini/gemini.adoc +0 -525
- data/lib/starter_web/pages/public/manuals/integrations/google/gemini/security.asccidoc +0 -274
- data/lib/starter_web/pages/public/manuals/integrations/google/gemini/security.hrml +0 -560
- data/lib/starter_web/pages/public/manuals/integrations/videojs/youtube-api.adoc +0 -1638
- data/lib/starter_web/pages/public/manuals/ytdl/man.adoc +0 -3020
- data/lib/starter_web/pages/public/manuals/ytdl/man.md +0 -2378
@@ -1,2260 +0,0 @@
|
|
1
|
-
---
|
2
|
-
title: AmplitudeJS API
|
3
|
-
title_extention: Integration for J1 Template
|
4
|
-
tagline: User Guide
|
5
|
-
|
6
|
-
date: 2024-04-17
|
7
|
-
#last_modified: 2024-01-01
|
8
|
-
|
9
|
-
description: >
|
10
|
-
AmplitudeJS is a JavaScript library to control the design of audio media
|
11
|
-
elements on web pages. The concept allows designers to fully control the
|
12
|
-
look and feel of audio players without deep scripting knowledge.
|
13
|
-
keywords: >
|
14
|
-
open source, free, template, jekyll, jekyllone, web,
|
15
|
-
sites, static, jamstack, bootstrap, html, html5, audio,
|
16
|
-
Amplitude
|
17
|
-
|
18
|
-
categories: [ Manuals ]
|
19
|
-
tags: [ API, AmplitudeJS ]
|
20
|
-
|
21
|
-
image:
|
22
|
-
path: /assets/image/icons/videojs/videojs-poster.png
|
23
|
-
width: 1920
|
24
|
-
height: 1280
|
25
|
-
|
26
|
-
regenerate: false
|
27
|
-
personalization: true
|
28
|
-
permalink: /pages/public/manuals/integrations/amplitudejs/amplitudejs_api/
|
29
|
-
|
30
|
-
resources: [ amplitudejs, rouge ]
|
31
|
-
resource_options:
|
32
|
-
- toccer:
|
33
|
-
collapseDepth: 3
|
34
|
-
- attic:
|
35
|
-
slides:
|
36
|
-
- url: /assets/image/modules/attics/1920x1280/alexey-ruban.jpg
|
37
|
-
alt: Photo by Alexey Ruban on Unsplash
|
38
|
-
badge:
|
39
|
-
type: unsplash
|
40
|
-
author: Alexey Ruban
|
41
|
-
href: //unsplash.com/de/@intelligenciya
|
42
|
-
---
|
43
|
-
|
44
|
-
// Page Initializer
|
45
|
-
// =============================================================================
|
46
|
-
// Enable the Liquid Preprocessor
|
47
|
-
:page-liquid:
|
48
|
-
|
49
|
-
// Set (local) page attributes here
|
50
|
-
// -----------------------------------------------------------------------------
|
51
|
-
// :page--attr: <attr-value>
|
52
|
-
|
53
|
-
// Load Liquid procedures
|
54
|
-
// -----------------------------------------------------------------------------
|
55
|
-
{% capture load_attributes %}themes/{{site.template.name}}/procedures/global/attributes_loader.proc{%endcapture%}
|
56
|
-
|
57
|
-
// Load page attributes
|
58
|
-
// -----------------------------------------------------------------------------
|
59
|
-
{% include {{load_attributes}} scope="global" %}
|
60
|
-
|
61
|
-
// Page content
|
62
|
-
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
63
|
-
// See: https://521dimensions.com/open-source/amplitudejs/docs
|
64
|
-
// See: https://github.com/mediaelement/mediaelement-plugins
|
65
|
-
// See: https://github.com/serversideup/amplitudejs/
|
66
|
-
|
67
|
-
[role="dropcap"]
|
68
|
-
The audio tag in HTML5 is a great way to add audio media to web pages.
|
69
|
-
However, the browser fully controls the audio playback interface, which
|
70
|
-
can limit or even break a page's design if audio media is used.
|
71
|
-
|
72
|
-
AmplitudeJS for the J1 Template offers a straightforward solution for web
|
73
|
-
developers. It allows them to easily customize the appearance of their audio
|
74
|
-
players without the need for complex scripting. By leveraging J1 Template
|
75
|
-
and Amplitude's API, web designers can craft unique interfaces that define
|
76
|
-
the visual and functional aspects of a player's audio control elements.
|
77
|
-
|
78
|
-
mdi:clock-time-five-outline[24px, md-gray mr-2]
|
79
|
-
*5-10 Minutes* to read
|
80
|
-
|
81
|
-
|
82
|
-
// Include sub-documents (if any)
|
83
|
-
// -----------------------------------------------------------------------------
|
84
|
-
[role="mt-5"]
|
85
|
-
== Elements
|
86
|
-
|
87
|
-
AmplitudeJS comes with a variety of elements. Each element is picked up by a
|
88
|
-
class prefixed with *amplitude-* and depending on the environment, an
|
89
|
-
attribute that relates to the index of a song in your list of songs or a
|
90
|
-
playlist you are using the element with. There are elements that some events
|
91
|
-
are bound to such as play and next and other elements that get filled with
|
92
|
-
meta data information about the active audio.
|
93
|
-
|
94
|
-
All elements can be styled simply based of off class or if you want to define
|
95
|
-
specific ids in CSS. Besides album art, you could apply these classes to a
|
96
|
-
variety of elements. Album art has to be an `<img>` element, but the other
|
97
|
-
elements could be whatever.
|
98
|
-
|
99
|
-
[role="mt-4"]
|
100
|
-
=== Structure for Elements
|
101
|
-
|
102
|
-
AmplitudeJS has a standardized way to reference an element whether it's a
|
103
|
-
metadata element or an interactive element. There are 4 levels of elements:
|
104
|
-
|
105
|
-
Global::
|
106
|
-
Global elements control whatever is playing no matter the scope, or display
|
107
|
-
whatever is playing no matter the scope.
|
108
|
-
Playlist::
|
109
|
-
Playlist elements control within the scope of the playlist and display
|
110
|
-
what's in the scope of the playlist.
|
111
|
-
Song::
|
112
|
-
Song elements control what's in the scope of the song and what's
|
113
|
-
displayed for the song.
|
114
|
-
Song In Playlist::
|
115
|
-
Songs in playlist elements control what's in the the scope of the
|
116
|
-
song in the playlist.
|
117
|
-
|
118
|
-
Not all elements have all 4 levels of functionality. For example, any
|
119
|
-
element that deals with volume does not have anything but a global scope
|
120
|
-
meaning you can't adjust volume for a single song or playlist it's handled
|
121
|
-
globally.
|
122
|
-
|
123
|
-
To scope an element or metadata display the following combination of
|
124
|
-
classes and attributes should be provided:
|
125
|
-
|
126
|
-
* Global: class="amplitude-{element}"
|
127
|
-
* Playlist: class="amplitude-{element}" data-amplitude-playlist="{playlist}"
|
128
|
-
* Song: class="amplitude-{element}" data-amplitude-song-index="{song}"
|
129
|
-
* Song In Playlist: class="amplitude-{element}" data-amplitude-song-index="{song}" data-amplitude-playlist="{playlist}"
|
130
|
-
|
131
|
-
One thing to note about the attribute data-amplitude-song-index on a s
|
132
|
-
song in Playlist element is the index references the index of the song
|
133
|
-
*within* the playlist! This is different than the song element that references
|
134
|
-
the index of the song within the songs array!
|
135
|
-
|
136
|
-
[role="mt-4"]
|
137
|
-
=== Interactive Elements
|
138
|
-
|
139
|
-
The interactive elements of AmplitudeJS have event handlers bound to
|
140
|
-
them that responds to a touch or click from a user. These elements build
|
141
|
-
the functionality of the player you are designing. The scoping of these
|
142
|
-
elements is handled by attributes that define the level of functionality
|
143
|
-
each element has such as global, playlist, individual song or individual
|
144
|
-
song in playlist. These are outlined in detail for each element.
|
145
|
-
|
146
|
-
[role="mt-4"]
|
147
|
-
==== Play Button
|
148
|
-
|
149
|
-
There are 4 different levels for a play button.
|
150
|
-
|
151
|
-
Global Play::
|
152
|
-
Plays the current song whether it's an individual
|
153
|
-
song or in a playlist
|
154
|
-
Playlist Play::
|
155
|
-
Plays the current song in the playlist.
|
156
|
-
Song Play::
|
157
|
-
Plays an individual song by itself.
|
158
|
-
Song in a Playlist::
|
159
|
-
Plays an individual song in a playlist.
|
160
|
-
|
161
|
-
[NOTE]
|
162
|
-
====
|
163
|
-
The play button responds to the 'click' event on a desktop or a
|
164
|
-
*touchstart* event on *mobile* devices.
|
165
|
-
====
|
166
|
-
|
167
|
-
[role="mt-4"]
|
168
|
-
===== Global Play Button
|
169
|
-
|
170
|
-
The global play button will play the active song whether or not the song
|
171
|
-
is an individual song or in a playlist. To add a global play button
|
172
|
-
simply an HTML element with the class `amplitude-play`.
|
173
|
-
|
174
|
-
[source, html]
|
175
|
-
----
|
176
|
-
<span class="amplitude-play"></span>
|
177
|
-
----
|
178
|
-
|
179
|
-
[role="mt-4"]
|
180
|
-
===== Playlist Play Button
|
181
|
-
|
182
|
-
The playlist play button will play the active song in the playlist or it
|
183
|
-
will play the first song in the playlist if the playlist is out of scope
|
184
|
-
(meaning another playlist was being played or it's the first playlist
|
185
|
-
being played). To add a playlist play button, add an HTML element with
|
186
|
-
the class of `amplitude-play` and the attribute
|
187
|
-
`data-amplitude-playlist="playlist_index"`.
|
188
|
-
|
189
|
-
[source, html]
|
190
|
-
----
|
191
|
-
<span class="amplitude-play" data-amplitude-playlist="{playlist_index}"></span>
|
192
|
-
----
|
193
|
-
|
194
|
-
[role="mt-4"]
|
195
|
-
===== Individual Song Play Button
|
196
|
-
|
197
|
-
The individual song play button will play the song defined by the
|
198
|
-
`data-amplitude-song-index="{song_index}"` attribute.
|
199
|
-
|
200
|
-
[source, html]
|
201
|
-
----
|
202
|
-
<span class="amplitude-play" data-amplitude-song-index="{song_index}"></span>
|
203
|
-
----
|
204
|
-
|
205
|
-
[role="mt-4"]
|
206
|
-
===== Individual Song In Playlist Button
|
207
|
-
|
208
|
-
The individual playlist button is a combination of the attributes
|
209
|
-
`data-amplitude-song-index="{song_index}"` and
|
210
|
-
`data-amplitude-playlist="{playlist}"`. This will play an individual
|
211
|
-
song in a playlist as defined.
|
212
|
-
|
213
|
-
[source, html]
|
214
|
-
----
|
215
|
-
<span
|
216
|
-
class="amplitude-play"
|
217
|
-
data-amplitude-song-index="1"
|
218
|
-
data-amplitude-playlist="test_playlist">
|
219
|
-
</span>
|
220
|
-
----
|
221
|
-
|
222
|
-
[role="mt-4"]
|
223
|
-
==== Pause Button
|
224
|
-
|
225
|
-
The pause button has 4 different levels.
|
226
|
-
|
227
|
-
Global Pause::
|
228
|
-
Pauses the active song no matter if it's individual or
|
229
|
-
in a playlist.
|
230
|
-
Playlist Pause::
|
231
|
-
Pauses the active song in the playlist.
|
232
|
-
Song Pause::
|
233
|
-
Pauses an individual song.
|
234
|
-
Song In Playlist Pause::
|
235
|
-
Pauses an individual song in a playlist.
|
236
|
-
|
237
|
-
The pause button responds to the 'click' event on a desktop or a
|
238
|
-
'touchstart' event on mobile.
|
239
|
-
|
240
|
-
[role="mt-4"]
|
241
|
-
===== Global Pause
|
242
|
-
|
243
|
-
The global pause button will pause whatever song is currently playing.
|
244
|
-
To add a global pause button simply add an HTML element with the class
|
245
|
-
of 'amplitude-pause'.
|
246
|
-
|
247
|
-
[source, html]
|
248
|
-
----
|
249
|
-
<span class="amplitude-pause"></span>
|
250
|
-
----
|
251
|
-
|
252
|
-
[role="mt-4"]
|
253
|
-
===== Playlist Pause
|
254
|
-
|
255
|
-
The playlist pause button will pause the active song in the playlist. It
|
256
|
-
only works if the playlist defined in the attribute is playing the song.
|
257
|
-
|
258
|
-
[source, html]
|
259
|
-
----
|
260
|
-
<span class="amplitude-pause" data-amplitude-playlist="{playlist}"></span>
|
261
|
-
----
|
262
|
-
|
263
|
-
[role="mt-4"]
|
264
|
-
===== Individual Song Pause
|
265
|
-
|
266
|
-
The individual song pause button will pause the song defined by the
|
267
|
-
attribute `data-amplitude-song-index="song_index"`.
|
268
|
-
|
269
|
-
[source, html]
|
270
|
-
----
|
271
|
-
<span class="amplitude-pause" data-amplitude-song-index="{song_index}"></span>
|
272
|
-
----
|
273
|
-
|
274
|
-
[role="mt-4"]
|
275
|
-
===== Individual Song In Playlist Pause
|
276
|
-
|
277
|
-
If you want to pause an individual song in a playlist, you need to add
|
278
|
-
both the `data-amplitude-song-index="{song_index}"` and the
|
279
|
-
`data-amplitude-playlist="{playlist}"` attributes.
|
280
|
-
|
281
|
-
[source, html]
|
282
|
-
----
|
283
|
-
<span
|
284
|
-
class="amplitude-pause"
|
285
|
-
data-amplitude-song-index="{song_index}"
|
286
|
-
data-amplitude-playlist="{playlist}">
|
287
|
-
</span>
|
288
|
-
----
|
289
|
-
|
290
|
-
[role="mt-4"]
|
291
|
-
==== Play Pause Button
|
292
|
-
|
293
|
-
The play/pause button is probably the most common button to be
|
294
|
-
implemented when working with AmplitudeJS. Depending on the global
|
295
|
-
state, playlist state and/or song state, this element will get a class
|
296
|
-
that is `amplitude-playing` or `amplitude-paused` that can be styled
|
297
|
-
accordingly. It's common to set a play or pause button image as a
|
298
|
-
background in CSS so when the interaction occurs, the proper button
|
299
|
-
appears.
|
300
|
-
|
301
|
-
There are 3 levels of Play/Pause buttons.
|
302
|
-
|
303
|
-
. Global Play/Pause - Plays or pauses the active song no matter if it's
|
304
|
-
independent or part of a playlist.
|
305
|
-
. Playlist Play/Pause - Plays or pauses the active song in the scope of
|
306
|
-
the playlist.
|
307
|
-
. Song Play/Pause - Plays or pauses an individual song.
|
308
|
-
. Song In Playlist Play/Pause - Plays or pauses an individual song in
|
309
|
-
the playlist.
|
310
|
-
|
311
|
-
[role="mt-4"]
|
312
|
-
[[global-play-pause]]
|
313
|
-
===== Global Play/Pause
|
314
|
-
|
315
|
-
The global play pause button plays or pauses the current song depending
|
316
|
-
on the state of the AmplitudeJS player. This button does not account for
|
317
|
-
whether the song is in a playlist or an individual song, it's whatever
|
318
|
-
song is active the functionality works on.
|
319
|
-
|
320
|
-
[source, html]
|
321
|
-
----
|
322
|
-
<span class="amplitude-play-pause"></span>
|
323
|
-
----
|
324
|
-
|
325
|
-
[role="mt-4"]
|
326
|
-
[[playlist-play-pause]]
|
327
|
-
===== Playlist Play/Pause
|
328
|
-
|
329
|
-
The playlist play pause button plays or pauses the current song in a
|
330
|
-
playlist. If a song is being played outside of a playlist when clicked,
|
331
|
-
the playlist will play the first song in the playlist assigned to the
|
332
|
-
button clicked and pause the other song. To add a playlist play pause
|
333
|
-
button add an element with the class of `amplitude-play-pause` an
|
334
|
-
attribute of `data-amplitude-playlist="{playlist-index}`.
|
335
|
-
|
336
|
-
[source, html]
|
337
|
-
----
|
338
|
-
<span class="amplitude-play-pause" data-amplitude-playlist="{playlist}"></span>
|
339
|
-
----
|
340
|
-
|
341
|
-
[role="mt-4"]
|
342
|
-
[[song-play-pause]]
|
343
|
-
===== Song Play/Pause
|
344
|
-
|
345
|
-
The song play pause button plays or pauses an individual song when
|
346
|
-
clicked.
|
347
|
-
|
348
|
-
[source, html]
|
349
|
-
----
|
350
|
-
<span class="amplitude-play-pause" data-amplitude-song-index="{song_index}"></span>
|
351
|
-
----
|
352
|
-
|
353
|
-
[role="mt-4"]
|
354
|
-
[[song-in-playlist-play-pause]]
|
355
|
-
===== Song In Playlist Play/Pause
|
356
|
-
|
357
|
-
The song in playlist play pause button plays or pauses an individual
|
358
|
-
song in a playlist when clicked. This is defined by a combination of the
|
359
|
-
`data-amplitude-song-index="{song_index}"` attributes and the
|
360
|
-
`data-amplitude-playlist="{playlist}"` attributes.
|
361
|
-
|
362
|
-
[source, html]
|
363
|
-
----
|
364
|
-
<span
|
365
|
-
class="amplitude-play-pause"
|
366
|
-
data-amplitude-song-index="{song_index}"
|
367
|
-
data-amplitude-playlist="{playlist}">
|
368
|
-
</span>
|
369
|
-
----
|
370
|
-
|
371
|
-
[role="mt-4"]
|
372
|
-
==== Stop Button
|
373
|
-
|
374
|
-
Stops playing the current song for a player. There is only one level for
|
375
|
-
the stop button: *global*.
|
376
|
-
|
377
|
-
The stop button simply stops the active song. On a desktop, this will
|
378
|
-
respond to the 'click' event and a 'touchstart' on mobile. To add a stop
|
379
|
-
button simply add the following HTML element:
|
380
|
-
|
381
|
-
[source, html]
|
382
|
-
----
|
383
|
-
<span class="amplitude-stop"></span>
|
384
|
-
----
|
385
|
-
|
386
|
-
[role="mt-4"]
|
387
|
-
==== Mute Button
|
388
|
-
|
389
|
-
Mutes the current song in a player. There is only one level for the mute
|
390
|
-
button: *global*.
|
391
|
-
|
392
|
-
The mute button is another global element that mutes the active song. On
|
393
|
-
a desktop, this element will respond to the 'click' event and a
|
394
|
-
'touchstart' on mobile. There are two classes that get added to the mute
|
395
|
-
button so you can style it according to the state of the player.
|
396
|
-
|
397
|
-
When the player is not muted the class `amplitude-not-muted` is added to
|
398
|
-
the element and `amplitude-muted` is added when the player is muted.
|
399
|
-
|
400
|
-
[source, html]
|
401
|
-
----
|
402
|
-
<span class="amplitude-mute"></span>
|
403
|
-
----
|
404
|
-
|
405
|
-
[role="mt-4"]
|
406
|
-
==== Volume Up
|
407
|
-
|
408
|
-
Increases the current volume. There is only one level for the volume
|
409
|
-
up button: *global*.
|
410
|
-
|
411
|
-
The volume up button increments the volume by the amount defined in the
|
412
|
-
config. By default the increment is 5. To change the increment you must
|
413
|
-
adjust the volume_increment setting in the `Amplitude.init()` method.
|
414
|
-
This element will respond to a `click` on desktop or a `touchstart`
|
415
|
-
event on mobile. On iPhones, the user can not adjust the volume through
|
416
|
-
the web page. To add a volume up element add:
|
417
|
-
|
418
|
-
[source, html]
|
419
|
-
----
|
420
|
-
<span class="amplitude-volume-up"></span>
|
421
|
-
----
|
422
|
-
|
423
|
-
[NOTE]
|
424
|
-
====
|
425
|
-
The volume by the amount specified on init. The default value is 5%
|
426
|
-
====
|
427
|
-
|
428
|
-
[role="mt-4"]
|
429
|
-
==== Volume Down
|
430
|
-
|
431
|
-
Decreases the current volume. There is only one level for the volume down
|
432
|
-
button: *global*.
|
433
|
-
|
434
|
-
The volume down button decrements the volume by the amount defined in
|
435
|
-
the config. By default the decrement is 5. To change the increment you
|
436
|
-
must adjust the volume_decrement setting in the `Amplitude.init()`
|
437
|
-
method. This element will respond to a 'click' on desktop or a
|
438
|
-
'touchstart' event on mobile. On iPhones, the user can not adjust the
|
439
|
-
volume through the web page. To add a volume up element add:
|
440
|
-
|
441
|
-
[source, html]
|
442
|
-
----
|
443
|
-
<span class="amplitude-volume-down"></span>
|
444
|
-
----
|
445
|
-
|
446
|
-
[NOTE]
|
447
|
-
====
|
448
|
-
The volume by the amount specified on init. The default value is 5%
|
449
|
-
====
|
450
|
-
|
451
|
-
[role="mt-4"]
|
452
|
-
==== Volume Slider
|
453
|
-
|
454
|
-
Increases or Decreases the current volume by sliding the range element.
|
455
|
-
There is only one level for the volume slider: *global*.
|
456
|
-
|
457
|
-
The volume slider MUST be an HTML 5 range input element. This allows the
|
458
|
-
user to slide the volume to where they want. On desktop and mobile, this
|
459
|
-
element listens to a 'change' or 'input' event. It will not work on
|
460
|
-
iPhones since iOS doesn't allow the user to adjust the volume through
|
461
|
-
anything but the volume up and down hardware buttons. To add a volume
|
462
|
-
slider, add the following HTML code:
|
463
|
-
|
464
|
-
[source, html]
|
465
|
-
----
|
466
|
-
<input type="range" class="amplitude-volume-slider">
|
467
|
-
----
|
468
|
-
|
469
|
-
[role="mt-4"]
|
470
|
-
==== Next Button
|
471
|
-
|
472
|
-
AmplitudeJS extends functionality for the audio tag by allowing
|
473
|
-
designers and developers to build playlists. When a next button has been
|
474
|
-
added AmplitudeJS will go to the next song in the state of the player.
|
475
|
-
|
476
|
-
There are *two* levels of the next button.
|
477
|
-
|
478
|
-
. Global Next - Will go to the next song in the state no matter what
|
479
|
-
state the player is in. If the player is playing a specific playlist,
|
480
|
-
the global next button will go to the next song in the list.
|
481
|
-
. Playlist Next - Will go to the next song in the playlist.
|
482
|
-
|
483
|
-
The next button will either go sequentially down the indexes or the next
|
484
|
-
index in the shuffled songs array. If the player is playing a playlist,
|
485
|
-
then the global next button will operate on that playlist.
|
486
|
-
|
487
|
-
[role="mt-4"]
|
488
|
-
===== Global Next Button
|
489
|
-
|
490
|
-
To add a global next button add the following HTML code:
|
491
|
-
|
492
|
-
[source, html]
|
493
|
-
----
|
494
|
-
<span class="amplitude-next"></span>
|
495
|
-
----
|
496
|
-
|
497
|
-
===== Playlist Next Button
|
498
|
-
|
499
|
-
To add a playlist next button add the following HTML code:
|
500
|
-
|
501
|
-
[source, html]
|
502
|
-
----
|
503
|
-
<span class="amplitude-next" data-amplitude-playlist="{playlist_key}"></span>
|
504
|
-
----
|
505
|
-
|
506
|
-
The playlist next button has a `data-amplitude-playlist` attribute with
|
507
|
-
the key for the playlist it's corresponding to.
|
508
|
-
|
509
|
-
A quick note on the playlist next buttons. If you have two playlists (A
|
510
|
-
& B), and you are playing playlist A, but press a next button that is
|
511
|
-
relating to playlist B, the next button won't do anything.
|
512
|
-
|
513
|
-
[role="mt-4"]
|
514
|
-
==== Previous Button
|
515
|
-
|
516
|
-
Similar to the next button, the previous button goes to the previous
|
517
|
-
song in the state of the player. There are *two* levels of the previous
|
518
|
-
button.
|
519
|
-
|
520
|
-
Global Previous::
|
521
|
-
Will go to the previous song in the state no matter what state
|
522
|
-
the player is in.
|
523
|
-
Playlist Previous::
|
524
|
-
Will go to the previous song in the playlist no matter the state.
|
525
|
-
|
526
|
-
The previous button will go sequentially down the indexes or to the
|
527
|
-
previous index in the shuffled songs array. If the player is playing a
|
528
|
-
playlist, the global previous button will operate on that playlist.
|
529
|
-
|
530
|
-
[role="mt-4"]
|
531
|
-
===== Global Previous Button
|
532
|
-
|
533
|
-
To add a global previous button add the following HTML code:
|
534
|
-
|
535
|
-
[source, html]
|
536
|
-
----
|
537
|
-
<span class="amplitude-prev"></span>
|
538
|
-
----
|
539
|
-
|
540
|
-
===== Playlist Previous Button
|
541
|
-
|
542
|
-
To add a playlist previous button add the following HTML code:
|
543
|
-
|
544
|
-
[source, html]
|
545
|
-
----
|
546
|
-
<span class="amplitude-prev" data-amplitude-playlist="{playlist_key}"></span>
|
547
|
-
----
|
548
|
-
|
549
|
-
The playlist previous button has a `data-amplitude-playlist` attribute
|
550
|
-
with the key for the playlist it's corresponding to. Similar to the next
|
551
|
-
buttons, if you have two playlists and you click a previous button
|
552
|
-
scoped to the inactive playlist, then it won't do anything.
|
553
|
-
|
554
|
-
[role="mt-4"]
|
555
|
-
==== Shuffle Button
|
556
|
-
|
557
|
-
The shuffle button has *two* levels:
|
558
|
-
|
559
|
-
Global Shuffle Button::
|
560
|
-
Shuffles the songs array. This is used outside the scope of
|
561
|
-
a *playlist*.
|
562
|
-
Playlist Shuffle Button::
|
563
|
-
Shuffles all of the songs in a *playlist*. This state is kept
|
564
|
-
on a per-playlist basis.
|
565
|
-
|
566
|
-
The shuffle button is also an extension of functionality added by
|
567
|
-
AmplitudeJS. It allows the developer/user to shuffle songs in a playlist
|
568
|
-
or on a global level.
|
569
|
-
|
570
|
-
Playlists can have shuffle states independent of other playlists. When a
|
571
|
-
song ends or the user goes to the next song, AmplitudeJS will know
|
572
|
-
whether or not the playlist should go to the next sequential user
|
573
|
-
defined song or the next song in the shuffle array. When a playlist is
|
574
|
-
shuffled or the global songs are shuffled a class of
|
575
|
-
`amplitude-shuffle-on` is applied to the element where if shuffle is
|
576
|
-
turned off `ampltiude-shuffle-off` is applied to the element.
|
577
|
-
|
578
|
-
[role="mt-4"]
|
579
|
-
===== Global Shuffle Button
|
580
|
-
|
581
|
-
To add a shuffle button add the following HTML code:
|
582
|
-
|
583
|
-
[source, html]
|
584
|
-
----
|
585
|
-
<span class="amplitude-shuffle"></span>
|
586
|
-
----
|
587
|
-
|
588
|
-
[role="mt-4"]
|
589
|
-
===== Playlist Shuffle Button
|
590
|
-
|
591
|
-
To add a playlist shuffle button add the following HTML code:
|
592
|
-
|
593
|
-
[source, html]
|
594
|
-
----
|
595
|
-
<span class="amplitude-shuffle" data-amplitude-playlist="{playlist_key}"></span>
|
596
|
-
----
|
597
|
-
|
598
|
-
This shuffle button contains the attribute that defines the playlist
|
599
|
-
key. This will shuffle only the playlist defined.
|
600
|
-
|
601
|
-
[role="mt-4"]
|
602
|
-
==== Repeat Button
|
603
|
-
|
604
|
-
The repeat button, when active, will repeat the entire songs array when
|
605
|
-
the last song has been played.
|
606
|
-
|
607
|
-
There are *two* levels to the Repeat Button:
|
608
|
-
|
609
|
-
Global Repeat::
|
610
|
-
Repeats the songs in the songs array when the last song has finished.
|
611
|
-
Playlist Repeat::
|
612
|
-
Repeats the playlist when the last song in the playlist has finished.
|
613
|
-
|
614
|
-
The buttons can be styled based off of the state of the classes applied
|
615
|
-
to the button. When repeat is not on, the button will have a class of
|
616
|
-
`amplitude-repeat-off` applied to the element and when repeat is on, the
|
617
|
-
class `amplitude-repeat-on` applied to the element.
|
618
|
-
|
619
|
-
[role="mt-4"]
|
620
|
-
===== Global Repeat Button
|
621
|
-
|
622
|
-
To add the repeat button, add the following HTML code:
|
623
|
-
|
624
|
-
[source, html]
|
625
|
-
----
|
626
|
-
<span class="amplitude-repeat"></span>
|
627
|
-
----
|
628
|
-
|
629
|
-
[role="mt-4"]
|
630
|
-
===== Playlist Repeat Button
|
631
|
-
|
632
|
-
To add a playlist repeat button, add the following HTML code:
|
633
|
-
|
634
|
-
[source, html]
|
635
|
-
----
|
636
|
-
<span class="amplitude-repeat" data-amplitude-playlist="{playlist_key}"></span>
|
637
|
-
----
|
638
|
-
|
639
|
-
[role="mt-4"]
|
640
|
-
==== Repeat Song Button
|
641
|
-
|
642
|
-
There is only one level of the repeat song button:
|
643
|
-
|
644
|
-
* Global - Repeats the current song when eneded.
|
645
|
-
|
646
|
-
The repeat song button, when active, will repeat the individual song
|
647
|
-
when the song has ended. The button can be styled based off of the sate
|
648
|
-
of classes applied to the button. When the repeat is not on, the button
|
649
|
-
will have a class of `amplitude-repeat-song-off` and when on,
|
650
|
-
`amplitude-repeat-song-on`.
|
651
|
-
|
652
|
-
To add the repeat song button, add the following HTML code:
|
653
|
-
|
654
|
-
[source, html]
|
655
|
-
----
|
656
|
-
<span class="amplitude-repeat-song"></span>
|
657
|
-
----
|
658
|
-
|
659
|
-
==== Playback Speed Button
|
660
|
-
|
661
|
-
There is only one level for the playback speed button: Global.
|
662
|
-
|
663
|
-
The playback speed button controls how fast the audio is played back
|
664
|
-
through AmplitudeJS. There are 3 speeds.
|
665
|
-
|
666
|
-
. '1.0' which is the base speed.
|
667
|
-
. '1.5' which is 1.5x as fast
|
668
|
-
. '2.0' which is 2x as fast
|
669
|
-
|
670
|
-
When clicked, the playback speed button will add a class representing
|
671
|
-
the speed the player is playing back at. The classes can be styled as
|
672
|
-
well and are as follows:
|
673
|
-
|
674
|
-
* '1.0' = 'amplitude-playback-speed-10'
|
675
|
-
* '1.5' = 'amplitude-playback-speed-15'
|
676
|
-
* '2.0' = 'amplitude-playback-speed-20'
|
677
|
-
|
678
|
-
To add a playback speed button simply add the following HTML code:
|
679
|
-
|
680
|
-
[source, html]
|
681
|
-
----
|
682
|
-
<span class="amplitude-playback-speed"></span>
|
683
|
-
----
|
684
|
-
|
685
|
-
[role="mt-4"]
|
686
|
-
==== Skip To Link
|
687
|
-
|
688
|
-
There are 2 levels for the skip to link:
|
689
|
-
|
690
|
-
Individual Song::
|
691
|
-
Skips to time defined for a song an individual song in the songs array.
|
692
|
-
Individual Song In Playlist::
|
693
|
-
Skips to a time defined for an individual song in a playlist.
|
694
|
-
|
695
|
-
The skip to links allow the user to define spots in the audio like
|
696
|
-
bookmarks that can be skipped to. They can reference a song in a
|
697
|
-
playlist or an individual song depending on the attributes. If you want
|
698
|
-
to link to a song in a playlist, you have to add the attribute
|
699
|
-
`data-amplitude-song-index="index"` and
|
700
|
-
`data-amplitude-playlist="playlist"`. To make the skip work, you will
|
701
|
-
also have to add an attribute `data-amplitude-location="seconds"` to
|
702
|
-
link to in the song.
|
703
|
-
|
704
|
-
[role="mt-4"]
|
705
|
-
===== Individual Song Link
|
706
|
-
|
707
|
-
An example song link would be:
|
708
|
-
|
709
|
-
[source, html]
|
710
|
-
----
|
711
|
-
<span
|
712
|
-
class="amplitude-skip-to"
|
713
|
-
data-amplitude-song-index="{song_index}"
|
714
|
-
data-amplitude-location="30">
|
715
|
-
</span>
|
716
|
-
----
|
717
|
-
|
718
|
-
This link will go to the song at the index defined and the location of
|
719
|
-
the seconds defined by the `data-amplitude-location` attribute into the
|
720
|
-
song.
|
721
|
-
|
722
|
-
[role="mt-4"]
|
723
|
-
===== Individual Song In Playlist Link
|
724
|
-
|
725
|
-
An example of an individual song in playlist link would be:
|
726
|
-
|
727
|
-
[source, html]
|
728
|
-
----
|
729
|
-
<span
|
730
|
-
class="amplitude-skip-to"
|
731
|
-
data-amplitude-song-index="{song_index}"
|
732
|
-
data-amplitude-location="30"
|
733
|
-
data-amplitude-playlist="{playlist}">
|
734
|
-
</span>
|
735
|
-
----
|
736
|
-
|
737
|
-
This will skip to 30 seconds into a song in the playlist defined.
|
738
|
-
Remember, the index of the song in the playlist is scoped to the
|
739
|
-
playlist!
|
740
|
-
|
741
|
-
[role="mt-4"]
|
742
|
-
==== Song Tracking Slider (HTML 5 Range)
|
743
|
-
|
744
|
-
There are 4 levels to the song tracking slider:
|
745
|
-
|
746
|
-
Global::
|
747
|
-
This tracks whatever song is playing.
|
748
|
-
Playlist::
|
749
|
-
This tracks the song currently playing in the playlist.
|
750
|
-
Individual Song::
|
751
|
-
This tracks an individual song.
|
752
|
-
Individual Song In Playlist::
|
753
|
-
This tracks an individual song within playlist.
|
754
|
-
|
755
|
-
Song tracking sliders are implemented with the HTML 5 range element.
|
756
|
-
This provides a semantic way to navigate through a song. The HTML 5
|
757
|
-
range element provides functionality and you can style it, even if it's
|
758
|
-
a pain. However, if you are motivated, you can implement a custom song
|
759
|
-
slider using some of the callbacks and public facing methods.
|
760
|
-
|
761
|
-
Note that features like the tracking slider and progress bar depend on
|
762
|
-
the browser being able to request the audio file in arbitrary chunks.
|
763
|
-
Firefox can work around lack of support from the server, but for these
|
764
|
-
features to work properly, your server must support
|
765
|
-
https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Range[Content-Range HTTP headers, {browser-window--new}].
|
766
|
-
|
767
|
-
[role="mt-4"]
|
768
|
-
===== Global Song Slider
|
769
|
-
|
770
|
-
To add a global song slider, add the following element:
|
771
|
-
|
772
|
-
[source, html]
|
773
|
-
----
|
774
|
-
<input
|
775
|
-
type="range"
|
776
|
-
class="amplitude-song-slider"
|
777
|
-
step=".1">
|
778
|
-
----
|
779
|
-
|
780
|
-
The class name is `amplitude-song-slider`. the `step` attribute makes
|
781
|
-
fine tuning the slider to react more to the current state of the song
|
782
|
-
more fluid.
|
783
|
-
|
784
|
-
[role="mt-4"]
|
785
|
-
===== Playlist Song Slider
|
786
|
-
|
787
|
-
If you want to do an individual playlist, you can add the attribute of
|
788
|
-
`data-amplitude-playlist="{playlist_key}"`.
|
789
|
-
|
790
|
-
[source, html]
|
791
|
-
----
|
792
|
-
<input
|
793
|
-
type="range"
|
794
|
-
class="amplitude-song-slider"
|
795
|
-
data-amplitude-playlist="{playlist_key}">
|
796
|
-
----
|
797
|
-
|
798
|
-
[role="mt-4"]
|
799
|
-
===== Individual Song Slider
|
800
|
-
|
801
|
-
You can also add a song slider for an individual song like this:
|
802
|
-
|
803
|
-
[source, html]
|
804
|
-
----
|
805
|
-
<input
|
806
|
-
type="range"
|
807
|
-
class="amplitude-song-slider"
|
808
|
-
data-amplitude-song-index="{song_index}">
|
809
|
-
----
|
810
|
-
|
811
|
-
[role="mt-4"]
|
812
|
-
===== Individual Song In Playlist Slider
|
813
|
-
|
814
|
-
You can also add a song slider for an individual song in a playlist like
|
815
|
-
this:
|
816
|
-
|
817
|
-
[source, html]
|
818
|
-
----
|
819
|
-
<input
|
820
|
-
type="range"
|
821
|
-
class="amplitude-song-slider"
|
822
|
-
data-amplitude-playlist="{playlist_key}"
|
823
|
-
data-amplitude-song-index="{song_index}">
|
824
|
-
----
|
825
|
-
|
826
|
-
[role="mt-4"]
|
827
|
-
==== Song Progress Bar
|
828
|
-
|
829
|
-
There are 4 levels where you can add a song progress bar:
|
830
|
-
|
831
|
-
Global::
|
832
|
-
Displays the current progress for the audio being played.
|
833
|
-
Playlist::
|
834
|
-
Displays the current progress if the current song is in the playlist.
|
835
|
-
Individual Song::
|
836
|
-
Displays the current progress for an individual song.
|
837
|
-
Individual Song in a Playlist::
|
838
|
-
Displays the individual song current progress for a
|
839
|
-
song in the playlist.
|
840
|
-
|
841
|
-
The song progress bar must be implemented with the HTML 5 progress element.
|
842
|
-
This allows you full customization over the design. These operate the same
|
843
|
-
as the range except you will have to implement your own slider event
|
844
|
-
handling.
|
845
|
-
|
846
|
-
[role="mt-4"]
|
847
|
-
===== Global Song Progress Bar
|
848
|
-
|
849
|
-
To add a song progress bar, add the following:
|
850
|
-
|
851
|
-
[source, html]
|
852
|
-
----
|
853
|
-
<progress class="amplitude-song-played-progress"></progress>
|
854
|
-
----
|
855
|
-
|
856
|
-
[role="mt-4"]
|
857
|
-
===== Playlist Song Progress Bar
|
858
|
-
|
859
|
-
To add a playlist song progress bar, add the following:
|
860
|
-
|
861
|
-
[source, html]
|
862
|
-
----
|
863
|
-
<progress
|
864
|
-
class="amplitude-song-played-progress"
|
865
|
-
data-amplitude-playlist="{playlist_key}">
|
866
|
-
</progress>
|
867
|
-
----
|
868
|
-
|
869
|
-
[role="mt-4"]
|
870
|
-
===== Individual Song Progress Bar
|
871
|
-
|
872
|
-
To add an individual song progress bar, add the following:
|
873
|
-
|
874
|
-
[source, html]
|
875
|
-
----
|
876
|
-
<progress
|
877
|
-
class="amplitude-song-played-progress"
|
878
|
-
data-amplitude-song-index="{song_index}">
|
879
|
-
</progress>
|
880
|
-
----
|
881
|
-
|
882
|
-
[role="mt-4"]
|
883
|
-
===== Individual Song In Playlist Progress Bar
|
884
|
-
|
885
|
-
[source, html]
|
886
|
-
----
|
887
|
-
<progress
|
888
|
-
class="amplitude-song-played-progress"
|
889
|
-
data-amplitude-playlist="{playlist_key}"
|
890
|
-
data-amplitude-song-index="{song_index}">
|
891
|
-
</progress>
|
892
|
-
----
|
893
|
-
|
894
|
-
[role="mt-4"]
|
895
|
-
==== Song Buffered Progress Bar
|
896
|
-
|
897
|
-
There are 4 levels for a song buffered progress bar:
|
898
|
-
|
899
|
-
Global::
|
900
|
-
Displays the percentage of the song buffered for the
|
901
|
-
current song.
|
902
|
-
Playlist::
|
903
|
-
Displays the percentage of the song buffered for the
|
904
|
-
current playlist song.
|
905
|
-
Individual Song::
|
906
|
-
Displays the percentage of the song buffered for anindividual song.
|
907
|
-
Individual Song In Playlist::
|
908
|
-
Displays the percentage of the song buffered for an individual
|
909
|
-
song in a playlist.
|
910
|
-
|
911
|
-
The Song Buffered Progress Bar has to be an HTML 5 progress element.
|
912
|
-
This is the proper semantic element for this use case. This allows for a
|
913
|
-
visual display of how much of the song has been buffered. You can do
|
914
|
-
some CSS techniques to overlay this progress element over the
|
915
|
-
song-played-progress element to make an all in one, or you could leave
|
916
|
-
it by itself.
|
917
|
-
|
918
|
-
[role="mt-4"]
|
919
|
-
===== Global Song Buffered Progress Bar
|
920
|
-
|
921
|
-
To add a song buffered progress element, add the following:
|
922
|
-
|
923
|
-
[source, html]
|
924
|
-
----
|
925
|
-
<progress class="amplitude-buffered-progress" value="0"></progress>
|
926
|
-
----
|
927
|
-
|
928
|
-
[role="mt-4"]
|
929
|
-
===== Playlist Song Buffered Progress Bar
|
930
|
-
|
931
|
-
To add a playlist song buffered progress element, add the following:
|
932
|
-
|
933
|
-
[source, html]
|
934
|
-
----
|
935
|
-
<progress
|
936
|
-
class="amplitude-buffered-progress"
|
937
|
-
data-amplitude-playlist="{playlist_key}"
|
938
|
-
value="0">
|
939
|
-
</progress>
|
940
|
-
----
|
941
|
-
|
942
|
-
[role="mt-4"]
|
943
|
-
===== Individual Song Buffered Progress Bar
|
944
|
-
|
945
|
-
To add an individual song buffered progress element, add the following:
|
946
|
-
|
947
|
-
[source, html]
|
948
|
-
----
|
949
|
-
<progress
|
950
|
-
class="amplitude-buffered-progress"
|
951
|
-
data-amplitude-song-index="{song_index}"
|
952
|
-
value="0">
|
953
|
-
</progress>
|
954
|
-
----
|
955
|
-
|
956
|
-
[role="mt-4"]
|
957
|
-
===== Individual Song In Playlist Buffered Progress Bar
|
958
|
-
|
959
|
-
To add an individual song in playlist buffered progress element, add the
|
960
|
-
following:
|
961
|
-
|
962
|
-
[source, html]
|
963
|
-
----
|
964
|
-
<progress
|
965
|
-
class="amplitude-buffered-progress"
|
966
|
-
data-amplitude-song-index="{song_index}"
|
967
|
-
data-amplitude-playlist="{playlist_key}"
|
968
|
-
value="0">
|
969
|
-
</progress>
|
970
|
-
----
|
971
|
-
|
972
|
-
|
973
|
-
[role="mt-5"]
|
974
|
-
== Metadata
|
975
|
-
|
976
|
-
Meta data elements get their information filled in with meta data from the
|
977
|
-
active song object or on initialization from the keyed song in the array.
|
978
|
-
These can be any type of HTML element except when filling in cover_art_url,
|
979
|
-
station_art_url, or podcast_episode_cover_art_url.
|
980
|
-
|
981
|
-
These specific keys have to be on an img tag since they update the src
|
982
|
-
attribute of the tag. Every other attribute fills in the inner html of
|
983
|
-
the tag.
|
984
|
-
|
985
|
-
[role="mt-4"]
|
986
|
-
=== Image Metadata
|
987
|
-
|
988
|
-
When defining a song object there are 3 different keys you can define
|
989
|
-
image meta data with:
|
990
|
-
|
991
|
-
* cover_art_url
|
992
|
-
* station_art_url
|
993
|
-
* podcast_episode_cover_art_url
|
994
|
-
|
995
|
-
These URLs point to an image that will be substituted out for the active
|
996
|
-
song image.
|
997
|
-
|
998
|
-
[role="mt-4"]
|
999
|
-
=== Text Metadata
|
1000
|
-
|
1001
|
-
With text metadata describing a song, you can use whatever information
|
1002
|
-
you like and place it in whatever element you like. This give much more
|
1003
|
-
flexibility when using AmplitudeJS in a variety of audio scenarios such
|
1004
|
-
as for radio stations and podcasts. To add an element that contains a
|
1005
|
-
piece of meta data regarding the now playing song simply add:
|
1006
|
-
|
1007
|
-
[source, html]
|
1008
|
-
----
|
1009
|
-
<span data-amplitude-song-info="{song_meta_index}"></span>
|
1010
|
-
----
|
1011
|
-
|
1012
|
-
If it's an element for a playlist add the key for the playlist:
|
1013
|
-
|
1014
|
-
[source, html]
|
1015
|
-
----
|
1016
|
-
<span
|
1017
|
-
data-amplitude-song-info="{song_meta_index}"
|
1018
|
-
data-amplitude-playlist="{playlist_index}">
|
1019
|
-
</span>
|
1020
|
-
----
|
1021
|
-
|
1022
|
-
[role="mt-4"]
|
1023
|
-
=== Autofill Meta Data
|
1024
|
-
|
1025
|
-
Sometimes when building a player, you don't know what every song is on
|
1026
|
-
load and need to load songs dynamically. With AmplitudeJS this is not a
|
1027
|
-
problem. AmplitudeJS will autofill the meta data for lists of songs if
|
1028
|
-
you do a combination of the following on the element.
|
1029
|
-
|
1030
|
-
data-amplitude-song-info::
|
1031
|
-
Defines the information you want injected into the element.
|
1032
|
-
This is the key of the song object.
|
1033
|
-
data-amplitude-song-index::
|
1034
|
-
Defines the index of the song in the songs array that you want
|
1035
|
-
to inject into the element.
|
1036
|
-
|
1037
|
-
This is super convenient when loading songs dynamically either server
|
1038
|
-
side or loading after the page has loaded.
|
1039
|
-
|
1040
|
-
[role="mt-4"]
|
1041
|
-
=== Playlist Meta Data
|
1042
|
-
|
1043
|
-
When you add a playlist, you can add all sorts of other metadata to the
|
1044
|
-
playlist object, similar to who song objects work. AmplitudeJS also
|
1045
|
-
takes care of initializing this data on the screen if you have your meta
|
1046
|
-
data element keyed up correctly. Let's say you have a playlist title
|
1047
|
-
field represented by `title` in the playlist element that you want to
|
1048
|
-
display on the screen. You'd add an element that has the following
|
1049
|
-
attributes:
|
1050
|
-
|
1051
|
-
[source, html]
|
1052
|
-
----
|
1053
|
-
<span
|
1054
|
-
data-amplitude-playlist-info="title"
|
1055
|
-
data-amplitude-playlist="{playlist_key}">
|
1056
|
-
</span>
|
1057
|
-
----
|
1058
|
-
|
1059
|
-
Essentially you have to add an attribute with the key of the element and
|
1060
|
-
the playlist key in a format like this:
|
1061
|
-
|
1062
|
-
[source, html]
|
1063
|
-
----
|
1064
|
-
<span
|
1065
|
-
data-amplitude-playlist-info="{info}"
|
1066
|
-
data-amplitude-playlist="{playlist_key}">
|
1067
|
-
</span>
|
1068
|
-
----
|
1069
|
-
|
1070
|
-
[role="mt-4"]
|
1071
|
-
=== Metadata for Time
|
1072
|
-
|
1073
|
-
There are certain elements that contain time data about the active song.
|
1074
|
-
You can add these elements to your document and they will auto fill with
|
1075
|
-
the current status of the song. Like other elements, these can be either
|
1076
|
-
for the overall player, scoped in a playlist or for a specific song.
|
1077
|
-
|
1078
|
-
There are three sets of time meta data:
|
1079
|
-
|
1080
|
-
* current time
|
1081
|
-
* song duration
|
1082
|
-
* time remaining
|
1083
|
-
|
1084
|
-
The song *duration* can only be set for the *active* song since the metadata
|
1085
|
-
isn't preloaded for all of the songs. The time remaining is a count down for
|
1086
|
-
how much time is left for a song.
|
1087
|
-
|
1088
|
-
[role="mt-4"]
|
1089
|
-
==== Current Time
|
1090
|
-
|
1091
|
-
Current Time Metadata is used for the *overall player* referencing the
|
1092
|
-
*global* playlist defined by the *songs* array configured for an AmplitudeJS
|
1093
|
-
instance.
|
1094
|
-
|
1095
|
-
.Current Time
|
1096
|
-
[cols="3,3a,6a", subs=+macros, options="header", width="100%", role="rtable mt-3"]
|
1097
|
-
|===
|
1098
|
-
|Name |Value |Description
|
1099
|
-
|
1100
|
-
|`amplitude-current-time`
|
1101
|
-
|Current Time
|
1102
|
-
|
|
1103
|
-
.Format
|
1104
|
-
----
|
1105
|
-
Current Time - Displays in MM:SS
|
1106
|
-
----
|
1107
|
-
|
1108
|
-
.Example
|
1109
|
-
[source, html]
|
1110
|
-
----
|
1111
|
-
<span class="amplitude-current-time"></span>
|
1112
|
-
----
|
1113
|
-
|
1114
|
-
|`amplitude-current-hours`
|
1115
|
-
|Current Hours
|
1116
|
-
|
|
1117
|
-
.Example
|
1118
|
-
[source, html]
|
1119
|
-
----
|
1120
|
-
<span class="amplitude-current-hours"></span>
|
1121
|
-
----
|
1122
|
-
|
1123
|
-
|`amplitude-current-minutes`
|
1124
|
-
|Current Minutes
|
1125
|
-
|
|
1126
|
-
.Example
|
1127
|
-
[source, html]
|
1128
|
-
----
|
1129
|
-
<span class="amplitude-current-minutes"></span>
|
1130
|
-
----
|
1131
|
-
|
1132
|
-
|`amplitude-current-seconds`
|
1133
|
-
|Current Seconds
|
1134
|
-
|
|
1135
|
-
.Example
|
1136
|
-
[source, html]
|
1137
|
-
----
|
1138
|
-
<span class="amplitude-current-seconds"></span>
|
1139
|
-
----
|
1140
|
-
|
1141
|
-
|===
|
1142
|
-
|
1143
|
-
|
1144
|
-
[role="mt-4"]
|
1145
|
-
==== Duration Time
|
1146
|
-
|
1147
|
-
Duration Time Metadata is used for the *overall player* referencing the
|
1148
|
-
*global* playlist defined by the *songs* array configured for an AmplitudeJS
|
1149
|
-
instance.
|
1150
|
-
|
1151
|
-
.Duration Time
|
1152
|
-
[cols="3,3a,6a", subs=+macros, options="header", width="100%", role="rtable mt-3"]
|
1153
|
-
|===
|
1154
|
-
|Name |Value |Description
|
1155
|
-
|
1156
|
-
|`amplitude-duration-time`
|
1157
|
-
|Duration Hours
|
1158
|
-
|
|
1159
|
-
.Format
|
1160
|
-
----
|
1161
|
-
Duration Time - Displays in MM:SS
|
1162
|
-
----
|
1163
|
-
|
1164
|
-
.Example
|
1165
|
-
[source, html]
|
1166
|
-
----
|
1167
|
-
<span class="amplitude-duration-time"></span>
|
1168
|
-
----
|
1169
|
-
|
1170
|
-
|`amplitude-duration-hours`
|
1171
|
-
|Duration Hours
|
1172
|
-
|
|
1173
|
-
.Example
|
1174
|
-
[source, html]
|
1175
|
-
----
|
1176
|
-
<span class="amplitude-duration-hours"></span>
|
1177
|
-
----
|
1178
|
-
|
1179
|
-
|`amplitude-duration-minutes`
|
1180
|
-
|Duration Minutes
|
1181
|
-
|
|
1182
|
-
.Example
|
1183
|
-
[source, html]
|
1184
|
-
----
|
1185
|
-
<span class="amplitude-duration-minutes"></span>
|
1186
|
-
----
|
1187
|
-
|
1188
|
-
|`amplitude-duration-seconds`
|
1189
|
-
|Duration Seconds
|
1190
|
-
|
|
1191
|
-
.Example
|
1192
|
-
[source, html]
|
1193
|
-
----
|
1194
|
-
<span class="amplitude-duration-seconds"></span>
|
1195
|
-
----
|
1196
|
-
|
1197
|
-
|===
|
1198
|
-
|
1199
|
-
|
1200
|
-
[role="mt-4"]
|
1201
|
-
==== Metadata for a Playlist
|
1202
|
-
|
1203
|
-
.Format
|
1204
|
-
----
|
1205
|
-
Current Time For Playlist - Displays in MM:SS
|
1206
|
-
----
|
1207
|
-
|
1208
|
-
[source, html]
|
1209
|
-
----
|
1210
|
-
<span
|
1211
|
-
class="amplitude-current-time"
|
1212
|
-
data-amplitude-playlist="{playlist_key}">
|
1213
|
-
</span>
|
1214
|
-
----
|
1215
|
-
|
1216
|
-
Current Hours For Playlist
|
1217
|
-
|
1218
|
-
[source, html]
|
1219
|
-
----
|
1220
|
-
<span
|
1221
|
-
class="amplitude-current-hours"
|
1222
|
-
data-amplitude-playlist="{playlist_key}">
|
1223
|
-
</span>
|
1224
|
-
----
|
1225
|
-
|
1226
|
-
Current Minutes For Playlist
|
1227
|
-
|
1228
|
-
[source, html]
|
1229
|
-
----
|
1230
|
-
<span
|
1231
|
-
class="amplitude-current-minutes"
|
1232
|
-
data-amplitude-playlist="{playlist_key}">
|
1233
|
-
</span>
|
1234
|
-
----
|
1235
|
-
|
1236
|
-
Current Seconds For Playlist
|
1237
|
-
|
1238
|
-
[source, html]
|
1239
|
-
----
|
1240
|
-
<span
|
1241
|
-
class="amplitude-current-seconds"
|
1242
|
-
data-amplitude-playlist="{playlist_key}">
|
1243
|
-
</span>
|
1244
|
-
----
|
1245
|
-
|
1246
|
-
|
1247
|
-
[role="mt-4"]
|
1248
|
-
==== Metadata for a Song
|
1249
|
-
|
1250
|
-
.Format
|
1251
|
-
----
|
1252
|
-
Current Time For Song
|
1253
|
-
----
|
1254
|
-
|
1255
|
-
[source, html]
|
1256
|
-
----
|
1257
|
-
<span
|
1258
|
-
class="amplitude-current-time"
|
1259
|
-
data-amplitude-song-index="{song_index}">
|
1260
|
-
</span>
|
1261
|
-
----
|
1262
|
-
|
1263
|
-
.Current Hours For Song
|
1264
|
-
[source, html]
|
1265
|
-
----
|
1266
|
-
<span
|
1267
|
-
class="amplitude-current-hours"
|
1268
|
-
data-amplitude-song-index="{song_index}">
|
1269
|
-
</span>
|
1270
|
-
----
|
1271
|
-
|
1272
|
-
Current Minutes For Song
|
1273
|
-
|
1274
|
-
[source, html]
|
1275
|
-
----
|
1276
|
-
<span
|
1277
|
-
class="amplitude-current-minutes"
|
1278
|
-
data-amplitude-song-index="{song_index}">
|
1279
|
-
</span>
|
1280
|
-
----
|
1281
|
-
|
1282
|
-
Current Seconds For Song
|
1283
|
-
|
1284
|
-
[source, html]
|
1285
|
-
----
|
1286
|
-
<span
|
1287
|
-
class="amplitude-current-seconds"
|
1288
|
-
data-amplitude-song-index="{song_index}">
|
1289
|
-
</span>
|
1290
|
-
----
|
1291
|
-
|
1292
|
-
[role="mt-4"]
|
1293
|
-
==== Metadata for a Song in a Playlist
|
1294
|
-
|
1295
|
-
Current Time For Song In Playlist
|
1296
|
-
|
1297
|
-
[source, html]
|
1298
|
-
----
|
1299
|
-
<span
|
1300
|
-
class="amplitude-current-time"
|
1301
|
-
data-amplitude-playlist="{playlist_key}"
|
1302
|
-
data-amplitude-song-index="{song_index}">
|
1303
|
-
</span>
|
1304
|
-
----
|
1305
|
-
|
1306
|
-
Current Hours For Song In Playlist
|
1307
|
-
[source, html]
|
1308
|
-
----
|
1309
|
-
<span
|
1310
|
-
class="amplitude-current-hours"
|
1311
|
-
data-amplitude-playlist="{playlist_key}"
|
1312
|
-
data-amplitude-song-index="{song_index}">
|
1313
|
-
</span>
|
1314
|
-
----
|
1315
|
-
|
1316
|
-
Current Minutes For Song In Playlist
|
1317
|
-
|
1318
|
-
[source, html]
|
1319
|
-
----
|
1320
|
-
<span
|
1321
|
-
class="amplitude-current-minutes"
|
1322
|
-
data-amplitude-playlist="{playlist_key}"
|
1323
|
-
data-amplitude-song-index="{song_index}">
|
1324
|
-
</span>
|
1325
|
-
----
|
1326
|
-
|
1327
|
-
Current Seconds For Song In Playlist
|
1328
|
-
|
1329
|
-
[source, html]
|
1330
|
-
----
|
1331
|
-
<span
|
1332
|
-
class="amplitude-current-seconds"
|
1333
|
-
data-amplitude-playlist="{playlist_key}"
|
1334
|
-
data-amplitude-song-index="{song_index}">
|
1335
|
-
</span>
|
1336
|
-
----
|
1337
|
-
|
1338
|
-
Duration Time For Playlist - Displays in MM:SS
|
1339
|
-
|
1340
|
-
[source, html]
|
1341
|
-
----
|
1342
|
-
<span class="amplitude-duration-time"></span>
|
1343
|
-
----
|
1344
|
-
|
1345
|
-
Duration Hours For Playlist
|
1346
|
-
|
1347
|
-
[source, html]
|
1348
|
-
----
|
1349
|
-
<span
|
1350
|
-
class="amplitude-duration-hours"
|
1351
|
-
data-amplitude-playlist="{playlist_key}">
|
1352
|
-
</span>
|
1353
|
-
----
|
1354
|
-
|
1355
|
-
Duration Minutes For Playlist
|
1356
|
-
|
1357
|
-
[source, html]
|
1358
|
-
----
|
1359
|
-
<span
|
1360
|
-
class="amplitude-duration-minutes"
|
1361
|
-
data-amplitude-playlist="{playlist_key}">
|
1362
|
-
</span>
|
1363
|
-
----
|
1364
|
-
|
1365
|
-
Duration Seconds For Playlist
|
1366
|
-
|
1367
|
-
[source, html]
|
1368
|
-
----
|
1369
|
-
<span
|
1370
|
-
class="amplitude-duration-seconds"
|
1371
|
-
data-amplitude-playlist="{playlist_key}">
|
1372
|
-
</span>
|
1373
|
-
----
|
1374
|
-
|
1375
|
-
Duration Time For Song - Displays in MM:SS
|
1376
|
-
|
1377
|
-
[source, html]
|
1378
|
-
----
|
1379
|
-
<span
|
1380
|
-
class="amplitude-duration-time"
|
1381
|
-
data-amplitude-song-index="{song_index}">
|
1382
|
-
</span>
|
1383
|
-
----
|
1384
|
-
|
1385
|
-
Duration Hours For Song
|
1386
|
-
|
1387
|
-
[source, html]
|
1388
|
-
----
|
1389
|
-
<span
|
1390
|
-
class="amplitude-duration-hours"
|
1391
|
-
data-amplitude-song-index="{song_index}">
|
1392
|
-
</span>
|
1393
|
-
----
|
1394
|
-
|
1395
|
-
Duration Minutes For Song
|
1396
|
-
|
1397
|
-
[source, html]
|
1398
|
-
----
|
1399
|
-
<span
|
1400
|
-
class="amplitude-duration-minutes"
|
1401
|
-
data-amplitude-song-index="{song_index}">
|
1402
|
-
</span>
|
1403
|
-
----
|
1404
|
-
|
1405
|
-
Duration Seconds For Song
|
1406
|
-
|
1407
|
-
[source, html]
|
1408
|
-
----
|
1409
|
-
<span
|
1410
|
-
class="amplitude-duration-seconds"
|
1411
|
-
data-amplitude-song-index="{song_index}">
|
1412
|
-
</span>
|
1413
|
-
----
|
1414
|
-
|
1415
|
-
Main Time Remaining For Song
|
1416
|
-
|
1417
|
-
[source, html]
|
1418
|
-
----
|
1419
|
-
<span class="amplitude-time-remaining"></span>
|
1420
|
-
----
|
1421
|
-
|
1422
|
-
Playlist Main Time Remaining For Song
|
1423
|
-
|
1424
|
-
[source, html]
|
1425
|
-
----
|
1426
|
-
<span
|
1427
|
-
class="amplitude-time-remaining"
|
1428
|
-
data-amplitude-playlist="{playlist_key}">
|
1429
|
-
</span>
|
1430
|
-
----
|
1431
|
-
|
1432
|
-
Song Time Remaining
|
1433
|
-
|
1434
|
-
[source, html]
|
1435
|
-
----
|
1436
|
-
<span
|
1437
|
-
class="amplitude-time-remaining"
|
1438
|
-
data-amplitude-song-index="{song_index}">
|
1439
|
-
</span>
|
1440
|
-
----
|
1441
|
-
|
1442
|
-
[role="mt-4"]
|
1443
|
-
=== Song Container
|
1444
|
-
|
1445
|
-
This is a unique element. What this does is allow you to assign a
|
1446
|
-
container to the visual representation of a song or a song in a
|
1447
|
-
playlist. When that song is currently playing, the class
|
1448
|
-
`amplitude-active-song-container` will be applied to the song container
|
1449
|
-
element. This way you can style the element to show the active song.
|
1450
|
-
|
1451
|
-
For a single song container it would be:
|
1452
|
-
|
1453
|
-
[source, html]
|
1454
|
-
----
|
1455
|
-
<div class="amplitude-song-container" data-amplitude-song-index="{X}"></div>
|
1456
|
-
----
|
1457
|
-
|
1458
|
-
For a playlist song container it would be:
|
1459
|
-
|
1460
|
-
[source, html]
|
1461
|
-
----
|
1462
|
-
<div
|
1463
|
-
class="amplitude-song-container"
|
1464
|
-
data-amplitude-playlist="{playlist_key}"
|
1465
|
-
data-amplitude-song-index="{song_index}">
|
1466
|
-
</div>
|
1467
|
-
----
|
1468
|
-
|
1469
|
-
[role="mt-5"]
|
1470
|
-
== Methods
|
1471
|
-
|
1472
|
-
There are a variety of public functions that AmplitudeJS exposes to the
|
1473
|
-
user. These methods allow the user to change config variables, add new
|
1474
|
-
songs, play now, etc.
|
1475
|
-
|
1476
|
-
[role="mt-4"]
|
1477
|
-
=== Bind new Elements
|
1478
|
-
|
1479
|
-
The bind new elements function should be called whenever a new song
|
1480
|
-
element is added to the page. This will bind all of the event handlers
|
1481
|
-
for that element.
|
1482
|
-
|
1483
|
-
[source, js]
|
1484
|
-
----
|
1485
|
-
Amplitude.bindNewElements()
|
1486
|
-
----
|
1487
|
-
|
1488
|
-
[role="mt-4"]
|
1489
|
-
=== Add a Playlist
|
1490
|
-
|
1491
|
-
This method allows you to add a playlist to AmplitudeJS. To do this, you
|
1492
|
-
need a unique key for your playlist, the data describing your playlist
|
1493
|
-
such as `title`, `author`, etc. and an array of song objects for your
|
1494
|
-
playlist.
|
1495
|
-
|
1496
|
-
[source, js]
|
1497
|
-
----
|
1498
|
-
Amplitude.addPlaylist( key, data, songs );
|
1499
|
-
----
|
1500
|
-
|
1501
|
-
The first argument is the `key`. Remember this is a JSON key and should
|
1502
|
-
be formatted as such.
|
1503
|
-
|
1504
|
-
The second argument is all of the data describing the playlist such as
|
1505
|
-
`name`, `title`, `author`, etc. in the form of a JSON object.
|
1506
|
-
|
1507
|
-
Finally, the third argument is an array of song objects. These are the
|
1508
|
-
songs that will be added to the playlist.
|
1509
|
-
|
1510
|
-
[role="mt-4"]
|
1511
|
-
=== Add a Song
|
1512
|
-
|
1513
|
-
Adds a song to the AmplitudeJS player. You will need to write a method
|
1514
|
-
yourself to add the visual side of things to fit your custom design, and
|
1515
|
-
then call the bindNewElements() method to make sure it works.
|
1516
|
-
|
1517
|
-
This method returns the index of the song added to the player.
|
1518
|
-
|
1519
|
-
[source, js]
|
1520
|
-
----
|
1521
|
-
Amplitude.addSong( {song_object} );
|
1522
|
-
----
|
1523
|
-
|
1524
|
-
[role="mt-4"]
|
1525
|
-
=== Prepend a Song
|
1526
|
-
|
1527
|
-
Adds a song to the beginning of the AmplitudeJS player. After
|
1528
|
-
pre-pending the song, you will have to bindNewElements() method to make
|
1529
|
-
sure that any visuals are updated as well.
|
1530
|
-
|
1531
|
-
This method returns the index of the song added to the player.
|
1532
|
-
|
1533
|
-
[source, js]
|
1534
|
-
----
|
1535
|
-
Amplitude.prependSong( {song_object} );
|
1536
|
-
----
|
1537
|
-
|
1538
|
-
[role="mt-4"]
|
1539
|
-
=== Add a Song to a Playlist
|
1540
|
-
|
1541
|
-
Adds a song to a specific playlist within AmplitudeJS. Once the song is
|
1542
|
-
added you will need to update the visual side of the player yourself.
|
1543
|
-
After you update the visual side, run the `Amplitude.bindNewElements()`
|
1544
|
-
method to make sure the functionality is there for the new element.
|
1545
|
-
|
1546
|
-
[source, js]
|
1547
|
-
----
|
1548
|
-
Amplitude.addSongToPlaylist( songObject, playlistKey )
|
1549
|
-
----
|
1550
|
-
|
1551
|
-
[role="mt-4"]
|
1552
|
-
=== Remove a Song
|
1553
|
-
|
1554
|
-
Removes a song from the global song array. You will have to remove the
|
1555
|
-
containing element by yourself.
|
1556
|
-
|
1557
|
-
[source, js]
|
1558
|
-
----
|
1559
|
-
Amplitude.removeSong( indexOfSong )
|
1560
|
-
----
|
1561
|
-
|
1562
|
-
[role="mt-4"]
|
1563
|
-
=== Remove a Song From Playlist
|
1564
|
-
|
1565
|
-
Removes a song from a playlist. You will have to update the visual side
|
1566
|
-
by yourself.
|
1567
|
-
|
1568
|
-
[source, js]
|
1569
|
-
----
|
1570
|
-
Amplitude.removeSongFromPlaylist( indexOfSongInPlaylist, playlistKey )
|
1571
|
-
----
|
1572
|
-
|
1573
|
-
[role="mt-4"]
|
1574
|
-
=== Play
|
1575
|
-
|
1576
|
-
This simply plays whatever song is active.
|
1577
|
-
|
1578
|
-
[source, js]
|
1579
|
-
----
|
1580
|
-
Amplitude.play()
|
1581
|
-
----
|
1582
|
-
|
1583
|
-
[role="mt-4"]
|
1584
|
-
=== Play a Song At Index
|
1585
|
-
|
1586
|
-
Plays whatever song is set in the config at the specified index.
|
1587
|
-
|
1588
|
-
[source, js]
|
1589
|
-
----
|
1590
|
-
Amplitude.playSongAtIndex( songIndex )
|
1591
|
-
----
|
1592
|
-
|
1593
|
-
[role="mt-4"]
|
1594
|
-
=== Play a Playlist Song At Index
|
1595
|
-
|
1596
|
-
Plays the song in a playlist at the specified index.
|
1597
|
-
|
1598
|
-
[source, js]
|
1599
|
-
----
|
1600
|
-
Amplitude.playPlaylistSongAtIndex( playlistIndex, playlistKey )
|
1601
|
-
----
|
1602
|
-
|
1603
|
-
[role="mt-4"]
|
1604
|
-
=== Play Now
|
1605
|
-
|
1606
|
-
In AmplitudeJS 2.0 this was referred to as 'Dynamic Mode'. Now you can
|
1607
|
-
just pass a song to AmplitudeJS and it will automatically play. If there
|
1608
|
-
are visual elements, then they will sync as well.
|
1609
|
-
|
1610
|
-
[source, js]
|
1611
|
-
----
|
1612
|
-
Amplitude.playNow( {song_object} );
|
1613
|
-
----
|
1614
|
-
|
1615
|
-
[role="mt-4"]
|
1616
|
-
=== Pause
|
1617
|
-
|
1618
|
-
This simply pauses whatever song is active.
|
1619
|
-
|
1620
|
-
[source, js]
|
1621
|
-
----
|
1622
|
-
Amplitude.pause()
|
1623
|
-
----
|
1624
|
-
|
1625
|
-
[role="mt-4"]
|
1626
|
-
=== Stop
|
1627
|
-
|
1628
|
-
This simply stops whatever song is active.
|
1629
|
-
|
1630
|
-
[source, js]
|
1631
|
-
----
|
1632
|
-
Amplitude.stop()
|
1633
|
-
----
|
1634
|
-
|
1635
|
-
[role="mt-4"]
|
1636
|
-
=== Next
|
1637
|
-
|
1638
|
-
Plays the next song either in the playlist or globally.
|
1639
|
-
|
1640
|
-
[source, js]
|
1641
|
-
----
|
1642
|
-
Amplitude.next( playlistKey = null )
|
1643
|
-
----
|
1644
|
-
|
1645
|
-
[role="mt-4"]
|
1646
|
-
=== Prev
|
1647
|
-
|
1648
|
-
Plays the previous song either in the playlist or globally.
|
1649
|
-
|
1650
|
-
[source, js]
|
1651
|
-
----
|
1652
|
-
Amplitude.prev( playlistKey = null )
|
1653
|
-
----
|
1654
|
-
|
1655
|
-
[role="mt-4"]
|
1656
|
-
=== Skip To
|
1657
|
-
|
1658
|
-
Allows the user to skip to a specific location in the song whether that
|
1659
|
-
song is in a playlist or not.
|
1660
|
-
|
1661
|
-
[source, js]
|
1662
|
-
----
|
1663
|
-
Amplitude.skipTo( seconds, songIndex, playlist = null )
|
1664
|
-
----
|
1665
|
-
|
1666
|
-
[role="mt-4"]
|
1667
|
-
=== Register Visualization
|
1668
|
-
|
1669
|
-
The other way to register a visualization is through the public
|
1670
|
-
`Amplitude.registerVisualization( visualization, preferences )` method.
|
1671
|
-
The first parameter being the object included with the visualization
|
1672
|
-
file and the second parameter being a JSON object containing any of the
|
1673
|
-
parameters needed to overwrite defaults provided by the visualization.
|
1674
|
-
|
1675
|
-
[source, js]
|
1676
|
-
----
|
1677
|
-
Amplitude.registerVisualization( visualization, preferences );
|
1678
|
-
----
|
1679
|
-
|
1680
|
-
|
1681
|
-
[role="mt-5"]
|
1682
|
-
=== Setters
|
1683
|
-
|
1684
|
-
Bla, bla ...
|
1685
|
-
|
1686
|
-
[role="mt-4"]
|
1687
|
-
==== Set Default Album Art
|
1688
|
-
|
1689
|
-
Sets the default album art for the player to the URL provided.
|
1690
|
-
|
1691
|
-
[source, js]
|
1692
|
-
----
|
1693
|
-
Amplitude.setDefaultAlbumArt( url )
|
1694
|
-
----
|
1695
|
-
|
1696
|
-
[role="mt-4"]
|
1697
|
-
==== Set Default Playlist Art
|
1698
|
-
|
1699
|
-
Sets the default playlist art.
|
1700
|
-
|
1701
|
-
[source, js]
|
1702
|
-
----
|
1703
|
-
Amplitude.setDefaultPlaylistArt( url )
|
1704
|
-
----
|
1705
|
-
|
1706
|
-
[role="mt-4"]
|
1707
|
-
==== Set Debug
|
1708
|
-
|
1709
|
-
To change the debug mode setting, you can call the setDebug method any
|
1710
|
-
time and start to receive data about the state of the player or turn off
|
1711
|
-
debugging.
|
1712
|
-
|
1713
|
-
[source, js]
|
1714
|
-
----
|
1715
|
-
Amplitude.setDebug( {bool} );
|
1716
|
-
----
|
1717
|
-
|
1718
|
-
[role="mt-4"]
|
1719
|
-
==== Set Delay
|
1720
|
-
|
1721
|
-
If you have multiple songs that your player is using you can change the
|
1722
|
-
amount of time you have as a delay between the songs. When one song
|
1723
|
-
ends, what is set will be the amount of time delayed before the next
|
1724
|
-
song starts.
|
1725
|
-
|
1726
|
-
[source, js]
|
1727
|
-
----
|
1728
|
-
Amplitude.setDelay( milliseconds )
|
1729
|
-
----
|
1730
|
-
|
1731
|
-
[role="mt-4"]
|
1732
|
-
==== Set Global Visualization
|
1733
|
-
|
1734
|
-
You can set the global visualization through the public method like
|
1735
|
-
this:
|
1736
|
-
|
1737
|
-
[source, js]
|
1738
|
-
----
|
1739
|
-
Amplitude.setGlobalVisualization( visualizationKey );
|
1740
|
-
----
|
1741
|
-
|
1742
|
-
[role="mt-4"]
|
1743
|
-
==== Set Playlist Visualization
|
1744
|
-
|
1745
|
-
You can set the visualization through the public facing method like
|
1746
|
-
this:
|
1747
|
-
|
1748
|
-
[source, js]
|
1749
|
-
----
|
1750
|
-
Amplitude.setPlaylistVisualization( playlist_key, visualization_key );
|
1751
|
-
----
|
1752
|
-
|
1753
|
-
[role="mt-4"]
|
1754
|
-
==== Set Individual Song Visualization
|
1755
|
-
|
1756
|
-
You can set the visualization for an individual song like so:
|
1757
|
-
|
1758
|
-
[source, js]
|
1759
|
-
----
|
1760
|
-
Amplitude.setSongVisualization( songIndex, visualizationKey );
|
1761
|
-
----
|
1762
|
-
|
1763
|
-
[role="mt-4"]
|
1764
|
-
==== Set Individual Song In Playlist Visualization
|
1765
|
-
|
1766
|
-
You can set the visualization for an individual song in a playlist
|
1767
|
-
using:
|
1768
|
-
|
1769
|
-
[source, js]
|
1770
|
-
----
|
1771
|
-
Amplitude.setSongInPlaylistVisualization( playlistKey, songIndex, visualizationKey );
|
1772
|
-
----
|
1773
|
-
|
1774
|
-
[role="mt-4"]
|
1775
|
-
==== Set Shuffle
|
1776
|
-
|
1777
|
-
Sets the global shuffle state for AmplitudeJS.
|
1778
|
-
|
1779
|
-
[source, js]
|
1780
|
-
----
|
1781
|
-
Amplitude.setShuffle( shuffleState )
|
1782
|
-
----
|
1783
|
-
|
1784
|
-
[role="mt-4"]
|
1785
|
-
==== Set Shuffle Playlist
|
1786
|
-
|
1787
|
-
Sets the shuffle state for a playlist.
|
1788
|
-
|
1789
|
-
[source, js]
|
1790
|
-
----
|
1791
|
-
Amplitude.setShufflePlaylist( playlistKey, shuffleState )
|
1792
|
-
----
|
1793
|
-
|
1794
|
-
[role="mt-4"]
|
1795
|
-
==== Set Repeat
|
1796
|
-
|
1797
|
-
Sets the global repeat status for AmplitudeJS
|
1798
|
-
|
1799
|
-
[source, js]
|
1800
|
-
----
|
1801
|
-
Amplitude.setRepeat( repeatState )
|
1802
|
-
----
|
1803
|
-
|
1804
|
-
[role="mt-4"]
|
1805
|
-
==== Set Repeat Song
|
1806
|
-
|
1807
|
-
Sets the global state to determine if we should repeat the individual
|
1808
|
-
song upon completion.
|
1809
|
-
|
1810
|
-
[source, js]
|
1811
|
-
----
|
1812
|
-
Amplitude.setRepeatSong( repeatSongState )
|
1813
|
-
----
|
1814
|
-
|
1815
|
-
[role="mt-4"]
|
1816
|
-
==== Set Repeat Playlist
|
1817
|
-
|
1818
|
-
Sets the repeat for the playlist.
|
1819
|
-
|
1820
|
-
[source, js]
|
1821
|
-
----
|
1822
|
-
Amplitude.setRepeatPlaylist( playlistKey, repeatState )
|
1823
|
-
----
|
1824
|
-
|
1825
|
-
[role="mt-4"]
|
1826
|
-
==== Set Song Played Percentage
|
1827
|
-
|
1828
|
-
This method allows you to set the percentage of the active song. The
|
1829
|
-
method accepts a float between 0 and 100 for the percentage of the song
|
1830
|
-
to be set to.
|
1831
|
-
|
1832
|
-
[source, js]
|
1833
|
-
----
|
1834
|
-
Amplitude.setSongPlayedPercentage( percentage )
|
1835
|
-
----
|
1836
|
-
|
1837
|
-
[role="mt-4"]
|
1838
|
-
==== Set Song Meta Data
|
1839
|
-
|
1840
|
-
You can set the meta data for any song in your song objects. This is
|
1841
|
-
helpful if you are doing a live stream and have a call back that returns
|
1842
|
-
the information of what song is currently playing.
|
1843
|
-
|
1844
|
-
[source, js]
|
1845
|
-
----
|
1846
|
-
Amplitude.setSongMetaData( index, metaData )
|
1847
|
-
----
|
1848
|
-
|
1849
|
-
The first parameter `index` is the index of the song in the songs array
|
1850
|
-
you are setting the meta data for. The `metaData` is an object that
|
1851
|
-
contains meta data similar to a song object. The keys that get passed
|
1852
|
-
will be updated on the song object at the index. The only key that can
|
1853
|
-
not be updated is the `url`.
|
1854
|
-
|
1855
|
-
[role="mt-4"]
|
1856
|
-
==== Set Playlist Meta Data
|
1857
|
-
|
1858
|
-
You can set the metadata for the playlist. Similar to the songs object,
|
1859
|
-
you can do it for a playlist object.
|
1860
|
-
|
1861
|
-
[source, js]
|
1862
|
-
----
|
1863
|
-
Amplitude.setPlaylistMetaData( playlist, metaData )
|
1864
|
-
----
|
1865
|
-
|
1866
|
-
The first argument `playlist` is the key of the playlist we are setting
|
1867
|
-
the meta data for and the second object `metaData` is the object
|
1868
|
-
containing all of the keys we are updating.
|
1869
|
-
|
1870
|
-
[role="mt-5"]
|
1871
|
-
=== Getters
|
1872
|
-
|
1873
|
-
Bla, bla ...
|
1874
|
-
|
1875
|
-
[role="mt-4"]
|
1876
|
-
==== Get Analyser
|
1877
|
-
|
1878
|
-
Returns the Web Audio API Analyser. This allows for the user to bind to
|
1879
|
-
the active audio through the web audio API.
|
1880
|
-
|
1881
|
-
[source, js]
|
1882
|
-
----
|
1883
|
-
Amplitude.getAnalyser()
|
1884
|
-
----
|
1885
|
-
|
1886
|
-
[role="mt-4"]
|
1887
|
-
==== Get Config
|
1888
|
-
|
1889
|
-
Returns the current AmplitudeJS configuration.
|
1890
|
-
|
1891
|
-
[source, js]
|
1892
|
-
----
|
1893
|
-
Amplitude.getConfig();
|
1894
|
-
----
|
1895
|
-
|
1896
|
-
[role="mt-4"]
|
1897
|
-
==== Get Delay
|
1898
|
-
|
1899
|
-
Gets the current delay between songs in milliseconds.
|
1900
|
-
|
1901
|
-
[source, js]
|
1902
|
-
----
|
1903
|
-
Amplitude.getDelay();
|
1904
|
-
----
|
1905
|
-
|
1906
|
-
[role="mt-4"]
|
1907
|
-
==== Get Player State
|
1908
|
-
|
1909
|
-
Returns the current state of the player whether it's `playing`,
|
1910
|
-
`paused`, or `stopped`.
|
1911
|
-
|
1912
|
-
[source, js]
|
1913
|
-
----
|
1914
|
-
Amplitude.getPlayerState()
|
1915
|
-
----
|
1916
|
-
|
1917
|
-
[role="mt-4"]
|
1918
|
-
==== Get Active Playlist
|
1919
|
-
|
1920
|
-
This method will return the key of the active playlist.
|
1921
|
-
|
1922
|
-
[source, js]
|
1923
|
-
----
|
1924
|
-
Amplitude.getActivePlaylist()
|
1925
|
-
----
|
1926
|
-
|
1927
|
-
[role="mt-4"]
|
1928
|
-
==== Get Playback Speed
|
1929
|
-
|
1930
|
-
Returns the current playback speed for the player.
|
1931
|
-
|
1932
|
-
[source, js]
|
1933
|
-
----
|
1934
|
-
Amplitude.getPlaybackSpeed()
|
1935
|
-
----
|
1936
|
-
|
1937
|
-
[role="mt-4"]
|
1938
|
-
==== Get Repeat
|
1939
|
-
|
1940
|
-
Returns the state of the global repeat status for the player.
|
1941
|
-
|
1942
|
-
[source, js]
|
1943
|
-
----
|
1944
|
-
Amplitude.getRepeat()
|
1945
|
-
----
|
1946
|
-
|
1947
|
-
[role="mt-4"]
|
1948
|
-
==== Get Repeat Playlist
|
1949
|
-
|
1950
|
-
Returns the state of the repeat status for the playlist.
|
1951
|
-
|
1952
|
-
[source, js]
|
1953
|
-
----
|
1954
|
-
Amplitude.getRepeatPlaylist( playlistKey )
|
1955
|
-
----
|
1956
|
-
|
1957
|
-
[role="mt-4"]
|
1958
|
-
==== Get Shuffle
|
1959
|
-
|
1960
|
-
Returns the current state of the global shuffle status for the player.
|
1961
|
-
|
1962
|
-
[source, js]
|
1963
|
-
----
|
1964
|
-
Amplitude.getShuffle()
|
1965
|
-
----
|
1966
|
-
|
1967
|
-
[role="mt-4"]
|
1968
|
-
==== Get Shuffle Playlist
|
1969
|
-
|
1970
|
-
Returns the state of the shuffle flag for a playlist.
|
1971
|
-
|
1972
|
-
[source, js]
|
1973
|
-
----
|
1974
|
-
Amplitude.getShufflePlaylist( playlistKey )
|
1975
|
-
----
|
1976
|
-
|
1977
|
-
[role="mt-4"]
|
1978
|
-
==== Get Default Album Art
|
1979
|
-
|
1980
|
-
Returns the default album art URL set in the player.
|
1981
|
-
|
1982
|
-
[source, js]
|
1983
|
-
----
|
1984
|
-
Amplitude.getDefaultAlbumArt()
|
1985
|
-
----
|
1986
|
-
|
1987
|
-
[role="mt-4"]
|
1988
|
-
[[get-default-album-art-2]]
|
1989
|
-
==== Get Default Album Art
|
1990
|
-
|
1991
|
-
Returns the URL of the default album art for the player.
|
1992
|
-
|
1993
|
-
[source, js]
|
1994
|
-
----
|
1995
|
-
Amplitude.getDefaultAlbumArt()
|
1996
|
-
----
|
1997
|
-
|
1998
|
-
[role="mt-4"]
|
1999
|
-
==== Get Default Playlist Art
|
2000
|
-
|
2001
|
-
Gets the default art for a playlist.
|
2002
|
-
|
2003
|
-
[source, js]
|
2004
|
-
----
|
2005
|
-
Amplitude.getDefaultPlaylistArt()
|
2006
|
-
----
|
2007
|
-
|
2008
|
-
[role="mt-4"]
|
2009
|
-
==== Get Active Song Metadata
|
2010
|
-
|
2011
|
-
Returns the active song's metadata as a JSON object.
|
2012
|
-
|
2013
|
-
[source, js]
|
2014
|
-
----
|
2015
|
-
Amplitude.getActiveSongMetadata();
|
2016
|
-
----
|
2017
|
-
|
2018
|
-
[role="mt-4"]
|
2019
|
-
==== Get Active Playlist Metadata
|
2020
|
-
|
2021
|
-
Gets the active playlist's metadata as a JSON object.
|
2022
|
-
|
2023
|
-
[source, js]
|
2024
|
-
----
|
2025
|
-
Amplitude.getActivePlaylistMetadata();
|
2026
|
-
----
|
2027
|
-
|
2028
|
-
[role="mt-4"]
|
2029
|
-
==== Get Active Index
|
2030
|
-
|
2031
|
-
This method returns the index of the active song in the songs array.
|
2032
|
-
|
2033
|
-
[source, js]
|
2034
|
-
----
|
2035
|
-
Amplitude.getActiveIndex()
|
2036
|
-
----
|
2037
|
-
|
2038
|
-
[role="mt-4"]
|
2039
|
-
==== Get Active Index State
|
2040
|
-
|
2041
|
-
This method returns the index of the active song in the songs array but
|
2042
|
-
accounts for if shuffle has been enabled or not.
|
2043
|
-
|
2044
|
-
[source, js]
|
2045
|
-
----
|
2046
|
-
Amplitude.getActiveIndexState()
|
2047
|
-
----
|
2048
|
-
|
2049
|
-
[role="mt-4"]
|
2050
|
-
==== Get Audio
|
2051
|
-
|
2052
|
-
This returns the actual audio element. This is mainly used for writing
|
2053
|
-
extensions but exposes the core of AmplitudeJS. This returns the audio
|
2054
|
-
element used by AmplitudeJS.
|
2055
|
-
|
2056
|
-
[source, js]
|
2057
|
-
----
|
2058
|
-
Amplitude.getAudio()
|
2059
|
-
----
|
2060
|
-
|
2061
|
-
[role="mt-4"]
|
2062
|
-
==== Get Buffered
|
2063
|
-
|
2064
|
-
This method returns the buffered percentage of the now playing song.
|
2065
|
-
This can be used to show how much of the song has been buffered and
|
2066
|
-
ready to be played.
|
2067
|
-
|
2068
|
-
[source, js]
|
2069
|
-
----
|
2070
|
-
Amplitude.getBuffered()
|
2071
|
-
----
|
2072
|
-
|
2073
|
-
[role="mt-4"]
|
2074
|
-
==== Get songs
|
2075
|
-
|
2076
|
-
This method returns all of the songs defined in AmplitudeJS. It can be
|
2077
|
-
used for a variety of different functions. It's extremely helpful if you
|
2078
|
-
are AJAX loading songs and want to see the contents of the song array.
|
2079
|
-
|
2080
|
-
[source, js]
|
2081
|
-
----
|
2082
|
-
Amplitude.getSongs()
|
2083
|
-
----
|
2084
|
-
|
2085
|
-
[role="mt-4"]
|
2086
|
-
==== Get Songs In Playlist
|
2087
|
-
|
2088
|
-
This method returns all of the songs in a playlist. Since the user
|
2089
|
-
defines a playlist with a key and the indexes of the songs, this will
|
2090
|
-
map the keys to the songs and return all of the songs in the playlist.
|
2091
|
-
|
2092
|
-
[source, js]
|
2093
|
-
----
|
2094
|
-
Amplitude.getSongsInPlaylist( playlistKey )
|
2095
|
-
----
|
2096
|
-
|
2097
|
-
[role="mt-4"]
|
2098
|
-
==== Get Songs State
|
2099
|
-
|
2100
|
-
This method returns the current order of the songs. It can be used for
|
2101
|
-
determining what song is next. If shuffle is on, it will return the
|
2102
|
-
shuffled list of songs.
|
2103
|
-
|
2104
|
-
[source, js]
|
2105
|
-
----
|
2106
|
-
Amplitude.getSongsState()
|
2107
|
-
----
|
2108
|
-
|
2109
|
-
[role="mt-4"]
|
2110
|
-
==== Get Songs State Playlist
|
2111
|
-
|
2112
|
-
This method returns the current order of the songs in a playlist. If
|
2113
|
-
needed this can be used to determine the next song in a playlist. This
|
2114
|
-
accounts for whether the playlist has been shuffled or not.
|
2115
|
-
|
2116
|
-
[source, js]
|
2117
|
-
----
|
2118
|
-
Amplitude.getSongsStatePlaylist( playlist )
|
2119
|
-
----
|
2120
|
-
|
2121
|
-
[role="mt-4"]
|
2122
|
-
==== Get Song Played Percentage
|
2123
|
-
|
2124
|
-
This method returns the percentage of the song played. When implementing
|
2125
|
-
a 3rd party tracking element, you can set the percentage of the element
|
2126
|
-
to the percentage played of the song.
|
2127
|
-
|
2128
|
-
[source, js]
|
2129
|
-
----
|
2130
|
-
Amplitude.getSongPlayedPercentage()
|
2131
|
-
----
|
2132
|
-
|
2133
|
-
You can combine this method with the time_update callback and whenever
|
2134
|
-
the time updates your method can call
|
2135
|
-
Amplitude.getSongPlayedPercentage() and you can set your tracking
|
2136
|
-
element correctly.
|
2137
|
-
|
2138
|
-
[role="mt-4"]
|
2139
|
-
==== Get Song Played Seconds
|
2140
|
-
|
2141
|
-
This method returns the current seconds the user is into the song.
|
2142
|
-
|
2143
|
-
[source, js]
|
2144
|
-
----
|
2145
|
-
Amplitude.getSongPlayedSeconds()
|
2146
|
-
----
|
2147
|
-
|
2148
|
-
[role="mt-4"]
|
2149
|
-
==== Get Song Duration
|
2150
|
-
|
2151
|
-
Returns the duration of the current song.
|
2152
|
-
|
2153
|
-
[source, js]
|
2154
|
-
----
|
2155
|
-
Amplitude.getSongDuration()Individual Song Slider
|
2156
|
-
----
|
2157
|
-
|
2158
|
-
[role="mt-4"]
|
2159
|
-
==== Get Song At Index
|
2160
|
-
|
2161
|
-
Returns a song's metadata at a specific index.
|
2162
|
-
|
2163
|
-
[source, js]
|
2164
|
-
----
|
2165
|
-
Amplitude.getSongAtIndex( {index} );
|
2166
|
-
----
|
2167
|
-
|
2168
|
-
[role="mt-4"]
|
2169
|
-
==== Get Song At Playlist Index
|
2170
|
-
|
2171
|
-
Returns a song at a playlist's index.
|
2172
|
-
|
2173
|
-
[source, js]
|
2174
|
-
----
|
2175
|
-
Amplitude.getSongAtPlaylistIndex( {playlistIndex}, {index} );
|
2176
|
-
----
|
2177
|
-
|
2178
|
-
[role="mt-4"]
|
2179
|
-
==== Get Version
|
2180
|
-
|
2181
|
-
This method returns the version of AmplitudeJS being used.
|
2182
|
-
|
2183
|
-
[source, js]
|
2184
|
-
----
|
2185
|
-
Amplitude.getVersion()
|
2186
|
-
----
|
2187
|
-
|
2188
|
-
[role="mt-5"]
|
2189
|
-
== Notes on Implementaion
|
2190
|
-
|
2191
|
-
AmplitudeJS 4.0 was one of the biggest releases thus far. We tried to
|
2192
|
-
limit the breaking changes, but in order to scale for the future we had
|
2193
|
-
to make a few.
|
2194
|
-
|
2195
|
-
[role="mt-4"]
|
2196
|
-
=== AmplitudeJS Attributes Have HTML5 Dataset Prefix
|
2197
|
-
In order to make AmplitudeJS validated properly by w3 terms, we prefixed
|
2198
|
-
all of the attributes on AmplitudeJS elements to have the data- prefix.
|
2199
|
-
This makes all of the attributes compatible with the
|
2200
|
-
https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/dataset[HTML5 dataset API, {browser-window--new}].
|
2201
|
-
|
2202
|
-
What this means is any time you are defining a specific element for a
|
2203
|
-
song or playlist, you will have to use data-amplitude-song-index or
|
2204
|
-
data-amplitude-playlist. In 3.x releases, these were just amplitude-song-index
|
2205
|
-
or amplitude-playlist. In order to work with 4.0 and above, you will have to
|
2206
|
-
update these references.
|
2207
|
-
|
2208
|
-
[role="mt-4"]
|
2209
|
-
=== Standard Attributes For Defining Elements
|
2210
|
-
|
2211
|
-
In versions 3.x, we had a variety of different attributes to define an element
|
2212
|
-
based on it's level of use. For example, if we had a global play/pause button
|
2213
|
-
it'd be amplitude-main-play-pause="true" as an attribute.
|
2214
|
-
|
2215
|
-
This got really cumbersome with multiple elements existing on either a
|
2216
|
-
global level (controlling the entire player), a playlist level (controlling
|
2217
|
-
functions within a playlist), a song level (controlling an individual song),
|
2218
|
-
and a song in playlist level (controlling a song within a playlist).
|
2219
|
-
|
2220
|
-
Now everything is based on a combination of attributes. These are as follows:
|
2221
|
-
|
2222
|
-
Global Level: class="amplitude-{specialized-class}"
|
2223
|
-
Playlist Level: class="amplitude-{specialized-class}" data-amplitude-playlist="{playlist}"
|
2224
|
-
Song Level: class="amplitude-{specialized-class}" data-amplitude-song-index="{songIndex}"
|
2225
|
-
Song In Playlist: class="amplitude-{specialized-class}" data-amplitude-song-index="{songIndex}" data-amplitude-playlist="{playlist}"
|
2226
|
-
These combinations work for all elements that are in AmplitudeJS. Now there are some elements that don't span all of the scopes. Let's take an amplitude-volume-up element. This only works on the global level. It wouldn't make sense to have individual playlist volumes.
|
2227
|
-
|
2228
|
-
[role="mt-4"]
|
2229
|
-
=== Playlist Song Indexes Are Scoped To Playlist
|
2230
|
-
|
2231
|
-
In versions 3.x song indexes are now scoped to playlists. What this means
|
2232
|
-
is that when you use data-amplitude-song-index on a song display in a playlist,
|
2233
|
-
it references the index of the song in the playlist instead of the songs array.
|
2234
|
-
|
2235
|
-
For example if song index 1 is used on the 'Hip Hop' playlist, it references
|
2236
|
-
song index 1 within that playlist. Before it was the index in the songs array.
|
2237
|
-
|
2238
|
-
[role="mt-4"]
|
2239
|
-
=== Next And Previous Buttons Only Work In Playlists If Playlist Is Active
|
2240
|
-
|
2241
|
-
So there are two levels of next and previous buttons. The global level which
|
2242
|
-
will react to the state of the player and the playlist level. If a global
|
2243
|
-
level next button or previous button is clicked, it will either go to the
|
2244
|
-
next/previous song in the songs array if no playlist is active, or the
|
2245
|
-
next/previous song in the playlist if a playlist is active.
|
2246
|
-
|
2247
|
-
Now on the playlist level the buttons only go to the next/previous song in
|
2248
|
-
the playlist when clicked and ONLY if the playlist is active. If you click
|
2249
|
-
a next/previous button on a playlist that isn't active, it doesn't do
|
2250
|
-
anything. It will only print a debug message if debug is turned on.
|
2251
|
-
|
2252
|
-
[role="mt-4"]
|
2253
|
-
=== Autoplay Configuration Has Been Removed
|
2254
|
-
|
2255
|
-
Most browsers do not support autoplay features anymore. The functionality
|
2256
|
-
to set up AmplitudeJS for autoplay has been removed. If you initialize
|
2257
|
-
with autoplay, it will just be ignored.
|
2258
|
-
|
2259
|
-
That should be the migrations! If you ran into anything, please reach out
|
2260
|
-
and we can lend a hand!
|