j1-template 2022.5.3 → 2022.6.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (359) hide show
  1. checksums.yaml +4 -4
  2. data/_includes/themes/j1/layouts/content_generator_news_panel_posts.html +61 -40
  3. data/_includes/themes/j1/layouts/content_generator_page.html +22 -22
  4. data/_includes/themes/j1/layouts/content_generator_post.html +1 -1
  5. data/_includes/themes/j1/layouts/layout_metadata_generator.html +5 -86
  6. data/_includes/themes/j1/{blocks → procedures/blocks}/footer/boxes/about_box.proc +0 -0
  7. data/_includes/themes/j1/{blocks → procedures/blocks}/footer/boxes/contacts_box.proc +0 -0
  8. data/_includes/themes/j1/{blocks → procedures/blocks}/footer/boxes/issue.proc +0 -0
  9. data/_includes/themes/j1/{blocks → procedures/blocks}/footer/boxes/legal_statements.proc +0 -0
  10. data/_includes/themes/j1/{blocks → procedures/blocks}/footer/boxes/links_box.proc +0 -0
  11. data/_includes/themes/j1/{blocks → procedures/blocks}/footer/boxes/news_box.proc +0 -0
  12. data/_includes/themes/j1/{blocks → procedures/blocks}/footer/boxes/social_media_icons.proc +0 -0
  13. data/_includes/themes/j1/procedures/blocks/get_wave.proc +211 -0
  14. data/_includes/themes/j1/procedures/collections/create_collection_article_preview.proc +1 -1
  15. data/_includes/themes/j1/procedures/global/create_word_cloud.proc +1 -1
  16. data/_includes/themes/j1/procedures/posts/collate_timeline.proc +2 -2
  17. data/_includes/themes/j1/procedures/posts/pager.proc +9 -10
  18. data/_layouts/default.html +26 -13
  19. data/apps/private/README.txt +1 -0
  20. data/apps/protected/README.txt +1 -0
  21. data/apps/public/README.txt +1 -0
  22. data/assets/data/banner.html +38 -8
  23. data/assets/data/footer.html +31 -11
  24. data/assets/data/panel.html +118 -27
  25. data/assets/themes/j1/adapter/js/attic.js +4 -4
  26. data/assets/themes/j1/adapter/js/comments.js +18 -7
  27. data/assets/themes/j1/adapter/js/waves.js +227 -0
  28. data/assets/themes/j1/core/css/themes/bootstrap/bootstrap.css +10 -5
  29. data/assets/themes/j1/core/css/themes/bootstrap/bootstrap.min.css +1 -1
  30. data/assets/themes/j1/core/css/themes/theme_vapor/bootstrap.css +10 -5
  31. data/assets/themes/j1/core/css/themes/theme_vapor/bootstrap.min.css +1 -1
  32. data/assets/themes/j1/core/css/themes/unodark/bootstrap.css +23 -69
  33. data/assets/themes/j1/core/css/themes/unodark/bootstrap.min.css +1 -1
  34. data/assets/themes/j1/core/css/themes/unolight/bootstrap.css +323 -129
  35. data/assets/themes/j1/core/css/themes/unolight/bootstrap.min.css +9 -9
  36. data/assets/themes/j1/core/css/vendor.css +11 -8
  37. data/assets/themes/j1/core/css/vendor.min.css +1 -1
  38. data/assets/themes/j1/core/fonts/fontawesome_5/LICENSE.txt +34 -0
  39. data/assets/themes/j1/core/fonts/material_design_icons/LICENSE.txt +97 -0
  40. data/assets/themes/j1/core/fonts/material_design_icons_light/LICENSE.txt +92 -0
  41. data/assets/themes/j1/core/fonts/roboto/LICENSE.txt +11 -0
  42. data/assets/themes/j1/core/js/template.js +419 -746
  43. data/assets/themes/j1/core/js/template.min.js.map +1 -1
  44. data/assets/themes/j1/modules/backstretch/js/backstretch.js +1 -1
  45. data/assets/themes/j1/modules/backstretch/js/backstretch.min.js +1 -1
  46. data/assets/themes/j1/modules/bokeh/LICENSE.txt +28 -0
  47. data/assets/themes/j1/modules/jquery/js/extensions/hasClass.js +17 -0
  48. data/assets/themes/j1/modules/jquery/js/extensions/hasClass.min.js +17 -0
  49. data/assets/themes/j1/modules/jquery/js/extensions/removeClass.js +18 -0
  50. data/assets/themes/j1/modules/jquery/js/extensions/removeClass.min.js +17 -0
  51. data/assets/themes/j1/modules/later/LICENSE.txt +21 -0
  52. data/assets/themes/j1/modules/log4javascript/license.txt +201 -0
  53. data/assets/themes/j1/modules/lunr/stopwords/de.txt +229 -0
  54. data/assets/themes/j1/modules/lunr/stopwords/en.txt +119 -0
  55. data/assets/themes/j1/modules/masterslider/LICENSE.txt +621 -0
  56. data/assets/themes/j1/modules/masterslider/README.txt +531 -0
  57. data/assets/themes/j1/modules/msDropdown/LICENSE.txt +20 -0
  58. data/assets/themes/j1/modules/nbinteract-core/LICENSE.txt +60 -0
  59. data/assets/themes/j1/modules/rouge/css/themes.txt +46 -0
  60. data/assets/themes/j1/modules/vega/LICENSE.txt +27 -0
  61. data/lib/j1/version.rb +1 -1
  62. data/lib/starter_web/Gemfile +20 -17
  63. data/lib/starter_web/README.md +5 -5
  64. data/lib/starter_web/_config.yml +234 -143
  65. data/lib/starter_web/_data/blocks/banner.yml +18 -2
  66. data/lib/starter_web/_data/blocks/defaults/footer.yml +3 -1
  67. data/lib/starter_web/_data/blocks/defaults/panel.yml +4 -0
  68. data/lib/starter_web/_data/blocks/footer.yml +12 -1
  69. data/lib/starter_web/_data/blocks/panel.yml +88 -19
  70. data/lib/starter_web/_data/j1_config.yml +2 -2
  71. data/lib/starter_web/_data/layouts/collection.yml +0 -9
  72. data/lib/starter_web/_data/layouts/home.yml +21 -30
  73. data/lib/starter_web/_data/layouts/news_panel_posts.yml +0 -9
  74. data/lib/starter_web/_data/layouts/page.yml +0 -9
  75. data/lib/starter_web/_data/layouts/post.yml +0 -9
  76. data/lib/starter_web/_data/modules/blog_navigator.yml +6 -0
  77. data/lib/starter_web/_data/modules/defaults/blog_navigator.yml +15 -8
  78. data/lib/starter_web/_data/modules/defaults/cookieconsent.yml +5 -4
  79. data/lib/starter_web/_data/modules/defaults/navigator.yml +1 -1
  80. data/lib/starter_web/_data/modules/defaults/waves.yml +32 -0
  81. data/lib/starter_web/_data/modules/navigator_menu.yml +48 -120
  82. data/lib/starter_web/_data/modules/waves.yml +32 -0
  83. data/lib/starter_web/_data/plugins/defaults/feed.yml +82 -0
  84. data/lib/starter_web/_data/plugins/defaults/seo-tags.yml +65 -0
  85. data/lib/starter_web/_data/plugins/defaults/sitemap.yml +66 -0
  86. data/lib/starter_web/_data/plugins/feed.yml +35 -0
  87. data/lib/starter_web/_data/plugins/seo-tags.yml +30 -0
  88. data/lib/starter_web/_data/plugins/sitemap.yml +30 -0
  89. data/lib/starter_web/_data/resources.yml +22 -0
  90. data/lib/starter_web/_data/templates/feed.xml +191 -0
  91. data/lib/starter_web/_data/templates/robots.txt +1 -0
  92. data/lib/starter_web/_data/templates/seo-tags.html +140 -0
  93. data/lib/starter_web/_data/templates/sitemap.xml +36 -0
  94. data/lib/starter_web/_includes/attributes.asciidoc +49 -47
  95. data/lib/starter_web/_includes/custom/static/bs5_accordion.html +84 -0
  96. data/lib/starter_web/_includes/custom/templates/bs5_accordion.html +103 -0
  97. data/lib/starter_web/_plugins/{asciidoctor-extensions → asciidoctor}/admonition-block-answer.rb +0 -0
  98. data/lib/starter_web/_plugins/{asciidoctor-extensions → asciidoctor}/admonition-block-question.rb +0 -0
  99. data/lib/starter_web/_plugins/{asciidoctor-extensions → asciidoctor}/banner.rb +0 -0
  100. data/lib/starter_web/_plugins/{asciidoctor-extensions → asciidoctor}/callout.rb +0 -0
  101. data/lib/starter_web/_plugins/{asciidoctor-extensions → asciidoctor}/carousel-block.rb +0 -0
  102. data/lib/starter_web/_plugins/{asciidoctor-extensions → asciidoctor}/conum.rb +0 -0
  103. data/lib/starter_web/_plugins/{asciidoctor-extensions → asciidoctor}/fab-icon-inline.rb +0 -0
  104. data/lib/starter_web/_plugins/{asciidoctor-extensions → asciidoctor}/fas-icon-inline.rb +0 -0
  105. data/lib/starter_web/_plugins/{asciidoctor-extensions → asciidoctor}/flag-icon-inline.rb +0 -0
  106. data/lib/starter_web/_plugins/{asciidoctor-extensions → asciidoctor}/gallery-block.rb +0 -0
  107. data/lib/starter_web/_plugins/{asciidoctor-extensions → asciidoctor}/gist-block.rb +0 -0
  108. data/lib/starter_web/_plugins/{asciidoctor-extensions → asciidoctor}/iconify-icon-inline.rb +0 -0
  109. data/lib/starter_web/_plugins/{asciidoctor-extensions → asciidoctor}/lightbox-block.rb +0 -0
  110. data/lib/starter_web/_plugins/{asciidoctor-extensions → asciidoctor}/lorem_inline.rb +0 -0
  111. data/lib/starter_web/_plugins/{asciidoctor-extensions → asciidoctor}/masterslider-block.rb +0 -0
  112. data/lib/starter_web/_plugins/{asciidoctor-extensions → asciidoctor}/mdi-icon-inline.rb +0 -0
  113. data/lib/starter_web/_plugins/{asciidoctor-extensions → asciidoctor}/panel.rb +0 -0
  114. data/lib/starter_web/_plugins/{asciidoctor-extensions → asciidoctor}/range-slider-block.rb +0 -0
  115. data/lib/starter_web/_plugins/{asciidoctor-extensions → asciidoctor}/shout-block.rb +0 -0
  116. data/lib/starter_web/_plugins/{asciidoctor-extensions → asciidoctor}/textbook-block.rb +0 -0
  117. data/lib/starter_web/_plugins/{asciidoctor-extensions → asciidoctor}/twitter-emoji-inline.rb +0 -0
  118. data/lib/starter_web/_plugins/{debug.rb → filter/debug.rb} +0 -0
  119. data/lib/starter_web/_plugins/{encodeBase64.rb → filter/encodeBase64.rb} +0 -0
  120. data/lib/starter_web/_plugins/{encryptAES.rb → filter/encryptAES.rb} +0 -0
  121. data/lib/starter_web/_plugins/{filters.rb → filter/filters.rb} +11 -0
  122. data/lib/starter_web/_plugins/{minifyJS.rb → filter/minifyJS.rb} +0 -0
  123. data/lib/starter_web/_plugins/{minifyJSON.rb → filter/minifyJSON.rb} +0 -0
  124. data/lib/starter_web/_plugins/{prettify.rb → filter/prettify.rb} +0 -0
  125. data/lib/starter_web/_plugins/filter/xml_prettify.rb +36 -0
  126. data/lib/starter_web/_plugins/{symlink_watcher.rb → helper/symlink_watcher.rb} +0 -0
  127. data/lib/starter_web/_plugins/{date-i18n.rb → i18n/date.rb} +1 -1
  128. data/lib/starter_web/_plugins/{lunr_index.rb → index/lunr.rb} +30 -30
  129. data/lib/starter_web/_plugins/seo/j1-feed.rb +268 -0
  130. data/lib/starter_web/_plugins/seo/j1-seo-tags.rb +717 -0
  131. data/lib/starter_web/_plugins/seo/j1-sitemap.rb +140 -0
  132. data/lib/starter_web/assets/images/banner/scalable/wave.svg +13 -0
  133. data/lib/starter_web/assets/images/blocks/waves/scalable/1280x100/wave-1.svg +63 -0
  134. data/lib/starter_web/assets/images/blocks/waves/scalable/1280x100/wave-2.svg +60 -0
  135. data/lib/starter_web/assets/images/blocks/waves/scalable/1280x100/wave-3.svg +64 -0
  136. data/lib/starter_web/assets/images/blocks/waves/scalable/1280x100/wave-4.svg +62 -0
  137. data/lib/starter_web/assets/images/blocks/waves/scalable/1920x100/wave-1.svg +64 -0
  138. data/lib/starter_web/assets/images/blocks/waves/scalable/1920x100/wave-2.svg +60 -0
  139. data/lib/starter_web/assets/images/blocks/waves/scalable/1920x100/wave-3.svg +65 -0
  140. data/lib/starter_web/assets/images/blocks/waves/scalable/1920x100/wave-4.svg +62 -0
  141. data/lib/starter_web/assets/images/collections/blog/featured/dynamic-web-access.png +0 -0
  142. data/lib/starter_web/assets/images/collections/blog/featured/jamstack-generators.png +0 -0
  143. data/lib/starter_web/assets/images/collections/blog/featured/static-web-access.png +0 -0
  144. data/lib/starter_web/assets/images/icons/jekyll/logo-2x.png +0 -0
  145. data/lib/starter_web/assets/images/icons/jekyll/octojekyll.png +0 -0
  146. data/lib/starter_web/assets/images/modules/attics/1280x800/j1-template.png +0 -0
  147. data/lib/starter_web/assets/images/modules/attics/1280x800/jekyll-generator.png +0 -0
  148. data/lib/starter_web/assets/images/modules/attics/1280x800jekyll-generator.jpg +0 -0
  149. data/lib/starter_web/assets/images/modules/attics/1920x1280/{ben-kolde.jpg → _ben-kolde.jpg} +0 -0
  150. data/lib/starter_web/assets/images/modules/attics/1920x1280/_moritz-kindler.jpg +0 -0
  151. data/lib/starter_web/assets/images/modules/attics/1920x1280/alina-grubnyak.jpg +0 -0
  152. data/lib/starter_web/assets/images/modules/attics/1920x1280/andrea-badino.jpg +0 -0
  153. data/lib/starter_web/assets/images/modules/attics/1920x1280/brad-neathery.jpg +0 -0
  154. data/lib/starter_web/assets/images/modules/attics/1920x1280/bruno-figueiredo.jpg +0 -0
  155. data/lib/starter_web/assets/images/modules/attics/1920x1280/fly-d.jpg +0 -0
  156. data/lib/starter_web/assets/images/modules/attics/1920x1280/guillaume-bolduc.jpg +0 -0
  157. data/lib/starter_web/assets/images/modules/attics/1920x1280/melanie-deziel.jpg +0 -0
  158. data/lib/starter_web/assets/images/modules/attics/1920x1280/milad-fakurian.jpg +0 -0
  159. data/lib/starter_web/assets/images/modules/attics/1920x1280/{_nasa.jpg → nasa.jpg} +0 -0
  160. data/lib/starter_web/assets/images/modules/attics/1920x1280/quino-al-2.jpg +0 -0
  161. data/lib/starter_web/assets/images/modules/attics/lunr-1280x800.jpg +0 -0
  162. data/lib/starter_web/assets/images/modules/attics/no-time-1920x1280.jpg +0 -0
  163. data/lib/starter_web/assets/images/modules/attics/{gift-from-hand-1920x1280.jpg → shutterstock_sponsor-1920x1280.jpg} +0 -0
  164. data/lib/starter_web/assets/images/modules/gallery/mega_cities/author.txt +75 -0
  165. data/lib/starter_web/assets/images/pages/egrid/bg.png +0 -0
  166. data/lib/starter_web/assets/images/pages/egrid/black_denim.png +0 -0
  167. data/lib/starter_web/assets/images/pages/egrid/explanation.png +0 -0
  168. data/lib/starter_web/assets/images/pages/egrid/html_markup.png +0 -0
  169. data/lib/starter_web/assets/images/pages/egrid/large/1.jpg +0 -0
  170. data/lib/starter_web/assets/images/pages/egrid/large/10.jpg +0 -0
  171. data/lib/starter_web/assets/images/pages/egrid/large/11.jpg +0 -0
  172. data/lib/starter_web/assets/images/pages/egrid/large/12.jpg +0 -0
  173. data/lib/starter_web/assets/images/pages/egrid/large/13.jpg +0 -0
  174. data/lib/starter_web/assets/images/pages/egrid/large/14.jpg +0 -0
  175. data/lib/starter_web/assets/images/pages/egrid/large/15.jpg +0 -0
  176. data/lib/starter_web/assets/images/pages/egrid/large/16.jpg +0 -0
  177. data/lib/starter_web/assets/images/pages/egrid/large/17.jpg +0 -0
  178. data/lib/starter_web/assets/images/pages/egrid/large/18.jpg +0 -0
  179. data/lib/starter_web/assets/images/pages/egrid/large/19.jpg +0 -0
  180. data/lib/starter_web/assets/images/pages/egrid/large/2.jpg +0 -0
  181. data/lib/starter_web/assets/images/pages/egrid/large/20.jpg +0 -0
  182. data/lib/starter_web/assets/images/pages/egrid/large/3.jpg +0 -0
  183. data/lib/starter_web/assets/images/pages/egrid/large/4.jpg +0 -0
  184. data/lib/starter_web/assets/images/pages/egrid/large/5.jpg +0 -0
  185. data/lib/starter_web/assets/images/pages/egrid/large/6.jpg +0 -0
  186. data/lib/starter_web/assets/images/pages/egrid/large/7.jpg +0 -0
  187. data/lib/starter_web/assets/images/pages/egrid/large/8.jpg +0 -0
  188. data/lib/starter_web/assets/images/pages/egrid/large/9.jpg +0 -0
  189. data/lib/starter_web/assets/images/pages/egrid/loading.gif +0 -0
  190. data/lib/starter_web/assets/images/pages/egrid/loading_dark.gif +0 -0
  191. data/lib/starter_web/assets/images/pages/egrid/nav-icon.png +0 -0
  192. data/lib/starter_web/assets/images/pages/egrid/nav.png +0 -0
  193. data/lib/starter_web/assets/images/pages/egrid/small/1.jpg +0 -0
  194. data/lib/starter_web/assets/images/pages/egrid/small/10.jpg +0 -0
  195. data/lib/starter_web/assets/images/pages/egrid/small/11.jpg +0 -0
  196. data/lib/starter_web/assets/images/pages/egrid/small/12.jpg +0 -0
  197. data/lib/starter_web/assets/images/pages/egrid/small/13.jpg +0 -0
  198. data/lib/starter_web/assets/images/pages/egrid/small/14.jpg +0 -0
  199. data/lib/starter_web/assets/images/pages/egrid/small/15.jpg +0 -0
  200. data/lib/starter_web/assets/images/pages/egrid/small/16.jpg +0 -0
  201. data/lib/starter_web/assets/images/pages/egrid/small/17.jpg +0 -0
  202. data/lib/starter_web/assets/images/pages/egrid/small/18.jpg +0 -0
  203. data/lib/starter_web/assets/images/pages/egrid/small/19.jpg +0 -0
  204. data/lib/starter_web/assets/images/pages/egrid/small/1a.jpg +0 -0
  205. data/lib/starter_web/assets/images/pages/egrid/small/2.jpg +0 -0
  206. data/lib/starter_web/assets/images/pages/egrid/small/20.jpg +0 -0
  207. data/lib/starter_web/assets/images/pages/egrid/small/3.jpg +0 -0
  208. data/lib/starter_web/assets/images/pages/egrid/small/4.jpg +0 -0
  209. data/lib/starter_web/assets/images/pages/egrid/small/5.jpg +0 -0
  210. data/lib/starter_web/assets/images/pages/egrid/small/6.jpg +0 -0
  211. data/lib/starter_web/assets/images/pages/egrid/small/7.jpg +0 -0
  212. data/lib/starter_web/assets/images/pages/egrid/small/8.jpg +0 -0
  213. data/lib/starter_web/assets/images/pages/egrid/small/9.jpg +0 -0
  214. data/lib/starter_web/assets/images/pages/roundtrip/500_themes/themes-menu-1280x800.jpg +0 -0
  215. data/lib/starter_web/assets/images/promo/home/screenshot.jpg +0 -0
  216. data/lib/starter_web/assets/images/promo/jekyll/jekyll-generator.png +0 -0
  217. data/lib/starter_web/assets/images/promo/jekyll/jekyll-og.png +0 -0
  218. data/lib/starter_web/collections/asciidoc_skeletons/simple-post/_posts/yyyy-mm-dd-your-post-name.asciidoc +13 -10
  219. data/lib/starter_web/collections/posts/public/featured/_posts/0000-00-00-welcome-to-j1.adoc.erb +8 -3
  220. data/lib/starter_web/collections/posts/public/featured/_posts/2021-01-01-about-cookies.adoc +11 -6
  221. data/lib/starter_web/collections/posts/public/featured/_posts/2021-02-01-site-generators.adoc +13 -10
  222. data/lib/starter_web/collections/posts/public/featured/_posts/2022-02-01-about-j1.adoc +12 -9
  223. data/lib/starter_web/collections/posts/public/featured/_posts/_includes/attributes.asciidoc +2 -2
  224. data/lib/starter_web/collections/posts/public/series/_posts/2020-01-01-post-wiki-series.adoc +13 -5
  225. data/lib/starter_web/collections/posts/public/series/_posts/2020-01-02-post-wiki-series.adoc +13 -6
  226. data/lib/starter_web/collections/posts/public/series/_posts/2020-01-03-post-wiki-series.adoc +13 -6
  227. data/lib/starter_web/index.html +91 -46
  228. data/lib/starter_web/package.json +1 -1
  229. data/lib/starter_web/pages/public/about/features.adoc +30 -27
  230. data/lib/starter_web/pages/public/about/reporting_issues.adoc +13 -11
  231. data/lib/starter_web/pages/public/about/site.adoc +2 -6
  232. data/lib/starter_web/pages/public/asciidoc_skeletons/documentation/000_intro.adoc +8 -10
  233. data/lib/starter_web/pages/public/asciidoc_skeletons/documentation/100_converter.adoc +8 -12
  234. data/lib/starter_web/pages/public/asciidoc_skeletons/documentation/200_themes.adoc +8 -11
  235. data/lib/starter_web/pages/public/asciidoc_skeletons/documentation/documentation.adoc +9 -8
  236. data/lib/starter_web/pages/public/asciidoc_skeletons/multi-document/multi.adoc +9 -14
  237. data/lib/starter_web/pages/public/asciidoc_skeletons/simple-document/simple.adoc +9 -14
  238. data/lib/starter_web/pages/public/blog/navigator/{archive.html → archive/allview.html} +53 -26
  239. data/lib/starter_web/pages/public/blog/navigator/archive/categoryview.html +45 -20
  240. data/lib/starter_web/pages/public/blog/navigator/archive/dateview.html +49 -19
  241. data/lib/starter_web/pages/public/blog/navigator/archive/tagview.html +57 -53
  242. data/lib/starter_web/pages/public/blog/navigator/index.html +212 -35
  243. data/lib/starter_web/pages/public/features/general.adoc +12 -30
  244. data/lib/starter_web/pages/public/features/template.adoc +9 -33
  245. data/lib/starter_web/pages/public/learn/quickstart.adoc +10 -8
  246. data/lib/starter_web/pages/public/learn/roundtrip/_includes/attributes.asciidoc +0 -7
  247. data/lib/starter_web/pages/public/learn/roundtrip/_includes/documents/410_table_bs_modal_examples.asciidoc +2 -2
  248. data/lib/starter_web/pages/public/learn/roundtrip/_includes/documents/themes_bootstrap.asciidoc +51 -0
  249. data/lib/starter_web/pages/public/learn/roundtrip/_includes/documents/themes_rouge.asciidoc +110 -0
  250. data/lib/starter_web/pages/public/learn/roundtrip/asciidoc_extensions.adoc +11 -9
  251. data/lib/starter_web/pages/public/learn/roundtrip/bootstrap_themes.adoc +80 -0
  252. data/lib/starter_web/pages/public/learn/roundtrip/icon_fonts.adoc +9 -7
  253. data/lib/starter_web/pages/public/learn/roundtrip/{quicksearch.adoc → lunr_search.adoc} +23 -18
  254. data/lib/starter_web/pages/public/learn/roundtrip/{bs_modals_extentions.adoc → modal_extentions.adoc} +23 -24
  255. data/lib/starter_web/pages/public/learn/roundtrip/present_images.adoc +12 -11
  256. data/lib/starter_web/pages/public/learn/roundtrip/present_videos.adoc +14 -10
  257. data/lib/starter_web/pages/public/learn/roundtrip/{responsive_tables_extensions.adoc → responsive_tables.adoc} +16 -13
  258. data/lib/starter_web/pages/public/learn/roundtrip/{typography.adoc → template_typography.adoc} +8 -7
  259. data/lib/starter_web/pages/public/learn/where_to_go.adoc +12 -29
  260. data/lib/starter_web/pages/public/legal/de/100_copyright.adoc +1 -1
  261. data/lib/starter_web/pages/public/legal/de/100_impress.adoc +1 -1
  262. data/lib/starter_web/pages/public/legal/de/300_privacy.adoc +1 -1
  263. data/lib/starter_web/pages/public/legal/de/400_comment_policy.adoc +3 -1
  264. data/lib/starter_web/pages/public/legal/en/100_copyright.adoc +7 -5
  265. data/lib/starter_web/pages/public/legal/en/200_impress.adoc +7 -5
  266. data/lib/starter_web/pages/public/legal/en/300_privacy.adoc +7 -5
  267. data/lib/starter_web/pages/public/legal/en/400_comment_policy.adoc +9 -5
  268. data/lib/starter_web/pages/public/panels/intro_panel/panel.adoc +11 -10
  269. data/lib/starter_web/pages/public/plans/plans.adoc +7 -4
  270. data/lib/starter_web/pages/public/previewer/preview_bootstrap_theme.adoc +15 -38
  271. data/lib/starter_web/utilsrv/_defaults/package.json +1 -1
  272. data/lib/starter_web/utilsrv/package.json +1 -1
  273. metadata +172 -134
  274. data/_includes/themes/j1/blocks/footer/generator.html +0 -151
  275. data/_includes/themes/j1/layouts/content_generator_app.html +0 -32
  276. data/_includes/themes/j1/layouts/content_generator_article_navigator.html +0 -176
  277. data/_includes/themes/j1/layouts/content_generator_blog_archive.html +0 -251
  278. data/_layouts/app.html +0 -65
  279. data/_layouts/article_navigator.html +0 -66
  280. data/_layouts/blog_archive.html +0 -64
  281. data/assets/data/article_navigator/index.html +0 -51
  282. data/lib/starter_web/_data/layouts/app.yml +0 -172
  283. data/lib/starter_web/_data/layouts/article_navigator.yml +0 -173
  284. data/lib/starter_web/_data/layouts/blog_archive.yml +0 -191
  285. data/lib/starter_web/_includes/custom/static/custom_teaser.html +0 -64
  286. data/lib/starter_web/assets/images/banner/scalable/readme +0 -0
  287. data/lib/starter_web/assets/images/collections/blog/featured/dynamic-web-access.jpg +0 -0
  288. data/lib/starter_web/assets/images/collections/blog/featured/jamstack-generators-2.jpg +0 -0
  289. data/lib/starter_web/assets/images/collections/blog/featured/markus-spiske-2.jpg +0 -0
  290. data/lib/starter_web/assets/images/collections/blog/featured/static-web-access.jpg +0 -0
  291. data/lib/starter_web/assets/images/collections/blog/featured/welcome-to-j1-template.jpg +0 -0
  292. data/lib/starter_web/assets/images/collections/blog/featured/what-is-a-baseurl.jpg +0 -0
  293. data/lib/starter_web/assets/images/collections/blog/series/j1_using_docker/j1_docker_banner.1280x500.png +0 -0
  294. data/lib/starter_web/assets/images/collections/blog/series/j1_using_docker/kinematic_alpha.1280x600.png +0 -0
  295. data/lib/starter_web/assets/images/collections/blog/series/j1_using_docker/kinematic_j1.1280x300.png +0 -0
  296. data/lib/starter_web/assets/images/collections/blog/series/j1_using_docker/windows_docker_banner.1280x500.png +0 -0
  297. data/lib/starter_web/assets/images/modules/attics/1920x1280/braden-collum.jpg +0 -0
  298. data/lib/starter_web/assets/images/modules/attics/1920x1280/firmbee-com.jpg +0 -0
  299. data/lib/starter_web/assets/images/modules/attics/1920x1280/moritz-kindler.jpg +0 -0
  300. data/lib/starter_web/assets/images/modules/attics/1920x1280/spacex.jpg +0 -0
  301. data/lib/starter_web/assets/videos/gallery/dailymotion/meditation.jpg +0 -0
  302. data/lib/starter_web/assets/videos/gallery/dailymotion/pilates.jpg +0 -0
  303. data/lib/starter_web/assets/videos/gallery/html5/video1.mp4 +0 -0
  304. data/lib/starter_web/assets/videos/gallery/html5/video2.mp4 +0 -0
  305. data/lib/starter_web/assets/videos/gallery/kick-it-old-school-poster.jpg +0 -0
  306. data/lib/starter_web/assets/videos/gallery/nye-party-shop-poster.jpg +0 -0
  307. data/lib/starter_web/assets/videos/gallery/stay-colorful-poster.jpg +0 -0
  308. data/lib/starter_web/assets/videos/gallery/video1-poster.jpg +0 -0
  309. data/lib/starter_web/assets/videos/gallery/video1-thumb.jpg +0 -0
  310. data/lib/starter_web/assets/videos/gallery/video2-poster.jpg +0 -0
  311. data/lib/starter_web/assets/videos/gallery/video2-thumb.jpg +0 -0
  312. data/lib/starter_web/assets/videos/gallery/video_adele-poster.jpg +0 -0
  313. data/lib/starter_web/assets/videos/gallery/video_gaga-poster.jpg +0 -0
  314. data/lib/starter_web/assets/videos/gallery/video_gwen-poster.jpg +0 -0
  315. data/lib/starter_web/assets/videos/gallery/video_michelle-poster.jpg +0 -0
  316. data/lib/starter_web/assets/videos/gallery/vk/hai.jpg +0 -0
  317. data/lib/starter_web/assets/videos/gallery/vk/otter.jpg +0 -0
  318. data/lib/starter_web/assets/videos/gallery/voice_kids_de_2021/battle.jpg +0 -0
  319. data/lib/starter_web/assets/videos/gallery/voice_kids_de_2021/ben.jpg +0 -0
  320. data/lib/starter_web/assets/videos/gallery/voice_kids_de_2021/constance.jpg +0 -0
  321. data/lib/starter_web/assets/videos/gallery/voice_kids_de_2021/elisa.jpg +0 -0
  322. data/lib/starter_web/assets/videos/headers/present_videos/still/underground-broadway.jpg +0 -0
  323. data/lib/starter_web/assets/videos/headers/present_videos/underground-broadway.mp4 +0 -0
  324. data/lib/starter_web/assets/videos/tiktok/einhorn.jpg +0 -0
  325. data/lib/starter_web/assets/videos/tiktok/waluschka.jpg +0 -0
  326. data/lib/starter_web/pages/public/jupyter/examples/distributed/j1-circular-times-table.adoc +0 -142
  327. data/lib/starter_web/pages/public/jupyter/examples/distributed/j1-common-used-widgets.adoc +0 -232
  328. data/lib/starter_web/pages/public/jupyter/examples/distributed/j1-odes-in-python.adoc +0 -115
  329. data/lib/starter_web/pages/public/jupyter/examples/localized/j1_climate-change-forecast.adoc +0 -109
  330. data/lib/starter_web/pages/public/jupyter/notebooks/j1/j1_circular_times_table.ipynb +0 -12382
  331. data/lib/starter_web/pages/public/jupyter/notebooks/j1/j1_climate_change_forecast.ipynb +0 -1058
  332. data/lib/starter_web/pages/public/jupyter/notebooks/j1/j1_docs_example_dynamic.ipynb +0 -14478
  333. data/lib/starter_web/pages/public/jupyter/notebooks/j1/j1_interactive_widgets.ipynb +0 -442
  334. data/lib/starter_web/pages/public/jupyter/notebooks/j1/j1_nbi_widgets.ipynb +0 -523
  335. data/lib/starter_web/pages/public/jupyter/notebooks/j1/j1_nbi_widgets_bar_chart.ipynb +0 -89
  336. data/lib/starter_web/pages/public/jupyter/notebooks/j1/j1_nbi_widgets_hist_chart.ipynb +0 -87
  337. data/lib/starter_web/pages/public/jupyter/notebooks/j1/j1_nbi_widgets_line_chart.ipynb +0 -90
  338. data/lib/starter_web/pages/public/jupyter/notebooks/j1/j1_nbi_widgets_question_multiple_choice.ipynb +0 -64
  339. data/lib/starter_web/pages/public/jupyter/notebooks/j1/j1_nbi_widgets_question_short_answer.ipynb +0 -122
  340. data/lib/starter_web/pages/public/jupyter/notebooks/j1/j1_nbi_widgets_scatter_chart.ipynb +0 -89
  341. data/lib/starter_web/pages/public/jupyter/notebooks/j1/j1_nbi_widgets_scatter_drag_chart.ipynb +0 -87
  342. data/lib/starter_web/pages/public/jupyter/notebooks/j1/j1_odes_in_python.ipynb +0 -15227
  343. data/lib/starter_web/pages/public/jupyter/notebooks/textbooks/j1_circular_times_table.html +0 -747
  344. data/lib/starter_web/pages/public/jupyter/notebooks/textbooks/j1_climate_change_forecast.html +0 -1250
  345. data/lib/starter_web/pages/public/jupyter/notebooks/textbooks/j1_docs_example_dynamic.html +0 -186
  346. data/lib/starter_web/pages/public/jupyter/notebooks/textbooks/j1_interactive_widgets.html +0 -512
  347. data/lib/starter_web/pages/public/jupyter/notebooks/textbooks/j1_nbi_widgets.html +0 -629
  348. data/lib/starter_web/pages/public/jupyter/notebooks/textbooks/j1_nbi_widgets_bar_chart.html +0 -95
  349. data/lib/starter_web/pages/public/jupyter/notebooks/textbooks/j1_nbi_widgets_hist_chart.html +0 -93
  350. data/lib/starter_web/pages/public/jupyter/notebooks/textbooks/j1_nbi_widgets_line_chart.html +0 -96
  351. data/lib/starter_web/pages/public/jupyter/notebooks/textbooks/j1_nbi_widgets_question_multiple_choice.html +0 -70
  352. data/lib/starter_web/pages/public/jupyter/notebooks/textbooks/j1_nbi_widgets_question_short_answer.html +0 -156
  353. data/lib/starter_web/pages/public/jupyter/notebooks/textbooks/j1_nbi_widgets_scatter_chart.html +0 -95
  354. data/lib/starter_web/pages/public/jupyter/notebooks/textbooks/j1_nbi_widgets_scatter_drag_chart.html +0 -93
  355. data/lib/starter_web/pages/public/jupyter/notebooks/textbooks/j1_odes_in_python.html +0 -955
  356. data/lib/starter_web/pages/public/jupyter/where_to_go.adoc +0 -232
  357. data/lib/starter_web/pages/public/learn/roundtrip/_includes/google-ad.js +0 -130
  358. data/lib/starter_web/pages/public/learn/roundtrip/themes.adoc +0 -253
  359. 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(); // jadams: Improve auto-hide functionality for the results block
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']; // Caching
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
- }; // Utils
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
- }; // Easings
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
- } // Spring solver inspired by Webkit Copyright © 2016 Apple Inc. All rights reserved. https://webkit.org/demos/spring/spring.js
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
- } // Basic steps easing implementation https://developer.mozilla.org/fr/docs/Web/CSS/transition-timing-function
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
- } // BezierEasing https://github.com/gre/bezier-easing
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
- currentT,
322
- i = 0;
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
- b = 4;
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
- } // Strings
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
- } // Arrays
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
- } // Objects
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
- } // Colors
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
- } // Units
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
- } // Values
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
- } // getTotalLength() equivalent for circle, rect, polyline, polygon and line shapes
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
- } // Path animation
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
- } // Motion path
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
- } // Decompose value
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
- } // Animatables
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
- } // Properties
892
+ }
1020
893
 
894
+ // Properties
1021
895
 
1022
896
  function normalizePropertyTweens(prop, tweenSettings) {
1023
- var settings = cloneObject(tweenSettings); // Override duration if easing is a spring
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
- }; // Default delay value should only be applied to the first tween
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
- } // Default endDelay value should only be applied to the last tween
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
- } // Tweens
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
- } // Tween progress
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
- }; // Set Value helper
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
- } // Animations
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
- } // Create Instance
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
- } // Core
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
- } // Public Instance
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
- lastTime = 0,
1363
- now = 0;
1200
+ lastTime = 0,
1201
+ now = 0;
1364
1202
  var children,
1365
- childrenLength = 0;
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]; // Only check for keyframes if there is more than one tween
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
- } // Manual Array.reduce for better performances
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
- }; // Set Value helper
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
- } // Remove targets from animation
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
- } // Stagger helpers
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
- } // Timeline
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 = ''; // If the colist does not have a <colgroup> structure
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
- }); // $('.form-clear').on('click', function() {
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
- } //initialize Mutation Observer
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
- }; //backward compatibility
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; //get new value if trackValues is true
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; //to set the attr old value
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
- hasChanges = false; // attrName: { oldValue: xxx, newValue: yyy}
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
- hasChanges = false; // attrName: { oldValue: xxx, newValue: yyy}
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; // jadams: unused code (for now).: manages HTML5 server side events
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
- }); // bind click event to all HTML elements of class '.badge-tag' (j1)
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
- }); // jadams: test code for jQuery plugin 'regex'
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'); //Create array of all posts in lists
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
- }); // Split the array at this point. The original array is altered.
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
- }; // Generate HTML for first list
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'); // Generate HTML for second list
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'); // Wrap navigation menu
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>'); // Selection Class
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
- megaMenu = $('ul.megamenu-content', this);
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'); // disable scrolling (mobile)
2721
-
2459
+ $('body').addClass('stop-scrolling');
2460
+ // disable scrolling (mobile)
2722
2461
  $('body').bind('touchmove', function (e) {
2723
2462
  e.preventDefault();
2724
- }); // disable navbar
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'); // enable scrolling (mobile)
2730
-
2731
- $('body').unbind('touchmove'); // enable navbar
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); // enable scrolling (desktop)
2747
-
2748
- $('body').removeClass('stop-scrolling'); // enable scrolling (mobile)
2749
-
2750
- $('body').unbind('touchmove'); // enable navbar
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; // BS4 @media MAX breakpoints
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'); // Show QuicklinksBar
2608
+ $(menuSelector).removeClass('show');
2881
2609
 
2882
- $(quicklinksSelector).addClass('show'); // -----------------------------------------------------------------------
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(); // jadams, 2021-03-05: manage dropdown menus
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
- }); // limit the dropdown menu lenght if needed
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'); // limit LAST menu ONLY
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
- }); // jadams, 2021-03-06: Enable|Show Desktop Menu|s
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'); // Open Desktop Menu|s on hover
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'); // $('a.dropdown-toggle', this).on('click', function (e) {
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'); // Create a timeout object to delay the dropdown menus to 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); // Clear the timeout object for dropdown menus 'open'
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
- windowWidth = $(window).width();
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); // e.stopPropagation(); // don't bubble up the event
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); //e.stopPropagation(); // don't bubble up the event
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
- navSticky = $getNav.hasClass('navbar-sticky');
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); // Windown on scroll
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; // json_message = JSON.stringify(user_data, undefined, 2); // multiline
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); // Replace Macro placeholders to values
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'); // indicator|check currently NOT used
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; // var pageUrl = options.location.hash
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
- }; // calculate the tgt (HTML heading element including the hash)
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
- } // Robert Penner's easeInOutQuad - http://robertpenner.com/easing/
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); // Return if no parent is found.
2976
+ var parent = document.querySelector(selector);
3238
2977
 
2978
+ // Return if no parent is found.
3239
2979
  if (parent === null) {
3240
2980
  return;
3241
- } // Remove existing child if it exists.
3242
-
2981
+ }
3243
2982
 
2983
+ // Remove existing child if it exists.
3244
2984
  if (parent.firstChild) {
3245
2985
  parent.removeChild(parent.firstChild);
3246
- } // Just return the parent and don't append the list if no links are found.
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
- } // Append the Elements that have been created
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
- } // Add fixed class at offset
3370
-
3092
+ }
3371
3093
 
3094
+ // Add fixed class at offset
3372
3095
  if (options.positionFixedSelector) {
3373
3096
  updateFixedSidebarClass();
3374
- } // Get the most TOP heading currently visible on the page to
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; // Using some instead of each so that we can escape early
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
- }); // Remove the active class from the other tocLinks.
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
- }); // Add the active class to the active tocLink.
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
- var tocLists = document.querySelector(options.tocSelector).querySelectorAll('.' + options.listClass + '.' + options.collapsibleClass); // Collapse the other collapsible lists.
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
- }); // Expand the active link's collapsible list and its sibling if applicable.
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
- } // Bind to tocLink clicks to temporarily disable highlighting
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
- } // Don't prevent default or hash doesn't change.
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
- } // Adapted from:
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
- }; // This makes ids that start with a number work: ('[id="' + decodeURI(target).split('#').join('') + '"]')
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
- } // Robert Penner's easeInOutQuad - http://robertpenner.com/easing/
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'; // Default options.
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
- var updateTocScroll = __webpack_require__(172); // Keep these variables at top scope once options are passed in.
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; // Just return if its not a browser.
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
- var headingsArray; // From: https://github.com/Raynos/xtend
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
- } // From: https://remysharp.com/2010/07/21/throttling-function-calls
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
- } // Remove event listeners.
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
- } // Merge defaults with user options.
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 = {}; // Init smooth scroll if enabled (default).
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
- } // Pass options to these modules.
4101
-
3765
+ }
4102
3766
 
3767
+ // Pass options to these modules.
4103
3768
  buildHtml = BuildHtml(options);
4104
- parseContent = ParseContent(options); // For testing purposes.
3769
+ parseContent = ParseContent(options);
4105
3770
 
3771
+ // For testing purposes.
4106
3772
  this._buildHtml = buildHtml;
4107
- this._parseContent = parseContent; // Destroy it if it exists first.
3773
+ this._parseContent = parseContent;
4108
3774
 
4109
- tocbot.destroy(); // Get headings array.
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
- } // Build nested headings array.
4116
-
3783
+ }
4117
3784
 
3785
+ // Build nested headings array.
4118
3786
  var nestedHeadingsObj = parseContent.nestHeadingsArray(headingsArray);
4119
- var nestedHeadings = nestedHeadingsObj.nest; // Render.
3787
+ var nestedHeadings = nestedHeadingsObj.nest;
4120
3788
 
3789
+ // Render.
4121
3790
  if (!options.skipRendering) {
4122
3791
  buildHtml.render(options.tocSelector, nestedHeadings);
4123
- } // Update Sidebar and bind listeners.
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
- } // Bind click listeners to disable animation.
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
- buildHtml.updateToc(headingsArray); // Timeout to re-enable the animation.
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
- }; // Make tocbot available globally.
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); // Core Libraries - build|required from SOURCE
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); // window.deeplTranslator = require('./js/deepl-translator'); // J1 Module deeplAPI used instead
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
  })();