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,526 +1,526 @@
|
|
1
|
-
---
|
2
|
-
regenerate: true
|
3
|
-
---
|
4
|
-
|
5
|
-
{% capture cache %}
|
6
|
-
|
7
|
-
{% comment %}
|
8
|
-
# -----------------------------------------------------------------------------
|
9
|
-
# ~/assets/themes/j1/adapter/js/masterslider.js
|
10
|
-
# Liquid template to adapt Averta MasterSlider Lite
|
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 var initialization
|
25
|
-
-------------------------------------------------------------------------------- {% endcomment %}
|
26
|
-
|
27
|
-
{% comment %} Set config files
|
28
|
-
-------------------------------------------------------------------------------- {% endcomment %}
|
29
|
-
{% assign environment = site.environment %}
|
30
|
-
{% assign template_config = site.data.j1_config %}
|
31
|
-
{% assign modules = site.data.modules %}
|
32
|
-
|
33
|
-
{% comment %} Set config data
|
34
|
-
-------------------------------------------------------------------------------- {% endcomment %}
|
35
|
-
{% assign master_slider_defaults = modules.defaults.masterslider.defaults %}
|
36
|
-
{% assign master_slider_settings = modules.masterslider.settings %}
|
37
|
-
|
38
|
-
{% comment %} Set config options
|
39
|
-
-------------------------------------------------------------------------------- {% endcomment %}
|
40
|
-
{% assign master_slider_options = master_slider_defaults | merge: master_slider_settings %}
|
41
|
-
{% assign lightbox_enabled = master_slider_options.enable_lightbox %}
|
42
|
-
{% assign slider_manager = master_slider_options.slider_manager %}
|
43
|
-
{% assign save_slider_config = master_slider_options.save_slider_config %}
|
44
|
-
{% assign module_version = master_slider_options.module_version %}
|
45
|
-
|
46
|
-
{% comment %} Detect prod mode
|
47
|
-
-------------------------------------------------------------------------------- {% endcomment %}
|
48
|
-
{% assign production = false %}
|
49
|
-
{% if environment == 'prod' or environment == 'production' %}
|
50
|
-
{% assign production = true %}
|
51
|
-
{% endif %}
|
52
|
-
|
53
|
-
/*
|
54
|
-
# -----------------------------------------------------------------------------
|
55
|
-
# ~/assets/themes/j1/adapter/js/masterslider.js
|
56
|
-
# J1 Adapter for Averta MasterSlider Lite v2.85.13 (Feb 2022)
|
57
|
-
#
|
58
|
-
# Product/Info:
|
59
|
-
# https://jekyll.one
|
60
|
-
#
|
61
|
-
# Copyright (C) 2023, 2024 Juergen Adams
|
62
|
-
#
|
63
|
-
# J1 Template is licensed under the MIT License.
|
64
|
-
# For details, see: https://github.com/jekyll-one-org/j1-template/blob/main/LICENSE.md
|
65
|
-
# -----------------------------------------------------------------------------
|
66
|
-
# Adapter generated: {{site.time}}
|
67
|
-
# -----------------------------------------------------------------------------
|
68
|
-
*/
|
69
|
-
|
70
|
-
// -----------------------------------------------------------------------------
|
71
|
-
// ESLint shimming
|
72
|
-
// -----------------------------------------------------------------------------
|
73
|
-
/* eslint indent: "off" */
|
74
|
-
// -----------------------------------------------------------------------------
|
75
|
-
'use strict';
|
76
|
-
j1.adapter.masterslider = ((j1, window) => {
|
77
|
-
|
78
|
-
{% comment %} Set global variables
|
79
|
-
------------------------------------------------------------------------------ {% endcomment %}
|
80
|
-
var environment = '{{environment}}';
|
81
|
-
var moduleVersion = '{{module_version}}';
|
82
|
-
var sliderManager = j1.stringToBoolean('{{slider_manager}}');
|
83
|
-
var lightboxEnabled = j1.stringToBoolean('{{lightbox_enabled}}');
|
84
|
-
var saveSliderConfig = j1.stringToBoolean('{{save_slider_config}}');
|
85
|
-
var newline = '\n';
|
86
|
-
var state = 'not_started';
|
87
|
-
|
88
|
-
var masterSliderDefaults;
|
89
|
-
var masterSliderSettings;
|
90
|
-
var masterSliderOptions;
|
91
|
-
|
92
|
-
var _this;
|
93
|
-
var logger;
|
94
|
-
var logText;
|
95
|
-
|
96
|
-
// date|time
|
97
|
-
var startTime;
|
98
|
-
var endTime;
|
99
|
-
var startTimeModule;
|
100
|
-
var endTimeModule;
|
101
|
-
var timeSeconds;
|
102
|
-
|
103
|
-
// ---------------------------------------------------------------------------
|
104
|
-
// helper functions
|
105
|
-
// ---------------------------------------------------------------------------
|
106
|
-
|
107
|
-
// ---------------------------------------------------------------------------
|
108
|
-
// main
|
109
|
-
// ---------------------------------------------------------------------------
|
110
|
-
return {
|
111
|
-
|
112
|
-
// -------------------------------------------------------------------------
|
113
|
-
// adapter initializer
|
114
|
-
// -------------------------------------------------------------------------
|
115
|
-
init: (options) => {
|
116
|
-
var msSliderManager;
|
117
|
-
|
118
|
-
if (sliderManager) {
|
119
|
-
msSliderManager = document.createElement('script');
|
120
|
-
msSliderManager.id = 'ms-slider-manager';
|
121
|
-
msSliderManager.innerHTML = '';
|
122
|
-
}
|
123
|
-
|
124
|
-
// used for later access
|
125
|
-
j1.masterslider = {};
|
126
|
-
j1.masterslider.instances = j1.masterslider.instances || [];
|
127
|
-
|
128
|
-
// -----------------------------------------------------------------------
|
129
|
-
// default module settings
|
130
|
-
// -----------------------------------------------------------------------
|
131
|
-
var settings = $.extend({
|
132
|
-
module_name: 'j1.adapter.masterslider',
|
133
|
-
generated: '{{site.time}}'
|
134
|
-
}, options);
|
135
|
-
|
136
|
-
// Load module DEFAULTS|CONFIG
|
137
|
-
masterSliderDefaults = $.extend({}, {{master_slider_defaults | replace: 'nil', 'null' | replace: '=>', ':' }});
|
138
|
-
masterSliderSettings = $.extend({}, {{master_slider_settings | replace: 'nil', 'null' | replace: '=>', ':' }});
|
139
|
-
masterSliderOptions = $.extend({}, masterSliderDefaults, masterSliderSettings);
|
140
|
-
|
141
|
-
// -----------------------------------------------------------------------
|
142
|
-
// global variable settings
|
143
|
-
// -----------------------------------------------------------------------
|
144
|
-
_this = j1.adapter.masterslider;
|
145
|
-
logger = log4javascript.getLogger('j1.adapter.masterslider');
|
146
|
-
|
147
|
-
// initialize state flag
|
148
|
-
//
|
149
|
-
_this.setState('started');
|
150
|
-
// console.debug('module state: ' + _this.getState());
|
151
|
-
|
152
|
-
// load HTML portion for sliders configured
|
153
|
-
// console.debug('loading HTML portion for all sliders configured');
|
154
|
-
_this.loadSliderHTML(masterSliderOptions, masterSliderOptions.sliders);
|
155
|
-
// create an 'MasterSlider' instance for all sliders configured
|
156
|
-
// console.debug('create an \'MasterSlider\' instance for all MS sliders configured');
|
157
|
-
_this.createSliderInstances(masterSliderOptions.sliders, msSliderManager);
|
158
|
-
|
159
|
-
// -----------------------------------------------------------------------
|
160
|
-
// module initializer
|
161
|
-
// -----------------------------------------------------------------------
|
162
|
-
var dependency_met_page_ready = setInterval(() => {
|
163
|
-
var pageState = $('#content').css("display");
|
164
|
-
var pageVisible = (pageState === 'block') ? true : false;
|
165
|
-
var j1CoreFinished = (j1.getState() === 'finished') ? true : false;
|
166
|
-
var dataLoaded = (_this.getState() === 'data_loaded') ? true : false;
|
167
|
-
var atticFinished = (j1.adapter.attic.getState() == 'finished') ? true : false;
|
168
|
-
|
169
|
-
if (pageVisible && j1CoreFinished && dataLoaded && atticFinished) {
|
170
|
-
startTimeModule = Date.now();
|
171
|
-
|
172
|
-
_this.setState('started');
|
173
|
-
logger.debug('\n' + 'set module state to: ' + _this.getState());
|
174
|
-
logger.info('\n' + 'initializing module: started');
|
175
|
-
|
176
|
-
logger.debug('\n' + 'ms module version detected: ' + moduleVersion);
|
177
|
-
logger.debug('\n' + 'module is being initialized');
|
178
|
-
|
179
|
-
_this.initSliders(masterSliderOptions, masterSliderOptions.sliders, msSliderManager, saveSliderConfig);
|
180
|
-
|
181
|
-
clearInterval(dependency_met_page_ready);
|
182
|
-
} // END pageVisible|dataLoaded
|
183
|
-
}, 10); // END dependency_met_page_ready
|
184
|
-
|
185
|
-
// make sure the 'content' section is visible BEFORE setting-up sliders
|
186
|
-
var dependencies_met_module_finished = setInterval (() => {
|
187
|
-
var slidersInitialized = (_this.getState() === 'sliders_initialized') ? true: false;
|
188
|
-
|
189
|
-
if (slidersInitialized) {
|
190
|
-
|
191
|
-
// TODO: Check why a timeout is required to load the Slider Manager
|
192
|
-
setTimeout(() => {
|
193
|
-
if (sliderManager) document.body.appendChild(msSliderManager);
|
194
|
-
|
195
|
-
_this.setState('finished');
|
196
|
-
logger.debug('\n' + 'state: ' + _this.getState());
|
197
|
-
logger.info('\n' + 'initializing module: finished');
|
198
|
-
|
199
|
-
endTimeModule = Date.now();
|
200
|
-
logger.info('\n' + 'module initializing time: ' + (endTimeModule-startTimeModule) + 'ms');
|
201
|
-
|
202
|
-
}, masterSliderOptions.slider_manager_load_timeout);
|
203
|
-
|
204
|
-
clearInterval(dependencies_met_module_finished);
|
205
|
-
} // END if slidersInitialized
|
206
|
-
}, 10); // END dependencies_met_j1_core_finished
|
207
|
-
}, // END init
|
208
|
-
|
209
|
-
// -------------------------------------------------------------------------
|
210
|
-
// loadSliderHTML()
|
211
|
-
// load all master sliders (HTML portion) dynanically configured
|
212
|
-
// and enabled (AJAX) from data file
|
213
|
-
// NOTE: Make sure the placeholder is available in the content page
|
214
|
-
// eg. using the asciidoc extension masterslider::
|
215
|
-
// -------------------------------------------------------------------------
|
216
|
-
loadSliderHTML: (options, slider) => {
|
217
|
-
var numSliders = Object.keys(slider).length;
|
218
|
-
var active_sliders = numSliders;
|
219
|
-
var xhr_data_path = options.xhr_data_path + '/index.html';
|
220
|
-
var xhr_container_id;
|
221
|
-
|
222
|
-
_this.setState('load_data');
|
223
|
-
Object.keys(slider).forEach((key) => {
|
224
|
-
if (slider[key].enabled) {
|
225
|
-
xhr_container_id = 'p_' + slider[key].id;
|
226
|
-
j1.loadHTML({
|
227
|
-
xhr_container_id: xhr_container_id,
|
228
|
-
xhr_data_path: xhr_data_path,
|
229
|
-
xhr_data_element: slider[key].id
|
230
|
-
});
|
231
|
-
} else {
|
232
|
-
active_sliders--;
|
233
|
-
}
|
234
|
-
}); //END forEach
|
235
|
-
|
236
|
-
_this.setState('data_loaded');
|
237
|
-
}, // END loadSliderHTML
|
238
|
-
|
239
|
-
// -------------------------------------------------------------------------
|
240
|
-
// createSliderInstances()
|
241
|
-
// create an 'MasterSlider' instance for all sliders configured
|
242
|
-
// -------------------------------------------------------------------------
|
243
|
-
createSliderInstances: (sliders, sliderManager) => {
|
244
|
-
var msSliderManager = sliderManager;
|
245
|
-
var numSliders = Object.keys(sliders).length;
|
246
|
-
var msSliderManagerItem;
|
247
|
-
|
248
|
-
var i=0;
|
249
|
-
Object.keys(sliders).forEach((key) => {
|
250
|
-
i++;
|
251
|
-
if (sliderManager) {
|
252
|
-
msSliderManagerItem = ' var masterslider_' + i + ' = new MasterSlider();' + '\n';
|
253
|
-
msSliderManager.innerHTML += msSliderManagerItem;
|
254
|
-
} else {
|
255
|
-
_this["masterslider_" + i] = new MasterSlider();
|
256
|
-
}
|
257
|
-
}); //END forEach
|
258
|
-
}, // END createSliderInstances
|
259
|
-
|
260
|
-
// -------------------------------------------------------------------------
|
261
|
-
// initSliders()
|
262
|
-
// initialze all master sliders found in page. Dynamically apply properties
|
263
|
-
// for methods 'setup' and 'control'.
|
264
|
-
// -------------------------------------------------------------------------
|
265
|
-
initSliders: (options, slider, sliderManager, save_config) => {
|
266
|
-
var msSliderManager = sliderManager;
|
267
|
-
var newline = '\n';
|
268
|
-
|
269
|
-
// run the method 'control' on all sliders 'enabled'
|
270
|
-
//
|
271
|
-
function setupControls(options, slider, sliderManager) {
|
272
|
-
const controlOptions = options.controls;
|
273
|
-
var msSliderManager = sliderManager;
|
274
|
-
var index;
|
275
|
-
var i=0;
|
276
|
-
|
277
|
-
logger.info('\n' + 'generate slider controls');
|
278
|
-
|
279
|
-
if (sliderManager) msSliderManager.innerHTML += newline;
|
280
|
-
Object.keys(slider).forEach((key) => {
|
281
|
-
i++; // instance index
|
282
|
-
index = parseInt(key); // object index
|
283
|
-
|
284
|
-
if (slider[index].enabled) {
|
285
|
-
if (slider[index].controls) {
|
286
|
-
Object.keys(slider[index].controls).forEach((key) => {
|
287
|
-
var msSliderManagerItem = '\n';
|
288
|
-
logger.debug('\n' + 'slider control found id|key: ' + slider[index].id + '|' + key);
|
289
|
-
|
290
|
-
// merge settings, defaults into control
|
291
|
-
control = $.extend({}, controlOptions[key], slider[index].controls[key]);
|
292
|
-
// remove J1 config setting
|
293
|
-
delete control['enabled'];
|
294
|
-
|
295
|
-
if (sliderManager) {
|
296
|
-
msSliderManagerItem = ' ' + 'masterslider_' + i + '.control(' + '\'' + key + '\'' + ', ' + JSON.stringify(control) + ');'
|
297
|
-
msSliderManager.innerHTML += msSliderManagerItem + '\n';
|
298
|
-
} else {
|
299
|
-
_this["masterslider_" + i].control(key, control);
|
300
|
-
}
|
301
|
-
|
302
|
-
});
|
303
|
-
} else {
|
304
|
-
logger.debug('\n' + 'no slider controls found on id: ' + slider[key].id);
|
305
|
-
}
|
306
|
-
} else {
|
307
|
-
logger.debug('\n' + 'slider found disabled on id: ' + slider[key].id);
|
308
|
-
}
|
309
|
-
});
|
310
|
-
} // END setupControls
|
311
|
-
|
312
|
-
// initialize plugins on all sliders if 'enabled'
|
313
|
-
//
|
314
|
-
function setupPlugIns(options, slider, sliderManager) {
|
315
|
-
const pluginOptions = options.plugins;
|
316
|
-
var msSliderManager = sliderManager;
|
317
|
-
var plugins = {};
|
318
|
-
|
319
|
-
var pluginSettings;
|
320
|
-
var index;
|
321
|
-
var i=0;
|
322
|
-
|
323
|
-
logger.debug('\n' + 'generate slider plugins');
|
324
|
-
|
325
|
-
if (sliderManager) msSliderManager.innerHTML += newline;
|
326
|
-
Object.keys(slider).forEach((key) => {
|
327
|
-
index = parseInt(key); // object index
|
328
|
-
i++; // instance index
|
329
|
-
|
330
|
-
if (slider[index].enabled) {
|
331
|
-
if (slider[index].plugins) {
|
332
|
-
Object.keys(slider[index].plugins).forEach((key) => {
|
333
|
-
var msSliderManagerItem = '\n';
|
334
|
-
logger.info('\n' + 'slider plugin found id|key: ' + slider[index].id + '|' + key);
|
335
|
-
|
336
|
-
// merge settings, defaults into 'plugins'
|
337
|
-
plugins = $.extend({}, pluginOptions, slider[index].plugins);
|
338
|
-
|
339
|
-
// generate setup for plugin 'MSScrollParallax'
|
340
|
-
// NOTE: for the MS config, the plugin 'MSScrollParallax' is named ' J1ScrollParallax'
|
341
|
-
if (plugins.J1ScrollParallax.enabled) {
|
342
|
-
// remove J1 config settings
|
343
|
-
delete plugins.J1ScrollParallax.enabled;
|
344
|
-
|
345
|
-
// create a 'properties' string
|
346
|
-
pluginSettings = JSON.stringify(plugins.J1ScrollParallax).replace(/"/g, '').replace(/{/g, '').replace(/}/g, '');
|
347
|
-
logger.debug('\n' + 'plugin J1ScrollParallax found: ' + pluginSettings);
|
348
|
-
|
349
|
-
// remove property names to get a pure 'parameter' string
|
350
|
-
pluginSettings = pluginSettings.replace(/layers_parallax_depth:/g, '');
|
351
|
-
pluginSettings = pluginSettings.replace(/background_parallax_depth:/g, '');
|
352
|
-
pluginSettings = pluginSettings.replace(/fade_layers:/g, '');
|
353
|
-
|
354
|
-
if (sliderManager) {
|
355
|
-
msSliderManagerItem = ' ' + 'MSScrollParallax.setup(masterslider_' + i + ', ' + pluginSettings + ');';
|
356
|
-
msSliderManager.innerHTML += msSliderManagerItem + '\n';
|
357
|
-
} else {
|
358
|
-
MSScrollParallax.setup(j1.masterslider.instances[index], pluginSettings);
|
359
|
-
}
|
360
|
-
} // END plugin 'MSScrollParallax'
|
361
|
-
});
|
362
|
-
} else {
|
363
|
-
logger.debug('\n' + 'no slider plugins found on id: ' + slider[key].id);
|
364
|
-
} // END if slider[index].plugins
|
365
|
-
} else {
|
366
|
-
logger.debug('\n' + 'slider found disabled on id: ' + slider[key].id);
|
367
|
-
} // END if slider[index].enabled
|
368
|
-
}); // END forEach
|
369
|
-
} // END setupPlugIns
|
370
|
-
|
371
|
-
// run the method 'setup' on all sliders 'enabled'
|
372
|
-
//
|
373
|
-
function setupSliders(options, slider, sliderManager, save_config) {
|
374
|
-
const controlOptions = options.controls;
|
375
|
-
var msSliderManager = sliderManager;
|
376
|
-
var control = {};
|
377
|
-
var index;
|
378
|
-
|
379
|
-
logger.info('\n' + 'generate slider setup');
|
380
|
-
|
381
|
-
if (sliderManager) msSliderManager.innerHTML += newline;
|
382
|
-
var i=0;
|
383
|
-
Object.keys(slider).forEach((key) => {
|
384
|
-
var msSliderManagerItem = '\n';
|
385
|
-
i++; // instance index
|
386
|
-
index = parseInt(key); // object index
|
387
|
-
if (slider[index].enabled) {
|
388
|
-
logger.debug('\n' + 'slider is being initialized on id: ' + slider[key].id);
|
389
|
-
|
390
|
-
// merge settings, defaults into 'setup'
|
391
|
-
setup = $.extend({}, settings.options, slider[index].options);
|
392
|
-
|
393
|
-
// log the filter object if enabled
|
394
|
-
if (setup.filters !== null) {
|
395
|
-
var filterSettings = JSON.stringify(setup.filters).replace(/"/g, '');
|
396
|
-
logger.debug('\n' + 'filters found: ' + filterSettings.replace(/{/g, '').replace(/}/g, ''));
|
397
|
-
}
|
398
|
-
|
399
|
-
if (sliderManager) {
|
400
|
-
msSliderManagerItem = ' ' + 'masterslider_' + i + '.setup(' + '\'' + slider[key].id + '\'' + ', ' + JSON.stringify(setup) + ');'
|
401
|
-
msSliderManager.innerHTML += msSliderManagerItem + '\n';
|
402
|
-
} else {
|
403
|
-
_this["masterslider_" + i].setup(slider[key].id, setup);
|
404
|
-
}
|
405
|
-
|
406
|
-
// save slider config for later access
|
407
|
-
if (save_config) {
|
408
|
-
if (sliderManager) {
|
409
|
-
msSliderManagerItem = ' ' + 'j1.masterslider.instances.push(masterslider_' + i + ');';
|
410
|
-
msSliderManager.innerHTML += msSliderManagerItem + '\n';
|
411
|
-
} else {
|
412
|
-
j1.masterslider.instances.push(_this["masterslider_" + i]);
|
413
|
-
}
|
414
|
-
}
|
415
|
-
} else {
|
416
|
-
logger.info('\n' + 'slider found disabled on id: ' + slider[key].id);
|
417
|
-
}
|
418
|
-
}); // END forEach
|
419
|
-
|
420
|
-
_this.setState('sliders_initialized');
|
421
|
-
logger.debug('\n' + 'state: ' + _this.getState());
|
422
|
-
logger.info('\n' + 'initializing sliders finished');
|
423
|
-
|
424
|
-
} // END setupSliders
|
425
|
-
|
426
|
-
var settings = $.extend({}, options, slider);
|
427
|
-
var control = {};
|
428
|
-
var setup = {};
|
429
|
-
|
430
|
-
var log_text;
|
431
|
-
|
432
|
-
_this.setState('initialize_sliders');
|
433
|
-
logger.debug('\n' + 'state: ' + _this.getState());
|
434
|
-
log_text = '\n' + 'sliders are being initialized';
|
435
|
-
logger.info(log_text);
|
436
|
-
|
437
|
-
setupControls(options, slider, msSliderManager);
|
438
|
-
setupSliders(options, slider, msSliderManager, save_config);
|
439
|
-
setupPlugIns(options, slider, msSliderManager);
|
440
|
-
|
441
|
-
}, // END initSliders
|
442
|
-
|
443
|
-
// -------------------------------------------------------------------------
|
444
|
-
// registerEvents()
|
445
|
-
// Currently NOT used (experimental)
|
446
|
-
// -------------------------------------------------------------------------
|
447
|
-
registerEvents: (options, slider) => {
|
448
|
-
var index;
|
449
|
-
|
450
|
-
var i=0;
|
451
|
-
Object.keys(slider).forEach((key) => {
|
452
|
-
index = parseInt(key); // object index
|
453
|
-
i++; // instance index
|
454
|
-
|
455
|
-
logger.debug('\n' + 'slider events are being initialized on id: ' + index);
|
456
|
-
|
457
|
-
slider[index].api.addEventListener(MSSliderEvent.WAITING, (e) => {
|
458
|
-
var controller = e.target.view.controller;
|
459
|
-
var controllerValue = e.target.view.controller.value;
|
460
|
-
var isLoading = e.target.currentSlide.$loading.length;
|
461
|
-
|
462
|
-
// dispatches when the slider's current slide change starts.
|
463
|
-
if (!isLoading) {
|
464
|
-
logger.info('\n' + 'slider is loaded' );
|
465
|
-
} else {
|
466
|
-
logger.info('\n' + 'slider is being loaded: ' + e.target.currentSlide.bg_src);
|
467
|
-
}
|
468
|
-
}); // END addEventListener
|
469
|
-
}); // END forEach
|
470
|
-
}, // END registerEvents
|
471
|
-
|
472
|
-
// -------------------------------------------------------------------------
|
473
|
-
// messageHandler()
|
474
|
-
// manage messages send from other J1 modules
|
475
|
-
// -------------------------------------------------------------------------
|
476
|
-
messageHandler: (sender, message) => {
|
477
|
-
var json_message = JSON.stringify(message, undefined, 2);
|
478
|
-
|
479
|
-
logText = '\n' + 'received message from ' + sender + ': ' + json_message;
|
480
|
-
logger.debug(logText);
|
481
|
-
|
482
|
-
// -----------------------------------------------------------------------
|
483
|
-
// process commands|actions
|
484
|
-
// -----------------------------------------------------------------------
|
485
|
-
if (message.type === 'command' && message.action === 'module_initialized') {
|
486
|
-
|
487
|
-
//
|
488
|
-
// place handling of command|action here
|
489
|
-
//
|
490
|
-
|
491
|
-
logger.info('\n' + message.text);
|
492
|
-
}
|
493
|
-
|
494
|
-
//
|
495
|
-
// place handling of other command|action here
|
496
|
-
//
|
497
|
-
|
498
|
-
return true;
|
499
|
-
}, // END messageHandler
|
500
|
-
|
501
|
-
// -------------------------------------------------------------------------
|
502
|
-
// setState()
|
503
|
-
// sets the current (processing) state of the module
|
504
|
-
// -------------------------------------------------------------------------
|
505
|
-
setState: (stat) => {
|
506
|
-
_this.state = stat;
|
507
|
-
}, // END setState
|
508
|
-
|
509
|
-
// -------------------------------------------------------------------------
|
510
|
-
// getState()
|
511
|
-
// Returns the current (processing) state of the module
|
512
|
-
// -------------------------------------------------------------------------
|
513
|
-
getState: () => {
|
514
|
-
return _this.state;
|
515
|
-
} // END getState
|
516
|
-
|
517
|
-
}; // END main (return)
|
518
|
-
})(j1, window);
|
519
|
-
|
520
|
-
{% endcapture %}
|
521
|
-
{% if production %}
|
522
|
-
{{ cache | minifyJS }}
|
523
|
-
{% else %}
|
524
|
-
{{ cache | strip_empty_lines }}
|
525
|
-
{% endif %}
|
526
|
-
{% assign cache = nil %}
|
1
|
+
---
|
2
|
+
regenerate: true
|
3
|
+
---
|
4
|
+
|
5
|
+
{% capture cache %}
|
6
|
+
|
7
|
+
{% comment %}
|
8
|
+
# -----------------------------------------------------------------------------
|
9
|
+
# ~/assets/themes/j1/adapter/js/masterslider.js
|
10
|
+
# Liquid template to adapt Averta MasterSlider Lite
|
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 var initialization
|
25
|
+
-------------------------------------------------------------------------------- {% endcomment %}
|
26
|
+
|
27
|
+
{% comment %} Set config files
|
28
|
+
-------------------------------------------------------------------------------- {% endcomment %}
|
29
|
+
{% assign environment = site.environment %}
|
30
|
+
{% assign template_config = site.data.j1_config %}
|
31
|
+
{% assign modules = site.data.modules %}
|
32
|
+
|
33
|
+
{% comment %} Set config data
|
34
|
+
-------------------------------------------------------------------------------- {% endcomment %}
|
35
|
+
{% assign master_slider_defaults = modules.defaults.masterslider.defaults %}
|
36
|
+
{% assign master_slider_settings = modules.masterslider.settings %}
|
37
|
+
|
38
|
+
{% comment %} Set config options
|
39
|
+
-------------------------------------------------------------------------------- {% endcomment %}
|
40
|
+
{% assign master_slider_options = master_slider_defaults | merge: master_slider_settings %}
|
41
|
+
{% assign lightbox_enabled = master_slider_options.enable_lightbox %}
|
42
|
+
{% assign slider_manager = master_slider_options.slider_manager %}
|
43
|
+
{% assign save_slider_config = master_slider_options.save_slider_config %}
|
44
|
+
{% assign module_version = master_slider_options.module_version %}
|
45
|
+
|
46
|
+
{% comment %} Detect prod mode
|
47
|
+
-------------------------------------------------------------------------------- {% endcomment %}
|
48
|
+
{% assign production = false %}
|
49
|
+
{% if environment == 'prod' or environment == 'production' %}
|
50
|
+
{% assign production = true %}
|
51
|
+
{% endif %}
|
52
|
+
|
53
|
+
/*
|
54
|
+
# -----------------------------------------------------------------------------
|
55
|
+
# ~/assets/themes/j1/adapter/js/masterslider.js
|
56
|
+
# J1 Adapter for Averta MasterSlider Lite v2.85.13 (Feb 2022)
|
57
|
+
#
|
58
|
+
# Product/Info:
|
59
|
+
# https://jekyll.one
|
60
|
+
#
|
61
|
+
# Copyright (C) 2023, 2024 Juergen Adams
|
62
|
+
#
|
63
|
+
# J1 Template is licensed under the MIT License.
|
64
|
+
# For details, see: https://github.com/jekyll-one-org/j1-template/blob/main/LICENSE.md
|
65
|
+
# -----------------------------------------------------------------------------
|
66
|
+
# Adapter generated: {{site.time}}
|
67
|
+
# -----------------------------------------------------------------------------
|
68
|
+
*/
|
69
|
+
|
70
|
+
// -----------------------------------------------------------------------------
|
71
|
+
// ESLint shimming
|
72
|
+
// -----------------------------------------------------------------------------
|
73
|
+
/* eslint indent: "off" */
|
74
|
+
// -----------------------------------------------------------------------------
|
75
|
+
'use strict';
|
76
|
+
j1.adapter.masterslider = ((j1, window) => {
|
77
|
+
|
78
|
+
{% comment %} Set global variables
|
79
|
+
------------------------------------------------------------------------------ {% endcomment %}
|
80
|
+
var environment = '{{environment}}';
|
81
|
+
var moduleVersion = '{{module_version}}';
|
82
|
+
var sliderManager = j1.stringToBoolean('{{slider_manager}}');
|
83
|
+
var lightboxEnabled = j1.stringToBoolean('{{lightbox_enabled}}');
|
84
|
+
var saveSliderConfig = j1.stringToBoolean('{{save_slider_config}}');
|
85
|
+
var newline = '\n';
|
86
|
+
var state = 'not_started';
|
87
|
+
|
88
|
+
var masterSliderDefaults;
|
89
|
+
var masterSliderSettings;
|
90
|
+
var masterSliderOptions;
|
91
|
+
|
92
|
+
var _this;
|
93
|
+
var logger;
|
94
|
+
var logText;
|
95
|
+
|
96
|
+
// date|time
|
97
|
+
var startTime;
|
98
|
+
var endTime;
|
99
|
+
var startTimeModule;
|
100
|
+
var endTimeModule;
|
101
|
+
var timeSeconds;
|
102
|
+
|
103
|
+
// ---------------------------------------------------------------------------
|
104
|
+
// helper functions
|
105
|
+
// ---------------------------------------------------------------------------
|
106
|
+
|
107
|
+
// ---------------------------------------------------------------------------
|
108
|
+
// main
|
109
|
+
// ---------------------------------------------------------------------------
|
110
|
+
return {
|
111
|
+
|
112
|
+
// -------------------------------------------------------------------------
|
113
|
+
// adapter initializer
|
114
|
+
// -------------------------------------------------------------------------
|
115
|
+
init: (options) => {
|
116
|
+
var msSliderManager;
|
117
|
+
|
118
|
+
if (sliderManager) {
|
119
|
+
msSliderManager = document.createElement('script');
|
120
|
+
msSliderManager.id = 'ms-slider-manager';
|
121
|
+
msSliderManager.innerHTML = '';
|
122
|
+
}
|
123
|
+
|
124
|
+
// used for later access
|
125
|
+
j1.masterslider = {};
|
126
|
+
j1.masterslider.instances = j1.masterslider.instances || [];
|
127
|
+
|
128
|
+
// -----------------------------------------------------------------------
|
129
|
+
// default module settings
|
130
|
+
// -----------------------------------------------------------------------
|
131
|
+
var settings = $.extend({
|
132
|
+
module_name: 'j1.adapter.masterslider',
|
133
|
+
generated: '{{site.time}}'
|
134
|
+
}, options);
|
135
|
+
|
136
|
+
// Load module DEFAULTS|CONFIG
|
137
|
+
masterSliderDefaults = $.extend({}, {{master_slider_defaults | replace: 'nil', 'null' | replace: '=>', ':' }});
|
138
|
+
masterSliderSettings = $.extend({}, {{master_slider_settings | replace: 'nil', 'null' | replace: '=>', ':' }});
|
139
|
+
masterSliderOptions = $.extend({}, masterSliderDefaults, masterSliderSettings);
|
140
|
+
|
141
|
+
// -----------------------------------------------------------------------
|
142
|
+
// global variable settings
|
143
|
+
// -----------------------------------------------------------------------
|
144
|
+
_this = j1.adapter.masterslider;
|
145
|
+
logger = log4javascript.getLogger('j1.adapter.masterslider');
|
146
|
+
|
147
|
+
// initialize state flag
|
148
|
+
//
|
149
|
+
_this.setState('started');
|
150
|
+
// console.debug('module state: ' + _this.getState());
|
151
|
+
|
152
|
+
// load HTML portion for sliders configured
|
153
|
+
// console.debug('loading HTML portion for all sliders configured');
|
154
|
+
_this.loadSliderHTML(masterSliderOptions, masterSliderOptions.sliders);
|
155
|
+
// create an 'MasterSlider' instance for all sliders configured
|
156
|
+
// console.debug('create an \'MasterSlider\' instance for all MS sliders configured');
|
157
|
+
_this.createSliderInstances(masterSliderOptions.sliders, msSliderManager);
|
158
|
+
|
159
|
+
// -----------------------------------------------------------------------
|
160
|
+
// module initializer
|
161
|
+
// -----------------------------------------------------------------------
|
162
|
+
var dependency_met_page_ready = setInterval(() => {
|
163
|
+
var pageState = $('#content').css("display");
|
164
|
+
var pageVisible = (pageState === 'block') ? true : false;
|
165
|
+
var j1CoreFinished = (j1.getState() === 'finished') ? true : false;
|
166
|
+
var dataLoaded = (_this.getState() === 'data_loaded') ? true : false;
|
167
|
+
var atticFinished = (j1.adapter.attic.getState() == 'finished') ? true : false;
|
168
|
+
|
169
|
+
if (pageVisible && j1CoreFinished && dataLoaded && atticFinished) {
|
170
|
+
startTimeModule = Date.now();
|
171
|
+
|
172
|
+
_this.setState('started');
|
173
|
+
logger.debug('\n' + 'set module state to: ' + _this.getState());
|
174
|
+
logger.info('\n' + 'initializing module: started');
|
175
|
+
|
176
|
+
logger.debug('\n' + 'ms module version detected: ' + moduleVersion);
|
177
|
+
logger.debug('\n' + 'module is being initialized');
|
178
|
+
|
179
|
+
_this.initSliders(masterSliderOptions, masterSliderOptions.sliders, msSliderManager, saveSliderConfig);
|
180
|
+
|
181
|
+
clearInterval(dependency_met_page_ready);
|
182
|
+
} // END pageVisible|dataLoaded
|
183
|
+
}, 10); // END dependency_met_page_ready
|
184
|
+
|
185
|
+
// make sure the 'content' section is visible BEFORE setting-up sliders
|
186
|
+
var dependencies_met_module_finished = setInterval (() => {
|
187
|
+
var slidersInitialized = (_this.getState() === 'sliders_initialized') ? true: false;
|
188
|
+
|
189
|
+
if (slidersInitialized) {
|
190
|
+
|
191
|
+
// TODO: Check why a timeout is required to load the Slider Manager
|
192
|
+
setTimeout(() => {
|
193
|
+
if (sliderManager) document.body.appendChild(msSliderManager);
|
194
|
+
|
195
|
+
_this.setState('finished');
|
196
|
+
logger.debug('\n' + 'state: ' + _this.getState());
|
197
|
+
logger.info('\n' + 'initializing module: finished');
|
198
|
+
|
199
|
+
endTimeModule = Date.now();
|
200
|
+
logger.info('\n' + 'module initializing time: ' + (endTimeModule-startTimeModule) + 'ms');
|
201
|
+
|
202
|
+
}, masterSliderOptions.slider_manager_load_timeout);
|
203
|
+
|
204
|
+
clearInterval(dependencies_met_module_finished);
|
205
|
+
} // END if slidersInitialized
|
206
|
+
}, 10); // END dependencies_met_j1_core_finished
|
207
|
+
}, // END init
|
208
|
+
|
209
|
+
// -------------------------------------------------------------------------
|
210
|
+
// loadSliderHTML()
|
211
|
+
// load all master sliders (HTML portion) dynanically configured
|
212
|
+
// and enabled (AJAX) from data file
|
213
|
+
// NOTE: Make sure the placeholder is available in the content page
|
214
|
+
// eg. using the asciidoc extension masterslider::
|
215
|
+
// -------------------------------------------------------------------------
|
216
|
+
loadSliderHTML: (options, slider) => {
|
217
|
+
var numSliders = Object.keys(slider).length;
|
218
|
+
var active_sliders = numSliders;
|
219
|
+
var xhr_data_path = options.xhr_data_path + '/index.html';
|
220
|
+
var xhr_container_id;
|
221
|
+
|
222
|
+
_this.setState('load_data');
|
223
|
+
Object.keys(slider).forEach((key) => {
|
224
|
+
if (slider[key].enabled) {
|
225
|
+
xhr_container_id = 'p_' + slider[key].id;
|
226
|
+
j1.loadHTML({
|
227
|
+
xhr_container_id: xhr_container_id,
|
228
|
+
xhr_data_path: xhr_data_path,
|
229
|
+
xhr_data_element: slider[key].id
|
230
|
+
});
|
231
|
+
} else {
|
232
|
+
active_sliders--;
|
233
|
+
}
|
234
|
+
}); //END forEach
|
235
|
+
|
236
|
+
_this.setState('data_loaded');
|
237
|
+
}, // END loadSliderHTML
|
238
|
+
|
239
|
+
// -------------------------------------------------------------------------
|
240
|
+
// createSliderInstances()
|
241
|
+
// create an 'MasterSlider' instance for all sliders configured
|
242
|
+
// -------------------------------------------------------------------------
|
243
|
+
createSliderInstances: (sliders, sliderManager) => {
|
244
|
+
var msSliderManager = sliderManager;
|
245
|
+
var numSliders = Object.keys(sliders).length;
|
246
|
+
var msSliderManagerItem;
|
247
|
+
|
248
|
+
var i=0;
|
249
|
+
Object.keys(sliders).forEach((key) => {
|
250
|
+
i++;
|
251
|
+
if (sliderManager) {
|
252
|
+
msSliderManagerItem = ' var masterslider_' + i + ' = new MasterSlider();' + '\n';
|
253
|
+
msSliderManager.innerHTML += msSliderManagerItem;
|
254
|
+
} else {
|
255
|
+
_this["masterslider_" + i] = new MasterSlider();
|
256
|
+
}
|
257
|
+
}); //END forEach
|
258
|
+
}, // END createSliderInstances
|
259
|
+
|
260
|
+
// -------------------------------------------------------------------------
|
261
|
+
// initSliders()
|
262
|
+
// initialze all master sliders found in page. Dynamically apply properties
|
263
|
+
// for methods 'setup' and 'control'.
|
264
|
+
// -------------------------------------------------------------------------
|
265
|
+
initSliders: (options, slider, sliderManager, save_config) => {
|
266
|
+
var msSliderManager = sliderManager;
|
267
|
+
var newline = '\n';
|
268
|
+
|
269
|
+
// run the method 'control' on all sliders 'enabled'
|
270
|
+
//
|
271
|
+
function setupControls(options, slider, sliderManager) {
|
272
|
+
const controlOptions = options.controls;
|
273
|
+
var msSliderManager = sliderManager;
|
274
|
+
var index;
|
275
|
+
var i=0;
|
276
|
+
|
277
|
+
logger.info('\n' + 'generate slider controls');
|
278
|
+
|
279
|
+
if (sliderManager) msSliderManager.innerHTML += newline;
|
280
|
+
Object.keys(slider).forEach((key) => {
|
281
|
+
i++; // instance index
|
282
|
+
index = parseInt(key); // object index
|
283
|
+
|
284
|
+
if (slider[index].enabled) {
|
285
|
+
if (slider[index].controls) {
|
286
|
+
Object.keys(slider[index].controls).forEach((key) => {
|
287
|
+
var msSliderManagerItem = '\n';
|
288
|
+
logger.debug('\n' + 'slider control found id|key: ' + slider[index].id + '|' + key);
|
289
|
+
|
290
|
+
// merge settings, defaults into control
|
291
|
+
control = $.extend({}, controlOptions[key], slider[index].controls[key]);
|
292
|
+
// remove J1 config setting
|
293
|
+
delete control['enabled'];
|
294
|
+
|
295
|
+
if (sliderManager) {
|
296
|
+
msSliderManagerItem = ' ' + 'masterslider_' + i + '.control(' + '\'' + key + '\'' + ', ' + JSON.stringify(control) + ');'
|
297
|
+
msSliderManager.innerHTML += msSliderManagerItem + '\n';
|
298
|
+
} else {
|
299
|
+
_this["masterslider_" + i].control(key, control);
|
300
|
+
}
|
301
|
+
|
302
|
+
});
|
303
|
+
} else {
|
304
|
+
logger.debug('\n' + 'no slider controls found on id: ' + slider[key].id);
|
305
|
+
}
|
306
|
+
} else {
|
307
|
+
logger.debug('\n' + 'slider found disabled on id: ' + slider[key].id);
|
308
|
+
}
|
309
|
+
});
|
310
|
+
} // END setupControls
|
311
|
+
|
312
|
+
// initialize plugins on all sliders if 'enabled'
|
313
|
+
//
|
314
|
+
function setupPlugIns(options, slider, sliderManager) {
|
315
|
+
const pluginOptions = options.plugins;
|
316
|
+
var msSliderManager = sliderManager;
|
317
|
+
var plugins = {};
|
318
|
+
|
319
|
+
var pluginSettings;
|
320
|
+
var index;
|
321
|
+
var i=0;
|
322
|
+
|
323
|
+
logger.debug('\n' + 'generate slider plugins');
|
324
|
+
|
325
|
+
if (sliderManager) msSliderManager.innerHTML += newline;
|
326
|
+
Object.keys(slider).forEach((key) => {
|
327
|
+
index = parseInt(key); // object index
|
328
|
+
i++; // instance index
|
329
|
+
|
330
|
+
if (slider[index].enabled) {
|
331
|
+
if (slider[index].plugins) {
|
332
|
+
Object.keys(slider[index].plugins).forEach((key) => {
|
333
|
+
var msSliderManagerItem = '\n';
|
334
|
+
logger.info('\n' + 'slider plugin found id|key: ' + slider[index].id + '|' + key);
|
335
|
+
|
336
|
+
// merge settings, defaults into 'plugins'
|
337
|
+
plugins = $.extend({}, pluginOptions, slider[index].plugins);
|
338
|
+
|
339
|
+
// generate setup for plugin 'MSScrollParallax'
|
340
|
+
// NOTE: for the MS config, the plugin 'MSScrollParallax' is named ' J1ScrollParallax'
|
341
|
+
if (plugins.J1ScrollParallax.enabled) {
|
342
|
+
// remove J1 config settings
|
343
|
+
delete plugins.J1ScrollParallax.enabled;
|
344
|
+
|
345
|
+
// create a 'properties' string
|
346
|
+
pluginSettings = JSON.stringify(plugins.J1ScrollParallax).replace(/"/g, '').replace(/{/g, '').replace(/}/g, '');
|
347
|
+
logger.debug('\n' + 'plugin J1ScrollParallax found: ' + pluginSettings);
|
348
|
+
|
349
|
+
// remove property names to get a pure 'parameter' string
|
350
|
+
pluginSettings = pluginSettings.replace(/layers_parallax_depth:/g, '');
|
351
|
+
pluginSettings = pluginSettings.replace(/background_parallax_depth:/g, '');
|
352
|
+
pluginSettings = pluginSettings.replace(/fade_layers:/g, '');
|
353
|
+
|
354
|
+
if (sliderManager) {
|
355
|
+
msSliderManagerItem = ' ' + 'MSScrollParallax.setup(masterslider_' + i + ', ' + pluginSettings + ');';
|
356
|
+
msSliderManager.innerHTML += msSliderManagerItem + '\n';
|
357
|
+
} else {
|
358
|
+
MSScrollParallax.setup(j1.masterslider.instances[index], pluginSettings);
|
359
|
+
}
|
360
|
+
} // END plugin 'MSScrollParallax'
|
361
|
+
});
|
362
|
+
} else {
|
363
|
+
logger.debug('\n' + 'no slider plugins found on id: ' + slider[key].id);
|
364
|
+
} // END if slider[index].plugins
|
365
|
+
} else {
|
366
|
+
logger.debug('\n' + 'slider found disabled on id: ' + slider[key].id);
|
367
|
+
} // END if slider[index].enabled
|
368
|
+
}); // END forEach
|
369
|
+
} // END setupPlugIns
|
370
|
+
|
371
|
+
// run the method 'setup' on all sliders 'enabled'
|
372
|
+
//
|
373
|
+
function setupSliders(options, slider, sliderManager, save_config) {
|
374
|
+
const controlOptions = options.controls;
|
375
|
+
var msSliderManager = sliderManager;
|
376
|
+
var control = {};
|
377
|
+
var index;
|
378
|
+
|
379
|
+
logger.info('\n' + 'generate slider setup');
|
380
|
+
|
381
|
+
if (sliderManager) msSliderManager.innerHTML += newline;
|
382
|
+
var i=0;
|
383
|
+
Object.keys(slider).forEach((key) => {
|
384
|
+
var msSliderManagerItem = '\n';
|
385
|
+
i++; // instance index
|
386
|
+
index = parseInt(key); // object index
|
387
|
+
if (slider[index].enabled) {
|
388
|
+
logger.debug('\n' + 'slider is being initialized on id: ' + slider[key].id);
|
389
|
+
|
390
|
+
// merge settings, defaults into 'setup'
|
391
|
+
setup = $.extend({}, settings.options, slider[index].options);
|
392
|
+
|
393
|
+
// log the filter object if enabled
|
394
|
+
if (setup.filters !== null) {
|
395
|
+
var filterSettings = JSON.stringify(setup.filters).replace(/"/g, '');
|
396
|
+
logger.debug('\n' + 'filters found: ' + filterSettings.replace(/{/g, '').replace(/}/g, ''));
|
397
|
+
}
|
398
|
+
|
399
|
+
if (sliderManager) {
|
400
|
+
msSliderManagerItem = ' ' + 'masterslider_' + i + '.setup(' + '\'' + slider[key].id + '\'' + ', ' + JSON.stringify(setup) + ');'
|
401
|
+
msSliderManager.innerHTML += msSliderManagerItem + '\n';
|
402
|
+
} else {
|
403
|
+
_this["masterslider_" + i].setup(slider[key].id, setup);
|
404
|
+
}
|
405
|
+
|
406
|
+
// save slider config for later access
|
407
|
+
if (save_config) {
|
408
|
+
if (sliderManager) {
|
409
|
+
msSliderManagerItem = ' ' + 'j1.masterslider.instances.push(masterslider_' + i + ');';
|
410
|
+
msSliderManager.innerHTML += msSliderManagerItem + '\n';
|
411
|
+
} else {
|
412
|
+
j1.masterslider.instances.push(_this["masterslider_" + i]);
|
413
|
+
}
|
414
|
+
}
|
415
|
+
} else {
|
416
|
+
logger.info('\n' + 'slider found disabled on id: ' + slider[key].id);
|
417
|
+
}
|
418
|
+
}); // END forEach
|
419
|
+
|
420
|
+
_this.setState('sliders_initialized');
|
421
|
+
logger.debug('\n' + 'state: ' + _this.getState());
|
422
|
+
logger.info('\n' + 'initializing sliders finished');
|
423
|
+
|
424
|
+
} // END setupSliders
|
425
|
+
|
426
|
+
var settings = $.extend({}, options, slider);
|
427
|
+
var control = {};
|
428
|
+
var setup = {};
|
429
|
+
|
430
|
+
var log_text;
|
431
|
+
|
432
|
+
_this.setState('initialize_sliders');
|
433
|
+
logger.debug('\n' + 'state: ' + _this.getState());
|
434
|
+
log_text = '\n' + 'sliders are being initialized';
|
435
|
+
logger.info(log_text);
|
436
|
+
|
437
|
+
setupControls(options, slider, msSliderManager);
|
438
|
+
setupSliders(options, slider, msSliderManager, save_config);
|
439
|
+
setupPlugIns(options, slider, msSliderManager);
|
440
|
+
|
441
|
+
}, // END initSliders
|
442
|
+
|
443
|
+
// -------------------------------------------------------------------------
|
444
|
+
// registerEvents()
|
445
|
+
// Currently NOT used (experimental)
|
446
|
+
// -------------------------------------------------------------------------
|
447
|
+
registerEvents: (options, slider) => {
|
448
|
+
var index;
|
449
|
+
|
450
|
+
var i=0;
|
451
|
+
Object.keys(slider).forEach((key) => {
|
452
|
+
index = parseInt(key); // object index
|
453
|
+
i++; // instance index
|
454
|
+
|
455
|
+
logger.debug('\n' + 'slider events are being initialized on id: ' + index);
|
456
|
+
|
457
|
+
slider[index].api.addEventListener(MSSliderEvent.WAITING, (e) => {
|
458
|
+
var controller = e.target.view.controller;
|
459
|
+
var controllerValue = e.target.view.controller.value;
|
460
|
+
var isLoading = e.target.currentSlide.$loading.length;
|
461
|
+
|
462
|
+
// dispatches when the slider's current slide change starts.
|
463
|
+
if (!isLoading) {
|
464
|
+
logger.info('\n' + 'slider is loaded' );
|
465
|
+
} else {
|
466
|
+
logger.info('\n' + 'slider is being loaded: ' + e.target.currentSlide.bg_src);
|
467
|
+
}
|
468
|
+
}); // END addEventListener
|
469
|
+
}); // END forEach
|
470
|
+
}, // END registerEvents
|
471
|
+
|
472
|
+
// -------------------------------------------------------------------------
|
473
|
+
// messageHandler()
|
474
|
+
// manage messages send from other J1 modules
|
475
|
+
// -------------------------------------------------------------------------
|
476
|
+
messageHandler: (sender, message) => {
|
477
|
+
var json_message = JSON.stringify(message, undefined, 2);
|
478
|
+
|
479
|
+
logText = '\n' + 'received message from ' + sender + ': ' + json_message;
|
480
|
+
logger.debug(logText);
|
481
|
+
|
482
|
+
// -----------------------------------------------------------------------
|
483
|
+
// process commands|actions
|
484
|
+
// -----------------------------------------------------------------------
|
485
|
+
if (message.type === 'command' && message.action === 'module_initialized') {
|
486
|
+
|
487
|
+
//
|
488
|
+
// place handling of command|action here
|
489
|
+
//
|
490
|
+
|
491
|
+
logger.info('\n' + message.text);
|
492
|
+
}
|
493
|
+
|
494
|
+
//
|
495
|
+
// place handling of other command|action here
|
496
|
+
//
|
497
|
+
|
498
|
+
return true;
|
499
|
+
}, // END messageHandler
|
500
|
+
|
501
|
+
// -------------------------------------------------------------------------
|
502
|
+
// setState()
|
503
|
+
// sets the current (processing) state of the module
|
504
|
+
// -------------------------------------------------------------------------
|
505
|
+
setState: (stat) => {
|
506
|
+
_this.state = stat;
|
507
|
+
}, // END setState
|
508
|
+
|
509
|
+
// -------------------------------------------------------------------------
|
510
|
+
// getState()
|
511
|
+
// Returns the current (processing) state of the module
|
512
|
+
// -------------------------------------------------------------------------
|
513
|
+
getState: () => {
|
514
|
+
return _this.state;
|
515
|
+
} // END getState
|
516
|
+
|
517
|
+
}; // END main (return)
|
518
|
+
})(j1, window);
|
519
|
+
|
520
|
+
{% endcapture %}
|
521
|
+
{% if production %}
|
522
|
+
{{ cache | minifyJS }}
|
523
|
+
{% else %}
|
524
|
+
{{ cache | strip_empty_lines }}
|
525
|
+
{% endif %}
|
526
|
+
{% assign cache = nil %}
|