j1-template 2020.0.0 → 2020.0.5

Sign up to get free protection for your applications and to get access to all the features.
Files changed (80) 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 +150 -23
  18. data/assets/themes/j1/core/css/theme_extensions.min.css +1 -1
  19. data/assets/themes/j1/core/css/uno.css +150 -23
  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/layouts/default.yml +5 -5
  33. data/lib/starter_web/_data/modules/authentication.yml +4 -4
  34. data/lib/starter_web/_data/modules/cookie_consent.yml +10 -10
  35. data/lib/starter_web/_data/modules/defaults/navigator.yml +25 -24
  36. data/lib/starter_web/_data/modules/defaults/ssm.yml +50 -0
  37. data/lib/starter_web/_data/modules/defaults/toccer.yml +1 -1
  38. data/lib/starter_web/_data/modules/navigator.yml +161 -97
  39. data/lib/starter_web/_data/modules/navigator.yml.new +232 -0
  40. data/lib/starter_web/_data/modules/ssm.yml +133 -0
  41. data/lib/starter_web/_data/modules/toccer.yml +2 -1
  42. data/lib/starter_web/_data/private.yml +66 -98
  43. data/lib/starter_web/_data/resources.yml +76 -10
  44. data/lib/starter_web/apps/public/{cc → cc/cc.yml} +0 -0
  45. data/lib/starter_web/apps/public/cc/index.adoc +107 -0
  46. data/lib/starter_web/assets/images/modules/icons/j1/{j1..ico → j1.ico} +0 -0
  47. data/lib/starter_web/assets/themes/j1/adapter/js/algolia.js +321 -0
  48. data/lib/starter_web/assets/themes/j1/adapter/js/back2top.js +2 -2
  49. data/lib/starter_web/assets/themes/j1/adapter/js/cookie_consent.js +38 -28
  50. data/lib/starter_web/assets/themes/j1/adapter/js/gallery_customizer.js +7 -7
  51. data/lib/starter_web/assets/themes/j1/adapter/js/j1.js +55 -30
  52. data/lib/starter_web/assets/themes/j1/adapter/js/logger.js +2 -2
  53. data/lib/starter_web/assets/themes/j1/adapter/js/mmenu.js +439 -0
  54. data/lib/starter_web/assets/themes/j1/adapter/js/mmenu.js.new +432 -0
  55. data/lib/starter_web/assets/themes/j1/adapter/js/navigator.js +29 -47
  56. data/lib/starter_web/assets/themes/j1/adapter/js/ssm.js +496 -0
  57. data/lib/starter_web/assets/themes/j1/adapter/js/themer.js +2 -1
  58. data/lib/starter_web/assets/themes/j1/adapter/js/toccer.js +40 -36
  59. data/lib/starter_web/assets/themes/j1/extensions/mmenu-light/css/mmenu-light.css +384 -0
  60. data/lib/starter_web/assets/themes/j1/extensions/mmenu-light/css/mmenu-light.min.css +384 -0
  61. data/lib/starter_web/assets/themes/j1/extensions/mmenu-light/css/themes/uno.css +95 -0
  62. data/lib/starter_web/assets/themes/j1/extensions/mmenu-light/css/themes/uno.min.css +95 -0
  63. data/lib/starter_web/assets/themes/j1/extensions/mmenu-light/js/mmenu-light.js +11 -0
  64. data/lib/starter_web/assets/themes/j1/extensions/mmenu-light/js/mmenu-light.min.js +11 -0
  65. data/lib/starter_web/assets/themes/j1/extensions/mmenu-light/js/mmenu-light.polyfills.js +118 -0
  66. data/lib/starter_web/assets/themes/j1/extensions/mmenu-light/js/mmenu-light.polyfills.min.js +118 -0
  67. data/lib/starter_web/collections/posts/public/{jekyll → featured}/_posts/2018-05-01-confusion-about-base-url.adoc +0 -0
  68. data/lib/starter_web/package.json +1 -1
  69. data/lib/starter_web/pages/public/learn/floating_sidebar.adoc +199 -0
  70. data/lib/starter_web/pages/public/learn/roundtrip/100_present_images.adoc +2 -2
  71. data/lib/starter_web/pages/public/learn/roundtrip/200_typography.adoc +2 -2
  72. data/lib/starter_web/pages/public/learn/whats_up.adoc +12 -11
  73. data/lib/starter_web/pages/public/legal/en/500_support.adoc +1 -1
  74. data/lib/starter_web/pages/public/previewer/000_includes/tables/mdi_icons/200_rotate.asciidoc +1 -1
  75. data/lib/starter_web/pages/public/previewer/mdi_icons_preview.adoc +2 -3
  76. data/lib/starter_web/pages/public/previewer/twitter_emoji_preview.adoc +3 -3
  77. data/lib/starter_web/pages/public/site_search.adoc +196 -0
  78. data/lib/starter_web/utilsrv/_defaults/package.json +1 -1
  79. data/lib/starter_web/utilsrv/package.json +1 -1
  80. metadata +27 -6
@@ -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="mobile_menu">
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 %}