diff --git a/src/js/_components/_ui.carousel.js b/src/js/_components/_ui.carousel.js
index 0a84630..df97ae6 100755
--- a/src/js/_components/_ui.carousel.js
+++ b/src/js/_components/_ui.carousel.js
@@ -5,7 +5,7 @@ import 'jquery-hammerjs/jquery.hammer';
import Events from '../_events';
-const CarouselUI = (($) => {
+const CarouselUI = ($ => {
// Constants
const NAME = 'CarouselUI';
@@ -13,7 +13,7 @@ const CarouselUI = (($) => {
// Static methods
static each(callback) {
- $('.js-carousel').each((i, e) => {
+ $(`js${NAME}, .js-carousel`).each((i, e) => {
callback(i, $(e));
});
}
@@ -37,36 +37,49 @@ const CarouselUI = (($) => {
// create carousel-controls
if ($e.data('indicators')) {
const $indicators = $('
');
- $indicators.append(``);
+ $indicators.append(
+ ``,
+ );
for (let i = 1; i < count; i++) {
- $indicators.append(``);
+ $indicators.append(
+ ``,
+ );
}
$e.prepend($indicators);
}
// create arrows
if ($e.data('arrows')) {
- $e.prepend(`Previous`);
- $e.prepend(`Next`);
+ $e.prepend(
+ `Previous`,
+ );
+ $e.prepend(
+ `Next`,
+ );
}
// init carousel
$e.carousel();
- const $youtubeSlides = $e.find('iframe[src^="https://www.youtube.com/embed/"]');
+ const $youtubeSlides = $e.find(
+ 'iframe[src^="https://www.youtube.com/embed/"]',
+ );
$e.on('slide.bs.carousel', () => {
if ($youtubeSlides.length) {
$youtubeSlides.each((i, e) => {
const $e = $(e);
try {
- $e.data('player', new YT.Player(e, {
- events: {
- 'onReady': () => {
- $e.data('player').pauseVideo();
+ $e.data(
+ 'player',
+ new YT.Player(e, {
+ events: {
+ onReady: () => {
+ $e.data('player').pauseVideo();
+ },
},
- },
- }));
+ }),
+ );
$e.data('player').pauseVideo();
} catch (e) {}
@@ -74,28 +87,31 @@ const CarouselUI = (($) => {
}
});
- $e.find('.carousel-control-prev').on('click', (e) => {
+ $e.find('.carousel-control-prev').on('click', e => {
e.preventDefault();
$e.carousel('prev');
});
- $e.find('.carousel-control-next').on('click', (e) => {
+ $e.find('.carousel-control-next').on('click', e => {
e.preventDefault();
$e.carousel('next');
});
// init touch swipes
- $e.hammer().bind('swipeleft panleft', (e) => {
+ $e.hammer().bind(Events.SWIPELEFT, e => {
$(event.target).carousel('next');
});
- $e.hammer().bind('swiperight panright', (e) => {
+ $e.hammer().bind(Events.SWIPERIGHT, e => {
$(event.target).carousel('prev');
});
/*$e.find('.carousel-item').hammer().bind('tap', (event) => {
$(event.target).carousel('next');
});*/
+
+ $e.addClass(`js${NAME}-active`);
+ $e.trigger(Events.CAROUSEL_READY);
});
}
@@ -106,7 +122,7 @@ const CarouselUI = (($) => {
}
}
- $(window).on(`${Events.AJAX} ${Events.LOADED}`, () => {
+ $(window).on(`${Events.LODEDANDREADY}`, () => {
CarouselUI.init();
});
diff --git a/src/js/_events.js b/src/js/_events.js
index 8d47be9..fa82736 100755
--- a/src/js/_events.js
+++ b/src/js/_events.js
@@ -4,13 +4,25 @@
module.exports = {
AJAX: 'ajax-load',
+ TABHIDDEN: 'tab-hidden',
+ TABFOCUSED: 'tab-focused',
+ OFFLINE: 'offline',
+ ONLINE: 'online',
LOADED: 'load',
+ SWIPELEFT: 'swipeleft panleft',
+ SWIPERIGHT: 'swiperight panright',
+ ALLERTAPPEARED: 'alert-appeared',
+ ALERTREMOVED: 'alert-removed',
+ LODEDANDREADY: 'load-ready',
+ LAZYIMAGEREADY: 'image-lazy-bg-loaded',
+ LAZYIMAGESREADY: 'images-lazy-loaded',
MAPLOADED: 'map-loaded',
MAPAPILOADED: 'map-api-loaded',
MAPMARKERCLICK: 'map-marker-click',
MAPPOPUPCLOSE: 'map-popup-close',
SCROLL: 'scroll',
RESIZE: 'resize',
+ CAROUSEL_READY: 'bs.carousel.ready',
SET_TARGET_UPDATE: 'set-target-update',
RESTORE_FIELD: 'restore-field',
FORM_INIT_BASICS: 'form-basics',
diff --git a/src/js/_layout.js b/src/js/_layout.js
index 54edc84..93e5d9b 100755
--- a/src/js/_layout.js
+++ b/src/js/_layout.js
@@ -4,7 +4,7 @@ import $ from 'jquery';
import Events from './_events';
-const LayoutUI = (($) => {
+const LayoutUI = ($ => {
// Constants
const W = window;
const D = document;
@@ -28,6 +28,9 @@ const LayoutUI = (($) => {
console.log(`Initializing: ${NAME}`);
// your custom UI
+ // Fire further js when layout is ready
+ $(W).trigger(Events.LODEDANDREADY);
+
// Custom fonts
$Body.append(
'',
diff --git a/src/js/_main.js b/src/js/_main.js
index d109582..e18c116 100755
--- a/src/js/_main.js
+++ b/src/js/_main.js
@@ -15,7 +15,7 @@ import FormBasics from './_components/_ui.form.basics';
import SmoothScroll from 'smooth-scroll';
const smoothScroll = SmoothScroll();
-const MainUI = (($) => {
+const MainUI = ($ => {
// Constants
const W = window;
const D = document;
@@ -39,11 +39,11 @@ const MainUI = (($) => {
if (D.visibilityState === HiddenName) {
console.log('Tab: hidden');
$Body.addClass('is-hidden');
- $Body.trigger('tabHidden');
+ $Body.trigger(Events.TABHIDDEN);
} else {
console.log('Tab: focused');
$Body.removeClass('is-hidden');
- $Body.trigger('tabFocused');
+ $Body.trigger(Events.TABFOCUSED);
}
});
@@ -52,11 +52,11 @@ const MainUI = (($) => {
if (!navigator.onLine) {
console.log('Tab: offline');
$Body.addClass('is-offline');
- $Body.trigger('offline');
+ $Body.trigger(Events.OFFLINE);
} else {
console.log('Tab: online');
$Body.removeClass('is-offline');
- $Body.trigger('online');
+ $Body.trigger(Events.ONLINE);
}
};
@@ -174,7 +174,7 @@ const MainUI = (($) => {
//
// scroll links
- $('.js-scrollTo').on('click', (e) => {
+ $('.js-scrollTo').on('click', e => {
e.preventDefault();
const el = e.currentTarget;
const $el = $(e.currentTarget);
@@ -203,7 +203,7 @@ const MainUI = (($) => {
}
// data-set links
- $('[data-set-target]').on('click', (e) => {
+ $('[data-set-target]').on('click', e => {
const $el = $(e.currentTarget);
const $target = $($el.data('set-target'));
@@ -227,7 +227,7 @@ const MainUI = (($) => {
});
// emulate links
- $('.a[data-href]').on('click', (e) => {
+ $('.a[data-href]').on('click', e => {
const $el = $(e.currentTarget);
const href = $el.data('href');
if (!href.length) {
@@ -306,7 +306,7 @@ const MainUI = (($) => {
$AlertNotify[0].play();
}
- $(W).trigger('alert-appeared');
+ $(W).trigger(`${Events.ALLERTAPPEARED}`);
}
// hide site-wide alert
@@ -321,7 +321,7 @@ const MainUI = (($) => {
$AlertNotify[0].stop();
}
- $(W).trigger('alert-removed');
+ $(W).trigger(`${Events.ALLERTREMOVED}`);
}
// load all images
@@ -349,7 +349,7 @@ const MainUI = (($) => {
$el.addClass('loaded');
$el.removeClass('loading');
- $el.trigger('image-lazy-loaded');
+ $el.trigger(`${Events.LAZYIMAGEREADY}`);
});
}
});
@@ -369,7 +369,7 @@ const MainUI = (($) => {
$el.addClass('loaded');
$el.removeClass('loading');
- $el.trigger('image-lazy-bg-loaded');
+ $el.trigger(`${Events.LAZYIMAGEREADY}`);
});
}
});
@@ -382,7 +382,7 @@ const MainUI = (($) => {
AjaxUI.preload($imgLazyUrls).then(() => {
console.log('All images are loaded!');
- $(W).trigger('images-lazy-loaded');
+ $(W).trigger(`${Events.LAZYIMAGESREADY}`);
});
});
}