j1-template 2020.0.1 → 2020.0.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (83) hide show
  1. checksums.yaml +4 -4
  2. data/_includes/themes/j1/layouts/content_generator_blog_archive.html +22 -18
  3. data/_includes/themes/j1/layouts/content_generator_collection.html +15 -12
  4. data/_includes/themes/j1/layouts/content_generator_page.html +16 -17
  5. data/_includes/themes/j1/layouts/content_generator_post.html +19 -24
  6. data/_includes/themes/j1/modules/navigator/generator.html +62 -40
  7. data/assets/data/menu.html +6 -5
  8. data/assets/data/mmenu.html +455 -0
  9. data/assets/data/{sidebar.html → mmenu_sidebar.html} +24 -18
  10. data/assets/data/mmenu_toc.html +45 -0
  11. data/assets/data/quicklinks.html +9 -4
  12. data/assets/data/ssm.html +227 -0
  13. data/assets/error_pages/HTTP204.html +3 -3
  14. data/assets/themes/j1/core/css/bootstrap.css +116 -93
  15. data/assets/themes/j1/core/css/bootstrap.min.css +4 -4
  16. data/assets/themes/j1/core/css/globals.css +1 -1
  17. data/assets/themes/j1/core/css/theme_extensions.css +186 -96
  18. data/assets/themes/j1/core/css/theme_extensions.min.css +1 -1
  19. data/assets/themes/j1/core/css/uno.css +186 -96
  20. data/assets/themes/j1/core/css/uno.min.css +1 -1
  21. data/assets/themes/j1/core/css/vendor.css +130 -104
  22. data/assets/themes/j1/core/css/vendor.min.css +4 -4
  23. data/assets/themes/j1/core/js/template.js +296 -24
  24. data/assets/themes/j1/core/js/template.js.map +1 -1
  25. data/assets/themes/j1/core/js/template.min.js +1 -1
  26. data/lib/j1/version.rb +1 -1
  27. data/lib/j1_app/j1_auth_manager/auth_manager.rb +21 -17
  28. data/lib/j1_app/j1_auth_manager/config.rb +13 -9
  29. data/lib/j1_app/j1_site_manager/static_site.rb +1 -1
  30. data/lib/starter_web/Gemfile +2 -2
  31. data/lib/starter_web/_config.yml +12 -139
  32. data/lib/starter_web/_data/modules/authentication.yml +1 -1
  33. data/lib/starter_web/_data/modules/defaults/navigator.yml +25 -24
  34. data/lib/starter_web/_data/modules/defaults/ssm.yml +50 -0
  35. data/lib/starter_web/_data/modules/defaults/toccer.yml +14 -15
  36. data/lib/starter_web/_data/modules/navigator.yml +164 -97
  37. data/lib/starter_web/_data/modules/ssm.yml +133 -0
  38. data/lib/starter_web/_data/modules/toccer.yml +20 -62
  39. data/lib/starter_web/_data/resources.yml +74 -51
  40. data/lib/starter_web/_data/template_settings.yml +13 -13
  41. data/lib/starter_web/_plugins/uglify.rb +41 -0
  42. data/lib/starter_web/apps/public/{cc → cc/cc.yml} +0 -0
  43. data/lib/starter_web/apps/public/cc/index.adoc +107 -0
  44. data/lib/starter_web/assets/images/modules/icons/j1/{j1..ico → j1.ico} +0 -0
  45. data/lib/starter_web/assets/themes/j1/adapter/js/algolia.js +321 -0
  46. data/lib/starter_web/assets/themes/j1/adapter/js/attic.js +4 -4
  47. data/lib/starter_web/assets/themes/j1/adapter/js/carousel.js +3 -3
  48. data/lib/starter_web/assets/themes/j1/adapter/js/framer.js +3 -3
  49. data/lib/starter_web/assets/themes/j1/adapter/js/j1.js +19 -60
  50. data/lib/starter_web/assets/themes/j1/adapter/js/mmenu.js +452 -0
  51. data/lib/starter_web/assets/themes/j1/adapter/js/navigator.js +50 -50
  52. data/lib/starter_web/assets/themes/j1/adapter/js/ssm.js +498 -0
  53. data/lib/starter_web/assets/themes/j1/adapter/js/themer.js +1 -1
  54. data/lib/starter_web/assets/themes/j1/adapter/js/toccer.js +40 -43
  55. data/lib/starter_web/assets/themes/j1/extensions/mmenu-light/css/mmenu-light.css +384 -0
  56. data/lib/starter_web/assets/themes/j1/extensions/mmenu-light/css/mmenu-light.min.css +384 -0
  57. data/lib/starter_web/assets/themes/j1/extensions/mmenu-light/css/themes/uno.css +153 -0
  58. data/lib/starter_web/assets/themes/j1/extensions/mmenu-light/css/themes/uno.min.css +153 -0
  59. data/lib/starter_web/assets/themes/j1/extensions/mmenu-light/js/mmenu-light.js +11 -0
  60. data/lib/starter_web/assets/themes/j1/extensions/mmenu-light/js/mmenu-light.min.js +11 -0
  61. data/lib/starter_web/assets/themes/j1/extensions/mmenu-light/js/mmenu-light.polyfills.js +118 -0
  62. data/lib/starter_web/assets/themes/j1/extensions/mmenu-light/js/mmenu-light.polyfills.min.js +118 -0
  63. data/lib/starter_web/collections/posts/public/{jekyll → featured}/_posts/2018-05-01-confusion-about-base-url.adoc +0 -0
  64. data/lib/starter_web/package.json +1 -1
  65. data/lib/starter_web/pages/public/learn/floating_sidebar.adoc +199 -0
  66. data/lib/starter_web/pages/public/learn/roundtrip/100_present_images.adoc +2 -2
  67. data/lib/starter_web/pages/public/learn/roundtrip/200_typography.adoc +2 -2
  68. data/lib/starter_web/pages/public/learn/whats_up.adoc +12 -11
  69. data/lib/starter_web/pages/public/legal/en/500_support.adoc +1 -1
  70. data/lib/starter_web/pages/public/previewer/000_includes/tables/mdi_icons/200_rotate.asciidoc +1 -1
  71. data/lib/starter_web/pages/public/previewer/mdi_icons_preview.adoc +2 -3
  72. data/lib/starter_web/pages/public/previewer/twitter_emoji_preview.adoc +3 -3
  73. data/lib/starter_web/pages/public/site_search.adoc +196 -0
  74. data/lib/starter_web/utilsrv/_defaults/package.json +1 -1
  75. data/lib/starter_web/utilsrv/package.json +1 -1
  76. metadata +26 -13
  77. data/assets/themes/j1/core/css/globals.scss +0 -28
  78. data/lib/starter_web/_data/modules/back2top.yml +0 -40
  79. data/lib/starter_web/_data/modules/defaults/back2top.yml +0 -147
  80. data/lib/starter_web/_data/modules/defaults/smooth_scroll.yml +0 -169
  81. data/lib/starter_web/_data/modules/smooth_scroll.yml +0 -169
  82. data/lib/starter_web/assets/themes/j1/adapter/js/back2top.js +0 -227
  83. data/lib/starter_web/assets/themes/j1/adapter/js/scroller.js +0 -177
@@ -7,7 +7,8 @@ regenerate: true
7
7
  {% comment %}
8
8
  # -----------------------------------------------------------------------------
9
9
  # ~/assets/data/menu.html
10
- # Liquid procedure to generate HTML portion of the main menu bar
10
+ # Liquid procedure to generate HTML portion of the main menu
11
+ # for the desktop version
11
12
  # NOTE: Loaded dynamically by J1 NAV Manager module (AJAX)
12
13
  #
13
14
  # Product/Info:
@@ -138,9 +139,9 @@ regenerate: true
138
139
  <!-- div id="{{nav_menu_id}}" class="{{dropdown_collapse}}" -->
139
140
  <!-- div class="{{dropdown_collapse}}" -->
140
141
  {% if nav_menu_animation %}
141
- <ul class="nav navbar-nav navigator navbar-{{nav_bar_position}}" data-in="{{animate_in}}" data-out="{{animate_out}}">
142
+ <ul id="desktop_menu" class="nav navbar-nav navigator navbar-{{nav_bar_position}}" data-in="{{animate_in}}" data-out="{{animate_out}}">
142
143
  {% else %}
143
- <ul class="nav navbar-nav navigator navbar-{{nav_bar_position}}" data-in="fadeIn" data-out="fadeOut">
144
+ <ul id="desktop_menu" class="nav navbar-nav navigator navbar-{{nav_bar_position}}" data-in="fadeIn" data-out="fadeOut">
144
145
  {% endif %}
145
146
 
146
147
  {% for menu in navigator_menu_config %}
@@ -460,10 +461,10 @@ regenerate: true
460
461
  <!-- [INFO ] [j1.modules.navigator.menu.html ] [nav_menu_settings: end menu] -->
461
462
  </ul>
462
463
  <!-- [INFO ] [j1.modules.navigator.menu.html ] [nav_menu_settings: end navbar] -->
463
- <!-- div -->
464
+ <!-- div -->
464
465
  <!-- [INFO ] [j1.modules.navigator.menu.html ] [nav_menu_settings: end processing] -->
465
466
 
466
467
  {% endcapture %}
467
468
 
468
469
  {{ cache | pretty_print | remove:'<html><body>' | remove:'</body></html>' | strip_empty_lines }}
469
- {% assign cache = nil %}
470
+ {% assign cache = nil %}
@@ -0,0 +1,455 @@
1
+ ---
2
+ regenerate: true
3
+ ---
4
+
5
+ {% capture cache %}
6
+
7
+ {% comment %}
8
+ # -----------------------------------------------------------------------------
9
+ # ~/assets/data/mmenu.html
10
+ # Liquid procedure to generate HTML portion of the mobile menu
11
+ # NOTE: Loaded dynamically by J1 NAV Manager module (AJAX)
12
+ #
13
+ # Product/Info:
14
+ # https://jekyll.one
15
+ #
16
+ # Copyright (C) 2020 Juergen Adams
17
+ #
18
+ # J1 Template is licensed under the MIT License.
19
+ # See: https://github.com/jekyll-one-org/J1 Template/blob/master/LICENSE
20
+ # -----------------------------------------------------------------------------
21
+ # Test data:
22
+ # {{variable | debug}}
23
+ # -----------------------------------------------------------------------------
24
+ {% endcomment %}
25
+
26
+ {% comment %} Liquid procedures
27
+ -------------------------------------------------------------------------------- {% endcomment %}
28
+ {% capture select_color %}themes/{{site.template.name}}/procedures/global/select_color.proc{% endcapture %}
29
+ {% capture select_icon_size %}themes/{{site.template.name}}/procedures/global/select_icon_size.proc{% endcapture %}
30
+
31
+
32
+ {% comment %} Liquid var initialization
33
+ -------------------------------------------------------------------------------- {% endcomment %}
34
+
35
+ {% comment %} Set config files
36
+ -------------------------------------------------------------------------------- {% endcomment %}
37
+ {% assign site_config = site %}
38
+ {% assign template_config = site.data.template_settings %}
39
+ {% assign modules = site.data.modules %}
40
+
41
+ {% comment %} Set config data
42
+ -------------------------------------------------------------------------------- {% endcomment %}
43
+ {% assign navigator_settings = modules.navigator.settings %}
44
+ {% assign navigator_defaults = modules.defaults.navigator.defaults %}
45
+ {% assign navigator_menu_config = modules.navigator_menu %}
46
+
47
+ {% assign themer_defaults = modules.defaults.themer.defaults %}
48
+ {% assign themer_settings = modules.themer.settings %}
49
+
50
+ {% assign nav_bar_defaults = navigator_defaults.nav_bar %}
51
+ {% assign nav_bar_settings = navigator_settings.nav_bar %}
52
+ {% assign nav_menu_defaults = navigator_defaults.nav_menu %}
53
+ {% assign nav_menu_settings = navigator_settings.nav_menu %}
54
+
55
+ {% comment %} Set config options
56
+ -------------------------------------------------------------------------------- {% endcomment %}
57
+ {% assign themer_options = themer_defaults | merge: themer_settings %}
58
+ {% assign nav_bar_options = nav_bar_defaults | merge: nav_bar_settings %}
59
+ {% assign nav_menu_options = nav_menu_defaults | merge: nav_menu_settings %}
60
+ {% assign theme_preview = themer_options.preview_page %}
61
+ {% assign nav_menu_id = nav_menu_options.id %}
62
+
63
+ {% assign ext = '' %}
64
+ {% if site.permalink == 'none' %}
65
+ {% assign ext = '.html' %}
66
+ {% endif %}
67
+
68
+ <!-- [DEBUG ] [j1.modules.mmenu.html ] [detect bs type] -->
69
+ {% assign bs_type = 'bmd4' %}
70
+ {% if navigator_settings.bs_type == 'bs4' %}
71
+ {% assign bs_type = 'bs4' %}
72
+ {% endif %}
73
+
74
+ {% if bs_type == 'bmd4' %}
75
+ {% assign dropdown_collapse = 'collapse' %}
76
+ {% elsif bs_type == 'bs4' %}
77
+ {% assign dropdown_collapse = 'fake-class collapse' %}
78
+ {% endif %}
79
+
80
+ <!-- [DEBUG ] [j1.modules.mmenu.html ] [bs type detected: {{bs_type}}] -->
81
+
82
+ {% comment %} Set navBarOptions
83
+ -------------------------------------------------------------------------------- {% endcomment %}
84
+ {% assign nav_bar_position = nav_bar_options.position %}
85
+
86
+ {% comment %} Set navMenuOptions
87
+ -------------------------------------------------------------------------------- {% endcomment %}
88
+ {% assign nav_menu_animation = nav_menu_options.dropdown_animate %}
89
+ {% if nav_menu_animation %}
90
+ {% assign animate_in = nav_menu_options.dropdown_animate_in %}
91
+ {% assign animate_out = nav_menu_options.dropdown_animate_out %}
92
+ {% endif %}
93
+
94
+ {% comment %} Set base nav features
95
+ -------------------------------------------------------------------------------- {% endcomment %}
96
+ {% capture nav_menu_position %}dropdown-menu-{{nav_bar_position}}{% endcapture %}
97
+ {% unless nav_menu_animation %} {% assign nav_menu_animation = false %} {% endunless %}
98
+
99
+ <!-- [DEBUG ] [j1.modules.mmenu.html ] [initialize default menu properties] -->
100
+ {% if nav_menu_options.raised_level %}
101
+ {% assign raised_level = nav_menu_options.raised_level %}
102
+ {% else %}
103
+ {% assign raised_level = 0 %}
104
+ {% endif %}
105
+
106
+ {% comment %} Set base icons and sizes
107
+ -------------------------------------------------------------------------------- {% endcomment %}
108
+ <!-- [DEBUG ] [j1.modules.mmenu.html ] [initialize default menu icon properties] -->
109
+ {% assign nav_menu_icon_family = nav_menu_options.icon_family %}
110
+ {% assign nav_menu_icon_style = nav_menu_options.icon_style %}
111
+ {% assign nav_menu_icon_color = nav_menu_options.icon_color %}
112
+ {% assign nav_menu_icon_size = nav_menu_options.icon_size %}
113
+
114
+ {% assign icon_family = nav_menu_icon_family | strip | downcase %}
115
+
116
+ {% if icon_family == 'fontawesome' or icon_family == 'fontawesome5' %}
117
+ {% assign nav_menu_icon_family = 'fa' %}
118
+ {% assign nav_menu_icon_style = nav_menu_icon_style %}
119
+ {% elsif icon_family == 'mdi' %}
120
+ {% assign nav_menu_icon_family = 'mdi' %}
121
+ {% assign nav_menu_icon_style = nav_menu_icon_style %}
122
+ {% else %}
123
+ {% assign nav_menu_icon_family = 'mdi' %}
124
+ {% assign nav_menu_icon_style = nav_menu_icon_style %}
125
+ {% endif %}
126
+
127
+ {% include {{select_color}} color=nav_menu_icon_color fallback="#9E9E9E" %}
128
+ {% assign nav_menu_icon_color = color %}
129
+
130
+ {% include {{select_icon_size}} family=nav_menu_icon_family size=nav_menu_icon_size %}
131
+ {% assign nav_menu_icon_size = size %}
132
+
133
+
134
+ {% comment %} Main
135
+ -------------------------------------------------------------------------------- {% endcomment %}
136
+
137
+ <!-- [DEBUG ] [j1.modules.mmenu.html ] [collect all nav links for the navigation bar (navbar)] -->
138
+ <!-- div id="{{nav_menu_id}}" class="{{dropdown_collapse}}" -->
139
+ <!-- div class="{{dropdown_collapse}}" -->
140
+ <ul id="menu_mmenu" style="display:none">
141
+
142
+ {% for menu in navigator_menu_config %}
143
+
144
+ {% comment %} Identify the menu (item) type
145
+ ---------------------------------------------------------------------------- {% endcomment %}
146
+
147
+ {% if menu.sublevel %}
148
+ {% assign menu_type = 'sublevel_menu' %}
149
+ {% elsif menu.megamenu %}
150
+ {% assign menu_type = 'mega_menu' %}
151
+ {% elsif menu.auth_client %}
152
+ {% assign menu_type = 'auth_client' %}
153
+ {% elsif menu.theme_select %}
154
+ {% assign menu_type = 'theme_select' %}
155
+ {% elsif menu.sublevel == null and menu.megamenu == null and menu.login_menu == null and menu.theme_select == null %}
156
+ {% assign menu_type = 'top_level_item' %}
157
+ {% endif %}
158
+
159
+
160
+ {% comment %} Process all menu sections
161
+ ---------------------------------------------------------------------------- {% endcomment %}
162
+
163
+ {% case menu_type %}
164
+
165
+ {% comment %} Collect items having a SUB menue
166
+ ---------------------------------------------------------------------------- {% endcomment %}
167
+ {% when 'sublevel_menu' %}
168
+ <!-- [INFO ] [j1.modules.mmenu.html ] [found menu-type: sub-menue] -->
169
+ <!-- [INFO ] [j1.modules.mmenu.html ] [submenu level 1 detected] -->
170
+ <li>
171
+ {% if menu.icon == null %}
172
+ <a href="#">{{menu.item}}</a>
173
+ {% else %}
174
+ <a href="#"> <i class="{{nav_menu_icon_style}} {{nav_menu_icon_family}}-{{menu.icon}} {{nav_menu_icon_size}} mr-2" style="color:{{nav_menu_icon_color}}"></i>{{menu.item}}</a>
175
+ {% endif %}
176
+
177
+ <ul>
178
+ {% for level_1 in menu.sublevel %}
179
+ {% if level_1.dropdown == null %}
180
+ {% if level_1.icon == null %}
181
+ {% if level_1.target == null %}
182
+ <li><a href="{{level_1.href}}{{ext}}">{{level_1.title}}</a></li>
183
+ {% else %}
184
+ <li><a href="{{level_1.href}}{{ext}}" target="{{level_1.target}}">{{level_1.title}}</a></li>
185
+ {% endif %}
186
+ {% else %}
187
+ {% if level_1.target == null %}
188
+ <li><a href="{{level_1.href}}{{ext}}"><i class="{{nav_menu_icon_style}} {{nav_menu_icon_family}}-{{level_1.icon}} {{nav_menu_icon_size}} mr-2" style="color:{{nav_menu_icon_color}}"></i> {{level_1.title}}</a></li>
189
+ {% else %}
190
+ <li><a href="{{level_1.href}}{{ext}}" target="{{level_1.target}}"><i class="{{nav_menu_icon_style}} {{nav_menu_icon_family}}-{{level_1.icon}} {{nav_menu_icon_size}} mr-2" style="color:{{nav_menu_icon_color}}"></i> {{level_1.title}}</a></li>
191
+ {% endif %}
192
+ {% endif %}
193
+ {% endif %}
194
+
195
+ {% if level_1.dropdown %}
196
+ <!-- [INFO ] [j1.modules.mmenu.html ] [submenu level 2 (dropdown) detected] -->
197
+ <li>
198
+ {% if level_1.icon == null %}
199
+ <a href="#">{{level_1.title}}</a>
200
+ {% else %}
201
+ <a href="#"><i class="{{nav_menu_icon_style}} {{nav_menu_icon_family}}-{{level_1.icon}} {{nav_menu_icon_size}} mr-2" style="color:{{nav_menu_icon_color}}"></i> {{level_1.title}}</a>
202
+ {% endif %}
203
+
204
+ <ul>
205
+ {% for level_2 in level_1.dropdown %}
206
+ {% if level_2.dropdown == null %}
207
+ {% if level_2.icon == null %}
208
+ {% if level_2.target == null %}
209
+ <li><a href="{{level_2.href}}{{ext}}">{{level_2.title}}</a></li>
210
+ {% else %}
211
+ <li><a href="{{level_2.href}}{{ext}}" target="{{level_2.target}}">{{level_2.title}}</a></li>
212
+ {% endif %}
213
+ {% else %}
214
+ {% if level_2.target == null %}
215
+ <li><a href="{{level_2.href}}{{ext}}"><i class="{{nav_menu_icon_style}} {{nav_menu_icon_family}}-{{level_2.icon}} {{nav_menu_icon_size}} mr-2" style="color:{{nav_menu_icon_color}}"></i> {{level_2.title}}</a></li>
216
+ {% else %}
217
+ <li><a href="{{level_2.href}}{{ext}}" target="{{level_2.target}}"><i class="{{nav_menu_icon_style}} {{nav_menu_icon_family}}-{{level_2.icon}} {{nav_menu_icon_size}} mr-2" style="color:{{nav_menu_icon_color}}"></i> {{level_2.title}}</a></li>
218
+ {% endif %}
219
+ {% endif %}
220
+ {% endif %}
221
+ {% if level_2.dropdown %}
222
+ <!-- [INFO ] [j1.modules.mmenu.html ] [submenu level 3 detected (last level supported)] -->
223
+ <li>
224
+ {% if level_2.icon == null %}
225
+ <a href="#" >{{level_2.title}}</a>
226
+ {% else %}
227
+ <a href="#" ><i class="{{nav_menu_icon_style}} {{nav_menu_icon_family}}-{{level_2.icon}} {{nav_menu_icon_size}} mr-2" style="color:{{nav_menu_icon_color}}"></i> {{level_2.title}}</a>
228
+ {% endif %}
229
+
230
+ <ul>
231
+ {% for level_3 in level_2.dropdown %}
232
+ {% if level_2.icon == null %}
233
+ {% if level_3.target == null %}
234
+ <li><a href="{{level_3.href}}{{ext}}">{{level_3.title}}</a></li>
235
+ {% else %}
236
+ <li><a href="{{level_3.href}}{{ext}}" target="{{level_3.target}}">{{level_3.title}}</a></li>
237
+ {% endif %}
238
+ {% else %}
239
+ {% if level_3.target == null %}
240
+ <li><a href="{{level_3.href}}{{ext}}"><i class="{{nav_menu_icon_style}} {{nav_menu_icon_family}}-{{level_3.icon}} {{nav_menu_icon_size}} mr-2" style="color:{{nav_menu_icon_color}}"></i> {{level_3.title}}</a></li>
241
+ {% else %}
242
+ <li><a href="{{level_3.href}}{{ext}}" target="{{level_3.target}}"><i class="{{nav_menu_icon_style}} {{nav_menu_icon_family}}-{{level_3.icon}} {{nav_menu_icon_size}} mr-2" style="color:{{nav_menu_icon_color}}"></i> {{level_3.title}}</a></li>
243
+ {% endif %}
244
+ {% endif %}
245
+ {% if level_3.divider %} <li class="divider"></li> {% endif %}
246
+ {% endfor %} <!-- [INFO ] [j1.modules.mmenu.html ] [end processing: level 3] -->
247
+ </ul>
248
+ </li>
249
+ {% endif %}
250
+ {% endfor %} <!-- [INFO ] [j1.modules.mmenu.html ] [end processing: level 2] -->
251
+ </ul>
252
+ </li>
253
+ {% endif %}
254
+ {% endfor %} <!-- [INFO ] [j1.modules.mmenu.html ] [end processing: level 1] -->
255
+ </ul>
256
+ </li>
257
+ <!-- [INFO ] [j1.modules.mmenu.html ] [reset menu_type for next loop] -->
258
+ {% assign menu_type = '' %}
259
+
260
+
261
+ {% comment %} Collect items having a MEGA menu (disabled for now)
262
+ ---------------------------------------------------------------------------- {% endcomment %}
263
+ {% when 'mmmmmmmega_menu' %}
264
+ <!-- [INFO ] [j1.modules.mmenu.html ] [found menu-type: megamenu-menue] -->
265
+ <!-- calculate size of mm_columns -->
266
+ {% assign columns = menu.megamenu | size %}
267
+ {% assign columns_width_md = 12 | divided_by:columns %}
268
+ <!-- [INFO ] [j1.modules.mmenu.html ] [Calculated size of mm_columns: {{columns_width_md}}] -->
269
+
270
+ <li>
271
+ <a href="#" >{{menu.item}} </a>
272
+ <ul>
273
+ <li>
274
+ <div class="row">
275
+ {% for megabox in menu.megamenu %}
276
+ <div class="col-menu col-md-{{columns_width_md}} col-sm-6">
277
+ {% if megabox.icon == null %}
278
+ <div class="post-headline mt-2 mb-3">
279
+ <h2 class="title" style="font-size:1.25em !important">{{megabox.title}}</h2>
280
+ </div>
281
+ {% else %}
282
+ <div class="post-headline mt-2 mb-3">
283
+ <h2 class="title" style="font-size:1.25em !important"><i class="{{nav_menu_icon_style}} {{nav_menu_icon_family}}-{{megabox.icon}} mr-2" style="color:{{nav_menu_icon_color}}"></i> {{megabox.title}}</h2>
284
+ </div>
285
+ {% endif %}
286
+ <div class="content">
287
+ <ul class="menu-col">
288
+ {% for links in megabox.column %}
289
+ {% if links.icon == null %}
290
+ <li class="dropdown-megamenu-item"><a href="{{links.href}}{{ext}}" target="{{links.target}}">{{links.title}}</a></li>
291
+ {% else %}
292
+ <li class="dropdown-megamenu-item"><a href="{{links.href}}{{ext}}" target="{{links.target}}"><i class="{{nav_menu_icon_style}} {{nav_menu_icon_family}}-{{links.icon}} {{nav_menu_icon_size}} mr-2" style="color:{{nav_menu_icon_color}}"></i> {{links.title}}</a></li>
293
+ {% endif %}
294
+ {% endfor %}
295
+ </ul>
296
+ </div>
297
+ </div>
298
+ <!-- [INFO ] [j1.modules.mmenu.html ] [megamenu-menue: end megabox] -->
299
+ {% endfor %}
300
+ </div>
301
+ </li>
302
+ </ul>
303
+ </li>
304
+ <!-- [INFO ] [j1.modules.mmenu.html ] [megamenu-menue: end mega-menu] -->
305
+ <!-- [INFO ] [j1.modules.mmenu.html ] [reset menu_type for next loop] -->
306
+ {% assign menu_type = '' %}
307
+
308
+
309
+ {% comment %} Collect TOP-LEVEL items (NO sub-menu)
310
+ -------------------------------------------------------------------------- {% endcomment %}
311
+ {% when 'top_level_item' %}
312
+ <!-- [INFO ] [j1.modules.mmenu.html ] [found menu-type: menu-top-level-only] -->
313
+ {% if menu.icon == null %}
314
+ <!-- [INFO ] [j1.modules.mmenu.html ] [no icon for menu-item found -->
315
+ {% if menu.target == null %}
316
+ <li> <a href="{{menu.href}}{{ext}}">{{menu.item}}</a> </li>
317
+ {% else %}
318
+ <li> <a href="{{menu.href}}{{ext}}" target="{{menu.target}}">{{menu.item}}</a> </li>
319
+ {% endif %}
320
+ {% elsif menu.icon %}
321
+ <!-- [INFO ] [j1.modules.mmenu.html ] [no icon for menu-item found -->
322
+ {% if menu.target == null %}
323
+ <li> <a href="{{menu.href}}{{ext}}"><i class="{{nav_menu_icon_style}} {{nav_menu_icon_family}}-{{menu.icon}} {{nav_menu_icon_size}}" style="color:{{nav_menu_icon_color}}"></i> {{menu.item}}</a> </li>
324
+ {% else %}
325
+ <li> <a href="{{menu.href}}{{ext}}" target="{{menu.target}}"><i class="{{nav_menu_icon_style}} {{nav_menu_icon_family}}-{{menu.icon}} {{nav_menu_icon_size}}" style="color:{{nav_menu_icon_color}}"></i> {{menu.item}}</a> </li>
326
+ {% endif %}
327
+ {% else %}
328
+ <!-- [FATAL ] [nav_menu.menu-top-level-only ] [processing menu item failed] -->
329
+ {% endif %}
330
+ <!-- [INFO ] [j1.modules.mmenu.html ] [menu-top-level-only: end menu] -->
331
+ <!-- [INFO ] [j1.modules.mmenu.html ] [reset menu_type for next loop] -->
332
+ {% assign menu_type = '' %}
333
+
334
+
335
+ {% comment %} Collect items having a LOGIN menu (disabled for now)
336
+ ------------------------------------------------------------------------ {% endcomment %}
337
+ {% when 'aaaaaaauth_client' %}
338
+ <!-- [INFO ] [j1.modules.mmenu.html ] [found menu-type: auth_client] -->
339
+ <li id="menuBarSignInOut" class="dropdown nav-item">
340
+ <a href="#">{{menu.item}} </a>
341
+
342
+ <ul>
343
+ {% assign item_found = 'false' %}
344
+ {% for item in menu.auth_client %}
345
+
346
+ <!-- [INFO ] [j1.modules.mmenu.html ] [START: check signin] -->
347
+ {% if item.mode == 'signin' %}
348
+ <li>
349
+ <a href="#" data-toggle="modal" data-target="#modalOmniSignIn"><i class="{{nav_menu_icon_style}} {{nav_menu_icon_family}}-{{item.icon}} {{nav_menu_icon_size}}" style="color:{{nav_menu_icon_color}}"></i>{{item.title}}</a>
350
+ </li>
351
+ {% assign item_found = 'true' %}
352
+ {% endif %}
353
+ <!-- [INFO ] [j1.modules.mmenu.html ] [END: check signin] -->
354
+
355
+ <!-- [INFO ] [j1.modules.mmenu.html ] [START: check signout] -->
356
+ {% if item.mode == 'signout' %}
357
+ <li>
358
+ <a href="#" data-toggle="modal" data-target="#modalOmniSignOut"><i class="{{nav_menu_icon_style}} {{nav_menu_icon_family}}-{{item.icon}} {{nav_menu_icon_size}}" style="color:{{nav_menu_icon_color}}"></i>{{item.title}}</a>
359
+ </li>
360
+ {% assign item_found = 'true' %}
361
+ {% endif %}
362
+ <!-- [INFO ] [j1.modules.mmenu.html ] [END: check signout] -->
363
+
364
+ {% if item_found == 'false' %}
365
+ <!-- [FATAL ] [j1.modules.mmenu.html ] [no valid menu item config found] -->
366
+ <li>
367
+ {% if item.title %}
368
+ <a href="#" >Invalid: {{item.title}}</a>
369
+ {% else %}
370
+ <a href="#" >Item invalid</a>
371
+ {% endif %}
372
+ </li>
373
+ {% endif %}
374
+
375
+ {% endfor %}
376
+ <!-- [INFO ] [j1.modules.mmenu.html ] [login_menu: end menu] -->
377
+ </ul>
378
+ </li>
379
+ <!-- [INFO ] [j1.modules.mmenu.html ] [reset menu_type for next loop] -->
380
+ {% assign menu_type = '' %}
381
+
382
+ {% comment %} Collect items having a THEMES menu (disabled for now)
383
+ ---------------------------------------------------------------------- {% endcomment %}
384
+ {% when 'ttttttttheme_select' %}
385
+ {% if themer_options.enabled %}
386
+ <!-- [INFO ] [j1.modules.mmenu.html ] [found menu-type: theme_select] -->
387
+ <li>
388
+ <a href="#">{{menu.item}} </a>
389
+ {% if nav_menu_animation %}
390
+ <ul>
391
+ <!-- ul class="dropdown-menu data-in="{{nav_menu_animation}}" data-out="{{nav_menu_animation}}" -->
392
+ {% else %}
393
+ <ul>
394
+ {% endif %}
395
+ {% assign item_found = 'false' %}
396
+ {% for item in menu.theme_select %}
397
+ <!-- check for J1 Theme selector -->
398
+ {% if item.local_themes and item.local_themes == 'enabled' %}
399
+ <li>
400
+ <a href="#"><i class="{{nav_menu_icon_family}} {{nav_menu_icon_family}}-{{item.icon}} {{nav_menu_icon_size}} mr-2" style="color:{{nav_menu_icon_color}}"></i> {{item.title}}</a>
401
+ <ul id="ThemeSelect"> </ul>
402
+ </li>
403
+ {% assign item_found = 'true' %}
404
+ {% endif %} <!-- end J1 theme selector -->
405
+ <!-- check for BootSwatch theme selector -->
406
+ {% if item.bootswatch_themes and item.bootswatch_themes == 'enabled' %}
407
+ <li>
408
+ <a href="#"><i class="{{nav_menu_icon_family}} {{nav_menu_icon_family}}-{{item.icon}} {{nav_menu_icon_size}} mr-2" style="color:{{nav_menu_icon_color}}"></i> {{item.title}}</a>
409
+ <ul id="ThemeList"> </ul>
410
+ </li>
411
+ {% assign item_found = 'true' %}
412
+ {% endif %} <!-- end BootSwatch theme selector -->
413
+ {% if item.preview and item.preview == 'enabled' %}
414
+ <li>
415
+ <a href="{{theme_preview}}" ><i class="{{nav_menu_icon_family}} {{nav_menu_icon_family}}-{{item.icon}} {{nav_menu_icon_size}} mr-2" style="color:{{nav_menu_icon_color}}"></i> {{item.title}}</a>
416
+ </li>
417
+ {% assign item_found = 'true' %}
418
+ {% endif %} <!-- end theme preview -->
419
+ <!-- fallback if no valid config found -->
420
+ {% if item_found == 'false' %}
421
+ <li>
422
+ {% if item.title %}
423
+ <a href="#" >Invalid: {{item.title}}</a>
424
+ {% else %}
425
+ <a href="#" >Item invalid</a>
426
+ {% endif %}
427
+ </li>
428
+ {% endif %} <!-- end fallback -->
429
+ {% endfor %}
430
+ </ul>
431
+ </li>
432
+ <!-- [INFO ] [j1.modules.mmenu.html ] [reset menu_type for next loop] -->
433
+ {% endif %}
434
+ {% assign menu_type = '' %}
435
+
436
+
437
+ {% comment %} Collect items failed
438
+ ---------------------------------------------------------------------- {% endcomment %}
439
+ {% else %}
440
+ <!-- [FATAL ] [j1.modules.mmenu.html ] [detecting menu items|type failed] -->
441
+ {% assign menu_type = '' %}
442
+
443
+ {% endcase %}
444
+
445
+ {% endfor %}
446
+ <!-- [INFO ] [j1.modules.mmenu.html ] [nav_menu_settings: end menu] -->
447
+ </ul>
448
+ <!-- [INFO ] [j1.modules.mmenu.html ] [nav_menu_settings: end navbar] -->
449
+ <!-- div -->
450
+ <!-- [INFO ] [j1.modules.mmenu.html ] [nav_menu_settings: end processing] -->
451
+
452
+ {% endcapture %}
453
+
454
+ {{cache | pretty_print | remove:'<html><body>' | remove:'</body></html>' | strip_empty_lines}}
455
+ {% assign cache = nil %}