--- regenerate: true --- {% capture cache %} {% comment %} # ----------------------------------------------------------------------------- # ~/assets/themes/j1/adapter/js/carousel.js # Liquid template to adapt J1 Carousel (Owl Carousel V1) Core functions # # Product/Info: # https://jekyll.one # # Copyright (C) 2020 Juergen Adams # # J1 Template is licensed under the MIT License. # See: https://github.com/jekyll-one-org/J1 Template/blob/master/LICENSE # ----------------------------------------------------------------------------- # Test data: # {{config | debug}} # ----------------------------------------------------------------------------- {% endcomment %} {% comment %} Liquid procedures -------------------------------------------------------------------------------- {% endcomment %} {% comment %} Set global settings -------------------------------------------------------------------------------- {% endcomment %} {% assign environment = site.environment %} {% assign template_version = site.version %} {% assign slider_id = '' %} {% assign production = false %} {% if environment == 'prod' or environment == 'production' %} {% assign production = true %} {% endif %} {% comment %} Process YML config data ================================================================================ {% endcomment %} {% comment %} Set config files -------------------------------------------------------------------------------- {% endcomment %} {% assign template_config = site.data.template_settings %} {% assign apps = site.data.apps %} {% comment %} Set config data -------------------------------------------------------------------------------- {% endcomment %} {% assign carousel_defaults = apps.defaults.carousel.defaults %} {% assign carousel_settings = apps.carousel.settings %} {% comment %} Set config options -------------------------------------------------------------------------------- {% endcomment %} {% assign carousel_options = carousel_defaults | merge: carousel_settings %} /* # ----------------------------------------------------------------------------- # ~/assets/themes/j1/adapter/js/carousel.js # JS Adapter for J1 Carousel (Owl Carousel V1) # # Product/Info: # https://jekyll.one # # Copyright (C) 2020 Juergen Adams # # J1 Template is licensed under the MIT License. # See: https://github.com/jekyll-one-org/J1 Template/blob/master/LICENSE # ----------------------------------------------------------------------------- # Adapter generated: {{site.time}} # ----------------------------------------------------------------------------- */ // ----------------------------------------------------------------------------- // ESLint shimming // ----------------------------------------------------------------------------- /* eslint indent: "off" */ // ----------------------------------------------------------------------------- 'use strict'; {% comment %} Main --------------------------------------------------------------- {% endcomment %} j1.adapter['carousel'] = (function (j1, window) { var environment = '{{environment}}'; var moduleOptions = {}; var _this; var logger; var logText; // --------------------------------------------------------------------------- // Helper functions // --------------------------------------------------------------------------- // --------------------------------------------------------------------------- // Main object // --------------------------------------------------------------------------- return { // ------------------------------------------------------------------------- // Initializer // ------------------------------------------------------------------------- init: function (options) { // ----------------------------------------------------------------------- // globals // ----------------------------------------------------------------------- _this = j1.adapter.carousel; logger = log4javascript.getLogger('j1.adapter.carousel'); // initialize state flag _this.state = 'pending'; // ----------------------------------------------------------------------- // Default module settings // ----------------------------------------------------------------------- var settings = $.extend({ module_name: 'j1.adapter.carousel', generated: '{{site.time}}' }, options); {% comment %} Load module config from yml data -------------------------------------------------------------------------- {% endcomment %} // Load module DEFAULTS|CONFIG /* eslint-disable */ moduleOptions = $.extend({}, {{carousel_options | replace: '=>', ':' | replace: 'nil', '""'}}); /* eslint-enable */ if (typeof settings !== 'undefined') { moduleOptions = j1.mergeData(moduleOptions, settings); } _this.setState('started'); logger.info('state: ' + _this.getState()); logger.info('module is being initialized'); var dependencies_met_page_finished = setInterval(function() { if (j1.getState() == 'finished') { {% for item in carousel_options.carousel %} {% if item.show.enabled %} {% assign slider_id = item.show.id %} {% assign slider_title = item.show.title %} {% assign slider_type = item.show.type %} {% assign parallax = item.show.parallax %} {% assign css_classes = item.show.css_classes %} {% assign lazyLoad = item.show.lightbox %} // Create an Carousel INSTANCE if slider on id: {{slider_id}} exists if ($('#{{slider_id}}').length) { {% if environment == 'development' %} logText = 'slider is being initialized on id: #{{slider_id}}'; logger.info(logText); _this.setState('running'); logger.info('state: ' + _this.getState()); logger.info('module is being initialized'); {% endif %} {% if item.show.slide_height != null %} // Set slide_height: {{item.show.slide_height}}vh {% assign slide_height = item.show.slide_height %} $('head').append(''); {% endif %} {% if item.show.slide_space_between %} {% assign slide_space = item.show.slide_space_between %} {% else %} {% assign slide_space = 3 %} {% endif %} {% if item.show.slide_border %} {% assign slide_border = "thumbnail" %} {% else %} {% assign slide_border = "" %} {% endif %} // Place HTML markup for the title {% if slider_title %} var slider_title = '
'; $('#{{slider_id}}').before(slider_title); {% endif %} // place parallax styles {% if parallax %} $('head').append(''); $('head').append(''); $('head').append(''); $('head').append(''); $('head').append(''); $('head').append(''); $('head').append(''); {% endif %} $('head').append(''); //$('.{{slider_id}}-item').parent().addClass('owl-carousel'); //$('.owl-carousel .item').css('margin','{{slide_space}}px'); // Initialize individual show parameters /* eslint-disable */ $('#{{slider_id}}').owlCarousel({ {% for option in item.show.options %} {{option[0] | json}}: {{option[1] | json}}, {% endfor %} // Enable lazyLoad if lightbox is enabled {% if item.show.lightbox %} "lazyLoad": true, {% endif %} "jsonPath": {{carousel_options.xhr_data_path | json}}, "jsonSuccess": customDataSuccess_{{forloop.index}} }); /* eslint-enable */ // Initialize instance variable (for later access) //{{slider_id}} = $('#{{slider_id}}').data('owlCarousel'); j1['{{slider_id}}'] = $('#{{slider_id}}').data('owlCarousel'); // jQuery show data functions function customDataSuccess_{{forloop.index}}(data){ var content = ''; for (var i in data['{{slider_id}}']) { {% if slider_type == 'image' %} var lb = data['{{slider_id}}'][i].lb; var lb_caption = data['{{slider_id}}'][i].lb_caption; var img = data['{{slider_id}}'][i].img; var alt = data['{{slider_id}}'][i].alt; {% endif %} {% if slider_type == 'text' %} var text = data['{{slider_id}}'][i].text; {% endif %} var href = data['{{slider_id}}'][i].href; {% if css_classes %} var css_classes = 'class="{{css_classes}}";'; {% else %} var css_classes = ''; {% endif %} {% if slider_type == 'image' %} // If lightbox is enabled (preference over href) if (lb) { if (lb_caption) { content += '\t\t' + ' ' + '\n'; } else { content += '' +text+ '
' + '' +text+ '
' + '