j1-template 2022.4.7 → 2022.4.10

Sign up to get free protection for your applications and to get access to all the features.
Files changed (285) hide show
  1. checksums.yaml +4 -4
  2. data/_includes/themes/j1/blocks/footer/boxes/contacts_box.proc +3 -3
  3. data/_includes/themes/j1/blocks/footer/boxes/legal_statements.proc +7 -7
  4. data/_includes/themes/j1/blocks/footer/boxes/links_box.proc +1 -1
  5. data/_includes/themes/j1/blocks/footer/boxes/news_box.proc +1 -1
  6. data/_includes/themes/j1/modules/attics/generator.html +7 -7
  7. data/_includes/themes/j1/modules/navigator/generator.html +30 -30
  8. data/_includes/themes/j1/procedures/global/create_bs_button.proc +1 -1
  9. data/_includes/themes/j1/procedures/posts/collate_timeline.proc +1 -1
  10. data/assets/data/authclient.html +16 -14
  11. data/assets/data/banner.html +6 -2
  12. data/assets/data/carousel.json +10 -0
  13. data/assets/data/cookieconsent.html +3 -1
  14. data/assets/data/fab.html +27 -12
  15. data/assets/data/footer.html +10 -10
  16. data/assets/data/galleries.json +7 -0
  17. data/assets/data/gallery_customizer.html +13 -10
  18. data/assets/data/iso-639-language-codes-flags.json +9 -0
  19. data/assets/data/iso-639-language-codes.json +9 -0
  20. data/assets/data/j1_config.json +8 -2
  21. data/assets/data/masterslider.html +342 -0
  22. data/assets/data/mdi_icons.json +5 -0
  23. data/assets/data/mdil_icons.json +5 -0
  24. data/assets/data/menu.html +56 -53
  25. data/assets/data/mmenu.html +44 -40
  26. data/assets/data/mmenu_sidebar.html +15 -13
  27. data/assets/data/mmenu_toc.html +11 -8
  28. data/assets/data/nbinteract.html +3 -2
  29. data/assets/data/panel.html +16 -14
  30. data/assets/data/private.json +2 -2
  31. data/assets/data/quicklinks.html +11 -9
  32. data/assets/data/rtext_resizer.html +11 -7
  33. data/assets/data/themes.bootswatch.json +4 -0
  34. data/assets/data/themes.json +4 -0
  35. data/assets/data/translator.html +3 -1
  36. data/assets/data/twa_v1.json +6 -0
  37. data/assets/themes/j1/adapter/js/advertising.js +2 -0
  38. data/assets/themes/j1/adapter/js/algolia.js +3 -1
  39. data/assets/themes/j1/adapter/js/analytics.js +2 -0
  40. data/assets/themes/j1/adapter/js/asciidoctor.js +16 -0
  41. data/assets/themes/j1/adapter/js/attic.js +5 -4
  42. data/assets/themes/j1/adapter/js/bmd.js +16 -0
  43. data/assets/themes/j1/adapter/js/carousel.js +8 -7
  44. data/assets/themes/j1/adapter/js/clipboard.js +2 -1
  45. data/assets/themes/j1/adapter/js/comments.js +2 -0
  46. data/assets/themes/j1/adapter/js/cookieConsent.js +3 -1
  47. data/assets/themes/j1/adapter/js/customFunctions.js +3 -1
  48. data/assets/themes/j1/adapter/js/customModule.js +5 -3
  49. data/assets/themes/j1/adapter/js/dropdowns.js +3 -1
  50. data/assets/themes/j1/adapter/js/fab.js +3 -1
  51. data/assets/themes/j1/adapter/js/framer.js +3 -1
  52. data/assets/themes/j1/adapter/js/j1.js +25 -19
  53. data/assets/themes/j1/adapter/js/justifiedGallery.js +3 -1
  54. data/assets/themes/j1/adapter/js/justifiedGalleryCustomizer.js +2 -0
  55. data/assets/themes/j1/adapter/js/lightbox.js +3 -1
  56. data/assets/themes/j1/adapter/js/logger.js +2 -0
  57. data/assets/themes/j1/adapter/js/lunr.js +2 -0
  58. data/assets/themes/j1/adapter/js/masterslider.js +529 -0
  59. data/assets/themes/j1/adapter/js/mmenu.js +2 -0
  60. data/assets/themes/j1/adapter/js/navigator.js +716 -72
  61. data/assets/themes/j1/adapter/js/nbinteract.js +10 -8
  62. data/assets/themes/j1/adapter/js/rangeSlider.js +3 -1
  63. data/assets/themes/j1/adapter/js/rouge.js +7 -0
  64. data/assets/themes/j1/adapter/js/rtable.js +3 -1
  65. data/assets/themes/j1/adapter/js/rtextResizer.js +2 -1
  66. data/assets/themes/j1/adapter/js/scroller.js +2 -0
  67. data/assets/themes/j1/adapter/js/themer.js +26 -34
  68. data/assets/themes/j1/adapter/js/toccer.js +24 -78
  69. data/assets/themes/j1/adapter/js/translator.js +3 -1
  70. data/assets/themes/j1/core/css/animate.css +1282 -504
  71. data/assets/themes/j1/core/css/animate.min.css +1 -1
  72. data/assets/themes/j1/core/css/themes/bootstrap/bootstrap.css +1938 -1379
  73. data/assets/themes/j1/core/css/themes/bootstrap/bootstrap.min.css +3 -3
  74. data/assets/themes/j1/core/css/themes/theme_vapor/bootstrap.css +1939 -1380
  75. data/assets/themes/j1/core/css/themes/theme_vapor/bootstrap.min.css +3 -3
  76. data/assets/themes/j1/core/css/themes/unodark/bootstrap.css +2189 -1486
  77. data/assets/themes/j1/core/css/themes/unodark/bootstrap.min.css +3 -3
  78. data/assets/themes/j1/core/css/themes/unolight/bootstrap.css +2168 -1502
  79. data/assets/themes/j1/core/css/themes/unolight/bootstrap.min.css +10 -9
  80. data/assets/themes/j1/core/js/template.js +3 -3
  81. data/assets/themes/j1/core/js/template.min.js +1 -1
  82. data/assets/themes/j1/core/js/template.min.js.map +1 -1
  83. data/assets/themes/j1/modules/cookieConsent/js/cookieConsent.js +2 -2
  84. data/assets/themes/j1/modules/cookieConsent/js/cookieConsent.min.js +1 -1
  85. data/assets/themes/j1/modules/lightbox/js/lightbox.js +1 -1
  86. data/assets/themes/j1/modules/lightbox/js/lightbox.min.js +1 -1
  87. data/assets/themes/j1/modules/masterslider/css/blank.gif +0 -0
  88. data/assets/themes/j1/modules/masterslider/css/common/grab.cur +0 -0
  89. data/assets/themes/j1/modules/masterslider/css/common/grab.png +0 -0
  90. data/assets/themes/j1/modules/masterslider/css/common/grabbing.cur +0 -0
  91. data/assets/themes/j1/modules/masterslider/css/common/grabbing.png +0 -0
  92. data/assets/themes/j1/modules/masterslider/css/common/loading-1-dark.gif +0 -0
  93. data/assets/themes/j1/modules/masterslider/css/common/loading-1.gif +0 -0
  94. data/assets/themes/j1/modules/masterslider/css/common/loading-2-dark.gif +0 -0
  95. data/assets/themes/j1/modules/masterslider/css/common/loading-2-light.gif +0 -0
  96. data/assets/themes/j1/modules/masterslider/css/common/loading-2.gif +0 -0
  97. data/assets/themes/j1/modules/masterslider/css/common/video-close-btn.png +0 -0
  98. data/assets/themes/j1/modules/masterslider/css/masterslider.css +2637 -0
  99. data/assets/themes/j1/modules/masterslider/css/masterslider.min.css +2655 -0
  100. data/assets/themes/j1/modules/masterslider/css/skins/black-skin-1-retina.png +0 -0
  101. data/assets/themes/j1/modules/masterslider/css/skins/black-skin-1.png +0 -0
  102. data/assets/themes/j1/modules/masterslider/css/skins/black-skin-2-retina.png +0 -0
  103. data/assets/themes/j1/modules/masterslider/css/skins/black-skin-2.png +0 -0
  104. data/assets/themes/j1/modules/masterslider/css/skins/contrast-skin-retina.png +0 -0
  105. data/assets/themes/j1/modules/masterslider/css/skins/contrast-skin.png +0 -0
  106. data/assets/themes/j1/modules/masterslider/css/skins/light-skin-1-retina.png +0 -0
  107. data/assets/themes/j1/modules/masterslider/css/skins/light-skin-1.png +0 -0
  108. data/assets/themes/j1/modules/masterslider/css/skins/light-skin-2-retina.png +0 -0
  109. data/assets/themes/j1/modules/masterslider/css/skins/light-skin-2.png +0 -0
  110. data/assets/themes/j1/modules/masterslider/css/skins/light-skin-3-retina.png +0 -0
  111. data/assets/themes/j1/modules/masterslider/css/skins/light-skin-3.png +0 -0
  112. data/assets/themes/j1/modules/masterslider/css/skins/light-skin-4-retina.png +0 -0
  113. data/assets/themes/j1/modules/masterslider/css/skins/light-skin-4.png +0 -0
  114. data/assets/themes/j1/modules/masterslider/css/skins/light-skin-5-retina.png +0 -0
  115. data/assets/themes/j1/modules/masterslider/css/skins/light-skin-5.png +0 -0
  116. data/assets/themes/j1/modules/masterslider/css/skins/light-skin-6-retina.png +0 -0
  117. data/assets/themes/j1/modules/masterslider/css/skins/light-skin-6.png +0 -0
  118. data/assets/themes/j1/modules/masterslider/css/skins/metro-skin-retina.png +0 -0
  119. data/assets/themes/j1/modules/masterslider/css/skins/metro-skin.png +0 -0
  120. data/assets/themes/j1/modules/masterslider/css/skins/minimal.svg +11 -0
  121. data/assets/themes/j1/modules/masterslider/css/templates/device-skin.png +0 -0
  122. data/assets/themes/j1/modules/masterslider/css/templates/display.png +0 -0
  123. data/assets/themes/j1/modules/masterslider/css/templates/flat-display.png +0 -0
  124. data/assets/themes/j1/modules/masterslider/css/templates/flat-laptop.png +0 -0
  125. data/assets/themes/j1/modules/masterslider/css/templates/flat-phone-land.png +0 -0
  126. data/assets/themes/j1/modules/masterslider/css/templates/flat-phone.png +0 -0
  127. data/assets/themes/j1/modules/masterslider/css/templates/flat-tablet-land.png +0 -0
  128. data/assets/themes/j1/modules/masterslider/css/templates/flat-tablet.png +0 -0
  129. data/assets/themes/j1/modules/masterslider/css/templates/gallery-btns.png +0 -0
  130. data/assets/themes/j1/modules/masterslider/css/templates/laptop.png +0 -0
  131. data/assets/themes/j1/modules/masterslider/css/templates/phone-land.png +0 -0
  132. data/assets/themes/j1/modules/masterslider/css/templates/phone.png +0 -0
  133. data/assets/themes/j1/modules/masterslider/css/templates/staff-arrows.png +0 -0
  134. data/assets/themes/j1/modules/masterslider/css/templates/tablet-land.png +0 -0
  135. data/assets/themes/j1/modules/masterslider/css/templates/tablet.png +0 -0
  136. data/assets/themes/j1/modules/masterslider/css/templates/vertical-arrows.png +0 -0
  137. data/assets/themes/j1/modules/masterslider/css/theme/uno.css +95 -0
  138. data/assets/themes/j1/modules/masterslider/css/theme/uno.min.css +95 -0
  139. data/assets/themes/j1/modules/masterslider/css/themes/ms-skin-sample.css +172 -0
  140. data/assets/themes/j1/modules/masterslider/css/themes/ms-skin-sample.min.css +172 -0
  141. data/assets/themes/j1/modules/masterslider/js/addons/masterslider.flickr.min.js +1 -0
  142. data/assets/themes/j1/modules/masterslider/js/addons/public.js +10 -0
  143. data/assets/themes/j1/modules/masterslider/js/masterslider.js +5544 -0
  144. data/assets/themes/j1/modules/masterslider/js/masterslider.min.js +11 -0
  145. data/assets/themes/j1/modules/masterslider/js/plugins/jquery.easing.js +211 -0
  146. data/assets/themes/j1/modules/masterslider/js/plugins/jquery.easing.min.js +51 -0
  147. data/assets/themes/j1/modules/mmenuLight/css/theme/uno/mmenu.css +3 -3
  148. data/assets/themes/j1/modules/mmenuLight/css/theme/uno/mmenu.min.css +1 -1
  149. data/assets/themes/j1/modules/rouge/css/uno.dark/theme.css +11 -11
  150. data/assets/themes/j1/modules/rouge/css/uno.light/theme.css +24 -18
  151. data/assets/themes/j1/modules/translator/js/translator.js +2 -2
  152. data/assets/themes/j1/modules/translator/js/translator.min.js +1 -1
  153. data/assets/themes/j1/modules/twemoji/js/picker/twemoji-picker.js +2 -2
  154. data/assets/themes/j1/modules/twemoji/js/picker/twemoji-picker.min.js +304 -1
  155. data/lib/j1/version.rb +1 -1
  156. data/lib/starter_web/Gemfile +1 -1
  157. data/lib/starter_web/_config.yml +2 -2
  158. data/lib/starter_web/_data/blocks/banner.yml +8 -5
  159. data/lib/starter_web/_data/blocks/footer.yml +1 -1
  160. data/lib/starter_web/_data/modules/attics.yml +16 -4
  161. data/lib/starter_web/_data/modules/defaults/attics.yml +12 -5
  162. data/lib/starter_web/_data/modules/defaults/lightbox.yml +1 -1
  163. data/lib/starter_web/_data/modules/defaults/masterslider.yml +235 -0
  164. data/lib/starter_web/_data/modules/defaults/navigator.yml +7 -5
  165. data/lib/starter_web/_data/modules/defaults/toccer.yml +1 -1
  166. data/lib/starter_web/_data/modules/fab.yml +39 -118
  167. data/lib/starter_web/_data/modules/lightbox.yml +4 -2
  168. data/lib/starter_web/_data/modules/masterslider.yml +1153 -0
  169. data/lib/starter_web/_data/modules/navigator_menu.yml +234 -5
  170. data/lib/starter_web/_data/resources.yml +166 -95
  171. data/lib/starter_web/_plugins/asciidoctor-extensions/masterslider-block.rb +47 -0
  172. data/lib/starter_web/_plugins/lunr_index.rb +1 -1
  173. data/lib/starter_web/assets/images/modules/masterslider/slider_1/cat-1.jpg +0 -0
  174. data/lib/starter_web/assets/images/modules/masterslider/slider_1/cat-2.jpg +0 -0
  175. data/lib/starter_web/assets/images/modules/masterslider/slider_1/cat-3.jpg +0 -0
  176. data/lib/starter_web/assets/images/modules/masterslider/slider_1/cat-4.jpg +0 -0
  177. data/lib/starter_web/assets/images/modules/masterslider/slider_1/cat-5.jpg +0 -0
  178. data/lib/starter_web/assets/images/modules/masterslider/slider_1/cat-6.jpg +0 -0
  179. data/lib/starter_web/assets/images/modules/masterslider/slider_1/cat-7.jpg +0 -0
  180. data/lib/starter_web/assets/images/modules/masterslider/slider_1/cat-8.jpg +0 -0
  181. data/lib/starter_web/assets/images/modules/masterslider/slider_10/panorama-bg-slide1.jpg +0 -0
  182. data/lib/starter_web/assets/images/modules/masterslider/slider_10/panorama-bg-slide2.jpg +0 -0
  183. data/lib/starter_web/assets/images/modules/masterslider/slider_2/andreas-brucker.jpg +0 -0
  184. data/lib/starter_web/assets/images/modules/masterslider/slider_2/denys-nevozhai-1.jpg +0 -0
  185. data/lib/starter_web/assets/images/modules/masterslider/slider_2/denys-nevozhai-2.jpg +0 -0
  186. data/lib/starter_web/assets/images/modules/masterslider/slider_2/luca-bravo.jpg +0 -0
  187. data/lib/starter_web/assets/images/modules/masterslider/slider_2/thomas-tucker.jpg +0 -0
  188. data/lib/starter_web/assets/images/modules/masterslider/slider_3/ms-free-food-family-2.jpg +0 -0
  189. data/lib/starter_web/assets/images/modules/masterslider/slider_3/ms-free-food-hamburger.jpg +0 -0
  190. data/lib/starter_web/assets/images/modules/masterslider/slider_3/ms-free-food-restaurant.jpg +0 -0
  191. data/lib/starter_web/assets/images/modules/masterslider/slider_4/ms-free-animals-1-100x80.jpg +0 -0
  192. data/lib/starter_web/assets/images/modules/masterslider/slider_4/ms-free-animals-1.jpg +0 -0
  193. data/lib/starter_web/assets/images/modules/masterslider/slider_4/ms-free-animals-2-100x80.jpg +0 -0
  194. data/lib/starter_web/assets/images/modules/masterslider/slider_4/ms-free-animals-2.jpg +0 -0
  195. data/lib/starter_web/assets/images/modules/masterslider/slider_4/ms-free-animals-3-100x80.jpg +0 -0
  196. data/lib/starter_web/assets/images/modules/masterslider/slider_4/ms-free-animals-3.jpg +0 -0
  197. data/lib/starter_web/assets/images/modules/masterslider/slider_4/ms-free-animals-4-100x80.jpg +0 -0
  198. data/lib/starter_web/assets/images/modules/masterslider/slider_4/ms-free-animals-4.jpg +0 -0
  199. data/lib/starter_web/assets/images/modules/masterslider/slider_4/ms-free-animals-5-100x80.jpg +0 -0
  200. data/lib/starter_web/assets/images/modules/masterslider/slider_4/ms-free-animals-5.jpg +0 -0
  201. data/lib/starter_web/assets/images/modules/masterslider/slider_4/ms-free-animals-6-100x80.jpg +0 -0
  202. data/lib/starter_web/assets/images/modules/masterslider/slider_4/ms-free-animals-6.jpg +0 -0
  203. data/lib/starter_web/assets/images/modules/masterslider/slider_4/ms-free-animals-7-100x80.jpg +0 -0
  204. data/lib/starter_web/assets/images/modules/masterslider/slider_4/ms-free-animals-7.jpg +0 -0
  205. data/lib/starter_web/assets/images/modules/masterslider/slider_5/ms-free-food-family-140x80.jpg +0 -0
  206. data/lib/starter_web/assets/images/modules/masterslider/slider_5/ms-free-food-family-2-140x80.jpg +0 -0
  207. data/lib/starter_web/assets/images/modules/masterslider/slider_5/ms-free-food-family-2.jpg +0 -0
  208. data/lib/starter_web/assets/images/modules/masterslider/slider_5/ms-free-food-family-3-140x80.jpg +0 -0
  209. data/lib/starter_web/assets/images/modules/masterslider/slider_5/ms-free-food-family-3.jpg +0 -0
  210. data/lib/starter_web/assets/images/modules/masterslider/slider_5/ms-free-food-family.jpg +0 -0
  211. data/lib/starter_web/assets/images/modules/masterslider/slider_5/ms-free-food-hamburger-140x80.jpg +0 -0
  212. data/lib/starter_web/assets/images/modules/masterslider/slider_5/ms-free-food-hamburger.jpg +0 -0
  213. data/lib/starter_web/assets/images/modules/masterslider/slider_5/ms-free-food-pizza-140x80.jpg +0 -0
  214. data/lib/starter_web/assets/images/modules/masterslider/slider_5/ms-free-food-pizza.jpg +0 -0
  215. data/lib/starter_web/assets/images/modules/masterslider/slider_5/ms-free-food-restaurant-140x80.jpg +0 -0
  216. data/lib/starter_web/assets/images/modules/masterslider/slider_5/ms-free-food-restaurant.jpg +0 -0
  217. data/lib/starter_web/assets/images/modules/masterslider/slider_5/ms-free-food-single-man-140x80.jpg +0 -0
  218. data/lib/starter_web/assets/images/modules/masterslider/slider_5/ms-free-food-single-man.jpg +0 -0
  219. data/lib/starter_web/assets/images/modules/masterslider/slider_5/ms-free-food-single-woman-140x80.jpg +0 -0
  220. data/lib/starter_web/assets/images/modules/masterslider/slider_5/ms-free-food-single-woman.jpg +0 -0
  221. data/lib/starter_web/assets/images/modules/masterslider/slider_5/ms-free-food-table-140x80.jpg +0 -0
  222. data/lib/starter_web/assets/images/modules/masterslider/slider_5/ms-free-food-table.jpg +0 -0
  223. data/lib/starter_web/assets/images/modules/masterslider/slider_5/ms-free-food-woman-hand-140x80.jpg +0 -0
  224. data/lib/starter_web/assets/images/modules/masterslider/slider_5/ms-free-food-woman-hand.jpg +0 -0
  225. data/lib/starter_web/assets/images/modules/masterslider/slider_6_7/6876385555_74a0d7d7ee_b.jpg +0 -0
  226. data/lib/starter_web/assets/images/modules/masterslider/slider_6_7/6876387431_d86867a3d9_b.jpg +0 -0
  227. data/lib/starter_web/assets/images/modules/masterslider/slider_6_7/6876388511_d618d53455_b.jpg +0 -0
  228. data/lib/starter_web/assets/images/modules/masterslider/slider_6_7/6876389463_db27a377e1_b.jpg +0 -0
  229. data/lib/starter_web/assets/images/modules/masterslider/slider_6_7/6876390339_2e4dd9dbbb_b.jpg +0 -0
  230. data/lib/starter_web/assets/images/modules/masterslider/slider_8/postslider-5-img-1.jpg +0 -0
  231. data/lib/starter_web/assets/images/modules/masterslider/slider_8/postslider-5-img-2.jpg +0 -0
  232. data/lib/starter_web/assets/images/modules/masterslider/slider_8/postslider-5-img-3.jpg +0 -0
  233. data/lib/starter_web/assets/images/modules/masterslider/slider_8/postslider6-bg-slide2-1024x622.jpg +0 -0
  234. data/lib/starter_web/assets/images/modules/masterslider/slider_9/1-2.jpg +0 -0
  235. data/lib/starter_web/assets/images/modules/masterslider/slider_9/5-2.jpg +0 -0
  236. data/lib/starter_web/assets/images/modules/masterslider/slider_9/6-2.jpg +0 -0
  237. data/lib/starter_web/assets/images/modules/masterslider/slider_9/6-3.jpg +0 -0
  238. data/lib/starter_web/assets/images/modules/masterslider/slider_9/8-1.jpg +0 -0
  239. data/lib/starter_web/assets/images/modules/masterslider/slider_9/8.jpg +0 -0
  240. data/lib/starter_web/assets/images/modules/masterslider/unify-examples/charity-white-tile-bg.png +0 -0
  241. data/lib/starter_web/assets/images/modules/masterslider/unify-examples/fashion2-controller-arrow-next.png +0 -0
  242. data/lib/starter_web/assets/images/modules/masterslider/unify-examples/fashion2-controller-arrow-prv.png +0 -0
  243. data/lib/starter_web/assets/images/modules/masterslider/unify-examples/fashion2-img-slide1.jpg +0 -0
  244. data/lib/starter_web/assets/images/modules/masterslider/unify-examples/fashion2-img-slide2.jpg +0 -0
  245. data/lib/starter_web/assets/images/modules/masterslider/unify-examples/fashion2-img-slide3.jpg +0 -0
  246. data/lib/starter_web/assets/images/modules/masterslider/wp-examples/ms-free-business-1.jpg +0 -0
  247. data/lib/starter_web/assets/images/modules/masterslider/wp-examples/ms-free-business-2.jpg +0 -0
  248. data/lib/starter_web/assets/images/modules/masterslider/wp-examples/ms-free-business-3.jpg +0 -0
  249. data/lib/starter_web/index.html +0 -1
  250. data/lib/starter_web/package.json +1 -1
  251. data/lib/starter_web/pages/public/features/general.adoc +1 -1
  252. data/lib/starter_web/pages/public/jupyter/notebooks/textbooks/j1_circular_times_table.html +747 -747
  253. data/lib/starter_web/pages/public/jupyter/notebooks/textbooks/j1_climate_change_forecast.html +1250 -1250
  254. data/lib/starter_web/pages/public/jupyter/notebooks/textbooks/j1_docs_example_dynamic.html +186 -186
  255. data/lib/starter_web/pages/public/jupyter/notebooks/textbooks/j1_interactive_widgets.html +512 -512
  256. data/lib/starter_web/pages/public/jupyter/notebooks/textbooks/j1_nbi_widgets.html +629 -629
  257. data/lib/starter_web/pages/public/jupyter/notebooks/textbooks/j1_nbi_widgets_hist_chart.html +93 -93
  258. data/lib/starter_web/pages/public/jupyter/notebooks/textbooks/j1_nbi_widgets_question_multiple_choice.html +70 -70
  259. data/lib/starter_web/pages/public/jupyter/notebooks/textbooks/j1_nbi_widgets_question_short_answer.html +156 -156
  260. data/lib/starter_web/pages/public/jupyter/notebooks/textbooks/j1_odes_in_python.html +955 -955
  261. data/lib/starter_web/pages/public/learn/quickstart.adoc +1 -1
  262. data/lib/starter_web/pages/public/learn/roundtrip/100_present_images.adoc +90 -7
  263. data/lib/starter_web/pages/public/learn/roundtrip/100_present_videos.adoc +1 -1
  264. data/lib/starter_web/pages/public/learn/roundtrip/200_typography.adoc +1 -1
  265. data/lib/starter_web/pages/public/learn/roundtrip/300_icon_fonts.adoc +1 -1
  266. data/lib/starter_web/pages/public/learn/roundtrip/400_asciidoc_extensions.adoc +1 -1
  267. data/lib/starter_web/pages/public/learn/roundtrip/410_bs_modals_extentions.adoc +1 -1
  268. data/lib/starter_web/pages/public/learn/roundtrip/420_responsive_tables_extensions.adoc +1 -1
  269. data/lib/starter_web/pages/public/learn/roundtrip/500_themes.adoc +1 -1
  270. data/lib/starter_web/pages/public/learn/roundtrip/600_quicksearch.adoc +1 -1
  271. data/lib/starter_web/pages/public/legal/de/100_copyright.adoc +1 -1
  272. data/lib/starter_web/pages/public/legal/de/100_impress.adoc +1 -1
  273. data/lib/starter_web/pages/public/legal/de/300_privacy.adoc +1 -1
  274. data/lib/starter_web/pages/public/legal/de/400_comment_policy.adoc +1 -1
  275. data/lib/starter_web/pages/public/legal/en/100_copyright.adoc +1 -1
  276. data/lib/starter_web/pages/public/legal/en/200_impress.adoc +1 -1
  277. data/lib/starter_web/pages/public/legal/en/300_privacy.adoc +1 -1
  278. data/lib/starter_web/pages/public/legal/en/400_comment_policy.adoc +1 -1
  279. data/lib/starter_web/pages/public/panels/intro_panel/panel.adoc +1 -1
  280. data/lib/starter_web/pages/public/plans/plans.adoc +1 -1
  281. data/lib/starter_web/pages/public/previewer/preview_bootstrap_theme.adoc +143 -132
  282. data/lib/starter_web/utilsrv/_defaults/package.json +1 -1
  283. data/lib/starter_web/utilsrv/package.json +1 -1
  284. metadata +143 -3
  285. data/_includes/themes/j1/procedures/global/create_bs_button.1.proc +0 -172
@@ -0,0 +1,529 @@
1
+ ---
2
+ regenerate: true
3
+ ---
4
+
5
+ {% capture cache %}
6
+
7
+ {% comment %}
8
+ # -----------------------------------------------------------------------------
9
+ # ~/assets/themes/j1/adapter/js/masterslider.js
10
+ # Liquid template to adapt Averta MasterSlider Lite
11
+ #
12
+ # Product/Info:
13
+ # https://jekyll.one
14
+ # Copyright (C) 2022 Juergen Adams
15
+ #
16
+ # J1 Template is licensed under the MIT License.
17
+ # For details, see: https://github.com/jekyll-one-org/j1-template/blob/main/LICENSE.md
18
+ # -----------------------------------------------------------------------------
19
+ # Test data:
20
+ # {{ liquid_var | debug }}
21
+ # -----------------------------------------------------------------------------
22
+ {% endcomment %}
23
+
24
+ {% comment %} Liquid var initialization
25
+ -------------------------------------------------------------------------------- {% endcomment %}
26
+
27
+ {% comment %} Set config files
28
+ -------------------------------------------------------------------------------- {% endcomment %}
29
+ {% assign environment = site.environment %}
30
+ {% assign template_config = site.data.j1_config %}
31
+ {% assign modules = site.data.modules %}
32
+
33
+ {% comment %} Set config data
34
+ -------------------------------------------------------------------------------- {% endcomment %}
35
+ {% assign slider_defaults = modules.defaults.masterslider.defaults %}
36
+ {% assign slider_settings = modules.masterslider.settings %}
37
+
38
+ {% comment %} Set config options
39
+ -------------------------------------------------------------------------------- {% endcomment %}
40
+ {% assign slider_options = slider_defaults | merge: slider_settings %}
41
+ {% assign lightbox_enabled = slider_options.enable_lightbox %}
42
+ {% assign slider_manager = slider_options.slider_manager %}
43
+ {% assign save_slider_config = slider_options.save_slider_config %}
44
+ {% assign module_version = slider_options.module_version %}
45
+ {% assign sliders = slider_settings.sliders %}
46
+
47
+ {% comment %} Detect prod mode
48
+ -------------------------------------------------------------------------------- {% endcomment %}
49
+ {% assign production = false %}
50
+ {% if environment == 'prod' or environment == 'production' %}
51
+ {% assign production = true %}
52
+ {% endif %}
53
+
54
+ /*
55
+ # -----------------------------------------------------------------------------
56
+ # ~/assets/themes/j1/adapter/js/masterslider.js
57
+ # J1 Adapter for Averta MasterSlider Lite v2.85.13 (Feb 2022)
58
+ #
59
+ # Product/Info:
60
+ # https://jekyll.one
61
+ #
62
+ # Copyright (C) 2022 Juergen Adams
63
+ #
64
+ # J1 Template is licensed under the MIT License.
65
+ # For details, see: https://github.com/jekyll-one-org/j1-template/blob/main/LICENSE.md
66
+ # -----------------------------------------------------------------------------
67
+ # Adapter generated: {{site.time}}
68
+ # -----------------------------------------------------------------------------
69
+ */
70
+
71
+ // -----------------------------------------------------------------------------
72
+ // ESLint shimming
73
+ // -----------------------------------------------------------------------------
74
+ /* eslint indent: "off" */
75
+ // -----------------------------------------------------------------------------
76
+ 'use strict';
77
+ j1.adapter.masterslider = (function (j1, window) {
78
+
79
+ {% comment %} Set global variables
80
+ ------------------------------------------------------------------------------ {% endcomment %}
81
+ var environment = '{{environment}}';
82
+ var moduleVersion = '{{module_version}}';
83
+ var sliderManager = j1.stringToBoolean('{{slider_manager}}');
84
+ var lightboxEnabled = j1.stringToBoolean('{{lightbox_enabled}}');
85
+ var saveSliderConfig = j1.stringToBoolean('{{save_slider_config}}');
86
+ var sliderOptions = {};
87
+ var sliders = {};
88
+ var newline = '\n';
89
+ var _this;
90
+ var logger;
91
+ var logText;
92
+
93
+ // ---------------------------------------------------------------------------
94
+ // Helper functions
95
+ // ---------------------------------------------------------------------------
96
+
97
+ // ---------------------------------------------------------------------------
98
+ // Main object
99
+ // ---------------------------------------------------------------------------
100
+ return {
101
+
102
+ // -------------------------------------------------------------------------
103
+ // Initializer
104
+ // -------------------------------------------------------------------------
105
+ init: function (options) {
106
+ var msSliderManager;
107
+
108
+ if (sliderManager) {
109
+ msSliderManager = document.createElement('script');
110
+ msSliderManager.id = 'ms-slider-manager';
111
+ msSliderManager.innerHTML = '';
112
+ }
113
+
114
+ // used for later access
115
+ j1.masterslider = {};
116
+ j1.masterslider.instances = j1.masterslider.instances || [];
117
+
118
+ // -----------------------------------------------------------------------
119
+ // Default module settings
120
+ // -----------------------------------------------------------------------
121
+ var settings = $.extend({
122
+ module_name: 'j1.adapter.masterslider',
123
+ generated: '{{site.time}}'
124
+ }, options);
125
+
126
+ // collect slider data
127
+ sliderOptions = $.extend({}, {{slider_options | replace: 'nil', 'null' | replace: '=>', ':' }});
128
+ sliders = $.extend({}, {{slider_options.sliders | replace: 'nil', 'null' | replace: '=>', ':' }});
129
+
130
+ // -----------------------------------------------------------------------
131
+ // Global variable settings
132
+ // -----------------------------------------------------------------------
133
+ _this = j1.adapter.masterslider;
134
+ logger = log4javascript.getLogger('j1.adapter.masterslider');
135
+
136
+ // initialize state flag
137
+ _this.setState('started');
138
+ console.debug('module state: ' + _this.getState());
139
+
140
+ // load HTML portion for all sliders configured
141
+ console.debug('load HTML portion for all sliders configured');
142
+ _this.loadSliderHTML(sliderOptions, sliders);
143
+ // create an 'MasterSlider' instance for all sliders configured
144
+ console.debug('create an \'MasterSlider\' instance for all sliders configured');
145
+ _this.createSliderInstances(sliders, msSliderManager);
146
+
147
+ // initialize all sliders configured
148
+ var dependencies_met_data_loaded = setInterval(function() {
149
+ if (_this.getState() == 'data_loaded' && j1.getState() == 'finished') {
150
+ logger.info('\n' + 'ms module version detected: ' + moduleVersion);
151
+ logger.info('\n' + 'module is being initialized');
152
+ _this.initSliders(sliderOptions, sliders, msSliderManager, saveSliderConfig);
153
+ clearInterval(dependencies_met_data_loaded);
154
+ } // END dependencies_met_j1_finished
155
+ }, 25);
156
+
157
+ // final state messages
158
+ var dependencies_met_module_finished = setInterval(function() {
159
+ if (_this.getState() == 'sliders_initialized' && j1.getState() == 'finished') {
160
+ _this.setState('finished');
161
+
162
+ // Currently NOT used (experimental)
163
+ // _this.registerEvents(j1.masterslider.instances);
164
+
165
+ if (sliderManager) document.body.appendChild(msSliderManager);
166
+
167
+ logger.info('\n' + 'initializing module finished');
168
+ clearInterval(dependencies_met_module_finished);
169
+ } // END dependencies_met_j1_finished
170
+ }, 25);
171
+
172
+ }, // END init
173
+
174
+ // -------------------------------------------------------------------------
175
+ // loadSliderHTML()
176
+ // load all master sliders (HTML portion) dynanically configured
177
+ // and enabled (AJAX) from data file
178
+ // NOTE: Make sure the placeholder is available in the content page
179
+ // eg. using the asciidoc extension masterslider::
180
+ // -------------------------------------------------------------------------
181
+ loadSliderHTML: function (options, slider) {
182
+ var numSliders = Object.keys(slider).length;
183
+ var active_sliders = numSliders;
184
+ var xhr_data_path = options.xhr_data_path + '/index.html';
185
+ var xhr_container_id;
186
+
187
+ // console.debug('load HTML portion of all sliders configured found in page');
188
+ console.debug('number of sliders found: ' + numSliders);
189
+
190
+ _this.setState('load_data');
191
+ Object.keys(slider).forEach(function(key) {
192
+ if (slider[key].enabled) {
193
+ console.debug('load HTML data on slider id: ' + slider[key].id);
194
+
195
+ xhr_container_id = 'p_' + slider[key].id;
196
+ j1.loadHTML({
197
+ xhr_container_id: xhr_container_id,
198
+ xhr_data_path: xhr_data_path,
199
+ xhr_data_element: sliders[key].id
200
+ });
201
+ } else {
202
+ console.debug('slider found disabled on id: ' + slider[key].id);
203
+ active_sliders--;
204
+ }
205
+ });
206
+ console.debug('sliders loaded in page active|deactive: ' + active_sliders + '|' + numSliders);
207
+ _this.setState('data_loaded');
208
+ }, // END loadSliderHTML
209
+
210
+ // -------------------------------------------------------------------------
211
+ // createSliderInstances()
212
+ // create an 'MasterSlider' instance for all sliders configured
213
+ // -------------------------------------------------------------------------
214
+ createSliderInstances: function (sliders, sliderManager) {
215
+ var msSliderManager = sliderManager;
216
+ var numSliders = Object.keys(sliders).length;
217
+
218
+ var i=0;
219
+ Object.keys(sliders).forEach(function(key) {
220
+ var msSliderManagerItem;
221
+ i++;
222
+ console.debug('create slider instance on id: ' + sliders[key].id);
223
+
224
+ if (sliderManager) {
225
+ msSliderManagerItem = 'var masterslider_' + i + ' = new MasterSlider();' + '\n';
226
+ msSliderManager.innerHTML += msSliderManagerItem;
227
+ } else {
228
+ _this["masterslider_" + i] = new MasterSlider();
229
+ }
230
+
231
+ });
232
+
233
+ console.debug('slider instances created: ' + numSliders);
234
+ }, // END loadSliderHTML
235
+
236
+ // -------------------------------------------------------------------------
237
+ // initSliders()
238
+ // initialze all master sliders found in page. Dynamically apply properties
239
+ // for methods 'setup' and 'control'.
240
+ // -------------------------------------------------------------------------
241
+ initSliders: function (options, slider, sliderManager, save_config) {
242
+ var msSliderManager = sliderManager;
243
+ var newline = '\n';
244
+
245
+ // run the method 'control' on all sliders 'enabled'
246
+ //
247
+ function setupControls(options, slider, sliderManager) {
248
+ const controlOptions = options.controls;
249
+ var msSliderManager = sliderManager;
250
+ var index;
251
+ var i=0;
252
+
253
+ logger.info('\n' + 'generate slider controls');
254
+
255
+ if (sliderManager) msSliderManager.innerHTML += newline;
256
+ Object.keys(slider).forEach(function(key) {
257
+ i++; // instance index
258
+ index = parseInt(key); // object index
259
+
260
+ if (slider[index].enabled) {
261
+ if (slider[index].controls) {
262
+ Object.keys(slider[index].controls).forEach(function(key) {
263
+ var msSliderManagerItem = '\n';
264
+ logger.info('\n' + 'slider control found id|key: ' + slider[index].id + '|' + key);
265
+
266
+ // merge settings, defaults into control
267
+ control = $.extend({}, controlOptions[key], slider[index].controls[key]);
268
+ // remove J1 config setting
269
+ delete control['enabled'];
270
+
271
+ if (sliderManager) {
272
+ msSliderManagerItem = ' ' + 'masterslider_' + i + '.control(' + '\'' + key + '\'' + ', ' + JSON.stringify(control) + ');'
273
+ msSliderManager.innerHTML += msSliderManagerItem + '\n';
274
+ } else {
275
+ _this["masterslider_" + i].control(key, control);
276
+ }
277
+
278
+ });
279
+ } else {
280
+ logger.debug('\n' + 'no slider controls found on id: ' + slider[key].id);
281
+ }
282
+ } else {
283
+ logger.debug('\n' + 'slider found disabled on id: ' + slider[key].id);
284
+ }
285
+ });
286
+ } // END setupControls
287
+
288
+ // initialize plugins on all sliders if 'enabled'
289
+ //
290
+ function setupPlugIns(options, slider, sliderManager) {
291
+ const pluginOptions = options.plugins;
292
+ var msSliderManager = sliderManager;
293
+ var plugins = {};
294
+ var pluginSettings;
295
+ var index;
296
+ var i=0;
297
+
298
+ logger.info('\n' + 'generate slider plugins');
299
+
300
+ if (sliderManager) msSliderManager.innerHTML += newline;
301
+ Object.keys(slider).forEach(function(key) {
302
+ i++; // instance index
303
+ index = parseInt(key); // object index
304
+
305
+ if (slider[index].enabled) {
306
+ if (slider[index].plugins) {
307
+ Object.keys(slider[index].plugins).forEach(function(key) {
308
+ var msSliderManagerItem = '\n';
309
+ logger.info('\n' + 'slider plugin found id|key: ' + slider[index].id + '|' + key);
310
+
311
+ // merge settings, defaults into 'plugins'
312
+ plugins = $.extend({}, pluginOptions, slider[index].plugins);
313
+
314
+ // generate setup for plugin 'MSScrollParallax'
315
+ // NOTE: for the MS config, the plugin 'MSScrollParallax' is named ' J1ScrollParallax'
316
+ if (plugins.J1ScrollParallax.enabled) {
317
+ // remove J1 config settings
318
+ delete plugins.J1ScrollParallax.enabled;
319
+
320
+ // create a 'properties' string
321
+ pluginSettings = JSON.stringify(plugins.J1ScrollParallax).replace(/"/g, '').replace(/{/g, '').replace(/}/g, '');
322
+ logger.debug('\n' + 'plugin J1ScrollParallax found: ' + pluginSettings);
323
+
324
+ // remove property names to get a pure 'parameter' string
325
+ pluginSettings = pluginSettings.replace(/layers_parallax_depth:/g, '');
326
+ pluginSettings = pluginSettings.replace(/background_parallax_depth:/g, '');
327
+ pluginSettings = pluginSettings.replace(/fade_layers:/g, '');
328
+
329
+ if (sliderManager) {
330
+ msSliderManagerItem = ' ' + 'MSScrollParallax.setup(masterslider_' + i + ', ' + pluginSettings + ');';
331
+ msSliderManager.innerHTML += msSliderManagerItem + '\n';
332
+ } else {
333
+ MSScrollParallax.setup(j1.masterslider.instances[index], pluginSettings);
334
+ }
335
+ } // END plugin 'MSScrollParallax'
336
+ });
337
+ } else {
338
+ logger.debug('\n' + 'no slider plugins found on id: ' + slider[key].id);
339
+ }
340
+ } else {
341
+ logger.debug('\n' + 'slider found disabled on id: ' + slider[key].id);
342
+ }
343
+ });
344
+ } // END setupPlugIns
345
+
346
+ // run the method 'setup' on all sliders 'enabled'
347
+ //
348
+ function setupSliders(options, slider, sliderManager, save_config) {
349
+ const controlOptions = options.controls;
350
+ var msSliderManager = sliderManager;
351
+ var control = {};
352
+ var index;
353
+
354
+ logger.info('\n' + 'generate slider setup');
355
+
356
+ if (sliderManager) msSliderManager.innerHTML += newline;
357
+ var i=0;
358
+ Object.keys(slider).forEach(function(key) {
359
+ var msSliderManagerItem = '\n';
360
+ i++; // instance index
361
+ index = parseInt(key); // object index
362
+ if (slider[index].enabled) {
363
+ logger.info('\n' + 'slider is being initialized on id: ' + slider[key].id);
364
+
365
+ // merge settings, defaults into 'setup'
366
+ setup = $.extend({}, settings.options, slider[index].options);
367
+
368
+ // log the filter object if enabled
369
+ if (setup.filters != null) {
370
+ var filterSettings = JSON.stringify(setup.filters).replace(/"/g, '');
371
+ logger.info('\n' + 'filters found: ' + filterSettings.replace(/{/g, '').replace(/}/g, ''));
372
+ }
373
+
374
+ if (sliderManager) {
375
+ msSliderManagerItem = ' ' + 'masterslider_' + i + '.setup(' + '\'' + slider[key].id + '\'' + ', ' + JSON.stringify(setup) + ');'
376
+ msSliderManager.innerHTML += msSliderManagerItem + '\n';
377
+ } else {
378
+ _this["masterslider_" + i].setup(slider[key].id, setup);
379
+ }
380
+
381
+ // save slider config for later access
382
+ if (save_config) {
383
+ if (sliderManager) {
384
+ msSliderManagerItem = ' ' + 'j1.masterslider.instances.push(masterslider_' + i + ');';
385
+ msSliderManager.innerHTML += msSliderManagerItem + '\n';
386
+ } else {
387
+ j1.masterslider.instances.push(_this["masterslider_" + i]);
388
+ }
389
+ }
390
+ } else {
391
+ logger.info('\n' + 'slider found disabled on id: ' + slider[key].id);
392
+ }
393
+ });
394
+
395
+ _this.setState('sliders_initialized');
396
+ logger.debug('\n' + 'state: ' + _this.getState());
397
+ logger.info('\n' + 'initializing sliders finished');
398
+
399
+ } // END setupSliders
400
+
401
+ var settings = $.extend({}, options, slider);
402
+ var control = {};
403
+ var setup = {};
404
+ var log_text;
405
+
406
+ _this.setState('initialize_sliders');
407
+ logger.debug('\n' + 'state: ' + _this.getState());
408
+ log_text = '\n' + 'sliders are being initialized';
409
+ logger.info(log_text);
410
+
411
+ setupControls(options, slider, msSliderManager);
412
+ setupSliders(options, slider, msSliderManager, save_config);
413
+ setupPlugIns(options, slider, msSliderManager);
414
+
415
+ }, // END initSliders
416
+
417
+ // -------------------------------------------------------------------------
418
+ // messageHandler: MessageHandler for J1 CookieConsent module
419
+ // Manage messages send from other J1 modules
420
+ // -------------------------------------------------------------------------
421
+ messageHandler: function (sender, message) {
422
+ var json_message = JSON.stringify(message, undefined, 2);
423
+
424
+ logText = '\n' + 'received message from ' + sender + ': ' + json_message;
425
+ logger.debug(logText);
426
+
427
+ // -----------------------------------------------------------------------
428
+ // Process commands|actions
429
+ // -----------------------------------------------------------------------
430
+ if (message.type === 'command' && message.action === 'module_initialized') {
431
+ //
432
+ // Place handling of command|action here
433
+ //
434
+ logger.info('\n' + message.text);
435
+ }
436
+
437
+ //
438
+ // Place handling of other command|action here
439
+ //
440
+
441
+ return true;
442
+ }, // END messageHandler
443
+
444
+ // -------------------------------------------------------------------------
445
+ // setState()
446
+ // Sets the current (processing) state of the module
447
+ // -------------------------------------------------------------------------
448
+ setState: function (stat) {
449
+ _this.state = stat;
450
+ }, // END setState
451
+
452
+ // -------------------------------------------------------------------------
453
+ // registerEvents()
454
+ // Currently NOT used (experimental)
455
+ // -------------------------------------------------------------------------
456
+ registerEvents: function (options, slider) {
457
+ var index;
458
+
459
+ var i=0;
460
+ Object.keys(slider).forEach(function(key) {
461
+ i++; // instance index
462
+ index = parseInt(key); // object index
463
+
464
+ logger.debug('\n' + 'slider events are being initialized on id: ' + index);
465
+
466
+ slider[index].api.addEventListener(MSSliderEvent.WAITING, function(e) {
467
+ var brutze = e;
468
+
469
+ // var currentSlide = masterslider_1.api.view.currentSlide;
470
+ // var currentSlide = currSlider.api.view.currentSlide;
471
+
472
+ var controller = e.target.view.controller;
473
+ var controllerValue = e.target.view.controller.value;
474
+ var isLoading = e.target.currentSlide.$loading.length;
475
+
476
+ // dispatches when the slider's current slide change starts.
477
+ if (!isLoading) {
478
+ logger.info('\n' + 'slider is loaded' );
479
+ } else {
480
+ logger.info('\n' + 'slider is being loaded: ' + e.target.currentSlide.bg_src);
481
+ }
482
+
483
+ });
484
+
485
+ // var currSlider = 'masterslider_1';
486
+ // currSlider.api.addEventListener(MSSliderEvent.CHANGE_START, function(currSlider) {
487
+ // // var currentSlide = masterslider_1.api.view.currentSlide;
488
+ // var currentSlide = currSlider.api.view.currentSlide;
489
+ //
490
+ // // dispatches when the slider's current slide change starts.
491
+ // logger.info('\n' + 'slider is being changed on id: ');
492
+ // });
493
+
494
+ // var selector = "#" + slider[key].id;
495
+ // if ($(selector).length) {
496
+ // $(document).on("click", selector, function(e) {
497
+ // // e.preventDefault();
498
+ //
499
+ // var elm = e.currentTarget.attributes[0];
500
+ // var img_src = e.target.currentSrc;
501
+ // var id = e.handleObj.selector;
502
+ //
503
+ // logger.info('\n' + 'click event on id: ' + e.currentTarget.id);
504
+ // });
505
+ // }
506
+
507
+ });
508
+
509
+ }, // END registerEvents
510
+
511
+ // -------------------------------------------------------------------------
512
+ // getState()
513
+ // Returns the current (processing) state of the module
514
+ // -------------------------------------------------------------------------
515
+ getState: function () {
516
+ return _this.state;
517
+ } // END getState
518
+
519
+ }; // END return
520
+
521
+ })(j1, window);
522
+
523
+ {% endcapture %}
524
+ {% if production %}
525
+ {{ cache | minifyJS }}
526
+ {% else %}
527
+ {{ cache | strip_empty_lines }}
528
+ {% endif %}
529
+ {% assign cache = nil %}
@@ -67,6 +67,8 @@ regenerate: true
67
67
  {% assign nav_navbar_media_breakpoint = navigator_defaults.nav_bar.media_breakpoint %}
68
68
  {% assign nav_mmenu_id = navigator_options.nav_mmenu.id %}
69
69
 
70
+ {% comment %} Detect prod mode
71
+ -------------------------------------------------------------------------------- {% endcomment %}
70
72
  {% assign production = false %}
71
73
  {% if environment == 'prod' or environment == 'production' %}
72
74
  {% assign production = true %}