Modularización de GKACHELE SaaS

This commit is contained in:
gkachele
2026-01-17 11:40:17 +01:00
commit b6820848b8
1338 changed files with 339275 additions and 0 deletions

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,251 @@
(function($) {
'use strict';
$(document).ready(function() {
$(window).on('scroll', function() {
if ($(this).scrollTop() > 200) {
$('.scrollingUp').addClass('is-active');
} else {
$('.scrollingUp').removeClass('is-active');
}
});
$(window).on('scroll', function() {
if ($(window).scrollTop() >= 250) {
$('.is-sticky-on').addClass('is-sticky-menu');
} else {
$('.is-sticky-on').removeClass('is-sticky-menu');
}
});
$(window).bind("scroll", function() {
if ($(".scrollingUp").length) {
let b = $("body").height(),
c = $(window).height(),
d = b - c,
e = $(window).scrollTop(),
f = 250 - e / d * 150;
$(".scrollingUp circle").css("stroke-dashoffset", f + "px")
}
}), $('.scrollingUp').click(function(b) {
return b.preventDefault(), $('html, body').animate({
scrollTop: 0
}, 320), !1
});
// Sticky Header
$(window).on('scroll', function() {
if ($(window).scrollTop() >= 250) {
$('.is-sticky-on').addClass('is-sticky-menu');
} else {
$('.is-sticky-on').removeClass('is-sticky-menu');
}
});
// Home Slider
var $owlHome = $('.home-slider');
$owlHome.owlCarousel({
rtl: $("html").attr("dir") == 'rtl' ? true : false,
items: 1,
autoplay: true,
autoplayTimeout: 10000,
margin: 0,
loop: true,
dots: $(".slider-section").is(".owl-dot-1") ? true : false,
dotsData: true,
dotsEach: 5,
nav: true,
navText: $(".slider-section").is(".owl-nav-2") ? ['<span class="icon"></span>', '<span class="icon"></span>'] : ['<i class="fas fa-angle-left"></i>', '<i class="fas fa-angle-right"></i>'],
singleItem: true,
transitionStyle: "fade",
touchDrag: true,
mouseDrag: true,
onInitialized: function(event) {
var itemsCount = event.item.count; // Total number of items
var dotsContainer = $('.owl-dot-1 .owl-dots'); // Dots container
// Clear current dots
dotsContainer.empty();
// Generate and append numbered dots
for (var i = 0; i < itemsCount; i++) {
dotsContainer.append('<button role="button" class="owl-dot">' + (i + 1) + '</button>');
}
// Optionally highlight the active dot
dotsContainer.on('click', '.owl-dot', function() {
var index = $(this).index();
$owlHome.trigger('to.owl.carousel', index);
});
},
responsive: {
0: {
nav: false
},
768: {
nav: false
},
992: {
nav: true
}
}
});
$owlHome.owlCarousel();
$owlHome.on('translate.owl.carousel', function(event) {
var data_anim = $("[data-animation]");
data_anim.each(function() {
var anim_name = $(this).data('animation');
$(this).removeClass('animated ' + anim_name).css('opacity', '0');
});
});
$("[data-delay]").each(function() {
var anim_del = $(this).data('delay');
$(this).css('animation-delay', anim_del);
});
$("[data-duration]").each(function() {
var anim_dur = $(this).data('duration');
$(this).css('animation-duration', anim_dur);
});
$owlHome.on('translated.owl.carousel', function() {
var data_anim = $owlHome.find('.owl-item.active').find("[data-animation]");
data_anim.each(function() {
var anim_name = $(this).data('animation');
$(this).addClass('animated ' + anim_name).css('opacity', '1');
});
});
var titles = document.querySelectorAll('.slider-section .main-content h4');
titles.forEach(function(e) {
var childNodes = [].slice.call(e.childNodes),
txtContent = childNodes.shift().textContent,
span;
e.childNodes[0].textContent = '';
txtContent.split(' ').forEach(function(s, i) {
if (i > 0) {
e.insertBefore(document.createTextNode(" " + s), e.children[1]);
} else {
span = document.createElement('span');
span.textContent = s;
e.insertBefore(span, e.firstChild);
}
})
});
});
$(document).ready(function() {
function marquee() {
jQuery('.marquee').marquee({
speed: 2000,
direction: 'left',
delayBeforeStart: 0,
duplicated: true,
pauseOnHover: true,
startVisible: true
});
}
marquee();
});
}(jQuery));
! function(e, t) {
"use strict";
({
customID: "abizCoreScript",
$document: e(document),
$window: e(window),
$body: e("body"),
classes: {
overlayActive: "overlay-enabled",
collapsed: "collapsed",
mainHeaderMenuActive: "header-menu-active",
searchPopUpActive: "header-search-active"
},
init: function() {
this.$document.on("ready", this.abizIsDocumentReady.bind(this)),
this.$document.on("ready", this.abizMobileMenuClone.bind(this)),
this.$window.on("ready", this.abizIsDocumentReady.bind(this))
},
abizIsDocumentReady: function() {
this.$document
.on("click." + this.customID, ".menu-collapsed", this.abizMenuCollapse.bind(this))
.on("click." + this.customID, ".header-close-menu", this.abizMenuCollapse.bind(this))
.on("click." + this.customID, this.abizMenuHideMobilePopup.bind(this))
.on("click." + this.customID, ".mobile-collapsed", this.abizMobileSubmenuCollapse.bind(this))
.on("click." + this.customID, ".header-close-menu", this.abizResetMobileMenuCollapse.bind(this))
.on("abizMenuHideMobilePopup." + this.customID, this.abizResetMobileMenuCollapse.bind(this))
.on("click." + this.customID, ".header-search-toggle", this.abizSearchPopUpToggle.bind(this))
.on("click." + this.customID, ".header-search-close", this.abizSearchPopUpToggle.bind(this)), this.$window.on("load." + this.customID, this.abizMenuAccessibility.bind(this))
},
abizSearchPopUpToggle: function(t) {
var i = e(".header-search-toggle"),
n = e(".header-search-field");
this.$body.toggleClass(this.classes.searchPopUpActive), this.$body.hasClass(this.classes.searchPopUpActive) ? n.focus() : i.focus(), this.abizSearchPopupAccessibility()
},
abizSearchPopupAccessibility: function() {
var e, t, i, n = document.querySelector(".header-search-popup");
let a = document.querySelector(".header-search-field"),
s = n.querySelectorAll('button, [href], input, select, textarea, [tabindex]:not([tabindex="-1"])'),
o = s[s.length - 1];
if (!n) return !1;
for (t = 0, i = (e = n.getElementsByTagName("button")).length; t < i; t++) e[t].addEventListener("focus", c, !0), e[t].addEventListener("blur", c, !0);
function c() {
for (var e = this; - 1 === e.className.indexOf("header-search-popup");) "input" === e.tagName.toLowerCase() && (-1 !== e.className.indexOf("focus") ? e.className = e.className.replace("focus", "") : e.className += " focus"), e = e.parentElement
}
document.addEventListener("keydown", function(e) {
("Tab" === e.key || 9 === e.keyCode) && (e.shiftKey ? document.activeElement === a && (o.focus(), e.preventDefault()) : document.activeElement === o && (a.focus(), e.preventDefault()))
})
},
abizMobileMenuClone: function(t) {
e(".main-navbar:not(.breadcrumb-menu) .main-menu").clone().appendTo(".main-mobile-build")
},
abizMenuAccessibility: function(t) {
e(".main-navbar, .widget_nav_menu").find("a").on("focus blur", function() {
e(this).parents("ul, li").toggleClass("focus")
})
},
abizMenuCollapse: function(t) {
var i = e(".menu-collapsed");
this.$body.toggleClass(this.classes.mainHeaderMenuActive), this.$body.toggleClass(this.classes.overlayActive), i.toggleClass(this.classes.collapsed), this.$body.hasClass(this.classes.mainHeaderMenuActive) ? e(".header-close-menu").focus() : i.focus(), this.abizMainMenuAccessibility()
},
abizMainMenuAccessibility: function() {
var e, t, i, n = document.querySelector(".main-mobile-build");
let a = document.querySelector(".header-close-menu"),
s = n.querySelectorAll('button, [href], input, select, textarea, [tabindex]:not([tabindex="-1"])'),
o = s[s.length - 1];
if (!n) return !1;
for (t = 0, i = (e = n.getElementsByTagName("a")).length; t < i; t++) e[t].addEventListener("focus", c, !0), e[t].addEventListener("blur", c, !0);
function c() {
for (var e = this; - 1 === e.className.indexOf("main-mobile-build");) "li" === e.tagName.toLowerCase() && (-1 !== e.className.indexOf("focus") ? e.className = e.className.replace(" focus", "") : e.className += " focus"), e = e.parentElement
}
document.addEventListener("keydown", function(e) {
("Tab" === e.key || 9 === e.keyCode) && (e.shiftKey ? document.activeElement === a && (o.focus(), e.preventDefault()) : document.activeElement === o && (a.focus(), e.preventDefault()))
})
},
abizMenuHideMobilePopup: function(t) {
var i = e(".menu-collapsed"),
n = e(".main-mobile-build");
e(t.target).closest(i).length || e(t.target).closest(n).length || this.$body.hasClass(this.classes.mainHeaderMenuActive) && (this.$body.removeClass(this.classes.mainHeaderMenuActive), this.$body.removeClass(this.classes.overlayActive), i.removeClass(this.classes.collapsed), this.$document.trigger("abizMenuHideMobilePopup." + this.customID), t.stopPropagation())
},
abizMobileSubmenuCollapse: function(t) {
t.preventDefault();
var i = e(t.currentTarget);
i.closest(".main-mobile-build .main-menu"), i.parents(".dropdown-menu").length;
this.isRTL, setTimeout(function() {
i.parent().toggleClass("current"), i.next().slideToggle()
}, 250)
},
abizResetMobileMenuCollapse: function(t) {
e(".main-mobile-build .main-menu");
var i = e(".main-mobile-build .menu-item"),
n = e(".main-mobile-build .dropdown-menu");
setTimeout(function() {
i.removeClass("current"), n.hide()
}, 250)
}
}).init()
}(jQuery, window.abizCoreScript);

View File

@@ -0,0 +1,490 @@
/**
* jQuery.marquee - scrolling text like old marquee element
* @author Aamir Afridi - aamirafridi(at)gmail(dot)com / http://aamirafridi.com/jquery/jquery-marquee-plugin
*/
;
(function($) {
$.fn.marquee = function(options) {
return this.each(function() {
// Extend the options if any provided
var o = $.extend({}, $.fn.marquee.defaults, options),
$this = $(this),
$marqueeWrapper, containerWidth, animationCss, verticalDir, elWidth,
loopCount = 3,
playState = 'animation-play-state',
css3AnimationIsSupported = false,
// Private methods
_prefixedEvent = function(element, type, callback) {
var pfx = ["webkit", "moz", "MS", "o", ""];
for (var p = 0; p < pfx.length; p++) {
if (!pfx[p]) type = type.toLowerCase();
element.addEventListener(pfx[p] + type, callback, false);
}
},
_objToString = function(obj) {
var tabjson = [];
for (var p in obj) {
if (obj.hasOwnProperty(p)) {
tabjson.push(p + ':' + obj[p]);
}
}
tabjson.push();
return '{' + tabjson.join(',') + '}';
},
_startAnimationWithDelay = function() {
$this.timer = setTimeout(animate, o.delayBeforeStart);
},
// Public methods
methods = {
pause: function() {
if (css3AnimationIsSupported && o.allowCss3Support) {
$marqueeWrapper.css(playState, 'paused');
} else {
// pause using pause plugin
if ($.fn.pause) {
$marqueeWrapper.pause();
}
}
// save the status
$this.data('runningStatus', 'paused');
// fire event
$this.trigger('paused');
},
resume: function() {
// resume using css3
if (css3AnimationIsSupported && o.allowCss3Support) {
$marqueeWrapper.css(playState, 'running');
} else {
// resume using pause plugin
if ($.fn.resume) {
$marqueeWrapper.resume();
}
}
// save the status
$this.data('runningStatus', 'resumed');
// fire event
$this.trigger('resumed');
},
toggle: function() {
methods[$this.data('runningStatus') === 'resumed' ? 'pause' : 'resume']();
},
destroy: function() {
// Clear timer
clearTimeout($this.timer);
// Unbind all events
$this.find("*").addBack().off();
// Just unwrap the elements that has been added using this plugin
$this.html($this.find('.js-marquee:first').html());
}
};
// Check for methods
if (typeof options === 'string') {
if ($.isFunction(methods[options])) {
// Following two IF statements to support public methods
if (!$marqueeWrapper) {
$marqueeWrapper = $this.find('.js-marquee-wrapper');
}
if ($this.data('css3AnimationIsSupported') === true) {
css3AnimationIsSupported = true;
}
methods[options]();
}
return;
}
/* Check if element has data attributes. They have top priority
For details https://twitter.com/aamirafridi/status/403848044069679104 - Can't find a better solution :/
jQuery 1.3.2 doesn't support $.data().KEY hence writting the following */
var dataAttributes = {},
attr;
$.each(o, function(key) {
// Check if element has this data attribute
attr = $this.attr('data-' + key);
if (typeof attr !== 'undefined') {
// Now check if value is boolean or not
switch (attr) {
case 'true':
attr = true;
break;
case 'false':
attr = false;
break;
}
o[key] = attr;
}
});
// Reintroduce speed as an option. It calculates duration as a factor of the container width
// measured in pixels per second.
if (o.speed) {
o.duration = parseInt($this.width(), 10) / o.speed * 1000;
}
// Shortcut to see if direction is upward or downward
verticalDir = o.direction === 'up' || o.direction === 'down';
// no gap if not duplicated
o.gap = o.duplicated ? parseInt(o.gap) : 0;
// wrap inner content into a div
$this.wrapInner('<div class="js-marquee"></div>');
// Make copy of the element
var $el = $this.find('.js-marquee').css({
'margin-right': o.gap,
'float': 'left'
});
if (o.duplicated) {
$el.clone(true).appendTo($this);
}
// wrap both inner elements into one div
$this.wrapInner('<div style="width:100000px" class="js-marquee-wrapper"></div>');
// Save the reference of the wrapper
$marqueeWrapper = $this.find('.js-marquee-wrapper');
// If direction is up or down, get the height of main element
if (verticalDir) {
var containerHeight = $this.height();
$marqueeWrapper.removeAttr('style');
$this.height(containerHeight);
// Change the CSS for js-marquee element
$this.find('.js-marquee').css({
'float': 'none',
'margin-bottom': o.gap,
'margin-right': 0
});
// Remove bottom margin from 2nd element if duplicated
if (o.duplicated) {
$this.find('.js-marquee:last').css({
'margin-bottom': 0
});
}
var elHeight = $this.find('.js-marquee:first').height() + o.gap;
// adjust the animation duration according to the text length
if (o.startVisible && !o.duplicated) {
// Compute the complete animation duration and save it for later reference
// formula is to: (Height of the text node + height of the main container / Height of the main container) * duration;
o._completeDuration = ((parseInt(elHeight, 10) + parseInt(containerHeight, 10)) / parseInt(containerHeight, 10)) * o.duration;
// formula is to: (Height of the text node / height of the main container) * duration
o.duration = (parseInt(elHeight, 10) / parseInt(containerHeight, 10)) * o.duration;
} else {
// formula is to: (Height of the text node + height of the main container / Height of the main container) * duration;
o.duration = ((parseInt(elHeight, 10) + parseInt(containerHeight, 10)) / parseInt(containerHeight, 10)) * o.duration;
}
} else {
// Save the width of the each element so we can use it in animation
elWidth = $this.find('.js-marquee:first').width() + o.gap;
// container width
containerWidth = $this.width();
// adjust the animation duration according to the text length
if (o.startVisible && !o.duplicated) {
// Compute the complete animation duration and save it for later reference
// formula is to: (Width of the text node + width of the main container / Width of the main container) * duration;
o._completeDuration = ((parseInt(elWidth, 10) + parseInt(containerWidth, 10)) / parseInt(containerWidth, 10)) * o.duration;
// (Width of the text node / width of the main container) * duration
o.duration = (parseInt(elWidth, 10) / parseInt(containerWidth, 10)) * o.duration;
} else {
// formula is to: (Width of the text node + width of the main container / Width of the main container) * duration;
o.duration = ((parseInt(elWidth, 10) + parseInt(containerWidth, 10)) / parseInt(containerWidth, 10)) * o.duration;
}
}
// if duplicated then reduce the duration
if (o.duplicated) {
o.duration = o.duration / 2;
}
if (o.allowCss3Support) {
var elm = document.body || document.createElement('div'),
animationName = 'marqueeAnimation-' + Math.floor(Math.random() * 10000000),
domPrefixes = 'Webkit Moz O ms Khtml'.split(' '),
animationString = 'animation',
animationCss3Str = '',
keyframeString = '';
// Check css3 support
if (elm.style.animation !== undefined) {
keyframeString = '@keyframes ' + animationName + ' ';
css3AnimationIsSupported = true;
}
if (css3AnimationIsSupported === false) {
for (var i = 0; i < domPrefixes.length; i++) {
if (elm.style[domPrefixes[i] + 'AnimationName'] !== undefined) {
var prefix = '-' + domPrefixes[i].toLowerCase() + '-';
animationString = prefix + animationString;
playState = prefix + playState;
keyframeString = '@' + prefix + 'keyframes ' + animationName + ' ';
css3AnimationIsSupported = true;
break;
}
}
}
if (css3AnimationIsSupported) {
animationCss3Str = animationName + ' ' + o.duration / 1000 + 's ' + o.delayBeforeStart / 1000 + 's infinite ' + o.css3easing;
$this.data('css3AnimationIsSupported', true);
}
}
var _rePositionVertically = function() {
$marqueeWrapper.css('transform', 'translateY(' + (o.direction === 'up' ? containerHeight + 'px' : '-' + elHeight + 'px') + ')');
},
_rePositionHorizontally = function() {
$marqueeWrapper.css('transform', 'translateX(' + (o.direction === 'left' ? containerWidth + 'px' : '-' + elWidth + 'px') + ')');
};
// if duplicated option is set to true than position the wrapper
if (o.duplicated) {
if (verticalDir) {
if (o.startVisible) {
$marqueeWrapper.css('transform', 'translateY(0)');
} else {
$marqueeWrapper.css('transform', 'translateY(' + (o.direction === 'up' ? containerHeight + 'px' : '-' + ((elHeight * 2) - o.gap) + 'px') + ')');
}
} else {
if (o.startVisible) {
$marqueeWrapper.css('transform', 'translateX(0)');
} else {
$marqueeWrapper.css('transform', 'translateX(' + (o.direction === 'left' ? containerWidth + 'px' : '-' + ((elWidth * 2) - o.gap) + 'px') + ')');
}
}
// If the text starts out visible we can skip the two initial loops
if (!o.startVisible) {
loopCount = 1;
}
} else if (o.startVisible) {
// We only have two different loops if marquee is duplicated and starts visible
loopCount = 2;
} else {
if (verticalDir) {
_rePositionVertically();
} else {
_rePositionHorizontally();
}
}
// Animate recursive method
var animate = function() {
if (o.duplicated) {
// When duplicated, the first loop will be scroll longer so double the duration
if (loopCount === 1) {
o._originalDuration = o.duration;
if (verticalDir) {
o.duration = o.direction === 'up' ? o.duration + (containerHeight / ((elHeight) / o.duration)) : o.duration * 2;
} else {
o.duration = o.direction === 'left' ? o.duration + (containerWidth / ((elWidth) / o.duration)) : o.duration * 2;
}
// Adjust the css3 animation as well
if (animationCss3Str) {
animationCss3Str = animationName + ' ' + o.duration / 1000 + 's ' + o.delayBeforeStart / 1000 + 's ' + o.css3easing;
}
loopCount++;
}
// On 2nd loop things back to normal, normal duration for the rest of animations
else if (loopCount === 2) {
o.duration = o._originalDuration;
// Adjust the css3 animation as well
if (animationCss3Str) {
animationName = animationName + '0';
keyframeString = $.trim(keyframeString) + '0 ';
animationCss3Str = animationName + ' ' + o.duration / 1000 + 's 0s infinite ' + o.css3easing;
}
loopCount++;
}
}
if (verticalDir) {
if (o.duplicated) {
// Adjust the starting point of animation only when first loops finishes
if (loopCount > 2) {
$marqueeWrapper.css('transform', 'translateY(' + (o.direction === 'up' ? 0 : '-' + elHeight + 'px') + ')');
}
animationCss = {
'transform': 'translateY(' + (o.direction === 'up' ? '-' + elHeight + 'px' : 0) + ')'
};
} else if (o.startVisible) {
// This loop moves the marquee out of the container
if (loopCount === 2) {
// Adjust the css3 animation as well
if (animationCss3Str) {
animationCss3Str = animationName + ' ' + o.duration / 1000 + 's ' + o.delayBeforeStart / 1000 + 's ' + o.css3easing;
}
animationCss = {
'transform': 'translateY(' + (o.direction === 'up' ? '-' + elHeight + 'px' : containerHeight + 'px') + ')'
};
loopCount++;
} else if (loopCount === 3) {
// Set the duration for the animation that will run forever
o.duration = o._completeDuration;
// Adjust the css3 animation as well
if (animationCss3Str) {
animationName = animationName + '0';
keyframeString = $.trim(keyframeString) + '0 ';
animationCss3Str = animationName + ' ' + o.duration / 1000 + 's 0s infinite ' + o.css3easing;
}
_rePositionVertically();
}
} else {
_rePositionVertically();
animationCss = {
'transform': 'translateY(' + (o.direction === 'up' ? '-' + ($marqueeWrapper.height()) + 'px' : containerHeight + 'px') + ')'
};
}
} else {
if (o.duplicated) {
// Adjust the starting point of animation only when first loops finishes
if (loopCount > 2) {
$marqueeWrapper.css('transform', 'translateX(' + (o.direction === 'left' ? 0 : '-' + elWidth + 'px') + ')');
}
animationCss = {
'transform': 'translateX(' + (o.direction === 'left' ? '-' + elWidth + 'px' : 0) + ')'
};
} else if (o.startVisible) {
// This loop moves the marquee out of the container
if (loopCount === 2) {
// Adjust the css3 animation as well
if (animationCss3Str) {
animationCss3Str = animationName + ' ' + o.duration / 1000 + 's ' + o.delayBeforeStart / 1000 + 's ' + o.css3easing;
}
animationCss = {
'transform': 'translateX(' + (o.direction === 'left' ? '-' + elWidth + 'px' : containerWidth + 'px') + ')'
};
loopCount++;
} else if (loopCount === 3) {
// Set the duration for the animation that will run forever
o.duration = o._completeDuration;
// Adjust the css3 animation as well
if (animationCss3Str) {
animationName = animationName + '0';
keyframeString = $.trim(keyframeString) + '0 ';
animationCss3Str = animationName + ' ' + o.duration / 1000 + 's 0s infinite ' + o.css3easing;
}
_rePositionHorizontally();
}
} else {
_rePositionHorizontally();
animationCss = {
'transform': 'translateX(' + (o.direction === 'left' ? '-' + elWidth + 'px' : containerWidth + 'px') + ')'
};
}
}
// fire event
$this.trigger('beforeStarting');
// If css3 support is available than do it with css3, otherwise use jQuery as fallback
if (css3AnimationIsSupported) {
// Add css3 animation to the element
$marqueeWrapper.css(animationString, animationCss3Str);
var keyframeCss = keyframeString + ' { 100% ' + _objToString(animationCss) + '}',
$styles = $marqueeWrapper.find('style');
// Now add the keyframe animation to the marquee element
if ($styles.length !== 0) {
// Bug fixed for jQuery 1.3.x - Instead of using .last(), use following
$styles.filter(":last").html(keyframeCss);
} else {
$('head').append('<style>' + keyframeCss + '</style>');
}
// Animation iteration event
_prefixedEvent($marqueeWrapper[0], "AnimationIteration", function() {
$this.trigger('finished');
});
// Animation stopped
_prefixedEvent($marqueeWrapper[0], "AnimationEnd", function() {
animate();
$this.trigger('finished');
});
} else {
// Start animating
$marqueeWrapper.animate(animationCss, o.duration, o.easing, function() {
// fire event
$this.trigger('finished');
// animate again
if (o.pauseOnCycle) {
_startAnimationWithDelay();
} else {
animate();
}
});
}
// save the status
$this.data('runningStatus', 'resumed');
};
// bind pause and resume events
$this.on('pause', methods.pause);
$this.on('resume', methods.resume);
if (o.pauseOnHover) {
$this.on('mouseenter', methods.pause);
$this.on('mouseleave', methods.resume);
}
// If css3 animation is supported than call animate method at once
if (css3AnimationIsSupported && o.allowCss3Support) {
animate();
} else {
// Starts the recursive method
_startAnimationWithDelay();
}
});
}; // End of Plugin
// Public: plugin defaults options
$.fn.marquee.defaults = {
// If you wish to always animate using jQuery
allowCss3Support: true,
// works when allowCss3Support is set to true - for full list see http://www.w3.org/TR/2013/WD-css3-transitions-20131119/#transition-timing-function
css3easing: 'linear',
// requires jQuery easing plugin. Default is 'linear'
easing: 'linear',
// pause time before the next animation turn in milliseconds
delayBeforeStart: 1000,
// 'left', 'right', 'up' or 'down'
direction: 'left',
// true or false - should the marquee be duplicated to show an effect of continues flow
duplicated: false,
// duration in milliseconds of the marquee in milliseconds
duration: 5000,
// Speed allows you to set a relatively constant marquee speed regardless of the width of the containing element. Speed is measured in pixels per second.
speed: 0,
// gap in pixels between the tickers
gap: 20,
// on cycle pause the marquee
pauseOnCycle: false,
// on hover pause the marquee - using jQuery plugin https://github.com/tobia/Pause
pauseOnHover: false,
// the marquee is visible initially positioned next to the border towards it will be moving
startVisible: false
};
})(jQuery);

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,326 @@
/*! WOW wow.js - v1.3.0 - 2016-10-04
* https://wowjs.uk
* Copyright (c) 2016 Thomas Grainger; Licensed MIT */
! function(a, b) {
if ("function" == typeof define && define.amd) define(["module", "exports"], b);
else if ("undefined" != typeof exports) b(module, exports);
else {
var c = {
exports: {}
};
b(c, c.exports), a.WOW = c.exports
}
}(this, function(a, b) {
"use strict";
function c(a, b) {
if (!(a instanceof b)) throw new TypeError("Cannot call a class as a function")
}
function d(a, b) {
return b.indexOf(a) >= 0
}
function e(a, b) {
for (var c in b)
if (null == a[c]) {
var d = b[c];
a[c] = d
}
return a
}
function f(a) {
return /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(a)
}
function g(a) {
var b = arguments.length <= 1 || void 0 === arguments[1] ? !1 : arguments[1],
c = arguments.length <= 2 || void 0 === arguments[2] ? !1 : arguments[2],
d = arguments.length <= 3 || void 0 === arguments[3] ? null : arguments[3],
e = void 0;
return null != document.createEvent ? (e = document.createEvent("CustomEvent"), e.initCustomEvent(a, b, c, d)) : null != document.createEventObject ? (e = document.createEventObject(), e.eventType = a) : e.eventName = a, e
}
function h(a, b) {
null != a.dispatchEvent ? a.dispatchEvent(b) : b in (null != a) ? a[b]() : "on" + b in (null != a) && a["on" + b]()
}
function i(a, b, c) {
null != a.addEventListener ? a.addEventListener(b, c, !1) : null != a.attachEvent ? a.attachEvent("on" + b, c) : a[b] = c
}
function j(a, b, c) {
null != a.removeEventListener ? a.removeEventListener(b, c, !1) : null != a.detachEvent ? a.detachEvent("on" + b, c) : delete a[b]
}
function k() {
return "innerHeight" in window ? window.innerHeight : document.documentElement.clientHeight
}
Object.defineProperty(b, "__esModule", {
value: !0
});
var l, m, n = function() {
function a(a, b) {
for (var c = 0; c < b.length; c++) {
var d = b[c];
d.enumerable = d.enumerable || !1, d.configurable = !0, "value" in d && (d.writable = !0), Object.defineProperty(a, d.key, d)
}
}
return function(b, c, d) {
return c && a(b.prototype, c), d && a(b, d), b
}
}(),
o = window.WeakMap || window.MozWeakMap || function() {
function a() {
c(this, a), this.keys = [], this.values = []
}
return n(a, [{
key: "get",
value: function(a) {
for (var b = 0; b < this.keys.length; b++) {
var c = this.keys[b];
if (c === a) return this.values[b]
}
}
}, {
key: "set",
value: function(a, b) {
for (var c = 0; c < this.keys.length; c++) {
var d = this.keys[c];
if (d === a) return this.values[c] = b, this
}
return this.keys.push(a), this.values.push(b), this
}
}]), a
}(),
p = window.MutationObserver || window.WebkitMutationObserver || window.MozMutationObserver || (m = l = function() {
function a() {
c(this, a), "undefined" != typeof console && null !== console && (console.warn("MutationObserver is not supported by your browser."), console.warn("WOW.js cannot detect dom mutations, please call .sync() after loading new content."))
}
return n(a, [{
key: "observe",
value: function() {}
}]), a
}(), l.notSupported = !0, m),
q = window.getComputedStyle || function(a) {
var b = /(\-([a-z]){1})/g;
return {
getPropertyValue: function(c) {
"float" === c && (c = "styleFloat"), b.test(c) && c.replace(b, function(a, b) {
return b.toUpperCase()
});
var d = a.currentStyle;
return (null != d ? d[c] : void 0) || null
}
}
},
r = function() {
function a() {
var b = arguments.length <= 0 || void 0 === arguments[0] ? {} : arguments[0];
c(this, a), this.defaults = {
boxClass: "wow",
animateClass: "animated",
offset: 0,
mobile: !0,
live: !0,
callback: null,
scrollContainer: null,
resetAnimation: !0
}, this.animate = function() {
return "requestAnimationFrame" in window ? function(a) {
return window.requestAnimationFrame(a)
} : function(a) {
return a()
}
}(), this.vendors = ["moz", "webkit"], this.start = this.start.bind(this), this.resetAnimation = this.resetAnimation.bind(this), this.scrollHandler = this.scrollHandler.bind(this), this.scrollCallback = this.scrollCallback.bind(this), this.scrolled = !0, this.config = e(b, this.defaults), null != b.scrollContainer && (this.config.scrollContainer = document.querySelector(b.scrollContainer)), this.animationNameCache = new o, this.wowEvent = g(this.config.boxClass)
}
return n(a, [{
key: "init",
value: function() {
this.element = window.document.documentElement, d(document.readyState, ["interactive", "complete"]) ? this.start() : i(document, "DOMContentLoaded", this.start), this.finished = []
}
}, {
key: "start",
value: function() {
var a = this;
if (this.stopped = !1, this.boxes = [].slice.call(this.element.querySelectorAll("." + this.config.boxClass)), this.all = this.boxes.slice(0), this.boxes.length)
if (this.disabled()) this.resetStyle();
else
for (var b = 0; b < this.boxes.length; b++) {
var c = this.boxes[b];
this.applyStyle(c, !0)
}
if (this.disabled() || (i(this.config.scrollContainer || window, "scroll", this.scrollHandler), i(window, "resize", this.scrollHandler), this.interval = setInterval(this.scrollCallback, 50)), this.config.live) {
var d = new p(function(b) {
for (var c = 0; c < b.length; c++)
for (var d = b[c], e = 0; e < d.addedNodes.length; e++) {
var f = d.addedNodes[e];
a.doSync(f)
}
});
d.observe(document.body, {
childList: !0,
subtree: !0
})
}
}
}, {
key: "stop",
value: function() {
this.stopped = !0, j(this.config.scrollContainer || window, "scroll", this.scrollHandler), j(window, "resize", this.scrollHandler), null != this.interval && clearInterval(this.interval)
}
}, {
key: "sync",
value: function() {
p.notSupported && this.doSync(this.element)
}
}, {
key: "doSync",
value: function(a) {
if ("undefined" != typeof a && null !== a || (a = this.element), 1 === a.nodeType) {
a = a.parentNode || a;
for (var b = a.querySelectorAll("." + this.config.boxClass), c = 0; c < b.length; c++) {
var e = b[c];
d(e, this.all) || (this.boxes.push(e), this.all.push(e), this.stopped || this.disabled() ? this.resetStyle() : this.applyStyle(e, !0), this.scrolled = !0)
}
}
}
}, {
key: "show",
value: function(a) {
return this.applyStyle(a), a.className = a.className + " " + this.config.animateClass, null != this.config.callback && this.config.callback(a), h(a, this.wowEvent), this.config.resetAnimation && (i(a, "animationend", this.resetAnimation), i(a, "oanimationend", this.resetAnimation), i(a, "webkitAnimationEnd", this.resetAnimation), i(a, "MSAnimationEnd", this.resetAnimation)), a
}
}, {
key: "applyStyle",
value: function(a, b) {
var c = this,
d = a.getAttribute("data-wow-duration"),
e = a.getAttribute("data-wow-delay"),
f = a.getAttribute("data-wow-iteration");
return this.animate(function() {
return c.customStyle(a, b, d, e, f)
})
}
}, {
key: "resetStyle",
value: function() {
for (var a = 0; a < this.boxes.length; a++) {
var b = this.boxes[a];
b.style.visibility = "visible"
}
}
}, {
key: "resetAnimation",
value: function(a) {
if (a.type.toLowerCase().indexOf("animationend") >= 0) {
var b = a.target || a.srcElement;
b.className = b.className.replace(this.config.animateClass, "").trim()
}
}
}, {
key: "customStyle",
value: function(a, b, c, d, e) {
return b && this.cacheAnimationName(a), a.style.visibility = b ? "hidden" : "visible", c && this.vendorSet(a.style, {
animationDuration: c
}), d && this.vendorSet(a.style, {
animationDelay: d
}), e && this.vendorSet(a.style, {
animationIterationCount: e
}), this.vendorSet(a.style, {
animationName: b ? "none" : this.cachedAnimationName(a)
}), a
}
}, {
key: "vendorSet",
value: function(a, b) {
for (var c in b)
if (b.hasOwnProperty(c)) {
var d = b[c];
a["" + c] = d;
for (var e = 0; e < this.vendors.length; e++) {
var f = this.vendors[e];
a["" + f + c.charAt(0).toUpperCase() + c.substr(1)] = d
}
}
}
}, {
key: "vendorCSS",
value: function(a, b) {
for (var c = q(a), d = c.getPropertyCSSValue(b), e = 0; e < this.vendors.length; e++) {
var f = this.vendors[e];
d = d || c.getPropertyCSSValue("-" + f + "-" + b)
}
return d
}
}, {
key: "animationName",
value: function(a) {
var b = void 0;
try {
b = this.vendorCSS(a, "animation-name").cssText
} catch (c) {
b = q(a).getPropertyValue("animation-name")
}
return "none" === b ? "" : b
}
}, {
key: "cacheAnimationName",
value: function(a) {
return this.animationNameCache.set(a, this.animationName(a))
}
}, {
key: "cachedAnimationName",
value: function(a) {
return this.animationNameCache.get(a)
}
}, {
key: "scrollHandler",
value: function() {
this.scrolled = !0
}
}, {
key: "scrollCallback",
value: function() {
if (this.scrolled) {
this.scrolled = !1;
for (var a = [], b = 0; b < this.boxes.length; b++) {
var c = this.boxes[b];
if (c) {
if (this.isVisible(c)) {
this.show(c);
continue
}
a.push(c)
}
}
this.boxes = a, this.boxes.length || this.config.live || this.stop()
}
}
}, {
key: "offsetTop",
value: function(a) {
for (; void 0 === a.offsetTop;) a = a.parentNode;
for (var b = a.offsetTop; a.offsetParent;) a = a.offsetParent, b += a.offsetTop;
return b
}
}, {
key: "isVisible",
value: function(a) {
var b = a.getAttribute("data-wow-offset") || this.config.offset,
c = this.config.scrollContainer && this.config.scrollContainer.scrollTop || window.pageYOffset,
d = c + Math.min(this.element.clientHeight, k()) - b,
e = this.offsetTop(a),
f = e + a.clientHeight;
return d >= e && f >= c
}
}, {
key: "disabled",
value: function() {
return !this.config.mobile && f(navigator.userAgent)
}
}]), a
}();
b["default"] = r, a.exports = b["default"]
});
new WOW().init();

File diff suppressed because one or more lines are too long