j1-template 2020.0.2 → 2020.0.3

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 (37) hide show
  1. checksums.yaml +4 -4
  2. data/_includes/themes/j1/modules/navigator/generator.html +24 -18
  3. data/assets/data/menu.html +4 -4
  4. data/assets/data/mmenu.html +455 -0
  5. data/assets/themes/j1/core/css/bootstrap.css +116 -93
  6. data/assets/themes/j1/core/css/bootstrap.min.css +4 -4
  7. data/assets/themes/j1/core/css/theme_extensions.css +11 -22
  8. data/assets/themes/j1/core/css/theme_extensions.min.css +1 -1
  9. data/assets/themes/j1/core/css/uno.css +11 -22
  10. data/assets/themes/j1/core/css/uno.min.css +1 -1
  11. data/assets/themes/j1/core/css/vendor.css +130 -104
  12. data/assets/themes/j1/core/css/vendor.min.css +4 -4
  13. data/assets/themes/j1/core/js/template.js +296 -24
  14. data/assets/themes/j1/core/js/template.js.map +1 -1
  15. data/assets/themes/j1/core/js/template.min.js +1 -1
  16. data/lib/j1/version.rb +1 -1
  17. data/lib/j1_app/j1_auth_manager/auth_manager.rb +8 -0
  18. data/lib/starter_web/Gemfile +1 -1
  19. data/lib/starter_web/_config.yml +1 -1
  20. data/lib/starter_web/_data/modules/defaults/navigator.yml +27 -4
  21. data/lib/starter_web/_data/modules/navigator.yml +7 -1
  22. data/lib/starter_web/_data/resources.yml +44 -5
  23. data/lib/starter_web/apps/public/{cc → cc/cc.yml} +0 -0
  24. data/lib/starter_web/apps/public/cc/index.adoc +107 -0
  25. data/lib/starter_web/assets/themes/j1/adapter/js/algolia.js +321 -0
  26. data/lib/starter_web/assets/themes/j1/adapter/js/mmenu.js +269 -0
  27. data/lib/starter_web/assets/themes/j1/adapter/js/navigator.js +21 -15
  28. data/lib/starter_web/assets/themes/j1/extensions/mmenu-light/css/mmenu-light.css +384 -0
  29. data/lib/starter_web/assets/themes/j1/extensions/mmenu-light/css/mmenu-light.min.css +10 -0
  30. data/lib/starter_web/assets/themes/j1/extensions/mmenu-light/js/mmenu-light.js +213 -0
  31. data/lib/starter_web/assets/themes/j1/extensions/mmenu-light/js/mmenu-light.min.js +205 -0
  32. data/lib/starter_web/assets/themes/j1/extensions/mmenu-light/js/mmenu-light.polyfills.js +118 -0
  33. data/lib/starter_web/package.json +1 -1
  34. data/lib/starter_web/pages/public/site_search.adoc +196 -0
  35. data/lib/starter_web/utilsrv/_defaults/package.json +1 -1
  36. data/lib/starter_web/utilsrv/package.json +1 -1
  37. metadata +13 -3
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: d7984c1650f6ccb9ef434fa65f54e85cd625bd133435fc073ba851a9cb83abe2
4
- data.tar.gz: f4b738d93a3f61f97af77ffe7d052b921fe15255752eb0b11e3b2645e81db7ce
3
+ metadata.gz: 5d3711d432bcb8345139685cd06df4952544d74b98bcce348dc3a23435d023ac
4
+ data.tar.gz: b5a7e08cdff2b51c815d86cada41ac601c57a083465d1bee31883dae2596a520
5
5
  SHA512:
6
- metadata.gz: 186ea24e4f24ee80ddb74957ace1f6a42f4ba8c741f2a7ae6fe4df1400979772a1ee9fa404a883a95e4e09e7d6c6a9236352648c66e846c0885606e65d34d75d
7
- data.tar.gz: df3b80e39aa47a1704ec296b3c8a87cdb9ff71f9b3866657ead7143d7a797dfeb12020d6e3283a7968a06382bab603a01852a4398dcdf1cf749fb49d2d7b92d2
6
+ metadata.gz: 17d0793bbc2f65a280e4447b5b8d5b2cfa47e9541c24be3d118fa51165fd50d576bc3ca428d32892201340562213b714dffe73b9d05715f611a44ad11dc2e78b
7
+ data.tar.gz: 908afd620d27216ce001e2861a8e110df0bf8fef04957df898ae37cc050f3767ed5cf55b7a82342bc2e3c908aa0e83368ca5de18a8ac74bf16cb80c413fd14af
@@ -1,7 +1,7 @@
1
- {% comment %}
1
+ {% comment %}
2
2
  # -----------------------------------------------------------------------------
3
3
  # ~/_includes/themes/j1/modules/navigator/generator.html
4
- # Liquid HTML template to create the Navigation System for J1 Template
4
+ # Liquid HTML template to create the Navigation System for J1 Template
5
5
  #
6
6
  # Product/Info:
7
7
  # https://jekyll.one
@@ -41,7 +41,7 @@
41
41
  {% assign template_config = site.data.template_settings %}
42
42
  {% assign blocks = site.data.blocks %}
43
43
  {% assign modules = site.data.modules %}
44
-
44
+
45
45
  {% comment %} Set config files
46
46
  -------------------------------------------------------------------------------- {% endcomment %}
47
47
  {% assign authentication_defaults = modules.defaults.authentication.defaults %}
@@ -92,17 +92,18 @@
92
92
  -------------------------------------------------------------------------------- {% endcomment %}
93
93
  {% assign nav_bar_id = navigator_defaults.nav_bar.xhr_container_id %}
94
94
  {% assign nav_menu_id = navigator_defaults.nav_menu.xhr_container_id %}
95
+ {% assign nav_mmenu_id = navigator_defaults.nav_mmenu.xhr_container_id %}
95
96
  {% assign nav_sidebar_id = navigator_defaults.nav_sidebar.xhr_container_id %}
96
97
  {% assign nav_quicklinks_id = navigator_defaults.nav_quicklinks.xhr_container_id %}
97
98
  {% assign authclient_modals_id = authclient_options.xhr_container_id %}
98
99
  {% assign nav_navbar_media_breakpoint = navigator_defaults.nav_bar.media_breakpoint %}
99
100
 
100
- {% comment %} Set navBarProperties
101
+ {% comment %} Set navBarProperties
101
102
  -------------------------------------------------------------------------------- {% endcomment %}
102
103
  {% if nav_fixed %}
103
104
  {% assign nav_bar_fixed = 'navbar-fixed' %}
104
105
  {% if nav_style == 'overlay' %} {% assign nav_bar_style = 'navbar-transparent' %} {% endif %}
105
- {% endif %}
106
+ {% endif %}
106
107
 
107
108
  {% if nav_color == 'light' %}
108
109
  {% assign nav_bar_color = 'light' %}
@@ -111,7 +112,6 @@
111
112
  {% capture nav_bar_default_css_classes %}navbar navigator navbar-expand-{{nav_navbar_media_breakpoint}} navbar-default{% endcapture %}
112
113
 
113
114
 
114
-
115
115
  {% comment %} Main
116
116
  -------------------------------------------------------------------------------- {% endcomment %}
117
117
 
@@ -119,11 +119,17 @@
119
119
  -------------------------------------------------------------------------------- {% endcomment %}
120
120
  <!-- [INFO ] [j1.modules.navigator.generator.html ] [ check for topsearch ] -->
121
121
  {% if topsearch_options.enabled %}
122
- <!-- [INFO ] [j1.modules.navigator.generator.html ] [ start processing: topsearch ] -->
122
+ <!-- [INFO ] [j1.modules.navigator.generator.html ] [ start processing: topsearch ] -->
123
123
  {% include {{ topsearch_create }} options=topsearch_options %}
124
124
  <!-- [INFO ] [j1.modules.navigator.generator.html ] [ end processing: topsearch ] -->
125
125
  {% endif %}
126
126
 
127
+ {% comment %} Place Mobile NAV menu container (HTML data loaded via AJAX)
128
+ ------------------------------------------------------------------------------ {% endcomment %}
129
+ <!-- [INFO ] [j1.modules.navigator.generator.html ] [ start processing: mmenu ] -->
130
+ <!-- [INFO ] [j1.modules.navigator.generator.html ] [ place nav menu container for AJAX load (mobile) ] -->
131
+ <nav id="{{nav_mmenu_id}}"></nav>
132
+
127
133
  <!-- [INFO ] [j1.modules.navigator.generator.html ] [ start processing: navigation ] -->
128
134
  <nav id="{{nav_bar_id}}" class="{{nav_bar_default_css_classes}} {{nav_bar_color}} {{nav_bar_fixed}} {{nav_bar_style}}">
129
135
 
@@ -147,35 +153,37 @@
147
153
  {% else %}
148
154
  <a class="navbar-brand" href="{{home_path}}" "> <b><font color="{{site.brand.text_color}}">{{ site.brand.text }}</font></b></a>
149
155
  {% endif %}
150
- <button type="button" class="navigator navbar-toggler animated fadeIn" data-toggle="collapse" data-target="#{{nav_menu_id}}" aria-controls="{{nav_menu_id}}" aria-expanded="false" aria-label="Toggle navigation">
156
+ <button id="navbar-toggler" type="button" class="navigator navbar-toggler animated fadeIn" data-toggle="collapse" data-target="#{{nav_menu_id}}" aria-controls="{{nav_menu_id}}" aria-expanded="false" aria-label="Toggle navigation">
151
157
  <i class="mdi mdi-menu mdi-48px"></i>
152
158
  </button>
153
159
  {% elsif brand_position == "right" %}
154
160
  <!-- [INFO ] [j1.modules.navigator.generator.html ] [ place brand to the: right ] -->
155
- <button type="button" class="navigator navbar-toggler animated fadeIn" data-toggle="collapse" data-target="#{{nav_menu_id}}" aria-controls="{{nav_menu_id}}" aria-expanded="false" aria-label="Toggle navigation">
156
- <i class="mdi mdi-menu mdi-48px"></i>
157
- </button>
158
161
  {% if site.brand.image %}
159
162
  <a class="navbar-brand" href="{{ home_path }}"> <img src="{{ site.data.template_settings.image_path }}/{{ site.brand.image }}" height="{{ site.brand.image_height }}" alt="{{ site.brand.text }}"></a>
160
163
  {% else %}
161
164
  <a class="navbar-brand" href="{{home_path}}" "> <b><font color="{{site.brand.text_color}}">{{ site.brand.text }}</font></b></a>
162
165
  {% endif %}
163
- {% else %}
164
- <!-- [INFO ] [j1.modules.navigator.generator.html ] [ place brand to default position: left ] -->
165
- <button type="button" class="navigator navbar-toggler animated fadeIn" data-toggle="collapse" data-target="#{{nav_menu_id}}" aria-controls="{{nav_menu_id}}" aria-expanded="false" aria-label="Toggle navigation">
166
+ <!-- [INFO ] [j1.modules.navigator.generator.html ] [ place menu toggler to the: left ] -->
167
+ <button id="navbar-toggler" type="button" class="navigator navbar-toggler animated fadeIn" data-toggle="collapse" data-target="#{{nav_menu_id}}" aria-controls="{{nav_menu_id}}" aria-expanded="false" aria-label="Toggle navigation">
166
168
  <i class="mdi mdi-menu mdi-48px"></i>
167
169
  </button>
170
+ {% else %}
171
+ <!-- [INFO ] [j1.modules.navigator.generator.html ] [ place brand to default position: left ] -->
168
172
  {% if site.brand.image %}
169
173
  <a class="navbar-brand" href="{{ home_path }}"> <img src="{{ site.data.template_settings.image_path }}/{{ site.brand.image }}" height="{{ site.brand.image_height }}" alt="{{ site.brand.text }}"></a>
170
174
  {% else %}
171
175
  <a class="navbar-brand" href="{{home_path}}" "> <b><font color="{{site.brand.text_color}}">{{ site.brand.text }}</font></b></a>
172
176
  {% endif %}
177
+ <!-- [INFO ] [j1.modules.navigator.generator.html ] [ place menu toggler to the: right ] -->
178
+ <button id="navbar-toggler" type="button" class="navigator navbar-toggler animated fadeIn" data-toggle="collapse" data-target="#{{nav_menu_id}}" aria-controls="{{nav_menu_id}}" aria-expanded="false" aria-label="Toggle navigation">
179
+ <i class="mdi mdi-menu mdi-48px"></i>
180
+ </button>
173
181
  {% endif %}
174
182
 
175
- {% comment %} Place NAV menu container (HTML data loaded via AJAX)
183
+ {% comment %} Place Desktop NAV menu container (HTML data loaded via AJAX)
176
184
  ------------------------------------------------------------------------------ {% endcomment %}
177
185
  <!-- [INFO ] [j1.modules.navigator.generator.html ] [ start processing: nav bar ] -->
178
- <!-- [INFO ] [j1.modules.navigator.generator.html ] [ place nav menu container for AJAX load ] -->
186
+ <!-- [INFO ] [j1.modules.navigator.generator.html ] [ place nav menu container for AJAX load (desktop) ] -->
179
187
  <div id="{{nav_menu_id}}" class="collapse"></div>
180
188
 
181
189
  {% comment %} Place|Hide Quicklinks container (HTML data loaded via AJAX)
@@ -198,5 +206,3 @@
198
206
  <div id="{{authclient_modals_id}}" class="authclient_modals"></div>
199
207
  <!-- [INFO ] [j1.modules.navigator.generator.html ] [ end processing: auth_client ] -->
200
208
  <!-- [INFO ] [j1.modules.navigator.generator.html ] [ end processing: navigation ] -->
201
-
202
-
@@ -138,9 +138,9 @@ regenerate: true
138
138
  <!-- div id="{{nav_menu_id}}" class="{{dropdown_collapse}}" -->
139
139
  <!-- div class="{{dropdown_collapse}}" -->
140
140
  {% if nav_menu_animation %}
141
- <ul class="nav navbar-nav navigator navbar-{{nav_bar_position}}" data-in="{{animate_in}}" data-out="{{animate_out}}">
141
+ <ul id="desktop_menu" class="nav navbar-nav navigator navbar-{{nav_bar_position}}" data-in="{{animate_in}}" data-out="{{animate_out}}">
142
142
  {% else %}
143
- <ul class="nav navbar-nav navigator navbar-{{nav_bar_position}}" data-in="fadeIn" data-out="fadeOut">
143
+ <ul id="desktop_menu" class="nav navbar-nav navigator navbar-{{nav_bar_position}}" data-in="fadeIn" data-out="fadeOut">
144
144
  {% endif %}
145
145
 
146
146
  {% for menu in navigator_menu_config %}
@@ -460,10 +460,10 @@ regenerate: true
460
460
  <!-- [INFO ] [j1.modules.navigator.menu.html ] [nav_menu_settings: end menu] -->
461
461
  </ul>
462
462
  <!-- [INFO ] [j1.modules.navigator.menu.html ] [nav_menu_settings: end navbar] -->
463
- <!-- div -->
463
+ <!-- div -->
464
464
  <!-- [INFO ] [j1.modules.navigator.menu.html ] [nav_menu_settings: end processing] -->
465
465
 
466
466
  {% endcapture %}
467
467
 
468
468
  {{ cache | pretty_print | remove:'<html><body>' | remove:'</body></html>' | strip_empty_lines }}
469
- {% assign cache = nil %}
469
+ {% assign cache = nil %}
@@ -0,0 +1,455 @@
1
+ ---
2
+ regenerate: true
3
+ ---
4
+
5
+ {% capture cache %}
6
+
7
+ {% comment %}
8
+ # -----------------------------------------------------------------------------
9
+ # ~/assets/data/menu.html
10
+ # Liquid procedure to generate HTML portion of the main menu bar
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 %}