j1-template 2023.3.1 → 2023.3.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (124) hide show
  1. checksums.yaml +4 -4
  2. data/_includes/themes/j1/layouts/content_generator_news_panel_posts.html +11 -9
  3. data/_includes/themes/j1/layouts/content_generator_post.html +1 -1
  4. data/_includes/themes/j1/modules/navigator/generator.html +3 -3
  5. data/_includes/themes/j1/modules/searcher/procedures/topsearch.proc +5 -5
  6. data/_includes/themes/j1/procedures/collections/create_collection_article_preview.proc +3 -3
  7. data/_includes/themes/j1/procedures/global/select_icon_size.proc +9 -2
  8. data/_includes/themes/j1/procedures/layouts/default_writer.proc +1 -1
  9. data/_includes/themes/j1/procedures/posts/collate_timeline.proc +8 -8
  10. data/_includes/themes/j1/procedures/posts/create_series_header.proc +1 -1
  11. data/_layouts/category.html +2 -2
  12. data/assets/data/authclient.html +10 -12
  13. data/assets/data/banner.html +3 -3
  14. data/assets/data/fab.html +11 -8
  15. data/assets/data/footer.html +2 -3
  16. data/assets/data/gallery_customizer.html +2 -2
  17. data/assets/data/masonry.html +4 -4
  18. data/assets/data/masterslider.html +1 -1
  19. data/assets/data/menu.html +9 -6
  20. data/assets/data/panel.html +11 -11
  21. data/assets/data/quicklinks.html +3 -1
  22. data/assets/data/rtext_resizer.html +1 -1
  23. data/assets/data/slick.html +2 -2
  24. data/assets/data/translator.html +1 -1
  25. data/assets/themes/j1/adapter/js/carousel.js +2 -2
  26. data/assets/themes/j1/adapter/js/j1.js +99 -25
  27. data/assets/themes/j1/adapter/js/justifiedGalleryCustomizer.js +1 -1
  28. data/assets/themes/j1/adapter/js/lazyLoader.js +221 -0
  29. data/assets/themes/j1/adapter/js/lunr.js +3 -3
  30. data/assets/themes/j1/adapter/js/navigator.js +3 -5
  31. data/assets/themes/j1/adapter/js/themeToggler.js +3 -3
  32. data/assets/themes/j1/adapter/js/themer.js +8 -5
  33. data/assets/themes/j1/core/css/icon-fonts/mdi.css +3 -7
  34. data/assets/themes/j1/core/css/icon-fonts/mdi.min.css +1 -1
  35. data/assets/themes/j1/core/css/icon-fonts/mdib.css +8391 -0
  36. data/assets/themes/j1/core/css/icon-fonts/mdib.min.css +1 -0
  37. data/assets/themes/j1/core/js/template.js +98 -31
  38. data/assets/themes/j1/core/js/template.min.js +2 -2
  39. data/assets/themes/j1/core/js/template.min.js.map +1 -1
  40. data/assets/themes/j1/modules/iconPicker/icons-libraries/mdi-icons-base.json +2690 -0
  41. data/assets/themes/j1/modules/iconPicker/icons-libraries/mdi-icons-base.min.json +1 -0
  42. data/assets/themes/j1/modules/iconPicker/icons-libraries/mdi-icons-light.json +2 -2
  43. data/assets/themes/j1/modules/iconPicker/icons-libraries/mdi-icons-light.min.json +1 -1
  44. data/assets/themes/j1/modules/materialize/scss/components/_global.scss +1 -1
  45. data/assets/themes/j1/modules/materialize/scss/components/_navbar.scss +2 -2
  46. data/assets/themes/j1/modules/materialize/scss/components/_sidenav.scss +1 -1
  47. data/assets/themes/j1/modules/materialize/scss/components/forms/_input-fields.scss +2 -2
  48. data/assets/themes/j1/modules/themeSwitcher/js/switcher.js +1 -1
  49. data/assets/themes/j1/modules/themeSwitcher/js/switcher.min.js +1 -1
  50. data/lib/j1/version.rb +1 -1
  51. data/lib/starter_web/Gemfile +2 -2
  52. data/lib/starter_web/README.md +5 -5
  53. data/lib/starter_web/_config.yml +1 -1
  54. data/lib/starter_web/_data/blocks/banner.yml +1 -1
  55. data/lib/starter_web/_data/blocks/footer.yml +1 -1
  56. data/lib/starter_web/_data/blocks/panel.yml +47 -47
  57. data/lib/starter_web/_data/j1_config.yml +1 -1
  58. data/lib/starter_web/_data/layouts/default.yml +1 -1
  59. data/lib/starter_web/_data/modules/defaults/attics.yml +2 -2
  60. data/lib/starter_web/_data/modules/defaults/authentication.yml +1 -1
  61. data/lib/starter_web/_data/modules/defaults/blog_navigator.yml +20 -20
  62. data/lib/starter_web/_data/modules/defaults/fab.yml +3 -3
  63. data/lib/starter_web/_data/modules/defaults/iconPicker.yml +1 -1
  64. data/lib/starter_web/_data/modules/defaults/lazyLoader.yml +33 -0
  65. data/lib/starter_web/_data/modules/defaults/lunr.yml +2 -2
  66. data/lib/starter_web/_data/modules/defaults/masterslider.yml +1 -1
  67. data/lib/starter_web/_data/modules/defaults/navigator.yml +18 -18
  68. data/lib/starter_web/_data/modules/defaults/themer.yml +2 -2
  69. data/lib/starter_web/_data/modules/fab.yml +7 -7
  70. data/lib/starter_web/_data/modules/iconPicker.yml +3 -3
  71. data/lib/starter_web/_data/modules/lazyLoader.yml +93 -0
  72. data/lib/starter_web/_data/modules/navigator_menu.yml +24 -73
  73. data/lib/starter_web/_data/modules/nbinteract.yml +445 -490
  74. data/lib/starter_web/_data/resources.yml +67 -69
  75. data/lib/starter_web/_data/templates/feed.xml +1 -1
  76. data/lib/starter_web/_includes/custom/templates/collection_panel.html +2 -2
  77. data/lib/starter_web/_plugins/asciidoctor/fab-icon-inline.rb +1 -1
  78. data/lib/starter_web/_plugins/asciidoctor/fas-icon-inline.rb +1 -1
  79. data/lib/starter_web/_plugins/asciidoctor/mdil-icon-inline.rb +1 -1
  80. data/lib/starter_web/_plugins/index/lunr.rb +1 -1
  81. data/lib/starter_web/package.json +1 -1
  82. data/lib/starter_web/pages/public/learn/roundtrip/icon_fonts.adoc +152 -12
  83. data/lib/starter_web/pages/public/tools/cheatsheet/gem.adoc +4 -4
  84. data/lib/starter_web/pages/public/tools/cheatsheet/git.adoc +13 -13
  85. data/lib/starter_web/utilsrv/_defaults/package.json +1 -1
  86. data/lib/starter_web/utilsrv/package.json +1 -1
  87. metadata +9 -39
  88. data/assets/data/nbinteract.html +0 -129
  89. data/assets/themes/j1/adapter/js/nbinteract.js +0 -1485
  90. data/assets/themes/j1/modules/iconPicker/icons-libraries/mdi-icons-regular.json +0 -7312
  91. data/assets/themes/j1/modules/iconPicker/icons-libraries/mdi-icons-regular.min.json +0 -1
  92. data/assets/themes/j1/modules/jquery-3.5.1/css/jquery-ui/jquery-ui.css +0 -1315
  93. data/assets/themes/j1/modules/jquery-3.5.1/css/jquery-ui/jquery-ui.min.css +0 -7
  94. data/assets/themes/j1/modules/jquery-3.5.1/css/jquery-ui/jquery-ui.structure.css +0 -886
  95. data/assets/themes/j1/modules/jquery-3.5.1/css/jquery-ui/jquery-ui.structure.min.css +0 -5
  96. data/assets/themes/j1/modules/jquery-3.5.1/css/jquery-ui/jquery-ui.theme.css +0 -446
  97. data/assets/themes/j1/modules/jquery-3.5.1/css/jquery-ui/jquery-ui.theme.min.css +0 -5
  98. data/assets/themes/j1/modules/jquery-3.5.1/js/extensions/hasClass.js +0 -37
  99. data/assets/themes/j1/modules/jquery-3.5.1/js/extensions/hasClass.min.js +0 -17
  100. data/assets/themes/j1/modules/jquery-3.5.1/js/extensions/removeClass.js +0 -42
  101. data/assets/themes/j1/modules/jquery-3.5.1/js/extensions/removeClass.min.js +0 -17
  102. data/assets/themes/j1/modules/jquery-3.5.1/js/jquery-ui.js +0 -19057
  103. data/assets/themes/j1/modules/jquery-3.5.1/js/jquery-ui.min.js +0 -6
  104. data/assets/themes/j1/modules/jquery-3.5.1/js/jquery.js +0 -10872
  105. data/assets/themes/j1/modules/jquery-3.5.1/js/jquery.min.js +0 -2
  106. data/assets/themes/j1/modules/jquery-3.5.1/js/jquery.min.map +0 -1
  107. data/assets/themes/j1/modules/jquery-3.5.1/js/require.js +0 -2145
  108. data/assets/themes/j1/modules/jquery-3.5.1/js/require.min.js +0 -5
  109. data/assets/themes/j1/modules/nbinteract-core/LICENSE.txt +0 -60
  110. data/assets/themes/j1/modules/nbinteract-core/README.md +0 -226
  111. data/assets/themes/j1/modules/nbinteract-core/css/nbinteract.css +0 -191
  112. data/assets/themes/j1/modules/nbinteract-core/css/nbinteract.min.css +0 -19
  113. data/assets/themes/j1/modules/nbinteract-core/css/theme/uno/nbinteract.css +0 -250
  114. data/assets/themes/j1/modules/nbinteract-core/css/theme/uno/nbinteract.min.css +0 -15
  115. data/assets/themes/j1/modules/nbinteract-core/js/mathjax/latest.js +0 -19
  116. data/assets/themes/j1/modules/nbinteract-core/js/mathjax/tex-chtml-full.js +0 -34
  117. data/assets/themes/j1/modules/nbinteract-core/js/mathjax/tex-chtml.js +0 -1
  118. data/assets/themes/j1/modules/nbinteract-core/js/mathjax/tex-mml-chtml.js +0 -1
  119. data/assets/themes/j1/modules/nbinteract-core/js/nbinteract/README +0 -1
  120. data/assets/themes/j1/modules/nbinteract-core/js/nbinteract/j1-nbinteract-core.js +0 -94
  121. data/assets/themes/j1/modules/nbinteract-core/js/nbinteract/j1-nbinteract-core.js.map +0 -1
  122. data/assets/themes/j1/modules/nbinteract-core/js/requireJS/require.js +0 -2068
  123. data/assets/themes/j1/modules/nbinteract-core/js/requireJS/require.min.js +0 -36
  124. data/lib/starter_web/_data/modules/defaults/nbinteract.yml +0 -281
@@ -336,7 +336,7 @@ exclude_from_search: true
336
336
  {% else %}
337
337
  <span>
338
338
  {% if card_icon_color == 'bg-primary' %}
339
- <i class="{{card_icon_family}} {{card_icon_family}}-{{card_icon}} {{card_icon_family}}-{{card_icon_size}} mdi-md-white"></i>
339
+ <i class="{{card_icon_family}} {{card_icon_family}}-{{card_icon}} {{card_icon_family}}-{{card_icon_size}} md-white"></i>
340
340
  {% else %}
341
341
  <i class="{{card_icon_family}} {{card_icon_family}}-{{card_icon}} {{card_icon_family}}-{{card_icon_size}} {{card_icon_family}}-{{card_icon_color}}"></i>
342
342
  {% endif %}
@@ -757,9 +757,9 @@ exclude_from_search: true
757
757
  <div class="card">
758
758
  <div class="card-header" id="headingOne">
759
759
  <h2 class="clearfix mb-0">
760
- <a class="btn btn-link card-profile collapsed" href="#void" data-bs-toggle="collapse" data-bs-target="#{{list.service.id}}" aria-expanded="false" aria-controls="{{list.service.id}}">
761
- <!-- i class="fa fa-chevron-circle-down"></i -->
762
- <i class="fa fa-chevron-circle-right"></i>
760
+ <a class="btn btn-link card-profile collapsed" href="#" data-bs-toggle="collapse" data-bs-target="#{{list.service.id}}" aria-expanded="false" aria-controls="{{list.service.id}}">
761
+ <!-- i class="fa fa-chevron-circle-right"></i -->
762
+ <i class="mdib mdib-chevron-right-circle"></i>
763
763
  {{list.service.title}}
764
764
  </a>
765
765
  </h2>
@@ -935,10 +935,10 @@ exclude_from_search: true
935
935
 
936
936
  <div class="card-footer-text">
937
937
  {% if language == "en" %}
938
- <i class="mdi mdi-calendar-blank md-grey-900 mr-1"></i>{{post.date | localize: "%Y %B, %e"}}
938
+ <i class="mdib mdib-calendar-blank md-grey-900 mr-1"></i>{{post.date | localize: "%Y %B, %e"}}
939
939
  {% endif %}
940
940
  {% if language == "de" %}
941
- <i class="mdi mdi-calendar-blank md-grey-900 mr-1"></i>{{post.date | localize: "%-d. %B %Y"}}
941
+ <i class="mdib mdib-calendar-blank md-grey-900 mr-1"></i>{{post.date | localize: "%-d. %B %Y"}}
942
942
  {% endif %}
943
943
 
944
944
  <!-- Cleanup categories by given blacklist -->
@@ -949,10 +949,10 @@ exclude_from_search: true
949
949
  {% assign tags = post.tags | join: " · " %}
950
950
 
951
951
  <p class="result-item-text small mb-3 notranslate">
952
- <i class="mdi mdi-tag-text-outline mdi-18px mr-1"></i>
952
+ <i class="mdib mdib-tag-text-outline mdib-18px mr-1"></i>
953
953
  <span class="sr-categories">{{categories}}</span>
954
954
  <br>
955
- <i class="mdi mdi-tag mdi-18px mr-1"></i>
955
+ <i class="mdib mdib-tag mdib-18px mr-1"></i>
956
956
  <span class="sr-tags">{{tags}}</span>
957
957
  </p>
958
958
  </div>
@@ -1004,10 +1004,10 @@ exclude_from_search: true
1004
1004
 
1005
1005
  <div class="card-footer-text">
1006
1006
  {% if language == "en" %}
1007
- <i class="mdi mdi-calendar-blank md-grey-900 mr-1"></i>{{post.date | localize: "%Y %B, %e"}}
1007
+ <i class="mdib mdib-calendar-blank md-grey-900 mr-1"></i>{{post.date | localize: "%Y %B, %e"}}
1008
1008
  {% endif %}
1009
1009
  {% if language == "de" %}
1010
- <i class="mdi mdi-calendar-blank md-grey-900 mr-1"></i>{{post.date | localize: "%-d. %B %Y"}}
1010
+ <i class="mdib mdib-calendar-blank md-grey-900 mr-1"></i>{{post.date | localize: "%-d. %B %Y"}}
1011
1011
  {% endif %}
1012
1012
  </div>
1013
1013
  <a class="card-link text-lowercase"
@@ -1075,7 +1075,7 @@ exclude_from_search: true
1075
1075
  <div class="box">
1076
1076
  <div class="content content-danger">
1077
1077
  <h2 class="notoc">
1078
- <i class="mdi mdi-alarm-light mdi-3x mdi-md-red mr-1"></i>
1078
+ <i class="mdib mdib-alarm-light mdib-3x md-red mr-1"></i>
1079
1079
  panel of type <big>{{panel_settings.type}}</big> not found
1080
1080
  </h2>
1081
1081
  <h4 class="notoc box-title">Check your configuration at {{panel_config_file_name}}</h4>
@@ -220,8 +220,10 @@ exclude_from_search: true
220
220
  {% assign icon_family = 'fa' %}
221
221
  {% elsif quicklinks_options.icon_family == 'MDI' or quicklinks_options.icon_family == 'Material Design Icons' %}
222
222
  {% assign icon_family = 'mdi' %}
223
+ {% elsif quicklinks_options.icon_family == 'mdib' or quicklinks_options.icon_family == 'Material Design Icons' %}
224
+ {% assign icon_family = 'mdib' %}
223
225
  {% else %}
224
- {% assign icon_family = 'mdi' %}
226
+ {% assign icon_family = 'mdib' %}
225
227
  {% endif %}
226
228
 
227
229
  {% include {{select_icon_size}} family=quicklinks_options.icon_family size=quicklinks_options.icon_size %}
@@ -84,7 +84,7 @@ exclude_from_search: true
84
84
  <div class="modal-header">
85
85
  <p class="lead">Text Resizer</p>
86
86
  <button type="button" class="close" data-bs-dismiss="modal" aria-label="Close">
87
- <i class="mdi mdi-close mdi-dark mdi-48px"></i>
87
+ <i class="mdib mdib-close mdib-48px md-dark"></i>
88
88
  </button>
89
89
  </div>
90
90
  <!-- Body -->
@@ -221,11 +221,11 @@ exclude_from_search: true
221
221
 
222
222
  <ul class="list-inline d-flex justify-content-center mb-3">
223
223
  <li class="list-inline-item">
224
- <i class="mdi mdi-account md-gray-400 mdi-24px mr-1" style="margin-right: 8px;"></i>
224
+ <i class="mdib mdib-account mdib-24px md-gray-400 mr-1" style="margin-right: 8px;"></i>
225
225
  {{site.author.name | split: ' ' | first}} &nbsp;&middot;&nbsp;
226
226
  </li>
227
227
  <li class="list-inline-item">
228
- <i class="mdi mdi-calendar-blank md-gray-400 mdi-24px mr-1"></i>
228
+ <i class="mdib mdib-calendar-blank mdib-24px md-gray-400 mr-1"></i>
229
229
  {{post.date | date: '%b %d, %Y'}}
230
230
  </li>
231
231
  </ul>
@@ -81,7 +81,7 @@ exclude_from_search: true
81
81
  <p class="mb-3">{{translate_options.google.modal_settings.body_text.en}}</p>
82
82
  </div>
83
83
  <p style="font-size: 90%">{{translate_options.google.modal_settings.language_selector_title.en}}</p>
84
- <div id="dropdownJSON" class="notranslate mb-4" style="display:none"></div>
84
+ <div id="dropdownJSON" class="ms-dopdown notranslate mb-4" style="display:none"></div>
85
85
  <p>
86
86
  <a href="#google-privacy" data-bs-toggle="collapse" class="">Privacy Notice</a>
87
87
  <a href="#google-options" data-bs-toggle="collapse" class="float-right">Privacy</a>
@@ -242,9 +242,9 @@ j1.adapter.carousel = (function (j1, window) {
242
242
  {% endif %}
243
243
 
244
244
  {% if text_color %}
245
- $('#{{slider_id}}').addClass('mdi-{{text_color}}');
245
+ $('#{{slider_id}}').addClass('md-{{text_color}}');
246
246
  {% else %}
247
- $('#{{slider_id}}').addClass('mdi-md-grey-100');
247
+ $('#{{slider_id}}').addClass('md-grey-100');
248
248
  {% endif %}
249
249
 
250
250
  {% if font_size %}
@@ -82,8 +82,7 @@ regenerate: true
82
82
 
83
83
  {% assign authentication_options = authentication_defaults | merge: authentication_settings %}
84
84
 
85
-
86
-
85
+ {% assign footer = 'active_footer' %}
87
86
  {% assign footer_id = footer_options.active_footer %}
88
87
  {% assign footer_data_path = footer_defaults.data_path %}
89
88
  {% assign banner_data_path = banner_defaults.data_path %}
@@ -165,6 +164,8 @@ var j1 = (function (options) {
165
164
  var state = 'not_started';
166
165
  var mode = 'not_detected';
167
166
 
167
+ var performance_monitors_enabled = ('{{template_config.monitor.performance_observer}}' === 'true') ? true: false;
168
+
168
169
  // defaults for tracking providers
169
170
  var tracking_enabled = ('{{tracking_enabled}}' === 'true') ? true: false;
170
171
  var tracking_id = '{{tracking_id}}';
@@ -457,12 +458,12 @@ var j1 = (function (options) {
457
458
  // set signout
458
459
  logger.info('\n' + 'show signout icon');
459
460
  $('#navLinkSignInOut').attr('data-bs-target','#modalOmniSignOut');
460
- $('#iconSignInOut').removeClass('mdi-login').addClass('mdi-logout');
461
+ $('#iconSignInOut').removeClass('mdib-login').addClass('mdib-logout');
461
462
  } else {
462
463
  // set signin
463
464
  logger.info('\n' + 'show signin icon');
464
465
  $('#navLinkSignInOut').attr('data-bs-target','#modalOmniSignIn');
465
- $('#iconSignInOut').removeClass('mdi-logout').addClass('mdi-login');
466
+ $('#iconSignInOut').removeClass('mdib-logout').addClass('mdib-login');
466
467
  }
467
468
  logger.info('\n' + 'authentication detected as: ' + user_session.authenticated);
468
469
  $('#quickLinksSignInOutButton').css('display', 'block');
@@ -562,7 +563,7 @@ var j1 = (function (options) {
562
563
  // show the content|footer
563
564
  //
564
565
  $('#content').show();
565
- $('#{{footer_id}}').show();
566
+ $('.{{footer}}').show();
566
567
 
567
568
  clearInterval(dependencies_met_page_ready);
568
569
  clearInterval(dependencies_met_blocks_ready);
@@ -582,7 +583,7 @@ var j1 = (function (options) {
582
583
  //
583
584
  if ( footer_state == 'success') {
584
585
  $('#content').show();
585
- $('#{{footer_id}}').show();
586
+ $('.{{footer}}').show();
586
587
 
587
588
  clearInterval(dependencies_met_page_ready);
588
589
  }
@@ -720,7 +721,7 @@ var j1 = (function (options) {
720
721
  // show the content|footer
721
722
  //
722
723
  $('#content').show();
723
- $('#{{footer_id}}').show();
724
+ $('.{{footer}}').show();
724
725
 
725
726
  clearInterval(dependencies_met_page_ready);
726
727
  clearInterval(dependencies_met_blocks_ready);
@@ -740,7 +741,7 @@ var j1 = (function (options) {
740
741
  //
741
742
  if ( footer_state == 'success') {
742
743
  $('#content').show();
743
- $('#{{footer_id}}').show();
744
+ $('.{{footer}}').show();
744
745
 
745
746
  clearInterval(dependencies_met_page_ready);
746
747
  }
@@ -1215,12 +1216,12 @@ var j1 = (function (options) {
1215
1216
  // set signout
1216
1217
  logger.info('\n' + 'show signout icon');
1217
1218
  $('#navLinkSignInOut').attr('data-bs-target','#modalOmniSignOut');
1218
- $('#iconSignInOut').removeClass('mdi-login').addClass('mdi-logout');
1219
+ $('#iconSignInOut').removeClass('mdib-login').addClass('mdib-logout');
1219
1220
  } else {
1220
1221
  // set signin
1221
1222
  logger.info('\n' + 'show signin icon');
1222
1223
  $('#navLinkSignInOut').attr('data-bs-target','#modalOmniSignIn');
1223
- $('#iconSignInOut').removeClass('mdi-logout').addClass('mdi-login');
1224
+ $('#iconSignInOut').removeClass('mdib-logout').addClass('mdib-login');
1224
1225
  }
1225
1226
  logger.info('\n' + 'authentication detected as: ' + user_session.authenticated);
1226
1227
  $('#quickLinksSignInOutButton').css('display', 'block');
@@ -2486,8 +2487,8 @@ var j1 = (function (options) {
2486
2487
  // // var tabs_pills_link_color_active = j1.setColorData('md_blue'); // j1.getStyleValue('btn-info', 'background-color');
2487
2488
  // // var tabs_pills_link_color_hover = j1.setColorData('md_gray_300'); // j1.getStyleValue('btn-secondary', 'background-color');
2488
2489
  //
2489
- // // var tabs_pills_link_color_active = 'mdi-blue';
2490
- // // var tabs_pills_link_color_hover = 'mdi-gray-300';
2490
+ // // var tabs_pills_link_color_active = 'md-blue';
2491
+ // // var tabs_pills_link_color_hover = 'md-gray-300';
2491
2492
  //
2492
2493
  // // nav module
2493
2494
  // // -----------------------------------------------------------------------
@@ -2699,6 +2700,64 @@ var j1 = (function (options) {
2699
2700
 
2700
2701
  }, // END stringToBoolean
2701
2702
 
2703
+ // -------------------------------------------------------------------------
2704
+ // registerLazyLoadCss()
2705
+ // CSS loader to speed up inital rendering
2706
+ //
2707
+ // Requires the following config serrings:
2708
+ //
2709
+ // src: the 'location' of the CSS file
2710
+ // selector: the 'selector' that triggers the observer
2711
+ // rootMargin: the 'margin' before the load is trigged
2712
+ //
2713
+ // -------------------------------------------------------------------------
2714
+ //
2715
+ registerLazyLoadCss: function () {
2716
+
2717
+ console.log('register CSS files for lazy loading');
2718
+
2719
+ // load MDI Light CSS
2720
+ //
2721
+ j1.lazyCss().observe({
2722
+ 'src': '/assets/themes/j1/core/css/icon-fonts/mdil.min.css',
2723
+ 'selector': '.mdil',
2724
+ 'rootMargin': '150px 0px'
2725
+ });
2726
+
2727
+ // load MDI Regular CSS
2728
+ //
2729
+ j1.lazyCss().observe({
2730
+ 'src': '/assets/themes/j1/core/css/icon-fonts/mdi.min.css',
2731
+ 'selector': '.mdi',
2732
+ 'rootMargin': '150px 0px'
2733
+ });
2734
+
2735
+ // load FA CSS
2736
+ //
2737
+ j1.lazyCss().observe({
2738
+ 'src': '/assets/themes/j1/core/css/icon-fonts/fontawesome.min.css',
2739
+ 'selector': '.fa',
2740
+ 'rootMargin': '150px 0px'
2741
+ });
2742
+
2743
+ // load rTable CSS
2744
+ //
2745
+ j1.lazyCss().observe({
2746
+ 'src': '/assets/themes/j1/modules/rtable/css/theme/uno/rtable.min.css',
2747
+ 'selector': '.rtable',
2748
+ 'rootMargin': '150px 0px'
2749
+ });
2750
+
2751
+ // load CountryFlags CSS
2752
+ //
2753
+ j1.lazyCss().observe({
2754
+ 'src': '/assets/themes/j1/core/country-flags/css/theme/uno.min.css',
2755
+ 'selector': '.flag-icon',
2756
+ 'rootMargin': '150px 0px'
2757
+ });
2758
+
2759
+ }, // END registerLazyLoadCss
2760
+
2702
2761
  // -------------------------------------------------------------------------
2703
2762
  // registerMonitors()
2704
2763
  //
@@ -2710,6 +2769,10 @@ var j1 = (function (options) {
2710
2769
  var cumulated_lcp = 0;
2711
2770
  const development = ('{{environment}}'.includes('prod')) ? false : true;
2712
2771
 
2772
+ {% comment %} generate code for performance monitor if 'enabled'
2773
+ ------------------------------------------------------------------------ {% endcomment %}
2774
+ {% if template_config.monitor.performance_observer %}
2775
+
2713
2776
  // PerformanceObserver to monitor the 'LCP' of a page load
2714
2777
  // see: https://developer.mozilla.org/en-US/docs/Web/API/LargestContentfulPaint
2715
2778
  //
@@ -2778,7 +2841,11 @@ var j1 = (function (options) {
2778
2841
  }
2779
2842
 
2780
2843
  for (const {node, currentRect, previousRect} of entry.sources) {
2781
- var hasProperty = (node.hasOwnProperty('firstElementChild')) ? true : false;
2844
+ var hasProperty = node.hasOwnProperty('firstElementChild');
2845
+ if (hasProperty == null) {
2846
+ hasProperty = false;
2847
+ }
2848
+
2782
2849
  if (hasProperty) {
2783
2850
  var id = '';
2784
2851
  try {
@@ -2805,6 +2872,8 @@ var j1 = (function (options) {
2805
2872
 
2806
2873
  }); // END performanceObserverCLS
2807
2874
 
2875
+ {% endif %}
2876
+
2808
2877
  // ResizeObserver to monitor the changes on page height (dynamic pages)
2809
2878
  // see: https://stackoverflow.com/questions/14866775/detect-document-height-change
2810
2879
  //
@@ -2899,19 +2968,24 @@ var j1 = (function (options) {
2899
2968
  // run all observers for page monitoring
2900
2969
  // -----------------------------------------------------------------------
2901
2970
 
2902
- // monitor 'LCP'
2903
- //
2904
- performanceObserverLCP.observe({
2905
- type: 'largest-contentful-paint',
2906
- buffered: true
2907
- });
2971
+ {% comment %} generate initializers for performance monitoring if 'enabled'
2972
+ ------------------------------------------------------------------------ {% endcomment %}
2973
+ {% if template_config.monitor.performance_observer %}
2974
+ // monitor 'LCP'
2975
+ //
2976
+ performanceObserverLCP.observe({
2977
+ type: 'largest-contentful-paint',
2978
+ buffered: true
2979
+ });
2908
2980
 
2909
- // monitor 'CLS'
2910
- //
2911
- performanceObserverCLS.observe({
2912
- type: 'layout-shift',
2913
- buffered: true
2914
- });
2981
+ // monitor 'CLS'
2982
+ //
2983
+ performanceObserverCLS.observe({
2984
+ type: 'layout-shift',
2985
+ buffered: true
2986
+ });
2987
+
2988
+ {% endif %}
2915
2989
 
2916
2990
  // monitor 'GROWTH'
2917
2991
  resizeObserver.observe(
@@ -290,7 +290,7 @@ j1.adapter.justifiedGalleryCustomizer = (function (j1, window) {
290
290
  // See: https://jsfiddle.net/prathviraj080/vbbbw46a/1/
291
291
  //
292
292
  $('button.drawer-toggler').click(function(){
293
- $('button.drawer-toggler span.mdi').toggleClass('mdi-menu mdi-close');
293
+ $('button.drawer-toggler span.mdi').toggleClass('mdib-menu mdib-close');
294
294
  });
295
295
  $('button.drawer-toggler').click(function(){
296
296
  $('button.drawer-toggler').toggleClass('fadeIn rotateIn');
@@ -0,0 +1,221 @@
1
+ ---
2
+ regenerate: true
3
+ ---
4
+
5
+ {% capture cache %}
6
+
7
+ {% comment %}
8
+ # -----------------------------------------------------------------------------
9
+ # ~/assets/themes/j1/adapter/js/lazyCSSLoader.js
10
+ # Liquid template to adapt the lazyCSS module(core)
11
+ #
12
+ # Product/Info:
13
+ # https://jekyll.one
14
+ # Copyright (C) 2023 Juergen Adams
15
+ #
16
+ # J1 Theme is licensed under the MIT License.
17
+ # For details, see: https://github.com/jekyll-one-org/j1-template/blob/main/LICENSE.md
18
+ # -----------------------------------------------------------------------------
19
+ # Test data:
20
+ # {{ liquid_var | debug }}
21
+ # wave_options: {{ wave_options | debug }}
22
+ # -----------------------------------------------------------------------------
23
+ {% endcomment %}
24
+
25
+ {% comment %} Liquid procedures
26
+ -------------------------------------------------------------------------------- {% endcomment %}
27
+
28
+ {% comment %} Set global settings
29
+ -------------------------------------------------------------------------------- {% endcomment %}
30
+ {% assign environment = site.environment %}
31
+ {% assign asset_path = "/assets/themes/j1" %}
32
+
33
+ {% comment %} Process YML config data
34
+ ================================================================================ {% endcomment %}
35
+
36
+ {% comment %} Set config files
37
+ -------------------------------------------------------------------------------- {% endcomment %}
38
+ {% assign template_config = site.data.j1_config %}
39
+ {% assign blocks = site.data.blocks %}
40
+ {% assign modules = site.data.modules %}
41
+
42
+ {% comment %} Set config data (settings only)
43
+ -------------------------------------------------------------------------------- {% endcomment %}
44
+ {% assign lazy_loader_defaults = modules.defaults.lazyLoader.defaults %}
45
+ {% assign lazy_loader_settings = modules.lazyLoader.settings %}
46
+
47
+ {% comment %} Set config options (settings only)
48
+ -------------------------------------------------------------------------------- {% endcomment %}
49
+ {% assign lazy_loader_options = lazy_loader_defaults | merge: lazy_loader_settings %}
50
+
51
+ {% comment %} Detect prod mode
52
+ -------------------------------------------------------------------------------- {% endcomment %}
53
+ {% assign production = false %}
54
+ {% if environment == 'prod' or environment == 'production' %}
55
+ {% assign production = true %}
56
+ {% endif %}
57
+
58
+ /*
59
+ # -----------------------------------------------------------------------------
60
+ # ~/assets/themes/j1/adapter/js/lazyLoader.js
61
+ # J1 Adapter for the lazyLoader module (core)
62
+ #
63
+ # Product/Info:
64
+ # https://jekyll.one
65
+ #
66
+ # Copyright (C) 2023 Juergen Adams
67
+ #
68
+ # J1 Theme is licensed under the MIT License.
69
+ # For details, see: https://github.com/jekyll-one-org/j1-template/blob/main/LICENSE.md
70
+ # -----------------------------------------------------------------------------
71
+ # Adapter generated: {{site.time}}
72
+ # -----------------------------------------------------------------------------
73
+ */
74
+
75
+ // -----------------------------------------------------------------------------
76
+ // ESLint shimming
77
+ // -----------------------------------------------------------------------------
78
+ /* eslint indent: "off" */
79
+ // -----------------------------------------------------------------------------
80
+ 'use strict';
81
+ j1.adapter.lazyLoader = (function (j1, window) {
82
+
83
+ {% comment %} Set global variables
84
+ -------------------------------------------------------------------------------- {% endcomment %}
85
+ var environment = '{{environment}}';
86
+ var cookie_names = j1.getCookieNames();
87
+ var user_state = j1.readCookie(cookie_names.user_state);
88
+ var lazyLoaderDefaults;
89
+ var lazyLoaderSettings;
90
+ var lazyLoaderOptions;
91
+ var frontmatterOptions;
92
+ var _this;
93
+ var logger;
94
+ var logText;
95
+
96
+ // ---------------------------------------------------------------------------
97
+ // Main object
98
+ // ---------------------------------------------------------------------------
99
+ return {
100
+
101
+ // -------------------------------------------------------------------------
102
+ // init()
103
+ // adapter initializer
104
+ // -------------------------------------------------------------------------
105
+ init: function (options) {
106
+
107
+ // -----------------------------------------------------------------------
108
+ // Default module settings
109
+ // -----------------------------------------------------------------------
110
+ var settings = $.extend({
111
+ module_name: 'j1.adapter.lazyLoader',
112
+ generated: '{{site.time}}'
113
+ }, options);
114
+
115
+ // -----------------------------------------------------------------------
116
+ // Global variable settings
117
+ // -----------------------------------------------------------------------
118
+
119
+ // create settings object from module options
120
+ //
121
+ lazyLoaderDefaults = $.extend({}, {{lazy_loader_defaults | replace: 'nil', 'null' | replace: '=>', ':' }});
122
+ lazyLoaderSettings = $.extend({}, {{lazy_loader_settings | replace: 'nil', 'null' | replace: '=>', ':' }});
123
+ lazyLoaderOptions = $.extend(true, {}, lazyLoaderDefaults, lazyLoaderSettings);
124
+
125
+ _this = j1.adapter.lazyLoader;
126
+ logger = log4javascript.getLogger('j1.adapter.lazyLoader');
127
+
128
+ var dependencies_met_lazy_loader = setInterval(function() {
129
+ var pageFinished = (j1.getState() == 'finished') ? true: false;
130
+
131
+ if (pageFinished) {
132
+
133
+ _this.setState('started');
134
+ logger.info('\n' + 'initialize moodule lazyLoader: started');
135
+
136
+ _this.registerLoaders(lazyLoaderOptions);
137
+
138
+ _this.setState('finished');
139
+ logger.info('\n' + 'initialize moodule lazyLoader: finished');
140
+ clearInterval(dependencies_met_lazy_loader);
141
+ }
142
+ }, 10);
143
+
144
+ }, // END init
145
+
146
+ // -------------------------------------------------------------------------
147
+ // registerLoaders()
148
+ // Lazy load CSS to speed up page rendering
149
+ //
150
+ // Requires the following settings:
151
+ //
152
+ // src: the 'location' of the CSS file
153
+ // selector: the 'selector' that triggers the observer
154
+ // rootMargin: the 'margin' before the load is trigged
155
+ //
156
+ // -------------------------------------------------------------------------
157
+ //
158
+ registerLoaders: function () {
159
+ {% for loader in lazy_loader_options.loaders %} {% if loader.enabled %}
160
+ j1.lazyCSS().observe({
161
+ src: '{{loader.src}}',
162
+ selector: '{{loader.selector}}',
163
+ rootMargin: '{{loader.rootMargin}}'
164
+ });
165
+ logger.info('\n' + 'register lazy loading for: {{loader.description}}');
166
+ {% endif %} {% endfor %}
167
+ }, // END registerLoaders
168
+
169
+ // -------------------------------------------------------------------------
170
+ // messageHandler()
171
+ // manage messages send from other J1 modules
172
+ // -------------------------------------------------------------------------
173
+ messageHandler: function (sender, message) {
174
+ var json_message = JSON.stringify(message, undefined, 2);
175
+
176
+ logText = '\n' + 'received message from ' + sender + ': ' + json_message;
177
+ logger.debug(logText);
178
+
179
+ // -----------------------------------------------------------------------
180
+ // Process commands|actions
181
+ // -----------------------------------------------------------------------
182
+ if (message.type === 'command' && message.action === 'module_initialized') {
183
+ //
184
+ // Place handling of command|action here
185
+ //
186
+ logger.info('\n' + message.text);
187
+ }
188
+
189
+ //
190
+ // Place handling of other command|action here
191
+ //
192
+
193
+ return true;
194
+ }, // END messageHandler
195
+
196
+ // -------------------------------------------------------------------------
197
+ // setState()
198
+ // Sets the current (processing) state of the module
199
+ // -------------------------------------------------------------------------
200
+ setState: function (stat) {
201
+ _this.state = stat;
202
+ }, // END setState
203
+
204
+ // -------------------------------------------------------------------------
205
+ // getState()
206
+ // Returns the current (processing) state of the module
207
+ // -------------------------------------------------------------------------
208
+ getState: function () {
209
+ return _this.state;
210
+ } // END getState
211
+
212
+ }; // END return
213
+ })(j1, window);
214
+
215
+ {% endcapture %}
216
+ {% if production %}
217
+ {{ cache | minifyJS }}
218
+ {% else %}
219
+ {{ cache | strip_empty_lines }}
220
+ {% endif %}
221
+ {% assign cache = nil %}
@@ -168,10 +168,10 @@ j1.adapter.lunr = (function (j1, window) {
168
168
  _this.modalScript.text += '{{#docs}}' + '\n';
169
169
  _this.modalScript.text += ' <li>' + '\n';
170
170
  _this.modalScript.text += ' <h4 class="result-item"> <a class="link-no-decoration" href="{{url}}" target="_blank">{{title}} · {{tagline}}</a> </h4>' + '\n';
171
- _this.modalScript.text += ' <p class="result-item-text small text-muted mt-2 mb-0"> <i class="mdi mdi-calendar-blank mdi-18px mr-1"></i>{{displaydate}} </p>' + '\n';
171
+ _this.modalScript.text += ' <p class="result-item-text small text-muted mt-2 mb-0"> <i class="mdib mdib-calendar-blank mdib-18px mr-1"></i>{{displaydate}} </p>' + '\n';
172
172
  _this.modalScript.text += ' <p class="result-item-text">{{description}}</p>' + '\n';
173
- _this.modalScript.text += ' <i class="mdi mdi-tag-text-outline mdi-18px mr-1"></i><span class="sr-categories">{{#categories}} {{.}} · {{/categories}}</span>' + '\n';
174
- _this.modalScript.text += ' <i class="mdi mdi-tag mdi-18px mr-1 ml-2"></i><span class="sr-tags">{{#tags}} {{.}} · {{/tags}}</span>' + '\n';
173
+ _this.modalScript.text += ' <i class="mdib mdib-tag-text-outline mdib-18px mr-1"></i><span class="sr-categories">{{#categories}} {{.}} · {{/categories}}</span>' + '\n';
174
+ _this.modalScript.text += ' <i class="mdib mdib-tag mdib-18px mr-1 ml-2"></i><span class="sr-tags">{{#tags}} {{.}} · {{/tags}}</span>' + '\n';
175
175
  _this.modalScript.text += ' </p>' + '\n';
176
176
  _this.modalScript.text += ' </li>' + '\n';
177
177
  _this.modalScript.text += '{{/docs}}' + '\n';
@@ -487,11 +487,11 @@ j1.adapter.navigator = (function (j1, window) {
487
487
  if (user_session.authenticated === 'true') {
488
488
  // Set SignOut
489
489
  $('#navLinkSignInOut').attr('data-bs-target', '#modalOmniSignOut');
490
- $('#iconSignInOut').removeClass('mdi-login').addClass('mdi-logout');
490
+ $('#iconSignInOut').removeClass('mdib-login').addClass('mdib-logout');
491
491
  } else {
492
492
  // Set SignIn
493
493
  $('#navLinkSignInOut').attr('data-bs-target', '#modalOmniSignIn');
494
- $('#iconSignInOut').removeClass('mdi-logout').addClass('mdi-login');
494
+ $('#iconSignInOut').removeClass('mdib-logout').addClass('mdib-login');
495
495
  }
496
496
  }
497
497
 
@@ -889,11 +889,9 @@ j1.adapter.navigator = (function (j1, window) {
889
889
  style += '</style>';
890
890
  $('head').append(style);
891
891
 
892
-
893
-
894
892
  // $('head').append('<style>.mdi-bg-primary {color: ' +bg_scrolled+ ';}</style>');
895
893
  style = '<style>';
896
- style += ' .mdi-bg-primary {';
894
+ style += ' var(--bg-primary) {';
897
895
  style += ' color: ' + bg_scrolled;
898
896
  style += ' }';
899
897
  style += '</style>';