j1-template 2022.5.2 → 2022.6.0
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_news_panel_posts.html +61 -40
- data/_includes/themes/j1/layouts/content_generator_page.html +22 -22
- data/_includes/themes/j1/layouts/content_generator_post.html +1 -1
- data/_includes/themes/j1/layouts/layout_metadata_generator.html +13 -79
- data/_includes/themes/j1/{blocks → procedures/blocks}/footer/boxes/about_box.proc +0 -0
- data/_includes/themes/j1/{blocks → procedures/blocks}/footer/boxes/contacts_box.proc +0 -0
- data/_includes/themes/j1/{blocks → procedures/blocks}/footer/boxes/issue.proc +0 -0
- data/_includes/themes/j1/{blocks → procedures/blocks}/footer/boxes/legal_statements.proc +0 -0
- data/_includes/themes/j1/{blocks → procedures/blocks}/footer/boxes/links_box.proc +0 -0
- data/_includes/themes/j1/{blocks → procedures/blocks}/footer/boxes/news_box.proc +0 -0
- data/_includes/themes/j1/{blocks → procedures/blocks}/footer/boxes/social_media_icons.proc +0 -0
- data/_includes/themes/j1/procedures/blocks/get_wave.proc +211 -0
- data/_includes/themes/j1/procedures/collections/create_collection_article_preview.proc +1 -1
- data/_includes/themes/j1/procedures/global/create_word_cloud.proc +1 -1
- data/_includes/themes/j1/procedures/posts/collate_timeline.proc +2 -2
- data/_includes/themes/j1/procedures/posts/pager.proc +9 -10
- data/_layouts/default.html +5 -1
- data/apps/private/README.txt +1 -0
- data/apps/protected/README.txt +1 -0
- data/apps/public/README.txt +1 -0
- data/assets/data/banner.html +38 -8
- data/assets/data/footer.html +31 -11
- data/assets/data/panel.html +118 -27
- data/assets/themes/j1/adapter/js/attic.js +4 -4
- data/assets/themes/j1/adapter/js/comments.js +18 -7
- data/assets/themes/j1/adapter/js/waves.js +227 -0
- data/assets/themes/j1/core/css/icon-fonts/fontawesome.min.css +1 -1
- data/assets/themes/j1/core/css/icon-fonts/mdi.min.css +1 -1
- data/assets/themes/j1/core/css/icon-fonts/mdil.min.css +1 -1
- data/assets/themes/j1/core/css/themes/bootstrap/bootstrap.css +92 -74
- data/assets/themes/j1/core/css/themes/bootstrap/bootstrap.min.css +5 -3
- data/assets/themes/j1/core/css/themes/theme_vapor/bootstrap.css +92 -74
- data/assets/themes/j1/core/css/themes/theme_vapor/bootstrap.min.css +5 -3
- data/assets/themes/j1/core/css/themes/unodark/bootstrap.css +105 -138
- data/assets/themes/j1/core/css/themes/unodark/bootstrap.min.css +5 -3
- data/assets/themes/j1/core/css/themes/unolight/bootstrap.css +457 -262
- data/assets/themes/j1/core/css/themes/unolight/bootstrap.min.css +26 -15
- data/assets/themes/j1/core/css/vendor.css +11 -8
- data/assets/themes/j1/core/css/vendor.min.css +1 -1
- data/assets/themes/j1/core/fonts/fontawesome_5/LICENSE.txt +34 -0
- data/assets/themes/j1/core/fonts/material_design_icons/LICENSE.txt +97 -0
- data/assets/themes/j1/core/fonts/material_design_icons_light/LICENSE.txt +92 -0
- data/assets/themes/j1/core/fonts/roboto/LICENSE.txt +11 -0
- data/assets/themes/j1/core/js/template.js +419 -746
- data/assets/themes/j1/core/js/template.min.js.map +1 -1
- data/assets/themes/j1/modules/backstretch/js/backstretch.js +1 -1
- data/assets/themes/j1/modules/backstretch/js/backstretch.min.js +1 -1
- data/assets/themes/j1/modules/bokeh/LICENSE.txt +28 -0
- data/assets/themes/j1/modules/jquery/js/extensions/hasClass.js +17 -0
- data/assets/themes/j1/modules/jquery/js/extensions/hasClass.min.js +17 -0
- data/assets/themes/j1/modules/jquery/js/extensions/removeClass.js +18 -0
- data/assets/themes/j1/modules/jquery/js/extensions/removeClass.min.js +17 -0
- data/assets/themes/j1/modules/later/LICENSE.txt +21 -0
- data/assets/themes/j1/modules/log4javascript/license.txt +201 -0
- data/assets/themes/j1/modules/lunr/stopwords/de.txt +229 -0
- data/assets/themes/j1/modules/lunr/stopwords/en.txt +119 -0
- data/assets/themes/j1/modules/masterslider/LICENSE.txt +621 -0
- data/assets/themes/j1/modules/masterslider/README.txt +531 -0
- data/assets/themes/j1/modules/msDropdown/LICENSE.txt +20 -0
- data/assets/themes/j1/modules/nbinteract-core/LICENSE.txt +60 -0
- data/assets/themes/j1/modules/rouge/css/themes.txt +46 -0
- data/assets/themes/j1/modules/vega/LICENSE.txt +27 -0
- data/lib/j1/version.rb +1 -1
- data/lib/starter_web/Gemfile +11 -7
- data/lib/starter_web/README.md +5 -5
- data/lib/starter_web/_config.yml +199 -135
- data/lib/starter_web/_data/blocks/banner.yml +18 -2
- data/lib/starter_web/_data/blocks/defaults/footer.yml +3 -1
- data/lib/starter_web/_data/blocks/defaults/panel.yml +4 -0
- data/lib/starter_web/_data/blocks/footer.yml +12 -1
- data/lib/starter_web/_data/blocks/panel.yml +88 -19
- data/lib/starter_web/_data/j1_config.yml +2 -2
- data/lib/starter_web/_data/layouts/collection.yml +0 -9
- data/lib/starter_web/_data/layouts/home.yml +21 -30
- data/lib/starter_web/_data/layouts/news_panel_posts.yml +0 -9
- data/lib/starter_web/_data/layouts/page.yml +0 -9
- data/lib/starter_web/_data/layouts/post.yml +0 -9
- data/lib/starter_web/_data/modules/blog_navigator.yml +6 -0
- data/lib/starter_web/_data/modules/defaults/blog_navigator.yml +15 -8
- data/lib/starter_web/_data/modules/defaults/cookieconsent.yml +5 -4
- data/lib/starter_web/_data/modules/defaults/navigator.yml +1 -1
- data/lib/starter_web/_data/modules/defaults/waves.yml +32 -0
- data/lib/starter_web/_data/modules/navigator_menu.yml +48 -120
- data/lib/starter_web/_data/modules/waves.yml +32 -0
- data/lib/starter_web/_data/plugins/defaults/feed.yml +82 -0
- data/lib/starter_web/_data/plugins/defaults/seo-tags.yml +65 -0
- data/lib/starter_web/_data/plugins/defaults/sitemap.yml +66 -0
- data/lib/starter_web/_data/plugins/feed.yml +35 -0
- data/lib/starter_web/_data/plugins/seo-tags.yml +30 -0
- data/lib/starter_web/_data/plugins/sitemap.yml +30 -0
- data/lib/starter_web/_data/resources.yml +22 -0
- data/lib/starter_web/_data/templates/feed.xml +191 -0
- data/lib/starter_web/_data/templates/robots.txt +1 -0
- data/lib/starter_web/_data/templates/seo-tags.html +140 -0
- data/lib/starter_web/_data/templates/sitemap.xml +36 -0
- data/lib/starter_web/_includes/attributes.asciidoc +49 -47
- data/lib/starter_web/_includes/custom/static/bs5_accordion.html +84 -0
- data/lib/starter_web/_includes/custom/templates/bs5_accordion.html +103 -0
- data/lib/starter_web/_plugins/{asciidoctor-extensions → asciidoctor}/admonition-block-answer.rb +0 -0
- data/lib/starter_web/_plugins/{asciidoctor-extensions → asciidoctor}/admonition-block-question.rb +0 -0
- data/lib/starter_web/_plugins/{asciidoctor-extensions → asciidoctor}/banner.rb +0 -0
- data/lib/starter_web/_plugins/{asciidoctor-extensions → asciidoctor}/callout.rb +0 -0
- data/lib/starter_web/_plugins/{asciidoctor-extensions → asciidoctor}/carousel-block.rb +0 -0
- data/lib/starter_web/_plugins/{asciidoctor-extensions → asciidoctor}/conum.rb +0 -0
- data/lib/starter_web/_plugins/{asciidoctor-extensions → asciidoctor}/fab-icon-inline.rb +0 -0
- data/lib/starter_web/_plugins/{asciidoctor-extensions → asciidoctor}/fas-icon-inline.rb +0 -0
- data/lib/starter_web/_plugins/{asciidoctor-extensions → asciidoctor}/flag-icon-inline.rb +0 -0
- data/lib/starter_web/_plugins/{asciidoctor-extensions → asciidoctor}/gallery-block.rb +0 -0
- data/lib/starter_web/_plugins/{asciidoctor-extensions → asciidoctor}/gist-block.rb +0 -0
- data/lib/starter_web/_plugins/{asciidoctor-extensions → asciidoctor}/iconify-icon-inline.rb +0 -0
- data/lib/starter_web/_plugins/{asciidoctor-extensions → asciidoctor}/lightbox-block.rb +0 -0
- data/lib/starter_web/_plugins/{asciidoctor-extensions → asciidoctor}/lorem_inline.rb +0 -0
- data/lib/starter_web/_plugins/{asciidoctor-extensions → asciidoctor}/masterslider-block.rb +0 -0
- data/lib/starter_web/_plugins/{asciidoctor-extensions → asciidoctor}/mdi-icon-inline.rb +0 -0
- data/lib/starter_web/_plugins/{asciidoctor-extensions → asciidoctor}/panel.rb +0 -0
- data/lib/starter_web/_plugins/{asciidoctor-extensions → asciidoctor}/range-slider-block.rb +0 -0
- data/lib/starter_web/_plugins/{asciidoctor-extensions → asciidoctor}/shout-block.rb +0 -0
- data/lib/starter_web/_plugins/{asciidoctor-extensions → asciidoctor}/textbook-block.rb +0 -0
- data/lib/starter_web/_plugins/{asciidoctor-extensions → asciidoctor}/twitter-emoji-inline.rb +0 -0
- data/lib/starter_web/_plugins/{debug.rb → filter/debug.rb} +0 -0
- data/lib/starter_web/_plugins/{encodeBase64.rb → filter/encodeBase64.rb} +0 -0
- data/lib/starter_web/_plugins/{encryptAES.rb → filter/encryptAES.rb} +0 -0
- data/lib/starter_web/_plugins/{filters.rb → filter/filters.rb} +11 -0
- data/lib/starter_web/_plugins/{minifyJS.rb → filter/minifyJS.rb} +0 -0
- data/lib/starter_web/_plugins/{minifyJSON.rb → filter/minifyJSON.rb} +0 -0
- data/lib/starter_web/_plugins/{prettify.rb → filter/prettify.rb} +0 -0
- data/lib/starter_web/_plugins/filter/xml_prettify.rb +36 -0
- data/lib/starter_web/_plugins/{symlink_watcher.rb → helper/symlink_watcher.rb} +0 -0
- data/lib/starter_web/_plugins/{date-i18n.rb → i18n/date.rb} +1 -1
- data/lib/starter_web/_plugins/{lunr_index.rb → index/lunr.rb} +38 -35
- data/lib/starter_web/_plugins/seo/j1-feed.rb +268 -0
- data/lib/starter_web/_plugins/seo/j1-seo-tags.rb +717 -0
- data/lib/starter_web/_plugins/seo/j1-sitemap.rb +140 -0
- data/lib/starter_web/assets/images/banner/scalable/wave.svg +13 -0
- data/lib/starter_web/assets/images/blocks/waves/scalable/1280x100/wave-1.svg +63 -0
- data/lib/starter_web/assets/images/blocks/waves/scalable/1280x100/wave-2.svg +60 -0
- data/lib/starter_web/assets/images/blocks/waves/scalable/1280x100/wave-3.svg +64 -0
- data/lib/starter_web/assets/images/blocks/waves/scalable/1280x100/wave-4.svg +62 -0
- data/lib/starter_web/assets/images/blocks/waves/scalable/1920x100/wave-1.svg +64 -0
- data/lib/starter_web/assets/images/blocks/waves/scalable/1920x100/wave-2.svg +60 -0
- data/lib/starter_web/assets/images/blocks/waves/scalable/1920x100/wave-3.svg +65 -0
- data/lib/starter_web/assets/images/blocks/waves/scalable/1920x100/wave-4.svg +62 -0
- data/lib/starter_web/assets/images/collections/blog/featured/dynamic-web-access.png +0 -0
- data/lib/starter_web/assets/images/collections/blog/featured/jamstack-generators.png +0 -0
- data/lib/starter_web/assets/images/collections/blog/featured/static-web-access.png +0 -0
- data/lib/starter_web/assets/images/icons/jekyll/logo-2x.png +0 -0
- data/lib/starter_web/assets/images/icons/jekyll/octojekyll.png +0 -0
- data/lib/starter_web/assets/images/modules/attics/1280x800/j1-template.png +0 -0
- data/lib/starter_web/assets/images/modules/attics/1280x800/jekyll-generator.png +0 -0
- data/lib/starter_web/assets/images/modules/attics/1280x800jekyll-generator.jpg +0 -0
- data/lib/starter_web/assets/images/modules/attics/1920x1280/_ben-kolde.jpg +0 -0
- data/lib/starter_web/assets/images/modules/attics/1920x1280/_moritz-kindler.jpg +0 -0
- data/lib/starter_web/assets/images/modules/attics/1920x1280/alina-grubnyak.jpg +0 -0
- data/lib/starter_web/assets/images/modules/attics/1920x1280/andrea-badino.jpg +0 -0
- data/lib/starter_web/assets/images/modules/attics/1920x1280/brad-neathery.jpg +0 -0
- data/lib/starter_web/assets/images/modules/attics/1920x1280/bruno-figueiredo.jpg +0 -0
- data/lib/starter_web/assets/images/modules/attics/1920x1280/fly-d.jpg +0 -0
- data/lib/starter_web/assets/images/modules/attics/1920x1280/guillaume-bolduc.jpg +0 -0
- data/lib/starter_web/assets/images/modules/attics/1920x1280/melanie-deziel.jpg +0 -0
- data/lib/starter_web/assets/images/modules/attics/1920x1280/milad-fakurian.jpg +0 -0
- data/lib/starter_web/assets/images/modules/attics/1920x1280/quino-al-2.jpg +0 -0
- data/lib/starter_web/assets/images/modules/attics/lunr-1280x800.jpg +0 -0
- data/lib/starter_web/assets/images/modules/attics/no-time-1920x1280.jpg +0 -0
- data/lib/starter_web/assets/images/modules/gallery/mega_cities/author.txt +75 -0
- data/lib/starter_web/assets/images/pages/egrid/bg.png +0 -0
- data/lib/starter_web/assets/images/pages/egrid/black_denim.png +0 -0
- data/lib/starter_web/assets/images/pages/egrid/explanation.png +0 -0
- data/lib/starter_web/assets/images/pages/egrid/html_markup.png +0 -0
- data/lib/starter_web/assets/images/pages/egrid/large/1.jpg +0 -0
- data/lib/starter_web/assets/images/pages/egrid/large/10.jpg +0 -0
- data/lib/starter_web/assets/images/pages/egrid/large/11.jpg +0 -0
- data/lib/starter_web/assets/images/pages/egrid/large/12.jpg +0 -0
- data/lib/starter_web/assets/images/pages/egrid/large/13.jpg +0 -0
- data/lib/starter_web/assets/images/pages/egrid/large/14.jpg +0 -0
- data/lib/starter_web/assets/images/pages/egrid/large/15.jpg +0 -0
- data/lib/starter_web/assets/images/pages/egrid/large/16.jpg +0 -0
- data/lib/starter_web/assets/images/pages/egrid/large/17.jpg +0 -0
- data/lib/starter_web/assets/images/pages/egrid/large/18.jpg +0 -0
- data/lib/starter_web/assets/images/pages/egrid/large/19.jpg +0 -0
- data/lib/starter_web/assets/images/pages/egrid/large/2.jpg +0 -0
- data/lib/starter_web/assets/images/pages/egrid/large/20.jpg +0 -0
- data/lib/starter_web/assets/images/pages/egrid/large/3.jpg +0 -0
- data/lib/starter_web/assets/images/pages/egrid/large/4.jpg +0 -0
- data/lib/starter_web/assets/images/pages/egrid/large/5.jpg +0 -0
- data/lib/starter_web/assets/images/pages/egrid/large/6.jpg +0 -0
- data/lib/starter_web/assets/images/pages/egrid/large/7.jpg +0 -0
- data/lib/starter_web/assets/images/pages/egrid/large/8.jpg +0 -0
- data/lib/starter_web/assets/images/pages/egrid/large/9.jpg +0 -0
- data/lib/starter_web/assets/images/pages/egrid/loading.gif +0 -0
- data/lib/starter_web/assets/images/pages/egrid/loading_dark.gif +0 -0
- data/lib/starter_web/assets/images/pages/egrid/nav-icon.png +0 -0
- data/lib/starter_web/assets/images/pages/egrid/nav.png +0 -0
- data/lib/starter_web/assets/images/pages/egrid/small/1.jpg +0 -0
- data/lib/starter_web/assets/images/pages/egrid/small/10.jpg +0 -0
- data/lib/starter_web/assets/images/pages/egrid/small/11.jpg +0 -0
- data/lib/starter_web/assets/images/pages/egrid/small/12.jpg +0 -0
- data/lib/starter_web/assets/images/pages/egrid/small/13.jpg +0 -0
- data/lib/starter_web/assets/images/pages/egrid/small/14.jpg +0 -0
- data/lib/starter_web/assets/images/pages/egrid/small/15.jpg +0 -0
- data/lib/starter_web/assets/images/pages/egrid/small/16.jpg +0 -0
- data/lib/starter_web/assets/images/pages/egrid/small/17.jpg +0 -0
- data/lib/starter_web/assets/images/pages/egrid/small/18.jpg +0 -0
- data/lib/starter_web/assets/images/pages/egrid/small/19.jpg +0 -0
- data/lib/starter_web/assets/images/pages/egrid/small/1a.jpg +0 -0
- data/lib/starter_web/assets/images/pages/egrid/small/2.jpg +0 -0
- data/lib/starter_web/assets/images/pages/egrid/small/20.jpg +0 -0
- data/lib/starter_web/assets/images/pages/egrid/small/3.jpg +0 -0
- data/lib/starter_web/assets/images/pages/egrid/small/4.jpg +0 -0
- data/lib/starter_web/assets/images/pages/egrid/small/5.jpg +0 -0
- data/lib/starter_web/assets/images/pages/egrid/small/6.jpg +0 -0
- data/lib/starter_web/assets/images/pages/egrid/small/7.jpg +0 -0
- data/lib/starter_web/assets/images/pages/egrid/small/8.jpg +0 -0
- data/lib/starter_web/assets/images/pages/egrid/small/9.jpg +0 -0
- data/lib/starter_web/assets/images/pages/roundtrip/500_themes/themes-menu-1280x800.jpg +0 -0
- data/lib/starter_web/assets/images/promo/home/screenshot.jpg +0 -0
- data/lib/starter_web/assets/images/promo/jekyll/jekyll-generator.png +0 -0
- data/lib/starter_web/assets/images/promo/jekyll/jekyll-og.png +0 -0
- data/lib/starter_web/collections/asciidoc_skeletons/simple-post/_posts/yyyy-mm-dd-your-post-name.asciidoc +13 -10
- data/lib/starter_web/collections/posts/public/featured/_posts/0000-00-00-welcome-to-j1.adoc.erb +8 -3
- data/lib/starter_web/collections/posts/public/featured/_posts/2021-01-01-about-cookies.adoc +11 -6
- data/lib/starter_web/collections/posts/public/featured/_posts/2021-02-01-site-generators.adoc +13 -10
- data/lib/starter_web/collections/posts/public/featured/_posts/2022-02-01-about-j1.adoc +12 -9
- data/lib/starter_web/collections/posts/public/featured/_posts/_includes/attributes.asciidoc +2 -2
- data/lib/starter_web/collections/posts/public/series/_posts/2020-01-01-post-wiki-series.adoc +13 -5
- data/lib/starter_web/collections/posts/public/series/_posts/2020-01-02-post-wiki-series.adoc +13 -6
- data/lib/starter_web/collections/posts/public/series/_posts/2020-01-03-post-wiki-series.adoc +13 -6
- data/lib/starter_web/index.html +85 -60
- data/lib/starter_web/package.json +1 -1
- data/lib/starter_web/pages/public/about/features.adoc +15 -7
- data/lib/starter_web/pages/public/about/reporting_issues.adoc +13 -5
- data/lib/starter_web/pages/public/about/site.adoc +2 -6
- data/lib/starter_web/pages/public/asciidoc_skeletons/documentation/000_intro.adoc +14 -7
- data/lib/starter_web/pages/public/asciidoc_skeletons/documentation/100_converter.adoc +15 -7
- data/lib/starter_web/pages/public/asciidoc_skeletons/documentation/200_themes.adoc +14 -6
- data/lib/starter_web/pages/public/asciidoc_skeletons/documentation/_includes/documents/100_converter/111_about_the_converter.asciidoc +15 -10
- data/lib/starter_web/pages/public/asciidoc_skeletons/documentation/documentation.adoc +9 -8
- data/lib/starter_web/pages/public/asciidoc_skeletons/multi-document/multi.adoc +9 -8
- data/lib/starter_web/pages/public/asciidoc_skeletons/simple-document/simple.adoc +9 -8
- data/lib/starter_web/pages/public/blog/navigator/{archive.html → archive/allview.html} +53 -26
- data/lib/starter_web/pages/public/blog/navigator/archive/categoryview.html +45 -20
- data/lib/starter_web/pages/public/blog/navigator/archive/dateview.html +49 -19
- data/lib/starter_web/pages/public/blog/navigator/archive/tagview.html +57 -53
- data/lib/starter_web/pages/public/blog/navigator/index.html +212 -35
- data/lib/starter_web/pages/public/features/general.adoc +12 -30
- data/lib/starter_web/pages/public/features/template.adoc +9 -33
- data/lib/starter_web/pages/public/learn/quickstart.adoc +10 -8
- data/lib/starter_web/pages/public/learn/roundtrip/_includes/attributes.asciidoc +0 -7
- data/lib/starter_web/pages/public/learn/roundtrip/_includes/documents/410_table_bs_modal_examples.asciidoc +2 -2
- data/lib/starter_web/pages/public/learn/roundtrip/_includes/documents/themes_bootstrap.asciidoc +51 -0
- data/lib/starter_web/pages/public/learn/roundtrip/_includes/documents/themes_rouge.asciidoc +110 -0
- data/lib/starter_web/pages/public/learn/roundtrip/asciidoc_extensions.adoc +11 -9
- data/lib/starter_web/pages/public/learn/roundtrip/bootstrap_themes.adoc +80 -0
- data/lib/starter_web/pages/public/learn/roundtrip/icon_fonts.adoc +9 -7
- data/lib/starter_web/pages/public/learn/roundtrip/{quicksearch.adoc → lunr_search.adoc} +23 -18
- data/lib/starter_web/pages/public/learn/roundtrip/{bs_modals_extentions.adoc → modal_extentions.adoc} +23 -24
- data/lib/starter_web/pages/public/learn/roundtrip/present_images.adoc +12 -11
- data/lib/starter_web/pages/public/learn/roundtrip/present_videos.adoc +14 -10
- data/lib/starter_web/pages/public/learn/roundtrip/{responsive_tables_extensions.adoc → responsive_tables.adoc} +16 -13
- data/lib/starter_web/pages/public/learn/roundtrip/{typography.adoc → template_typography.adoc} +8 -7
- data/lib/starter_web/pages/public/learn/where_to_go.adoc +12 -29
- data/lib/starter_web/pages/public/legal/de/100_copyright.adoc +1 -1
- data/lib/starter_web/pages/public/legal/de/100_impress.adoc +1 -1
- data/lib/starter_web/pages/public/legal/de/300_privacy.adoc +1 -1
- data/lib/starter_web/pages/public/legal/de/400_comment_policy.adoc +3 -1
- data/lib/starter_web/pages/public/legal/en/100_copyright.adoc +7 -5
- data/lib/starter_web/pages/public/legal/en/200_impress.adoc +7 -5
- data/lib/starter_web/pages/public/legal/en/300_privacy.adoc +7 -5
- data/lib/starter_web/pages/public/legal/en/400_comment_policy.adoc +9 -5
- data/lib/starter_web/pages/public/panels/intro_panel/panel.adoc +11 -10
- data/lib/starter_web/pages/public/plans/plans.adoc +8 -5
- data/lib/starter_web/pages/public/previewer/preview_bootstrap_theme.adoc +15 -38
- data/lib/starter_web/utilsrv/_defaults/package.json +1 -1
- data/lib/starter_web/utilsrv/package.json +1 -1
- metadata +170 -128
- data/_includes/themes/j1/blocks/footer/generator.html +0 -151
- data/_includes/themes/j1/layouts/content_generator_app.html +0 -32
- data/_includes/themes/j1/layouts/content_generator_article_navigator.html +0 -176
- data/_includes/themes/j1/layouts/content_generator_blog_archive.html +0 -251
- data/_layouts/app.html +0 -65
- data/_layouts/article_navigator.html +0 -66
- data/_layouts/blog_archive.html +0 -64
- data/assets/data/article_navigator/index.html +0 -51
- data/lib/starter_web/_data/layouts/app.yml +0 -172
- data/lib/starter_web/_data/layouts/article_navigator.yml +0 -173
- data/lib/starter_web/_data/layouts/blog_archive.yml +0 -191
- data/lib/starter_web/_includes/custom/static/custom_teaser.html +0 -64
- data/lib/starter_web/assets/images/banner/scalable/readme +0 -0
- data/lib/starter_web/assets/images/collections/blog/featured/dynamic-web-access.jpg +0 -0
- data/lib/starter_web/assets/images/collections/blog/featured/jamstack-generators-2.jpg +0 -0
- data/lib/starter_web/assets/images/collections/blog/featured/markus-spiske-2.jpg +0 -0
- data/lib/starter_web/assets/images/collections/blog/featured/static-web-access.jpg +0 -0
- data/lib/starter_web/assets/images/collections/blog/featured/welcome-to-j1-template.jpg +0 -0
- data/lib/starter_web/assets/images/collections/blog/featured/what-is-a-baseurl.jpg +0 -0
- data/lib/starter_web/assets/images/collections/blog/series/j1_using_docker/j1_docker_banner.1280x500.png +0 -0
- data/lib/starter_web/assets/images/collections/blog/series/j1_using_docker/kinematic_alpha.1280x600.png +0 -0
- data/lib/starter_web/assets/images/collections/blog/series/j1_using_docker/kinematic_j1.1280x300.png +0 -0
- data/lib/starter_web/assets/images/collections/blog/series/j1_using_docker/windows_docker_banner.1280x500.png +0 -0
- data/lib/starter_web/assets/images/modules/attics/1920x1280/moritz-kindler.jpg +0 -0
- data/lib/starter_web/assets/videos/gallery/dailymotion/meditation.jpg +0 -0
- data/lib/starter_web/assets/videos/gallery/dailymotion/pilates.jpg +0 -0
- data/lib/starter_web/assets/videos/gallery/html5/video1.mp4 +0 -0
- data/lib/starter_web/assets/videos/gallery/html5/video2.mp4 +0 -0
- data/lib/starter_web/assets/videos/gallery/kick-it-old-school-poster.jpg +0 -0
- data/lib/starter_web/assets/videos/gallery/nye-party-shop-poster.jpg +0 -0
- data/lib/starter_web/assets/videos/gallery/stay-colorful-poster.jpg +0 -0
- data/lib/starter_web/assets/videos/gallery/video1-poster.jpg +0 -0
- data/lib/starter_web/assets/videos/gallery/video1-thumb.jpg +0 -0
- data/lib/starter_web/assets/videos/gallery/video2-poster.jpg +0 -0
- data/lib/starter_web/assets/videos/gallery/video2-thumb.jpg +0 -0
- data/lib/starter_web/assets/videos/gallery/video_adele-poster.jpg +0 -0
- data/lib/starter_web/assets/videos/gallery/video_gaga-poster.jpg +0 -0
- data/lib/starter_web/assets/videos/gallery/video_gwen-poster.jpg +0 -0
- data/lib/starter_web/assets/videos/gallery/video_michelle-poster.jpg +0 -0
- data/lib/starter_web/assets/videos/gallery/vk/hai.jpg +0 -0
- data/lib/starter_web/assets/videos/gallery/vk/otter.jpg +0 -0
- data/lib/starter_web/assets/videos/gallery/voice_kids_de_2021/battle.jpg +0 -0
- data/lib/starter_web/assets/videos/gallery/voice_kids_de_2021/ben.jpg +0 -0
- data/lib/starter_web/assets/videos/gallery/voice_kids_de_2021/constance.jpg +0 -0
- data/lib/starter_web/assets/videos/gallery/voice_kids_de_2021/elisa.jpg +0 -0
- data/lib/starter_web/assets/videos/headers/present_videos/still/underground-broadway.jpg +0 -0
- data/lib/starter_web/assets/videos/headers/present_videos/underground-broadway.mp4 +0 -0
- data/lib/starter_web/assets/videos/tiktok/einhorn.jpg +0 -0
- data/lib/starter_web/assets/videos/tiktok/waluschka.jpg +0 -0
- data/lib/starter_web/pages/public/jupyter/examples/distributed/j1-circular-times-table.adoc +0 -142
- data/lib/starter_web/pages/public/jupyter/examples/distributed/j1-common-used-widgets.adoc +0 -232
- data/lib/starter_web/pages/public/jupyter/examples/distributed/j1-odes-in-python.adoc +0 -115
- data/lib/starter_web/pages/public/jupyter/examples/localized/j1_climate-change-forecast.adoc +0 -109
- data/lib/starter_web/pages/public/jupyter/notebooks/j1/j1_circular_times_table.ipynb +0 -12382
- data/lib/starter_web/pages/public/jupyter/notebooks/j1/j1_climate_change_forecast.ipynb +0 -1058
- data/lib/starter_web/pages/public/jupyter/notebooks/j1/j1_docs_example_dynamic.ipynb +0 -14478
- data/lib/starter_web/pages/public/jupyter/notebooks/j1/j1_interactive_widgets.ipynb +0 -442
- data/lib/starter_web/pages/public/jupyter/notebooks/j1/j1_nbi_widgets.ipynb +0 -523
- data/lib/starter_web/pages/public/jupyter/notebooks/j1/j1_nbi_widgets_bar_chart.ipynb +0 -89
- data/lib/starter_web/pages/public/jupyter/notebooks/j1/j1_nbi_widgets_hist_chart.ipynb +0 -87
- data/lib/starter_web/pages/public/jupyter/notebooks/j1/j1_nbi_widgets_line_chart.ipynb +0 -90
- data/lib/starter_web/pages/public/jupyter/notebooks/j1/j1_nbi_widgets_question_multiple_choice.ipynb +0 -64
- data/lib/starter_web/pages/public/jupyter/notebooks/j1/j1_nbi_widgets_question_short_answer.ipynb +0 -122
- data/lib/starter_web/pages/public/jupyter/notebooks/j1/j1_nbi_widgets_scatter_chart.ipynb +0 -89
- data/lib/starter_web/pages/public/jupyter/notebooks/j1/j1_nbi_widgets_scatter_drag_chart.ipynb +0 -87
- data/lib/starter_web/pages/public/jupyter/notebooks/j1/j1_odes_in_python.ipynb +0 -15227
- data/lib/starter_web/pages/public/jupyter/notebooks/textbooks/j1_circular_times_table.html +0 -747
- data/lib/starter_web/pages/public/jupyter/notebooks/textbooks/j1_climate_change_forecast.html +0 -1250
- data/lib/starter_web/pages/public/jupyter/notebooks/textbooks/j1_docs_example_dynamic.html +0 -186
- data/lib/starter_web/pages/public/jupyter/notebooks/textbooks/j1_interactive_widgets.html +0 -512
- data/lib/starter_web/pages/public/jupyter/notebooks/textbooks/j1_nbi_widgets.html +0 -629
- data/lib/starter_web/pages/public/jupyter/notebooks/textbooks/j1_nbi_widgets_bar_chart.html +0 -95
- data/lib/starter_web/pages/public/jupyter/notebooks/textbooks/j1_nbi_widgets_hist_chart.html +0 -93
- data/lib/starter_web/pages/public/jupyter/notebooks/textbooks/j1_nbi_widgets_line_chart.html +0 -96
- data/lib/starter_web/pages/public/jupyter/notebooks/textbooks/j1_nbi_widgets_question_multiple_choice.html +0 -70
- data/lib/starter_web/pages/public/jupyter/notebooks/textbooks/j1_nbi_widgets_question_short_answer.html +0 -156
- data/lib/starter_web/pages/public/jupyter/notebooks/textbooks/j1_nbi_widgets_scatter_chart.html +0 -95
- data/lib/starter_web/pages/public/jupyter/notebooks/textbooks/j1_nbi_widgets_scatter_drag_chart.html +0 -93
- data/lib/starter_web/pages/public/jupyter/notebooks/textbooks/j1_odes_in_python.html +0 -955
- data/lib/starter_web/pages/public/jupyter/where_to_go.adoc +0 -232
- data/lib/starter_web/pages/public/learn/roundtrip/_includes/google-ad.js +0 -130
- data/lib/starter_web/pages/public/learn/roundtrip/themes.adoc +0 -253
- data/lib/starter_web/pages/public/se/se-fake.adoc +0 -48
@@ -19,18 +19,17 @@
|
|
19
19
|
# See: https://github.com/jekyll-one-org/J1 Template/blob/master/LICENSE
|
20
20
|
# -----------------------------------------------------------------------------
|
21
21
|
*/
|
22
|
+
|
22
23
|
// -----------------------------------------------------------------------------
|
23
24
|
// ESLint shimming
|
24
25
|
// -----------------------------------------------------------------------------
|
25
|
-
|
26
26
|
/* eslint indent: "off" */
|
27
|
-
|
28
27
|
/* eslint no-unused-vars: "off" */
|
29
|
-
|
30
28
|
/* eslint no-undef: "off" */
|
31
29
|
// -----------------------------------------------------------------------------
|
32
30
|
|
33
31
|
|
32
|
+
|
34
33
|
module.exports = function (j1, window) {
|
35
34
|
return {
|
36
35
|
// -------------------------------------------------------------------------
|
@@ -40,7 +39,6 @@ module.exports = function (j1, window) {
|
|
40
39
|
_init_: function _init_() {
|
41
40
|
return;
|
42
41
|
} // END _init_
|
43
|
-
|
44
42
|
}; // END return
|
45
43
|
}(j1, window);
|
46
44
|
|
@@ -67,23 +65,23 @@ module.exports = function (j1, window) {
|
|
67
65
|
# TODO: Improve auto-hide functionality for the results block
|
68
66
|
# -----------------------------------------------------------------------------
|
69
67
|
*/
|
68
|
+
|
70
69
|
// -----------------------------------------------------------------------------
|
71
70
|
// ESLint shimming
|
72
71
|
// -----------------------------------------------------------------------------
|
73
|
-
|
74
72
|
/* eslint indent: "off" */
|
75
|
-
|
76
73
|
/* global $ */
|
77
74
|
// -----------------------------------------------------------------------------
|
78
|
-
var timeoutHandle; // var language = 'de';
|
79
75
|
|
76
|
+
var timeoutHandle;
|
77
|
+
// var language = 'de';
|
80
78
|
var language = document.documentElement.lang;
|
81
|
-
|
82
79
|
function toggle_result_block(result_block) {
|
83
80
|
window.clearTimeout(timeoutHandle); // Clear the timeout object
|
84
|
-
|
85
81
|
result_block.prev().toggleClass('stacked');
|
86
|
-
result_block.toggle();
|
82
|
+
result_block.toggle();
|
83
|
+
|
84
|
+
// jadams: Improve auto-hide functionality for the results block
|
87
85
|
//
|
88
86
|
// timeoutHandle = window.setTimeout(function () {
|
89
87
|
// result_block.hide();
|
@@ -95,7 +93,6 @@ function insert_result_links() {
|
|
95
93
|
var view_result_link;
|
96
94
|
var result_block = $(node);
|
97
95
|
var title_div = result_block.prev().find('.title');
|
98
|
-
|
99
96
|
if (language == 'en') {
|
100
97
|
view_result_link = $('<div class="j1-viewer"><span class="btn-viewer" data-bs-toggle="tooltip" data-bs-placement="left" title="toggle results" data-bs-original-title="toggle results">View</span></div>');
|
101
98
|
} else if (language == 'de') {
|
@@ -103,7 +100,6 @@ function insert_result_links() {
|
|
103
100
|
} else {
|
104
101
|
view_result_link = $('<div class="j1-viewer"><span class="btn-viewer" data-bs-toggle="tooltip" data-bs-placement="left" title="toggle results" data-bs-original-title="toggle results">View</span></div>');
|
105
102
|
}
|
106
|
-
|
107
103
|
title_div.append(view_result_link);
|
108
104
|
$('.btn-viewer').tooltip();
|
109
105
|
view_result_link.on('click', function (event) {
|
@@ -112,7 +108,6 @@ function insert_result_links() {
|
|
112
108
|
});
|
113
109
|
});
|
114
110
|
}
|
115
|
-
|
116
111
|
$(insert_result_links);
|
117
112
|
|
118
113
|
/***/ }),
|
@@ -127,8 +122,10 @@ $(insert_result_links);
|
|
127
122
|
* Released under the MIT license
|
128
123
|
* animejs.com
|
129
124
|
*/
|
130
|
-
// Defaults
|
131
125
|
|
126
|
+
|
127
|
+
|
128
|
+
// Defaults
|
132
129
|
var defaultInstanceSettings = {
|
133
130
|
update: null,
|
134
131
|
begin: null,
|
@@ -150,25 +147,26 @@ var defaultTweenSettings = {
|
|
150
147
|
easing: 'easeOutElastic(1, .5)',
|
151
148
|
round: 0
|
152
149
|
};
|
153
|
-
var validTransforms = ['translateX', 'translateY', 'translateZ', 'rotate', 'rotateX', 'rotateY', 'rotateZ', 'scale', 'scaleX', 'scaleY', 'scaleZ', 'skew', 'skewX', 'skewY', 'perspective', 'matrix', 'matrix3d'];
|
150
|
+
var validTransforms = ['translateX', 'translateY', 'translateZ', 'rotate', 'rotateX', 'rotateY', 'rotateZ', 'scale', 'scaleX', 'scaleY', 'scaleZ', 'skew', 'skewX', 'skewY', 'perspective', 'matrix', 'matrix3d'];
|
151
|
+
|
152
|
+
// Caching
|
154
153
|
|
155
154
|
var cache = {
|
156
155
|
CSS: {},
|
157
156
|
springs: {}
|
158
|
-
};
|
157
|
+
};
|
158
|
+
|
159
|
+
// Utils
|
159
160
|
|
160
161
|
function minMax(val, min, max) {
|
161
162
|
return Math.min(Math.max(val, min), max);
|
162
163
|
}
|
163
|
-
|
164
164
|
function stringContains(str, text) {
|
165
165
|
return str.indexOf(text) > -1;
|
166
166
|
}
|
167
|
-
|
168
167
|
function applyArguments(func, args) {
|
169
168
|
return func.apply(null, args);
|
170
169
|
}
|
171
|
-
|
172
170
|
var is = {
|
173
171
|
arr: function arr(a) {
|
174
172
|
return Array.isArray(a);
|
@@ -212,15 +210,18 @@ var is = {
|
|
212
210
|
key: function key(a) {
|
213
211
|
return !defaultInstanceSettings.hasOwnProperty(a) && !defaultTweenSettings.hasOwnProperty(a) && a !== 'targets' && a !== 'keyframes';
|
214
212
|
}
|
215
|
-
};
|
213
|
+
};
|
214
|
+
|
215
|
+
// Easings
|
216
216
|
|
217
217
|
function parseEasingParameters(string) {
|
218
218
|
var match = /\(([^)]+)\)/.exec(string);
|
219
219
|
return match ? match[1].split(',').map(function (p) {
|
220
220
|
return parseFloat(p);
|
221
221
|
}) : [];
|
222
|
-
}
|
222
|
+
}
|
223
223
|
|
224
|
+
// Spring solver inspired by Webkit Copyright © 2016 Apple Inc. All rights reserved. https://webkit.org/demos/spring/spring.js
|
224
225
|
|
225
226
|
function spring(string, duration) {
|
226
227
|
var params = parseEasingParameters(string);
|
@@ -233,40 +234,30 @@ function spring(string, duration) {
|
|
233
234
|
var wd = zeta < 1 ? w0 * Math.sqrt(1 - zeta * zeta) : 0;
|
234
235
|
var a = 1;
|
235
236
|
var b = zeta < 1 ? (zeta * w0 + -velocity) / wd : -velocity + w0;
|
236
|
-
|
237
237
|
function solver(t) {
|
238
238
|
var progress = duration ? duration * t / 1000 : t;
|
239
|
-
|
240
239
|
if (zeta < 1) {
|
241
240
|
progress = Math.exp(-progress * zeta * w0) * (a * Math.cos(wd * progress) + b * Math.sin(wd * progress));
|
242
241
|
} else {
|
243
242
|
progress = (a + b * progress) * Math.exp(-progress * w0);
|
244
243
|
}
|
245
|
-
|
246
244
|
if (t === 0 || t === 1) {
|
247
245
|
return t;
|
248
246
|
}
|
249
|
-
|
250
247
|
return 1 - progress;
|
251
248
|
}
|
252
|
-
|
253
249
|
function getDuration() {
|
254
250
|
var cached = cache.springs[string];
|
255
|
-
|
256
251
|
if (cached) {
|
257
252
|
return cached;
|
258
253
|
}
|
259
|
-
|
260
254
|
var frame = 1 / 6;
|
261
255
|
var elapsed = 0;
|
262
256
|
var rest = 0;
|
263
|
-
|
264
257
|
while (true) {
|
265
258
|
elapsed += frame;
|
266
|
-
|
267
259
|
if (solver(elapsed) === 1) {
|
268
260
|
rest++;
|
269
|
-
|
270
261
|
if (rest >= 16) {
|
271
262
|
break;
|
272
263
|
}
|
@@ -274,109 +265,89 @@ function spring(string, duration) {
|
|
274
265
|
rest = 0;
|
275
266
|
}
|
276
267
|
}
|
277
|
-
|
278
268
|
var duration = elapsed * frame * 1000;
|
279
269
|
cache.springs[string] = duration;
|
280
270
|
return duration;
|
281
271
|
}
|
282
|
-
|
283
272
|
return duration ? solver : getDuration;
|
284
|
-
}
|
273
|
+
}
|
285
274
|
|
275
|
+
// Basic steps easing implementation https://developer.mozilla.org/fr/docs/Web/CSS/transition-timing-function
|
286
276
|
|
287
277
|
function steps(steps) {
|
288
278
|
if (steps === void 0) steps = 10;
|
289
279
|
return function (t) {
|
290
280
|
return Math.ceil(minMax(t, 0.000001, 1) * steps) * (1 / steps);
|
291
281
|
};
|
292
|
-
}
|
282
|
+
}
|
293
283
|
|
284
|
+
// BezierEasing https://github.com/gre/bezier-easing
|
294
285
|
|
295
286
|
var bezier = function () {
|
296
287
|
var kSplineTableSize = 11;
|
297
288
|
var kSampleStepSize = 1.0 / (kSplineTableSize - 1.0);
|
298
|
-
|
299
289
|
function A(aA1, aA2) {
|
300
290
|
return 1.0 - 3.0 * aA2 + 3.0 * aA1;
|
301
291
|
}
|
302
|
-
|
303
292
|
function B(aA1, aA2) {
|
304
293
|
return 3.0 * aA2 - 6.0 * aA1;
|
305
294
|
}
|
306
|
-
|
307
295
|
function C(aA1) {
|
308
296
|
return 3.0 * aA1;
|
309
297
|
}
|
310
|
-
|
311
298
|
function calcBezier(aT, aA1, aA2) {
|
312
299
|
return ((A(aA1, aA2) * aT + B(aA1, aA2)) * aT + C(aA1)) * aT;
|
313
300
|
}
|
314
|
-
|
315
301
|
function getSlope(aT, aA1, aA2) {
|
316
302
|
return 3.0 * A(aA1, aA2) * aT * aT + 2.0 * B(aA1, aA2) * aT + C(aA1);
|
317
303
|
}
|
318
|
-
|
319
304
|
function binarySubdivide(aX, aA, aB, mX1, mX2) {
|
320
305
|
var currentX,
|
321
|
-
|
322
|
-
|
323
|
-
|
306
|
+
currentT,
|
307
|
+
i = 0;
|
324
308
|
do {
|
325
309
|
currentT = aA + (aB - aA) / 2.0;
|
326
310
|
currentX = calcBezier(currentT, mX1, mX2) - aX;
|
327
|
-
|
328
311
|
if (currentX > 0.0) {
|
329
312
|
aB = currentT;
|
330
313
|
} else {
|
331
314
|
aA = currentT;
|
332
315
|
}
|
333
316
|
} while (Math.abs(currentX) > 0.0000001 && ++i < 10);
|
334
|
-
|
335
317
|
return currentT;
|
336
318
|
}
|
337
|
-
|
338
319
|
function newtonRaphsonIterate(aX, aGuessT, mX1, mX2) {
|
339
320
|
for (var i = 0; i < 4; ++i) {
|
340
321
|
var currentSlope = getSlope(aGuessT, mX1, mX2);
|
341
|
-
|
342
322
|
if (currentSlope === 0.0) {
|
343
323
|
return aGuessT;
|
344
324
|
}
|
345
|
-
|
346
325
|
var currentX = calcBezier(aGuessT, mX1, mX2) - aX;
|
347
326
|
aGuessT -= currentX / currentSlope;
|
348
327
|
}
|
349
|
-
|
350
328
|
return aGuessT;
|
351
329
|
}
|
352
|
-
|
353
330
|
function bezier(mX1, mY1, mX2, mY2) {
|
354
331
|
if (!(0 <= mX1 && mX1 <= 1 && 0 <= mX2 && mX2 <= 1)) {
|
355
332
|
return;
|
356
333
|
}
|
357
|
-
|
358
334
|
var sampleValues = new Float32Array(kSplineTableSize);
|
359
|
-
|
360
335
|
if (mX1 !== mY1 || mX2 !== mY2) {
|
361
336
|
for (var i = 0; i < kSplineTableSize; ++i) {
|
362
337
|
sampleValues[i] = calcBezier(i * kSampleStepSize, mX1, mX2);
|
363
338
|
}
|
364
339
|
}
|
365
|
-
|
366
340
|
function getTForX(aX) {
|
367
341
|
var intervalStart = 0;
|
368
342
|
var currentSample = 1;
|
369
343
|
var lastSample = kSplineTableSize - 1;
|
370
|
-
|
371
344
|
for (; currentSample !== lastSample && sampleValues[currentSample] <= aX; ++currentSample) {
|
372
345
|
intervalStart += kSampleStepSize;
|
373
346
|
}
|
374
|
-
|
375
347
|
--currentSample;
|
376
348
|
var dist = (aX - sampleValues[currentSample]) / (sampleValues[currentSample + 1] - sampleValues[currentSample]);
|
377
349
|
var guessForT = intervalStart + dist * kSampleStepSize;
|
378
350
|
var initialSlope = getSlope(guessForT, mX1, mX2);
|
379
|
-
|
380
351
|
if (initialSlope >= 0.001) {
|
381
352
|
return newtonRaphsonIterate(aX, guessForT, mX1, mX2);
|
382
353
|
} else if (initialSlope === 0.0) {
|
@@ -385,25 +356,21 @@ var bezier = function () {
|
|
385
356
|
return binarySubdivide(aX, intervalStart, intervalStart + kSampleStepSize, mX1, mX2);
|
386
357
|
}
|
387
358
|
}
|
388
|
-
|
389
359
|
return function (x) {
|
390
360
|
if (mX1 === mY1 && mX2 === mY2) {
|
391
361
|
return x;
|
392
362
|
}
|
393
|
-
|
394
363
|
if (x === 0 || x === 1) {
|
395
364
|
return x;
|
396
365
|
}
|
397
|
-
|
398
366
|
return calcBezier(getTForX(x), mY1, mY2);
|
399
367
|
};
|
400
368
|
}
|
401
|
-
|
402
369
|
return bezier;
|
403
370
|
}();
|
404
|
-
|
405
371
|
var penner = function () {
|
406
372
|
// Based on jQuery UI's implemenation of easing equations from Robert Penner (http://www.robertpenner.com/easing)
|
373
|
+
|
407
374
|
var eases = {
|
408
375
|
linear: function linear() {
|
409
376
|
return function (t) {
|
@@ -430,10 +397,8 @@ var penner = function () {
|
|
430
397
|
Bounce: function Bounce() {
|
431
398
|
return function (t) {
|
432
399
|
var pow2,
|
433
|
-
|
434
|
-
|
400
|
+
b = 4;
|
435
401
|
while (t < ((pow2 = Math.pow(2, --b)) - 1) / 11) {}
|
436
|
-
|
437
402
|
return 1 / Math.pow(4, 3 - b) - 7.5625 * Math.pow((pow2 * 3 - 2) / 22 - t, 2);
|
438
403
|
};
|
439
404
|
},
|
@@ -458,13 +423,11 @@ var penner = function () {
|
|
458
423
|
Object.keys(functionEasings).forEach(function (name) {
|
459
424
|
var easeIn = functionEasings[name];
|
460
425
|
eases['easeIn' + name] = easeIn;
|
461
|
-
|
462
426
|
eases['easeOut' + name] = function (a, b) {
|
463
427
|
return function (t) {
|
464
428
|
return 1 - easeIn(a, b)(1 - t);
|
465
429
|
};
|
466
430
|
};
|
467
|
-
|
468
431
|
eases['easeInOut' + name] = function (a, b) {
|
469
432
|
return function (t) {
|
470
433
|
return t < 0.5 ? easeIn(a, b)(t * 2) / 2 : 1 - easeIn(a, b)(t * -2 + 2) / 2;
|
@@ -473,31 +436,26 @@ var penner = function () {
|
|
473
436
|
});
|
474
437
|
return eases;
|
475
438
|
}();
|
476
|
-
|
477
439
|
function parseEasings(easing, duration) {
|
478
440
|
if (is.fnc(easing)) {
|
479
441
|
return easing;
|
480
442
|
}
|
481
|
-
|
482
443
|
var name = easing.split('(')[0];
|
483
444
|
var ease = penner[name];
|
484
445
|
var args = parseEasingParameters(easing);
|
485
|
-
|
486
446
|
switch (name) {
|
487
447
|
case 'spring':
|
488
448
|
return spring(easing, duration);
|
489
|
-
|
490
449
|
case 'cubicBezier':
|
491
450
|
return applyArguments(bezier, args);
|
492
|
-
|
493
451
|
case 'steps':
|
494
452
|
return applyArguments(steps, args);
|
495
|
-
|
496
453
|
default:
|
497
454
|
return applyArguments(ease, args);
|
498
455
|
}
|
499
|
-
}
|
456
|
+
}
|
500
457
|
|
458
|
+
// Strings
|
501
459
|
|
502
460
|
function selectString(str) {
|
503
461
|
try {
|
@@ -506,92 +464,77 @@ function selectString(str) {
|
|
506
464
|
} catch (e) {
|
507
465
|
return;
|
508
466
|
}
|
509
|
-
}
|
467
|
+
}
|
510
468
|
|
469
|
+
// Arrays
|
511
470
|
|
512
471
|
function filterArray(arr, callback) {
|
513
472
|
var len = arr.length;
|
514
473
|
var thisArg = arguments.length >= 2 ? arguments[1] : void 0;
|
515
474
|
var result = [];
|
516
|
-
|
517
475
|
for (var i = 0; i < len; i++) {
|
518
476
|
if (i in arr) {
|
519
477
|
var val = arr[i];
|
520
|
-
|
521
478
|
if (callback.call(thisArg, val, i, arr)) {
|
522
479
|
result.push(val);
|
523
480
|
}
|
524
481
|
}
|
525
482
|
}
|
526
|
-
|
527
483
|
return result;
|
528
484
|
}
|
529
|
-
|
530
485
|
function flattenArray(arr) {
|
531
486
|
return arr.reduce(function (a, b) {
|
532
487
|
return a.concat(is.arr(b) ? flattenArray(b) : b);
|
533
488
|
}, []);
|
534
489
|
}
|
535
|
-
|
536
490
|
function toArray(o) {
|
537
491
|
if (is.arr(o)) {
|
538
492
|
return o;
|
539
493
|
}
|
540
|
-
|
541
494
|
if (is.str(o)) {
|
542
495
|
o = selectString(o) || o;
|
543
496
|
}
|
544
|
-
|
545
497
|
if (o instanceof NodeList || o instanceof HTMLCollection) {
|
546
498
|
return [].slice.call(o);
|
547
499
|
}
|
548
|
-
|
549
500
|
return [o];
|
550
501
|
}
|
551
|
-
|
552
502
|
function arrayContains(arr, val) {
|
553
503
|
return arr.some(function (a) {
|
554
504
|
return a === val;
|
555
505
|
});
|
556
|
-
}
|
506
|
+
}
|
557
507
|
|
508
|
+
// Objects
|
558
509
|
|
559
510
|
function cloneObject(o) {
|
560
511
|
var clone = {};
|
561
|
-
|
562
512
|
for (var p in o) {
|
563
513
|
clone[p] = o[p];
|
564
514
|
}
|
565
|
-
|
566
515
|
return clone;
|
567
516
|
}
|
568
|
-
|
569
517
|
function replaceObjectProps(o1, o2) {
|
570
518
|
var o = cloneObject(o1);
|
571
|
-
|
572
519
|
for (var p in o1) {
|
573
520
|
o[p] = o2.hasOwnProperty(p) ? o2[p] : o1[p];
|
574
521
|
}
|
575
|
-
|
576
522
|
return o;
|
577
523
|
}
|
578
|
-
|
579
524
|
function mergeObjects(o1, o2) {
|
580
525
|
var o = cloneObject(o1);
|
581
|
-
|
582
526
|
for (var p in o2) {
|
583
527
|
o[p] = is.und(o1[p]) ? o2[p] : o1[p];
|
584
528
|
}
|
585
|
-
|
586
529
|
return o;
|
587
|
-
}
|
530
|
+
}
|
588
531
|
|
532
|
+
// Colors
|
589
533
|
|
590
534
|
function rgbToRgba(rgbValue) {
|
591
535
|
var rgb = /rgb\((\d+,\s*[\d]+,\s*[\d]+)\)/g.exec(rgbValue);
|
592
536
|
return rgb ? "rgba(" + rgb[1] + ",1)" : rgbValue;
|
593
537
|
}
|
594
|
-
|
595
538
|
function hexToRgba(hexValue) {
|
596
539
|
var rgx = /^#?([a-f\d])([a-f\d])([a-f\d])$/i;
|
597
540
|
var hex = hexValue.replace(rgx, function (m, r, g, b) {
|
@@ -603,40 +546,31 @@ function hexToRgba(hexValue) {
|
|
603
546
|
var b = parseInt(rgb[3], 16);
|
604
547
|
return "rgba(" + r + "," + g + "," + b + ",1)";
|
605
548
|
}
|
606
|
-
|
607
549
|
function hslToRgba(hslValue) {
|
608
550
|
var hsl = /hsl\((\d+),\s*([\d.]+)%,\s*([\d.]+)%\)/g.exec(hslValue) || /hsla\((\d+),\s*([\d.]+)%,\s*([\d.]+)%,\s*([\d.]+)\)/g.exec(hslValue);
|
609
551
|
var h = parseInt(hsl[1], 10) / 360;
|
610
552
|
var s = parseInt(hsl[2], 10) / 100;
|
611
553
|
var l = parseInt(hsl[3], 10) / 100;
|
612
554
|
var a = hsl[4] || 1;
|
613
|
-
|
614
555
|
function hue2rgb(p, q, t) {
|
615
556
|
if (t < 0) {
|
616
557
|
t += 1;
|
617
558
|
}
|
618
|
-
|
619
559
|
if (t > 1) {
|
620
560
|
t -= 1;
|
621
561
|
}
|
622
|
-
|
623
562
|
if (t < 1 / 6) {
|
624
563
|
return p + (q - p) * 6 * t;
|
625
564
|
}
|
626
|
-
|
627
565
|
if (t < 1 / 2) {
|
628
566
|
return q;
|
629
567
|
}
|
630
|
-
|
631
568
|
if (t < 2 / 3) {
|
632
569
|
return p + (q - p) * (2 / 3 - t) * 6;
|
633
570
|
}
|
634
|
-
|
635
571
|
return p;
|
636
572
|
}
|
637
|
-
|
638
573
|
var r, g, b;
|
639
|
-
|
640
574
|
if (s == 0) {
|
641
575
|
r = g = b = l;
|
642
576
|
} else {
|
@@ -646,69 +580,57 @@ function hslToRgba(hslValue) {
|
|
646
580
|
g = hue2rgb(p, q, h);
|
647
581
|
b = hue2rgb(p, q, h - 1 / 3);
|
648
582
|
}
|
649
|
-
|
650
583
|
return "rgba(" + r * 255 + "," + g * 255 + "," + b * 255 + "," + a + ")";
|
651
584
|
}
|
652
|
-
|
653
585
|
function colorToRgb(val) {
|
654
586
|
if (is.rgb(val)) {
|
655
587
|
return rgbToRgba(val);
|
656
588
|
}
|
657
|
-
|
658
589
|
if (is.hex(val)) {
|
659
590
|
return hexToRgba(val);
|
660
591
|
}
|
661
|
-
|
662
592
|
if (is.hsl(val)) {
|
663
593
|
return hslToRgba(val);
|
664
594
|
}
|
665
|
-
}
|
595
|
+
}
|
666
596
|
|
597
|
+
// Units
|
667
598
|
|
668
599
|
function getUnit(val) {
|
669
600
|
var split = /[+-]?\d*\.?\d+(?:\.\d+)?(?:[eE][+-]?\d+)?(%|px|pt|em|rem|in|cm|mm|ex|ch|pc|vw|vh|vmin|vmax|deg|rad|turn)?$/.exec(val);
|
670
|
-
|
671
601
|
if (split) {
|
672
602
|
return split[1];
|
673
603
|
}
|
674
604
|
}
|
675
|
-
|
676
605
|
function getTransformUnit(propName) {
|
677
606
|
if (stringContains(propName, 'translate') || propName === 'perspective') {
|
678
607
|
return 'px';
|
679
608
|
}
|
680
|
-
|
681
609
|
if (stringContains(propName, 'rotate') || stringContains(propName, 'skew')) {
|
682
610
|
return 'deg';
|
683
611
|
}
|
684
|
-
}
|
612
|
+
}
|
685
613
|
|
614
|
+
// Values
|
686
615
|
|
687
616
|
function getFunctionValue(val, animatable) {
|
688
617
|
if (!is.fnc(val)) {
|
689
618
|
return val;
|
690
619
|
}
|
691
|
-
|
692
620
|
return val(animatable.target, animatable.id, animatable.total);
|
693
621
|
}
|
694
|
-
|
695
622
|
function getAttribute(el, prop) {
|
696
623
|
return el.getAttribute(prop);
|
697
624
|
}
|
698
|
-
|
699
625
|
function convertPxToUnit(el, value, unit) {
|
700
626
|
var valueUnit = getUnit(value);
|
701
|
-
|
702
627
|
if (arrayContains([unit, 'deg', 'rad', 'turn'], valueUnit)) {
|
703
628
|
return value;
|
704
629
|
}
|
705
|
-
|
706
630
|
var cached = cache.CSS[value + unit];
|
707
|
-
|
708
631
|
if (!is.und(cached)) {
|
709
632
|
return cached;
|
710
633
|
}
|
711
|
-
|
712
634
|
var baseline = 100;
|
713
635
|
var tempEl = document.createElement(el.tagName);
|
714
636
|
var parentEl = el.parentNode && el.parentNode !== document ? el.parentNode : document.body;
|
@@ -721,7 +643,6 @@ function convertPxToUnit(el, value, unit) {
|
|
721
643
|
cache.CSS[value + unit] = convertedUnit;
|
722
644
|
return convertedUnit;
|
723
645
|
}
|
724
|
-
|
725
646
|
function getCSSValue(el, prop, unit) {
|
726
647
|
if (prop in el.style) {
|
727
648
|
var uppercasePropName = prop.replace(/([a-z])([A-Z])/g, '$1-$2').toLowerCase();
|
@@ -729,126 +650,98 @@ function getCSSValue(el, prop, unit) {
|
|
729
650
|
return unit ? convertPxToUnit(el, value, unit) : value;
|
730
651
|
}
|
731
652
|
}
|
732
|
-
|
733
653
|
function getAnimationType(el, prop) {
|
734
654
|
if (is.dom(el) && !is.inp(el) && (getAttribute(el, prop) || is.svg(el) && el[prop])) {
|
735
655
|
return 'attribute';
|
736
656
|
}
|
737
|
-
|
738
657
|
if (is.dom(el) && arrayContains(validTransforms, prop)) {
|
739
658
|
return 'transform';
|
740
659
|
}
|
741
|
-
|
742
660
|
if (is.dom(el) && prop !== 'transform' && getCSSValue(el, prop)) {
|
743
661
|
return 'css';
|
744
662
|
}
|
745
|
-
|
746
663
|
if (el[prop] != null) {
|
747
664
|
return 'object';
|
748
665
|
}
|
749
666
|
}
|
750
|
-
|
751
667
|
function getElementTransforms(el) {
|
752
668
|
if (!is.dom(el)) {
|
753
669
|
return;
|
754
670
|
}
|
755
|
-
|
756
671
|
var str = el.style.transform || '';
|
757
672
|
var reg = /(\w+)\(([^)]*)\)/g;
|
758
673
|
var transforms = new Map();
|
759
674
|
var m;
|
760
|
-
|
761
675
|
while (m = reg.exec(str)) {
|
762
676
|
transforms.set(m[1], m[2]);
|
763
677
|
}
|
764
|
-
|
765
678
|
return transforms;
|
766
679
|
}
|
767
|
-
|
768
680
|
function getTransformValue(el, propName, animatable, unit) {
|
769
681
|
var defaultVal = stringContains(propName, 'scale') ? 1 : 0 + getTransformUnit(propName);
|
770
682
|
var value = getElementTransforms(el).get(propName) || defaultVal;
|
771
|
-
|
772
683
|
if (animatable) {
|
773
684
|
animatable.transforms.list.set(propName, value);
|
774
685
|
animatable.transforms['last'] = propName;
|
775
686
|
}
|
776
|
-
|
777
687
|
return unit ? convertPxToUnit(el, value, unit) : value;
|
778
688
|
}
|
779
|
-
|
780
689
|
function getOriginalTargetValue(target, propName, unit, animatable) {
|
781
690
|
switch (getAnimationType(target, propName)) {
|
782
691
|
case 'transform':
|
783
692
|
return getTransformValue(target, propName, animatable, unit);
|
784
|
-
|
785
693
|
case 'css':
|
786
694
|
return getCSSValue(target, propName, unit);
|
787
|
-
|
788
695
|
case 'attribute':
|
789
696
|
return getAttribute(target, propName);
|
790
|
-
|
791
697
|
default:
|
792
698
|
return target[propName] || 0;
|
793
699
|
}
|
794
700
|
}
|
795
|
-
|
796
701
|
function getRelativeValue(to, from) {
|
797
702
|
var operator = /^(\*=|\+=|-=)/.exec(to);
|
798
|
-
|
799
703
|
if (!operator) {
|
800
704
|
return to;
|
801
705
|
}
|
802
|
-
|
803
706
|
var u = getUnit(to) || 0;
|
804
707
|
var x = parseFloat(from);
|
805
708
|
var y = parseFloat(to.replace(operator[0], ''));
|
806
|
-
|
807
709
|
switch (operator[0][0]) {
|
808
710
|
case '+':
|
809
711
|
return x + y + u;
|
810
|
-
|
811
712
|
case '-':
|
812
713
|
return x - y + u;
|
813
|
-
|
814
714
|
case '*':
|
815
715
|
return x * y + u;
|
816
716
|
}
|
817
717
|
}
|
818
|
-
|
819
718
|
function validateValue(val, unit) {
|
820
719
|
if (is.col(val)) {
|
821
720
|
return colorToRgb(val);
|
822
721
|
}
|
823
|
-
|
824
722
|
if (/\s/g.test(val)) {
|
825
723
|
return val;
|
826
724
|
}
|
827
|
-
|
828
725
|
var originalUnit = getUnit(val);
|
829
726
|
var unitLess = originalUnit ? val.substr(0, val.length - originalUnit.length) : val;
|
830
|
-
|
831
727
|
if (unit) {
|
832
728
|
return unitLess + unit;
|
833
729
|
}
|
834
|
-
|
835
730
|
return unitLess;
|
836
|
-
}
|
837
|
-
// adapted from https://gist.github.com/SebLambla/3e0550c496c236709744
|
731
|
+
}
|
838
732
|
|
733
|
+
// getTotalLength() equivalent for circle, rect, polyline, polygon and line shapes
|
734
|
+
// adapted from https://gist.github.com/SebLambla/3e0550c496c236709744
|
839
735
|
|
840
736
|
function getDistance(p1, p2) {
|
841
737
|
return Math.sqrt(Math.pow(p2.x - p1.x, 2) + Math.pow(p2.y - p1.y, 2));
|
842
738
|
}
|
843
|
-
|
844
739
|
function getCircleLength(el) {
|
845
740
|
return Math.PI * 2 * getAttribute(el, 'r');
|
846
741
|
}
|
847
|
-
|
848
742
|
function getRectLength(el) {
|
849
743
|
return getAttribute(el, 'width') * 2 + getAttribute(el, 'height') * 2;
|
850
744
|
}
|
851
|
-
|
852
745
|
function getLineLength(el) {
|
853
746
|
return getDistance({
|
854
747
|
x: getAttribute(el, 'x1'),
|
@@ -858,75 +751,61 @@ function getLineLength(el) {
|
|
858
751
|
y: getAttribute(el, 'y2')
|
859
752
|
});
|
860
753
|
}
|
861
|
-
|
862
754
|
function getPolylineLength(el) {
|
863
755
|
var points = el.points;
|
864
756
|
var totalLength = 0;
|
865
757
|
var previousPos;
|
866
|
-
|
867
758
|
for (var i = 0; i < points.numberOfItems; i++) {
|
868
759
|
var currentPos = points.getItem(i);
|
869
|
-
|
870
760
|
if (i > 0) {
|
871
761
|
totalLength += getDistance(previousPos, currentPos);
|
872
762
|
}
|
873
|
-
|
874
763
|
previousPos = currentPos;
|
875
764
|
}
|
876
|
-
|
877
765
|
return totalLength;
|
878
766
|
}
|
879
|
-
|
880
767
|
function getPolygonLength(el) {
|
881
768
|
var points = el.points;
|
882
769
|
return getPolylineLength(el) + getDistance(points.getItem(points.numberOfItems - 1), points.getItem(0));
|
883
|
-
}
|
770
|
+
}
|
884
771
|
|
772
|
+
// Path animation
|
885
773
|
|
886
774
|
function getTotalLength(el) {
|
887
775
|
if (el.getTotalLength) {
|
888
776
|
return el.getTotalLength();
|
889
777
|
}
|
890
|
-
|
891
778
|
switch (el.tagName.toLowerCase()) {
|
892
779
|
case 'circle':
|
893
780
|
return getCircleLength(el);
|
894
|
-
|
895
781
|
case 'rect':
|
896
782
|
return getRectLength(el);
|
897
|
-
|
898
783
|
case 'line':
|
899
784
|
return getLineLength(el);
|
900
|
-
|
901
785
|
case 'polyline':
|
902
786
|
return getPolylineLength(el);
|
903
|
-
|
904
787
|
case 'polygon':
|
905
788
|
return getPolygonLength(el);
|
906
789
|
}
|
907
790
|
}
|
908
|
-
|
909
791
|
function setDashoffset(el) {
|
910
792
|
var pathLength = getTotalLength(el);
|
911
793
|
el.setAttribute('stroke-dasharray', pathLength);
|
912
794
|
return pathLength;
|
913
|
-
}
|
795
|
+
}
|
914
796
|
|
797
|
+
// Motion path
|
915
798
|
|
916
799
|
function getParentSvgEl(el) {
|
917
800
|
var parentEl = el.parentNode;
|
918
|
-
|
919
801
|
while (is.svg(parentEl)) {
|
920
802
|
if (!is.svg(parentEl.parentNode)) {
|
921
803
|
break;
|
922
804
|
}
|
923
|
-
|
924
805
|
parentEl = parentEl.parentNode;
|
925
806
|
}
|
926
|
-
|
927
807
|
return parentEl;
|
928
808
|
}
|
929
|
-
|
930
809
|
function getParentSvg(pathEl, svgData) {
|
931
810
|
var svg = svgData || {};
|
932
811
|
var parentSvgEl = svg.el || getParentSvgEl(pathEl);
|
@@ -944,7 +823,6 @@ function getParentSvg(pathEl, svgData) {
|
|
944
823
|
h: height / viewBox[3]
|
945
824
|
};
|
946
825
|
}
|
947
|
-
|
948
826
|
function getPath(path, percent) {
|
949
827
|
var pathEl = is.str(path) ? selectString(path)[0] : path;
|
950
828
|
var p = percent || 100;
|
@@ -957,45 +835,41 @@ function getPath(path, percent) {
|
|
957
835
|
};
|
958
836
|
};
|
959
837
|
}
|
960
|
-
|
961
838
|
function getPathProgress(path, progress) {
|
962
839
|
function point(offset) {
|
963
840
|
if (offset === void 0) offset = 0;
|
964
841
|
var l = progress + offset >= 1 ? progress + offset : 0;
|
965
842
|
return path.el.getPointAtLength(l);
|
966
843
|
}
|
967
|
-
|
968
844
|
var svg = getParentSvg(path.el, path.svg);
|
969
845
|
var p = point();
|
970
846
|
var p0 = point(-1);
|
971
847
|
var p1 = point(+1);
|
972
|
-
|
973
848
|
switch (path.property) {
|
974
849
|
case 'x':
|
975
850
|
return (p.x - svg.x) * svg.w;
|
976
|
-
|
977
851
|
case 'y':
|
978
852
|
return (p.y - svg.y) * svg.h;
|
979
|
-
|
980
853
|
case 'angle':
|
981
854
|
return Math.atan2(p1.y - p0.y, p1.x - p0.x) * 180 / Math.PI;
|
982
855
|
}
|
983
|
-
}
|
856
|
+
}
|
984
857
|
|
858
|
+
// Decompose value
|
985
859
|
|
986
860
|
function decomposeValue(val, unit) {
|
987
861
|
// const rgx = /-?\d*\.?\d+/g; // handles basic numbers
|
988
862
|
// const rgx = /[+-]?\d+(?:\.\d+)?(?:[eE][+-]?\d+)?/g; // handles exponents notation
|
989
863
|
var rgx = /[+-]?\d*\.?\d+(?:\.\d+)?(?:[eE][+-]?\d+)?/g; // handles exponents notation
|
990
|
-
|
991
864
|
var value = validateValue(is.pth(val) ? val.totalLength : val, unit) + '';
|
992
865
|
return {
|
993
866
|
original: value,
|
994
867
|
numbers: value.match(rgx) ? value.match(rgx).map(Number) : [0],
|
995
868
|
strings: is.str(val) || unit ? value.split(rgx) : []
|
996
869
|
};
|
997
|
-
}
|
870
|
+
}
|
998
871
|
|
872
|
+
// Animatables
|
999
873
|
|
1000
874
|
function parseTargets(targets) {
|
1001
875
|
var targetsArray = targets ? flattenArray(is.arr(targets) ? targets.map(toArray) : toArray(targets)) : [];
|
@@ -1003,7 +877,6 @@ function parseTargets(targets) {
|
|
1003
877
|
return self.indexOf(item) === pos;
|
1004
878
|
});
|
1005
879
|
}
|
1006
|
-
|
1007
880
|
function getAnimatables(targets) {
|
1008
881
|
var parsed = parseTargets(targets);
|
1009
882
|
return parsed.map(function (t, i) {
|
@@ -1016,20 +889,19 @@ function getAnimatables(targets) {
|
|
1016
889
|
}
|
1017
890
|
};
|
1018
891
|
});
|
1019
|
-
}
|
892
|
+
}
|
1020
893
|
|
894
|
+
// Properties
|
1021
895
|
|
1022
896
|
function normalizePropertyTweens(prop, tweenSettings) {
|
1023
|
-
var settings = cloneObject(tweenSettings);
|
1024
|
-
|
897
|
+
var settings = cloneObject(tweenSettings);
|
898
|
+
// Override duration if easing is a spring
|
1025
899
|
if (/^spring/.test(settings.easing)) {
|
1026
900
|
settings.duration = spring(settings.easing);
|
1027
901
|
}
|
1028
|
-
|
1029
902
|
if (is.arr(prop)) {
|
1030
903
|
var l = prop.length;
|
1031
904
|
var isFromTo = l === 2 && !is.obj(prop[0]);
|
1032
|
-
|
1033
905
|
if (!isFromTo) {
|
1034
906
|
// Duration divided by the number of tweens
|
1035
907
|
if (!is.fnc(tweenSettings.duration)) {
|
@@ -1042,28 +914,24 @@ function normalizePropertyTweens(prop, tweenSettings) {
|
|
1042
914
|
};
|
1043
915
|
}
|
1044
916
|
}
|
1045
|
-
|
1046
917
|
var propArray = is.arr(prop) ? prop : [prop];
|
1047
918
|
return propArray.map(function (v, i) {
|
1048
919
|
var obj = is.obj(v) && !is.pth(v) ? v : {
|
1049
920
|
value: v
|
1050
|
-
};
|
1051
|
-
|
921
|
+
};
|
922
|
+
// Default delay value should only be applied to the first tween
|
1052
923
|
if (is.und(obj.delay)) {
|
1053
924
|
obj.delay = !i ? tweenSettings.delay : 0;
|
1054
|
-
}
|
1055
|
-
|
1056
|
-
|
925
|
+
}
|
926
|
+
// Default endDelay value should only be applied to the last tween
|
1057
927
|
if (is.und(obj.endDelay)) {
|
1058
928
|
obj.endDelay = i === propArray.length - 1 ? tweenSettings.endDelay : 0;
|
1059
929
|
}
|
1060
|
-
|
1061
930
|
return obj;
|
1062
931
|
}).map(function (k) {
|
1063
932
|
return mergeObjects(k, settings);
|
1064
933
|
});
|
1065
934
|
}
|
1066
|
-
|
1067
935
|
function flattenKeyframes(keyframes) {
|
1068
936
|
var propertyNames = filterArray(flattenArray(keyframes.map(function (key) {
|
1069
937
|
return Object.keys(key);
|
@@ -1073,16 +941,13 @@ function flattenKeyframes(keyframes) {
|
|
1073
941
|
if (a.indexOf(b) < 0) {
|
1074
942
|
a.push(b);
|
1075
943
|
}
|
1076
|
-
|
1077
944
|
return a;
|
1078
945
|
}, []);
|
1079
946
|
var properties = {};
|
1080
|
-
|
1081
947
|
var loop = function loop(i) {
|
1082
948
|
var propName = propertyNames[i];
|
1083
949
|
properties[propName] = keyframes.map(function (key) {
|
1084
950
|
var newKey = {};
|
1085
|
-
|
1086
951
|
for (var p in key) {
|
1087
952
|
if (is.key(p)) {
|
1088
953
|
if (p == propName) {
|
@@ -1092,26 +957,20 @@ function flattenKeyframes(keyframes) {
|
|
1092
957
|
newKey[p] = key[p];
|
1093
958
|
}
|
1094
959
|
}
|
1095
|
-
|
1096
960
|
return newKey;
|
1097
961
|
});
|
1098
962
|
};
|
1099
|
-
|
1100
963
|
for (var i = 0; i < propertyNames.length; i++) {
|
1101
964
|
loop(i);
|
1102
965
|
}
|
1103
|
-
|
1104
966
|
return properties;
|
1105
967
|
}
|
1106
|
-
|
1107
968
|
function getProperties(tweenSettings, params) {
|
1108
969
|
var properties = [];
|
1109
970
|
var keyframes = params.keyframes;
|
1110
|
-
|
1111
971
|
if (keyframes) {
|
1112
972
|
params = mergeObjects(flattenKeyframes(keyframes), params);
|
1113
973
|
}
|
1114
|
-
|
1115
974
|
for (var p in params) {
|
1116
975
|
if (is.key(p)) {
|
1117
976
|
properties.push({
|
@@ -1120,35 +979,29 @@ function getProperties(tweenSettings, params) {
|
|
1120
979
|
});
|
1121
980
|
}
|
1122
981
|
}
|
1123
|
-
|
1124
982
|
return properties;
|
1125
|
-
}
|
983
|
+
}
|
1126
984
|
|
985
|
+
// Tweens
|
1127
986
|
|
1128
987
|
function normalizeTweenValues(tween, animatable) {
|
1129
988
|
var t = {};
|
1130
|
-
|
1131
989
|
for (var p in tween) {
|
1132
990
|
var value = getFunctionValue(tween[p], animatable);
|
1133
|
-
|
1134
991
|
if (is.arr(value)) {
|
1135
992
|
value = value.map(function (v) {
|
1136
993
|
return getFunctionValue(v, animatable);
|
1137
994
|
});
|
1138
|
-
|
1139
995
|
if (value.length === 1) {
|
1140
996
|
value = value[0];
|
1141
997
|
}
|
1142
998
|
}
|
1143
|
-
|
1144
999
|
t[p] = value;
|
1145
1000
|
}
|
1146
|
-
|
1147
1001
|
t.duration = parseFloat(t.duration);
|
1148
1002
|
t.delay = parseFloat(t.delay);
|
1149
1003
|
return t;
|
1150
1004
|
}
|
1151
|
-
|
1152
1005
|
function normalizeTweens(prop, animatable) {
|
1153
1006
|
var previousTween;
|
1154
1007
|
return prop.tweens.map(function (t) {
|
@@ -1161,11 +1014,9 @@ function normalizeTweens(prop, animatable) {
|
|
1161
1014
|
var from = is.arr(tweenValue) ? tweenValue[0] : previousValue;
|
1162
1015
|
var fromUnit = getUnit(from) || getUnit(originalValue);
|
1163
1016
|
var unit = toUnit || fromUnit;
|
1164
|
-
|
1165
1017
|
if (is.und(to)) {
|
1166
1018
|
to = previousValue;
|
1167
1019
|
}
|
1168
|
-
|
1169
1020
|
tween.from = decomposeValue(from, unit);
|
1170
1021
|
tween.to = decomposeValue(getRelativeValue(to, from), unit);
|
1171
1022
|
tween.start = previousTween ? previousTween.end : 0;
|
@@ -1173,16 +1024,15 @@ function normalizeTweens(prop, animatable) {
|
|
1173
1024
|
tween.easing = parseEasings(tween.easing, tween.duration);
|
1174
1025
|
tween.isPath = is.pth(tweenValue);
|
1175
1026
|
tween.isColor = is.col(tween.from.original);
|
1176
|
-
|
1177
1027
|
if (tween.isColor) {
|
1178
1028
|
tween.round = 1;
|
1179
1029
|
}
|
1180
|
-
|
1181
1030
|
previousTween = tween;
|
1182
1031
|
return tween;
|
1183
1032
|
});
|
1184
|
-
}
|
1033
|
+
}
|
1185
1034
|
|
1035
|
+
// Tween progress
|
1186
1036
|
|
1187
1037
|
var setProgressValue = {
|
1188
1038
|
css: function css(t, p, v) {
|
@@ -1196,7 +1046,6 @@ var setProgressValue = {
|
|
1196
1046
|
},
|
1197
1047
|
transform: function transform(t, p, v, transforms, manual) {
|
1198
1048
|
transforms.list.set(p, v);
|
1199
|
-
|
1200
1049
|
if (p === transforms.last || manual) {
|
1201
1050
|
var str = '';
|
1202
1051
|
transforms.list.forEach(function (value, prop) {
|
@@ -1205,7 +1054,9 @@ var setProgressValue = {
|
|
1205
1054
|
t.style.transform = str;
|
1206
1055
|
}
|
1207
1056
|
}
|
1208
|
-
};
|
1057
|
+
};
|
1058
|
+
|
1059
|
+
// Set Value helper
|
1209
1060
|
|
1210
1061
|
function setTargetsValue(targets, properties) {
|
1211
1062
|
var animatables = getAnimatables(targets);
|
@@ -1221,12 +1072,12 @@ function setTargetsValue(targets, properties) {
|
|
1221
1072
|
setProgressValue[animType](target, property, to, animatable.transforms, true);
|
1222
1073
|
}
|
1223
1074
|
});
|
1224
|
-
}
|
1075
|
+
}
|
1225
1076
|
|
1077
|
+
// Animations
|
1226
1078
|
|
1227
1079
|
function createAnimation(animatable, prop) {
|
1228
1080
|
var animType = getAnimationType(animatable.target, prop.name);
|
1229
|
-
|
1230
1081
|
if (animType) {
|
1231
1082
|
var tweens = normalizeTweens(prop, animatable);
|
1232
1083
|
var lastTween = tweens[tweens.length - 1];
|
@@ -1241,7 +1092,6 @@ function createAnimation(animatable, prop) {
|
|
1241
1092
|
};
|
1242
1093
|
}
|
1243
1094
|
}
|
1244
|
-
|
1245
1095
|
function getAnimations(animatables, properties) {
|
1246
1096
|
return filterArray(flattenArray(animatables.map(function (animatable) {
|
1247
1097
|
return properties.map(function (prop) {
|
@@ -1250,16 +1100,15 @@ function getAnimations(animatables, properties) {
|
|
1250
1100
|
})), function (a) {
|
1251
1101
|
return !is.und(a);
|
1252
1102
|
});
|
1253
|
-
}
|
1103
|
+
}
|
1254
1104
|
|
1105
|
+
// Create Instance
|
1255
1106
|
|
1256
1107
|
function getInstanceTimings(animations, tweenSettings) {
|
1257
1108
|
var animLength = animations.length;
|
1258
|
-
|
1259
1109
|
var getTlOffset = function getTlOffset(anim) {
|
1260
1110
|
return anim.timelineOffset ? anim.timelineOffset : 0;
|
1261
1111
|
};
|
1262
|
-
|
1263
1112
|
var timings = {};
|
1264
1113
|
timings.duration = animLength ? Math.max.apply(Math, animations.map(function (anim) {
|
1265
1114
|
return getTlOffset(anim) + anim.duration;
|
@@ -1272,9 +1121,7 @@ function getInstanceTimings(animations, tweenSettings) {
|
|
1272
1121
|
})) : tweenSettings.endDelay;
|
1273
1122
|
return timings;
|
1274
1123
|
}
|
1275
|
-
|
1276
1124
|
var instanceID = 0;
|
1277
|
-
|
1278
1125
|
function createNewInstance(params) {
|
1279
1126
|
var instanceSettings = replaceObjectProps(defaultInstanceSettings, params);
|
1280
1127
|
var tweenSettings = replaceObjectProps(defaultTweenSettings, params);
|
@@ -1293,50 +1140,41 @@ function createNewInstance(params) {
|
|
1293
1140
|
delay: timings.delay,
|
1294
1141
|
endDelay: timings.endDelay
|
1295
1142
|
});
|
1296
|
-
}
|
1143
|
+
}
|
1297
1144
|
|
1145
|
+
// Core
|
1298
1146
|
|
1299
1147
|
var activeInstances = [];
|
1300
1148
|
var pausedInstances = [];
|
1301
1149
|
var raf;
|
1302
|
-
|
1303
1150
|
var engine = function () {
|
1304
1151
|
function play() {
|
1305
1152
|
raf = requestAnimationFrame(step);
|
1306
1153
|
}
|
1307
|
-
|
1308
1154
|
function step(t) {
|
1309
1155
|
var activeInstancesLength = activeInstances.length;
|
1310
|
-
|
1311
1156
|
if (activeInstancesLength) {
|
1312
1157
|
var i = 0;
|
1313
|
-
|
1314
1158
|
while (i < activeInstancesLength) {
|
1315
1159
|
var activeInstance = activeInstances[i];
|
1316
|
-
|
1317
1160
|
if (!activeInstance.paused) {
|
1318
1161
|
activeInstance.tick(t);
|
1319
1162
|
} else {
|
1320
1163
|
var instanceIndex = activeInstances.indexOf(activeInstance);
|
1321
|
-
|
1322
1164
|
if (instanceIndex > -1) {
|
1323
1165
|
activeInstances.splice(instanceIndex, 1);
|
1324
1166
|
activeInstancesLength = activeInstances.length;
|
1325
1167
|
}
|
1326
1168
|
}
|
1327
|
-
|
1328
1169
|
i++;
|
1329
1170
|
}
|
1330
|
-
|
1331
1171
|
play();
|
1332
1172
|
} else {
|
1333
1173
|
raf = cancelAnimationFrame(raf);
|
1334
1174
|
}
|
1335
1175
|
}
|
1336
|
-
|
1337
1176
|
return play;
|
1338
1177
|
}();
|
1339
|
-
|
1340
1178
|
function handleVisibilityChange() {
|
1341
1179
|
if (document.hidden) {
|
1342
1180
|
activeInstances.forEach(function (ins) {
|
@@ -1350,21 +1188,20 @@ function handleVisibilityChange() {
|
|
1350
1188
|
});
|
1351
1189
|
}
|
1352
1190
|
}
|
1353
|
-
|
1354
1191
|
if (typeof document !== 'undefined') {
|
1355
1192
|
document.addEventListener('visibilitychange', handleVisibilityChange);
|
1356
|
-
}
|
1193
|
+
}
|
1357
1194
|
|
1195
|
+
// Public Instance
|
1358
1196
|
|
1359
1197
|
function anime(params) {
|
1360
1198
|
if (params === void 0) params = {};
|
1361
1199
|
var startTime = 0,
|
1362
|
-
|
1363
|
-
|
1200
|
+
lastTime = 0,
|
1201
|
+
now = 0;
|
1364
1202
|
var children,
|
1365
|
-
|
1203
|
+
childrenLength = 0;
|
1366
1204
|
var resolve = null;
|
1367
|
-
|
1368
1205
|
function makePromise(instance) {
|
1369
1206
|
var promise = window.Promise && new Promise(function (_resolve) {
|
1370
1207
|
return resolve = _resolve;
|
@@ -1372,38 +1209,30 @@ function anime(params) {
|
|
1372
1209
|
instance.finished = promise;
|
1373
1210
|
return promise;
|
1374
1211
|
}
|
1375
|
-
|
1376
1212
|
var instance = createNewInstance(params);
|
1377
1213
|
var promise = makePromise(instance);
|
1378
|
-
|
1379
1214
|
function toggleInstanceDirection() {
|
1380
1215
|
var direction = instance.direction;
|
1381
|
-
|
1382
1216
|
if (direction !== 'alternate') {
|
1383
1217
|
instance.direction = direction !== 'normal' ? 'normal' : 'reverse';
|
1384
1218
|
}
|
1385
|
-
|
1386
1219
|
instance.reversed = !instance.reversed;
|
1387
1220
|
children.forEach(function (child) {
|
1388
1221
|
return child.reversed = instance.reversed;
|
1389
1222
|
});
|
1390
1223
|
}
|
1391
|
-
|
1392
1224
|
function adjustTime(time) {
|
1393
1225
|
return instance.reversed ? instance.duration - time : time;
|
1394
1226
|
}
|
1395
|
-
|
1396
1227
|
function resetTime() {
|
1397
1228
|
startTime = 0;
|
1398
1229
|
lastTime = adjustTime(instance.currentTime) * (1 / anime.speed);
|
1399
1230
|
}
|
1400
|
-
|
1401
1231
|
function seekChild(time, child) {
|
1402
1232
|
if (child) {
|
1403
1233
|
child.seek(time - child.timelineOffset);
|
1404
1234
|
}
|
1405
1235
|
}
|
1406
|
-
|
1407
1236
|
function syncInstanceChildren(time) {
|
1408
1237
|
if (!instance.reversePlayback) {
|
1409
1238
|
for (var i = 0; i < childrenLength; i++) {
|
@@ -1415,25 +1244,22 @@ function anime(params) {
|
|
1415
1244
|
}
|
1416
1245
|
}
|
1417
1246
|
}
|
1418
|
-
|
1419
1247
|
function setAnimationsProgress(insTime) {
|
1420
1248
|
var i = 0;
|
1421
1249
|
var animations = instance.animations;
|
1422
1250
|
var animationsLength = animations.length;
|
1423
|
-
|
1424
1251
|
while (i < animationsLength) {
|
1425
1252
|
var anim = animations[i];
|
1426
1253
|
var animatable = anim.animatable;
|
1427
1254
|
var tweens = anim.tweens;
|
1428
1255
|
var tweenLength = tweens.length - 1;
|
1429
|
-
var tween = tweens[tweenLength];
|
1430
|
-
|
1256
|
+
var tween = tweens[tweenLength];
|
1257
|
+
// Only check for keyframes if there is more than one tween
|
1431
1258
|
if (tweenLength) {
|
1432
1259
|
tween = filterArray(tweens, function (t) {
|
1433
1260
|
return insTime < t.end;
|
1434
1261
|
})[0] || tween;
|
1435
1262
|
}
|
1436
|
-
|
1437
1263
|
var elapsed = minMax(insTime - tween.start - tween.delay, 0, tween.duration) / tween.duration;
|
1438
1264
|
var eased = isNaN(elapsed) ? 1 : tween.easing(elapsed);
|
1439
1265
|
var strings = tween.to.strings;
|
@@ -1441,40 +1267,32 @@ function anime(params) {
|
|
1441
1267
|
var numbers = [];
|
1442
1268
|
var toNumbersLength = tween.to.numbers.length;
|
1443
1269
|
var progress = void 0;
|
1444
|
-
|
1445
1270
|
for (var n = 0; n < toNumbersLength; n++) {
|
1446
1271
|
var value = void 0;
|
1447
1272
|
var toNumber = tween.to.numbers[n];
|
1448
1273
|
var fromNumber = tween.from.numbers[n] || 0;
|
1449
|
-
|
1450
1274
|
if (!tween.isPath) {
|
1451
1275
|
value = fromNumber + eased * (toNumber - fromNumber);
|
1452
1276
|
} else {
|
1453
1277
|
value = getPathProgress(tween.value, eased * toNumber);
|
1454
1278
|
}
|
1455
|
-
|
1456
1279
|
if (round) {
|
1457
1280
|
if (!(tween.isColor && n > 2)) {
|
1458
1281
|
value = Math.round(value * round) / round;
|
1459
1282
|
}
|
1460
1283
|
}
|
1461
|
-
|
1462
1284
|
numbers.push(value);
|
1463
|
-
}
|
1464
|
-
|
1465
|
-
|
1285
|
+
}
|
1286
|
+
// Manual Array.reduce for better performances
|
1466
1287
|
var stringsLength = strings.length;
|
1467
|
-
|
1468
1288
|
if (!stringsLength) {
|
1469
1289
|
progress = numbers[0];
|
1470
1290
|
} else {
|
1471
1291
|
progress = strings[0];
|
1472
|
-
|
1473
1292
|
for (var s = 0; s < stringsLength; s++) {
|
1474
1293
|
var a = strings[s];
|
1475
1294
|
var b = strings[s + 1];
|
1476
1295
|
var n$1 = numbers[s];
|
1477
|
-
|
1478
1296
|
if (!isNaN(n$1)) {
|
1479
1297
|
if (!b) {
|
1480
1298
|
progress += n$1 + ' ';
|
@@ -1484,25 +1302,21 @@ function anime(params) {
|
|
1484
1302
|
}
|
1485
1303
|
}
|
1486
1304
|
}
|
1487
|
-
|
1488
1305
|
setProgressValue[anim.type](animatable.target, anim.property, progress, animatable.transforms);
|
1489
1306
|
anim.currentValue = progress;
|
1490
1307
|
i++;
|
1491
1308
|
}
|
1492
1309
|
}
|
1493
|
-
|
1494
1310
|
function setCallback(cb) {
|
1495
1311
|
if (instance[cb] && !instance.passThrough) {
|
1496
1312
|
instance[cb](instance);
|
1497
1313
|
}
|
1498
1314
|
}
|
1499
|
-
|
1500
1315
|
function countIteration() {
|
1501
1316
|
if (instance.remaining && instance.remaining !== true) {
|
1502
1317
|
instance.remaining--;
|
1503
1318
|
}
|
1504
1319
|
}
|
1505
|
-
|
1506
1320
|
function setInstanceProgress(engineTime) {
|
1507
1321
|
var insDuration = instance.duration;
|
1508
1322
|
var insDelay = instance.delay;
|
@@ -1510,36 +1324,29 @@ function anime(params) {
|
|
1510
1324
|
var insTime = adjustTime(engineTime);
|
1511
1325
|
instance.progress = minMax(insTime / insDuration * 100, 0, 100);
|
1512
1326
|
instance.reversePlayback = insTime < instance.currentTime;
|
1513
|
-
|
1514
1327
|
if (children) {
|
1515
1328
|
syncInstanceChildren(insTime);
|
1516
1329
|
}
|
1517
|
-
|
1518
1330
|
if (!instance.began && instance.currentTime > 0) {
|
1519
1331
|
instance.began = true;
|
1520
1332
|
setCallback('begin');
|
1521
1333
|
}
|
1522
|
-
|
1523
1334
|
if (!instance.loopBegan && instance.currentTime > 0) {
|
1524
1335
|
instance.loopBegan = true;
|
1525
1336
|
setCallback('loopBegin');
|
1526
1337
|
}
|
1527
|
-
|
1528
1338
|
if (insTime <= insDelay && instance.currentTime !== 0) {
|
1529
1339
|
setAnimationsProgress(0);
|
1530
1340
|
}
|
1531
|
-
|
1532
1341
|
if (insTime >= insEndDelay && instance.currentTime !== insDuration || !insDuration) {
|
1533
1342
|
setAnimationsProgress(insDuration);
|
1534
1343
|
}
|
1535
|
-
|
1536
1344
|
if (insTime > insDelay && insTime < insEndDelay) {
|
1537
1345
|
if (!instance.changeBegan) {
|
1538
1346
|
instance.changeBegan = true;
|
1539
1347
|
instance.changeCompleted = false;
|
1540
1348
|
setCallback('changeBegin');
|
1541
1349
|
}
|
1542
|
-
|
1543
1350
|
setCallback('change');
|
1544
1351
|
setAnimationsProgress(insTime);
|
1545
1352
|
} else {
|
@@ -1549,25 +1356,19 @@ function anime(params) {
|
|
1549
1356
|
setCallback('changeComplete');
|
1550
1357
|
}
|
1551
1358
|
}
|
1552
|
-
|
1553
1359
|
instance.currentTime = minMax(insTime, 0, insDuration);
|
1554
|
-
|
1555
1360
|
if (instance.began) {
|
1556
1361
|
setCallback('update');
|
1557
1362
|
}
|
1558
|
-
|
1559
1363
|
if (engineTime >= insDuration) {
|
1560
1364
|
lastTime = 0;
|
1561
1365
|
countIteration();
|
1562
|
-
|
1563
1366
|
if (!instance.remaining) {
|
1564
1367
|
instance.paused = true;
|
1565
|
-
|
1566
1368
|
if (!instance.completed) {
|
1567
1369
|
instance.completed = true;
|
1568
1370
|
setCallback('loopComplete');
|
1569
1371
|
setCallback('complete');
|
1570
|
-
|
1571
1372
|
if (!instance.passThrough && 'Promise' in window) {
|
1572
1373
|
resolve();
|
1573
1374
|
promise = makePromise(instance);
|
@@ -1577,14 +1378,12 @@ function anime(params) {
|
|
1577
1378
|
startTime = now;
|
1578
1379
|
setCallback('loopComplete');
|
1579
1380
|
instance.loopBegan = false;
|
1580
|
-
|
1581
1381
|
if (instance.direction === 'alternate') {
|
1582
1382
|
toggleInstanceDirection();
|
1583
1383
|
}
|
1584
1384
|
}
|
1585
1385
|
}
|
1586
1386
|
}
|
1587
|
-
|
1588
1387
|
instance.reset = function () {
|
1589
1388
|
var direction = instance.direction;
|
1590
1389
|
instance.passThrough = false;
|
@@ -1601,81 +1400,66 @@ function anime(params) {
|
|
1601
1400
|
instance.remaining = instance.loop;
|
1602
1401
|
children = instance.children;
|
1603
1402
|
childrenLength = children.length;
|
1604
|
-
|
1605
1403
|
for (var i = childrenLength; i--;) {
|
1606
1404
|
instance.children[i].reset();
|
1607
1405
|
}
|
1608
|
-
|
1609
1406
|
if (instance.reversed && instance.loop !== true || direction === 'alternate' && instance.loop === 1) {
|
1610
1407
|
instance.remaining++;
|
1611
1408
|
}
|
1612
|
-
|
1613
1409
|
setAnimationsProgress(instance.reversed ? instance.duration : 0);
|
1614
|
-
};
|
1410
|
+
};
|
1615
1411
|
|
1412
|
+
// Set Value helper
|
1616
1413
|
|
1617
1414
|
instance.set = function (targets, properties) {
|
1618
1415
|
setTargetsValue(targets, properties);
|
1619
1416
|
return instance;
|
1620
1417
|
};
|
1621
|
-
|
1622
1418
|
instance.tick = function (t) {
|
1623
1419
|
now = t;
|
1624
|
-
|
1625
1420
|
if (!startTime) {
|
1626
1421
|
startTime = now;
|
1627
1422
|
}
|
1628
|
-
|
1629
1423
|
setInstanceProgress((now + (lastTime - startTime)) * anime.speed);
|
1630
1424
|
};
|
1631
|
-
|
1632
1425
|
instance.seek = function (time) {
|
1633
1426
|
setInstanceProgress(adjustTime(time));
|
1634
1427
|
};
|
1635
|
-
|
1636
1428
|
instance.pause = function () {
|
1637
1429
|
instance.paused = true;
|
1638
1430
|
resetTime();
|
1639
1431
|
};
|
1640
|
-
|
1641
1432
|
instance.play = function () {
|
1642
1433
|
if (!instance.paused) {
|
1643
1434
|
return;
|
1644
1435
|
}
|
1645
|
-
|
1646
1436
|
if (instance.completed) {
|
1647
1437
|
instance.reset();
|
1648
1438
|
}
|
1649
|
-
|
1650
1439
|
instance.paused = false;
|
1651
1440
|
activeInstances.push(instance);
|
1652
1441
|
resetTime();
|
1653
|
-
|
1654
1442
|
if (!raf) {
|
1655
1443
|
engine();
|
1656
1444
|
}
|
1657
1445
|
};
|
1658
|
-
|
1659
1446
|
instance.reverse = function () {
|
1660
1447
|
toggleInstanceDirection();
|
1661
1448
|
instance.completed = instance.reversed ? false : true;
|
1662
1449
|
resetTime();
|
1663
1450
|
};
|
1664
|
-
|
1665
1451
|
instance.restart = function () {
|
1666
1452
|
instance.reset();
|
1667
1453
|
instance.play();
|
1668
1454
|
};
|
1669
|
-
|
1670
1455
|
instance.reset();
|
1671
|
-
|
1672
1456
|
if (instance.autoplay) {
|
1673
1457
|
instance.play();
|
1674
1458
|
}
|
1675
|
-
|
1676
1459
|
return instance;
|
1677
|
-
}
|
1460
|
+
}
|
1678
1461
|
|
1462
|
+
// Remove targets from animation
|
1679
1463
|
|
1680
1464
|
function removeTargetsFromAnimations(targetsArray, animations) {
|
1681
1465
|
for (var a = animations.length; a--;) {
|
@@ -1684,32 +1468,28 @@ function removeTargetsFromAnimations(targetsArray, animations) {
|
|
1684
1468
|
}
|
1685
1469
|
}
|
1686
1470
|
}
|
1687
|
-
|
1688
1471
|
function removeTargets(targets) {
|
1689
1472
|
var targetsArray = parseTargets(targets);
|
1690
|
-
|
1691
1473
|
for (var i = activeInstances.length; i--;) {
|
1692
1474
|
var instance = activeInstances[i];
|
1693
1475
|
var animations = instance.animations;
|
1694
1476
|
var children = instance.children;
|
1695
1477
|
removeTargetsFromAnimations(targetsArray, animations);
|
1696
|
-
|
1697
1478
|
for (var c = children.length; c--;) {
|
1698
1479
|
var child = children[c];
|
1699
1480
|
var childAnimations = child.animations;
|
1700
1481
|
removeTargetsFromAnimations(targetsArray, childAnimations);
|
1701
|
-
|
1702
1482
|
if (!childAnimations.length && !child.children.length) {
|
1703
1483
|
children.splice(c, 1);
|
1704
1484
|
}
|
1705
1485
|
}
|
1706
|
-
|
1707
1486
|
if (!animations.length && !children.length) {
|
1708
1487
|
instance.pause();
|
1709
1488
|
}
|
1710
1489
|
}
|
1711
|
-
}
|
1490
|
+
}
|
1712
1491
|
|
1492
|
+
// Stagger helpers
|
1713
1493
|
|
1714
1494
|
function stagger(val, params) {
|
1715
1495
|
if (params === void 0) params = {};
|
@@ -1732,15 +1512,12 @@ function stagger(val, params) {
|
|
1732
1512
|
if (fromFirst) {
|
1733
1513
|
fromIndex = 0;
|
1734
1514
|
}
|
1735
|
-
|
1736
1515
|
if (fromCenter) {
|
1737
1516
|
fromIndex = (t - 1) / 2;
|
1738
1517
|
}
|
1739
|
-
|
1740
1518
|
if (fromLast) {
|
1741
1519
|
fromIndex = t - 1;
|
1742
1520
|
}
|
1743
|
-
|
1744
1521
|
if (!values.length) {
|
1745
1522
|
for (var index = 0; index < t; index++) {
|
1746
1523
|
if (!grid) {
|
@@ -1753,61 +1530,50 @@ function stagger(val, params) {
|
|
1753
1530
|
var distanceX = fromX - toX;
|
1754
1531
|
var distanceY = fromY - toY;
|
1755
1532
|
var value = Math.sqrt(distanceX * distanceX + distanceY * distanceY);
|
1756
|
-
|
1757
1533
|
if (axis === 'x') {
|
1758
1534
|
value = -distanceX;
|
1759
1535
|
}
|
1760
|
-
|
1761
1536
|
if (axis === 'y') {
|
1762
1537
|
value = -distanceY;
|
1763
1538
|
}
|
1764
|
-
|
1765
1539
|
values.push(value);
|
1766
1540
|
}
|
1767
|
-
|
1768
1541
|
maxValue = Math.max.apply(Math, values);
|
1769
1542
|
}
|
1770
|
-
|
1771
1543
|
if (easing) {
|
1772
1544
|
values = values.map(function (val) {
|
1773
1545
|
return easing(val / maxValue) * maxValue;
|
1774
1546
|
});
|
1775
1547
|
}
|
1776
|
-
|
1777
1548
|
if (direction === 'reverse') {
|
1778
1549
|
values = values.map(function (val) {
|
1779
1550
|
return axis ? val < 0 ? val * -1 : -val : Math.abs(maxValue - val);
|
1780
1551
|
});
|
1781
1552
|
}
|
1782
1553
|
}
|
1783
|
-
|
1784
1554
|
var spacing = isRange ? (val2 - val1) / maxValue : val1;
|
1785
1555
|
return start + spacing * (Math.round(values[i] * 100) / 100) + unit;
|
1786
1556
|
};
|
1787
|
-
}
|
1557
|
+
}
|
1788
1558
|
|
1559
|
+
// Timeline
|
1789
1560
|
|
1790
1561
|
function timeline(params) {
|
1791
1562
|
if (params === void 0) params = {};
|
1792
1563
|
var tl = anime(params);
|
1793
1564
|
tl.duration = 0;
|
1794
|
-
|
1795
1565
|
tl.add = function (instanceParams, timelineOffset) {
|
1796
1566
|
var tlIndex = activeInstances.indexOf(tl);
|
1797
1567
|
var children = tl.children;
|
1798
|
-
|
1799
1568
|
if (tlIndex > -1) {
|
1800
1569
|
activeInstances.splice(tlIndex, 1);
|
1801
1570
|
}
|
1802
|
-
|
1803
1571
|
function passThrough(ins) {
|
1804
1572
|
ins.passThrough = true;
|
1805
1573
|
}
|
1806
|
-
|
1807
1574
|
for (var i = 0; i < children.length; i++) {
|
1808
1575
|
passThrough(children[i]);
|
1809
1576
|
}
|
1810
|
-
|
1811
1577
|
var insParams = mergeObjects(instanceParams, replaceObjectProps(defaultTweenSettings, params));
|
1812
1578
|
insParams.targets = insParams.targets || params.targets;
|
1813
1579
|
var tlDuration = tl.duration;
|
@@ -1825,17 +1591,13 @@ function timeline(params) {
|
|
1825
1591
|
tl.duration = timings.duration;
|
1826
1592
|
tl.seek(0);
|
1827
1593
|
tl.reset();
|
1828
|
-
|
1829
1594
|
if (tl.autoplay) {
|
1830
1595
|
tl.play();
|
1831
1596
|
}
|
1832
|
-
|
1833
1597
|
return tl;
|
1834
1598
|
};
|
1835
|
-
|
1836
1599
|
return tl;
|
1837
1600
|
}
|
1838
|
-
|
1839
1601
|
anime.version = '3.2.0';
|
1840
1602
|
anime.speed = 1;
|
1841
1603
|
anime.running = activeInstances;
|
@@ -1849,11 +1611,9 @@ anime.stagger = stagger;
|
|
1849
1611
|
anime.timeline = timeline;
|
1850
1612
|
anime.easing = parseEasings;
|
1851
1613
|
anime.penner = penner;
|
1852
|
-
|
1853
1614
|
anime.random = function (min, max) {
|
1854
1615
|
return Math.floor(Math.random() * (max - min + 1)) + min;
|
1855
1616
|
};
|
1856
|
-
|
1857
1617
|
module.exports = anime;
|
1858
1618
|
|
1859
1619
|
/***/ }),
|
@@ -1877,22 +1637,20 @@ module.exports = anime;
|
|
1877
1637
|
# NOTE:
|
1878
1638
|
# -----------------------------------------------------------------------------
|
1879
1639
|
*/
|
1640
|
+
|
1880
1641
|
// -----------------------------------------------------------------------------
|
1881
1642
|
// ESLint shimming
|
1882
1643
|
// -----------------------------------------------------------------------------
|
1883
|
-
|
1884
1644
|
/* eslint no-unused-vars: "off" */
|
1885
|
-
|
1886
1645
|
/* eslint no-undef: "off" */
|
1887
|
-
|
1888
1646
|
/* eslint no-redeclare: "off" */
|
1889
|
-
|
1890
1647
|
/* global window */
|
1648
|
+
|
1891
1649
|
// TODO:
|
1650
|
+
|
1892
1651
|
// -----------------------------------------------------------------------------
|
1893
1652
|
// J1 Asciidoctor registered as "asciidoctor"
|
1894
1653
|
// -----------------------------------------------------------------------------
|
1895
|
-
|
1896
1654
|
/*!
|
1897
1655
|
* J1 Asciidoctor
|
1898
1656
|
* Copyright (C) 2022 Juergen Adams
|
@@ -1908,22 +1666,24 @@ module.exports = function asciidoctor(options) {
|
|
1908
1666
|
var logger = log4javascript.getLogger('j1.core.asciidoctor');
|
1909
1667
|
var moduleDefaults = {
|
1910
1668
|
dummyOption: false // placeholder
|
1911
|
-
|
1912
1669
|
};
|
1670
|
+
|
1913
1671
|
var options = $.extend(moduleDefaults, moduleOptions);
|
1914
1672
|
logText = 'J1 Asciidoctor is being initialized';
|
1915
1673
|
logger.info(logText);
|
1916
1674
|
this.callouts();
|
1917
1675
|
},
|
1918
1676
|
// end initializer
|
1677
|
+
|
1919
1678
|
// -------------------------------------------------------------------------
|
1920
1679
|
// manage callouts (HTML)
|
1921
1680
|
// -------------------------------------------------------------------------
|
1922
1681
|
// see: https://stackoverflow.com/questions/19393493/add-colgroup-for-each-table-column
|
1923
1682
|
callouts: function callouts(options) {
|
1924
|
-
var colgroupList = '';
|
1925
|
-
//
|
1683
|
+
var colgroupList = '';
|
1926
1684
|
|
1685
|
+
// If the colist does not have a <colgroup> structure
|
1686
|
+
//
|
1927
1687
|
if ($('.colist > table > colgroup').length == 0) {
|
1928
1688
|
colgroupList += '<!-- [INFO ] [j1.core.asciidoctor ] [ place a colgroup dynamically ] -->' + '\n';
|
1929
1689
|
colgroupList += '<colgroup> <col style="width: 5%;"> <col style="width: 95%;"> </colgroup>';
|
@@ -1931,6 +1691,7 @@ module.exports = function asciidoctor(options) {
|
|
1931
1691
|
}
|
1932
1692
|
},
|
1933
1693
|
// end callouts
|
1694
|
+
|
1934
1695
|
// -------------------------------------------------------------------------
|
1935
1696
|
// manage callouts (HTML)
|
1936
1697
|
// -------------------------------------------------------------------------
|
@@ -1947,7 +1708,6 @@ module.exports = function asciidoctor(options) {
|
|
1947
1708
|
}
|
1948
1709
|
});
|
1949
1710
|
} // end conums
|
1950
|
-
|
1951
1711
|
}; // END return
|
1952
1712
|
}(jQuery);
|
1953
1713
|
|
@@ -1972,24 +1732,22 @@ module.exports = function asciidoctor(options) {
|
|
1972
1732
|
# See: https://github.com/jekyll-one-org/J1 Template/blob/master/LICENSE
|
1973
1733
|
# -----------------------------------------------------------------------------
|
1974
1734
|
*/
|
1975
|
-
|
1735
|
+
|
1736
|
+
|
1737
|
+
// -----------------------------------------------------------------------------
|
1976
1738
|
// ESLint shimming
|
1977
1739
|
// -----------------------------------------------------------------------------
|
1978
|
-
|
1979
1740
|
/* eslint indent: "off" */
|
1980
|
-
|
1981
1741
|
/* eslint no-unused-vars: "off" */
|
1982
|
-
|
1983
1742
|
/* eslint no-undef: "off" */
|
1984
1743
|
// -----------------------------------------------------------------------------
|
1985
|
-
// module.exports = function core ( options ) {
|
1986
1744
|
|
1745
|
+
// module.exports = function core ( options ) {
|
1987
1746
|
/*!
|
1988
1747
|
* J1 Core
|
1989
1748
|
* Copyright (C) 2022 Juergen Adams
|
1990
1749
|
* Licensed under MIT License.
|
1991
1750
|
*/
|
1992
|
-
|
1993
1751
|
module.exports = function (options) {
|
1994
1752
|
// ---------------------------------------------------------------------------
|
1995
1753
|
// Global variables
|
@@ -1998,6 +1756,7 @@ module.exports = function (options) {
|
|
1998
1756
|
// var state;
|
1999
1757
|
// var logger;
|
2000
1758
|
// var logText;
|
1759
|
+
|
2001
1760
|
// ---------------------------------------------------------------------------
|
2002
1761
|
// Default settings
|
2003
1762
|
// ---------------------------------------------------------------------------
|
@@ -2015,9 +1774,11 @@ module.exports = function (options) {
|
|
2015
1774
|
//
|
2016
1775
|
// Place handling of options here
|
2017
1776
|
//
|
1777
|
+
|
2018
1778
|
return;
|
2019
1779
|
},
|
2020
1780
|
// END _init_
|
1781
|
+
|
2021
1782
|
// -------------------------------------------------------------------------
|
2022
1783
|
// Returns the current (processing) state of the module
|
2023
1784
|
// -------------------------------------------------------------------------
|
@@ -2025,20 +1786,20 @@ module.exports = function (options) {
|
|
2025
1786
|
return state;
|
2026
1787
|
},
|
2027
1788
|
// END state
|
1789
|
+
|
2028
1790
|
// -------------------------------------------------------------------------
|
2029
1791
|
// isMobile
|
2030
1792
|
// Return true if the current platform is a mobile device
|
2031
1793
|
// -------------------------------------------------------------------------
|
2032
1794
|
isMobile: function isMobile(ua_name) {
|
2033
1795
|
var mobile = false;
|
2034
|
-
|
2035
1796
|
(function (a) {
|
2036
1797
|
if (/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino/i.test(a) || /1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw-(n|u)|c55\/|capi|ccwa|cdm|cell|chtm|cldc|cmd|co(mp|nd)|craw|da(it|ll|ng)|dbte|dcs|devi|dica|dmob|do(c|p)o|ds(12|d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(|_)|g1 u|g560|gene|gf5|gmo|go(\.w|od)|gr(ad|un)|haie|hcit|hd(m|p|t)|hei|hi(pt|ta)|hp( i|ip)|hsc|ht(c(| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i(20|go|ma)|i230|iac( ||\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|[a-w])|libw|lynx|m1w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|mcr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|([1-8]|c))|phil|pire|pl(ay|uc)|pn2|po(ck|rt|se)|prox|psio|ptg|qaa|qc(07|12|21|32|60|[2-7]|i)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h|oo|p)|sdk\/|se(c(|0|1)|47|mc|nd|ri)|sgh|shar|sie(|m)|sk0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h|v|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl|tdg|tel(i|m)|tim|tmo|to(pl|sh)|ts(70|m|m3|m5)|tx9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas|your|zeto|zte/i.test(a.substr(0, 4))) mobile = true;
|
2037
1798
|
})(navigator.userAgent || navigator.vendor || window.opera);
|
2038
|
-
|
2039
1799
|
return mobile;
|
2040
1800
|
},
|
2041
1801
|
// END isMobile
|
1802
|
+
|
2042
1803
|
// -------------------------------------------------------------------------
|
2043
1804
|
// Clear button for input fields (forms)
|
2044
1805
|
// -------------------------------------------------------------------------
|
@@ -2052,21 +1813,26 @@ module.exports = function (options) {
|
|
2052
1813
|
if ($(this).val().length === 0) {
|
2053
1814
|
$(this).nextAll('.form-clear').addClass('d-none');
|
2054
1815
|
}
|
2055
|
-
});
|
1816
|
+
});
|
1817
|
+
|
1818
|
+
// $('.form-clear').on('click', function() {
|
2056
1819
|
// $(this).addClass('d-none').prevAll(':input').val('');
|
2057
1820
|
// // hide|clear results from top search
|
2058
1821
|
// $('#search-results').hide();
|
2059
1822
|
// $('#search-results').html('');
|
2060
1823
|
// });
|
2061
1824
|
},
|
1825
|
+
|
2062
1826
|
// END bsFormClearButton
|
1827
|
+
|
2063
1828
|
// -------------------------------------------------------------------------
|
2064
1829
|
// Initialize Backdrops on all <p> elements of class "dropcap"
|
2065
1830
|
// -------------------------------------------------------------------------
|
2066
1831
|
createDropCap: function createDropCap() {
|
2067
1832
|
// add class dropcap
|
2068
|
-
$('.paragraph.dropcap').children('p').addClass('dropcap');
|
1833
|
+
$('.paragraph.dropcap').children('p').addClass('dropcap');
|
2069
1834
|
|
1835
|
+
//
|
2070
1836
|
if ($('p.dropcap').length) {
|
2071
1837
|
$('p.dropcap').each(function () {
|
2072
1838
|
var $p = $(this);
|
@@ -2077,8 +1843,8 @@ module.exports = function (options) {
|
|
2077
1843
|
});
|
2078
1844
|
}
|
2079
1845
|
} // END createDropCap
|
2080
|
-
|
2081
1846
|
}; // end return (object)
|
1847
|
+
|
2082
1848
|
//})( jQuery, window );
|
2083
1849
|
}(); // END IFFE
|
2084
1850
|
|
@@ -2088,7 +1854,6 @@ module.exports = function (options) {
|
|
2088
1854
|
/***/ (() => {
|
2089
1855
|
|
2090
1856
|
function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
|
2091
|
-
|
2092
1857
|
/*
|
2093
1858
|
A simple jQuery function that can add listeners on attribute change.
|
2094
1859
|
http://meetselva.github.io/attrchange/
|
@@ -2098,13 +1863,12 @@ function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" =
|
|
2098
1863
|
You may use attrchange plugin under the terms of the MIT Licese.
|
2099
1864
|
https://github.com/meetselva/attrchange/blob/master/MIT-License.txt
|
2100
1865
|
*/
|
2101
|
-
;
|
2102
1866
|
|
1867
|
+
;
|
2103
1868
|
(function ($) {
|
2104
1869
|
function isDOMAttrModifiedSupported() {
|
2105
1870
|
var p = document.createElement('p');
|
2106
1871
|
var flag = false;
|
2107
|
-
|
2108
1872
|
if (p.addEventListener) {
|
2109
1873
|
p.addEventListener('DOMAttrModified', function () {
|
2110
1874
|
flag = true;
|
@@ -2116,66 +1880,54 @@ function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" =
|
|
2116
1880
|
} else {
|
2117
1881
|
return false;
|
2118
1882
|
}
|
2119
|
-
|
2120
1883
|
p.setAttribute('id', 'target');
|
2121
1884
|
return flag;
|
2122
1885
|
}
|
2123
|
-
|
2124
1886
|
function checkAttributes(chkAttr, e) {
|
2125
1887
|
if (chkAttr) {
|
2126
1888
|
var attributes = this.data('attr-old-value');
|
2127
|
-
|
2128
1889
|
if (e.attributeName.indexOf('style') >= 0) {
|
2129
1890
|
if (!attributes['style']) attributes['style'] = {}; //initialize
|
2130
|
-
|
2131
1891
|
var keys = e.attributeName.split('.');
|
2132
1892
|
e.attributeName = keys[0];
|
2133
1893
|
e.oldValue = attributes['style'][keys[1]]; //old value
|
2134
|
-
|
2135
1894
|
e.newValue = keys[1] + ':' + this.prop("style")[$.camelCase(keys[1])]; //new value
|
2136
|
-
|
2137
1895
|
attributes['style'][keys[1]] = e.newValue;
|
2138
1896
|
} else {
|
2139
1897
|
e.oldValue = attributes[e.attributeName];
|
2140
1898
|
e.newValue = this.attr(e.attributeName);
|
2141
1899
|
attributes[e.attributeName] = e.newValue;
|
2142
1900
|
}
|
2143
|
-
|
2144
1901
|
this.data('attr-old-value', attributes); //update the old value object
|
2145
1902
|
}
|
2146
|
-
}
|
2147
|
-
|
1903
|
+
}
|
2148
1904
|
|
1905
|
+
//initialize Mutation Observer
|
2149
1906
|
var MutationObserver = window.MutationObserver || window.WebKitMutationObserver;
|
2150
|
-
|
2151
1907
|
$.fn.attrchange = function (a, b) {
|
2152
1908
|
if (_typeof(a) == 'object') {
|
2153
1909
|
//core
|
2154
1910
|
var cfg = {
|
2155
1911
|
trackValues: false,
|
2156
1912
|
callback: $.noop
|
2157
|
-
};
|
2158
|
-
|
1913
|
+
};
|
1914
|
+
//backward compatibility
|
2159
1915
|
if (typeof a === "function") {
|
2160
1916
|
cfg.callback = a;
|
2161
1917
|
} else {
|
2162
1918
|
$.extend(cfg, a);
|
2163
1919
|
}
|
2164
|
-
|
2165
1920
|
if (cfg.trackValues) {
|
2166
1921
|
//get attributes old value
|
2167
1922
|
this.each(function (i, el) {
|
2168
1923
|
var attributes = {};
|
2169
|
-
|
2170
1924
|
for (var attr, i = 0, attrs = el.attributes, l = attrs.length; i < l; i++) {
|
2171
1925
|
attr = attrs.item(i);
|
2172
1926
|
attributes[attr.nodeName] = attr.value;
|
2173
1927
|
}
|
2174
|
-
|
2175
1928
|
$(this).data('attr-old-value', attributes);
|
2176
1929
|
});
|
2177
1930
|
}
|
2178
|
-
|
2179
1931
|
if (MutationObserver) {
|
2180
1932
|
//Modern Browsers supporting MutationObserver
|
2181
1933
|
var mOptions = {
|
@@ -2185,12 +1937,11 @@ function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" =
|
|
2185
1937
|
};
|
2186
1938
|
var observer = new MutationObserver(function (mutations) {
|
2187
1939
|
mutations.forEach(function (e) {
|
2188
|
-
var _this = e.target;
|
2189
|
-
|
1940
|
+
var _this = e.target;
|
1941
|
+
//get new value if trackValues is true
|
2190
1942
|
if (cfg.trackValues) {
|
2191
1943
|
e.newValue = $(_this).attr(e.attributeName);
|
2192
1944
|
}
|
2193
|
-
|
2194
1945
|
if ($(_this).data('attrchange-status') === 'connected') {
|
2195
1946
|
//execute if connected
|
2196
1947
|
cfg.callback.call(_this, e);
|
@@ -2207,12 +1958,8 @@ function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" =
|
|
2207
1958
|
if (event.originalEvent) {
|
2208
1959
|
event = event.originalEvent;
|
2209
1960
|
} //jQuery normalization is not required
|
2210
|
-
|
2211
|
-
|
2212
1961
|
event.attributeName = event.attrName; //property names to be consistent with MutationObserver
|
2213
|
-
|
2214
1962
|
event.oldValue = event.prevValue; //property names to be consistent with MutationObserver
|
2215
|
-
|
2216
1963
|
if ($(this).data('attrchange-status') === 'connected') {
|
2217
1964
|
//disconnected logically
|
2218
1965
|
cfg.callback.call(this, event);
|
@@ -2221,31 +1968,27 @@ function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" =
|
|
2221
1968
|
} else if ('onpropertychange' in document.body) {
|
2222
1969
|
//works only in IE
|
2223
1970
|
return this.data('attrchange-method', 'propertychange').data('attrchange-status', 'connected').on('propertychange', function (e) {
|
2224
|
-
e.attributeName = window.event.propertyName;
|
2225
|
-
|
1971
|
+
e.attributeName = window.event.propertyName;
|
1972
|
+
//to set the attr old value
|
2226
1973
|
checkAttributes.call($(this), cfg.trackValues, e);
|
2227
|
-
|
2228
1974
|
if ($(this).data('attrchange-status') === 'connected') {
|
2229
1975
|
//disconnected logically
|
2230
1976
|
cfg.callback.call(this, e);
|
2231
1977
|
}
|
2232
1978
|
});
|
2233
1979
|
}
|
2234
|
-
|
2235
1980
|
return this;
|
2236
1981
|
} else if (typeof a == 'string' && $.fn.attrchange.hasOwnProperty('extensions') && $.fn.attrchange['extensions'].hasOwnProperty(a)) {
|
2237
1982
|
//extensions/options
|
2238
1983
|
return $.fn.attrchange['extensions'][a].call(this, b);
|
2239
1984
|
}
|
2240
1985
|
};
|
2241
|
-
|
2242
1986
|
$.fn.attrchange.extensions = {
|
2243
1987
|
/*attrchange option/extension*/
|
2244
1988
|
disconnect: function disconnect(o) {
|
2245
1989
|
if (typeof o !== 'undefined' && o.isPhysicalDisconnect) {
|
2246
1990
|
return this.each(function () {
|
2247
1991
|
var attrchangeMethod = $(this).data('attrchange-method');
|
2248
|
-
|
2249
1992
|
if (attrchangeMethod == 'propertychange' || attrchangeMethod == 'DOMAttrModified') {
|
2250
1993
|
$(this).off(attrchangeMethod);
|
2251
1994
|
} else if (attrchangeMethod == 'Mutation Observer') {
|
@@ -2259,6 +2002,7 @@ function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" =
|
|
2259
2002
|
return this.data('attrchange-status', 'disconnected'); //set a flag that prevents triggering callback onattrchange
|
2260
2003
|
}
|
2261
2004
|
},
|
2005
|
+
|
2262
2006
|
remove: function remove(o) {
|
2263
2007
|
return $.fn.attrchange.extensions['disconnect'].call(this, {
|
2264
2008
|
isPhysicalDisconnect: true
|
@@ -2285,23 +2029,16 @@ function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" =
|
|
2285
2029
|
if (!o.hasOwnProperty('properties') || Object.prototype.toString.call(o.properties) !== '[object Array]' || o.properties.length == 0) {
|
2286
2030
|
return false;
|
2287
2031
|
} //return if no properties found
|
2288
|
-
|
2289
|
-
|
2290
2032
|
var attributes = {}; //store computed properties
|
2291
|
-
|
2292
2033
|
for (var i = 0; i < o.properties.length; i++) {
|
2293
2034
|
attributes[o.properties[i]] = $(this).css(o.properties[i]);
|
2294
2035
|
}
|
2295
|
-
|
2296
2036
|
var _this = this;
|
2297
|
-
|
2298
2037
|
$(this).data('attrchange-polling-timer', setInterval(function () {
|
2299
2038
|
var changes = {},
|
2300
|
-
|
2301
|
-
|
2039
|
+
hasChanges = false; // attrName: { oldValue: xxx, newValue: yyy}
|
2302
2040
|
for (var comuptedVal, i = 0; i < o.properties.length; i++) {
|
2303
2041
|
comuptedVal = $(_this).css(o.properties[i]);
|
2304
|
-
|
2305
2042
|
if (attributes[o.properties[i]] !== comuptedVal) {
|
2306
2043
|
hasChanges = true;
|
2307
2044
|
changes[o.properties[i]] = {
|
@@ -2322,19 +2059,15 @@ function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" =
|
|
2322
2059
|
return this.each(function (i, _this) {
|
2323
2060
|
/* this one is programmatic polling */
|
2324
2061
|
var attributes = {};
|
2325
|
-
|
2326
2062
|
for (var attr, i = 0, attrs = _this.attributes, l = attrs.length; i < l; i++) {
|
2327
2063
|
attr = attrs.item(i);
|
2328
2064
|
attributes[attr.nodeName] = attr.nodeValue;
|
2329
2065
|
}
|
2330
|
-
|
2331
2066
|
$(_this).data('attrchange-polling-timer', setInterval(function () {
|
2332
2067
|
var changes = {},
|
2333
|
-
|
2334
|
-
|
2068
|
+
hasChanges = false; // attrName: { oldValue: xxx, newValue: yyy}
|
2335
2069
|
for (var attr, i = 0, attrs = _this.attributes, l = attrs.length; i < l; i++) {
|
2336
2070
|
attr = attrs.item(i);
|
2337
|
-
|
2338
2071
|
if (attributes.hasOwnProperty(attr.nodeName) && attributes[attr.nodeName] != attr.nodeValue) {
|
2339
2072
|
//check the values
|
2340
2073
|
changes[attr.nodeName] = {
|
@@ -2350,7 +2083,6 @@ function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" =
|
|
2350
2083
|
};
|
2351
2084
|
hasChanges = true;
|
2352
2085
|
}
|
2353
|
-
|
2354
2086
|
attributes[attr.nodeName] = attr.nodeValue; //add the attribute to the orig
|
2355
2087
|
}
|
2356
2088
|
|
@@ -2395,21 +2127,22 @@ function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" =
|
|
2395
2127
|
# Current, only base function are tested with BS4 (was coded for BS3)
|
2396
2128
|
# -----------------------------------------------------------------------------
|
2397
2129
|
*/
|
2130
|
+
|
2398
2131
|
// -----------------------------------------------------------------------------
|
2399
2132
|
// ESLint shimming
|
2400
2133
|
// -----------------------------------------------------------------------------
|
2401
|
-
|
2402
2134
|
/* eslint indent: "off" */
|
2403
|
-
|
2404
2135
|
/* eslint no-unused-vars: "off" */
|
2405
|
-
|
2406
2136
|
/* eslint no-undef: "off" */
|
2407
2137
|
// -----------------------------------------------------------------------------
|
2138
|
+
|
2408
2139
|
// -----------------------------------------------------------------------------
|
2409
2140
|
// TODO: Height of dropdowns are to be limited in general
|
2141
|
+
|
2410
2142
|
// -----------------------------------------------------------------------------
|
2411
2143
|
// Navigator core registered as 'j1.core.navigator'
|
2412
2144
|
// -----------------------------------------------------------------------------
|
2145
|
+
|
2413
2146
|
module.exports = function navigator(options) {
|
2414
2147
|
// ---------------------------------------------------------------------------
|
2415
2148
|
// global vars
|
@@ -2417,17 +2150,19 @@ module.exports = function navigator(options) {
|
|
2417
2150
|
var message = {};
|
2418
2151
|
var state;
|
2419
2152
|
var logger;
|
2420
|
-
var logText;
|
2153
|
+
var logText;
|
2154
|
+
|
2155
|
+
// -----------------------------------------------------------------------
|
2421
2156
|
// default settings
|
2422
2157
|
// -----------------------------------------------------------------------
|
2423
|
-
|
2424
2158
|
var settings = $.extend({
|
2425
2159
|
foo: 'bar',
|
2426
2160
|
bar: 'foo'
|
2427
|
-
}, options);
|
2161
|
+
}, options);
|
2162
|
+
|
2163
|
+
// ---------------------------------------------------------------------------
|
2428
2164
|
// main object
|
2429
2165
|
// ---------------------------------------------------------------------------
|
2430
|
-
|
2431
2166
|
return {
|
2432
2167
|
// -------------------------------------------------------------------------
|
2433
2168
|
// module initializer
|
@@ -2435,10 +2170,11 @@ module.exports = function navigator(options) {
|
|
2435
2170
|
init: function init(defaultOptions, menuOptions) {
|
2436
2171
|
logger = log4javascript.getLogger('j1.core.navigator');
|
2437
2172
|
logText = 'core is being initialized';
|
2438
|
-
logger.info(logText);
|
2173
|
+
logger.info(logText);
|
2174
|
+
|
2175
|
+
// -----------------------------------------------------------------------
|
2439
2176
|
// Create a Wrapper for the nav system
|
2440
2177
|
// -----------------------------------------------------------------------
|
2441
|
-
|
2442
2178
|
$('body').wrapInner('<div id="wrapper-inner" class="wrapper"></div>');
|
2443
2179
|
this.manageDropdownMenu(defaultOptions, menuOptions);
|
2444
2180
|
this.navbarSticky();
|
@@ -2464,7 +2200,9 @@ module.exports = function navigator(options) {
|
|
2464
2200
|
var nav_link;
|
2465
2201
|
var anchor_id;
|
2466
2202
|
var scrollOffset;
|
2467
|
-
var json_data;
|
2203
|
+
var json_data;
|
2204
|
+
|
2205
|
+
// jadams: unused code (for now).: manages HTML5 server side events
|
2468
2206
|
// for incoming messages from Git Server send e.g. on a 'pull request'
|
2469
2207
|
// NOTE: used for ControlCenter (cc) functionality only !!!
|
2470
2208
|
// -----------------------------------------------------------------------
|
@@ -2474,6 +2212,7 @@ module.exports = function navigator(options) {
|
|
2474
2212
|
// const utility_server = 'http://localhost:41001/git?request=pull';
|
2475
2213
|
// var sender = seeMe;
|
2476
2214
|
// var payload;
|
2215
|
+
|
2477
2216
|
// if (j1.checkUserAgent('IE') || j1.checkUserAgent('Edge')) {
|
2478
2217
|
// logger.warn('HTML5 server side events (SSE) not supported for: ' + userAgent);
|
2479
2218
|
// logger.warn('Middleware messages disabled');
|
@@ -2500,6 +2239,7 @@ module.exports = function navigator(options) {
|
|
2500
2239
|
// return true;
|
2501
2240
|
// }; // END event onMessage
|
2502
2241
|
// }
|
2242
|
+
|
2503
2243
|
// bind click event to all plain '#' links to prevent default action
|
2504
2244
|
// 'scroll-to-top'
|
2505
2245
|
// See:
|
@@ -2507,20 +2247,21 @@ module.exports = function navigator(options) {
|
|
2507
2247
|
// https://developer.mozilla.org/en-US/docs/Web/API/Event/stopPropagation
|
2508
2248
|
// https://stackoverflow.com/questions/134845/which-href-value-should-i-use-for-javascript-links-or-javascriptvoid0
|
2509
2249
|
//
|
2510
|
-
|
2511
2250
|
$('a[href="#"]').click(function (e) {
|
2512
2251
|
page_link = document.querySelector('[id="' + decodeURI(anchor_id).split('#').join('') + '"]') ? true : false;
|
2513
2252
|
anchor_id = e.target.hash ? e.target.hash : false;
|
2514
2253
|
classname = e.target.className ? e.target.className : '';
|
2515
2254
|
nav_link = classname.includes('nav-');
|
2516
|
-
|
2517
2255
|
if (nav_link || !page_link) {
|
2518
2256
|
logger.debug('\n' + 'click event on href "#" detected: prevent default action');
|
2519
2257
|
e.preventDefault ? e.preventDefault() : e.returnValue = false;
|
2520
2258
|
}
|
2521
|
-
});
|
2259
|
+
});
|
2260
|
+
|
2261
|
+
// -----------------------------------------------------------------------
|
2522
2262
|
// In-page smooth scroll
|
2523
2263
|
// -----------------------------------------------------------------------
|
2264
|
+
|
2524
2265
|
// bind click event to all headlines generated by AsciiDoctor
|
2525
2266
|
// for smooth-scroll (in-page)
|
2526
2267
|
// jadams,2022-06-10: unused code - smooth scrolling managed by
|
@@ -2551,29 +2292,27 @@ module.exports = function navigator(options) {
|
|
2551
2292
|
// e.preventDefault ? e.preventDefault() : e.returnValue = false;
|
2552
2293
|
// }
|
2553
2294
|
// });
|
2295
|
+
|
2554
2296
|
// bind click event to all HTML elements of class '.badge' (Bootstrap)
|
2555
2297
|
// for smooth-scroll (in-page) to a '<div>' element
|
2556
2298
|
// -----------------------------------------------------------------------
|
2557
|
-
|
2558
2299
|
$('.badge').on('click', function (e) {
|
2559
2300
|
anchor_id = e.target.hash ? e.target.hash : false;
|
2560
2301
|
scrollOffset = 100;
|
2561
|
-
|
2562
2302
|
if (anchor_id) {
|
2563
2303
|
logger.debug('\n' + 'click event on badge detected: ' + anchor_id);
|
2564
2304
|
$('html, body').animate({
|
2565
2305
|
scrollTop: $(anchor_id).offset().top - scrollOffset // NOTE: diffeent scrollOffset
|
2566
|
-
|
2567
2306
|
}, scrollDuration);
|
2568
2307
|
event.stopPropagation();
|
2569
2308
|
}
|
2570
|
-
});
|
2571
|
-
// for smooth-scroll (in-page)
|
2309
|
+
});
|
2572
2310
|
|
2311
|
+
// bind click event to all HTML elements of class '.badge-tag' (j1)
|
2312
|
+
// for smooth-scroll (in-page)
|
2573
2313
|
$('.badge-tag').on('click', function (e) {
|
2574
2314
|
anchor_id = e.target.hash ? e.target.hash : false;
|
2575
2315
|
scrollOffset = j1.getScrollOffset();
|
2576
|
-
|
2577
2316
|
if (anchor_id) {
|
2578
2317
|
logger.debug('\n' + 'click event on badge-tag detected: ' + anchor_id);
|
2579
2318
|
$('html, body').animate({
|
@@ -2581,78 +2320,82 @@ module.exports = function navigator(options) {
|
|
2581
2320
|
}, scrollDuration);
|
2582
2321
|
event.stopPropagation();
|
2583
2322
|
}
|
2584
|
-
});
|
2323
|
+
});
|
2324
|
+
|
2325
|
+
// jadams: test code for jQuery plugin 'regex'
|
2585
2326
|
// -----------------------------------------------------------------------
|
2586
2327
|
// $('a:contains("?#")').click(function(e) {
|
2587
2328
|
// e.preventDefault ? e.preventDefault() : e.returnValue = false;
|
2588
2329
|
// logger.info('bound click event to "?#*", suppress default action');
|
2589
2330
|
// });
|
2331
|
+
|
2590
2332
|
// -----------------------------------------------------------------------
|
2591
2333
|
// Navbar Sticky
|
2592
2334
|
// -----------------------------------------------------------------------
|
2593
|
-
|
2594
2335
|
var navSticky = $getNav.hasClass('navbar-sticky');
|
2595
|
-
|
2596
2336
|
if (navSticky) {
|
2597
2337
|
// Wraped navigation
|
2598
2338
|
$getNav.wrap('<div class=\'wrap-sticky\'></div>');
|
2599
|
-
}
|
2339
|
+
}
|
2340
|
+
|
2341
|
+
// -----------------------------------------------------------------------
|
2600
2342
|
// Navbar Center
|
2601
2343
|
// -----------------------------------------------------------------------
|
2602
|
-
|
2603
|
-
|
2604
2344
|
if ($getNav.hasClass('brand-center')) {
|
2605
2345
|
var postsArr = new Array();
|
2606
2346
|
var index = $('nav.brand-center');
|
2607
|
-
var $postsList = index.find('ul.navbar-nav');
|
2347
|
+
var $postsList = index.find('ul.navbar-nav');
|
2608
2348
|
|
2349
|
+
//Create array of all posts in lists
|
2609
2350
|
index.find('ul.navbar-nav > li').each(function () {
|
2610
2351
|
postsArr.push($(this).html());
|
2611
|
-
});
|
2352
|
+
});
|
2612
2353
|
|
2354
|
+
// Split the array at this point. The original array is altered.
|
2613
2355
|
var firstList = postsArr.splice(0, Math.round(postsArr.length / 2));
|
2614
2356
|
var secondList = postsArr;
|
2615
2357
|
var ListHTML = '';
|
2616
|
-
|
2617
2358
|
var createHTML = function createHTML(list) {
|
2618
2359
|
ListHTML = '';
|
2619
|
-
|
2620
2360
|
for (var i = 0; i < list.length; i++) {
|
2621
2361
|
ListHTML += '<li>' + list[i] + '</li>';
|
2622
2362
|
}
|
2623
|
-
};
|
2624
|
-
|
2363
|
+
};
|
2625
2364
|
|
2365
|
+
// Generate HTML for first list
|
2626
2366
|
createHTML(firstList);
|
2627
2367
|
$postsList.html(ListHTML);
|
2628
|
-
index.find('ul.nav').first().addClass('navbar-left');
|
2629
|
-
|
2630
|
-
createHTML(secondList); //Create new list after original one
|
2368
|
+
index.find('ul.nav').first().addClass('navbar-left');
|
2631
2369
|
|
2370
|
+
// Generate HTML for second list
|
2371
|
+
createHTML(secondList);
|
2372
|
+
//Create new list after original one
|
2632
2373
|
$postsList.after('<ul class="nav navbar-nav"></ul>').next().html(ListHTML);
|
2633
|
-
index.find('ul.nav').last().addClass('navbar-right');
|
2374
|
+
index.find('ul.nav').last().addClass('navbar-right');
|
2634
2375
|
|
2376
|
+
// Wrap navigation menu
|
2635
2377
|
index.find('ul.nav.navbar-left').wrap('<div class=\'col_half left\'></div>');
|
2636
|
-
index.find('ul.nav.navbar-right').wrap('<div class=\'col_half right\'></div>');
|
2378
|
+
index.find('ul.nav.navbar-right').wrap('<div class=\'col_half right\'></div>');
|
2637
2379
|
|
2380
|
+
// Selection Class
|
2638
2381
|
index.find('ul.navbar-nav > li').each(function () {
|
2639
2382
|
var dropDown = $('ul.dropdown-menu', this),
|
2640
|
-
|
2383
|
+
megaMenu = $('ul.megamenu-content', this);
|
2641
2384
|
dropDown.closest('li').addClass('dropdown');
|
2642
2385
|
megaMenu.closest('li').addClass('megamenu-fw');
|
2643
2386
|
});
|
2644
|
-
}
|
2387
|
+
}
|
2388
|
+
|
2389
|
+
// -----------------------------------------------------------------------
|
2645
2390
|
// Menu Center
|
2646
2391
|
// -----------------------------------------------------------------------
|
2647
|
-
|
2648
|
-
|
2649
2392
|
if ($getNav.find('ul.nav').hasClass('navbar-center')) {
|
2650
2393
|
$getNav.addClass('menu-center');
|
2651
|
-
}
|
2394
|
+
}
|
2395
|
+
|
2396
|
+
// -----------------------------------------------------------------------
|
2652
2397
|
// Navbar Full
|
2653
2398
|
// -----------------------------------------------------------------------
|
2654
|
-
|
2655
|
-
|
2656
2399
|
if ($getNav.hasClass('navbar-full')) {
|
2657
2400
|
// Add Class to body
|
2658
2401
|
$('nav.navbar.navigator').find('ul.nav').wrap('<div class=\'wrap-full-menu\'></div>');
|
@@ -2662,16 +2405,15 @@ module.exports = function navigator(options) {
|
|
2662
2405
|
$getNav.removeClass('no-full');
|
2663
2406
|
} else {
|
2664
2407
|
$getNav.addClass('no-full');
|
2665
|
-
}
|
2408
|
+
}
|
2409
|
+
|
2410
|
+
// -----------------------------------------------------------------------
|
2666
2411
|
// Navbar Fixed
|
2667
2412
|
// -----------------------------------------------------------------------
|
2668
|
-
|
2669
|
-
|
2670
2413
|
if ($getNav.hasClass('no-background')) {
|
2671
2414
|
$(window).on('scroll', function () {
|
2672
2415
|
var navbarHeighth = $('nav.navbar').outerHeight();
|
2673
2416
|
var scrollPos = $(window).scrollTop();
|
2674
|
-
|
2675
2417
|
if (scrollPos > navbarHeighth) {
|
2676
2418
|
$('.navbar-fixed').removeClass('no-background');
|
2677
2419
|
} else {
|
@@ -2679,12 +2421,10 @@ module.exports = function navigator(options) {
|
|
2679
2421
|
}
|
2680
2422
|
});
|
2681
2423
|
}
|
2682
|
-
|
2683
2424
|
if ($getNav.hasClass('navbar-transparent')) {
|
2684
2425
|
$(window).on('scroll', function () {
|
2685
2426
|
var navbarHeighth = $('nav.navbar').outerHeight();
|
2686
2427
|
var scrollPos = $(window).scrollTop();
|
2687
|
-
|
2688
2428
|
if (scrollPos > navbarHeighth) {
|
2689
2429
|
$('.navbar-fixed').removeClass('navbar-transparent');
|
2690
2430
|
$('.navbar-fixed').addClass('navbar-scrolled');
|
@@ -2693,14 +2433,14 @@ module.exports = function navigator(options) {
|
|
2693
2433
|
$('.navbar-fixed').addClass('navbar-transparent');
|
2694
2434
|
}
|
2695
2435
|
});
|
2696
|
-
}
|
2436
|
+
}
|
2437
|
+
|
2438
|
+
// -----------------------------------------------------------------------
|
2697
2439
|
// Manage events for all quicklinks
|
2698
2440
|
// https://stackoverflow.com/questions/178325/how-do-i-check-if-an-element-is-hidden-in-jquery
|
2699
2441
|
// https://stackoverflow.com/questions/4770025/how-to-disable-scrolling-temporarily
|
2700
2442
|
// https://stackoverflow.com/questions/5963669/whats-the-difference-between-event-stoppropagation-and-event-preventdefault
|
2701
2443
|
// -----------------------------------------------------------------------
|
2702
|
-
|
2703
|
-
|
2704
2444
|
$('.quicklink-nav').each(function () {
|
2705
2445
|
// ---------------------------------------------------------------------
|
2706
2446
|
// QuickSearch
|
@@ -2709,7 +2449,6 @@ module.exports = function navigator(options) {
|
|
2709
2449
|
logger.debug('register OPEN event for QuickSearch');
|
2710
2450
|
$('li.quicksearch > a', this).on('click', function (e) {
|
2711
2451
|
e.preventDefault(); // don't do the default browser action
|
2712
|
-
|
2713
2452
|
logger.debug('manage search action OPEN');
|
2714
2453
|
$('html,body').animate({
|
2715
2454
|
scrollTop: 0
|
@@ -2717,79 +2456,77 @@ module.exports = function navigator(options) {
|
|
2717
2456
|
$('.top-search').slideToggle('slow', 'swing', function () {
|
2718
2457
|
if ($('.top-search').is(':visible')) {
|
2719
2458
|
// disable scrolling (desktop)
|
2720
|
-
$('body').addClass('stop-scrolling');
|
2721
|
-
|
2459
|
+
$('body').addClass('stop-scrolling');
|
2460
|
+
// disable scrolling (mobile)
|
2722
2461
|
$('body').bind('touchmove', function (e) {
|
2723
2462
|
e.preventDefault();
|
2724
|
-
});
|
2725
|
-
|
2463
|
+
});
|
2464
|
+
// disable navbar
|
2726
2465
|
$('#' + defaultOptions.nav_bar.container_id).hide();
|
2727
2466
|
} else {
|
2728
2467
|
// enable scrolling (desktop)
|
2729
|
-
$('body').removeClass('stop-scrolling');
|
2730
|
-
|
2731
|
-
$('body').unbind('touchmove');
|
2732
|
-
|
2468
|
+
$('body').removeClass('stop-scrolling');
|
2469
|
+
// enable scrolling (mobile)
|
2470
|
+
$('body').unbind('touchmove');
|
2471
|
+
// enable navbar
|
2733
2472
|
$('#' + defaultOptions.nav_bar.container_id).show();
|
2734
2473
|
}
|
2735
2474
|
});
|
2736
2475
|
e.stopPropagation(); // don't bubble up the event
|
2737
2476
|
});
|
2477
|
+
|
2738
2478
|
logger.debug('register CLOSE event for QuickSearch');
|
2739
2479
|
$('.input-group-addon.close-search').on('click', function (e) {
|
2740
2480
|
e.preventDefault(); // don't do the default browser action
|
2741
|
-
|
2742
2481
|
logger.debug('manage search action CLOSE');
|
2743
2482
|
$('.top-search').slideUp('slow', 'swing');
|
2744
2483
|
$('html,body').animate({
|
2745
2484
|
scrollTop: 0
|
2746
|
-
}, 0);
|
2747
|
-
|
2748
|
-
$('body').removeClass('stop-scrolling');
|
2749
|
-
|
2750
|
-
$('body').unbind('touchmove');
|
2751
|
-
|
2485
|
+
}, 0);
|
2486
|
+
// enable scrolling (desktop)
|
2487
|
+
$('body').removeClass('stop-scrolling');
|
2488
|
+
// enable scrolling (mobile)
|
2489
|
+
$('body').unbind('touchmove');
|
2490
|
+
// enable navbar
|
2752
2491
|
$('#' + defaultOptions.nav_bar.container_id).show();
|
2753
2492
|
e.stopPropagation(); // don't bubble up the event
|
2754
2493
|
});
|
2755
2494
|
} // END QuickSearch
|
2495
|
+
|
2756
2496
|
// ---------------------------------------------------------------------
|
2757
2497
|
// Translator dialog
|
2758
2498
|
//
|
2759
|
-
|
2760
|
-
|
2761
2499
|
if ($('li.translate')) {
|
2762
2500
|
logger.debug('register SHOW event for J1 Translator');
|
2763
2501
|
$('li.translate > a', this).on('click', function (e) {
|
2764
2502
|
j1.translator.showDialog();
|
2765
2503
|
});
|
2766
2504
|
} // END Translator
|
2505
|
+
|
2767
2506
|
// ---------------------------------------------------------------------
|
2768
2507
|
// NBI Notebooks dialog
|
2769
2508
|
//
|
2770
|
-
|
2771
|
-
|
2772
2509
|
if ($('li.nbi-notebooks')) {
|
2773
2510
|
logger.debug('register SHOW event for J1 NBI');
|
2774
2511
|
$('li.nbi-notebooks > a', this).on('click', function (e) {
|
2775
2512
|
j1.adapter.nbinteract.showDialog();
|
2776
2513
|
});
|
2777
2514
|
} // END NBI Notebooks
|
2515
|
+
|
2778
2516
|
// ---------------------------------------------------------------------
|
2779
2517
|
// CookieConsent dialog
|
2780
2518
|
//
|
2781
|
-
|
2782
|
-
|
2783
2519
|
if ($('li.cookie-consent')) {
|
2784
2520
|
logger.debug('register SHOW event for J1 CookieConsent');
|
2785
2521
|
$('li.cookie-consent > a', this).on('click', function (e) {
|
2786
2522
|
j1.cookieConsent.showDialog();
|
2787
2523
|
});
|
2788
2524
|
} // END CookieConsent
|
2789
|
-
|
2790
2525
|
}); // End manage events for all quicklinks
|
2791
2526
|
},
|
2527
|
+
|
2792
2528
|
// END eventHandler
|
2529
|
+
|
2793
2530
|
// -------------------------------------------------------------------------
|
2794
2531
|
// Manage the Menu Dropdowns for Desktop|Mobile
|
2795
2532
|
// -------------------------------------------------------------------------
|
@@ -2808,54 +2545,45 @@ module.exports = function navigator(options) {
|
|
2808
2545
|
var breakPoint;
|
2809
2546
|
var $menu;
|
2810
2547
|
var $dropDown;
|
2811
|
-
var timeoutHandle;
|
2548
|
+
var timeoutHandle;
|
2549
|
+
|
2550
|
+
// BS4 @media MAX breakpoints
|
2812
2551
|
// NOTE: a media query is always a range
|
2813
2552
|
// -----------------------------------------------------------------------
|
2814
|
-
|
2815
2553
|
var gridBreakpoint_lg = 992; // bs-breakpoint-lg
|
2816
|
-
|
2817
2554
|
var gridBreakpoint_md = 768; // bs-breakpoint-md
|
2818
|
-
|
2819
2555
|
var gridBreakpoint_sm = 576; // bs-breakpoint-sm
|
2556
|
+
|
2820
2557
|
// BS4 @media MIN breakpoints
|
2821
2558
|
// -----------------------------------------------------------------------
|
2822
2559
|
// NOTE: a media query is always a range
|
2823
2560
|
// var gridBreakpoint_lg = 991;
|
2824
2561
|
// var gridBreakpoint_md = 767;
|
2825
2562
|
// var gridBreakpoint_sm = 575;
|
2563
|
+
|
2826
2564
|
// @media ranges
|
2827
2565
|
// -----------------------------------------------------------------------
|
2828
|
-
|
2829
2566
|
var small_range = {
|
2830
2567
|
min: '0em',
|
2831
2568
|
max: '40em'
|
2832
|
-
};
|
2833
|
-
/* 0, 640px */
|
2834
|
-
|
2569
|
+
}; /* 0, 640px */
|
2835
2570
|
var medium_range = {
|
2836
2571
|
min: '40.063em',
|
2837
2572
|
max: '64em'
|
2838
|
-
};
|
2839
|
-
/* 641px, 1024px */
|
2840
|
-
|
2573
|
+
}; /* 641px, 1024px */
|
2841
2574
|
var large_range = {
|
2842
2575
|
min: '64.063em',
|
2843
2576
|
max: '90em'
|
2844
|
-
};
|
2845
|
-
/* 1025px, 1440px */
|
2846
|
-
|
2577
|
+
}; /* 1025px, 1440px */
|
2847
2578
|
var xlarge_range = {
|
2848
2579
|
min: '90.063em',
|
2849
2580
|
max: '120em'
|
2850
|
-
};
|
2851
|
-
/* 1441px, 1920px */
|
2852
|
-
|
2581
|
+
}; /* 1441px, 1920px */
|
2853
2582
|
var xxlarge_range = {
|
2854
2583
|
min: '120.063em'
|
2855
|
-
};
|
2856
|
-
/* 1921px */
|
2857
|
-
// jadams, 2019-05-01: Set Media Breakpoint for Desktop|Mobile Navigation
|
2584
|
+
}; /* 1921px */
|
2858
2585
|
|
2586
|
+
// jadams, 2019-05-01: Set Media Breakpoint for Desktop|Mobile Navigation
|
2859
2587
|
if (navDefaultOptions.nav_bar.media_breakpoint === 'lg') {
|
2860
2588
|
breakPoint = gridBreakpoint_lg;
|
2861
2589
|
} else if (navDefaultOptions.nav_bar.media_breakpoint === 'md') {
|
@@ -2864,7 +2592,9 @@ module.exports = function navigator(options) {
|
|
2864
2592
|
breakPoint = gridBreakpoint_sm;
|
2865
2593
|
} else {
|
2866
2594
|
breakPoint = gridBreakpoint_lg;
|
2867
|
-
}
|
2595
|
+
}
|
2596
|
+
|
2597
|
+
// -----------------------------------------------------------------------
|
2868
2598
|
// Tablet or Mobile
|
2869
2599
|
// NOTE:
|
2870
2600
|
// Managing the mobile menu is moved to MMenu Plugin
|
@@ -2872,14 +2602,15 @@ module.exports = function navigator(options) {
|
|
2872
2602
|
// J1 Navigator
|
2873
2603
|
// -----------------------------------------------------------------------
|
2874
2604
|
// MIN media breakpoint
|
2875
|
-
|
2876
|
-
|
2877
2605
|
if ($getWindow <= breakPoint) {
|
2878
2606
|
// Collapse Navbar (Desktop Navigation)
|
2879
2607
|
$(menuSelector).addClass('navbar-collapse');
|
2880
|
-
$(menuSelector).removeClass('show');
|
2608
|
+
$(menuSelector).removeClass('show');
|
2881
2609
|
|
2882
|
-
|
2610
|
+
// Show QuicklinksBar
|
2611
|
+
$(quicklinksSelector).addClass('show');
|
2612
|
+
|
2613
|
+
// -----------------------------------------------------------------------
|
2883
2614
|
// Desktop Navigation does NOT work on physical devices like iPad|Pro
|
2884
2615
|
// Config DISABLED
|
2885
2616
|
//
|
@@ -2889,7 +2620,9 @@ module.exports = function navigator(options) {
|
|
2889
2620
|
// Desktop
|
2890
2621
|
// -----------------------------------------------------------------------
|
2891
2622
|
$('#navigator_nav_quicklinks').removeClass('show');
|
2892
|
-
$('#desktop_menu').show();
|
2623
|
+
$('#desktop_menu').show();
|
2624
|
+
|
2625
|
+
// jadams, 2021-03-05: manage dropdown menus
|
2893
2626
|
// ---------------------------------------------------------------------
|
2894
2627
|
|
2895
2628
|
$('.dropdown-menu > li').on('mouseenter', function () {
|
@@ -2904,23 +2637,28 @@ module.exports = function navigator(options) {
|
|
2904
2637
|
if ($('body').hasClass('stop-scrolling')) {
|
2905
2638
|
$('body').removeClass('stop-scrolling');
|
2906
2639
|
}
|
2907
|
-
});
|
2640
|
+
});
|
2908
2641
|
|
2642
|
+
// limit the dropdown menu lenght if needed
|
2909
2643
|
$('.dropdown-menu > li').hover(function () {
|
2910
2644
|
var $container = $(this);
|
2911
|
-
var $list = $container.find('ul');
|
2645
|
+
var $list = $container.find('ul');
|
2912
2646
|
|
2647
|
+
// limit LAST menu ONLY
|
2913
2648
|
if ($list.length == 1) {
|
2914
2649
|
$list.addClass('scrollable-menu');
|
2915
2650
|
}
|
2916
|
-
});
|
2917
|
-
//
|
2651
|
+
});
|
2918
2652
|
|
2653
|
+
// jadams, 2021-03-06: Enable|Show Desktop Menu|s
|
2654
|
+
//
|
2919
2655
|
$(menuSelector).removeClass('navbar-collapse');
|
2920
|
-
$(menuSelector).addClass('show');
|
2656
|
+
$(menuSelector).addClass('show');
|
2921
2657
|
|
2658
|
+
// Open Desktop Menu|s on hover
|
2922
2659
|
$('nav.navbar.navigator ul.nav').each(function () {
|
2923
|
-
$('a.dropdown-toggle', this).off('click');
|
2660
|
+
$('a.dropdown-toggle', this).off('click');
|
2661
|
+
// $('a.dropdown-toggle', this).on('click', function (e) {
|
2924
2662
|
// // e.stopPropagation(); // don't bubble up the event
|
2925
2663
|
// });
|
2926
2664
|
|
@@ -2935,8 +2673,9 @@ module.exports = function navigator(options) {
|
|
2935
2673
|
$dropDown = $(this);
|
2936
2674
|
$menu.removeClass($getOut);
|
2937
2675
|
$menu.removeClass('open');
|
2938
|
-
$dropDown.addClass('open');
|
2676
|
+
$dropDown.addClass('open');
|
2939
2677
|
|
2678
|
+
// Create a timeout object to delay the dropdown menus to open
|
2940
2679
|
timeoutHandle = window.setTimeout(function () {
|
2941
2680
|
if ($dropDown.hasClass('open')) {
|
2942
2681
|
$menu.stop().fadeIn().addClass($getIn);
|
@@ -2948,8 +2687,9 @@ module.exports = function navigator(options) {
|
|
2948
2687
|
});
|
2949
2688
|
$('li.dropdown', this).on('mouseleave', function (e) {
|
2950
2689
|
$menu = $('.dropdown-menu', this).eq(0);
|
2951
|
-
$dropDown = $(this);
|
2690
|
+
$dropDown = $(this);
|
2952
2691
|
|
2692
|
+
// Clear the timeout object for dropdown menus 'open'
|
2953
2693
|
window.clearTimeout(timeoutHandle);
|
2954
2694
|
$menu.removeClass($getIn);
|
2955
2695
|
$menu.addClass($getOut);
|
@@ -2959,14 +2699,13 @@ module.exports = function navigator(options) {
|
|
2959
2699
|
});
|
2960
2700
|
}); // END Desktop Menu
|
2961
2701
|
} // end Desktop
|
2702
|
+
|
2962
2703
|
// -----------------------------------------------------------------------
|
2963
2704
|
// Fullscreen Menu
|
2964
2705
|
// -----------------------------------------------------------------------
|
2965
|
-
|
2966
|
-
|
2967
2706
|
if ($getNav.hasClass('navbar-full')) {
|
2968
2707
|
var windowHeight = $(window).height(),
|
2969
|
-
|
2708
|
+
windowWidth = $(window).width();
|
2970
2709
|
$('.nav-full').css('height', windowHeight + 'px');
|
2971
2710
|
$('.wrap-full-menu').css('height', windowHeight + 'px');
|
2972
2711
|
$('.wrap-full-menu').css('width', windowWidth + 'px');
|
@@ -2978,38 +2717,42 @@ module.exports = function navigator(options) {
|
|
2978
2717
|
e.preventDefault();
|
2979
2718
|
$(getId).removeClass($getOut);
|
2980
2719
|
$(getId).addClass('in');
|
2981
|
-
$(getId).addClass($getIn);
|
2720
|
+
$(getId).addClass($getIn);
|
2721
|
+
// e.stopPropagation(); // don't bubble up the event
|
2982
2722
|
// return false;
|
2983
2723
|
});
|
2724
|
+
|
2984
2725
|
$('li.close-full-menu').on('click', function (e) {
|
2985
2726
|
e.preventDefault();
|
2986
2727
|
$(getId).addClass($getOut);
|
2987
2728
|
setTimeout(function () {
|
2988
2729
|
$(getId).removeClass('in');
|
2989
2730
|
$(getId).removeClass($getIn);
|
2990
|
-
}, 500);
|
2731
|
+
}, 500);
|
2732
|
+
//e.stopPropagation(); // don't bubble up the event
|
2991
2733
|
// return false;
|
2992
2734
|
});
|
2993
2735
|
});
|
2994
2736
|
}
|
2995
2737
|
},
|
2738
|
+
|
2996
2739
|
// end manageDropdownMenu
|
2740
|
+
|
2997
2741
|
// -------------------------------------------------------------------------
|
2998
2742
|
// Sticky Navbar
|
2999
2743
|
// -------------------------------------------------------------------------
|
3000
2744
|
navbarSticky: function navbarSticky() {
|
3001
2745
|
var $getNav = $('nav.navbar.navigator'),
|
3002
|
-
|
3003
|
-
|
2746
|
+
navSticky = $getNav.hasClass('navbar-sticky');
|
3004
2747
|
if (navSticky) {
|
3005
2748
|
// Set Height Navigation
|
3006
2749
|
var $getHeight = $getNav.height();
|
3007
|
-
$('.wrap-sticky').height($getHeight);
|
2750
|
+
$('.wrap-sticky').height($getHeight);
|
3008
2751
|
|
2752
|
+
// Windown on scroll
|
3009
2753
|
var getOffset = $('.wrap-sticky').offset().top;
|
3010
2754
|
$(window).on('scroll', function () {
|
3011
2755
|
var scrollTop = $(window).scrollTop();
|
3012
|
-
|
3013
2756
|
if (scrollTop > getOffset) {
|
3014
2757
|
$getNav.addClass('sticked');
|
3015
2758
|
} else {
|
@@ -3019,24 +2762,26 @@ module.exports = function navigator(options) {
|
|
3019
2762
|
}
|
3020
2763
|
},
|
3021
2764
|
// end navbarSticky
|
2765
|
+
|
3022
2766
|
// -------------------------------------------------------------------------
|
3023
2767
|
// updateSidebar
|
3024
2768
|
// Note:
|
3025
2769
|
// -------------------------------------------------------------------------
|
3026
2770
|
updateSidebar: function updateSidebar(user_data) {
|
3027
2771
|
var logger = log4javascript.getLogger('j1.core.navigator.updateSidebar');
|
3028
|
-
var json_message;
|
2772
|
+
var json_message;
|
3029
2773
|
|
2774
|
+
// json_message = JSON.stringify(user_data, undefined, 2); // multiline
|
3030
2775
|
json_message = JSON.stringify(user_data);
|
3031
2776
|
logText = 'user state data: ' + json_message;
|
3032
|
-
logger.debug(logText);
|
3033
|
-
|
3034
|
-
j1.resolveMacros(user_data); // Replace Macro values only
|
2777
|
+
logger.debug(logText);
|
3035
2778
|
|
2779
|
+
// Replace Macro placeholders to values
|
2780
|
+
j1.resolveMacros(user_data);
|
2781
|
+
// Replace Macro values only
|
3036
2782
|
j1.updateMacros(user_data);
|
3037
2783
|
return true;
|
3038
2784
|
} // END updateSidebar
|
3039
|
-
|
3040
2785
|
}; // end return (object)
|
3041
2786
|
}(jQuery);
|
3042
2787
|
|
@@ -3060,41 +2805,37 @@ module.exports = function navigator(options) {
|
|
3060
2805
|
# See: https://github.com/jekyll-one-org/J1 Template/blob/master/LICENSE
|
3061
2806
|
# -----------------------------------------------------------------------------
|
3062
2807
|
*/
|
3063
|
-
|
2808
|
+
|
2809
|
+
|
2810
|
+
// -----------------------------------------------------------------------------
|
3064
2811
|
// ESLint shimming
|
3065
2812
|
// -----------------------------------------------------------------------------
|
3066
|
-
|
3067
2813
|
/* eslint indent: "off" */
|
3068
|
-
|
3069
2814
|
/* eslint no-unused-vars: "off" */
|
3070
|
-
|
3071
2815
|
/* eslint no-undef: "off" */
|
3072
|
-
|
3073
2816
|
/* eslint no-redeclare: "off" */
|
3074
|
-
|
3075
2817
|
/* eslint indent: "off" */
|
3076
2818
|
// -----------------------------------------------------------------------------
|
2819
|
+
|
3077
2820
|
// -----------------------------------------------------------------------------
|
3078
2821
|
// scrollSmooth core registered as "scrollSmooth"
|
3079
2822
|
// -----------------------------------------------------------------------------
|
3080
|
-
|
3081
2823
|
module.exports = function scrollSmooth(options) {
|
3082
2824
|
// Default settings
|
3083
2825
|
var settings = $.extend({
|
3084
2826
|
foo: 'foo_option',
|
3085
2827
|
bar: 'bar_option'
|
3086
|
-
}, options);
|
2828
|
+
}, options);
|
2829
|
+
|
2830
|
+
// -----------------------------------------------------------------------
|
3087
2831
|
// Helper functions
|
3088
2832
|
// -----------------------------------------------------------------------
|
3089
|
-
|
3090
2833
|
function stripHash(url) {
|
3091
2834
|
return url.slice(0, url.lastIndexOf('#'));
|
3092
2835
|
}
|
3093
|
-
|
3094
2836
|
function isCssSmoothScrollSupported() {
|
3095
2837
|
return 'scrollBehavior' in document.documentElement.style;
|
3096
2838
|
}
|
3097
|
-
|
3098
2839
|
return {
|
3099
2840
|
// -------------------------------------------------------------------------
|
3100
2841
|
// Initialize scrollSmooth
|
@@ -3102,13 +2843,17 @@ module.exports = function scrollSmooth(options) {
|
|
3102
2843
|
scroll: function scroll(target, options) {
|
3103
2844
|
var logger;
|
3104
2845
|
var logText;
|
3105
|
-
logger = log4javascript.getLogger('j1.core.scrollSmooth');
|
2846
|
+
logger = log4javascript.getLogger('j1.core.scrollSmooth');
|
2847
|
+
|
2848
|
+
// indicator|check currently NOT used
|
3106
2849
|
// if (isCssSmoothScrollSupported()) { }
|
3107
2850
|
|
3108
2851
|
logText = '\n' + 'run module scrollSmooth';
|
3109
2852
|
logger.debug(logText);
|
3110
2853
|
var duration = options.duration;
|
3111
|
-
var offset = options.offset;
|
2854
|
+
var offset = options.offset;
|
2855
|
+
|
2856
|
+
// var pageUrl = options.location.hash
|
3112
2857
|
// ? stripHash(options.location.href)
|
3113
2858
|
// : options.location.href;
|
3114
2859
|
|
@@ -3133,8 +2878,9 @@ module.exports = function scrollSmooth(options) {
|
|
3133
2878
|
offset: options.offset || 0,
|
3134
2879
|
callback: options.callback,
|
3135
2880
|
easing: options.easing || easeInOutQuad
|
3136
|
-
};
|
2881
|
+
};
|
3137
2882
|
|
2883
|
+
// calculate the tgt (HTML heading element including the hash)
|
3138
2884
|
var tgt = document.querySelector('[id="' + decodeURI(target).split('#').join('') + '"]');
|
3139
2885
|
var distance = typeof target === 'string' ? opt.offset + (target ? tgt && tgt.getBoundingClientRect().top || 0 // handle non-existent links better.
|
3140
2886
|
: -(document.documentElement.scrollTop || document.body.scrollTop)) : target;
|
@@ -3145,26 +2891,23 @@ module.exports = function scrollSmooth(options) {
|
|
3145
2891
|
timeStart = time;
|
3146
2892
|
loop(time);
|
3147
2893
|
});
|
3148
|
-
|
3149
2894
|
function loop(time) {
|
3150
2895
|
timeElapsed = time - timeStart;
|
3151
2896
|
window.scrollTo(0, opt.easing(timeElapsed, start, distance, duration));
|
3152
|
-
|
3153
2897
|
if (timeElapsed < duration) {
|
3154
2898
|
requestAnimationFrame(loop);
|
3155
2899
|
} else {
|
3156
2900
|
postPositioning();
|
3157
2901
|
}
|
3158
2902
|
}
|
3159
|
-
|
3160
2903
|
function postPositioning() {
|
3161
2904
|
// if configured
|
3162
2905
|
if (typeof opt.callback === 'function') {
|
3163
2906
|
opt.callback();
|
3164
2907
|
}
|
3165
|
-
}
|
3166
|
-
|
2908
|
+
}
|
3167
2909
|
|
2910
|
+
// Robert Penner's easeInOutQuad - http://robertpenner.com/easing/
|
3168
2911
|
function easeInOutQuad(t, b, c, d) {
|
3169
2912
|
t /= d / 2;
|
3170
2913
|
if (t < 1) return c / 2 * t * t + b;
|
@@ -3172,7 +2915,6 @@ module.exports = function scrollSmooth(options) {
|
|
3172
2915
|
return -c / 2 * (t * (t - 2) - 1) + b;
|
3173
2916
|
}
|
3174
2917
|
} // END scrollTo
|
3175
|
-
|
3176
2918
|
}; // END return
|
3177
2919
|
}(jQuery);
|
3178
2920
|
|
@@ -3186,32 +2928,30 @@ module.exports = function scrollSmooth(options) {
|
|
3186
2928
|
*
|
3187
2929
|
* @author Tim Scanlin
|
3188
2930
|
*/
|
2931
|
+
|
3189
2932
|
// -----------------------------------------------------------------------------
|
3190
2933
|
// ESLint shimming
|
3191
2934
|
// -----------------------------------------------------------------------------
|
3192
|
-
|
3193
2935
|
/* eslint indent: "off" */
|
3194
|
-
|
3195
2936
|
/* eslint no-undef: "off" */
|
3196
|
-
|
3197
2937
|
/* eslint semi: "off" */
|
3198
2938
|
// -----------------------------------------------------------------------------
|
2939
|
+
|
3199
2940
|
module.exports = function (options) {
|
3200
2941
|
var forEach = [].forEach;
|
3201
2942
|
var some = [].some;
|
3202
2943
|
var body = document.body;
|
3203
2944
|
var currentlyHighlighting = true;
|
3204
2945
|
var SPACE_CHAR = ' ';
|
2946
|
+
|
3205
2947
|
/**
|
3206
2948
|
* Create link and list elements.
|
3207
2949
|
* @param {Object} d
|
3208
2950
|
* @param {HTMLElement} container
|
3209
2951
|
* @return {HTMLElement}
|
3210
2952
|
*/
|
3211
|
-
|
3212
2953
|
function createEl(d, container) {
|
3213
2954
|
var link = container.appendChild(createLink(d));
|
3214
|
-
|
3215
2955
|
if (d.children.length) {
|
3216
2956
|
var list = createList(d.isCollapsed);
|
3217
2957
|
d.children.forEach(function (child) {
|
@@ -3220,58 +2960,54 @@ module.exports = function (options) {
|
|
3220
2960
|
link.appendChild(list);
|
3221
2961
|
}
|
3222
2962
|
}
|
2963
|
+
|
3223
2964
|
/**
|
3224
2965
|
* Render nested heading array data into a given selector.
|
3225
2966
|
* @param {String} selector
|
3226
2967
|
* @param {Array} data
|
3227
2968
|
* @return {HTMLElement}
|
3228
2969
|
*/
|
3229
|
-
|
3230
|
-
|
3231
2970
|
function render(selector, data) {
|
3232
2971
|
var collapsed = false;
|
3233
2972
|
var container = createList(collapsed);
|
3234
2973
|
data.forEach(function (d) {
|
3235
2974
|
createEl(d, container);
|
3236
2975
|
});
|
3237
|
-
var parent = document.querySelector(selector);
|
2976
|
+
var parent = document.querySelector(selector);
|
3238
2977
|
|
2978
|
+
// Return if no parent is found.
|
3239
2979
|
if (parent === null) {
|
3240
2980
|
return;
|
3241
|
-
}
|
3242
|
-
|
2981
|
+
}
|
3243
2982
|
|
2983
|
+
// Remove existing child if it exists.
|
3244
2984
|
if (parent.firstChild) {
|
3245
2985
|
parent.removeChild(parent.firstChild);
|
3246
|
-
}
|
3247
|
-
|
2986
|
+
}
|
3248
2987
|
|
2988
|
+
// Just return the parent and don't append the list if no links are found.
|
3249
2989
|
if (data.length === 0) {
|
3250
2990
|
return parent;
|
3251
|
-
}
|
3252
|
-
|
2991
|
+
}
|
3253
2992
|
|
2993
|
+
// Append the Elements that have been created
|
3254
2994
|
return parent.appendChild(container);
|
3255
2995
|
}
|
2996
|
+
|
3256
2997
|
/**
|
3257
2998
|
* Create link element.
|
3258
2999
|
* @param {Object} data
|
3259
3000
|
* @return {HTMLElement}
|
3260
3001
|
*/
|
3261
|
-
|
3262
|
-
|
3263
3002
|
function createLink(data) {
|
3264
3003
|
var item = document.createElement('li');
|
3265
3004
|
var a = document.createElement('a');
|
3266
|
-
|
3267
3005
|
if (options.listItemClass) {
|
3268
3006
|
item.setAttribute('class', options.listItemClass);
|
3269
3007
|
}
|
3270
|
-
|
3271
3008
|
if (options.onClick) {
|
3272
3009
|
a.onclick = options.onClick;
|
3273
3010
|
}
|
3274
|
-
|
3275
3011
|
if (options.includeHtml && data.childNodes.length) {
|
3276
3012
|
forEach.call(data.childNodes, function (node) {
|
3277
3013
|
a.appendChild(node.cloneNode(true));
|
@@ -3280,38 +3016,33 @@ module.exports = function (options) {
|
|
3280
3016
|
// Default behavior.
|
3281
3017
|
a.textContent = data.textContent;
|
3282
3018
|
}
|
3283
|
-
|
3284
3019
|
a.setAttribute('href', options.basePath + '#' + data.id);
|
3285
3020
|
a.setAttribute('class', options.linkClass + SPACE_CHAR + 'node-name--' + data.nodeName + SPACE_CHAR + options.extraLinkClasses);
|
3286
3021
|
item.appendChild(a);
|
3287
3022
|
return item;
|
3288
3023
|
}
|
3024
|
+
|
3289
3025
|
/**
|
3290
3026
|
* Create list element.
|
3291
3027
|
* @param {Boolean} isCollapsed
|
3292
3028
|
* @return {HTMLElement}
|
3293
3029
|
*/
|
3294
|
-
|
3295
|
-
|
3296
3030
|
function createList(isCollapsed) {
|
3297
3031
|
var listElement = options.orderedList ? 'ol' : 'ul';
|
3298
3032
|
var list = document.createElement(listElement);
|
3299
3033
|
var classes = options.listClass + SPACE_CHAR + options.extraListClasses;
|
3300
|
-
|
3301
3034
|
if (isCollapsed) {
|
3302
3035
|
classes += SPACE_CHAR + options.collapsibleClass;
|
3303
3036
|
classes += SPACE_CHAR + options.isCollapsedClass;
|
3304
3037
|
}
|
3305
|
-
|
3306
3038
|
list.setAttribute('class', classes);
|
3307
3039
|
return list;
|
3308
3040
|
}
|
3041
|
+
|
3309
3042
|
/**
|
3310
3043
|
* Update fixed sidebar class.
|
3311
3044
|
* @return {HTMLElement}
|
3312
3045
|
*/
|
3313
|
-
|
3314
|
-
|
3315
3046
|
function updateFixedSidebarClass() {
|
3316
3047
|
if (options.scrollContainer && document.querySelector(options.scrollContainer)) {
|
3317
3048
|
var top;
|
@@ -3319,13 +3050,10 @@ module.exports = function (options) {
|
|
3319
3050
|
} else {
|
3320
3051
|
top = document.documentElement.scrollTop || body.scrollTop;
|
3321
3052
|
}
|
3322
|
-
|
3323
3053
|
var posFixedEl = document.querySelector(options.positionFixedSelector);
|
3324
|
-
|
3325
3054
|
if (options.fixedSidebarOffset === 'auto') {
|
3326
3055
|
options.fixedSidebarOffset = document.querySelector(options.tocSelector).offsetTop;
|
3327
3056
|
}
|
3328
|
-
|
3329
3057
|
if (top > options.fixedSidebarOffset) {
|
3330
3058
|
if (posFixedEl.className.indexOf(options.positionFixedClass) === -1) {
|
3331
3059
|
posFixedEl.className += SPACE_CHAR + options.positionFixedClass;
|
@@ -3334,31 +3062,26 @@ module.exports = function (options) {
|
|
3334
3062
|
posFixedEl.className = posFixedEl.className.split(SPACE_CHAR + options.positionFixedClass).join('');
|
3335
3063
|
}
|
3336
3064
|
}
|
3065
|
+
|
3337
3066
|
/**
|
3338
3067
|
* Get top position of heading
|
3339
3068
|
* @param {HTMLElement}
|
3340
3069
|
* @return {integer} position
|
3341
3070
|
*/
|
3342
|
-
|
3343
|
-
|
3344
3071
|
function getHeadingTopPos(obj) {
|
3345
3072
|
var position = 0;
|
3346
|
-
|
3347
3073
|
if (obj !== document.querySelector(options.contentSelector && obj != null)) {
|
3348
3074
|
position = obj.offsetTop;
|
3349
|
-
|
3350
3075
|
if (options.hasInnerContainers) {
|
3351
3076
|
position += getHeadingTopPos(obj.offsetParent);
|
3352
3077
|
}
|
3353
3078
|
}
|
3354
|
-
|
3355
3079
|
return position;
|
3356
3080
|
}
|
3081
|
+
|
3357
3082
|
/**
|
3358
3083
|
* Update TOC highlighting and collapsed groups
|
3359
3084
|
*/
|
3360
|
-
|
3361
|
-
|
3362
3085
|
function updateToc(headingsArray) {
|
3363
3086
|
// If a fixed content container was set
|
3364
3087
|
if (options.scrollContainer && document.querySelector(options.scrollContainer)) {
|
@@ -3366,23 +3089,23 @@ module.exports = function (options) {
|
|
3366
3089
|
top = document.querySelector(options.scrollContainer).scrollTop;
|
3367
3090
|
} else {
|
3368
3091
|
top = document.documentElement.scrollTop || body.scrollTop;
|
3369
|
-
}
|
3370
|
-
|
3092
|
+
}
|
3371
3093
|
|
3094
|
+
// Add fixed class at offset
|
3372
3095
|
if (options.positionFixedSelector) {
|
3373
3096
|
updateFixedSidebarClass();
|
3374
|
-
}
|
3375
|
-
// identify what element to be highlighted
|
3376
|
-
|
3097
|
+
}
|
3377
3098
|
|
3099
|
+
// Get the most TOP heading currently visible on the page to
|
3100
|
+
// identify what element to be highlighted
|
3378
3101
|
var headings = headingsArray;
|
3379
3102
|
var topHeader;
|
3380
|
-
var headingTopPos;
|
3103
|
+
var headingTopPos;
|
3381
3104
|
|
3105
|
+
// Using some instead of each so that we can escape early
|
3382
3106
|
if (currentlyHighlighting && document.querySelector(options.tocSelector) !== null && headings.length > 0) {
|
3383
3107
|
some.call(headings, function (heading, i) {
|
3384
3108
|
headingTopPos = getHeadingTopPos(heading);
|
3385
|
-
|
3386
3109
|
if (headingTopPos > top + options.headingsOffset + 10) {
|
3387
3110
|
// Don't allow negative index value
|
3388
3111
|
// var index = (i === 0) ? i : i - 1;
|
@@ -3395,8 +3118,9 @@ module.exports = function (options) {
|
|
3395
3118
|
topHeader = headings[headings.length - 1];
|
3396
3119
|
return true;
|
3397
3120
|
}
|
3398
|
-
});
|
3121
|
+
});
|
3399
3122
|
|
3123
|
+
// Remove the active class from the other tocLinks.
|
3400
3124
|
var tocLinks = document.querySelector(options.tocSelector).querySelectorAll('.' + options.linkClass);
|
3401
3125
|
forEach.call(tocLinks, function (tocLink) {
|
3402
3126
|
tocLink.className = tocLink.className.split(SPACE_CHAR + options.activeLinkClass).join('');
|
@@ -3404,76 +3128,67 @@ module.exports = function (options) {
|
|
3404
3128
|
var tocLis = document.querySelector(options.tocSelector).querySelectorAll('.' + options.listItemClass);
|
3405
3129
|
forEach.call(tocLis, function (tocLi) {
|
3406
3130
|
tocLi.className = tocLi.className.split(SPACE_CHAR + options.activeListItemClass).join('');
|
3407
|
-
});
|
3131
|
+
});
|
3408
3132
|
|
3133
|
+
// Add the active class to the active tocLink.
|
3409
3134
|
var activeTocLink = document.querySelector(options.tocSelector).querySelector('.' + options.linkClass + '.node-name--' + topHeader.nodeName + '[href="' + options.basePath + '#' + topHeader.id.replace(/([ #;&,.+*~':"!^$[\]()=>|/@])/g, '\\$1') + '"]');
|
3410
|
-
|
3411
3135
|
if (activeTocLink.className.indexOf(options.activeLinkClass) === -1) {
|
3412
3136
|
activeTocLink.className += SPACE_CHAR + options.activeLinkClass;
|
3413
3137
|
}
|
3414
|
-
|
3415
3138
|
var li = activeTocLink.parentNode;
|
3416
|
-
|
3417
3139
|
if (li && li.className.indexOf(options.activeListItemClass) === -1) {
|
3418
3140
|
li.className += SPACE_CHAR + options.activeListItemClass;
|
3419
3141
|
}
|
3142
|
+
var tocLists = document.querySelector(options.tocSelector).querySelectorAll('.' + options.listClass + '.' + options.collapsibleClass);
|
3420
3143
|
|
3421
|
-
|
3422
|
-
|
3144
|
+
// Collapse the other collapsible lists.
|
3423
3145
|
forEach.call(tocLists, function (list) {
|
3424
3146
|
if (list.className.indexOf(options.isCollapsedClass) === -1) {
|
3425
3147
|
list.className += SPACE_CHAR + options.isCollapsedClass;
|
3426
3148
|
}
|
3427
|
-
});
|
3149
|
+
});
|
3428
3150
|
|
3151
|
+
// Expand the active link's collapsible list and its sibling if applicable.
|
3429
3152
|
if (activeTocLink.nextSibling && activeTocLink.nextSibling.className.indexOf(options.isCollapsedClass) !== -1) {
|
3430
3153
|
activeTocLink.nextSibling.className = activeTocLink.nextSibling.className.split(SPACE_CHAR + options.isCollapsedClass).join('');
|
3431
3154
|
}
|
3432
|
-
|
3433
3155
|
removeCollapsedFromParents(activeTocLink.parentNode.parentNode);
|
3434
3156
|
}
|
3435
3157
|
}
|
3158
|
+
|
3436
3159
|
/**
|
3437
3160
|
* Remove collpased class from parent elements.
|
3438
3161
|
* @param {HTMLElement} element
|
3439
3162
|
* @return {HTMLElement}
|
3440
3163
|
*/
|
3441
|
-
|
3442
|
-
|
3443
3164
|
function removeCollapsedFromParents(element) {
|
3444
3165
|
if (element.className.indexOf(options.collapsibleClass) !== -1 && element.className.indexOf(options.isCollapsedClass) !== -1) {
|
3445
3166
|
element.className = element.className.split(SPACE_CHAR + options.isCollapsedClass).join('');
|
3446
3167
|
return removeCollapsedFromParents(element.parentNode.parentNode);
|
3447
3168
|
}
|
3448
|
-
|
3449
3169
|
return element;
|
3450
3170
|
}
|
3171
|
+
|
3451
3172
|
/**
|
3452
3173
|
* Disable TOC Animation when a link is clicked.
|
3453
3174
|
* @param {Event} event
|
3454
3175
|
*/
|
3455
|
-
|
3456
|
-
|
3457
3176
|
function disableTocAnimation(event) {
|
3458
3177
|
var target = event.target || event.srcElement;
|
3459
|
-
|
3460
3178
|
if (typeof target.className !== 'string' || target.className.indexOf(options.linkClass) === -1) {
|
3461
3179
|
return;
|
3462
|
-
}
|
3180
|
+
}
|
3181
|
+
// Bind to tocLink clicks to temporarily disable highlighting
|
3463
3182
|
// while smoothScroll is animating.
|
3464
|
-
|
3465
|
-
|
3466
3183
|
currentlyHighlighting = false;
|
3467
3184
|
}
|
3185
|
+
|
3468
3186
|
/**
|
3469
3187
|
* Enable TOC Animation.
|
3470
3188
|
*/
|
3471
|
-
|
3472
|
-
|
3473
3189
|
function enableTocAnimation() {
|
3474
3190
|
currentlyHighlighting = true;
|
3475
3191
|
}
|
3476
|
-
|
3477
3192
|
return {
|
3478
3193
|
enableTocAnimation: enableTocAnimation,
|
3479
3194
|
disableTocAnimation: disableTocAnimation,
|
@@ -3490,13 +3205,11 @@ module.exports = function (options) {
|
|
3490
3205
|
// -----------------------------------------------------------------------------
|
3491
3206
|
// ESLint shimming
|
3492
3207
|
// -----------------------------------------------------------------------------
|
3493
|
-
|
3494
3208
|
/* eslint indent: "off" */
|
3495
|
-
|
3496
3209
|
/* eslint no-undef: "off" */
|
3497
|
-
|
3498
3210
|
/* eslint no-unused-vars: "off" */
|
3499
3211
|
// -----------------------------------------------------------------------------
|
3212
|
+
|
3500
3213
|
module.exports = {
|
3501
3214
|
// Where to render the table of contents.
|
3502
3215
|
tocSelector: '.js-toc',
|
@@ -3601,54 +3314,49 @@ module.exports = {
|
|
3601
3314
|
*
|
3602
3315
|
* @author Tim Scanlin
|
3603
3316
|
*/
|
3317
|
+
|
3604
3318
|
// -----------------------------------------------------------------------------
|
3605
3319
|
// ESLint shimming
|
3606
3320
|
// -----------------------------------------------------------------------------
|
3607
|
-
|
3608
3321
|
/* eslint indent: "off" */
|
3609
|
-
|
3610
3322
|
/* eslint no-undef: "off" */
|
3611
|
-
|
3612
3323
|
/* eslint semi: "off" */
|
3613
3324
|
// -----------------------------------------------------------------------------
|
3325
|
+
|
3614
3326
|
module.exports = function parseContent(options) {
|
3615
3327
|
var reduce = [].reduce;
|
3328
|
+
|
3616
3329
|
/**
|
3617
3330
|
* Get the last item in an array and return a reference to it.
|
3618
3331
|
* @param {Array} array
|
3619
3332
|
* @return {Object}
|
3620
3333
|
*/
|
3621
|
-
|
3622
3334
|
function getLastItem(array) {
|
3623
3335
|
return array[array.length - 1];
|
3624
3336
|
}
|
3337
|
+
|
3625
3338
|
/**
|
3626
3339
|
* Get heading level for a heading dom node.
|
3627
3340
|
* @param {HTMLElement} heading
|
3628
3341
|
* @return {Number}
|
3629
3342
|
*/
|
3630
|
-
|
3631
|
-
|
3632
3343
|
function getHeadingLevel(heading) {
|
3633
3344
|
return +heading.nodeName.split('H').join('');
|
3634
3345
|
}
|
3346
|
+
|
3635
3347
|
/**
|
3636
3348
|
* Get important properties from a heading element and store in a plain object.
|
3637
3349
|
* @param {HTMLElement} heading
|
3638
3350
|
* @return {Object}
|
3639
3351
|
*/
|
3640
|
-
|
3641
|
-
|
3642
3352
|
function getHeadingObject(heading) {
|
3643
3353
|
// each node is processed twice by this method because nestHeadingsArray() and addNode() calls it
|
3644
3354
|
// first time heading is real DOM node element, second time it is obj
|
3645
3355
|
// that is causing problem so I am processing only original DOM node
|
3646
3356
|
if (!(heading instanceof window.HTMLElement)) return heading;
|
3647
|
-
|
3648
3357
|
if (options.ignoreHiddenElements && (!heading.offsetHeight || !heading.offsetParent)) {
|
3649
3358
|
return null;
|
3650
3359
|
}
|
3651
|
-
|
3652
3360
|
var obj = {
|
3653
3361
|
id: heading.id,
|
3654
3362
|
children: [],
|
@@ -3656,25 +3364,21 @@ module.exports = function parseContent(options) {
|
|
3656
3364
|
headingLevel: getHeadingLevel(heading),
|
3657
3365
|
textContent: options.headingLabelCallback ? String(options.headingLabelCallback(heading.textContent)) : heading.textContent.trim()
|
3658
3366
|
};
|
3659
|
-
|
3660
3367
|
if (options.includeHtml) {
|
3661
3368
|
obj.childNodes = heading.childNodes;
|
3662
3369
|
}
|
3663
|
-
|
3664
3370
|
if (options.headingObjectCallback) {
|
3665
3371
|
return options.headingObjectCallback(obj, heading);
|
3666
3372
|
}
|
3667
|
-
|
3668
3373
|
return obj;
|
3669
3374
|
}
|
3375
|
+
|
3670
3376
|
/**
|
3671
3377
|
* Add a node to the nested array.
|
3672
3378
|
* @param {Object} node
|
3673
3379
|
* @param {Array} nest
|
3674
3380
|
* @return {Array}
|
3675
3381
|
*/
|
3676
|
-
|
3677
|
-
|
3678
3382
|
function addNode(node, nest) {
|
3679
3383
|
var obj = getHeadingObject(node);
|
3680
3384
|
var level = obj.headingLevel;
|
@@ -3682,70 +3386,57 @@ module.exports = function parseContent(options) {
|
|
3682
3386
|
var lastItem = getLastItem(array);
|
3683
3387
|
var lastItemLevel = lastItem ? lastItem.headingLevel : 0;
|
3684
3388
|
var counter = level - lastItemLevel;
|
3685
|
-
|
3686
3389
|
while (counter > 0) {
|
3687
3390
|
lastItem = getLastItem(array);
|
3688
|
-
|
3689
3391
|
if (lastItem && lastItem.children !== undefined) {
|
3690
3392
|
array = lastItem.children;
|
3691
3393
|
}
|
3692
|
-
|
3693
3394
|
counter--;
|
3694
3395
|
}
|
3695
|
-
|
3696
3396
|
if (level >= options.collapseDepth) {
|
3697
3397
|
obj.isCollapsed = true;
|
3698
3398
|
}
|
3699
|
-
|
3700
3399
|
array.push(obj);
|
3701
3400
|
return array;
|
3702
3401
|
}
|
3402
|
+
|
3703
3403
|
/**
|
3704
3404
|
* Select headings in content area, exclude any selector in options.ignoreSelector
|
3705
3405
|
* @param {String} contentSelector
|
3706
3406
|
* @param {Array} headingSelector
|
3707
3407
|
* @return {Array}
|
3708
3408
|
*/
|
3709
|
-
|
3710
|
-
|
3711
3409
|
function selectHeadings(contentSelector, headingSelector) {
|
3712
3410
|
var selectors = headingSelector;
|
3713
|
-
|
3714
3411
|
if (options.ignoreSelector) {
|
3715
3412
|
selectors = headingSelector.split(',').map(function mapSelectors(selector) {
|
3716
3413
|
return selector.trim() + ':not(' + options.ignoreSelector + ')';
|
3717
3414
|
});
|
3718
3415
|
}
|
3719
|
-
|
3720
3416
|
try {
|
3721
3417
|
return document.querySelector(contentSelector).querySelectorAll(selectors);
|
3722
3418
|
} catch (e) {
|
3723
3419
|
console.warn('Element not found: ' + contentSelector); // eslint-disable-line
|
3724
|
-
|
3725
3420
|
return null;
|
3726
3421
|
}
|
3727
3422
|
}
|
3423
|
+
|
3728
3424
|
/**
|
3729
3425
|
* Nest headings array into nested arrays with 'children' property.
|
3730
3426
|
* @param {Array} headingsArray
|
3731
3427
|
* @return {Object}
|
3732
3428
|
*/
|
3733
|
-
|
3734
|
-
|
3735
3429
|
function nestHeadingsArray(headingsArray) {
|
3736
3430
|
return reduce.call(headingsArray, function reducer(prev, curr) {
|
3737
3431
|
var currentHeading = getHeadingObject(curr);
|
3738
|
-
|
3739
3432
|
if (currentHeading) {
|
3740
3433
|
addNode(currentHeading, prev.nest);
|
3741
3434
|
}
|
3742
|
-
|
3743
3435
|
return prev;
|
3744
3436
|
}, {
|
3745
3437
|
nest: []
|
3746
3438
|
});
|
3747
3439
|
}
|
3748
|
-
|
3749
3440
|
return {
|
3750
3441
|
nestHeadingsArray: nestHeadingsArray,
|
3751
3442
|
selectHeadings: selectHeadings
|
@@ -3776,38 +3467,34 @@ module.exports = function parseContent(options) {
|
|
3776
3467
|
# For details, https://github.com/tscanlin/tocbot/blob/master/LICENSE
|
3777
3468
|
# -----------------------------------------------------------------------------
|
3778
3469
|
*/
|
3470
|
+
|
3779
3471
|
// -----------------------------------------------------------------------------
|
3780
3472
|
// ESLint shimming
|
3781
3473
|
// -----------------------------------------------------------------------------
|
3782
|
-
|
3783
3474
|
/* eslint no-redeclare: "off" */
|
3784
|
-
|
3785
3475
|
/* eslint no-undef: "off" */
|
3786
|
-
|
3787
3476
|
/* eslint no-empty: "off" */
|
3788
|
-
|
3789
3477
|
/* eslint semi: "off" */
|
3790
3478
|
// -----------------------------------------------------------------------------
|
3791
|
-
|
3792
3479
|
/* globals location, requestAnimationFrame */
|
3793
|
-
exports.initSmoothScrolling = initSmoothScrolling;
|
3794
3480
|
|
3481
|
+
exports.initSmoothScrolling = initSmoothScrolling;
|
3795
3482
|
function initSmoothScrolling(options) {
|
3796
3483
|
if (isCssSmoothSCrollSupported()) {}
|
3797
|
-
|
3798
3484
|
var duration = options.duration;
|
3799
3485
|
var offset = options.offset;
|
3800
3486
|
var pageUrl = location.hash ? stripHash(location.href) : location.href;
|
3801
3487
|
delegatedLinkHijacking();
|
3802
|
-
|
3803
3488
|
function delegatedLinkHijacking() {
|
3804
3489
|
document.body.addEventListener('click', onClick, false);
|
3805
|
-
|
3806
3490
|
function onClick(e) {
|
3807
3491
|
if (!isInPageLink(e.target) || e.target.className.indexOf('no-smooth-scroll') > -1 || e.target.href.charAt(e.target.href.length - 2) === '#' && e.target.href.charAt(e.target.href.length - 1) === '!' || e.target.className.indexOf(options.linkClass) === -1) {
|
3808
3492
|
return;
|
3809
|
-
}
|
3493
|
+
}
|
3494
|
+
|
3495
|
+
// Don't prevent default or hash doesn't change.
|
3810
3496
|
// e.preventDefault()
|
3497
|
+
|
3811
3498
|
// fixing-skip-to-content-links
|
3812
3499
|
// jump(e.target.hash, {
|
3813
3500
|
// duration: duration,
|
@@ -3816,11 +3503,10 @@ function initSmoothScrolling(options) {
|
|
3816
3503
|
// setFocus(e.target.hash)
|
3817
3504
|
// }
|
3818
3505
|
// })
|
3506
|
+
|
3819
3507
|
// jadams, 2021-11-13
|
3820
3508
|
// fixing-skip-to-content-links, done by callback to focus(), seems
|
3821
3509
|
// NOT longer required for current browsers
|
3822
|
-
|
3823
|
-
|
3824
3510
|
jump(e.target.hash, {
|
3825
3511
|
duration: duration,
|
3826
3512
|
offset: offset,
|
@@ -3828,34 +3514,28 @@ function initSmoothScrolling(options) {
|
|
3828
3514
|
});
|
3829
3515
|
}
|
3830
3516
|
}
|
3831
|
-
|
3832
3517
|
function isInPageLink(n) {
|
3833
3518
|
return n.tagName.toLowerCase() === 'a' && (n.hash.length > 0 || n.href.charAt(n.href.length - 1) === '#') && (stripHash(n.href) === pageUrl || stripHash(n.href) + '#' === pageUrl);
|
3834
3519
|
}
|
3835
|
-
|
3836
3520
|
function stripHash(url) {
|
3837
3521
|
return url.slice(0, url.lastIndexOf('#'));
|
3838
3522
|
}
|
3839
|
-
|
3840
3523
|
function isCssSmoothSCrollSupported() {
|
3841
3524
|
return 'scrollBehavior' in document.documentElement.style;
|
3842
|
-
}
|
3843
|
-
// https://www.nczonline.net/blog/2013/01/15/fixing-skip-to-content-links/
|
3844
|
-
|
3525
|
+
}
|
3845
3526
|
|
3527
|
+
// Adapted from:
|
3528
|
+
// https://www.nczonline.net/blog/2013/01/15/fixing-skip-to-content-links/
|
3846
3529
|
function setFocus(hash) {
|
3847
3530
|
var element = document.getElementById(hash.substring(1));
|
3848
|
-
|
3849
3531
|
if (element) {
|
3850
3532
|
if (!/^(?:a|select|input|button|textarea)$/i.test(element.tagName)) {
|
3851
3533
|
element.tabIndex = -1;
|
3852
3534
|
}
|
3853
|
-
|
3854
3535
|
element.focus();
|
3855
3536
|
}
|
3856
3537
|
}
|
3857
3538
|
}
|
3858
|
-
|
3859
3539
|
function jump(target, options) {
|
3860
3540
|
var start = window.pageYOffset;
|
3861
3541
|
var opt = {
|
@@ -3863,10 +3543,10 @@ function jump(target, options) {
|
|
3863
3543
|
offset: options.offset || 0,
|
3864
3544
|
callback: options.callback,
|
3865
3545
|
easing: options.easing || easeInOutQuad
|
3866
|
-
};
|
3546
|
+
};
|
3547
|
+
// This makes ids that start with a number work: ('[id="' + decodeURI(target).split('#').join('') + '"]')
|
3867
3548
|
// DecodeURI for nonASCII hashes, they was encoded, but id was not encoded, it lead to not finding the tgt element by id.
|
3868
3549
|
// And this is for IE: document.body.scrollTop
|
3869
|
-
|
3870
3550
|
var tgt = document.querySelector('[id="' + decodeURI(target).split('#').join('') + '"]');
|
3871
3551
|
var distance = typeof target === 'string' ? opt.offset + (target ? tgt && tgt.getBoundingClientRect().top || 0 // handle non-existent links better.
|
3872
3552
|
: -(document.documentElement.scrollTop || document.body.scrollTop)) : target;
|
@@ -3877,20 +3557,18 @@ function jump(target, options) {
|
|
3877
3557
|
timeStart = time;
|
3878
3558
|
loop(time);
|
3879
3559
|
});
|
3880
|
-
|
3881
3560
|
function loop(time) {
|
3882
3561
|
timeElapsed = time - timeStart;
|
3883
3562
|
window.scrollTo(0, opt.easing(timeElapsed, start, distance, duration));
|
3884
|
-
|
3885
3563
|
if (timeElapsed < duration) {
|
3886
3564
|
requestAnimationFrame(loop);
|
3887
3565
|
} else {
|
3888
3566
|
end();
|
3889
3567
|
}
|
3890
3568
|
}
|
3891
|
-
|
3892
3569
|
function end() {
|
3893
3570
|
// window.scrollTo(0, start + distance)
|
3571
|
+
|
3894
3572
|
// jadams, 2020-07-04: on (some?) mobile devices, the navbar
|
3895
3573
|
// background is NOT switched (always?) correctly on a
|
3896
3574
|
// page RELOAD.
|
@@ -3902,12 +3580,13 @@ function jump(target, options) {
|
|
3902
3580
|
//
|
3903
3581
|
// $(window).scrollTop($(window).scrollTop()+1);
|
3904
3582
|
// $(window).scrollTop($(window).scrollTop()-1);
|
3583
|
+
|
3905
3584
|
if (typeof opt.callback === 'function') {
|
3906
3585
|
opt.callback();
|
3907
3586
|
}
|
3908
|
-
}
|
3909
|
-
|
3587
|
+
}
|
3910
3588
|
|
3589
|
+
// Robert Penner's easeInOutQuad - http://robertpenner.com/easing/
|
3911
3590
|
function easeInOutQuad(t, b, c, d) {
|
3912
3591
|
t /= d / 2;
|
3913
3592
|
if (t < 1) return c / 2 * t * t + b;
|
@@ -3922,7 +3601,6 @@ function jump(target, options) {
|
|
3922
3601
|
/***/ (function(module, exports, __webpack_require__) {
|
3923
3602
|
|
3924
3603
|
var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
|
3925
|
-
|
3926
3604
|
/*
|
3927
3605
|
# -----------------------------------------------------------------------------
|
3928
3606
|
# ~/js/tocbot/tocbot.js
|
@@ -3945,14 +3623,12 @@ var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_
|
|
3945
3623
|
# "eslint:tocbot": "eslint --ignore-path .eslintignore src/tocbot/js"
|
3946
3624
|
# -----------------------------------------------------------------------------
|
3947
3625
|
*/
|
3626
|
+
|
3948
3627
|
// -----------------------------------------------------------------------------
|
3949
3628
|
// ESLint shimming
|
3950
3629
|
// -----------------------------------------------------------------------------
|
3951
|
-
|
3952
3630
|
/* eslint indent: "off" */
|
3953
|
-
|
3954
3631
|
/* eslint no-undef: "off" */
|
3955
|
-
|
3956
3632
|
/* eslint semi: "off" */
|
3957
3633
|
// -----------------------------------------------------------------------------
|
3958
3634
|
|
@@ -3967,6 +3643,7 @@ var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_
|
|
3967
3643
|
*/
|
3968
3644
|
|
3969
3645
|
/* globals define */
|
3646
|
+
|
3970
3647
|
(function (root, factory) {
|
3971
3648
|
if (true) {
|
3972
3649
|
!(__WEBPACK_AMD_DEFINE_ARRAY__ = [], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory(root)),
|
@@ -3975,52 +3652,44 @@ var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_
|
|
3975
3652
|
__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));
|
3976
3653
|
} else {}
|
3977
3654
|
})(typeof __webpack_require__.g !== 'undefined' ? __webpack_require__.g : this.window || this.global, function (root) {
|
3978
|
-
'use strict';
|
3979
|
-
|
3980
|
-
var defaultOptions = __webpack_require__(923); // Object to store current options.
|
3981
|
-
|
3982
|
-
|
3983
|
-
var options = {}; // Object for public APIs.
|
3655
|
+
'use strict';
|
3984
3656
|
|
3657
|
+
// Default options.
|
3658
|
+
var defaultOptions = __webpack_require__(923);
|
3659
|
+
// Object to store current options.
|
3660
|
+
var options = {};
|
3661
|
+
// Object for public APIs.
|
3985
3662
|
var tocbot = {};
|
3986
|
-
|
3987
3663
|
var BuildHtml = __webpack_require__(525);
|
3988
|
-
|
3989
3664
|
var ParseContent = __webpack_require__(407);
|
3990
|
-
|
3991
|
-
|
3992
|
-
|
3993
|
-
|
3665
|
+
var updateTocScroll = __webpack_require__(172);
|
3666
|
+
// Keep these variables at top scope once options are passed in.
|
3994
3667
|
var buildHtml;
|
3995
|
-
var parseContent;
|
3668
|
+
var parseContent;
|
3996
3669
|
|
3670
|
+
// Just return if its not a browser.
|
3997
3671
|
var supports = !!root && !!root.document && !!root.document.querySelector && !!root.addEventListener; // Feature test
|
3998
|
-
|
3999
3672
|
if (typeof window === 'undefined' && !supports) {
|
4000
3673
|
return;
|
4001
3674
|
}
|
3675
|
+
var headingsArray;
|
4002
3676
|
|
4003
|
-
|
4004
|
-
|
3677
|
+
// From: https://github.com/Raynos/xtend
|
4005
3678
|
var hasOwnProperty = Object.prototype.hasOwnProperty;
|
4006
|
-
|
4007
3679
|
function extend() {
|
4008
3680
|
var target = {};
|
4009
|
-
|
4010
3681
|
for (var i = 0; i < arguments.length; i++) {
|
4011
3682
|
var source = arguments[i];
|
4012
|
-
|
4013
3683
|
for (var key in source) {
|
4014
3684
|
if (hasOwnProperty.call(source, key)) {
|
4015
3685
|
target[key] = source[key];
|
4016
3686
|
}
|
4017
3687
|
}
|
4018
3688
|
}
|
4019
|
-
|
4020
3689
|
return target;
|
4021
|
-
}
|
4022
|
-
|
3690
|
+
}
|
4023
3691
|
|
3692
|
+
// From: https://remysharp.com/2010/07/21/throttling-function-calls
|
4024
3693
|
function throttle(fn, threshold, scope) {
|
4025
3694
|
threshold || (threshold = 250);
|
4026
3695
|
var last;
|
@@ -4029,7 +3698,6 @@ var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_
|
|
4029
3698
|
var context = scope || this;
|
4030
3699
|
var now = +new Date();
|
4031
3700
|
var args = arguments;
|
4032
|
-
|
4033
3701
|
if (last && now < last + threshold) {
|
4034
3702
|
// hold on to it
|
4035
3703
|
clearTimeout(deferTimer);
|
@@ -4043,11 +3711,10 @@ var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_
|
|
4043
3711
|
}
|
4044
3712
|
};
|
4045
3713
|
}
|
3714
|
+
|
4046
3715
|
/**
|
4047
3716
|
* Destroy tocbot.
|
4048
3717
|
*/
|
4049
|
-
|
4050
|
-
|
4051
3718
|
tocbot.destroy = function () {
|
4052
3719
|
if (!options.skipRendering) {
|
4053
3720
|
// Clear HTML.
|
@@ -4056,131 +3723,125 @@ var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_
|
|
4056
3723
|
} catch (e) {
|
4057
3724
|
console.warn('Element not found: ' + options.tocSelector); // eslint-disable-line
|
4058
3725
|
}
|
4059
|
-
}
|
4060
|
-
|
3726
|
+
}
|
4061
3727
|
|
3728
|
+
// Remove event listeners.
|
4062
3729
|
if (options.scrollContainer && document.querySelector(options.scrollContainer)) {
|
4063
3730
|
document.querySelector(options.scrollContainer).removeEventListener('scroll', this._scrollListener, false);
|
4064
3731
|
document.querySelector(options.scrollContainer).removeEventListener('resize', this._scrollListener, false);
|
4065
|
-
|
4066
3732
|
if (buildHtml) {
|
4067
3733
|
document.querySelector(options.scrollContainer).removeEventListener('click', this._clickListener, false);
|
4068
3734
|
}
|
4069
3735
|
} else {
|
4070
3736
|
document.removeEventListener('scroll', this._scrollListener, false);
|
4071
3737
|
document.removeEventListener('resize', this._scrollListener, false);
|
4072
|
-
|
4073
3738
|
if (buildHtml) {
|
4074
3739
|
document.removeEventListener('click', this._clickListener, false);
|
4075
3740
|
}
|
4076
3741
|
}
|
4077
3742
|
};
|
3743
|
+
|
4078
3744
|
/**
|
4079
3745
|
* Initialize tocbot.
|
4080
3746
|
* @param {object} customOptions
|
4081
3747
|
*/
|
4082
|
-
|
4083
|
-
|
4084
3748
|
tocbot.init = function (customOptions) {
|
4085
3749
|
// feature test
|
4086
3750
|
if (!supports) {
|
4087
3751
|
return;
|
4088
|
-
}
|
4089
|
-
// Set to options variable at the top.
|
4090
|
-
|
3752
|
+
}
|
4091
3753
|
|
3754
|
+
// Merge defaults with user options.
|
3755
|
+
// Set to options variable at the top.
|
4092
3756
|
options = extend(defaultOptions, customOptions || {});
|
4093
3757
|
this.options = options;
|
4094
|
-
this.state = {};
|
3758
|
+
this.state = {};
|
4095
3759
|
|
3760
|
+
// Init smooth scroll if enabled (default).
|
4096
3761
|
if (options.scrollSmooth) {
|
4097
3762
|
options.duration = options.scrollSmoothDuration;
|
4098
3763
|
options.offset = options.scrollSmoothOffset;
|
4099
3764
|
tocbot.scrollSmooth = (__webpack_require__(968).initSmoothScrolling)(options);
|
4100
|
-
}
|
4101
|
-
|
3765
|
+
}
|
4102
3766
|
|
3767
|
+
// Pass options to these modules.
|
4103
3768
|
buildHtml = BuildHtml(options);
|
4104
|
-
parseContent = ParseContent(options);
|
3769
|
+
parseContent = ParseContent(options);
|
4105
3770
|
|
3771
|
+
// For testing purposes.
|
4106
3772
|
this._buildHtml = buildHtml;
|
4107
|
-
this._parseContent = parseContent;
|
3773
|
+
this._parseContent = parseContent;
|
4108
3774
|
|
4109
|
-
|
4110
|
-
|
4111
|
-
headingsArray = parseContent.selectHeadings(options.contentSelector, options.headingSelector); // Return if no headings are found.
|
3775
|
+
// Destroy it if it exists first.
|
3776
|
+
tocbot.destroy();
|
4112
3777
|
|
3778
|
+
// Get headings array.
|
3779
|
+
headingsArray = parseContent.selectHeadings(options.contentSelector, options.headingSelector);
|
3780
|
+
// Return if no headings are found.
|
4113
3781
|
if (headingsArray === null) {
|
4114
3782
|
return;
|
4115
|
-
}
|
4116
|
-
|
3783
|
+
}
|
4117
3784
|
|
3785
|
+
// Build nested headings array.
|
4118
3786
|
var nestedHeadingsObj = parseContent.nestHeadingsArray(headingsArray);
|
4119
|
-
var nestedHeadings = nestedHeadingsObj.nest;
|
3787
|
+
var nestedHeadings = nestedHeadingsObj.nest;
|
4120
3788
|
|
3789
|
+
// Render.
|
4121
3790
|
if (!options.skipRendering) {
|
4122
3791
|
buildHtml.render(options.tocSelector, nestedHeadings);
|
4123
|
-
}
|
4124
|
-
|
3792
|
+
}
|
4125
3793
|
|
3794
|
+
// Update Sidebar and bind listeners.
|
4126
3795
|
this._scrollListener = throttle(function (e) {
|
4127
3796
|
buildHtml.updateToc(headingsArray);
|
4128
3797
|
!options.disableTocScrollSync && updateTocScroll(options);
|
4129
3798
|
var isTop = e && e.target && e.target.scrollingElement && e.target.scrollingElement.scrollTop === 0;
|
4130
|
-
|
4131
3799
|
if (e && (e.eventPhase === 0 || e.currentTarget === null) || isTop) {
|
4132
3800
|
buildHtml.updateToc(headingsArray);
|
4133
|
-
|
4134
3801
|
if (options.scrollEndCallback) {
|
4135
3802
|
options.scrollEndCallback(e);
|
4136
3803
|
}
|
4137
3804
|
}
|
4138
3805
|
}, options.throttleTimeout);
|
4139
|
-
|
4140
3806
|
this._scrollListener();
|
4141
|
-
|
4142
3807
|
if (options.scrollContainer && document.querySelector(options.scrollContainer)) {
|
4143
3808
|
document.querySelector(options.scrollContainer).addEventListener('scroll', this._scrollListener, false);
|
4144
3809
|
document.querySelector(options.scrollContainer).addEventListener('resize', this._scrollListener, false);
|
4145
3810
|
} else {
|
4146
3811
|
document.addEventListener('scroll', this._scrollListener, false);
|
4147
3812
|
document.addEventListener('resize', this._scrollListener, false);
|
4148
|
-
}
|
4149
|
-
|
3813
|
+
}
|
4150
3814
|
|
3815
|
+
// Bind click listeners to disable animation.
|
4151
3816
|
var timeout = null;
|
4152
3817
|
this._clickListener = throttle(function (event) {
|
4153
3818
|
if (options.scrollSmooth) {
|
4154
3819
|
buildHtml.disableTocAnimation(event);
|
4155
3820
|
}
|
4156
|
-
|
4157
|
-
|
4158
|
-
|
3821
|
+
buildHtml.updateToc(headingsArray);
|
3822
|
+
// Timeout to re-enable the animation.
|
4159
3823
|
timeout && clearTimeout(timeout);
|
4160
3824
|
timeout = setTimeout(function () {
|
4161
3825
|
buildHtml.enableTocAnimation();
|
4162
3826
|
}, options.scrollSmoothDuration);
|
4163
3827
|
}, options.throttleTimeout);
|
4164
|
-
|
4165
3828
|
if (options.scrollContainer && document.querySelector(options.scrollContainer)) {
|
4166
3829
|
document.querySelector(options.scrollContainer).addEventListener('click', this._clickListener, false);
|
4167
3830
|
} else {
|
4168
3831
|
document.addEventListener('click', this._clickListener, false);
|
4169
3832
|
}
|
4170
|
-
|
4171
3833
|
return this;
|
4172
3834
|
};
|
3835
|
+
|
4173
3836
|
/**
|
4174
3837
|
* Refresh tocbot.
|
4175
3838
|
*/
|
4176
|
-
|
4177
|
-
|
4178
3839
|
tocbot.refresh = function (customOptions) {
|
4179
3840
|
tocbot.destroy();
|
4180
3841
|
tocbot.init(customOptions || this.options);
|
4181
|
-
};
|
4182
|
-
|
3842
|
+
};
|
4183
3843
|
|
3844
|
+
// Make tocbot available globally.
|
4184
3845
|
root.tocbot = tocbot;
|
4185
3846
|
return tocbot;
|
4186
3847
|
});
|
@@ -4193,19 +3854,15 @@ var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_
|
|
4193
3854
|
// -----------------------------------------------------------------------------
|
4194
3855
|
// ESLint shimming
|
4195
3856
|
// -----------------------------------------------------------------------------
|
4196
|
-
|
4197
3857
|
/* eslint indent: "off" */
|
4198
|
-
|
4199
3858
|
/* eslint no-undef: "off" */
|
4200
|
-
|
4201
3859
|
/* eslint semi: "off" */
|
4202
3860
|
// -----------------------------------------------------------------------------
|
3861
|
+
|
4203
3862
|
module.exports = function updateTocScroll(options) {
|
4204
3863
|
var toc = document.querySelector(options.tocSelector);
|
4205
|
-
|
4206
3864
|
if (toc && toc.scrollHeight > toc.clientHeight) {
|
4207
3865
|
var activeItem = toc.querySelector('.' + options.activeListItemClass);
|
4208
|
-
|
4209
3866
|
if (activeItem) {
|
4210
3867
|
toc.scrollTop = activeItem.offsetTop;
|
4211
3868
|
}
|
@@ -10117,18 +9774,19 @@ var __webpack_exports__ = {};
|
|
10117
9774
|
#
|
10118
9775
|
# -----------------------------------------------------------------------------
|
10119
9776
|
*/
|
9777
|
+
|
10120
9778
|
// -----------------------------------------------------------------------------
|
10121
9779
|
// ESLint shimming
|
10122
9780
|
// -----------------------------------------------------------------------------
|
10123
|
-
|
10124
9781
|
/* eslint-disable no-unused-vars */
|
10125
|
-
|
10126
9782
|
/* global window */
|
9783
|
+
|
10127
9784
|
// -----------------------------------------------------------------------------
|
10128
9785
|
// Import SASS sources for HMR
|
10129
9786
|
// -----------------------------------------------------------------------------
|
10130
9787
|
// import '../100_template_css/scss/theme_uno/components/_footer.scss';
|
10131
9788
|
// import '../100_template_css/theme_uno.css'; // <-- yes, also require (s)css. This is a Webpack thing
|
9789
|
+
|
10132
9790
|
// Core Libraries - imported|required from NODE|NPM modules
|
10133
9791
|
// -----------------------------------------------------------------------------
|
10134
9792
|
//
|
@@ -10138,6 +9796,7 @@ var __webpack_exports__ = {};
|
|
10138
9796
|
// jQuery
|
10139
9797
|
// Popper ('popper.js/dist/umd/popper', https://github.com/twbs/bootstrap/issues/23381)
|
10140
9798
|
// -----------------------------------------------------------------------------
|
9799
|
+
|
10141
9800
|
// Core Utilities (moved to modules)
|
10142
9801
|
// -----------------------------------------------------------------------------
|
10143
9802
|
// Following objects (native node modules) are *explicitely* forced to be
|
@@ -10147,64 +9806,77 @@ window.Cookies = __webpack_require__(808);
|
|
10147
9806
|
window.yaml = __webpack_require__(320);
|
10148
9807
|
window.log4javascript = __webpack_require__(979);
|
10149
9808
|
window.liteURL = __webpack_require__(578);
|
10150
|
-
window.platform = __webpack_require__(727);
|
9809
|
+
window.platform = __webpack_require__(727);
|
9810
|
+
|
9811
|
+
// Core Libraries - build|required from SOURCE
|
10151
9812
|
// -----------------------------------------------------------------------------
|
9813
|
+
|
10152
9814
|
// Following source objects|modules are *explicitely* forced to be
|
10153
9815
|
// exposed for run-time to the global namespace (window).
|
10154
9816
|
// -----------------------------------------------------------------------------
|
10155
|
-
|
10156
9817
|
window.j1.adapter = __webpack_require__(476);
|
10157
9818
|
window.j1.anime = __webpack_require__(921); // added for fam
|
10158
|
-
|
10159
9819
|
window.j1.core = __webpack_require__(602);
|
10160
9820
|
window.j1.core.navigator = __webpack_require__(490);
|
10161
9821
|
window.j1.core.asciidoctor = __webpack_require__(977);
|
10162
|
-
window.j1.core.scrollSmooth = __webpack_require__(814);
|
9822
|
+
window.j1.core.scrollSmooth = __webpack_require__(814);
|
9823
|
+
|
9824
|
+
// window.deeplTranslator = require('./js/deepl-translator'); // J1 Module deeplAPI used instead
|
10163
9825
|
// window.j1.fam = require('./js/fam/fam.js'); // cannot used until NOT rewritten to jQuery
|
9826
|
+
|
10164
9827
|
// Following source objects|modules are *implicetly* forced to be
|
10165
9828
|
// exposed for run-time to the global namespace (window).
|
10166
9829
|
// -----------------------------------------------------------------------------
|
10167
9830
|
//const Bootstrap = require('./js/bootstrap/bootstrap.js');
|
10168
9831
|
//const J1JekyllSearch = require('./js/jekyll_search/jekyll_search.js');
|
10169
9832
|
//const J1Yaml = require('js-yaml');
|
10170
|
-
|
10171
9833
|
var J1Tocbot = __webpack_require__(799);
|
9834
|
+
var J1AttrChangeListener = __webpack_require__(610);
|
9835
|
+
|
9836
|
+
// const J1jQueryExt = require('./js/jquery-extensions/jquery-regex.js');
|
10172
9837
|
|
10173
|
-
var J1AttrChangeListener = __webpack_require__(610); // const J1jQueryExt = require('./js/jquery-extensions/jquery-regex.js');
|
10174
9838
|
//const J1ThemeSwitcher = require('./js/bs_theme_switcher/switcher.js');
|
10175
9839
|
// const J1MmenuLight = require('./js/mmenu-light/mmenu.js');
|
9840
|
+
|
10176
9841
|
// Passing log data over Internet|SeeMe (currently NOT used)
|
10177
9842
|
// -----------------------------------------------------------------------------
|
10178
9843
|
// window.j1.core.log4javascript = require('./js/logger/client/webhook.js');
|
9844
|
+
|
10179
9845
|
// BMD Libraries (moved to modules)
|
10180
9846
|
// -----------------------------------------------------------------------------
|
10181
9847
|
// window.bootstrapMaterialDesign = require('./js/bmd/js/bmd.js');
|
9848
|
+
|
10182
9849
|
// Github Webhooks (currently NOT used)
|
10183
9850
|
// -----------------------------------------------------------------------------
|
10184
9851
|
// window.j1.core.webhooks = require('./js/webhooks/octokit/client.js');
|
9852
|
+
|
10185
9853
|
// Test|Custom modules (currently NOT used)
|
10186
9854
|
// -----------------------------------------------------------------------------
|
10187
9855
|
// window.j1promiseTest = require('./js/custom/test_promises.js');
|
10188
9856
|
// window.j1Example = require('./js/custom/example_module.js');
|
9857
|
+
|
10189
9858
|
// BS Libraries (moved to modules)
|
10190
9859
|
// -----------------------------------------------------------------------------
|
10191
9860
|
// Following source objects|modules are *implicetly* forced to be
|
10192
9861
|
// exposed for run-time to the global namespace (window).
|
10193
9862
|
// -----------------------------------------------------------------------------
|
10194
9863
|
// const Bootstrap = require('./js/bootstrap/bootstrap.js');
|
9864
|
+
|
10195
9865
|
// const J1JekyllSearch = require('./js/jekyll_search/jekyll_search.js'); // Buffer Kack
|
10196
9866
|
// const J1Tocbot = require('./js/tocbot/tocbot.js');
|
9867
|
+
|
10197
9868
|
// Backstretch (moved to modules)
|
10198
9869
|
// -----------------------------------------------------------------------------
|
10199
9870
|
// Following source objects|modules are *implicetly* forced to be
|
10200
9871
|
// exposed for run-time to the namespace of jQuery ($).
|
10201
9872
|
// -----------------------------------------------------------------------------
|
10202
9873
|
// const J1Attics = require('./js/backstretch/backstretch.js');
|
9874
|
+
|
10203
9875
|
// Additional Vanilla JS helpers
|
10204
9876
|
// -----------------------------------------------------------------------------
|
9877
|
+
var J1AdocResultViewer = __webpack_require__(253);
|
9878
|
+
// const MSIEPolyfills = require('./js/polyfills/ms-ie.js');
|
10205
9879
|
|
10206
|
-
|
10207
|
-
var J1AdocResultViewer = __webpack_require__(253); // const MSIEPolyfills = require('./js/polyfills/ms-ie.js');
|
10208
9880
|
// HMR messages (currently NOT used)
|
10209
9881
|
// -----------------------------------------------------------------------------
|
10210
9882
|
// if (module.hot) {
|
@@ -10233,6 +9905,7 @@ var J1AdocResultViewer = __webpack_require__(253); // const MSIEPolyfills
|
|
10233
9905
|
// console.log(logtext);
|
10234
9906
|
// });
|
10235
9907
|
//}
|
9908
|
+
|
10236
9909
|
// -----------------------------------------------------------------------------
|
10237
9910
|
// END
|
10238
9911
|
})();
|