j1-template 2022.4.9 → 2022.4.10

Sign up to get free protection for your applications and to get access to all the features.
Files changed (123) hide show
  1. checksums.yaml +4 -4
  2. data/_includes/themes/j1/modules/navigator/generator.html +30 -30
  3. data/_includes/themes/j1/procedures/global/create_bs_button.proc +1 -1
  4. data/_includes/themes/j1/procedures/posts/collate_timeline.proc +1 -1
  5. data/assets/data/authclient.html +8 -6
  6. data/assets/data/banner.html +4 -0
  7. data/assets/data/carousel.json +10 -0
  8. data/assets/data/cookieconsent.html +2 -0
  9. data/assets/data/fab.html +19 -6
  10. data/assets/data/footer.html +6 -6
  11. data/assets/data/galleries.json +7 -0
  12. data/assets/data/gallery_customizer.html +10 -7
  13. data/assets/data/iso-639-language-codes-flags.json +9 -0
  14. data/assets/data/iso-639-language-codes.json +9 -0
  15. data/assets/data/j1_config.json +8 -2
  16. data/assets/data/masterslider.html +10 -2
  17. data/assets/data/mdi_icons.json +5 -0
  18. data/assets/data/mdil_icons.json +5 -0
  19. data/assets/data/menu.html +16 -13
  20. data/assets/data/mmenu.html +9 -5
  21. data/assets/data/mmenu_sidebar.html +5 -3
  22. data/assets/data/mmenu_toc.html +8 -5
  23. data/assets/data/nbinteract.html +2 -1
  24. data/assets/data/panel.html +9 -7
  25. data/assets/data/private.json +2 -2
  26. data/assets/data/quicklinks.html +4 -2
  27. data/assets/data/rtext_resizer.html +9 -5
  28. data/assets/data/themes.bootswatch.json +4 -0
  29. data/assets/data/themes.json +4 -0
  30. data/assets/data/translator.html +2 -0
  31. data/assets/data/twa_v1.json +6 -0
  32. data/assets/themes/j1/adapter/js/advertising.js +2 -0
  33. data/assets/themes/j1/adapter/js/algolia.js +2 -0
  34. data/assets/themes/j1/adapter/js/analytics.js +2 -0
  35. data/assets/themes/j1/adapter/js/asciidoctor.js +16 -0
  36. data/assets/themes/j1/adapter/js/attic.js +2 -0
  37. data/assets/themes/j1/adapter/js/bmd.js +16 -0
  38. data/assets/themes/j1/adapter/js/carousel.js +7 -6
  39. data/assets/themes/j1/adapter/js/clipboard.js +2 -1
  40. data/assets/themes/j1/adapter/js/comments.js +2 -0
  41. data/assets/themes/j1/adapter/js/cookieConsent.js +2 -0
  42. data/assets/themes/j1/adapter/js/customFunctions.js +2 -0
  43. data/assets/themes/j1/adapter/js/customModule.js +2 -0
  44. data/assets/themes/j1/adapter/js/dropdowns.js +2 -0
  45. data/assets/themes/j1/adapter/js/fab.js +2 -0
  46. data/assets/themes/j1/adapter/js/framer.js +2 -0
  47. data/assets/themes/j1/adapter/js/j1.js +1 -1
  48. data/assets/themes/j1/adapter/js/justifiedGallery.js +2 -0
  49. data/assets/themes/j1/adapter/js/justifiedGalleryCustomizer.js +2 -0
  50. data/assets/themes/j1/adapter/js/lightbox.js +2 -0
  51. data/assets/themes/j1/adapter/js/logger.js +2 -0
  52. data/assets/themes/j1/adapter/js/lunr.js +2 -0
  53. data/assets/themes/j1/adapter/js/masterslider.js +9 -1
  54. data/assets/themes/j1/adapter/js/mmenu.js +2 -0
  55. data/assets/themes/j1/adapter/js/navigator.js +716 -72
  56. data/assets/themes/j1/adapter/js/nbinteract.js +2 -0
  57. data/assets/themes/j1/adapter/js/rangeSlider.js +2 -0
  58. data/assets/themes/j1/adapter/js/rouge.js +7 -0
  59. data/assets/themes/j1/adapter/js/rtable.js +2 -0
  60. data/assets/themes/j1/adapter/js/rtextResizer.js +2 -1
  61. data/assets/themes/j1/adapter/js/scroller.js +2 -0
  62. data/assets/themes/j1/adapter/js/themer.js +26 -34
  63. data/assets/themes/j1/adapter/js/toccer.js +2 -0
  64. data/assets/themes/j1/adapter/js/translator.js +2 -0
  65. data/assets/themes/j1/core/css/themes/bootstrap/bootstrap.css +1938 -1379
  66. data/assets/themes/j1/core/css/themes/bootstrap/bootstrap.min.css +3 -3
  67. data/assets/themes/j1/core/css/themes/theme_vapor/bootstrap.css +1939 -1380
  68. data/assets/themes/j1/core/css/themes/theme_vapor/bootstrap.min.css +3 -3
  69. data/assets/themes/j1/core/css/themes/unodark/bootstrap.css +2189 -1486
  70. data/assets/themes/j1/core/css/themes/unodark/bootstrap.min.css +3 -3
  71. data/assets/themes/j1/core/css/themes/unolight/bootstrap.css +2167 -1501
  72. data/assets/themes/j1/core/css/themes/unolight/bootstrap.min.css +10 -9
  73. data/assets/themes/j1/core/js/template.js +3 -3
  74. data/assets/themes/j1/core/js/template.min.js +1 -1
  75. data/assets/themes/j1/core/js/template.min.js.map +1 -1
  76. data/assets/themes/j1/modules/lightbox/js/lightbox.js +1 -1
  77. data/assets/themes/j1/modules/lightbox/js/lightbox.min.js +1 -1
  78. data/assets/themes/j1/modules/masterslider/js/masterslider.js +48 -195
  79. data/assets/themes/j1/modules/masterslider/js/masterslider.min.js +1 -2
  80. data/assets/themes/j1/modules/mmenuLight/css/theme/uno/mmenu.css +3 -3
  81. data/assets/themes/j1/modules/mmenuLight/css/theme/uno/mmenu.min.css +1 -1
  82. data/assets/themes/j1/modules/rouge/css/uno.dark/theme.css +11 -11
  83. data/assets/themes/j1/modules/rouge/css/uno.light/theme.css +24 -18
  84. data/assets/themes/j1/modules/twemoji/js/picker/twemoji-picker.js +2 -2
  85. data/assets/themes/j1/modules/twemoji/js/picker/twemoji-picker.min.js +304 -1
  86. data/lib/j1/version.rb +1 -1
  87. data/lib/starter_web/Gemfile +1 -1
  88. data/lib/starter_web/_config.yml +2 -2
  89. data/lib/starter_web/_data/blocks/banner.yml +8 -5
  90. data/lib/starter_web/_data/blocks/footer.yml +1 -1
  91. data/lib/starter_web/_data/modules/attics.yml +15 -3
  92. data/lib/starter_web/_data/modules/defaults/navigator.yml +7 -5
  93. data/lib/starter_web/_data/modules/fab.yml +39 -118
  94. data/lib/starter_web/_data/modules/masterslider.yml +2 -2
  95. data/lib/starter_web/_data/modules/navigator_menu.yml +17 -21
  96. data/lib/starter_web/_plugins/lunr_index.rb +1 -1
  97. data/lib/starter_web/package.json +1 -1
  98. data/lib/starter_web/pages/public/learn/quickstart.adoc +1 -1
  99. data/lib/starter_web/pages/public/learn/roundtrip/100_present_images.adoc +1 -1
  100. data/lib/starter_web/pages/public/learn/roundtrip/100_present_videos.adoc +1 -1
  101. data/lib/starter_web/pages/public/learn/roundtrip/200_typography.adoc +1 -1
  102. data/lib/starter_web/pages/public/learn/roundtrip/300_icon_fonts.adoc +1 -1
  103. data/lib/starter_web/pages/public/learn/roundtrip/400_asciidoc_extensions.adoc +1 -1
  104. data/lib/starter_web/pages/public/learn/roundtrip/410_bs_modals_extentions.adoc +1 -1
  105. data/lib/starter_web/pages/public/learn/roundtrip/420_responsive_tables_extensions.adoc +1 -1
  106. data/lib/starter_web/pages/public/learn/roundtrip/500_themes.adoc +1 -1
  107. data/lib/starter_web/pages/public/learn/roundtrip/600_quicksearch.adoc +1 -1
  108. data/lib/starter_web/pages/public/legal/de/100_copyright.adoc +1 -1
  109. data/lib/starter_web/pages/public/legal/de/100_impress.adoc +1 -1
  110. data/lib/starter_web/pages/public/legal/de/300_privacy.adoc +1 -1
  111. data/lib/starter_web/pages/public/legal/de/400_comment_policy.adoc +1 -1
  112. data/lib/starter_web/pages/public/legal/en/100_copyright.adoc +1 -1
  113. data/lib/starter_web/pages/public/legal/en/200_impress.adoc +1 -1
  114. data/lib/starter_web/pages/public/legal/en/300_privacy.adoc +1 -1
  115. data/lib/starter_web/pages/public/legal/en/400_comment_policy.adoc +1 -1
  116. data/lib/starter_web/pages/public/panels/intro_panel/panel.adoc +1 -1
  117. data/lib/starter_web/pages/public/plans/plans.adoc +1 -1
  118. data/lib/starter_web/pages/public/previewer/preview_bootstrap_theme.adoc +139 -130
  119. data/lib/starter_web/utilsrv/_defaults/package.json +1 -1
  120. data/lib/starter_web/utilsrv/package.json +1 -1
  121. metadata +2 -4
  122. data/_includes/themes/j1/procedures/global/create_bs_button.1.proc +0 -172
  123. data/assets/themes/j1/modules/masterslider/js/masterslider.min.js.map +0 -1
@@ -16,9 +16,18 @@
16
16
  # See: https://github.com/rouge-ruby/rouge/blob/master/LICENSE
17
17
  # -----------------------------------------------------------------------------
18
18
  */
19
+ .highlight {
20
+ background-color: #f5f5f5; /* $gray-100 */
21
+ }
22
+
23
+ .highlight table td {
24
+ padding: 5px;
25
+ }
26
+
27
+ .highlight table pre {
28
+ margin: 0;
29
+ }
19
30
 
20
- .highlight table td { padding: 5px; }
21
- .highlight table pre { margin: 0; }
22
31
  .highlight .cm {
23
32
  color: #999988;
24
33
  font-style: italic;
@@ -28,7 +37,7 @@
28
37
  font-weight: bold;
29
38
  }
30
39
  .highlight .c1 {
31
- color: #999988;
40
+ color: #424242;
32
41
  font-style: italic;
33
42
  }
34
43
  .highlight .cs {
@@ -106,22 +115,22 @@
106
115
  font-weight: bold;
107
116
  }
108
117
  .highlight .mf {
109
- color: #009999;
118
+ color: #1B5E20;
110
119
  }
111
120
  .highlight .mh {
112
- color: #009999;
121
+ color: #1B5E20;
113
122
  }
114
123
  .highlight .il {
115
- color: #009999;
124
+ color: #1B5E20;
116
125
  }
117
126
  .highlight .mi {
118
- color: #009999;
127
+ color: #1B5E20;
119
128
  }
120
129
  .highlight .mo {
121
- color: #009999;
130
+ color: #1B5E20;
122
131
  }
123
132
  .highlight .m, .highlight .mb, .highlight .mx {
124
- color: #009999;
133
+ color: #1B5E20;
125
134
  }
126
135
  .highlight .sa {
127
136
  color: #000000;
@@ -164,7 +173,7 @@
164
173
  color: #d14;
165
174
  }
166
175
  .highlight .na {
167
- color: #008080;
176
+ color: #303F9F;
168
177
  }
169
178
  .highlight .bp {
170
179
  color: #999999;
@@ -177,7 +186,7 @@
177
186
  font-weight: bold;
178
187
  }
179
188
  .highlight .no {
180
- color: #008080;
189
+ color: #1B5E20;
181
190
  }
182
191
  .highlight .nd {
183
192
  color: #3c5d5d;
@@ -205,16 +214,16 @@
205
214
  color: #000080;
206
215
  }
207
216
  .highlight .vc {
208
- color: #008080;
217
+ color: #1B5E20;
209
218
  }
210
219
  .highlight .vg {
211
- color: #008080;
220
+ color: #1B5E20;
212
221
  }
213
222
  .highlight .vi {
214
- color: #008080;
223
+ color: #1B5E20;
215
224
  }
216
225
  .highlight .nv, .highlight .vm {
217
- color: #008080;
226
+ color: #1B5E20;
218
227
  }
219
228
  .highlight .ow {
220
229
  color: #000000;
@@ -227,6 +236,3 @@
227
236
  .highlight .w {
228
237
  color: #bbbbbb;
229
238
  }
230
- .highlight {
231
- background-color: #f8f8f8;
232
- }
@@ -297,8 +297,8 @@
297
297
  $.fn.twemojiPicker = function (i) {
298
298
  var h = $.data(this, "twemojiPicker");
299
299
  this.each(function () {
300
- h ? h._init() : h = $.data(this, "twemojiPicker", new $.TwemojiPicker(this, i))
300
+ h ? h._init() : h = $.data(this, "twemojiPicker", new $.TwemojiPicker(this, i));
301
301
  });
302
302
  return h
303
303
  }
304
- })(jQuery, window);
304
+ })(jQuery, window, document);
@@ -16,4 +16,307 @@
16
16
  # For details, https://github.com/xLs51/Twemoji-Picker
17
17
  # -----------------------------------------------------------------------------
18
18
  */
19
- (function(c,h,a){var k=150;var i={};var e="/assets/data/twa_v1.json";var j;var l;c.TwemojiPicker=function(d,b){var f=this;c.when(this._loadDatabase()).done(function(m){f.$el=c(d);f._init(b)})};c.TwemojiPicker.defaults={init:null,language:"en",size:25,icon:"grinning",iconSize:25,height:100,width:null,category:["smile","cherry-blossom","video-game","oncoming-automobile","symbols"],categorySize:20,pickerPosition:null,pickerHeight:150,pickerWidth:null,placeholder:"Click on Picker to select Emoji's from a Category",};c.TwemojiPicker.prototype={_init:function(b){this.options=c.extend(true,{},c.TwemojiPicker.defaults,b);this._initPicker();this._initCategory();this._initTwemoji();this._initText();this._initStyle();this._initEvents()},_loadDatabase:function g(){return c.ajax({url:e,success:function(b){if(typeof b=="string"){i=JSON.parse(b)}if(typeof b=="object"){i=b}}})},_initPicker:function(){var f=this;var b;var d;if(f.options.language=="en"){b="Clear";j="Copied to Clipboard";l=f.options.placeholder}else{if(f.options.language=="de"){b="Löschen";j="Kopiert zur Zwischenablage";l="Klicken Sie auf Picker zur Auswahl von Emoji's aus einer Kategorie"}else{b="Clear";j="in Clipboard";l=f.options.placeholder}}d='<div class="twemoji-icon-picker">';d+='<span id="open-group" class="mr-2" style="width: 2rem; height: 2rem;">';d+='<button type="button" name="open-group" class="btn btn-flex btn-primary mr-2"><i class="toggle-button mdi mdi-lg mr-1 mdi-toggle-switch-off"></i> Picker </button>';d+="</span>";d+='<span id="clear-textarea" style="width: 2rem; height: 2rem;">';d+='<button type="button" name="clear-textarea" class="btn btn-flex btn-primary"><i class="mdi mdi-close mdi-lg mr-1"></i>'+b+"</button>";d+="</span>";d+="</div>";f.$id="#"+f.$el["0"].id;f.$pickerHeigth=f.options.height.replace("px","");f.$pickerHeigth=Number(f.$pickerHeigth);f.$wrapper=f.$el.wrap('<div class="twemoji-wrap"></div>').parent();f.$wrapper.append('<div class="twemoji-textarea" contentEditable="true" placeholder="'+l+'"></div>');f.$wrapper.append('<div class="twemoji-textarea-duplicate"></div>');f.$wrapper.append(d);f.$wrapper.append('<div class="twemoji-picker"></div>');f.$el.hide();f.$textarea=f.$wrapper.find(".twemoji-textarea");f.$textareaDuplicate=f.$wrapper.find(".twemoji-textarea-duplicate").hide();f.$iconPicker=f.$wrapper.find("#open-group");f.$clearTextarea=f.$wrapper.find("#clear-textarea");f.$picker=f.$wrapper.find(".twemoji-picker").hide()},_initCategory:function(){var d=this;var b=this.options.category;this.categoryName=["people","nature","object","place","symbol"];this.$picker.append('<div class="twemoji-picker-category"></div>');this.$pickerCategory=this.$picker.find(".twemoji-picker-category");c.each(this.categoryName,function(m,f){d.$pickerCategory.append('<span data-category="'+f+'">'+d.imageFromName(b[m])+"</span>")});this.$pickerCategory.find("span:first").addClass("active")},_initTwemoji:function(){var b=this;c.each(this.categoryName,function(f,d){b.$picker.append('<div class="twemoji-list '+d+'"></div>');c.each(i,function(n,m){if(m.category===d){b.$wrapper.find(".twemoji-picker ."+d).append('<span><img class="emoji" draggable="false" src="'+m.base64+'" alt="'+m.value+'" title="'+m.name+'"></span>')}})});this.$twemojiList=this.$picker.find(".twemoji-list");this.$twemojiList.not(":first").hide()},_initText:function(){if(this.options.init){var b=this.options.init;var d=/:([\w-]+):/g;var f;while(f==d.exec(b)){b=b.replace(f[0],this.imageFromName(f[1],true))}this.$textarea.html(b);this.copyTextArea(this.$textarea.html())}},_initStyle:function(){this.$wrapper.css({width:this.options.width?this.options.width:"100%",height:this.options.height?this.options.height:"",});this.$wrapper.find("img").css({width:this.options.size,height:this.options.size,});this.$iconPicker.css({width:this.options.iconSize,height:this.options.iconSize,});this.$pickerCategory.find("img").css({width:this.options.categorySize,height:this.options.categorySize,});this.$twemojiList.css({width:this.options.pickerWidth?this.options.pickerWidth:"100%",height:this.options.pickerHeight,});this.$picker.css({width:this.options.pickerWidth?this.options.pickerWidth:"100%",top:this.options.pickerPosition==="top"?"-"+this.$picker.outerHeight()+"px":"",})},_initEvents:function(){var b=this;this.$textarea.on("keyup",function(){b.copyTextArea(c(this).html())});this.$iconPicker.on("click",function(){var d=c(".twemoji-picker").height()+k;c("#picker").height(d);c(".toggle-button").toggleClass("mdi-toggle-switch-off mdi-toggle-switch");if(!b.openedPicker){b.openPicker()}else{b.closePicker();c("#picker").height(b.$pickerHeigth)}});this.$clearTextarea.on("click",function(){b.copyTextArea("");c(b.$id).val("");c(".twemoji-textarea > .emoji-span").remove()});this.$pickerCategory.find("span").on("click",function(){var d=c(this).data("category");b.openCategory(c(this),d)});this.$pickerCategory.find(".close").on("click",function(){if(b.openedPicker){b.closePicker()}});this.$twemojiList.find("img").on("click",function(){b.copyTwemoji(c(this))})},copyText:function(f){var d=document.createElement("textarea");d.setAttribute("style","position:fixed;opacity:0;top:100px;left:100px;");d.value=f;document.body.appendChild(d);d.select();document.execCommand("copy");var b=document.createElement("div");b.setAttribute("class","copied");b.appendChild(document.createTextNode(j));document.body.appendChild(b);setTimeout(function(){document.body.removeChild(d);document.body.removeChild(b)},1500)},openPicker:function(){this.$picker.show();this.openedPicker=true},closePicker:function(){this.$picker.hide();this.openedPicker=false},openCategory:function(d,b){this.$pickerCategory.find("span").removeClass("active");d.addClass("active");this.$twemojiList.not(".twemoji-picker ."+b).hide();this.$twemojiList.filter(".twemoji-picker ."+b).show()},copyTwemoji:function(b){var m=b.attr("alt");var d=b.attr("src");var f=b.attr("title");var n="emoji:"+f+"[]";this.copyText(n);this.$textarea.focus();this.pasteAtCursor('<span class="emoji-span"><img class="emoji" src="'+d+'" title="'+f+'" alt="'+m+'" width="'+this.options.size+'" height="'+this.options.size+'"> '+n+"</span> ");this.copyTextArea(this.$textarea.html())},copyTextArea:function(b){var f=this.$textareaDuplicate.html(b);f.find("img").replaceWith(function(){return this.alt});var d=f.html();this.$el.text(d)},imageFromName:function(d,b){var f=c.grep(i,function(m){return m.name==d});if(b){return'<img class="emoji" src="'+f[0].base64+'" alt="'+f[0].value+'" width="'+this.options.size+'" height="'+this.options.size+'">'}return'<img class="emoji" draggable="false" src="'+f[0].base64+'" alt="'+d+'">'},pasteAtCursor:function(b){var d,q;if(h.getSelection){d=h.getSelection();if(d.getRangeAt&&d.rangeCount){q=d.getRangeAt(0);q.deleteContents();var p=document.createElement("div");p.innerHTML=b;var r=document.createDocumentFragment(),f,o;while((f=p.firstChild)){o=r.appendChild(f)}q.insertNode(r);if(o){q=q.cloneRange();q.setStartAfter(o);q.collapse(true);d.removeAllRanges();d.addRange(q)}}}else{if(document.selection&&document.selection.type!="Control"){document.selection.createRange().pasteHTML(b)}}}};c.fn.twemojiPicker=function(b){var d=c.data(this,"twemojiPicker");this.each(function(){d?d._init():d=c.data(this,"twemojiPicker",new c.TwemojiPicker(this,b))});return d}})(jQuery,window);
19
+ /*
20
+ # -----------------------------------------------------------------------------
21
+ # ~/assets/themes/j1/modules/twemoji/js/picker/twemoji-picker.js
22
+ # Twemoji-Picker v2017-06-03 implementation for J1 template
23
+ #
24
+ # Product/Info:
25
+ # https://jekyll.one
26
+ # https://github.com/xLs51/Twemoji-Picker
27
+ #
28
+ # Copyright (C) 2022 Juergen Adams
29
+ # Copyright (C) 2015 xLs51
30
+ #
31
+ # J1 Template is licensed under the MIT License.
32
+ # See: https://github.com/jekyll-one-org/J1 Template/blob/master/LICENSE
33
+ # Twemoji-Picker is licensed under under the MIT License.
34
+ # For details, https://github.com/xLs51/Twemoji-Picker
35
+ # -----------------------------------------------------------------------------
36
+ */
37
+ (function ($, window, undefined) {
38
+ var b = 150;
39
+ var d = {};
40
+ var twa_database = "/assets/data/twa_v1.json";
41
+ var responseText;
42
+ var placeholder;
43
+
44
+ $.TwemojiPicker = function (element, options) {
45
+ var h = this;
46
+ $.when(this._loadDatabase()).done(function (e) {
47
+ h.$el = $(element);
48
+ h._init(options)
49
+ })
50
+ };
51
+ $.TwemojiPicker.defaults = {
52
+ init: null,
53
+ language: "en",
54
+ size: 25,
55
+ icon: "grinning",
56
+ iconSize: 25,
57
+ height: 100,
58
+ width: null,
59
+ category: ["smile", "cherry-blossom", "video-game", "oncoming-automobile", "symbols"],
60
+ categorySize: 20,
61
+ pickerPosition: null,
62
+ pickerHeight: 150,
63
+ pickerWidth: null,
64
+ placeholder: "Click on Picker to select Emoji's from a Category",
65
+ };
66
+ $.TwemojiPicker.prototype = {
67
+ _init: function (h) {
68
+ this.options = $.extend(true, {}, $.TwemojiPicker.defaults, h);
69
+ this._initPicker();
70
+ this._initCategory();
71
+ this._initTwemoji();
72
+ this._initText();
73
+ this._initStyle();
74
+ this._initEvents()
75
+ },
76
+ _loadDatabase: function f() {
77
+ return $.ajax({
78
+ url: twa_database,
79
+ success: function (h) {
80
+ if (typeof h == "string") {
81
+ d = JSON.parse(h)
82
+ }
83
+ if (typeof h == "object") {
84
+ d = h
85
+ }
86
+ }
87
+ })
88
+ },
89
+ _initPicker: function () {
90
+ var h = this;
91
+ var clearText;
92
+ var buttonsHTML;
93
+
94
+ if (h.options.language == 'en') {
95
+ clearText = 'Clear';
96
+ responseText = 'Copied to Clipboard';
97
+ placeholder = h.options.placeholder;
98
+ } else if (h.options.language == 'de') {
99
+ clearText = 'Löschen';
100
+ responseText = 'Kopiert zur Zwischenablage';
101
+ placeholder = "Klicken Sie auf Picker zur Auswahl von Emoji's aus einer Kategorie";
102
+ } else {
103
+ clearText = 'Clear';
104
+ responseText = 'in Clipboard';
105
+ placeholder = h.options.placeholder;
106
+ }
107
+
108
+ buttonsHTML = '<div class="twemoji-icon-picker">';
109
+ buttonsHTML += '<span id="open-group" class="mr-2" style="width: 2rem; height: 2rem;">';
110
+ buttonsHTML += '<button type="button" name="open-group" class="btn btn-flex btn-primary mr-2"><i class="toggle-button mdi mdi-lg mr-1 mdi-toggle-switch-off"></i> Picker </button>';
111
+ buttonsHTML += '</span>';
112
+ buttonsHTML += '<span id="clear-textarea" style="width: 2rem; height: 2rem;">';
113
+ buttonsHTML += '<button type="button" name="clear-textarea" class="btn btn-flex btn-primary"><i class="mdi mdi-close mdi-lg mr-1"></i>' + clearText + '</button>';
114
+ buttonsHTML += '</span>';
115
+ buttonsHTML += '</div>';
116
+
117
+ h.$id = "#" + h.$el["0"].id;
118
+ h.$pickerHeigth = h.options.height.replace("px", "");
119
+ h.$pickerHeigth = Number(h.$pickerHeigth);
120
+ h.$wrapper = h.$el.wrap('<div class="twemoji-wrap"></div>').parent();
121
+ h.$wrapper.append('<div class="twemoji-textarea" contentEditable="true" placeholder="' + placeholder + '"></div>');
122
+ h.$wrapper.append('<div class="twemoji-textarea-duplicate"></div>');
123
+ h.$wrapper.append(buttonsHTML);
124
+ h.$wrapper.append('<div class="twemoji-picker"></div>');
125
+ h.$el.hide();
126
+ h.$textarea = h.$wrapper.find(".twemoji-textarea");
127
+ h.$textareaDuplicate = h.$wrapper.find(".twemoji-textarea-duplicate").hide();
128
+ h.$iconPicker = h.$wrapper.find("#open-group");
129
+ h.$clearTextarea = h.$wrapper.find("#clear-textarea");
130
+ h.$picker = h.$wrapper.find(".twemoji-picker").hide()
131
+ },
132
+ _initCategory: function () {
133
+ var h = this;
134
+ var i = this.options.category;
135
+ this.categoryName = ["people", "nature", "object", "place", "symbol"];
136
+ this.$picker.append('<div class="twemoji-picker-category"></div>');
137
+ this.$pickerCategory = this.$picker.find(".twemoji-picker-category");
138
+ $.each(this.categoryName, function (j, k) {
139
+ h.$pickerCategory.append('<span data-category="' + k + '">' + h.imageFromName(i[j]) + "</span>")
140
+ });
141
+ this.$pickerCategory.find("span:first").addClass("active")
142
+ },
143
+ _initTwemoji: function () {
144
+ var h = this;
145
+ $.each(this.categoryName, function (j, k) {
146
+ h.$picker.append('<div class="twemoji-list ' + k + '"></div>');
147
+ $.each(d, function (i, l) {
148
+ if (l.category === k) {
149
+ h.$wrapper.find(".twemoji-picker ." + k).append('<span><img class="emoji" draggable="false" src="' + l.base64 + '" alt="' + l.value + '" title="' + l.name + '"></span>')
150
+ }
151
+ })
152
+ });
153
+ this.$twemojiList = this.$picker.find(".twemoji-list");
154
+ this.$twemojiList.not(":first").hide()
155
+ },
156
+ _initText: function () {
157
+ if (this.options.init) {
158
+ var j = this.options.init;
159
+ var i = /:([\w-]+):/g;
160
+ var h;
161
+ while (h == i.exec(j)) {
162
+ j = j.replace(h[0], this.imageFromName(h[1], true))
163
+ }
164
+ this.$textarea.html(j);
165
+ this.copyTextArea(this.$textarea.html())
166
+ }
167
+ },
168
+ _initStyle: function () {
169
+ this.$wrapper.css({
170
+ width: this.options.width ? this.options.width : "100%",
171
+ height: this.options.height ? this.options.height : "",
172
+ });
173
+ this.$wrapper.find("img").css({
174
+ width: this.options.size,
175
+ height: this.options.size,
176
+ });
177
+ this.$iconPicker.css({
178
+ width: this.options.iconSize,
179
+ height: this.options.iconSize,
180
+ });
181
+ this.$pickerCategory.find("img").css({
182
+ width: this.options.categorySize,
183
+ height: this.options.categorySize,
184
+ });
185
+ this.$twemojiList.css({
186
+ width: this.options.pickerWidth ? this.options.pickerWidth : "100%",
187
+ height: this.options.pickerHeight,
188
+ });
189
+ this.$picker.css({
190
+ width: this.options.pickerWidth ? this.options.pickerWidth : "100%",
191
+ top: this.options.pickerPosition === "top" ? "-" + this.$picker.outerHeight() + "px" : "",
192
+ })
193
+ },
194
+ _initEvents: function () {
195
+ var h = this;
196
+ this.$textarea.on("keyup", function () {
197
+ h.copyTextArea($(this).html())
198
+ });
199
+ this.$iconPicker.on("click", function () {
200
+ var i = $(".twemoji-picker").height() + b;
201
+ $("#picker").height(i);
202
+ $(".toggle-button").toggleClass("mdi-toggle-switch-off mdi-toggle-switch");
203
+ if (!h.openedPicker) {
204
+ h.openPicker()
205
+ } else {
206
+ h.closePicker();
207
+ $("#picker").height(h.$pickerHeigth)
208
+ }
209
+ });
210
+ this.$clearTextarea.on("click", function () {
211
+ h.copyTextArea('');
212
+ $(h.$id).val('');
213
+ $(".twemoji-textarea > .emoji-span").remove()
214
+ });
215
+ this.$pickerCategory.find("span").on("click", function () {
216
+ var i = $(this).data("category");
217
+ h.openCategory($(this), i)
218
+ });
219
+ this.$pickerCategory.find(".close").on("click", function () {
220
+ if (h.openedPicker) {
221
+ h.closePicker()
222
+ }
223
+ });
224
+ this.$twemojiList.find("img").on("click", function () {
225
+ h.copyTwemoji($(this))
226
+ })
227
+ },
228
+ copyText: function (text) {
229
+ var copyFrom = document.createElement('textarea');
230
+ copyFrom.setAttribute("style", "position:fixed;opacity:0;top:100px;left:100px;");
231
+ copyFrom.value = text;
232
+ document.body.appendChild(copyFrom);
233
+ copyFrom.select();
234
+ document.execCommand('copy');
235
+ var copied = document.createElement('div');
236
+ copied.setAttribute('class', 'copied');
237
+ copied.appendChild(document.createTextNode(responseText));
238
+ document.body.appendChild(copied);
239
+ setTimeout(function () {
240
+ document.body.removeChild(copyFrom);
241
+ document.body.removeChild(copied);
242
+ }, 1500);
243
+ },
244
+ openPicker: function () {
245
+ this.$picker.show();
246
+ this.openedPicker = true
247
+ },
248
+ closePicker: function () {
249
+ this.$picker.hide();
250
+ this.openedPicker = false
251
+ },
252
+ openCategory: function (h, i) {
253
+ this.$pickerCategory.find("span").removeClass("active");
254
+ h.addClass("active");
255
+ this.$twemojiList.not(".twemoji-picker ." + i).hide();
256
+ this.$twemojiList.filter(".twemoji-picker ." + i).show()
257
+ },
258
+ copyTwemoji: function (l) {
259
+ var i = l.attr("alt");
260
+ var k = l.attr("src");
261
+ var j = l.attr("title");
262
+ var h = "emoji:" + j + "[]";
263
+ this.copyText(h);
264
+ this.$textarea.focus();
265
+ this.pasteAtCursor('<span class="emoji-span"><img class="emoji" src="' + k + '" title="' + j + '" alt="' + i + '" width="' + this.options.size + '" height="' + this.options.size + '"> ' + h + "</span> ");
266
+ this.copyTextArea(this.$textarea.html())
267
+ },
268
+ copyTextArea: function (j) {
269
+ var h = this.$textareaDuplicate.html(j);
270
+ h.find("img").replaceWith(function () {
271
+ return this.alt
272
+ });
273
+ var i = h.html();
274
+ this.$el.text(i)
275
+ },
276
+ imageFromName: function (i, j) {
277
+ var h = $.grep(d, function (k) {
278
+ return k.name == i
279
+ });
280
+ if (j) {
281
+ return '<img class="emoji" src="' + h[0].base64 + '" alt="' + h[0].value + '" width="' + this.options.size + '" height="' + this.options.size + '">'
282
+ }
283
+ return '<img class="emoji" draggable="false" src="' + h[0].base64 + '" alt="' + i + '">'
284
+ },
285
+ pasteAtCursor: function (m) {
286
+ var l, h;
287
+ if (window.getSelection) {
288
+ l = window.getSelection();
289
+ if (l.getRangeAt && l.rangeCount) {
290
+ h = l.getRangeAt(0);
291
+ h.deleteContents();
292
+ var i = document.createElement("div");
293
+ i.innerHTML = m;
294
+ var n = document.createDocumentFragment(),
295
+ k, j;
296
+ while ((k = i.firstChild)) {
297
+ j = n.appendChild(k)
298
+ }
299
+ h.insertNode(n);
300
+ if (j) {
301
+ h = h.cloneRange();
302
+ h.setStartAfter(j);
303
+ h.collapse(true);
304
+ l.removeAllRanges();
305
+ l.addRange(h)
306
+ }
307
+ }
308
+ } else {
309
+ if (document.selection && document.selection.type != "Control") {
310
+ document.selection.createRange().pasteHTML(m)
311
+ }
312
+ }
313
+ }
314
+ };
315
+ $.fn.twemojiPicker = function (i) {
316
+ var h = $.data(this, "twemojiPicker");
317
+ this.each(function () {
318
+ h ? h._init() : h = $.data(this, "twemojiPicker", new $.TwemojiPicker(this, i));
319
+ });
320
+ return h
321
+ }
322
+ })(jQuery, window, document);
data/lib/j1/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module J1
2
- VERSION = '2022.4.9'
2
+ VERSION = '2022.4.10'
3
3
  end
@@ -53,7 +53,7 @@ gem 'jekyll', '~> 4.2'
53
53
 
54
54
  # Theme Rubies, default: J1 Template (NOT used for the development system)
55
55
  #
56
- gem 'j1-template', '~> 2022.4.9'
56
+ gem 'j1-template', '~> 2022.4.10'
57
57
 
58
58
  # ------------------------------------------------------------------------------
59
59
  # PRODUCTION: Gem needed for the Jekyll and J1 prod environment
@@ -53,7 +53,7 @@ environment: development
53
53
  # ------------------------------------------------------------------------------
54
54
  # Sets the build version of J1 Template Gem
55
55
  #
56
- version: 2022.4.9
56
+ version: 2022.4.10
57
57
 
58
58
  # version
59
59
  # ------------------------------------------------------------------------------
@@ -270,7 +270,7 @@ robots:
270
270
 
271
271
  brand:
272
272
  image: modules/icons/j1/j1-512x512.png
273
- image_height: 48
273
+ image_height: 48px
274
274
  text: Jekyll One
275
275
  text_color: "#9E9E9E"
276
276
 
@@ -112,7 +112,7 @@ settings:
112
112
  translate: notranslate # translate|notranslate
113
113
  title: Roundtrip
114
114
  tagline: learn top features
115
- class: btn btn-xl btn-primary text-uppercase text-left mr-2 mb-2
115
+ class: btn btn-raised btn-xl btn-primary text-uppercase text-left mr-2 mb-2
116
116
  style: "min-width: 270px"
117
117
  icon: briefcase-search-outline
118
118
  icon_color:
@@ -126,7 +126,7 @@ settings:
126
126
  translate: notranslate # translate|notranslate
127
127
  title: Download
128
128
  tagline: get on rubygems
129
- class: btn btn-xl btn-primary text-uppercase text-left mr-2 mb-2
129
+ class: btn btn-raised btn-xl btn-primary text-uppercase text-left mr-2 mb-2
130
130
  style: "min-width: 270px"
131
131
  icon: briefcase-download-outline
132
132
  icon_color:
@@ -181,9 +181,12 @@ settings:
181
181
  cite_text_size: 300%
182
182
  cite_text_quotes: false
183
183
  cite_text: >
184
- <strong><span class="text-primary">Making is</span>
185
- like Wanting, <br> but even
186
- <span class="text-primary">Better</span></strong>
184
+ <strong>
185
+ <span class="text-primary">Making is</span>
186
+ <span class="text-light">like Wanting, <br> but even</span>
187
+ <span class="text-primary">Better</span>
188
+ </strong>
189
+
187
190
  text_color: "#E0E0E0"
188
191
  gridify: true
189
192
  size_y: 450
@@ -154,7 +154,7 @@ settings:
154
154
  the Web and the Web site generator Jekyll. J1 is Open
155
155
  Source and the modules packed as well.
156
156
  <br><br>
157
- <b>No pain for private or professional use.</b>
157
+ <i>No pain for private or professional use.</i>
158
158
 
159
159
  justify: true
160
160
 
@@ -64,7 +64,7 @@ settings:
64
64
  # --------------------------------------------------------------------------
65
65
  # layouts posts|pages
66
66
  #
67
- - name: Page_Post
67
+ - name: Pages and Posts
68
68
  attic:
69
69
  enabled: true
70
70
  id: attic_page_post
@@ -73,14 +73,26 @@ settings:
73
73
  padding_bottom: 50
74
74
  opacity: 0.5
75
75
 
76
+ # --------------------------------------------------------------------------
77
+ # layouts raw
78
+ #
79
+ - name: Raw pages
80
+ attic:
81
+ enabled: true
82
+ id: attic_raw
83
+ layout: [ raw ]
84
+ padding_top: 400
85
+ padding_bottom: 50
86
+ opacity: 0.5
87
+
76
88
  # --------------------------------------------------------------------------
77
89
  # layouts collection|app|raw
78
90
  #
79
- - name: Text attic
91
+ - name: Text pages
80
92
  attic:
81
93
  enabled: true
82
94
  id: attic_text
83
- layout: [ collection, app, raw ]
95
+ layout: [ collection, app ]
84
96
 
85
97
  # ------------------------------------------------------------------------------
86
98
  # END config
@@ -89,7 +89,7 @@ defaults:
89
89
  position: left
90
90
  bottom_line_height: 1
91
91
  bottom_line_color: "#EEEEEE" # md-grey-200
92
- background_color_full: rgba(0, 0, 0, 0.4) # darken-400
92
+ background_color_full: rgba(0, 0, 0, 0.8) # darken-600
93
93
  background_color_collapsed: "#2196F3" # md-blue
94
94
  background_color_scrolled: "#2196F3" # md-blue
95
95
 
@@ -135,9 +135,11 @@ defaults:
135
135
  icon_style: mdi # far regular icon
136
136
  icon_color: "#9E9E9E" # md-grey
137
137
  icon_size: mdi-sm
138
- menu_item_color: rgba(255, 255, 255, 0.5) # rgba-lighten
139
- menu_item_color_hover: rgba(255, 255, 255, 0.9) # rgba-lighten-900
138
+ menu_item_color: rgba(255, 255, 255, 0.9) # rgba-lighten
139
+ menu_item_color_hover: rgba(255, 255, 255, 0.5) # rgba-lighten-900
140
140
  dropdown_style: raised
141
+ dropdown_color: '#2196f3'
142
+ dropdown_left: 12 # px
141
143
  dropdown_item_style: flat
142
144
  dropdown_animate: false
143
145
  dropdown_animate_in: slideInDown
@@ -149,9 +151,9 @@ defaults:
149
151
  dropdown_padding_x: 18 # rem
150
152
  dropdown_padding_y: 10 # px
151
153
  dropdown_item_color: "#212121" # md-grey-900
152
- dropdown_border_color: "#3f51b5" # BS bg-primary
154
+ dropdown_border_color: "#2196f3" # BS bg-primary
153
155
  dropdown_border_top: 0 # 3, px
154
- dropdown_border_radius: 0 # px
156
+ dropdown_border_radius: 2 # px
155
157
  dropdown_background_color_hover: "#ECEFF1" # md-bluegrey-50
156
158
  dropdown_background_color_active: "#CFD8DC" # md-bluegrey-100
157
159