j1-template 2020.0.3 → 2020.0.4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (42) hide show
  1. checksums.yaml +4 -4
  2. data/_includes/themes/j1/layouts/content_generator_blog_archive.html +21 -17
  3. data/_includes/themes/j1/layouts/content_generator_collection.html +14 -11
  4. data/_includes/themes/j1/layouts/content_generator_page.html +15 -16
  5. data/_includes/themes/j1/layouts/content_generator_post.html +17 -22
  6. data/_includes/themes/j1/modules/navigator/generator.html +31 -25
  7. data/assets/data/{sidebar.html → mmenu_sidebar.html} +24 -18
  8. data/assets/data/mmenu_toc.html +45 -0
  9. data/assets/data/quicklinks.html +12 -4
  10. data/assets/error_pages/HTTP204.html +3 -3
  11. data/assets/themes/j1/core/css/theme_extensions.css +2 -2
  12. data/assets/themes/j1/core/css/theme_extensions.min.css +1 -1
  13. data/assets/themes/j1/core/css/uno.css +2 -2
  14. data/assets/themes/j1/core/css/uno.min.css +1 -1
  15. data/assets/themes/j1/core/js/template.js +2 -2
  16. data/assets/themes/j1/core/js/template.js.map +1 -1
  17. data/assets/themes/j1/core/js/template.min.js +1 -1
  18. data/lib/j1/version.rb +1 -1
  19. data/lib/starter_web/Gemfile +1 -1
  20. data/lib/starter_web/_config.yml +12 -139
  21. data/lib/starter_web/_data/modules/defaults/navigator.yml +2 -24
  22. data/lib/starter_web/_data/modules/defaults/toccer.yml +1 -1
  23. data/lib/starter_web/_data/modules/navigator.yml +158 -97
  24. data/lib/starter_web/_data/modules/toccer.yml +2 -1
  25. data/lib/starter_web/_data/resources.yml +8 -2
  26. data/lib/starter_web/assets/themes/j1/adapter/js/mmenu.js +207 -44
  27. data/lib/starter_web/assets/themes/j1/adapter/js/navigator.js +8 -32
  28. data/lib/starter_web/assets/themes/j1/adapter/js/toccer.js +40 -36
  29. data/lib/starter_web/assets/themes/j1/extensions/mmenu-light/css/mmenu-light.min.css +375 -1
  30. data/lib/starter_web/assets/themes/j1/extensions/mmenu-light/css/themes/uno.css +95 -0
  31. data/lib/starter_web/assets/themes/j1/extensions/mmenu-light/css/themes/uno.min.css +95 -0
  32. data/lib/starter_web/assets/themes/j1/extensions/mmenu-light/js/mmenu-light.js +3 -1
  33. data/lib/starter_web/assets/themes/j1/extensions/mmenu-light/js/mmenu-light.min.js +11 -3
  34. data/lib/starter_web/assets/themes/j1/extensions/mmenu-light/js/mmenu-light.polyfills.min.js +118 -0
  35. data/lib/starter_web/collections/posts/public/{jekyll → featured}/_posts/2018-05-01-confusion-about-base-url.adoc +0 -0
  36. data/lib/starter_web/package.json +1 -1
  37. data/lib/starter_web/pages/public/learn/roundtrip/100_present_images.adoc +2 -2
  38. data/lib/starter_web/pages/public/learn/roundtrip/200_typography.adoc +2 -2
  39. data/lib/starter_web/pages/public/legal/en/500_support.adoc +1 -1
  40. data/lib/starter_web/utilsrv/_defaults/package.json +1 -1
  41. data/lib/starter_web/utilsrv/package.json +1 -1
  42. metadata +8 -4
@@ -72,8 +72,6 @@ regenerate: true
72
72
  {% assign nav_quicklinks_settings = navigator_settings.nav_quicklinks %}
73
73
  {% assign nav_topsearch_defaults = navigator_defaults.nav_topsearch %}
74
74
  {% assign nav_topsearch_settings = navigator_settings.nav_topsearch %}
75
- {% assign nav_sidebar_defaults = navigator_defaults.nav_sidebar %}
76
- {% assign nav_sidebar_settings = navigator_settings.nav_sidebar %}
77
75
  {% assign nav_authclient_defaults = authentication_defaults.auth_client %}
78
76
  {% assign nav_authclient_settings = authentication_settings.auth_client %}
79
77
 
@@ -84,12 +82,10 @@ regenerate: true
84
82
  {% assign nav_menu_options = nav_menu_defaults | merge: nav_menu_settings %}
85
83
  {% assign quicklinks_options = nav_quicklinks_defaults | merge: nav_quicklinks_settings %}
86
84
  {% assign topsearch_options = nav_topsearch_defaults | merge: nav_topsearch_settings %}
87
- {% assign sidebar_options = nav_sidebar_defaults | merge: nav_sidebar_settings %}
88
85
  {% assign authclient_options = nav_authclient_defaults | merge: nav_authclient_settings %}
89
86
 
90
87
  {% assign nav_bar_id = navigator_defaults.nav_bar.id %}
91
88
  {% assign nav_menu_id = navigator_defaults.nav_menu.id %}
92
- {% assign nav_sidebar_id = navigator_defaults.nav_sidebar.id %}
93
89
  {% assign nav_quicklinks_id = navigator_defaults.nav_quicklinks.id %}
94
90
  {% assign nav_navbar_media_breakpoint = navigator_defaults.nav_bar.media_breakpoint %}
95
91
  {% assign authclient_modals_id = navigator_defaults.nav_authclient.xhr_container_id %}
@@ -142,14 +138,12 @@ j1.adapter['navigator'] = (function (j1, window) {
142
138
 
143
139
  var nav_menu_id = '{{nav_menu_id}}';
144
140
  var nav_quicklinks_id = '{{nav_quicklinks_id}}';
145
- var nav_sidebar_id = '{{nav_sidebar_id}}';
146
141
  var authclient_modals_id = '{{authclient_modals_id}}';
147
142
 
148
143
  var colors_data_path = '{{template_config.colors_data_path}}';
149
144
  var font_size_data_path = '{{template_config.font_size_data_path}}';
150
145
  var nav_menu_data_path = '{{nav_menu_options.data_path}}';
151
146
  var nav_quicklinks_data_path = '{{quicklinks_options.data_path}}';
152
- var nav_sidebar_data_path = '{{sidebar_options.data_path}}';
153
147
  var authclient_modals_data_path = '{{authclient_options.xhr_data_path}}';
154
148
 
155
149
  var cookie_names = j1.getCookieNames();
@@ -206,13 +200,11 @@ j1.adapter['navigator'] = (function (j1, window) {
206
200
  var navMenuConfig = {};
207
201
  var navQuicklinksConfig = {};
208
202
  var navTopsearchConfig = {};
209
- var navSidebarConfig = {};
210
203
  var navAuthClientConfig = {};
211
204
  var navBarOptions = {};
212
205
  var navMenuOptions = {};
213
206
  var navQuicklinksOptions = {};
214
207
  var navTopsearchOptions = {};
215
- var navSidebarOptions = {};
216
208
  var navAuthClientOptions = {};
217
209
  var navAuthMAnagerConfig = {};
218
210
 
@@ -221,7 +213,6 @@ j1.adapter['navigator'] = (function (j1, window) {
221
213
  navMenuConfig = $.extend({}, {{nav_menu_options | replace: '=>', ':' }});
222
214
  navQuicklinksConfig = $.extend({}, {{quicklinks_options | replace: '=>', ':' }});
223
215
  navTopsearchConfig = $.extend({}, {{topsearch_options | replace: '=>', ':' }});
224
- navSidebarConfig = $.extend({}, {{sidebar_options | replace: '=>', ':' }});
225
216
  navAuthClientConfig = $.extend({}, {{authclient_options | replace: '=>', ':' }});
226
217
 
227
218
  navAuthMAnagerConfig = $.extend({}, {{authentication_options | replace: '=>', ':' }});
@@ -234,7 +225,6 @@ j1.adapter['navigator'] = (function (j1, window) {
234
225
  navMenuOptions = j1.mergeData(navMenuConfig, navDefaults.nav_menu);
235
226
  navQuicklinksOptions = j1.mergeData(navQuicklinksConfig, navDefaults.nav_quicklinks);
236
227
  navTopsearchOptions = j1.mergeData(navTopsearchConfig, navDefaults.nav_topsearch);
237
- navSidebarOptions = j1.mergeData(navSidebarConfig, navDefaults.nav_sidebar);
238
228
  navAuthClientConfig = j1.mergeData(navAuthClientConfig, navDefaults.nav_authclient);
239
229
 
240
230
  // save config settings into the navigator object for global access
@@ -244,7 +234,6 @@ j1.adapter['navigator'] = (function (j1, window) {
244
234
  j1.adapter.navigator['navMenuOptions'] = navMenuOptions;
245
235
  j1.adapter.navigator['navQuicklinksOptions'] = navQuicklinksOptions;
246
236
  j1.adapter.navigator['navTopsearchOptions'] = navTopsearchOptions;
247
- j1.adapter.navigator['navSidebarOptions'] = navSidebarOptions;
248
237
  j1.adapter.navigator['navAuthClientConfig'] = navAuthClientConfig;
249
238
  j1.adapter.navigator['navAuthManagerConfig'] = navAuthMAnagerConfig;
250
239
 
@@ -260,27 +249,22 @@ j1.adapter['navigator'] = (function (j1, window) {
260
249
  // -----------------------------------------------------------------------
261
250
  logger.info('run deferred data load');
262
251
  $.when (
263
- j1.xhrData (// sidebar
264
- 'j1.adapter.navigator', {
265
- xhr_container_id: navSidebarOptions.xhr_container_id,
266
- xhr_data_path: navSidebarOptions.xhr_data_path },
267
- null),
268
- j1.xhrData (// quicklinks
252
+ j1.xhrData ( // quicklinks
269
253
  'j1.adapter.navigator', {
270
254
  xhr_container_id: navQuicklinksOptions.xhr_container_id,
271
255
  xhr_data_path: navQuicklinksOptions.xhr_data_path },
272
256
  null),
273
- j1.xhrData (// authclient
257
+ j1.xhrData ( // authclient
274
258
  'j1.adapter.navigator', {
275
259
  xhr_container_id: navAuthClientConfig.xhr_container_id,
276
260
  xhr_data_path: navAuthClientConfig.xhr_data_path },
277
261
  null),
278
- j1.xhrData (// menubar
262
+ j1.xhrData ( // menubar
279
263
  'j1.adapter.navigator', {
280
264
  xhr_container_id: navMenuOptions.xhr_container_id,
281
265
  xhr_data_path: navMenuOptions.xhr_data_path },
282
266
  'data_loaded'))
283
- .done (function (sideBar, quickLinks, authclient, menuBar) {
267
+ .done (function (quickLinks, authclient, menuBar) {
284
268
  // ---------------------------------------------------------------------
285
269
  // core initializer
286
270
  // ---------------------------------------------------------------------
@@ -330,8 +314,7 @@ j1.adapter['navigator'] = (function (j1, window) {
330
314
  logger.info('apply styles');
331
315
  _this.setCSS (
332
316
  navBarOptions, navMenuOptions,
333
- navQuicklinksOptions, navTopsearchOptions,
334
- navSidebarOptions
317
+ navQuicklinksOptions, navTopsearchOptions
335
318
  );
336
319
 
337
320
  logger.info('init auth client');
@@ -375,12 +358,12 @@ j1.adapter['navigator'] = (function (j1, window) {
375
358
 
376
359
  // -------------------------------------------------------------------------
377
360
  // Initialize JS portion for the dialogs (modals) used by J1AuthClient
378
- // NOTE: Currently cookie|sidebar updates NOT processed at the NAV module
361
+ // NOTE: Currently cookie updates NOT processed at the NAV module
379
362
  // All updates on Cookies are managed by Cookie Consent.
380
363
  // To be considered to re-add cookie updates for the auth state
381
364
  // -------------------------------------------------------------------------
382
365
  initAuthClient: function(auth_config) {
383
- var logger = log4javascript.getLogger('j1.adapter.navigator.initAuthClient');
366
+ var logger = log4javascript.getLogger('j1.adapter.navigator.initAuthClient');
384
367
  var user_session = j1.readCookie(cookie_user_session_name);
385
368
 
386
369
  _this.modalEventHandler(auth_config);
@@ -532,7 +515,7 @@ j1.adapter['navigator'] = (function (j1, window) {
532
515
  // setCSS
533
516
  // Set dynamic CSS styles
534
517
  // -------------------------------------------------------------------------
535
- setCSS: function (navBarOptions, navMenuOptions, navQuicklinksOptions, navTopsearchOptions, navSidebarOptions) {
518
+ setCSS: function (navBarOptions, navMenuOptions, navQuicklinksOptions, navTopsearchOptions) {
536
519
  var logger = log4javascript.getLogger("j1.adapter.navigator.setCSS");
537
520
  var gridBreakpoint_lg = '992px';
538
521
  var gridBreakpoint_md = '768px';
@@ -577,9 +560,6 @@ j1.adapter['navigator'] = (function (j1, window) {
577
560
  navTopsearchOptions.input_color = j1.setColorData(navTopsearchOptions.input_color);
578
561
  navTopsearchOptions.background_color = j1.setColorData(navTopsearchOptions.background_color);
579
562
 
580
- {% comment %} Set|Resolve navSidebarOptions
581
- -------------------------------------------------------------------------- {% endcomment %}
582
- navSidebarOptions.background_color = j1.setColorData(navSidebarOptions.background_color);
583
563
 
584
564
  {% comment %} Set dymanic styles
585
565
  -------------------------------------------------------------------------- {% endcomment %}
@@ -676,10 +656,6 @@ j1.adapter['navigator'] = (function (j1, window) {
676
656
  $('head').append("<style>.top-search .input-group-addon { color: " +navTopsearchOptions.input_color+ " !important; }</style>");
677
657
  $('head').append("<style>.top-search .input.form-control { color: " +navTopsearchOptions.input_color+ " !important; }</style>");
678
658
 
679
- {% comment %} navSidebar styles
680
- -------------------------------------------------------------------------- {% endcomment %}
681
- $('head').append("<style>.side { background-color: " +navSidebarOptions.background_color+ " !important; }</style>");
682
-
683
659
  return true;
684
660
  }, // END setCSS
685
661
 
@@ -188,41 +188,45 @@ j1.adapter['toccer'] = (function () {
188
188
  _this.setState('running');
189
189
  logger.info('state: ' + _this.getState());
190
190
 
191
-
192
- var bg_primary = j1.getStyleValue('bg-primary', 'background-color');
193
-
194
- tocbot.init({
195
- log: {{ toccer_options.log | json }},
196
- activeLinkColor: {{ toccer_options.activeLinkColor | json }},
197
- tocSelector: {{ toccer_options.tocSelector | json }},
198
- headingSelector: {{ toccer_options.headingSelector | json }},
199
- ignoreSelector: {{ toccer_options.ignoreSelector | json }},
200
- contentSelector: {{ toccer_options.contentSelector | json }},
201
- collapseDepth: settings.collapseDepth,
202
- throttleTimeout: {{ toccer_options.throttleTimeout | json }},
203
- includeHtml: false,
204
- linkClass: 'toc-link',
205
- extraLinkClasses: '',
206
- activeLinkClass: 'is-active-link',
207
- listClass: 'toc-list',
208
- extraListClasses: '',
209
- isCollapsedClass: 'is-collapsed',
210
- collapsibleClass: 'is-collapsible',
211
- listItemClass: 'toc-list-item',
212
- positionFixedSelector: '',
213
- positionFixedClass: 'is-position-fixed',
214
- fixedSidebarOffset: 'auto',
215
- smoothScroll: {{ toccer_options.smoothScrollEnabled | json }},
216
- smoothScrollOffset: {{ toccer_options.smoothScrollOffset | json }},
217
- smoothScrollDuration: {{ toccer_options.smoothScrollDuration | json }},
218
- headingsOffset: {{ toccer_options.headingsOffset | json }},
219
- throttleTimeout: {{ toccer_options.throttleTimeout | json }}
220
- });
221
-
222
- if (tocbot.options.log == true) {
223
- // Writes all of the current option settings to JS console
224
- console.log(tocbot.options);
225
- }
191
+ // jadams, 2020-06-23: TODO, tocbot should be fired if page|mmenu
192
+ // is ready
193
+ //
194
+ setTimeout (function () {
195
+ var bg_primary = j1.getStyleValue('bg-primary', 'background-color');
196
+
197
+ tocbot.init({
198
+ log: {{ toccer_options.log | json }},
199
+ activeLinkColor: {{ toccer_options.activeLinkColor | json }},
200
+ tocSelector: {{ toccer_options.tocSelector | json }},
201
+ headingSelector: {{ toccer_options.headingSelector | json }},
202
+ ignoreSelector: {{ toccer_options.ignoreSelector | json }},
203
+ contentSelector: {{ toccer_options.contentSelector | json }},
204
+ collapseDepth: settings.collapseDepth,
205
+ throttleTimeout: {{ toccer_options.throttleTimeout | json }},
206
+ includeHtml: false,
207
+ linkClass: 'toc-link',
208
+ extraLinkClasses: '',
209
+ activeLinkClass: 'is-active-link',
210
+ listClass: 'toc-list',
211
+ extraListClasses: '',
212
+ isCollapsedClass: 'is-collapsed',
213
+ collapsibleClass: 'is-collapsible',
214
+ listItemClass: 'toc-list-item',
215
+ positionFixedSelector: '',
216
+ positionFixedClass: 'is-position-fixed',
217
+ fixedSidebarOffset: 'auto',
218
+ smoothScroll: {{ toccer_options.smoothScrollEnabled | json }},
219
+ smoothScrollOffset: {{ toccer_options.smoothScrollOffset | json }},
220
+ smoothScrollDuration: {{ toccer_options.smoothScrollDuration | json }},
221
+ headingsOffset: {{ toccer_options.headingsOffset | json }},
222
+ throttleTimeout: {{ toccer_options.throttleTimeout | json }}
223
+ });
224
+
225
+ if (tocbot.options.log == true) {
226
+ // Writes all of the current option settings to JS console
227
+ console.log(tocbot.options);
228
+ }
229
+ }, {{toccer_options.delay}});
226
230
 
227
231
  return true;
228
232
  }, // END initToccerCore
@@ -350,4 +354,4 @@ j1.adapter['toccer'] = (function () {
350
354
 
351
355
  {% endcapture %}
352
356
  {{ j1_cache | strip_empty_lines }}
353
- {% assign j1_cache = nil %}
357
+ {% assign j1_cache = nil %}
@@ -7,4 +7,378 @@
7
7
  *
8
8
  * License: CC-BY-4.0
9
9
  * http://creativecommons.org/licenses/by/4.0/
10
- */:root{--mm-ocd-width:80%;--mm-ocd-min-width:200px;--mm-ocd-max-width:440px}body.mm-ocd-opened{overflow-y:hidden;-ms-scroll-chaining:none;overscroll-behavior:none}.mm-ocd{position:fixed;top:0;right:0;bottom:100%;left:0;z-index:9999;overflow:hidden;-ms-scroll-chaining:none;overscroll-behavior:contain;background:rgba(0,0,0,0);-webkit-transition-property:bottom,background-color;-o-transition-property:bottom,background-color;transition-property:bottom,background-color;-webkit-transition-duration:0s,.3s;-o-transition-duration:0s,.3s;transition-duration:0s,.3s;-webkit-transition-timing-function:ease;-o-transition-timing-function:ease;transition-timing-function:ease;-webkit-transition-delay:.45s,.15s;-o-transition-delay:.45s,.15s;transition-delay:.45s,.15s}.mm-ocd--open{bottom:0;background:rgba(0,0,0,.25);-webkit-transition-delay:0s;-o-transition-delay:0s;transition-delay:0s}.mm-ocd__content{position:absolute;top:0;bottom:0;z-index:2;width:80%;width:var(--mm-ocd-width);min-width:200px;min-width:var(--mm-ocd-min-width);max-width:440px;max-width:var(--mm-ocd-max-width);background:#fff;-webkit-transition-property:-webkit-transform;transition-property:-webkit-transform;-o-transition-property:transform;transition-property:transform;transition-property:transform,-webkit-transform;-webkit-transition-duration:.3s;-o-transition-duration:.3s;transition-duration:.3s;-webkit-transition-timing-function:ease;-o-transition-timing-function:ease;transition-timing-function:ease}.mm-ocd--left .mm-ocd__content{left:0;-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}.mm-ocd--right .mm-ocd__content{right:0;-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}.mm-ocd--open .mm-ocd__content{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}.mm-ocd__backdrop{position:absolute;top:0;bottom:0;z-index:3;width:calc(100% - 80%);width:calc(100% - var(--mm-ocd-width));min-width:calc(100% - 440px);min-width:calc(100% - var(--mm-ocd-max-width));max-width:calc(100% - 200px);max-width:calc(100% - var(--mm-ocd-min-width));background:rgba(3,2,1,0)}.mm-ocd--left .mm-ocd__backdrop{right:0}.mm-ocd--right .mm-ocd__backdrop{left:0}.mm-spn,.mm-spn a,.mm-spn li,.mm-spn span,.mm-spn ul{display:block;padding:0;margin:0;-webkit-box-sizing:border-box;box-sizing:border-box}:root{--mm-spn-item-height:50px;--mm-spn-item-indent:20px;--mm-spn-line-height:24px}.mm-spn{width:100%;height:100%;-webkit-tap-highlight-color:transparent;-webkit-overflow-scrolling:touch;overflow:hidden;-webkit-clip-path:inset(0 0 0 0);clip-path:inset(0 0 0 0);-webkit-transform:translateX(0);-ms-transform:translateX(0);transform:translateX(0)}.mm-spn ul{-webkit-overflow-scrolling:touch;position:fixed;top:0;left:100%;bottom:0;z-index:2;width:130%;padding-right:30%;line-height:24px;line-height:var(--mm-spn-line-height);overflow:visible;overflow-y:auto;background:inherit;-webkit-transition:left .3s ease 0s;-o-transition:left .3s ease 0s;transition:left .3s ease 0s;cursor:default}.mm-spn ul:after{content:'';display:block;height:50px;height:var(--mm-spn-item-height)}.mm-spn>ul{left:0}.mm-spn ul.mm-spn--open{left:0}.mm-spn ul.mm-spn--parent{left:-30%;overflow-y:hidden}.mm-spn li{position:relative;background:inherit;cursor:pointer}.mm-spn li:before{content:'';display:block;position:absolute;top:25px;top:calc(var(--mm-spn-item-height)/ 2);right:25px;right:calc(var(--mm-spn-item-height)/ 2);z-index:0;width:10px;height:10px;border-top:2px solid;border-right:2px solid;-webkit-transform:rotate(45deg) translate(0,-50%);-ms-transform:rotate(45deg) translate(0,-50%);transform:rotate(45deg) translate(0,-50%);opacity:.4}.mm-spn li:after{content:'';display:block;margin-left:20px;margin-left:var(--mm-spn-item-indent);border-top:1px solid;opacity:.15}.mm-spn a,.mm-spn span{position:relative;z-index:1;padding:13px 20px;padding:calc((var(--mm-spn-item-height) - var(--mm-spn-line-height))/ 2) var(--mm-spn-item-indent)}.mm-spn a{background:inherit;color:inherit;text-decoration:none}.mm-spn a:not(:last-child){width:calc(100% - 50px);width:calc(100% - var(--mm-spn-item-height))}.mm-spn a:not(:last-child):after{content:'';display:block;position:absolute;top:0;right:0;bottom:0;border-right:1px solid;opacity:.15}.mm-spn span{background:0}.mm-spn.mm-spn--navbar{cursor:pointer}.mm-spn.mm-spn--navbar:before{content:'';display:block;position:absolute;top:25px;top:calc(var(--mm-spn-item-height)/ 2);left:20px;left:var(--mm-spn-item-indent);width:10px;height:10px;margin-top:2px;border-top:2px solid;border-left:2px solid;-webkit-transform:rotate(-45deg) translate(50%,-50%);-ms-transform:rotate(-45deg) translate(50%,-50%);transform:rotate(-45deg) translate(50%,-50%);opacity:.4}.mm-spn.mm-spn--navbar.mm-spn--main{cursor:default}.mm-spn.mm-spn--navbar.mm-spn--main:before{content:none;display:none}.mm-spn.mm-spn--navbar:after{content:attr(data-mm-spn-title);display:block;position:absolute;top:0;left:0;right:0;height:50px;height:var(--mm-spn-item-height);padding:0 40px;padding:0 calc(var(--mm-spn-item-indent) * 2);line-height:50px;line-height:var(--mm-spn-item-height);opacity:.4;text-align:center;overflow:hidden;white-space:nowrap;-o-text-overflow:ellipsis;text-overflow:ellipsis}.mm-spn.mm-spn--navbar.mm-spn--main:after{padding-left:20px;padding-left:var(--mm-spn-item-indent)}.mm-spn.mm-spn--navbar ul{top:51px;top:calc(var(--mm-spn-item-height)+1px)}.mm-spn.mm-spn--navbar ul:before{content:'';display:block;position:fixed;top:inherit;z-index:2;width:100%;border-top:1px solid currentColor;opacity:.15}.mm-spn.mm-spn--light{color:#444;background:#f3f3f3}.mm-spn.mm-spn--dark{color:#ddd;background:#333}.mm-spn.mm-spn--vertical{overflow-y:auto}.mm-spn.mm-spn--vertical ul{width:100%;padding-right:0;position:static}.mm-spn.mm-spn--vertical ul ul{display:none;padding-left:20px;padding-left:var(--mm-spn-item-indent)}.mm-spn.mm-spn--vertical ul ul:after{height:25px;height:calc(var(--mm-spn-item-height)/ 2)}.mm-spn.mm-spn--vertical ul.mm-spn--open{display:block}.mm-spn.mm-spn--vertical li.mm-spn--open:before{-webkit-transform:rotate(135deg) translate(-50%,0);-ms-transform:rotate(135deg) translate(-50%,0);transform:rotate(135deg) translate(-50%,0)}.mm-spn.mm-spn--vertical ul ul li:last-child:after{content:none;display:none}
10
+ */
11
+
12
+ :root {
13
+ --mm-ocd-width: 80%;
14
+ --mm-ocd-min-width: 200px;
15
+ --mm-ocd-max-width: 440px
16
+ }
17
+
18
+ body.mm-ocd-opened {
19
+ overflow-y: hidden;
20
+ -ms-scroll-chaining: none;
21
+ overscroll-behavior: none
22
+ }
23
+
24
+ /*
25
+ jadams, 2020-06-20: CSS/Offset to the NAV bar should be calculted
26
+ at runtime as a dyn style
27
+ */
28
+ .mm-ocd {
29
+ position: fixed;
30
+ top: 80px; /* jadams, 2020-06-20: offset to the NAV bar */
31
+ right: 0;
32
+ bottom: 100%;
33
+ left: 0;
34
+ z-index: 9999;
35
+ overflow: hidden;
36
+ -ms-scroll-chaining: none;
37
+ overscroll-behavior: contain;
38
+ background: rgba(0, 0, 0, 0);
39
+ -webkit-transition-property: bottom, background-color;
40
+ -o-transition-property: bottom, background-color;
41
+ transition-property: bottom, background-color;
42
+ -webkit-transition-duration: 0s, .3s;
43
+ -o-transition-duration: 0s, .3s;
44
+ transition-duration: 0s, .3s;
45
+ -webkit-transition-timing-function: ease;
46
+ -o-transition-timing-function: ease;
47
+ transition-timing-function: ease;
48
+ -webkit-transition-delay: .45s, .15s;
49
+ -o-transition-delay: .45s, .15s;
50
+ transition-delay: .45s, .15s
51
+ }
52
+
53
+ .mm-ocd--open {
54
+ bottom: 0;
55
+ background: rgba(0, 0, 0, .25);
56
+ -webkit-transition-delay: 0s;
57
+ -o-transition-delay: 0s;
58
+ transition-delay: 0s
59
+ }
60
+
61
+ .mm-ocd__content {
62
+ position: absolute;
63
+ top: 0;
64
+ bottom: 0;
65
+ z-index: 2;
66
+ width: 80%;
67
+ width: var(--mm-ocd-width);
68
+ min-width: 200px;
69
+ min-width: var(--mm-ocd-min-width);
70
+ max-width: 440px;
71
+ max-width: var(--mm-ocd-max-width);
72
+ background: #fff;
73
+ -webkit-transition-property: -webkit-transform;
74
+ transition-property: -webkit-transform;
75
+ -o-transition-property: transform;
76
+ transition-property: transform;
77
+ transition-property: transform, -webkit-transform;
78
+ -webkit-transition-duration: .3s;
79
+ -o-transition-duration: .3s;
80
+ transition-duration: .3s;
81
+ -webkit-transition-timing-function: ease;
82
+ -o-transition-timing-function: ease;
83
+ transition-timing-function: ease
84
+ }
85
+
86
+ .mm-ocd--left .mm-ocd__content {
87
+ left: 0;
88
+ -webkit-transform: translate3d(-100%, 0, 0);
89
+ transform: translate3d(-100%, 0, 0)
90
+ }
91
+
92
+ .mm-ocd--right .mm-ocd__content {
93
+ right: 0;
94
+ -webkit-transform: translate3d(100%, 0, 0);
95
+ transform: translate3d(100%, 0, 0)
96
+ }
97
+
98
+ .mm-ocd--open .mm-ocd__content {
99
+ -webkit-transform: translate3d(0, 0, 0);
100
+ transform: translate3d(0, 0, 0)
101
+ }
102
+
103
+ .mm-ocd__backdrop {
104
+ position: absolute;
105
+ top: 0;
106
+ bottom: 0;
107
+ z-index: 3;
108
+ width: calc(100% - 80%);
109
+ width: calc(100% - var(--mm-ocd-width));
110
+ min-width: calc(100% - 440px);
111
+ min-width: calc(100% - var(--mm-ocd-max-width));
112
+ max-width: calc(100% - 200px);
113
+ max-width: calc(100% - var(--mm-ocd-min-width));
114
+ background: rgba(3, 2, 1, 0)
115
+ }
116
+
117
+ .mm-ocd--left .mm-ocd__backdrop {
118
+ right: 0
119
+ }
120
+
121
+ .mm-ocd--right .mm-ocd__backdrop {
122
+ left: 0
123
+ }
124
+
125
+ .mm-spn,
126
+ .mm-spn a,
127
+ .mm-spn li,
128
+ .mm-spn span,
129
+ .mm-spn ul {
130
+ display: block;
131
+ padding: 0;
132
+ margin: 0;
133
+ -webkit-box-sizing: border-box;
134
+ box-sizing: border-box
135
+ }
136
+
137
+ :root {
138
+ --mm-spn-item-height: 50px;
139
+ --mm-spn-item-indent: 20px;
140
+ --mm-spn-line-height: 24px
141
+ }
142
+
143
+ .mm-spn {
144
+ width: 100%;
145
+ height: 100%;
146
+ -webkit-tap-highlight-color: transparent;
147
+ -webkit-overflow-scrolling: touch;
148
+ overflow: hidden;
149
+ -webkit-clip-path: inset(0 0 0 0);
150
+ clip-path: inset(0 0 0 0);
151
+ -webkit-transform: translateX(0);
152
+ -ms-transform: translateX(0);
153
+ transform: translateX(0)
154
+ }
155
+
156
+ .mm-spn ul {
157
+ -webkit-overflow-scrolling: touch;
158
+ position: fixed;
159
+ top: 0;
160
+ left: 100%;
161
+ bottom: 0;
162
+ z-index: 2;
163
+ width: 130%;
164
+ padding-right: 30%;
165
+ line-height: 24px;
166
+ line-height: var(--mm-spn-line-height);
167
+ overflow: visible;
168
+ overflow-y: auto;
169
+ background: inherit;
170
+ -webkit-transition: left .3s ease 0s;
171
+ -o-transition: left .3s ease 0s;
172
+ transition: left .3s ease 0s;
173
+ cursor: default
174
+ }
175
+
176
+ .mm-spn ul:after {
177
+ content: '';
178
+ display: block;
179
+ height: 50px;
180
+ height: var(--mm-spn-item-height)
181
+ }
182
+
183
+ .mm-spn>ul {
184
+ left: 0
185
+ }
186
+
187
+ .mm-spn ul.mm-spn--open {
188
+ left: 0
189
+ }
190
+
191
+ .mm-spn ul.mm-spn--parent {
192
+ left: -30%;
193
+ overflow-y: hidden
194
+ }
195
+
196
+ .mm-spn li {
197
+ position: relative;
198
+ background: inherit;
199
+ cursor: pointer
200
+ }
201
+
202
+ .mm-spn li:before {
203
+ content: '';
204
+ display: block;
205
+ position: absolute;
206
+ top: 25px;
207
+ top: calc(var(--mm-spn-item-height)/ 2);
208
+ right: 25px;
209
+ right: calc(var(--mm-spn-item-height)/ 2);
210
+ z-index: 0;
211
+ width: 10px;
212
+ height: 10px;
213
+ border-top: 2px solid;
214
+ border-right: 2px solid;
215
+ -webkit-transform: rotate(45deg) translate(0, -50%);
216
+ -ms-transform: rotate(45deg) translate(0, -50%);
217
+ transform: rotate(45deg) translate(0, -50%);
218
+ opacity: .4
219
+ }
220
+
221
+ .mm-spn li:after {
222
+ content: '';
223
+ display: block;
224
+ margin-left: 20px;
225
+ margin-left: var(--mm-spn-item-indent);
226
+ border-top: 1px solid;
227
+ opacity: .15
228
+ }
229
+
230
+ .mm-spn a,
231
+ .mm-spn span {
232
+ position: relative;
233
+ z-index: 1;
234
+ padding: 13px 20px;
235
+ padding: calc((var(--mm-spn-item-height) - var(--mm-spn-line-height))/ 2) var(--mm-spn-item-indent)
236
+ }
237
+
238
+ .mm-spn a {
239
+ background: inherit;
240
+ color: inherit;
241
+ text-decoration: none
242
+ }
243
+
244
+ .mm-spn a:not(:last-child) {
245
+ width: calc(100% - 50px);
246
+ width: calc(100% - var(--mm-spn-item-height))
247
+ }
248
+
249
+ .mm-spn a:not(:last-child):after {
250
+ content: '';
251
+ display: block;
252
+ position: absolute;
253
+ top: 0;
254
+ right: 0;
255
+ bottom: 0;
256
+ border-right: 1px solid;
257
+ opacity: .15
258
+ }
259
+
260
+ .mm-spn span {
261
+ background: 0 0
262
+ }
263
+
264
+ .mm-spn.mm-spn--navbar {
265
+ cursor: pointer
266
+ }
267
+
268
+ .mm-spn.mm-spn--navbar:before {
269
+ content: '';
270
+ display: block;
271
+ position: absolute;
272
+ top: 25px;
273
+ top: calc(var(--mm-spn-item-height)/ 2);
274
+ left: 20px;
275
+ left: var(--mm-spn-item-indent);
276
+ width: 10px;
277
+ height: 10px;
278
+ margin-top: 2px;
279
+ border-top: 2px solid;
280
+ border-left: 2px solid;
281
+ -webkit-transform: rotate(-45deg) translate(50%, -50%);
282
+ -ms-transform: rotate(-45deg) translate(50%, -50%);
283
+ transform: rotate(-45deg) translate(50%, -50%);
284
+ opacity: .4
285
+ }
286
+
287
+ .mm-spn.mm-spn--navbar.mm-spn--main {
288
+ cursor: default
289
+ }
290
+
291
+ .mm-spn.mm-spn--navbar.mm-spn--main:before {
292
+ content: none;
293
+ display: none
294
+ }
295
+
296
+ .mm-spn.mm-spn--navbar:after {
297
+ content: attr(data-mm-spn-title);
298
+ display: block;
299
+ position: absolute;
300
+ top: 0;
301
+ left: 0;
302
+ right: 0;
303
+ height: 50px;
304
+ height: var(--mm-spn-item-height);
305
+ padding: 0 40px;
306
+ padding: 0 calc(var(--mm-spn-item-indent) * 2);
307
+ line-height: 50px;
308
+ line-height: var(--mm-spn-item-height);
309
+ opacity: .4;
310
+ text-align: left; /* jadams, 2020-06-20: set menu title to the left */
311
+ overflow: hidden;
312
+ white-space: nowrap;
313
+ -o-text-overflow: ellipsis;
314
+ text-overflow: ellipsis;
315
+ font-size: x-large; /* jadams, 2020-06-20: increase size of the menu title */
316
+ }
317
+
318
+ .mm-spn.mm-spn--navbar.mm-spn--main:after {
319
+ padding-left: 20px;
320
+ padding-left: var(--mm-spn-item-indent)
321
+ }
322
+
323
+ .mm-spn.mm-spn--navbar ul {
324
+ top: 51px;
325
+ top: calc(var(--mm-spn-item-height) + 1px)
326
+ }
327
+
328
+ .mm-spn.mm-spn--navbar ul:before {
329
+ content: '';
330
+ display: block;
331
+ position: fixed;
332
+ top: inherit;
333
+ z-index: 2;
334
+ width: 100%;
335
+ border-top: 1px solid currentColor;
336
+ opacity: .15
337
+ }
338
+
339
+ .mm-spn.mm-spn--light {
340
+ color: #444;
341
+ background: #f3f3f3
342
+ }
343
+
344
+ /* jadams, 2020-06-20: set j1 template colors (dark theme) */
345
+ .mm-spn.mm-spn--dark {
346
+ color: #e3e3e3;
347
+ background: #191919
348
+ }
349
+
350
+ .mm-spn.mm-spn--vertical {
351
+ overflow-y: auto
352
+ }
353
+
354
+ .mm-spn.mm-spn--vertical ul {
355
+ width: 100%;
356
+ padding-right: 0;
357
+ position: static
358
+ }
359
+
360
+ .mm-spn.mm-spn--vertical ul ul {
361
+ display: none;
362
+ padding-left: 20px;
363
+ padding-left: var(--mm-spn-item-indent)
364
+ }
365
+
366
+ .mm-spn.mm-spn--vertical ul ul:after {
367
+ height: 25px;
368
+ height: calc(var(--mm-spn-item-height)/ 2)
369
+ }
370
+
371
+ .mm-spn.mm-spn--vertical ul.mm-spn--open {
372
+ display: block
373
+ }
374
+
375
+ .mm-spn.mm-spn--vertical li.mm-spn--open:before {
376
+ -webkit-transform: rotate(135deg) translate(-50%, 0);
377
+ -ms-transform: rotate(135deg) translate(-50%, 0);
378
+ transform: rotate(135deg) translate(-50%, 0)
379
+ }
380
+
381
+ .mm-spn.mm-spn--vertical ul ul li:last-child:after {
382
+ content: none;
383
+ display: none
384
+ }