j1-template 2023.3.1 → 2023.3.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 (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>';