j1-template 2024.2.0 → 2024.2.1
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.
- checksums.yaml +4 -4
- data/assets/data/gemini-ui.html +2 -2
- data/assets/themes/j1/adapter/js/advertising.js +2 -10
- data/assets/themes/j1/adapter/js/analytics.js +1 -5
- data/assets/themes/j1/adapter/js/bmd.js +195 -195
- data/assets/themes/j1/adapter/js/carousel.js +786 -786
- data/assets/themes/j1/adapter/js/clipboard.js +1 -0
- data/assets/themes/j1/adapter/js/comments.js +1 -0
- data/assets/themes/j1/adapter/js/cookieConsent.js +460 -466
- data/assets/themes/j1/adapter/js/customModule.js +5 -4
- data/assets/themes/j1/adapter/js/docsearch.js +1 -0
- data/assets/themes/j1/adapter/js/dropdowns.js +1 -0
- data/assets/themes/j1/adapter/js/fab.js +1 -0
- data/assets/themes/j1/adapter/js/gallery.js +495 -494
- data/assets/themes/j1/adapter/js/gemini.js +154 -128
- data/assets/themes/j1/adapter/js/iconPicker.js +257 -255
- data/assets/themes/j1/adapter/js/iconPickerPage.js +279 -279
- data/assets/themes/j1/adapter/js/iframer.js +3 -2
- data/assets/themes/j1/adapter/js/j1.js +3285 -3285
- data/assets/themes/j1/adapter/js/lazyLoader.js +241 -241
- data/assets/themes/j1/adapter/js/lightbox.js +242 -241
- data/assets/themes/j1/adapter/js/logger.js +1 -0
- data/assets/themes/j1/adapter/js/lunr.js +6 -10
- data/assets/themes/j1/adapter/js/masonry.js +427 -426
- data/assets/themes/j1/adapter/js/masterslider.js +526 -526
- data/assets/themes/j1/adapter/js/mmenu.js +1 -0
- data/assets/themes/j1/adapter/js/navigator.js +2 -2
- data/assets/themes/j1/adapter/js/particles.js +1 -0
- data/assets/themes/j1/adapter/js/rangeSlider.js +1 -0
- data/assets/themes/j1/adapter/js/rouge.js +288 -287
- data/assets/themes/j1/adapter/js/rtable.js +309 -309
- data/assets/themes/j1/adapter/js/slick.js +487 -487
- data/assets/themes/j1/adapter/js/slimSelect.js +3 -5
- data/assets/themes/j1/adapter/js/themeToggler.js +281 -280
- data/assets/themes/j1/adapter/js/themes.js +0 -1
- data/assets/themes/j1/adapter/js/toccer.js +1 -0
- data/assets/themes/j1/adapter/js/translator.js +1 -0
- data/assets/themes/j1/adapter/js/waves.js +1 -0
- data/assets/themes/j1/modules/cookieConsent/js/cookieConsent.js +23 -17
- data/assets/themes/j1/modules/js-cookies/js/js.cookie.js +147 -0
- data/assets/themes/j1/modules/js-cookies/js/js.cookie.min.js +2 -0
- data/lib/j1/version.rb +1 -1
- data/lib/starter_web/README.md +5 -5
- data/lib/starter_web/_config.yml +1 -1
- data/lib/starter_web/_data/modules/defaults/themes.yml +171 -171
- data/lib/starter_web/_data/resources.yml +26 -0
- data/lib/starter_web/_data/templates/feed.xml +1 -1
- data/lib/starter_web/_plugins/index/lunr.rb +1 -1
- data/lib/starter_web/package.json +1 -1
- data/lib/starter_web/pages/public/learn/roundtrip/present_images.adoc +500 -500
- metadata +4 -2
@@ -1,309 +1,309 @@
|
|
1
|
-
---
|
2
|
-
regenerate: true
|
3
|
-
---
|
4
|
-
|
5
|
-
{% capture cache %}
|
6
|
-
|
7
|
-
{% comment %}
|
8
|
-
# -----------------------------------------------------------------------------
|
9
|
-
# ~/assets/themes/j1/adapter/js/rtable.js
|
10
|
-
# Liquid template to adapt rtable
|
11
|
-
#
|
12
|
-
# Product/Info:
|
13
|
-
# https://jekyll.one
|
14
|
-
# Copyright (C) 2023, 2024 Juergen Adams
|
15
|
-
#
|
16
|
-
# J1 Template 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
|
-
# -----------------------------------------------------------------------------
|
22
|
-
{% endcomment %}
|
23
|
-
|
24
|
-
{% comment %} Liquid procedures
|
25
|
-
-------------------------------------------------------------------------------- {% endcomment %}
|
26
|
-
|
27
|
-
{% comment %} Set global settings
|
28
|
-
-------------------------------------------------------------------------------- {% endcomment %}
|
29
|
-
{% assign environment = site.environment %}
|
30
|
-
{% assign asset_path = "/assets/themes/j1" %}
|
31
|
-
|
32
|
-
{% comment %} Process YML config data
|
33
|
-
================================================================================ {% endcomment %}
|
34
|
-
|
35
|
-
{% comment %} Set config files
|
36
|
-
-------------------------------------------------------------------------------- {% endcomment %}
|
37
|
-
{% assign template_config = site.data.j1_config %}
|
38
|
-
{% assign blocks = site.data.blocks %}
|
39
|
-
{% assign modules = site.data.modules %}
|
40
|
-
|
41
|
-
{% comment %} Set config data
|
42
|
-
-------------------------------------------------------------------------------- {% endcomment %}
|
43
|
-
{% assign rtable_defaults = modules.defaults.rtable.defaults %}
|
44
|
-
{% assign rtable_settings = modules.rtable.settings %}
|
45
|
-
|
46
|
-
{% comment %} Set config options
|
47
|
-
-------------------------------------------------------------------------------- {% endcomment %}
|
48
|
-
{% assign rtable_options = rtable_defaults | merge: rtable_settings %}
|
49
|
-
|
50
|
-
{% comment %} Detect prod mode
|
51
|
-
-------------------------------------------------------------------------------- {% endcomment %}
|
52
|
-
{% assign production = false %}
|
53
|
-
{% if environment == 'prod' or environment == 'production' %}
|
54
|
-
{% assign production = true %}
|
55
|
-
{% endif %}
|
56
|
-
|
57
|
-
/*
|
58
|
-
# -----------------------------------------------------------------------------
|
59
|
-
# ~/assets/themes/j1/adapter/js/rtable.js
|
60
|
-
# J1 Adapter for rtable
|
61
|
-
#
|
62
|
-
# Product/Info:
|
63
|
-
# https://jekyll.one
|
64
|
-
#
|
65
|
-
# Copyright (C) 2023, 2024 Juergen Adams
|
66
|
-
#
|
67
|
-
# J1 Template is licensed under the MIT License.
|
68
|
-
# For details, see: https://github.com/jekyll-one-org/j1-template/blob/main/LICENSE.md
|
69
|
-
# -----------------------------------------------------------------------------
|
70
|
-
# Adapter generated: {{site.time}}
|
71
|
-
# -----------------------------------------------------------------------------
|
72
|
-
*/
|
73
|
-
|
74
|
-
// -----------------------------------------------------------------------------
|
75
|
-
// ESLint shimming
|
76
|
-
// -----------------------------------------------------------------------------
|
77
|
-
/* eslint indent: "off" */
|
78
|
-
// -----------------------------------------------------------------------------
|
79
|
-
'use strict';
|
80
|
-
j1.adapter.rtable = ((j1, window) => {
|
81
|
-
|
82
|
-
{% comment %} Set global variables
|
83
|
-
------------------------------------------------------------------------------ {% endcomment %}
|
84
|
-
var environment = '{{environment}}';
|
85
|
-
var state = 'not_started';
|
86
|
-
var rtableDefaults;
|
87
|
-
var rtableSettings;
|
88
|
-
var rtableOptions;
|
89
|
-
|
90
|
-
var _this;
|
91
|
-
var logger;
|
92
|
-
var logText;
|
93
|
-
|
94
|
-
// date|time
|
95
|
-
var startTime;
|
96
|
-
var endTime;
|
97
|
-
var startTimeModule;
|
98
|
-
var endTimeModule;
|
99
|
-
var timeSeconds;
|
100
|
-
|
101
|
-
// ---------------------------------------------------------------------------
|
102
|
-
// helper functions
|
103
|
-
// ---------------------------------------------------------------------------
|
104
|
-
|
105
|
-
// ---------------------------------------------------------------------------
|
106
|
-
// main
|
107
|
-
// ---------------------------------------------------------------------------
|
108
|
-
return {
|
109
|
-
|
110
|
-
// -------------------------------------------------------------------------
|
111
|
-
// adapter initializer
|
112
|
-
// -------------------------------------------------------------------------
|
113
|
-
init: (options) => {
|
114
|
-
|
115
|
-
// -----------------------------------------------------------------------
|
116
|
-
// default module settings
|
117
|
-
// -----------------------------------------------------------------------
|
118
|
-
var settings = $.extend({
|
119
|
-
module_name: 'j1.adapter.rtable',
|
120
|
-
generated: '{{site.time}}'
|
121
|
-
}, options);
|
122
|
-
|
123
|
-
var bsMediaBreakpoints = {
|
124
|
-
xs: 575,
|
125
|
-
sm: 576,
|
126
|
-
md: 768,
|
127
|
-
lg: 992,
|
128
|
-
xl: 1200
|
129
|
-
};
|
130
|
-
|
131
|
-
var breakpoint;
|
132
|
-
|
133
|
-
// -----------------------------------------------------------------------
|
134
|
-
// global variable settings
|
135
|
-
// -----------------------------------------------------------------------
|
136
|
-
_this = j1.adapter.rtable;
|
137
|
-
logger = log4javascript.getLogger('j1.adapter.rtable');
|
138
|
-
|
139
|
-
// Load module DEFAULTS|CONFIG
|
140
|
-
rtableDefaults = $.extend({}, {{rtable_defaults | replace: 'nil', 'null' | replace: '=>', ':' }});
|
141
|
-
rtableSettings = $.extend({}, {{rtable_settings | replace: 'nil', 'null' | replace: '=>', ':' }});
|
142
|
-
rtableOptions = $.extend(true, {}, rtableDefaults, rtableSettings);
|
143
|
-
|
144
|
-
// initialize state flag
|
145
|
-
_this.setState('started');
|
146
|
-
logger.debug('\n' + 'state: ' + _this.getState());
|
147
|
-
logger.info('\n' + 'module is being initialized');
|
148
|
-
|
149
|
-
// -----------------------------------------------------------------------
|
150
|
-
// module initializer
|
151
|
-
// -----------------------------------------------------------------------
|
152
|
-
var dependency_met_page_ready = setInterval(() => {
|
153
|
-
var pageState = $('#content').css("display");
|
154
|
-
var pageVisible = (pageState === 'block') ? true : false;
|
155
|
-
var j1CoreFinished = (j1.getState() === 'finished') ? true : false;
|
156
|
-
|
157
|
-
if (j1CoreFinished && pageVisible) {
|
158
|
-
startTimeModule = Date.now();
|
159
|
-
|
160
|
-
_this.setState('started');
|
161
|
-
logger.debug('\n' + 'set module state to: ' + _this.getState());
|
162
|
-
logger.info('\n' + 'initializing module: started');
|
163
|
-
|
164
|
-
// Add data attributes for tablesaw to all tables of a page
|
165
|
-
// as Asciidoctor has NO option to pass 'data attributes'
|
166
|
-
// See: https://stackoverflow.com/questions/50600405/how-to-add-custom-data-attributes-with-asciidoctor
|
167
|
-
//
|
168
|
-
$('table').each(function () {
|
169
|
-
var curTable = $(this);
|
170
|
-
var log_text;
|
171
|
-
// jadams, 2020-09-16: class 'rtable' indicate use of 'tablesaw'
|
172
|
-
if ($(curTable).hasClass('rtable')) {
|
173
|
-
// add needed CSS class/attribute for tablesaw
|
174
|
-
$(curTable).addClass('table');
|
175
|
-
$(curTable).addClass('tablesaw');
|
176
|
-
$(curTable).attr('data-tablesaw-mode', rtableOptions.rtable.mode);
|
177
|
-
|
178
|
-
// Advanced mode NOT supported (mode stack only)
|
179
|
-
//
|
180
|
-
// $(curTable).attr('data-tablesaw-sortable', '');
|
181
|
-
// $(curTable).attr('data-tablesaw-sortable-switch', '');
|
182
|
-
// $(curTable).attr('data-tablesaw-minimap', '');
|
183
|
-
// $(curTable).attr('data-tablesaw-mode-switch', '');
|
184
|
-
|
185
|
-
Tablesaw.init(curTable, {
|
186
|
-
breakpoint: rtableOptions.rtable.breakpoint
|
187
|
-
});
|
188
|
-
|
189
|
-
// set initial state for all table/colgroup elements
|
190
|
-
//
|
191
|
-
breakpoint = bsMediaBreakpoints[rtableOptions.rtable.breakpoint];
|
192
|
-
if (! breakpoint) {
|
193
|
-
breakpoint = bsMediaBreakpoints['lg'];
|
194
|
-
}
|
195
|
-
|
196
|
-
if ($(window).width() < breakpoint) {
|
197
|
-
log_text = '\n' + 'hide colgroups: ' + curTable.attr('id')
|
198
|
-
curTable.find('colgroup').hide();
|
199
|
-
logger.debug(log_text);
|
200
|
-
} else {
|
201
|
-
log_text = '\n' + 'show colgroup: ' + curTable.attr('id')
|
202
|
-
curTable.find('colgroup').show();
|
203
|
-
logger.debug(log_text);
|
204
|
-
}
|
205
|
-
} // END if hasClass rtable
|
206
|
-
|
207
|
-
// add needed div element needed for BS to move the table found
|
208
|
-
// for BS responsiveness
|
209
|
-
//
|
210
|
-
if ($(curTable).hasClass(/table-responsive/)) {
|
211
|
-
// see: https://stackoverflow.com/questions/2596833/how-to-move-child-element-from-one-parent-to-another-using-jquery
|
212
|
-
// see: https://github.com/NV/jquery-regexp-classes
|
213
|
-
//
|
214
|
-
const re = /table-responsive[-]*\w*/;
|
215
|
-
const myID = 'b-table-' + Math.floor(Math.random() * 10000) + 1;
|
216
|
-
var myClasses = $(curTable).attr("class");
|
217
|
-
var responsiveClassFound = myClasses.match(re);
|
218
|
-
var responsiveClass;
|
219
|
-
|
220
|
-
if (responsiveClassFound) {
|
221
|
-
responsiveClass = responsiveClassFound[0];
|
222
|
-
} else {
|
223
|
-
// failsafe
|
224
|
-
log_text = '\n' + 'no matching responsive class found';
|
225
|
-
logger.warn(log_text);
|
226
|
-
}
|
227
|
-
|
228
|
-
// remove responsive class from the table
|
229
|
-
$(curTable).removeClass(/table-responsive[-]*\w+/);
|
230
|
-
$(curTable).addClass('table');
|
231
|
-
|
232
|
-
// add needed div element needed for BS
|
233
|
-
$('<div>', {
|
234
|
-
id: myID,
|
235
|
-
class: responsiveClass
|
236
|
-
}).insertBefore($(curTable));
|
237
|
-
|
238
|
-
// move the table found for BS responsiveness
|
239
|
-
$('#' + myID ).append($(curTable));
|
240
|
-
} // END if hasClass 'table-responsive'
|
241
|
-
});
|
242
|
-
|
243
|
-
_this.setState('finished');
|
244
|
-
logger.debug('\n' + 'state: ' + _this.getState());
|
245
|
-
logger.info('\n' + 'initializing module: finished');
|
246
|
-
|
247
|
-
endTimeModule = Date.now();
|
248
|
-
logger.info('\n' + 'module initializing time: ' + (endTimeModule-startTimeModule) + 'ms');
|
249
|
-
|
250
|
-
clearInterval(dependency_met_page_ready);
|
251
|
-
} // END if pageVisible
|
252
|
-
}, 10); // END dependency_met_page_ready
|
253
|
-
}, // END init
|
254
|
-
|
255
|
-
// -------------------------------------------------------------------------
|
256
|
-
// messageHandler()
|
257
|
-
// manage messages send from other J1 modules
|
258
|
-
// -------------------------------------------------------------------------
|
259
|
-
messageHandler: (sender, message) => {
|
260
|
-
var json_message = JSON.stringify(message, undefined, 2);
|
261
|
-
|
262
|
-
logText = '\n' + 'received message from ' + sender + ': ' + json_message;
|
263
|
-
logger.debug(logText);
|
264
|
-
|
265
|
-
// -----------------------------------------------------------------------
|
266
|
-
// process commands|actions
|
267
|
-
// -----------------------------------------------------------------------
|
268
|
-
if (message.type === 'command' && message.action === 'module_initialized') {
|
269
|
-
|
270
|
-
//
|
271
|
-
// place handling of command|action here
|
272
|
-
//
|
273
|
-
|
274
|
-
logger.info('\n' + message.text);
|
275
|
-
}
|
276
|
-
|
277
|
-
//
|
278
|
-
// place handling of other command|action here
|
279
|
-
//
|
280
|
-
|
281
|
-
return true;
|
282
|
-
}, // END messageHandler
|
283
|
-
|
284
|
-
// -------------------------------------------------------------------------
|
285
|
-
// setState()
|
286
|
-
// sets the current (processing) state of the module
|
287
|
-
// -------------------------------------------------------------------------
|
288
|
-
setState: (stat) => {
|
289
|
-
_this.state = stat;
|
290
|
-
}, // END setState
|
291
|
-
|
292
|
-
// -------------------------------------------------------------------------
|
293
|
-
// getState()
|
294
|
-
// Returns the current (processing) state of the module
|
295
|
-
// -------------------------------------------------------------------------
|
296
|
-
getState: () => {
|
297
|
-
return _this.state;
|
298
|
-
} // END getState
|
299
|
-
|
300
|
-
}; // END main (return)
|
301
|
-
})(j1, window);
|
302
|
-
|
303
|
-
{% endcapture %}
|
304
|
-
{% if production %}
|
305
|
-
{{ cache | minifyJS }}
|
306
|
-
{% else %}
|
307
|
-
{{ cache | strip_empty_lines }}
|
308
|
-
{% endif %}
|
309
|
-
{% assign cache = nil %}
|
1
|
+
---
|
2
|
+
regenerate: true
|
3
|
+
---
|
4
|
+
|
5
|
+
{% capture cache %}
|
6
|
+
|
7
|
+
{% comment %}
|
8
|
+
# -----------------------------------------------------------------------------
|
9
|
+
# ~/assets/themes/j1/adapter/js/rtable.js
|
10
|
+
# Liquid template to adapt rtable
|
11
|
+
#
|
12
|
+
# Product/Info:
|
13
|
+
# https://jekyll.one
|
14
|
+
# Copyright (C) 2023, 2024 Juergen Adams
|
15
|
+
#
|
16
|
+
# J1 Template 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
|
+
# -----------------------------------------------------------------------------
|
22
|
+
{% endcomment %}
|
23
|
+
|
24
|
+
{% comment %} Liquid procedures
|
25
|
+
-------------------------------------------------------------------------------- {% endcomment %}
|
26
|
+
|
27
|
+
{% comment %} Set global settings
|
28
|
+
-------------------------------------------------------------------------------- {% endcomment %}
|
29
|
+
{% assign environment = site.environment %}
|
30
|
+
{% assign asset_path = "/assets/themes/j1" %}
|
31
|
+
|
32
|
+
{% comment %} Process YML config data
|
33
|
+
================================================================================ {% endcomment %}
|
34
|
+
|
35
|
+
{% comment %} Set config files
|
36
|
+
-------------------------------------------------------------------------------- {% endcomment %}
|
37
|
+
{% assign template_config = site.data.j1_config %}
|
38
|
+
{% assign blocks = site.data.blocks %}
|
39
|
+
{% assign modules = site.data.modules %}
|
40
|
+
|
41
|
+
{% comment %} Set config data
|
42
|
+
-------------------------------------------------------------------------------- {% endcomment %}
|
43
|
+
{% assign rtable_defaults = modules.defaults.rtable.defaults %}
|
44
|
+
{% assign rtable_settings = modules.rtable.settings %}
|
45
|
+
|
46
|
+
{% comment %} Set config options
|
47
|
+
-------------------------------------------------------------------------------- {% endcomment %}
|
48
|
+
{% assign rtable_options = rtable_defaults | merge: rtable_settings %}
|
49
|
+
|
50
|
+
{% comment %} Detect prod mode
|
51
|
+
-------------------------------------------------------------------------------- {% endcomment %}
|
52
|
+
{% assign production = false %}
|
53
|
+
{% if environment == 'prod' or environment == 'production' %}
|
54
|
+
{% assign production = true %}
|
55
|
+
{% endif %}
|
56
|
+
|
57
|
+
/*
|
58
|
+
# -----------------------------------------------------------------------------
|
59
|
+
# ~/assets/themes/j1/adapter/js/rtable.js
|
60
|
+
# J1 Adapter for rtable
|
61
|
+
#
|
62
|
+
# Product/Info:
|
63
|
+
# https://jekyll.one
|
64
|
+
#
|
65
|
+
# Copyright (C) 2023, 2024 Juergen Adams
|
66
|
+
#
|
67
|
+
# J1 Template is licensed under the MIT License.
|
68
|
+
# For details, see: https://github.com/jekyll-one-org/j1-template/blob/main/LICENSE.md
|
69
|
+
# -----------------------------------------------------------------------------
|
70
|
+
# Adapter generated: {{site.time}}
|
71
|
+
# -----------------------------------------------------------------------------
|
72
|
+
*/
|
73
|
+
|
74
|
+
// -----------------------------------------------------------------------------
|
75
|
+
// ESLint shimming
|
76
|
+
// -----------------------------------------------------------------------------
|
77
|
+
/* eslint indent: "off" */
|
78
|
+
// -----------------------------------------------------------------------------
|
79
|
+
'use strict';
|
80
|
+
j1.adapter.rtable = ((j1, window) => {
|
81
|
+
|
82
|
+
{% comment %} Set global variables
|
83
|
+
------------------------------------------------------------------------------ {% endcomment %}
|
84
|
+
var environment = '{{environment}}';
|
85
|
+
var state = 'not_started';
|
86
|
+
var rtableDefaults;
|
87
|
+
var rtableSettings;
|
88
|
+
var rtableOptions;
|
89
|
+
|
90
|
+
var _this;
|
91
|
+
var logger;
|
92
|
+
var logText;
|
93
|
+
|
94
|
+
// date|time
|
95
|
+
var startTime;
|
96
|
+
var endTime;
|
97
|
+
var startTimeModule;
|
98
|
+
var endTimeModule;
|
99
|
+
var timeSeconds;
|
100
|
+
|
101
|
+
// ---------------------------------------------------------------------------
|
102
|
+
// helper functions
|
103
|
+
// ---------------------------------------------------------------------------
|
104
|
+
|
105
|
+
// ---------------------------------------------------------------------------
|
106
|
+
// main
|
107
|
+
// ---------------------------------------------------------------------------
|
108
|
+
return {
|
109
|
+
|
110
|
+
// -------------------------------------------------------------------------
|
111
|
+
// adapter initializer
|
112
|
+
// -------------------------------------------------------------------------
|
113
|
+
init: (options) => {
|
114
|
+
|
115
|
+
// -----------------------------------------------------------------------
|
116
|
+
// default module settings
|
117
|
+
// -----------------------------------------------------------------------
|
118
|
+
var settings = $.extend({
|
119
|
+
module_name: 'j1.adapter.rtable',
|
120
|
+
generated: '{{site.time}}'
|
121
|
+
}, options);
|
122
|
+
|
123
|
+
var bsMediaBreakpoints = {
|
124
|
+
xs: 575,
|
125
|
+
sm: 576,
|
126
|
+
md: 768,
|
127
|
+
lg: 992,
|
128
|
+
xl: 1200
|
129
|
+
};
|
130
|
+
|
131
|
+
var breakpoint;
|
132
|
+
|
133
|
+
// -----------------------------------------------------------------------
|
134
|
+
// global variable settings
|
135
|
+
// -----------------------------------------------------------------------
|
136
|
+
_this = j1.adapter.rtable;
|
137
|
+
logger = log4javascript.getLogger('j1.adapter.rtable');
|
138
|
+
|
139
|
+
// Load module DEFAULTS|CONFIG
|
140
|
+
rtableDefaults = $.extend({}, {{rtable_defaults | replace: 'nil', 'null' | replace: '=>', ':' }});
|
141
|
+
rtableSettings = $.extend({}, {{rtable_settings | replace: 'nil', 'null' | replace: '=>', ':' }});
|
142
|
+
rtableOptions = $.extend(true, {}, rtableDefaults, rtableSettings);
|
143
|
+
|
144
|
+
// initialize state flag
|
145
|
+
_this.setState('started');
|
146
|
+
logger.debug('\n' + 'state: ' + _this.getState());
|
147
|
+
logger.info('\n' + 'module is being initialized');
|
148
|
+
|
149
|
+
// -----------------------------------------------------------------------
|
150
|
+
// module initializer
|
151
|
+
// -----------------------------------------------------------------------
|
152
|
+
var dependency_met_page_ready = setInterval(() => {
|
153
|
+
var pageState = $('#content').css("display");
|
154
|
+
var pageVisible = (pageState === 'block') ? true : false;
|
155
|
+
var j1CoreFinished = (j1.getState() === 'finished') ? true : false;
|
156
|
+
|
157
|
+
if (j1CoreFinished && pageVisible) {
|
158
|
+
startTimeModule = Date.now();
|
159
|
+
|
160
|
+
_this.setState('started');
|
161
|
+
logger.debug('\n' + 'set module state to: ' + _this.getState());
|
162
|
+
logger.info('\n' + 'initializing module: started');
|
163
|
+
|
164
|
+
// Add data attributes for tablesaw to all tables of a page
|
165
|
+
// as Asciidoctor has NO option to pass 'data attributes'
|
166
|
+
// See: https://stackoverflow.com/questions/50600405/how-to-add-custom-data-attributes-with-asciidoctor
|
167
|
+
//
|
168
|
+
$('table').each(function () {
|
169
|
+
var curTable = $(this);
|
170
|
+
var log_text;
|
171
|
+
// jadams, 2020-09-16: class 'rtable' indicate use of 'tablesaw'
|
172
|
+
if ($(curTable).hasClass('rtable')) {
|
173
|
+
// add needed CSS class/attribute for tablesaw
|
174
|
+
$(curTable).addClass('table');
|
175
|
+
$(curTable).addClass('tablesaw');
|
176
|
+
$(curTable).attr('data-tablesaw-mode', rtableOptions.rtable.mode);
|
177
|
+
|
178
|
+
// Advanced mode NOT supported (mode stack only)
|
179
|
+
//
|
180
|
+
// $(curTable).attr('data-tablesaw-sortable', '');
|
181
|
+
// $(curTable).attr('data-tablesaw-sortable-switch', '');
|
182
|
+
// $(curTable).attr('data-tablesaw-minimap', '');
|
183
|
+
// $(curTable).attr('data-tablesaw-mode-switch', '');
|
184
|
+
|
185
|
+
Tablesaw.init(curTable, {
|
186
|
+
breakpoint: rtableOptions.rtable.breakpoint
|
187
|
+
});
|
188
|
+
|
189
|
+
// set initial state for all table/colgroup elements
|
190
|
+
//
|
191
|
+
breakpoint = bsMediaBreakpoints[rtableOptions.rtable.breakpoint];
|
192
|
+
if (! breakpoint) {
|
193
|
+
breakpoint = bsMediaBreakpoints['lg'];
|
194
|
+
}
|
195
|
+
|
196
|
+
if ($(window).width() < breakpoint) {
|
197
|
+
log_text = '\n' + 'hide colgroups: ' + curTable.attr('id')
|
198
|
+
curTable.find('colgroup').hide();
|
199
|
+
logger.debug(log_text);
|
200
|
+
} else {
|
201
|
+
log_text = '\n' + 'show colgroup: ' + curTable.attr('id')
|
202
|
+
curTable.find('colgroup').show();
|
203
|
+
logger.debug(log_text);
|
204
|
+
}
|
205
|
+
} // END if hasClass rtable
|
206
|
+
|
207
|
+
// add needed div element needed for BS to move the table found
|
208
|
+
// for BS responsiveness
|
209
|
+
//
|
210
|
+
if ($(curTable).hasClass(/table-responsive/)) {
|
211
|
+
// see: https://stackoverflow.com/questions/2596833/how-to-move-child-element-from-one-parent-to-another-using-jquery
|
212
|
+
// see: https://github.com/NV/jquery-regexp-classes
|
213
|
+
//
|
214
|
+
const re = /table-responsive[-]*\w*/;
|
215
|
+
const myID = 'b-table-' + Math.floor(Math.random() * 10000) + 1;
|
216
|
+
var myClasses = $(curTable).attr("class");
|
217
|
+
var responsiveClassFound = myClasses.match(re);
|
218
|
+
var responsiveClass;
|
219
|
+
|
220
|
+
if (responsiveClassFound) {
|
221
|
+
responsiveClass = responsiveClassFound[0];
|
222
|
+
} else {
|
223
|
+
// failsafe
|
224
|
+
log_text = '\n' + 'no matching responsive class found';
|
225
|
+
logger.warn(log_text);
|
226
|
+
}
|
227
|
+
|
228
|
+
// remove responsive class from the table
|
229
|
+
$(curTable).removeClass(/table-responsive[-]*\w+/);
|
230
|
+
$(curTable).addClass('table');
|
231
|
+
|
232
|
+
// add needed div element needed for BS
|
233
|
+
$('<div>', {
|
234
|
+
id: myID,
|
235
|
+
class: responsiveClass
|
236
|
+
}).insertBefore($(curTable));
|
237
|
+
|
238
|
+
// move the table found for BS responsiveness
|
239
|
+
$('#' + myID ).append($(curTable));
|
240
|
+
} // END if hasClass 'table-responsive'
|
241
|
+
});
|
242
|
+
|
243
|
+
_this.setState('finished');
|
244
|
+
logger.debug('\n' + 'state: ' + _this.getState());
|
245
|
+
logger.info('\n' + 'initializing module: finished');
|
246
|
+
|
247
|
+
endTimeModule = Date.now();
|
248
|
+
logger.info('\n' + 'module initializing time: ' + (endTimeModule-startTimeModule) + 'ms');
|
249
|
+
|
250
|
+
clearInterval(dependency_met_page_ready);
|
251
|
+
} // END if pageVisible
|
252
|
+
}, 10); // END dependency_met_page_ready
|
253
|
+
}, // END init
|
254
|
+
|
255
|
+
// -------------------------------------------------------------------------
|
256
|
+
// messageHandler()
|
257
|
+
// manage messages send from other J1 modules
|
258
|
+
// -------------------------------------------------------------------------
|
259
|
+
messageHandler: (sender, message) => {
|
260
|
+
var json_message = JSON.stringify(message, undefined, 2);
|
261
|
+
|
262
|
+
logText = '\n' + 'received message from ' + sender + ': ' + json_message;
|
263
|
+
logger.debug(logText);
|
264
|
+
|
265
|
+
// -----------------------------------------------------------------------
|
266
|
+
// process commands|actions
|
267
|
+
// -----------------------------------------------------------------------
|
268
|
+
if (message.type === 'command' && message.action === 'module_initialized') {
|
269
|
+
|
270
|
+
//
|
271
|
+
// place handling of command|action here
|
272
|
+
//
|
273
|
+
|
274
|
+
logger.info('\n' + message.text);
|
275
|
+
}
|
276
|
+
|
277
|
+
//
|
278
|
+
// place handling of other command|action here
|
279
|
+
//
|
280
|
+
|
281
|
+
return true;
|
282
|
+
}, // END messageHandler
|
283
|
+
|
284
|
+
// -------------------------------------------------------------------------
|
285
|
+
// setState()
|
286
|
+
// sets the current (processing) state of the module
|
287
|
+
// -------------------------------------------------------------------------
|
288
|
+
setState: (stat) => {
|
289
|
+
_this.state = stat;
|
290
|
+
}, // END setState
|
291
|
+
|
292
|
+
// -------------------------------------------------------------------------
|
293
|
+
// getState()
|
294
|
+
// Returns the current (processing) state of the module
|
295
|
+
// -------------------------------------------------------------------------
|
296
|
+
getState: () => {
|
297
|
+
return _this.state;
|
298
|
+
} // END getState
|
299
|
+
|
300
|
+
}; // END main (return)
|
301
|
+
})(j1, window);
|
302
|
+
|
303
|
+
{% endcapture %}
|
304
|
+
{% if production %}
|
305
|
+
{{ cache | minifyJS }}
|
306
|
+
{% else %}
|
307
|
+
{{ cache | strip_empty_lines }}
|
308
|
+
{% endif %}
|
309
|
+
{% assign cache = nil %}
|