(function (root, factory){
if(typeof define==='function'&&define.amd){
define(['jquery'], factory);
}else if(typeof exports==='object'){
module.exports=factory(require('jquery'));
}else{
root.lightbox=factory(root.jQuery);
}}(this, function ($){
function Lightbox(options){
this.album=[];
this.currentImageIndex=void 0;
this.init();
this.options=$.extend({}, this.constructor.defaults);
this.option(options);
}
Lightbox.defaults={
albumLabel: 'Image %1 of %2',
alwaysShowNavOnTouchDevices: false,
fadeDuration: 600,
fitImagesInViewport: true,
imageFadeDuration: 600,
positionFromTop: 50,
resizeDuration: 700,
showImageNumberLabel: true,
wrapAround: false,
disableScrolling: false,
sanitizeTitle: false
};
Lightbox.prototype.option=function(options){
$.extend(this.options, options);
};
Lightbox.prototype.imageCountLabel=function(currentImageNum, totalImages){
return this.options.albumLabel.replace(/%1/g, currentImageNum).replace(/%2/g, totalImages);
};
Lightbox.prototype.init=function(){
var self=this;
$(document).ready(function(){
self.enable();
self.build();
});
};
Lightbox.prototype.enable=function(){
var self=this;
$('body').on('click', 'a[rel^=lightbox], area[rel^=lightbox], a[data-lightbox], area[data-lightbox]', function(event){
self.start($(event.currentTarget));
return false;
});
};
Lightbox.prototype.build=function(){
if($('#lightbox').length > 0){
return;
}
var self=this;
$('<div id="lightboxOverlay" tabindex="-1" class="lightboxOverlay"></div><div id="lightbox" tabindex="-1" class="lightbox"><div class="lb-outerContainer"><div class="lb-container"><img class="lb-image" src="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw==" alt=""/><div class="lb-nav"><a class="lb-prev" role="button" tabindex="0" aria-label="Previous image" href="" ></a><a class="lb-next" role="button" tabindex="0" aria-label="Next image" href="" ></a></div><div class="lb-loader"><a class="lb-cancel" role="button" tabindex="0"></a></div></div></div><div class="lb-dataContainer"><div class="lb-data"><div class="lb-details"><span class="lb-caption"></span><span class="lb-number"></span></div><div class="lb-closeContainer"><a class="lb-close" role="button" tabindex="0"></a></div></div></div></div>').appendTo($('body'));
this.$lightbox=$('#lightbox');
this.$overlay=$('#lightboxOverlay');
this.$outerContainer=this.$lightbox.find('.lb-outerContainer');
this.$container=this.$lightbox.find('.lb-container');
this.$image=this.$lightbox.find('.lb-image');
this.$nav=this.$lightbox.find('.lb-nav');
this.containerPadding={
top: parseInt(this.$container.css('padding-top'), 10),
right: parseInt(this.$container.css('padding-right'), 10),
bottom: parseInt(this.$container.css('padding-bottom'), 10),
left: parseInt(this.$container.css('padding-left'), 10)
};
this.imageBorderWidth={
top: parseInt(this.$image.css('border-top-width'), 10),
right: parseInt(this.$image.css('border-right-width'), 10),
bottom: parseInt(this.$image.css('border-bottom-width'), 10),
left: parseInt(this.$image.css('border-left-width'), 10)
};
this.$overlay.hide().on('click', function(){
self.end();
return false;
});
this.$lightbox.hide().on('click', function(event){
if($(event.target).attr('id')==='lightbox'){
self.end();
}});
this.$outerContainer.on('click', function(event){
if($(event.target).attr('id')==='lightbox'){
self.end();
}
return false;
});
this.$lightbox.find('.lb-prev').on('click', function(){
if(self.currentImageIndex===0){
self.changeImage(self.album.length - 1);
}else{
self.changeImage(self.currentImageIndex - 1);
}
return false;
});
this.$lightbox.find('.lb-next').on('click', function(){
if(self.currentImageIndex===self.album.length - 1){
self.changeImage(0);
}else{
self.changeImage(self.currentImageIndex + 1);
}
return false;
});
this.$nav.on('mousedown', function(event){
if(event.which===3){
self.$nav.css('pointer-events', 'none');
self.$lightbox.one('contextmenu', function(){
setTimeout(function(){
this.$nav.css('pointer-events', 'auto');
}.bind(self), 0);
});
}});
this.$lightbox.find('.lb-loader, .lb-close').on('click keyup', function(e){
if(e.type==='click'||(e.type==='keyup'&&(e.which===13||e.which===32))){
self.end();
return false;
}});
};
Lightbox.prototype.start=function($link){
var self=this;
var $window=$(window);
$window.on('resize', $.proxy(this.sizeOverlay, this));
this.sizeOverlay();
this.album=[];
var imageNumber=0;
function addToAlbum($link){
self.album.push({
alt: $link.attr('data-alt'),
link: $link.attr('href'),
title: $link.attr('data-title')||$link.attr('title')
});
}
var dataLightboxValue=$link.attr('data-lightbox');
var $links;
if(dataLightboxValue){
$links=$($link.prop('tagName') + '[data-lightbox="' + dataLightboxValue + '"]');
for (var i=0; i < $links.length; i=++i){
addToAlbum($($links[i]));
if($links[i]===$link[0]){
imageNumber=i;
}}
}else{
if($link.attr('rel')==='lightbox'){
addToAlbum($link);
}else{
$links=$($link.prop('tagName') + '[rel="' + $link.attr('rel') + '"]');
for (var j=0; j < $links.length; j=++j){
addToAlbum($($links[j]));
if($links[j]===$link[0]){
imageNumber=j;
}}
}}
var top=$window.scrollTop() + this.options.positionFromTop;
var left=$window.scrollLeft();
this.$lightbox.css({
top: top + 'px',
left: left + 'px'
}).fadeIn(this.options.fadeDuration);
if(this.options.disableScrolling){
$('body').addClass('lb-disable-scrolling');
}
this.changeImage(imageNumber);
};
Lightbox.prototype.changeImage=function(imageNumber){
var self=this;
var filename=this.album[imageNumber].link;
var filetype=filename.split('.').slice(-1)[0];
var $image=this.$lightbox.find('.lb-image');
this.disableKeyboardNav();
this.$overlay.fadeIn(this.options.fadeDuration);
$('.lb-loader').fadeIn('slow');
this.$lightbox.find('.lb-image, .lb-nav, .lb-prev, .lb-next, .lb-dataContainer, .lb-numbers, .lb-caption').hide();
this.$outerContainer.addClass('animating');
var preloader=new Image();
preloader.onload=function(){
var $preloader;
var imageHeight;
var imageWidth;
var maxImageHeight;
var maxImageWidth;
var windowHeight;
var windowWidth;
$image.attr({
'alt': self.album[imageNumber].alt,
'src': filename
});
$preloader=$(preloader);
$image.width(preloader.width);
$image.height(preloader.height);
var aspectRatio=preloader.width / preloader.height;
windowWidth=$(window).width();
windowHeight=$(window).height();
maxImageWidth=windowWidth - self.containerPadding.left - self.containerPadding.right - self.imageBorderWidth.left - self.imageBorderWidth.right - 20;
maxImageHeight=windowHeight - self.containerPadding.top - self.containerPadding.bottom - self.imageBorderWidth.top - self.imageBorderWidth.bottom - self.options.positionFromTop - 70;
if(filetype==='svg'){
if(aspectRatio >=1){
imageWidth=maxImageWidth;
imageHeight=parseInt(maxImageWidth / aspectRatio, 10);
}else{
imageWidth=parseInt(maxImageHeight / aspectRatio, 10);
imageHeight=maxImageHeight;
}
$image.width(imageWidth);
$image.height(imageHeight);
}else{
if(self.options.fitImagesInViewport){
if(self.options.maxWidth&&self.options.maxWidth < maxImageWidth){
maxImageWidth=self.options.maxWidth;
}
if(self.options.maxHeight&&self.options.maxHeight < maxImageHeight){
maxImageHeight=self.options.maxHeight;
}}else{
maxImageWidth=self.options.maxWidth||preloader.width||maxImageWidth;
maxImageHeight=self.options.maxHeight||preloader.height||maxImageHeight;
}
if((preloader.width > maxImageWidth)||(preloader.height > maxImageHeight)){
if((preloader.width / maxImageWidth) > (preloader.height / maxImageHeight)){
imageWidth=maxImageWidth;
imageHeight=parseInt(preloader.height / (preloader.width / imageWidth), 10);
$image.width(imageWidth);
$image.height(imageHeight);
}else{
imageHeight=maxImageHeight;
imageWidth=parseInt(preloader.width / (preloader.height / imageHeight), 10);
$image.width(imageWidth);
$image.height(imageHeight);
}}
}
self.sizeContainer($image.width(), $image.height());
};
preloader.src=this.album[imageNumber].link;
this.currentImageIndex=imageNumber;
};
Lightbox.prototype.sizeOverlay=function(){
var self=this;
setTimeout(function(){
self.$overlay
.width($(document).width())
.height($(document).height());
}, 0);
};
Lightbox.prototype.sizeContainer=function(imageWidth, imageHeight){
var self=this;
var oldWidth=this.$outerContainer.outerWidth();
var oldHeight=this.$outerContainer.outerHeight();
var newWidth=imageWidth + this.containerPadding.left + this.containerPadding.right + this.imageBorderWidth.left + this.imageBorderWidth.right;
var newHeight=imageHeight + this.containerPadding.top + this.containerPadding.bottom + this.imageBorderWidth.top + this.imageBorderWidth.bottom;
function postResize(){
self.$lightbox.find('.lb-dataContainer').width(newWidth);
self.$lightbox.find('.lb-prevLink').height(newHeight);
self.$lightbox.find('.lb-nextLink').height(newHeight);
self.$overlay.trigger('focus');
self.showImage();
}
if(oldWidth!==newWidth||oldHeight!==newHeight){
this.$outerContainer.animate({
width: newWidth,
height: newHeight
}, this.options.resizeDuration, 'swing', function(){
postResize();
});
}else{
postResize();
}};
Lightbox.prototype.showImage=function(){
this.$lightbox.find('.lb-loader').stop(true).hide();
this.$lightbox.find('.lb-image').fadeIn(this.options.imageFadeDuration);
this.updateNav();
this.updateDetails();
this.preloadNeighboringImages();
this.enableKeyboardNav();
};
Lightbox.prototype.updateNav=function(){
var alwaysShowNav=false;
try {
document.createEvent('TouchEvent');
alwaysShowNav=(this.options.alwaysShowNavOnTouchDevices) ? true:false;
} catch (e){}
this.$lightbox.find('.lb-nav').show();
if(this.album.length > 1){
if(this.options.wrapAround){
if(alwaysShowNav){
this.$lightbox.find('.lb-prev, .lb-next').css('opacity', '1');
}
this.$lightbox.find('.lb-prev, .lb-next').show();
}else{
if(this.currentImageIndex > 0){
this.$lightbox.find('.lb-prev').show();
if(alwaysShowNav){
this.$lightbox.find('.lb-prev').css('opacity', '1');
}}
if(this.currentImageIndex < this.album.length - 1){
this.$lightbox.find('.lb-next').show();
if(alwaysShowNav){
this.$lightbox.find('.lb-next').css('opacity', '1');
}}
}}
};
Lightbox.prototype.updateDetails=function(){
var self=this;
if(typeof this.album[this.currentImageIndex].title!=='undefined' &&
this.album[this.currentImageIndex].title!==''){
var $caption=this.$lightbox.find('.lb-caption');
if(this.options.sanitizeTitle){
$caption.text(this.album[this.currentImageIndex].title);
}else{
$caption.html(this.album[this.currentImageIndex].title);
}
$caption.fadeIn('fast');
}
if(this.album.length > 1&&this.options.showImageNumberLabel){
var labelText=this.imageCountLabel(this.currentImageIndex + 1, this.album.length);
this.$lightbox.find('.lb-number').text(labelText).fadeIn('fast');
}else{
this.$lightbox.find('.lb-number').hide();
}
this.$outerContainer.removeClass('animating');
this.$lightbox.find('.lb-dataContainer').fadeIn(this.options.resizeDuration, function(){
return self.sizeOverlay();
});
};
Lightbox.prototype.preloadNeighboringImages=function(){
if(this.album.length > this.currentImageIndex + 1){
var preloadNext=new Image();
preloadNext.src=this.album[this.currentImageIndex + 1].link;
}
if(this.currentImageIndex > 0){
var preloadPrev=new Image();
preloadPrev.src=this.album[this.currentImageIndex - 1].link;
}};
Lightbox.prototype.enableKeyboardNav=function(){
this.$lightbox.on('keyup.keyboard', $.proxy(this.keyboardAction, this));
this.$overlay.on('keyup.keyboard', $.proxy(this.keyboardAction, this));
};
Lightbox.prototype.disableKeyboardNav=function(){
this.$lightbox.off('.keyboard');
this.$overlay.off('.keyboard');
};
Lightbox.prototype.keyboardAction=function(event){
var KEYCODE_ESC=27;
var KEYCODE_LEFTARROW=37;
var KEYCODE_RIGHTARROW=39;
var keycode=event.keyCode;
if(keycode===KEYCODE_ESC){
event.stopPropagation();
this.end();
}else if(keycode===KEYCODE_LEFTARROW){
if(this.currentImageIndex!==0){
this.changeImage(this.currentImageIndex - 1);
}else if(this.options.wrapAround&&this.album.length > 1){
this.changeImage(this.album.length - 1);
}}else if(keycode===KEYCODE_RIGHTARROW){
if(this.currentImageIndex!==this.album.length - 1){
this.changeImage(this.currentImageIndex + 1);
}else if(this.options.wrapAround&&this.album.length > 1){
this.changeImage(0);
}}
};
Lightbox.prototype.end=function(){
this.disableKeyboardNav();
$(window).off('resize', this.sizeOverlay);
this.$lightbox.fadeOut(this.options.fadeDuration);
this.$overlay.fadeOut(this.options.fadeDuration);
if(this.options.disableScrolling){
$('body').removeClass('lb-disable-scrolling');
}};
return new Lightbox();
}));
(function(modules){
var installedModules={};
function __webpack_require__(moduleId){
if(installedModules[moduleId]){
return installedModules[moduleId].exports;
}
var module=installedModules[moduleId]={
i: moduleId,
l: false,
exports: {}
};
modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
module.l=true;
return module.exports;
}
__webpack_require__.m=modules;
__webpack_require__.c=installedModules;
__webpack_require__.d=function(exports, name, getter){
if(!__webpack_require__.o(exports, name)){
Object.defineProperty(exports, name, {
configurable: false,
enumerable: true,
get: getter
});
}
};
__webpack_require__.n=function(module){
var getter=module&&module.__esModule ?
function getDefault(){ return module['default']; } :
function getModuleExports(){ return module; };
__webpack_require__.d(getter, 'a', getter);
return getter;
};
__webpack_require__.o=function(object, property){ return Object.prototype.hasOwnProperty.call(object, property); };
__webpack_require__.p="";
return __webpack_require__(__webpack_require__.s=1);
})
([
(function(module, exports){
module.exports=jQuery;
}),
(function(module, exports, __webpack_require__){
module.exports=__webpack_require__(2);
}),
(function(module, exports, __webpack_require__){
"use strict";
var _jquery=__webpack_require__(0);
var _jquery2=_interopRequireDefault(_jquery);
var _whatInput=__webpack_require__(3);
var _whatInput2=_interopRequireDefault(_whatInput);
var _foundationSites=__webpack_require__(4);
var _foundationSites2=_interopRequireDefault(_foundationSites);
function _interopRequireDefault(obj){ return obj&&obj.__esModule ? obj:{ default: obj };}
window.$=_jquery2.default;
(0, _jquery2.default)(document).foundation();
}),
(function(module, exports, __webpack_require__){
(function webpackUniversalModuleDefinition(root, factory){
if(true)
module.exports=factory();
else if(typeof define==='function'&&define.amd)
define("whatInput", [], factory);
else if(typeof exports==='object')
exports["whatInput"]=factory();
else
root["whatInput"]=factory();
})(this, function(){
return  (function(modules){
var installedModules={};
function __webpack_require__(moduleId){
if(installedModules[moduleId])
return installedModules[moduleId].exports;
var module=installedModules[moduleId]={
exports: {},
id: moduleId,
loaded: false
};
modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
module.loaded=true;
return module.exports;
}
__webpack_require__.m=modules;
__webpack_require__.c=installedModules;
__webpack_require__.p="";
return __webpack_require__(0);
})
([
function(module, exports){
'use strict';
module.exports=function (){
var currentInput='initial';
var currentIntent=null;
var doc=document.documentElement;
var formInputs=['input', 'select', 'textarea'];
var functionList=[];
var ignoreMap=[16,
17,
18,
91,
93 
];
var changeIntentMap=[9 
];
var inputMap={
keydown: 'keyboard',
keyup: 'keyboard',
mousedown: 'mouse',
mousemove: 'mouse',
MSPointerDown: 'pointer',
MSPointerMove: 'pointer',
pointerdown: 'pointer',
pointermove: 'pointer',
touchstart: 'touch'
};
var inputTypes=[];
var isBuffering=false;
var isScrolling=false;
var mousePos={
x: null,
y: null
};
var pointerMap={
2: 'touch',
3: 'touch',
4: 'mouse'
};
var supportsPassive=false;
try {
var opts=Object.defineProperty({}, 'passive', {
get: function get(){
supportsPassive=true;
}});
window.addEventListener('test', null, opts);
} catch (e){}
var setUp=function setUp(){
inputMap[detectWheel()]='mouse';
addListeners();
setInput();
};
var addListeners=function addListeners(){
var options=supportsPassive ? { passive: true }:false;
if(window.PointerEvent){
doc.addEventListener('pointerdown', updateInput);
doc.addEventListener('pointermove', setIntent);
}else if(window.MSPointerEvent){
doc.addEventListener('MSPointerDown', updateInput);
doc.addEventListener('MSPointerMove', setIntent);
}else{
doc.addEventListener('mousedown', updateInput);
doc.addEventListener('mousemove', setIntent);
if('ontouchstart' in window){
doc.addEventListener('touchstart', touchBuffer, options);
doc.addEventListener('touchend', touchBuffer);
}}
doc.addEventListener(detectWheel(), setIntent, options);
doc.addEventListener('keydown', updateInput);
doc.addEventListener('keyup', updateInput);
};
var updateInput=function updateInput(event){
if(!isBuffering){
var eventKey=event.which;
var value=inputMap[event.type];
if(value==='pointer') value=pointerType(event);
if(currentInput!==value||currentIntent!==value){
var activeElem=document.activeElement;
var activeInput=false;
var notFormInput=activeElem&&activeElem.nodeName&&formInputs.indexOf(activeElem.nodeName.toLowerCase())===-1;
if(notFormInput||changeIntentMap.indexOf(eventKey)!==-1){
activeInput=true;
}
if(value==='touch' ||
value==='mouse' ||
value==='keyboard'&&eventKey&&activeInput&&ignoreMap.indexOf(eventKey)===-1){
currentInput=currentIntent=value;
setInput();
}}
}};
var setInput=function setInput(){
doc.setAttribute('data-whatinput', currentInput);
doc.setAttribute('data-whatintent', currentInput);
if(inputTypes.indexOf(currentInput)===-1){
inputTypes.push(currentInput);
doc.className +=' whatinput-types-' + currentInput;
}
fireFunctions('input');
};
var setIntent=function setIntent(event){
if(mousePos['x']!==event.screenX||mousePos['y']!==event.screenY){
isScrolling=false;
mousePos['x']=event.screenX;
mousePos['y']=event.screenY;
}else{
isScrolling=true;
}
if(!isBuffering&&!isScrolling){
var value=inputMap[event.type];
if(value==='pointer') value=pointerType(event);
if(currentIntent!==value){
currentIntent=value;
doc.setAttribute('data-whatintent', currentIntent);
fireFunctions('intent');
}}
};
var touchBuffer=function touchBuffer(event){
if(event.type==='touchstart'){
isBuffering=false;
updateInput(event);
}else{
isBuffering=true;
}};
var fireFunctions=function fireFunctions(type){
for (var i=0, len=functionList.length; i < len; i++){
if(functionList[i].type===type){
functionList[i].fn.call(undefined, currentIntent);
}}
};
var pointerType=function pointerType(event){
if(typeof event.pointerType==='number'){
return pointerMap[event.pointerType];
}else{
return event.pointerType==='pen' ? 'touch':event.pointerType;
}};
var detectWheel=function detectWheel(){
var wheelType=void 0;
if('onwheel' in document.createElement('div')){
wheelType='wheel';
}else{
wheelType=document.onmousewheel!==undefined ? 'mousewheel':'DOMMouseScroll';
}
return wheelType;
};
var objPos=function objPos(match){
for (var i=0, len=functionList.length; i < len; i++){
if(functionList[i].fn===match){
return i;
}}
};
if('addEventListener' in window&&Array.prototype.indexOf){
setUp();
}
return {
ask: function ask(opt){
return opt==='loose' ? currentIntent:currentInput;
},
types: function types(){
return inputTypes;
},
ignoreKeys: function ignoreKeys(arr){
ignoreMap=arr;
},
registerOnChange: function registerOnChange(fn, eventType){
functionList.push({
fn: fn,
type: eventType||'input'
});
},
unRegisterOnChange: function unRegisterOnChange(fn){
var position=objPos(fn);
if(position){
functionList.splice(position, 1);
}}
};}();
}
])
});
;
}),
(function(module, exports, __webpack_require__){
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.Foundation=exports.ResponsiveAccordionTabs=exports.Tooltip=exports.Toggler=exports.Tabs=exports.Sticky=exports.SmoothScroll=exports.Slider=exports.Reveal=exports.ResponsiveToggle=exports.ResponsiveMenu=exports.Orbit=exports.OffCanvas=exports.Magellan=exports.Interchange=exports.Equalizer=exports.DropdownMenu=exports.Dropdown=exports.Drilldown=exports.AccordionMenu=exports.Accordion=exports.Abide=exports.Triggers=exports.Touch=exports.Timer=exports.Nest=exports.Move=exports.Motion=exports.MediaQuery=exports.Keyboard=exports.onImagesLoaded=exports.Box=exports.Core=exports.CoreUtils=undefined;
var _typeof2=typeof Symbol==="function"&&typeof Symbol.iterator==="symbol" ? function (obj){ return typeof obj; }:function (obj){ return obj&&typeof Symbol==="function"&&obj.constructor===Symbol&&obj!==Symbol.prototype ? "symbol":typeof obj; };
var _jquery=__webpack_require__(0);
var _jquery2=_interopRequireDefault(_jquery);
function _interopRequireDefault(obj){ return obj&&obj.__esModule ? obj:{ default: obj };}
function _typeof(obj){
if(typeof Symbol==="function"&&_typeof2(Symbol.iterator)==="symbol"){
_typeof=function _typeof(obj){
return typeof obj==="undefined" ? "undefined":_typeof2(obj);
};}else{
_typeof=function _typeof(obj){
return obj&&typeof Symbol==="function"&&obj.constructor===Symbol&&obj!==Symbol.prototype ? "symbol":typeof obj==="undefined" ? "undefined":_typeof2(obj);
};}
return _typeof(obj);
}
function _classCallCheck(instance, Constructor){
if(!(instance instanceof Constructor)){
throw new TypeError("Cannot call a class as a function");
}}
function _defineProperties(target, props){
for (var i=0; i < props.length; i++){
var descriptor=props[i];
descriptor.enumerable=descriptor.enumerable||false;
descriptor.configurable=true;
if("value" in descriptor) descriptor.writable=true;
Object.defineProperty(target, descriptor.key, descriptor);
}}
function _createClass(Constructor, protoProps, staticProps){
if(protoProps) _defineProperties(Constructor.prototype, protoProps);
if(staticProps) _defineProperties(Constructor, staticProps);
return Constructor;
}
function _inherits(subClass, superClass){
if(typeof superClass!=="function"&&superClass!==null){
throw new TypeError("Super expression must either be null or a function");
}
subClass.prototype=Object.create(superClass&&superClass.prototype, {
constructor: {
value: subClass,
writable: true,
configurable: true
}});
if(superClass) _setPrototypeOf(subClass, superClass);
}
function _getPrototypeOf(o){
_getPrototypeOf=Object.setPrototypeOf ? Object.getPrototypeOf:function _getPrototypeOf(o){
return o.__proto__||Object.getPrototypeOf(o);
};
return _getPrototypeOf(o);
}
function _setPrototypeOf(o, p){
_setPrototypeOf=Object.setPrototypeOf||function _setPrototypeOf(o, p){
o.__proto__=p;
return o;
};
return _setPrototypeOf(o, p);
}
function _assertThisInitialized(self){
if(self===void 0){
throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
}
return self;
}
function _possibleConstructorReturn(self, call){
if(call&&((typeof call==="undefined" ? "undefined":_typeof2(call))==="object"||typeof call==="function")){
return call;
}
return _assertThisInitialized(self);
}
function _superPropBase(object, property){
while (!Object.prototype.hasOwnProperty.call(object, property)){
object=_getPrototypeOf(object);
if(object===null) break;
}
return object;
}
function _get(target, property, receiver){
if(typeof Reflect!=="undefined"&&Reflect.get){
_get=Reflect.get;
}else{
_get=function _get(target, property, receiver){
var base=_superPropBase(target, property);
if(!base) return;
var desc=Object.getOwnPropertyDescriptor(base, property);
if(desc.get){
return desc.get.call(receiver);
}
return desc.value;
};}
return _get(target, property, receiver||target);
}
function rtl(){
return (0, _jquery2.default)('html').attr('dir')==='rtl';
}
function GetYoDigits(length, namespace){
length=length||6;
return Math.round(Math.pow(36, length + 1) - Math.random() * Math.pow(36, length)).toString(36).slice(1) + (namespace ? "-".concat(namespace):'');
}
function RegExpEscape(str){
return str.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, '\\$&');
}
function transitionend($elem){
var transitions={
'transition': 'transitionend',
'WebkitTransition': 'webkitTransitionEnd',
'MozTransition': 'transitionend',
'OTransition': 'otransitionend'
};
var elem=document.createElement('div'),
end;
for (var t in transitions){
if(typeof elem.style[t]!=='undefined'){
end=transitions[t];
}}
if(end){
return end;
}else{
end=setTimeout(function (){
$elem.triggerHandler('transitionend', [$elem]);
}, 1);
return 'transitionend';
}}
function onLoad($elem, handler){
var didLoad=document.readyState==='complete';
var eventType=(didLoad ? '_didLoad':'load') + '.zf.util.onLoad';
var cb=function cb(){
return $elem.triggerHandler(eventType);
};
if($elem){
if(handler) $elem.one(eventType, handler);
if(didLoad) setTimeout(cb);else (0, _jquery2.default)(window).one('load', cb);
}
return eventType;
}
function ignoreMousedisappear(handler){
var _ref=arguments.length > 1&&arguments[1]!==undefined ? arguments[1]:{},
_ref$ignoreLeaveWindo=_ref.ignoreLeaveWindow,
ignoreLeaveWindow=_ref$ignoreLeaveWindo===void 0 ? false:_ref$ignoreLeaveWindo,
_ref$ignoreReappear=_ref.ignoreReappear,
ignoreReappear=_ref$ignoreReappear===void 0 ? false:_ref$ignoreReappear;
return function leaveEventHandler(eLeave){
for (var _len=arguments.length, rest=new Array(_len > 1 ? _len - 1:0), _key=1; _key < _len; _key++){
rest[_key - 1]=arguments[_key];
}
var callback=handler.bind.apply(handler, [this, eLeave].concat(rest));
if(eLeave.relatedTarget!==null){
return callback();
}
setTimeout(function leaveEventDebouncer(){
if(!ignoreLeaveWindow&&document.hasFocus&&!document.hasFocus()){
return callback();
}
if(!ignoreReappear){
(0, _jquery2.default)(document).one('mouseenter', function reenterEventHandler(eReenter){
if(!(0, _jquery2.default)(eLeave.currentTarget).has(eReenter.target).length){
eLeave.relatedTarget=eReenter.target;
callback();
}});
}}, 0);
};}
var foundation_core_utils=Object.freeze({
rtl: rtl,
GetYoDigits: GetYoDigits,
RegExpEscape: RegExpEscape,
transitionend: transitionend,
onLoad: onLoad,
ignoreMousedisappear: ignoreMousedisappear
});
window.matchMedia||(window.matchMedia=function (){
var styleMedia=window.styleMedia||window.media;
if(!styleMedia){
var style=document.createElement('style'),
script=document.getElementsByTagName('script')[0],
info=null;
style.type='text/css';
style.id='matchmediajs-test';
if(!script){
document.head.appendChild(style);
}else{
script.parentNode.insertBefore(style, script);
} // 'style.currentStyle' is used by IE <=8 and 'window.getComputedStyle' for all other browsers
info='getComputedStyle' in window&&window.getComputedStyle(style, null)||style.currentStyle;
styleMedia={
matchMedium: function matchMedium(media){
var text='@media ' + media + '{ #matchmediajs-test { width: 1px; }}'; // 'style.styleSheet' is used by IE <=8 and 'style.textContent' for all other browsers
if(style.styleSheet){
style.styleSheet.cssText=text;
}else{
style.textContent=text;
}
return info.width==='1px';
}};}
return function (media){
return {
matches: styleMedia.matchMedium(media||'all'),
media: media||'all'
};};
}());
var MediaQuery={
queries: [],
current: '',
_init: function _init(){
var self=this;
var $meta=(0, _jquery2.default)('meta.foundation-mq');
if(!$meta.length){
(0, _jquery2.default)('<meta class="foundation-mq">').appendTo(document.head);
}
var extractedStyles=(0, _jquery2.default)('.foundation-mq').css('font-family');
var namedQueries;
namedQueries=parseStyleToObject(extractedStyles);
for (var key in namedQueries){
if(namedQueries.hasOwnProperty(key)){
self.queries.push({
name: key,
value: "only screen and (min-width: ".concat(namedQueries[key], ")")
});
}}
this.current=this._getCurrentSize();
this._watcher();
},
atLeast: function atLeast(size){
var query=this.get(size);
if(query){
return window.matchMedia(query).matches;
}
return false;
},
is: function is(size){
size=size.trim().split(' ');
if(size.length > 1&&size[1]==='only'){
if(size[0]===this._getCurrentSize()) return true;
}else{
return this.atLeast(size[0]);
}
return false;
},
get: function get(size){
for (var i in this.queries){
if(this.queries.hasOwnProperty(i)){
var query=this.queries[i];
if(size===query.name) return query.value;
}}
return null;
},
_getCurrentSize: function _getCurrentSize(){
var matched;
for (var i=0; i < this.queries.length; i++){
var query=this.queries[i];
if(window.matchMedia(query.value).matches){
matched=query;
}}
if(_typeof(matched)==='object'){
return matched.name;
}else{
return matched;
}},
_watcher: function _watcher(){
var _this=this;
(0, _jquery2.default)(window).off('resize.zf.mediaquery').on('resize.zf.mediaquery', function (){
var newSize=_this._getCurrentSize(),
currentSize=_this.current;
if(newSize!==currentSize){
_this.current=newSize;
(0, _jquery2.default)(window).trigger('changed.zf.mediaquery', [newSize, currentSize]);
}});
}}; // Thank you: https://github.com/sindresorhus/query-string
function parseStyleToObject(str){
var styleObject={};
if(typeof str!=='string'){
return styleObject;
}
str=str.trim().slice(1, -1);
if(!str){
return styleObject;
}
styleObject=str.split('&').reduce(function (ret, param){
var parts=param.replace(/\+/g, ' ').split('=');
var key=parts[0];
var val=parts[1];
key=decodeURIComponent(key);
val=typeof val==='undefined' ? null:decodeURIComponent(val);
if(!ret.hasOwnProperty(key)){
ret[key]=val;
}else if(Array.isArray(ret[key])){
ret[key].push(val);
}else{
ret[key]=[ret[key], val];
}
return ret;
}, {});
return styleObject;
}
var FOUNDATION_VERSION='6.5.1';
var Foundation={
version: FOUNDATION_VERSION,
_plugins: {},
_uuids: [],
plugin: function plugin(_plugin, name){
var className=name||functionName(_plugin);
var attrName=hyphenate(className);
this._plugins[attrName]=this[className]=_plugin;
},
registerPlugin: function registerPlugin(plugin, name){
var pluginName=name ? hyphenate(name):functionName(plugin.constructor).toLowerCase();
plugin.uuid=GetYoDigits(6, pluginName);
if(!plugin.$element.attr("data-".concat(pluginName))){
plugin.$element.attr("data-".concat(pluginName), plugin.uuid);
}
if(!plugin.$element.data('zfPlugin')){
plugin.$element.data('zfPlugin', plugin);
}
plugin.$element.trigger("init.zf.".concat(pluginName));
this._uuids.push(plugin.uuid);
return;
},
unregisterPlugin: function unregisterPlugin(plugin){
var pluginName=hyphenate(functionName(plugin.$element.data('zfPlugin').constructor));
this._uuids.splice(this._uuids.indexOf(plugin.uuid), 1);
plugin.$element.removeAttr("data-".concat(pluginName)).removeData('zfPlugin')
.trigger("destroyed.zf.".concat(pluginName));
for (var prop in plugin){
plugin[prop]=null;
}
return;
},
reInit: function reInit(plugins){
var isJQ=plugins instanceof _jquery2.default;
try {
if(isJQ){
plugins.each(function (){
(0, _jquery2.default)(this).data('zfPlugin')._init();
});
}else{
var type=_typeof(plugins),
_this=this,
fns={
'object': function object(plgs){
plgs.forEach(function (p){
p=hyphenate(p);
(0, _jquery2.default)('[data-' + p + ']').foundation('_init');
});
},
'string': function string(){
plugins=hyphenate(plugins);
(0, _jquery2.default)('[data-' + plugins + ']').foundation('_init');
},
'undefined': function undefined(){
this['object'](Object.keys(_this._plugins));
}};
fns[type](plugins);
}} catch (err){
console.error(err);
} finally {
return plugins;
}},
reflow: function reflow(elem, plugins){
if(typeof plugins==='undefined'){
plugins=Object.keys(this._plugins);
}
else if(typeof plugins==='string'){
plugins=[plugins];
}
var _this=this;
_jquery2.default.each(plugins, function (i, name){
var plugin=_this._plugins[name];
var $elem=(0, _jquery2.default)(elem).find('[data-' + name + ']').addBack('[data-' + name + ']');
$elem.each(function (){
var $el=(0, _jquery2.default)(this),
opts={};
if($el.data('zfPlugin')){
console.warn("Tried to initialize " + name + " on an element that already has a Foundation plugin.");
return;
}
if($el.attr('data-options')){
var thing=$el.attr('data-options').split(';').forEach(function (e, i){
var opt=e.split(':').map(function (el){
return el.trim();
});
if(opt[0]) opts[opt[0]]=parseValue(opt[1]);
});
}
try {
$el.data('zfPlugin', new plugin((0, _jquery2.default)(this), opts));
} catch (er){
console.error(er);
} finally {
return;
}});
});
},
getFnName: functionName,
addToJquery: function addToJquery($$$1){
var foundation=function foundation(method){
var type=_typeof(method),
$noJS=$$$1('.no-js');
if($noJS.length){
$noJS.removeClass('no-js');
}
if(type==='undefined'){
MediaQuery._init();
Foundation.reflow(this);
}else if(type==='string'){
var args=Array.prototype.slice.call(arguments, 1);
var plugClass=this.data('zfPlugin');
if(typeof plugClass!=='undefined'&&typeof plugClass[method]!=='undefined'){
if(this.length===1){
plugClass[method].apply(plugClass, args);
}else{
this.each(function (i, el){
plugClass[method].apply($$$1(el).data('zfPlugin'), args);
});
}}else{
throw new ReferenceError("We're sorry, '" + method + "' is not an available method for " + (plugClass ? functionName(plugClass):'this element') + '.');
}}else{
throw new TypeError("We're sorry, ".concat(type, " is not a valid parameter. You must use a string representing the method you wish to invoke."));
}
return this;
};
$$$1.fn.foundation=foundation;
return $$$1;
}};
Foundation.util={
throttle: function throttle(func, delay){
var timer=null;
return function (){
var context=this,
args=arguments;
if(timer===null){
timer=setTimeout(function (){
func.apply(context, args);
timer=null;
}, delay);
}};}};
window.Foundation=Foundation;
(function (){
if(!Date.now||!window.Date.now) window.Date.now=Date.now=function (){
return new Date().getTime();
};
var vendors=['webkit', 'moz'];
for (var i=0; i < vendors.length&&!window.requestAnimationFrame; ++i){
var vp=vendors[i];
window.requestAnimationFrame=window[vp + 'RequestAnimationFrame'];
window.cancelAnimationFrame=window[vp + 'CancelAnimationFrame']||window[vp + 'CancelRequestAnimationFrame'];
}
if(/iP(ad|hone|od).*OS 6/.test(window.navigator.userAgent)||!window.requestAnimationFrame||!window.cancelAnimationFrame){
var lastTime=0;
window.requestAnimationFrame=function (callback){
var now=Date.now();
var nextTime=Math.max(lastTime + 16, now);
return setTimeout(function (){
callback(lastTime=nextTime);
}, nextTime - now);
};
window.cancelAnimationFrame=clearTimeout;
}
if(!window.performance||!window.performance.now){
window.performance={
start: Date.now(),
now: function now(){
return Date.now() - this.start;
}};}})();
if(!Function.prototype.bind){
Function.prototype.bind=function (oThis){
if(typeof this!=='function'){
throw new TypeError('Function.prototype.bind - what is trying to be bound is not callable');
}
var aArgs=Array.prototype.slice.call(arguments, 1),
fToBind=this,
fNOP=function fNOP(){},
fBound=function fBound(){
return fToBind.apply(this instanceof fNOP ? this:oThis, aArgs.concat(Array.prototype.slice.call(arguments)));
};
if(this.prototype){
fNOP.prototype=this.prototype;
}
fBound.prototype=new fNOP();
return fBound;
};}
function functionName(fn){
if(typeof Function.prototype.name==='undefined'){
var funcNameRegex=/function\s([^(]{1,})\(/;
var results=funcNameRegex.exec(fn.toString());
return results&&results.length > 1 ? results[1].trim():"";
}else if(typeof fn.prototype==='undefined'){
return fn.constructor.name;
}else{
return fn.prototype.constructor.name;
}}
function parseValue(str){
if('true'===str) return true;else if('false'===str) return false;else if(!isNaN(str * 1)) return parseFloat(str);
return str;
}
function hyphenate(str){
return str.replace(/([a-z])([A-Z])/g, '$1-$2').toLowerCase();
}
var Box={
ImNotTouchingYou: ImNotTouchingYou,
OverlapArea: OverlapArea,
GetDimensions: GetDimensions,
GetOffsets: GetOffsets,
GetExplicitOffsets: GetExplicitOffsets
};
function ImNotTouchingYou(element, parent, lrOnly, tbOnly, ignoreBottom){
return OverlapArea(element, parent, lrOnly, tbOnly, ignoreBottom)===0;
}
function OverlapArea(element, parent, lrOnly, tbOnly, ignoreBottom){
var eleDims=GetDimensions(element),
topOver,
bottomOver,
leftOver,
rightOver;
if(parent){
var parDims=GetDimensions(parent);
bottomOver=parDims.height + parDims.offset.top - (eleDims.offset.top + eleDims.height);
topOver=eleDims.offset.top - parDims.offset.top;
leftOver=eleDims.offset.left - parDims.offset.left;
rightOver=parDims.width + parDims.offset.left - (eleDims.offset.left + eleDims.width);
}else{
bottomOver=eleDims.windowDims.height + eleDims.windowDims.offset.top - (eleDims.offset.top + eleDims.height);
topOver=eleDims.offset.top - eleDims.windowDims.offset.top;
leftOver=eleDims.offset.left - eleDims.windowDims.offset.left;
rightOver=eleDims.windowDims.width - (eleDims.offset.left + eleDims.width);
}
bottomOver=ignoreBottom ? 0:Math.min(bottomOver, 0);
topOver=Math.min(topOver, 0);
leftOver=Math.min(leftOver, 0);
rightOver=Math.min(rightOver, 0);
if(lrOnly){
return leftOver + rightOver;
}
if(tbOnly){
return topOver + bottomOver;
}
return Math.sqrt(topOver * topOver + bottomOver * bottomOver + leftOver * leftOver + rightOver * rightOver);
}
function GetDimensions(elem){
elem=elem.length ? elem[0]:elem;
if(elem===window||elem===document){
throw new Error("I'm sorry, Dave. I'm afraid I can't do that.");
}
var rect=elem.getBoundingClientRect(),
parRect=elem.parentNode.getBoundingClientRect(),
winRect=document.body.getBoundingClientRect(),
winY=window.pageYOffset,
winX=window.pageXOffset;
return {
width: rect.width,
height: rect.height,
offset: {
top: rect.top + winY,
left: rect.left + winX
},
parentDims: {
width: parRect.width,
height: parRect.height,
offset: {
top: parRect.top + winY,
left: parRect.left + winX
}},
windowDims: {
width: winRect.width,
height: winRect.height,
offset: {
top: winY,
left: winX
}}
};}
function GetOffsets(element, anchor, position, vOffset, hOffset, isOverflow){
console.log("NOTE: GetOffsets is deprecated in favor of GetExplicitOffsets and will be removed in 6.5");
switch (position){
case 'top':
return rtl() ? GetExplicitOffsets(element, anchor, 'top', 'left', vOffset, hOffset, isOverflow):GetExplicitOffsets(element, anchor, 'top', 'right', vOffset, hOffset, isOverflow);
case 'bottom':
return rtl() ? GetExplicitOffsets(element, anchor, 'bottom', 'left', vOffset, hOffset, isOverflow):GetExplicitOffsets(element, anchor, 'bottom', 'right', vOffset, hOffset, isOverflow);
case 'center top':
return GetExplicitOffsets(element, anchor, 'top', 'center', vOffset, hOffset, isOverflow);
case 'center bottom':
return GetExplicitOffsets(element, anchor, 'bottom', 'center', vOffset, hOffset, isOverflow);
case 'center left':
return GetExplicitOffsets(element, anchor, 'left', 'center', vOffset, hOffset, isOverflow);
case 'center right':
return GetExplicitOffsets(element, anchor, 'right', 'center', vOffset, hOffset, isOverflow);
case 'left bottom':
return GetExplicitOffsets(element, anchor, 'bottom', 'left', vOffset, hOffset, isOverflow);
case 'right bottom':
return GetExplicitOffsets(element, anchor, 'bottom', 'right', vOffset, hOffset, isOverflow);
case 'center':
return {
left: $eleDims.windowDims.offset.left + $eleDims.windowDims.width / 2 - $eleDims.width / 2 + hOffset,
top: $eleDims.windowDims.offset.top + $eleDims.windowDims.height / 2 - ($eleDims.height / 2 + vOffset)
};
case 'reveal':
return {
left: ($eleDims.windowDims.width - $eleDims.width) / 2 + hOffset,
top: $eleDims.windowDims.offset.top + vOffset
};
case 'reveal full':
return {
left: $eleDims.windowDims.offset.left,
top: $eleDims.windowDims.offset.top
};
break;
default:
return {
left: rtl() ? $anchorDims.offset.left - $eleDims.width + $anchorDims.width - hOffset:$anchorDims.offset.left + hOffset,
top: $anchorDims.offset.top + $anchorDims.height + vOffset
};}}
function GetExplicitOffsets(element, anchor, position, alignment, vOffset, hOffset, isOverflow){
var $eleDims=GetDimensions(element),
$anchorDims=anchor ? GetDimensions(anchor):null;
var topVal, leftVal;
switch (position){
case 'top':
topVal=$anchorDims.offset.top - ($eleDims.height + vOffset);
break;
case 'bottom':
topVal=$anchorDims.offset.top + $anchorDims.height + vOffset;
break;
case 'left':
leftVal=$anchorDims.offset.left - ($eleDims.width + hOffset);
break;
case 'right':
leftVal=$anchorDims.offset.left + $anchorDims.width + hOffset;
break;
}
switch (position){
case 'top':
case 'bottom':
switch (alignment){
case 'left':
leftVal=$anchorDims.offset.left + hOffset;
break;
case 'right':
leftVal=$anchorDims.offset.left - $eleDims.width + $anchorDims.width - hOffset;
break;
case 'center':
leftVal=isOverflow ? hOffset:$anchorDims.offset.left + $anchorDims.width / 2 - $eleDims.width / 2 + hOffset;
break;
}
break;
case 'right':
case 'left':
switch (alignment){
case 'bottom':
topVal=$anchorDims.offset.top - vOffset + $anchorDims.height - $eleDims.height;
break;
case 'top':
topVal=$anchorDims.offset.top + vOffset;
break;
case 'center':
topVal=$anchorDims.offset.top + vOffset + $anchorDims.height / 2 - $eleDims.height / 2;
break;
}
break;
}
return {
top: topVal,
left: leftVal
};}
function onImagesLoaded(images, callback){
var unloaded=images.length;
if(unloaded===0){
callback();
}
images.each(function (){
if(this.complete&&typeof this.naturalWidth!=='undefined'){
singleImageLoaded();
}else{
var image=new Image();
var events="load.zf.images error.zf.images";
(0, _jquery2.default)(image).one(events, function me(event){
(0, _jquery2.default)(this).off(events, me);
singleImageLoaded();
});
image.src=(0, _jquery2.default)(this).attr('src');
}});
function singleImageLoaded(){
unloaded--;
if(unloaded===0){
callback();
}}
}
var keyCodes={
9: 'TAB',
13: 'ENTER',
27: 'ESCAPE',
32: 'SPACE',
35: 'END',
36: 'HOME',
37: 'ARROW_LEFT',
38: 'ARROW_UP',
39: 'ARROW_RIGHT',
40: 'ARROW_DOWN'
};
var commands={};
function findFocusable($element){
if(!$element){
return false;
}
return $element.find('a[href], area[href], input:not([disabled]), select:not([disabled]), textarea:not([disabled]), button:not([disabled]), iframe, object, embed, *[tabindex], *[contenteditable]').filter(function (){
if(!(0, _jquery2.default)(this).is(':visible')||(0, _jquery2.default)(this).attr('tabindex') < 0){
return false;
}
return true;
});
}
function parseKey(event){
var key=keyCodes[event.which||event.keyCode]||String.fromCharCode(event.which).toUpperCase();
key=key.replace(/\W+/, '');
if(event.shiftKey) key="SHIFT_".concat(key);
if(event.ctrlKey) key="CTRL_".concat(key);
if(event.altKey) key="ALT_".concat(key);
key=key.replace(/_$/, '');
return key;
}
var Keyboard={
keys: getKeyCodes(keyCodes),
parseKey: parseKey,
handleKey: function handleKey(event, component, functions){
var commandList=commands[component],
keyCode=this.parseKey(event),
cmds,
command,
fn;
if(!commandList) return console.warn('Component not defined!');
if(typeof commandList.ltr==='undefined'){
cmds=commandList;
}else{
if(rtl()) cmds=_jquery2.default.extend({}, commandList.ltr, commandList.rtl);else cmds=_jquery2.default.extend({}, commandList.rtl, commandList.ltr);
}
command=cmds[keyCode];
fn=functions[command];
if(fn&&typeof fn==='function'){
var returnValue=fn.apply();
if(functions.handled||typeof functions.handled==='function'){
functions.handled(returnValue);
}}else{
if(functions.unhandled||typeof functions.unhandled==='function'){
functions.unhandled();
}}
},
findFocusable: findFocusable,
register: function register(componentName, cmds){
commands[componentName]=cmds;
},
trapFocus: function trapFocus($element){
var $focusable=findFocusable($element),
$firstFocusable=$focusable.eq(0),
$lastFocusable=$focusable.eq(-1);
$element.on('keydown.zf.trapfocus', function (event){
if(event.target===$lastFocusable[0]&&parseKey(event)==='TAB'){
event.preventDefault();
$firstFocusable.focus();
}else if(event.target===$firstFocusable[0]&&parseKey(event)==='SHIFT_TAB'){
event.preventDefault();
$lastFocusable.focus();
}});
},
releaseFocus: function releaseFocus($element){
$element.off('keydown.zf.trapfocus');
}};
function getKeyCodes(kcs){
var k={};
for (var kc in kcs){
k[kcs[kc]]=kcs[kc];
}
return k;
}
var initClasses=['mui-enter', 'mui-leave'];
var activeClasses=['mui-enter-active', 'mui-leave-active'];
var Motion={
animateIn: function animateIn(element, animation, cb){
animate(true, element, animation, cb);
},
animateOut: function animateOut(element, animation, cb){
animate(false, element, animation, cb);
}};
function Move(duration, elem, fn){
var anim,
prog,
start=null;
if(duration===0){
fn.apply(elem);
elem.trigger('finished.zf.animate', [elem]).triggerHandler('finished.zf.animate', [elem]);
return;
}
function move(ts){
if(!start) start=ts;
prog=ts - start;
fn.apply(elem);
if(prog < duration){
anim=window.requestAnimationFrame(move, elem);
}else{
window.cancelAnimationFrame(anim);
elem.trigger('finished.zf.animate', [elem]).triggerHandler('finished.zf.animate', [elem]);
}}
anim=window.requestAnimationFrame(move);
}
function animate(isIn, element, animation, cb){
element=(0, _jquery2.default)(element).eq(0);
if(!element.length) return;
var initClass=isIn ? initClasses[0]:initClasses[1];
var activeClass=isIn ? activeClasses[0]:activeClasses[1];
reset();
element.addClass(animation).css('transition', 'none');
requestAnimationFrame(function (){
element.addClass(initClass);
if(isIn) element.show();
});
requestAnimationFrame(function (){
element[0].offsetWidth;
element.css('transition', '').addClass(activeClass);
});
element.one(transitionend(element), finish);
function finish(){
if(!isIn) element.hide();
reset();
if(cb) cb.apply(element);
}
function reset(){
element[0].style.transitionDuration=0;
element.removeClass("".concat(initClass, " ").concat(activeClass, " ").concat(animation));
}}
var Nest={
Feather: function Feather(menu){
var type=arguments.length > 1&&arguments[1]!==undefined ? arguments[1]:'zf';
menu.attr('role', 'menubar');
var items=menu.find('li').attr({
'role': 'menuitem'
}),
subMenuClass="is-".concat(type, "-submenu"),
subItemClass="".concat(subMenuClass, "-item"),
hasSubClass="is-".concat(type, "-submenu-parent"),
applyAria=type!=='accordion';
items.each(function (){
var $item=(0, _jquery2.default)(this),
$sub=$item.children('ul');
if($sub.length){
$item.addClass(hasSubClass);
$sub.addClass("submenu ".concat(subMenuClass)).attr({
'data-submenu': ''
});
if(applyAria){
$item.attr({
'aria-haspopup': true,
'aria-label': $item.children('a:first').text()
});
if(type==='drilldown'){
$item.attr({
'aria-expanded': false
});
}}
$sub.addClass("submenu ".concat(subMenuClass)).attr({
'data-submenu': '',
'role': 'menubar'
});
if(type==='drilldown'){
$sub.attr({
'aria-hidden': true
});
}}
if($item.parent('[data-submenu]').length){
$item.addClass("is-submenu-item ".concat(subItemClass));
}});
return;
},
Burn: function Burn(menu, type){
var
subMenuClass="is-".concat(type, "-submenu"),
subItemClass="".concat(subMenuClass, "-item"),
hasSubClass="is-".concat(type, "-submenu-parent");
menu.find('>li, > li > ul, .menu, .menu > li, [data-submenu] > li').removeClass("".concat(subMenuClass, " ").concat(subItemClass, " ").concat(hasSubClass, " is-submenu-item submenu is-active")).removeAttr('data-submenu').css('display', '');
}};
function Timer(elem, options, cb){
var _this=this,
duration=options.duration,
nameSpace=Object.keys(elem.data())[0]||'timer',
remain=-1,
start,
timer;
this.isPaused=false;
this.restart=function (){
remain=-1;
clearTimeout(timer);
this.start();
};
this.start=function (){
this.isPaused=false; // if(!elem.data('paused')){ return false; }//maybe implement this sanity check if used for other things.
clearTimeout(timer);
remain=remain <=0 ? duration:remain;
elem.data('paused', false);
start=Date.now();
timer=setTimeout(function (){
if(options.infinite){
_this.restart();
}
if(cb&&typeof cb==='function'){
cb();
}}, remain);
elem.trigger("timerstart.zf.".concat(nameSpace));
};
this.pause=function (){
this.isPaused=true; //if(elem.data('paused')){ return false; }//maybe implement this sanity check if used for other things.
clearTimeout(timer);
elem.data('paused', true);
var end=Date.now();
remain=remain - (end - start);
elem.trigger("timerpaused.zf.".concat(nameSpace));
};}
var Touch={};
var startPosX,
startPosY,
startTime,
elapsedTime,
startEvent,
isMoving=false,
didMoved=false;
function onTouchEnd(e){
this.removeEventListener('touchmove', onTouchMove);
this.removeEventListener('touchend', onTouchEnd);
if(!didMoved){
var tapEvent=_jquery2.default.Event('tap', startEvent||e);
(0, _jquery2.default)(this).trigger(tapEvent);
}
startEvent=null;
isMoving=false;
didMoved=false;
}
function onTouchMove(e){
if(_jquery2.default.spotSwipe.preventDefault){
e.preventDefault();
}
if(isMoving){
var x=e.touches[0].pageX;
var y=e.touches[0].pageY;
var dx=startPosX - x;
var dir;
didMoved=true;
elapsedTime=new Date().getTime() - startTime;
if(Math.abs(dx) >=_jquery2.default.spotSwipe.moveThreshold&&elapsedTime <=_jquery2.default.spotSwipe.timeThreshold){
dir=dx > 0 ? 'left':'right';
}
if(dir){
e.preventDefault();
onTouchEnd.apply(this, arguments);
(0, _jquery2.default)(this).trigger(_jquery2.default.Event('swipe', e), dir).trigger(_jquery2.default.Event("swipe".concat(dir), e));
}}
}
function onTouchStart(e){
if(e.touches.length==1){
startPosX=e.touches[0].pageX;
startPosY=e.touches[0].pageY;
startEvent=e;
isMoving=true;
didMoved=false;
startTime=new Date().getTime();
this.addEventListener('touchmove', onTouchMove, false);
this.addEventListener('touchend', onTouchEnd, false);
}}
function init(){
this.addEventListener&&this.addEventListener('touchstart', onTouchStart, false);
}
var SpotSwipe =
function (){
function SpotSwipe($$$1){
_classCallCheck(this, SpotSwipe);
this.version='1.0.0';
this.enabled='ontouchstart' in document.documentElement;
this.preventDefault=false;
this.moveThreshold=75;
this.timeThreshold=200;
this.$=$$$1;
this._init();
}
_createClass(SpotSwipe, [{
key: "_init",
value: function _init(){
var $$$1=this.$;
$$$1.event.special.swipe={
setup: init
};
$$$1.event.special.tap={
setup: init
};
$$$1.each(['left', 'up', 'down', 'right'], function (){
$$$1.event.special["swipe".concat(this)]={
setup: function setup(){
$$$1(this).on('swipe', $$$1.noop);
}};});
}}]);
return SpotSwipe;
}();
Touch.setupSpotSwipe=function ($$$1){
$$$1.spotSwipe=new SpotSwipe($$$1);
};
Touch.setupTouchHandler=function ($$$1){
$$$1.fn.addTouch=function (){
this.each(function (i, el){
$$$1(el).bind('touchstart touchmove touchend touchcancel', function (event){
handleTouch(event);
});
});
var handleTouch=function handleTouch(event){
var touches=event.changedTouches,
first=touches[0],
eventTypes={
touchstart: 'mousedown',
touchmove: 'mousemove',
touchend: 'mouseup'
},
type=eventTypes[event.type],
simulatedEvent;
if('MouseEvent' in window&&typeof window.MouseEvent==='function'){
simulatedEvent=new window.MouseEvent(type, {
'bubbles': true,
'cancelable': true,
'screenX': first.screenX,
'screenY': first.screenY,
'clientX': first.clientX,
'clientY': first.clientY
});
}else{
simulatedEvent=document.createEvent('MouseEvent');
simulatedEvent.initMouseEvent(type, true, true, window, 1, first.screenX, first.screenY, first.clientX, first.clientY, false, false, false, false, 0
, null);
}
first.target.dispatchEvent(simulatedEvent);
};};
};
Touch.init=function ($$$1){
if(typeof $$$1.spotSwipe==='undefined'){
Touch.setupSpotSwipe($$$1);
Touch.setupTouchHandler($$$1);
}};
var MutationObserver=function (){
var prefixes=['WebKit', 'Moz', 'O', 'Ms', ''];
for (var i=0; i < prefixes.length; i++){
if("".concat(prefixes[i], "MutationObserver") in window){
return window["".concat(prefixes[i], "MutationObserver")];
}}
return false;
}();
var triggers=function triggers(el, type){
el.data(type).split(' ').forEach(function (id){
(0, _jquery2.default)("#".concat(id))[type==='close' ? 'trigger':'triggerHandler']("".concat(type, ".zf.trigger"), [el]);
});
};
var Triggers={
Listeners: {
Basic: {},
Global: {}},
Initializers: {}};
Triggers.Listeners.Basic={
openListener: function openListener(){
triggers((0, _jquery2.default)(this), 'open');
},
closeListener: function closeListener(){
var id=(0, _jquery2.default)(this).data('close');
if(id){
triggers((0, _jquery2.default)(this), 'close');
}else{
(0, _jquery2.default)(this).trigger('close.zf.trigger');
}},
toggleListener: function toggleListener(){
var id=(0, _jquery2.default)(this).data('toggle');
if(id){
triggers((0, _jquery2.default)(this), 'toggle');
}else{
(0, _jquery2.default)(this).trigger('toggle.zf.trigger');
}},
closeableListener: function closeableListener(e){
e.stopPropagation();
var animation=(0, _jquery2.default)(this).data('closable');
if(animation!==''){
Motion.animateOut((0, _jquery2.default)(this), animation, function (){
(0, _jquery2.default)(this).trigger('closed.zf');
});
}else{
(0, _jquery2.default)(this).fadeOut().trigger('closed.zf');
}},
toggleFocusListener: function toggleFocusListener(){
var id=(0, _jquery2.default)(this).data('toggle-focus');
(0, _jquery2.default)("#".concat(id)).triggerHandler('toggle.zf.trigger', [(0, _jquery2.default)(this)]);
}};
Triggers.Initializers.addOpenListener=function ($elem){
$elem.off('click.zf.trigger', Triggers.Listeners.Basic.openListener);
$elem.on('click.zf.trigger', '[data-open]', Triggers.Listeners.Basic.openListener);
};
Triggers.Initializers.addCloseListener=function ($elem){
$elem.off('click.zf.trigger', Triggers.Listeners.Basic.closeListener);
$elem.on('click.zf.trigger', '[data-close]', Triggers.Listeners.Basic.closeListener);
};
Triggers.Initializers.addToggleListener=function ($elem){
$elem.off('click.zf.trigger', Triggers.Listeners.Basic.toggleListener);
$elem.on('click.zf.trigger', '[data-toggle]', Triggers.Listeners.Basic.toggleListener);
};
Triggers.Initializers.addCloseableListener=function ($elem){
$elem.off('close.zf.trigger', Triggers.Listeners.Basic.closeableListener);
$elem.on('close.zf.trigger', '[data-closeable], [data-closable]', Triggers.Listeners.Basic.closeableListener);
};
Triggers.Initializers.addToggleFocusListener=function ($elem){
$elem.off('focus.zf.trigger blur.zf.trigger', Triggers.Listeners.Basic.toggleFocusListener);
$elem.on('focus.zf.trigger blur.zf.trigger', '[data-toggle-focus]', Triggers.Listeners.Basic.toggleFocusListener);
};
Triggers.Listeners.Global={
resizeListener: function resizeListener($nodes){
if(!MutationObserver){
$nodes.each(function (){
(0, _jquery2.default)(this).triggerHandler('resizeme.zf.trigger');
});
}
$nodes.attr('data-events', "resize");
},
scrollListener: function scrollListener($nodes){
if(!MutationObserver){
$nodes.each(function (){
(0, _jquery2.default)(this).triggerHandler('scrollme.zf.trigger');
});
}
$nodes.attr('data-events', "scroll");
},
closeMeListener: function closeMeListener(e, pluginId){
var plugin=e.namespace.split('.')[0];
var plugins=(0, _jquery2.default)("[data-".concat(plugin, "]")).not("[data-yeti-box=\"".concat(pluginId, "\"]"));
plugins.each(function (){
var _this=(0, _jquery2.default)(this);
_this.triggerHandler('close.zf.trigger', [_this]);
});
}};
Triggers.Initializers.addClosemeListener=function (pluginName){
var yetiBoxes=(0, _jquery2.default)('[data-yeti-box]'),
plugNames=['dropdown', 'tooltip', 'reveal'];
if(pluginName){
if(typeof pluginName==='string'){
plugNames.push(pluginName);
}else if(_typeof(pluginName)==='object'&&typeof pluginName[0]==='string') ;else {
console.error('Plugin names must be strings');
}}
if(yetiBoxes.length){
var listeners=plugNames.map(function (name){
return "closeme.zf.".concat(name);
}).join(' ');
(0, _jquery2.default)(window).off(listeners).on(listeners, Triggers.Listeners.Global.closeMeListener);
}};
function debounceGlobalListener(debounce, trigger, listener){
var timer,
args=Array.prototype.slice.call(arguments, 3);
(0, _jquery2.default)(window).off(trigger).on(trigger, function (e){
if(timer){
clearTimeout(timer);
}
timer=setTimeout(function (){
listener.apply(null, args);
}, debounce||10);
});
}
Triggers.Initializers.addResizeListener=function (debounce){
var $nodes=(0, _jquery2.default)('[data-resize]');
if($nodes.length){
debounceGlobalListener(debounce, 'resize.zf.trigger', Triggers.Listeners.Global.resizeListener, $nodes);
}};
Triggers.Initializers.addScrollListener=function (debounce){
var $nodes=(0, _jquery2.default)('[data-scroll]');
if($nodes.length){
debounceGlobalListener(debounce, 'scroll.zf.trigger', Triggers.Listeners.Global.scrollListener, $nodes);
}};
Triggers.Initializers.addMutationEventsListener=function ($elem){
if(!MutationObserver){
return false;
}
var $nodes=$elem.find('[data-resize], [data-scroll], [data-mutate]');
var listeningElementsMutation=function listeningElementsMutation(mutationRecordsList){
var $target=(0, _jquery2.default)(mutationRecordsList[0].target);
switch (mutationRecordsList[0].type){
case "attributes":
if($target.attr("data-events")==="scroll"&&mutationRecordsList[0].attributeName==="data-events"){
$target.triggerHandler('scrollme.zf.trigger', [$target, window.pageYOffset]);
}
if($target.attr("data-events")==="resize"&&mutationRecordsList[0].attributeName==="data-events"){
$target.triggerHandler('resizeme.zf.trigger', [$target]);
}
if(mutationRecordsList[0].attributeName==="style"){
$target.closest("[data-mutate]").attr("data-events", "mutate");
$target.closest("[data-mutate]").triggerHandler('mutateme.zf.trigger', [$target.closest("[data-mutate]")]);
}
break;
case "childList":
$target.closest("[data-mutate]").attr("data-events", "mutate");
$target.closest("[data-mutate]").triggerHandler('mutateme.zf.trigger', [$target.closest("[data-mutate]")]);
break;
default:
return false;
}};
if($nodes.length){
for (var i=0; i <=$nodes.length - 1; i++){
var elementObserver=new MutationObserver(listeningElementsMutation);
elementObserver.observe($nodes[i], {
attributes: true,
childList: true,
characterData: false,
subtree: true,
attributeFilter: ["data-events", "style"]
});
}}
};
Triggers.Initializers.addSimpleListeners=function (){
var $document=(0, _jquery2.default)(document);
Triggers.Initializers.addOpenListener($document);
Triggers.Initializers.addCloseListener($document);
Triggers.Initializers.addToggleListener($document);
Triggers.Initializers.addCloseableListener($document);
Triggers.Initializers.addToggleFocusListener($document);
};
Triggers.Initializers.addGlobalListeners=function (){
var $document=(0, _jquery2.default)(document);
Triggers.Initializers.addMutationEventsListener($document);
Triggers.Initializers.addResizeListener();
Triggers.Initializers.addScrollListener();
Triggers.Initializers.addClosemeListener();
};
Triggers.init=function ($$$1, Foundation){
onLoad($$$1(window), function (){
if($$$1.triggersInitialized!==true){
Triggers.Initializers.addSimpleListeners();
Triggers.Initializers.addGlobalListeners();
$$$1.triggersInitialized=true;
}});
if(Foundation){
Foundation.Triggers=Triggers;
Foundation.IHearYou=Triggers.Initializers.addGlobalListeners;
}};
var Plugin =
function (){
function Plugin(element, options){
_classCallCheck(this, Plugin);
this._setup(element, options);
var pluginName=getPluginName(this);
this.uuid=GetYoDigits(6, pluginName);
if(!this.$element.attr("data-".concat(pluginName))){
this.$element.attr("data-".concat(pluginName), this.uuid);
}
if(!this.$element.data('zfPlugin')){
this.$element.data('zfPlugin', this);
}
this.$element.trigger("init.zf.".concat(pluginName));
}
_createClass(Plugin, [{
key: "destroy",
value: function destroy(){
this._destroy();
var pluginName=getPluginName(this);
this.$element.removeAttr("data-".concat(pluginName)).removeData('zfPlugin')
.trigger("destroyed.zf.".concat(pluginName));
for (var prop in this){
this[prop]=null;
}}
}]);
return Plugin;
}();
function hyphenate$1(str){
return str.replace(/([a-z])([A-Z])/g, '$1-$2').toLowerCase();
}
function getPluginName(obj){
if(typeof obj.constructor.name!=='undefined'){
return hyphenate$1(obj.constructor.name);
}else{
return hyphenate$1(obj.className);
}}
var Abide =
function (_Plugin){
_inherits(Abide, _Plugin);
function Abide(){
_classCallCheck(this, Abide);
return _possibleConstructorReturn(this, _getPrototypeOf(Abide).apply(this, arguments));
}
_createClass(Abide, [{
key: "_setup",
value: function _setup(element){
var options=arguments.length > 1&&arguments[1]!==undefined ? arguments[1]:{};
this.$element=element;
this.options=_jquery2.default.extend(true, {}, Abide.defaults, this.$element.data(), options);
this.className='Abide';
this._init();
}
}, {
key: "_init",
value: function _init(){
var _this2=this;
this.$inputs=_jquery2.default.merge(this.$element.find('input').not('[type=submit]'),
this.$element.find('textarea, select')
);
var $globalErrors=this.$element.find('[data-abide-error]');
if(this.options.a11yAttributes){
this.$inputs.each(function (i, input){
return _this2.addA11yAttributes((0, _jquery2.default)(input));
});
$globalErrors.each(function (i, error){
return _this2.addGlobalErrorA11yAttributes((0, _jquery2.default)(error));
});
}
this._events();
}
}, {
key: "_events",
value: function _events(){
var _this3=this;
this.$element.off('.abide').on('reset.zf.abide', function (){
_this3.resetForm();
}).on('submit.zf.abide', function (){
return _this3.validateForm();
});
if(this.options.validateOn==='fieldChange'){
this.$inputs.off('change.zf.abide').on('change.zf.abide', function (e){
_this3.validateInput((0, _jquery2.default)(e.target));
});
}
if(this.options.liveValidate){
this.$inputs.off('input.zf.abide').on('input.zf.abide', function (e){
_this3.validateInput((0, _jquery2.default)(e.target));
});
}
if(this.options.validateOnBlur){
this.$inputs.off('blur.zf.abide').on('blur.zf.abide', function (e){
_this3.validateInput((0, _jquery2.default)(e.target));
});
}}
}, {
key: "_reflow",
value: function _reflow(){
this._init();
}
}, {
key: "requiredCheck",
value: function requiredCheck($el){
if(!$el.attr('required')) return true;
var isGood=true;
switch ($el[0].type){
case 'checkbox':
isGood=$el[0].checked;
break;
case 'select':
case 'select-one':
case 'select-multiple':
var opt=$el.find('option:selected');
if(!opt.length||!opt.val()) isGood=false;
break;
default:
if(!$el.val()||!$el.val().length) isGood=false;
}
return isGood;
}
}, {
key: "findFormError",
value: function findFormError($el){
var id=$el[0].id;
var $error=$el.siblings(this.options.formErrorSelector);
if(!$error.length){
$error=$el.parent().find(this.options.formErrorSelector);
}
if(id){
$error=$error.add(this.$element.find("[data-form-error-for=\"".concat(id, "\"]")));
}
return $error;
}
}, {
key: "findLabel",
value: function findLabel($el){
var id=$el[0].id;
var $label=this.$element.find("label[for=\"".concat(id, "\"]"));
if(!$label.length){
return $el.closest('label');
}
return $label;
}
}, {
key: "findRadioLabels",
value: function findRadioLabels($els){
var _this4=this;
var labels=$els.map(function (i, el){
var id=el.id;
var $label=_this4.$element.find("label[for=\"".concat(id, "\"]"));
if(!$label.length){
$label=(0, _jquery2.default)(el).closest('label');
}
return $label[0];
});
return (0, _jquery2.default)(labels);
}
}, {
key: "addErrorClasses",
value: function addErrorClasses($el){
var $label=this.findLabel($el);
var $formError=this.findFormError($el);
if($label.length){
$label.addClass(this.options.labelErrorClass);
}
if($formError.length){
$formError.addClass(this.options.formErrorClass);
}
$el.addClass(this.options.inputErrorClass).attr({
'data-invalid': '',
'aria-invalid': true
});
}
}, {
key: "addA11yAttributes",
value: function addA11yAttributes($el){
var $errors=this.findFormError($el);
var $labels=$errors.filter('label');
var $error=$errors.first();
if(!$errors.length) return;
if(typeof $el.attr('aria-describedby')==='undefined'){
var errorId=$error.attr('id');
if(typeof errorId==='undefined'){
errorId=GetYoDigits(6, 'abide-error');
$error.attr('id', errorId);
}
$el.attr('aria-describedby', errorId);
}
if($labels.filter('[for]').length < $labels.length){
var elemId=$el.attr('id');
if(typeof elemId==='undefined'){
elemId=GetYoDigits(6, 'abide-input');
$el.attr('id', elemId);
}
$labels.each(function (i, label){
var $label=(0, _jquery2.default)(label);
if(typeof $label.attr('for')==='undefined') $label.attr('for', elemId);
});
}
$errors.each(function (i, label){
var $label=(0, _jquery2.default)(label);
if(typeof $label.attr('role')==='undefined') $label.attr('role', 'alert');
}).end();
}
}, {
key: "addGlobalErrorA11yAttributes",
value: function addGlobalErrorA11yAttributes($el){
if(typeof $el.attr('aria-live')==='undefined') $el.attr('aria-live', this.options.a11yErrorLevel);
}
}, {
key: "removeRadioErrorClasses",
value: function removeRadioErrorClasses(groupName){
var $els=this.$element.find(":radio[name=\"".concat(groupName, "\"]"));
var $labels=this.findRadioLabels($els);
var $formErrors=this.findFormError($els);
if($labels.length){
$labels.removeClass(this.options.labelErrorClass);
}
if($formErrors.length){
$formErrors.removeClass(this.options.formErrorClass);
}
$els.removeClass(this.options.inputErrorClass).attr({
'data-invalid': null,
'aria-invalid': null
});
}
}, {
key: "removeErrorClasses",
value: function removeErrorClasses($el){
if($el[0].type=='radio'){
return this.removeRadioErrorClasses($el.attr('name'));
}
var $label=this.findLabel($el);
var $formError=this.findFormError($el);
if($label.length){
$label.removeClass(this.options.labelErrorClass);
}
if($formError.length){
$formError.removeClass(this.options.formErrorClass);
}
$el.removeClass(this.options.inputErrorClass).attr({
'data-invalid': null,
'aria-invalid': null
});
}
}, {
key: "validateInput",
value: function validateInput($el){
var clearRequire=this.requiredCheck($el),
validated=false,
customValidator=true,
validator=$el.attr('data-validator'),
equalTo=true;
if($el.is('[data-abide-ignore]')||$el.is('[type="hidden"]')||$el.is('[disabled]')){
return true;
}
switch ($el[0].type){
case 'radio':
validated=this.validateRadio($el.attr('name'));
break;
case 'checkbox':
validated=clearRequire;
break;
case 'select':
case 'select-one':
case 'select-multiple':
validated=clearRequire;
break;
default:
validated=this.validateText($el);
}
if(validator){
customValidator=this.matchValidation($el, validator, $el.attr('required'));
}
if($el.attr('data-equalto')){
equalTo=this.options.validators.equalTo($el);
}
var goodToGo=[clearRequire, validated, customValidator, equalTo].indexOf(false)===-1;
var message=(goodToGo ? 'valid':'invalid') + '.zf.abide';
if(goodToGo){
var dependentElements=this.$element.find("[data-equalto=\"".concat($el.attr('id'), "\"]"));
if(dependentElements.length){
var _this=this;
dependentElements.each(function (){
if((0, _jquery2.default)(this).val()){
_this.validateInput((0, _jquery2.default)(this));
}});
}}
this[goodToGo ? 'removeErrorClasses':'addErrorClasses']($el);
$el.trigger(message, [$el]);
return goodToGo;
}
}, {
key: "validateForm",
value: function validateForm(){
var _this5=this;
var acc=[];
var _this=this;
this.$inputs.each(function (){
acc.push(_this.validateInput((0, _jquery2.default)(this)));
});
var noError=acc.indexOf(false)===-1;
this.$element.find('[data-abide-error]').each(function (i, elem){
var $elem=(0, _jquery2.default)(elem);
if(_this5.options.a11yAttributes) _this5.addGlobalErrorA11yAttributes($elem);
$elem.css('display', noError ? 'none':'block');
});
this.$element.trigger((noError ? 'formvalid':'forminvalid') + '.zf.abide', [this.$element]);
return noError;
}
}, {
key: "validateText",
value: function validateText($el, pattern){
pattern=pattern||$el.attr('pattern')||$el.attr('type');
var inputText=$el.val();
var valid=false;
if(inputText.length){
if(this.options.patterns.hasOwnProperty(pattern)){
valid=this.options.patterns[pattern].test(inputText);
}
else if(pattern!==$el.attr('type')){
valid=new RegExp(pattern).test(inputText);
}else{
valid=true;
}}
else if(!$el.prop('required')){
valid=true;
}
return valid;
}
}, {
key: "validateRadio",
value: function validateRadio(groupName){
var $group=this.$element.find(":radio[name=\"".concat(groupName, "\"]"));
var valid=false,
required=false;
$group.each(function (i, e){
if((0, _jquery2.default)(e).attr('required')){
required=true;
}});
if(!required) valid=true;
if(!valid){
$group.each(function (i, e){
if((0, _jquery2.default)(e).prop('checked')){
valid=true;
}});
}
return valid;
}
}, {
key: "matchValidation",
value: function matchValidation($el, validators, required){
var _this6=this;
required=required ? true:false;
var clear=validators.split(' ').map(function (v){
return _this6.options.validators[v]($el, required, $el.parent());
});
return clear.indexOf(false)===-1;
}
}, {
key: "resetForm",
value: function resetForm(){
var $form=this.$element,
opts=this.options;
(0, _jquery2.default)(".".concat(opts.labelErrorClass), $form).not('small').removeClass(opts.labelErrorClass);
(0, _jquery2.default)(".".concat(opts.inputErrorClass), $form).not('small').removeClass(opts.inputErrorClass);
(0, _jquery2.default)("".concat(opts.formErrorSelector, ".").concat(opts.formErrorClass)).removeClass(opts.formErrorClass);
$form.find('[data-abide-error]').css('display', 'none');
(0, _jquery2.default)(':input', $form).not(':button, :submit, :reset, :hidden, :radio, :checkbox, [data-abide-ignore]').val('').attr({
'data-invalid': null,
'aria-invalid': null
});
(0, _jquery2.default)(':input:radio', $form).not('[data-abide-ignore]').prop('checked', false).attr({
'data-invalid': null,
'aria-invalid': null
});
(0, _jquery2.default)(':input:checkbox', $form).not('[data-abide-ignore]').prop('checked', false).attr({
'data-invalid': null,
'aria-invalid': null
});
$form.trigger('formreset.zf.abide', [$form]);
}
}, {
key: "_destroy",
value: function _destroy(){
var _this=this;
this.$element.off('.abide').find('[data-abide-error]').css('display', 'none');
this.$inputs.off('.abide').each(function (){
_this.removeErrorClasses((0, _jquery2.default)(this));
});
}}]);
return Abide;
}(Plugin);
Abide.defaults={
validateOn: 'fieldChange',
labelErrorClass: 'is-invalid-label',
inputErrorClass: 'is-invalid-input',
formErrorSelector: '.form-error',
formErrorClass: 'is-visible',
a11yAttributes: true,
a11yErrorLevel: 'assertive',
liveValidate: false,
validateOnBlur: false,
patterns: {
alpha: /^[a-zA-Z]+$/,
alpha_numeric: /^[a-zA-Z0-9]+$/,
integer: /^[-+]?\d+$/,
number: /^[-+]?\d*(?:[\.\,]\d+)?$/,
card: /^(?:4[0-9]{12}(?:[0-9]{3})?|5[1-5][0-9]{14}|(?:222[1-9]|2[3-6][0-9]{2}|27[0-1][0-9]|2720)[0-9]{12}|6(?:011|5[0-9][0-9])[0-9]{12}|3[47][0-9]{13}|3(?:0[0-5]|[68][0-9])[0-9]{11}|(?:2131|1800|35\d{3})\d{11})$/,
cvv: /^([0-9]){3,4}$/,
email: /^[a-zA-Z0-9.!#$%&'*+\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+$/,
url: /^((?:(https?|ftps?|file|ssh|sftp):\/\/|www\d{0,3}[.]|[a-z0-9.\-]+[.][a-z]{2,4}\/)(?:[^\s()<>]+|\((?:[^\s()<>]+|(?:\([^\s()<>]+\)))*\))+(?:\((?:[^\s()<>]+|(?:\([^\s()<>]+\)))*\)|[^\s`!()\[\]{};:\'".,<>?\xab\xbb\u201c\u201d\u2018\u2019]))$/,
domain: /^([a-zA-Z0-9]([a-zA-Z0-9\-]{0,61}[a-zA-Z0-9])?\.)+[a-zA-Z]{2,8}$/,
datetime: /^([0-2][0-9]{3})\-([0-1][0-9])\-([0-3][0-9])T([0-5][0-9])\:([0-5][0-9])\:([0-5][0-9])(Z|([\-\+]([0-1][0-9])\:00))$/,
date: /(?:19|20)[0-9]{2}-(?:(?:0[1-9]|1[0-2])-(?:0[1-9]|1[0-9]|2[0-9])|(?:(?!02)(?:0[1-9]|1[0-2])-(?:30))|(?:(?:0[13578]|1[02])-31))$/,
time: /^(0[0-9]|1[0-9]|2[0-3])(:[0-5][0-9]){2}$/,
dateISO: /^\d{4}[\/\-]\d{1,2}[\/\-]\d{1,2}$/,
month_day_year: /^(0[1-9]|1[012])[- \/.](0[1-9]|[12][0-9]|3[01])[- \/.]\d{4}$/,
day_month_year: /^(0[1-9]|[12][0-9]|3[01])[- \/.](0[1-9]|1[012])[- \/.]\d{4}$/,
color: /^#?([a-fA-F0-9]{6}|[a-fA-F0-9]{3})$/,
website: {
test: function test(text){
return Abide.defaults.patterns['domain'].test(text)||Abide.defaults.patterns['url'].test(text);
}}
},
validators: {
equalTo: function equalTo(el, required, parent){
return (0, _jquery2.default)("#".concat(el.attr('data-equalto'))).val()===el.val();
}}
};
var Accordion =
function (_Plugin){
_inherits(Accordion, _Plugin);
function Accordion(){
_classCallCheck(this, Accordion);
return _possibleConstructorReturn(this, _getPrototypeOf(Accordion).apply(this, arguments));
}
_createClass(Accordion, [{
key: "_setup",
value: function _setup(element, options){
this.$element=element;
this.options=_jquery2.default.extend({}, Accordion.defaults, this.$element.data(), options);
this.className='Accordion';
this._init();
Keyboard.register('Accordion', {
'ENTER': 'toggle',
'SPACE': 'toggle',
'ARROW_DOWN': 'next',
'ARROW_UP': 'previous'
});
}
}, {
key: "_init",
value: function _init(){
var _this2=this;
this._isInitializing=true;
this.$element.attr('role', 'tablist');
this.$tabs=this.$element.children('[data-accordion-item]');
this.$tabs.each(function (idx, el){
var $el=(0, _jquery2.default)(el),
$content=$el.children('[data-tab-content]'),
id=$content[0].id||GetYoDigits(6, 'accordion'),
linkId=el.id ? "".concat(el.id, "-label"):"".concat(id, "-label");
$el.find('a:first').attr({
'aria-controls': id,
'role': 'tab',
'id': linkId,
'aria-expanded': false,
'aria-selected': false
});
$content.attr({
'role': 'tabpanel',
'aria-labelledby': linkId,
'aria-hidden': true,
'id': id
});
});
var $initActive=this.$element.find('.is-active').children('[data-tab-content]');
if($initActive.length){
this._initialAnchor=$initActive.prev('a').attr('href');
this._openSingleTab($initActive);
}
this._checkDeepLink=function (){
var anchor=window.location.hash;
if(!anchor.length){
if(_this2._isInitializing) return;
if(_this2._initialAnchor) anchor=_this2._initialAnchor;
}
var $anchor=anchor&&(0, _jquery2.default)(anchor);
var $link=anchor&&_this2.$element.find("[href$=\"".concat(anchor, "\"]"));
var isOwnAnchor = !!($anchor.length&&$link.length);
if($anchor&&$link&&$link.length){
if(!$link.parent('[data-accordion-item]').hasClass('is-active')){
_this2._openSingleTab($anchor);
}}else{
_this2._closeAllTabs();
}
if(isOwnAnchor){
if(_this2.options.deepLinkSmudge){
onLoad((0, _jquery2.default)(window), function (){
var offset=_this2.$element.offset();
(0, _jquery2.default)('html, body').animate({
scrollTop: offset.top
}, _this2.options.deepLinkSmudgeDelay);
});
}
_this2.$element.trigger('deeplink.zf.accordion', [$link, $anchor]);
}};
if(this.options.deepLink){
this._checkDeepLink();
}
this._events();
this._isInitializing=false;
}
}, {
key: "_events",
value: function _events(){
var _this=this;
this.$tabs.each(function (){
var $elem=(0, _jquery2.default)(this);
var $tabContent=$elem.children('[data-tab-content]');
if($tabContent.length){
$elem.children('a').off('click.zf.accordion keydown.zf.accordion').on('click.zf.accordion', function (e){
e.preventDefault();
_this.toggle($tabContent);
}).on('keydown.zf.accordion', function (e){
Keyboard.handleKey(e, 'Accordion', {
toggle: function toggle(){
_this.toggle($tabContent);
},
next: function next(){
var $a=$elem.next().find('a').focus();
if(!_this.options.multiExpand){
$a.trigger('click.zf.accordion');
}},
previous: function previous(){
var $a=$elem.prev().find('a').focus();
if(!_this.options.multiExpand){
$a.trigger('click.zf.accordion');
}},
handled: function handled(){
e.preventDefault();
e.stopPropagation();
}});
});
}});
if(this.options.deepLink){
(0, _jquery2.default)(window).on('hashchange', this._checkDeepLink);
}}
}, {
key: "toggle",
value: function toggle($target){
if($target.closest('[data-accordion]').is('[disabled]')){
console.info('Cannot toggle an accordion that is disabled.');
return;
}
if($target.parent().hasClass('is-active')){
this.up($target);
}else{
this.down($target);
}
if(this.options.deepLink){
var anchor=$target.prev('a').attr('href');
if(this.options.updateHistory){
history.pushState({}, '', anchor);
}else{
history.replaceState({}, '', anchor);
}}
}
}, {
key: "down",
value: function down($target){
if($target.closest('[data-accordion]').is('[disabled]')){
console.info('Cannot call down on an accordion that is disabled.');
return;
}
if(this.options.multiExpand) this._openTab($target);else this._openSingleTab($target);
}
}, {
key: "up",
value: function up($target){
if(this.$element.is('[disabled]')){
console.info('Cannot call up on an accordion that is disabled.');
return;
}
var $targetItem=$target.parent();
if(!$targetItem.hasClass('is-active')) return;
var $othersItems=$targetItem.siblings();
if(!this.options.allowAllClosed&&!$othersItems.hasClass('is-active')) return;
this._closeTab($target);
}
}, {
key: "_openSingleTab",
value: function _openSingleTab($target){
var $activeContents=this.$element.children('.is-active').children('[data-tab-content]');
if($activeContents.length){
this._closeTab($activeContents.not($target));
}
this._openTab($target);
}
}, {
key: "_openTab",
value: function _openTab($target){
var _this3=this;
var $targetItem=$target.parent();
var targetContentId=$target.attr('aria-labelledby');
$target.attr('aria-hidden', false);
$targetItem.addClass('is-active');
(0, _jquery2.default)("#".concat(targetContentId)).attr({
'aria-expanded': true,
'aria-selected': true
});
$target.slideDown(this.options.slideSpeed, function (){
_this3.$element.trigger('down.zf.accordion', [$target]);
});
}
}, {
key: "_closeTab",
value: function _closeTab($target){
var _this4=this;
var $targetItem=$target.parent();
var targetContentId=$target.attr('aria-labelledby');
$target.attr('aria-hidden', true);
$targetItem.removeClass('is-active');
(0, _jquery2.default)("#".concat(targetContentId)).attr({
'aria-expanded': false,
'aria-selected': false
});
$target.slideUp(this.options.slideSpeed, function (){
_this4.$element.trigger('up.zf.accordion', [$target]);
});
}
}, {
key: "_closeAllTabs",
value: function _closeAllTabs(){
var $activeTabs=this.$element.children('.is-active').children('[data-tab-content]');
if($activeTabs.length){
this._closeTab($activeTabs);
}}
}, {
key: "_destroy",
value: function _destroy(){
this.$element.find('[data-tab-content]').stop(true).slideUp(0).css('display', '');
this.$element.find('a').off('.zf.accordion');
if(this.options.deepLink){
(0, _jquery2.default)(window).off('hashchange', this._checkDeepLink);
}}
}]);
return Accordion;
}(Plugin);
Accordion.defaults={
slideSpeed: 250,
multiExpand: false,
allowAllClosed: false,
deepLink: false,
deepLinkSmudge: false,
deepLinkSmudgeDelay: 300,
updateHistory: false
};
var AccordionMenu =
function (_Plugin){
_inherits(AccordionMenu, _Plugin);
function AccordionMenu(){
_classCallCheck(this, AccordionMenu);
return _possibleConstructorReturn(this, _getPrototypeOf(AccordionMenu).apply(this, arguments));
}
_createClass(AccordionMenu, [{
key: "_setup",
value: function _setup(element, options){
this.$element=element;
this.options=_jquery2.default.extend({}, AccordionMenu.defaults, this.$element.data(), options);
this.className='AccordionMenu';
this._init();
Keyboard.register('AccordionMenu', {
'ENTER': 'toggle',
'SPACE': 'toggle',
'ARROW_RIGHT': 'open',
'ARROW_UP': 'up',
'ARROW_DOWN': 'down',
'ARROW_LEFT': 'close',
'ESCAPE': 'closeAll'
});
}
}, {
key: "_init",
value: function _init(){
Nest.Feather(this.$element, 'accordion');
var _this=this;
this.$element.find('[data-submenu]').not('.is-active').slideUp(0);
this.$element.attr({
'role': 'tree',
'aria-multiselectable': this.options.multiOpen
});
this.$menuLinks=this.$element.find('.is-accordion-submenu-parent');
this.$menuLinks.each(function (){
var linkId=this.id||GetYoDigits(6, 'acc-menu-link'),
$elem=(0, _jquery2.default)(this),
$sub=$elem.children('[data-submenu]'),
subId=$sub[0].id||GetYoDigits(6, 'acc-menu'),
isActive=$sub.hasClass('is-active');
if(_this.options.parentLink){
var $anchor=$elem.children('a');
$anchor.clone().prependTo($sub).wrap('<li data-is-parent-link class="is-submenu-parent-item is-submenu-item is-accordion-submenu-item"></li>');
}
if(_this.options.submenuToggle){
$elem.addClass('has-submenu-toggle');
$elem.children('a').after('<button id="' + linkId + '" class="submenu-toggle" aria-controls="' + subId + '" aria-expanded="' + isActive + '" title="' + _this.options.submenuToggleText + '"><span class="submenu-toggle-text">' + _this.options.submenuToggleText + '</span></button>');
}else{
$elem.attr({
'aria-controls': subId,
'aria-expanded': isActive,
'id': linkId
});
}
$sub.attr({
'aria-labelledby': linkId,
'aria-hidden': !isActive,
'role': 'group',
'id': subId
});
});
this.$element.find('li').attr({
'role': 'treeitem'
});
var initPanes=this.$element.find('.is-active');
if(initPanes.length){
var _this=this;
initPanes.each(function (){
_this.down((0, _jquery2.default)(this));
});
}
this._events();
}
}, {
key: "_events",
value: function _events(){
var _this=this;
this.$element.find('li').each(function (){
var $submenu=(0, _jquery2.default)(this).children('[data-submenu]');
if($submenu.length){
if(_this.options.submenuToggle){
(0, _jquery2.default)(this).children('.submenu-toggle').off('click.zf.accordionMenu').on('click.zf.accordionMenu', function (e){
_this.toggle($submenu);
});
}else{
(0, _jquery2.default)(this).children('a').off('click.zf.accordionMenu').on('click.zf.accordionMenu', function (e){
e.preventDefault();
_this.toggle($submenu);
});
}}
}).on('keydown.zf.accordionmenu', function (e){
var $element=(0, _jquery2.default)(this),
$elements=$element.parent('ul').children('li'),
$prevElement,
$nextElement,
$target=$element.children('[data-submenu]');
$elements.each(function (i){
if((0, _jquery2.default)(this).is($element)){
$prevElement=$elements.eq(Math.max(0, i - 1)).find('a').first();
$nextElement=$elements.eq(Math.min(i + 1, $elements.length - 1)).find('a').first();
if((0, _jquery2.default)(this).children('[data-submenu]:visible').length){
$nextElement=$element.find('li:first-child').find('a').first();
}
if((0, _jquery2.default)(this).is(':first-child')){
$prevElement=$element.parents('li').first().find('a').first();
}else if($prevElement.parents('li').first().children('[data-submenu]:visible').length){
$prevElement=$prevElement.parents('li').find('li:last-child').find('a').first();
}
if((0, _jquery2.default)(this).is(':last-child')){
$nextElement=$element.parents('li').first().next('li').find('a').first();
}
return;
}});
Keyboard.handleKey(e, 'AccordionMenu', {
open: function open(){
if($target.is(':hidden')){
_this.down($target);
$target.find('li').first().find('a').first().focus();
}},
close: function close(){
if($target.length&&!$target.is(':hidden')){
_this.up($target);
}else if($element.parent('[data-submenu]').length){
_this.up($element.parent('[data-submenu]'));
$element.parents('li').first().find('a').first().focus();
}},
up: function up(){
$prevElement.focus();
return true;
},
down: function down(){
$nextElement.focus();
return true;
},
toggle: function toggle(){
if(_this.options.submenuToggle){
return false;
}
if($element.children('[data-submenu]').length){
_this.toggle($element.children('[data-submenu]'));
return true;
}},
closeAll: function closeAll(){
_this.hideAll();
},
handled: function handled(preventDefault){
if(preventDefault){
e.preventDefault();
}
e.stopImmediatePropagation();
}});
});
}
}, {
key: "hideAll",
value: function hideAll(){
this.up(this.$element.find('[data-submenu]'));
}
}, {
key: "showAll",
value: function showAll(){
this.down(this.$element.find('[data-submenu]'));
}
}, {
key: "toggle",
value: function toggle($target){
if(!$target.is(':animated')){
if(!$target.is(':hidden')){
this.up($target);
}else{
this.down($target);
}}
}
}, {
key: "down",
value: function down($target){
var _this2=this;
if(!this.options.multiOpen){
this.up(this.$element.find('.is-active').not($target.parentsUntil(this.$element).add($target)));
}
$target.addClass('is-active').attr({
'aria-hidden': false
});
if(this.options.submenuToggle){
$target.prev('.submenu-toggle').attr({
'aria-expanded': true
});
}else{
$target.parent('.is-accordion-submenu-parent').attr({
'aria-expanded': true
});
}
$target.slideDown(this.options.slideSpeed, function (){
_this2.$element.trigger('down.zf.accordionMenu', [$target]);
});
}
}, {
key: "up",
value: function up($target){
var _this3=this;
var $submenus=$target.find('[data-submenu]');
var $allmenus=$target.add($submenus);
$submenus.slideUp(0);
$allmenus.removeClass('is-active').attr('aria-hidden', true);
if(this.options.submenuToggle){
$allmenus.prev('.submenu-toggle').attr('aria-expanded', false);
}else{
$allmenus.parent('.is-accordion-submenu-parent').attr('aria-expanded', false);
}
$target.slideUp(this.options.slideSpeed, function (){
_this3.$element.trigger('up.zf.accordionMenu', [$target]);
});
}
}, {
key: "_destroy",
value: function _destroy(){
this.$element.find('[data-submenu]').slideDown(0).css('display', '');
this.$element.find('a').off('click.zf.accordionMenu');
this.$element.find('[data-is-parent-link]').detach();
if(this.options.submenuToggle){
this.$element.find('.has-submenu-toggle').removeClass('has-submenu-toggle');
this.$element.find('.submenu-toggle').remove();
}
Nest.Burn(this.$element, 'accordion');
}}]);
return AccordionMenu;
}(Plugin);
AccordionMenu.defaults={
parentLink: false,
slideSpeed: 250,
submenuToggle: false,
submenuToggleText: 'Toggle menu',
multiOpen: true
};
var Drilldown =
function (_Plugin){
_inherits(Drilldown, _Plugin);
function Drilldown(){
_classCallCheck(this, Drilldown);
return _possibleConstructorReturn(this, _getPrototypeOf(Drilldown).apply(this, arguments));
}
_createClass(Drilldown, [{
key: "_setup",
value: function _setup(element, options){
this.$element=element;
this.options=_jquery2.default.extend({}, Drilldown.defaults, this.$element.data(), options);
this.className='Drilldown';
this._init();
Keyboard.register('Drilldown', {
'ENTER': 'open',
'SPACE': 'open',
'ARROW_RIGHT': 'next',
'ARROW_UP': 'up',
'ARROW_DOWN': 'down',
'ARROW_LEFT': 'previous',
'ESCAPE': 'close',
'TAB': 'down',
'SHIFT_TAB': 'up'
});
}
}, {
key: "_init",
value: function _init(){
Nest.Feather(this.$element, 'drilldown');
if(this.options.autoApplyClass){
this.$element.addClass('drilldown');
}
this.$element.attr({
'role': 'tree',
'aria-multiselectable': false
});
this.$submenuAnchors=this.$element.find('li.is-drilldown-submenu-parent').children('a');
this.$submenus=this.$submenuAnchors.parent('li').children('[data-submenu]').attr('role', 'group');
this.$menuItems=this.$element.find('li').not('.js-drilldown-back').attr('role', 'treeitem').find('a');
this.$currentMenu=this.$element;
this.$element.attr('data-mutate', this.$element.attr('data-drilldown')||GetYoDigits(6, 'drilldown'));
this._prepareMenu();
this._registerEvents();
this._keyboardEvents();
}
}, {
key: "_prepareMenu",
value: function _prepareMenu(){
var _this=this;
this.$submenuAnchors.each(function (){
var $link=(0, _jquery2.default)(this);
var $sub=$link.parent();
if(_this.options.parentLink){
$link.clone().prependTo($sub.children('[data-submenu]')).wrap('<li data-is-parent-link class="is-submenu-parent-item is-submenu-item is-drilldown-submenu-item" role="menuitem"></li>');
}
$link.data('savedHref', $link.attr('href')).removeAttr('href').attr('tabindex', 0);
$link.children('[data-submenu]').attr({
'aria-hidden': true,
'tabindex': 0,
'role': 'group'
});
_this._events($link);
});
this.$submenus.each(function (){
var $menu=(0, _jquery2.default)(this),
$back=$menu.find('.js-drilldown-back');
if(!$back.length){
switch (_this.options.backButtonPosition){
case "bottom":
$menu.append(_this.options.backButton);
break;
case "top":
$menu.prepend(_this.options.backButton);
break;
default:
console.error("Unsupported backButtonPosition value '" + _this.options.backButtonPosition + "'");
}}
_this._back($menu);
});
this.$submenus.addClass('invisible');
if(!this.options.autoHeight){
this.$submenus.addClass('drilldown-submenu-cover-previous');
}
if(!this.$element.parent().hasClass('is-drilldown')){
this.$wrapper=(0, _jquery2.default)(this.options.wrapper).addClass('is-drilldown');
if(this.options.animateHeight) this.$wrapper.addClass('animate-height');
this.$element.wrap(this.$wrapper);
}
this.$wrapper=this.$element.parent();
this.$wrapper.css(this._getMaxDims());
}}, {
key: "_resize",
value: function _resize(){
this.$wrapper.css({
'max-width': 'none',
'min-height': 'none'
});
this.$wrapper.css(this._getMaxDims());
}
}, {
key: "_events",
value: function _events($elem){
var _this=this;
$elem.off('click.zf.drilldown').on('click.zf.drilldown', function (e){
if((0, _jquery2.default)(e.target).parentsUntil('ul', 'li').hasClass('is-drilldown-submenu-parent')){
e.stopImmediatePropagation();
e.preventDefault();
}
_this._show($elem.parent('li'));
if(_this.options.closeOnClick){
var $body=(0, _jquery2.default)('body');
$body.off('.zf.drilldown').on('click.zf.drilldown', function (e){
if(e.target===_this.$element[0]||_jquery2.default.contains(_this.$element[0], e.target)){
return;
}
e.preventDefault();
_this._hideAll();
$body.off('.zf.drilldown');
});
}});
}
}, {
key: "_registerEvents",
value: function _registerEvents(){
if(this.options.scrollTop){
this._bindHandler=this._scrollTop.bind(this);
this.$element.on('open.zf.drilldown hide.zf.drilldown closed.zf.drilldown', this._bindHandler);
}
this.$element.on('mutateme.zf.trigger', this._resize.bind(this));
}
}, {
key: "_scrollTop",
value: function _scrollTop(){
var _this=this;
var $scrollTopElement=_this.options.scrollTopElement!='' ? (0, _jquery2.default)(_this.options.scrollTopElement):_this.$element,
scrollPos=parseInt($scrollTopElement.offset().top + _this.options.scrollTopOffset, 10);
(0, _jquery2.default)('html, body').stop(true).animate({
scrollTop: scrollPos
}, _this.options.animationDuration, _this.options.animationEasing, function (){
if(this===(0, _jquery2.default)('html')[0]) _this.$element.trigger('scrollme.zf.drilldown');
});
}
}, {
key: "_keyboardEvents",
value: function _keyboardEvents(){
var _this=this;
this.$menuItems.add(this.$element.find('.js-drilldown-back > a, .is-submenu-parent-item > a')).on('keydown.zf.drilldown', function (e){
var $element=(0, _jquery2.default)(this),
$elements=$element.parent('li').parent('ul').children('li').children('a'),
$prevElement,
$nextElement;
$elements.each(function (i){
if((0, _jquery2.default)(this).is($element)){
$prevElement=$elements.eq(Math.max(0, i - 1));
$nextElement=$elements.eq(Math.min(i + 1, $elements.length - 1));
return;
}});
Keyboard.handleKey(e, 'Drilldown', {
next: function next(){
if($element.is(_this.$submenuAnchors)){
_this._show($element.parent('li'));
$element.parent('li').one(transitionend($element), function (){
$element.parent('li').find('ul li a').not('.js-drilldown-back a').first().focus();
});
return true;
}},
previous: function previous(){
_this._hide($element.parent('li').parent('ul'));
$element.parent('li').parent('ul').one(transitionend($element), function (){
setTimeout(function (){
$element.parent('li').parent('ul').parent('li').children('a').first().focus();
}, 1);
});
return true;
},
up: function up(){
$prevElement.focus();
return !$element.is(_this.$element.find('> li:first-child > a'));
},
down: function down(){
$nextElement.focus();
return !$element.is(_this.$element.find('> li:last-child > a'));
},
close: function close(){
if(!$element.is(_this.$element.find('> li > a'))){
_this._hide($element.parent().parent());
$element.parent().parent().siblings('a').focus();
}},
open: function open(){
if(_this.options.parentLink&&$element.attr('href')){
return false;
}else if(!$element.is(_this.$menuItems)){
_this._hide($element.parent('li').parent('ul'));
$element.parent('li').parent('ul').one(transitionend($element), function (){
setTimeout(function (){
$element.parent('li').parent('ul').parent('li').children('a').first().focus();
}, 1);
});
return true;
}else if($element.is(_this.$submenuAnchors)){
_this._show($element.parent('li'));
$element.parent('li').one(transitionend($element), function (){
$element.parent('li').find('ul li a').not('.js-drilldown-back a').first().focus();
});
return true;
}},
handled: function handled(preventDefault){
if(preventDefault){
e.preventDefault();
}
e.stopImmediatePropagation();
}});
});
}
}, {
key: "_hideAll",
value: function _hideAll(){
var $elem=this.$element.find('.is-drilldown-submenu.is-active').addClass('is-closing');
if(this.options.autoHeight) this.$wrapper.css({
height: $elem.parent().closest('ul').data('calcHeight')
});
$elem.one(transitionend($elem), function (e){
$elem.removeClass('is-active is-closing');
});
this.$element.trigger('closed.zf.drilldown');
}
}, {
key: "_back",
value: function _back($elem){
var _this=this;
$elem.off('click.zf.drilldown');
$elem.children('.js-drilldown-back').on('click.zf.drilldown', function (e){
e.stopImmediatePropagation();
_this._hide($elem);
var parentSubMenu=$elem.parent('li').parent('ul').parent('li');
if(parentSubMenu.length){
_this._show(parentSubMenu);
}});
}
}, {
key: "_menuLinkEvents",
value: function _menuLinkEvents(){
var _this=this;
this.$menuItems.not('.is-drilldown-submenu-parent').off('click.zf.drilldown').on('click.zf.drilldown', function (e){
setTimeout(function (){
_this._hideAll();
}, 0);
});
}
}, {
key: "_setShowSubMenuClasses",
value: function _setShowSubMenuClasses($elem, trigger){
$elem.addClass('is-active').removeClass('invisible').attr('aria-hidden', false);
$elem.parent('li').attr('aria-expanded', true);
if(trigger===true){
this.$element.trigger('open.zf.drilldown', [$elem]);
}}
}, {
key: "_setHideSubMenuClasses",
value: function _setHideSubMenuClasses($elem, trigger){
$elem.removeClass('is-active').addClass('invisible').attr('aria-hidden', true);
$elem.parent('li').attr('aria-expanded', false);
if(trigger===true){
$elem.trigger('hide.zf.drilldown', [$elem]);
}}
}, {
key: "_showMenu",
value: function _showMenu($elem, autoFocus){
var _this=this;
var $expandedSubmenus=this.$element.find('li[aria-expanded="true"] > ul[data-submenu]');
$expandedSubmenus.each(function (index){
_this._setHideSubMenuClasses((0, _jquery2.default)(this));
});
this.$currentMenu=$elem;
if($elem.is('[data-drilldown]')){
if(autoFocus===true) $elem.find('li[role="treeitem"] > a').first().focus();
if(this.options.autoHeight) this.$wrapper.css('height', $elem.data('calcHeight'));
return;
}
var $submenus=$elem.children().first().parentsUntil('[data-drilldown]', '[data-submenu]');
$submenus.each(function (index){
if(index===0&&_this.options.autoHeight){
_this.$wrapper.css('height', (0, _jquery2.default)(this).data('calcHeight'));
}
var isLastChild=index==$submenus.length - 1;
if(isLastChild===true){
(0, _jquery2.default)(this).one(transitionend((0, _jquery2.default)(this)), function (){
if(autoFocus===true){
$elem.find('li[role="treeitem"] > a').first().focus();
}});
}
_this._setShowSubMenuClasses((0, _jquery2.default)(this), isLastChild);
});
}
}, {
key: "_show",
value: function _show($elem){
var $submenu=$elem.children('[data-submenu]');
$elem.attr('aria-expanded', true);
this.$currentMenu=$submenu;
$submenu.addClass('is-active').removeClass('invisible').attr('aria-hidden', false);
if(this.options.autoHeight){
this.$wrapper.css({
height: $submenu.data('calcHeight')
});
}
this.$element.trigger('open.zf.drilldown', [$elem]);
}
}, {
key: "_hide",
value: function _hide($elem){
if(this.options.autoHeight) this.$wrapper.css({
height: $elem.parent().closest('ul').data('calcHeight')
});
$elem.parent('li').attr('aria-expanded', false);
$elem.attr('aria-hidden', true);
$elem.addClass('is-closing').one(transitionend($elem), function (){
$elem.removeClass('is-active is-closing');
$elem.blur().addClass('invisible');
});
$elem.trigger('hide.zf.drilldown', [$elem]);
}
}, {
key: "_getMaxDims",
value: function _getMaxDims(){
var maxHeight=0,
result={},
_this=this;
this.$submenus.add(this.$element).each(function (){
var numOfElems=(0, _jquery2.default)(this).children('li').length;
var height=Box.GetDimensions(this).height;
maxHeight=height > maxHeight ? height:maxHeight;
if(_this.options.autoHeight){
(0, _jquery2.default)(this).data('calcHeight', height);
}});
if(this.options.autoHeight) result['height']=this.$currentMenu.data('calcHeight');else result['min-height']="".concat(maxHeight, "px");
result['max-width']="".concat(this.$element[0].getBoundingClientRect().width, "px");
return result;
}
}, {
key: "_destroy",
value: function _destroy(){
if(this.options.scrollTop) this.$element.off('.zf.drilldown', this._bindHandler);
this._hideAll();
this.$element.off('mutateme.zf.trigger');
Nest.Burn(this.$element, 'drilldown');
this.$element.unwrap().find('.js-drilldown-back, .is-submenu-parent-item').remove().end().find('.is-active, .is-closing, .is-drilldown-submenu').removeClass('is-active is-closing is-drilldown-submenu').end().find('[data-submenu]').removeAttr('aria-hidden tabindex role');
this.$submenuAnchors.each(function (){
(0, _jquery2.default)(this).off('.zf.drilldown');
});
this.$element.find('[data-is-parent-link]').detach();
this.$submenus.removeClass('drilldown-submenu-cover-previous invisible');
this.$element.find('a').each(function (){
var $link=(0, _jquery2.default)(this);
$link.removeAttr('tabindex');
if($link.data('savedHref')){
$link.attr('href', $link.data('savedHref')).removeData('savedHref');
}else{
return;
}});
}}]);
return Drilldown;
}(Plugin);
Drilldown.defaults={
autoApplyClass: true,
backButton: '<li class="js-drilldown-back"><a tabindex="0">Back</a></li>',
backButtonPosition: 'top',
wrapper: '<div></div>',
parentLink: false,
closeOnClick: false,
autoHeight: false,
animateHeight: false,
scrollTop: false,
scrollTopElement: '',
scrollTopOffset: 0,
animationDuration: 500,
animationEasing: 'swing'
};
var POSITIONS=['left', 'right', 'top', 'bottom'];
var VERTICAL_ALIGNMENTS=['top', 'bottom', 'center'];
var HORIZONTAL_ALIGNMENTS=['left', 'right', 'center'];
var ALIGNMENTS={
'left': VERTICAL_ALIGNMENTS,
'right': VERTICAL_ALIGNMENTS,
'top': HORIZONTAL_ALIGNMENTS,
'bottom': HORIZONTAL_ALIGNMENTS
};
function nextItem(item, array){
var currentIdx=array.indexOf(item);
if(currentIdx===array.length - 1){
return array[0];
}else{
return array[currentIdx + 1];
}}
var Positionable =
function (_Plugin){
_inherits(Positionable, _Plugin);
function Positionable(){
_classCallCheck(this, Positionable);
return _possibleConstructorReturn(this, _getPrototypeOf(Positionable).apply(this, arguments));
}
_createClass(Positionable, [{
key: "_init",
value: function _init(){
this.triedPositions={};
this.position=this.options.position==='auto' ? this._getDefaultPosition():this.options.position;
this.alignment=this.options.alignment==='auto' ? this._getDefaultAlignment():this.options.alignment;
this.originalPosition=this.position;
this.originalAlignment=this.alignment;
}}, {
key: "_getDefaultPosition",
value: function _getDefaultPosition(){
return 'bottom';
}}, {
key: "_getDefaultAlignment",
value: function _getDefaultAlignment(){
switch (this.position){
case 'bottom':
case 'top':
return rtl() ? 'right':'left';
case 'left':
case 'right':
return 'bottom';
}}
}, {
key: "_reposition",
value: function _reposition(){
if(this._alignmentsExhausted(this.position)){
this.position=nextItem(this.position, POSITIONS);
this.alignment=ALIGNMENTS[this.position][0];
}else{
this._realign();
}}
}, {
key: "_realign",
value: function _realign(){
this._addTriedPosition(this.position, this.alignment);
this.alignment=nextItem(this.alignment, ALIGNMENTS[this.position]);
}}, {
key: "_addTriedPosition",
value: function _addTriedPosition(position, alignment){
this.triedPositions[position]=this.triedPositions[position]||[];
this.triedPositions[position].push(alignment);
}}, {
key: "_positionsExhausted",
value: function _positionsExhausted(){
var isExhausted=true;
for (var i=0; i < POSITIONS.length; i++){
isExhausted=isExhausted&&this._alignmentsExhausted(POSITIONS[i]);
}
return isExhausted;
}}, {
key: "_alignmentsExhausted",
value: function _alignmentsExhausted(position){
return this.triedPositions[position]&&this.triedPositions[position].length==ALIGNMENTS[position].length;
}}, {
key: "_getVOffset",
value: function _getVOffset(){
return this.options.vOffset;
}}, {
key: "_getHOffset",
value: function _getHOffset(){
return this.options.hOffset;
}}, {
key: "_setPosition",
value: function _setPosition($anchor, $element, $parent){
if($anchor.attr('aria-expanded')==='false'){
return false;
}
var $eleDims=Box.GetDimensions($element),
$anchorDims=Box.GetDimensions($anchor);
if(!this.options.allowOverlap){
this.position=this.originalPosition;
this.alignment=this.originalAlignment;
}
$element.offset(Box.GetExplicitOffsets($element, $anchor, this.position, this.alignment, this._getVOffset(), this._getHOffset()));
if(!this.options.allowOverlap){
var minOverlap=100000000;
var minCoordinates={
position: this.position,
alignment: this.alignment
};
while (!this._positionsExhausted()){
var overlap=Box.OverlapArea($element, $parent, false, false, this.options.allowBottomOverlap);
if(overlap===0){
return;
}
if(overlap < minOverlap){
minOverlap=overlap;
minCoordinates={
position: this.position,
alignment: this.alignment
};}
this._reposition();
$element.offset(Box.GetExplicitOffsets($element, $anchor, this.position, this.alignment, this._getVOffset(), this._getHOffset()));
}
this.position=minCoordinates.position;
this.alignment=minCoordinates.alignment;
$element.offset(Box.GetExplicitOffsets($element, $anchor, this.position, this.alignment, this._getVOffset(), this._getHOffset()));
}}
}]);
return Positionable;
}(Plugin);
Positionable.defaults={
position: 'auto',
alignment: 'auto',
allowOverlap: false,
allowBottomOverlap: true,
vOffset: 0,
hOffset: 0
};
var Dropdown =
function (_Positionable){
_inherits(Dropdown, _Positionable);
function Dropdown(){
_classCallCheck(this, Dropdown);
return _possibleConstructorReturn(this, _getPrototypeOf(Dropdown).apply(this, arguments));
}
_createClass(Dropdown, [{
key: "_setup",
value: function _setup(element, options){
this.$element=element;
this.options=_jquery2.default.extend({}, Dropdown.defaults, this.$element.data(), options);
this.className='Dropdown';
Triggers.init(_jquery2.default);
this._init();
Keyboard.register('Dropdown', {
'ENTER': 'toggle',
'SPACE': 'toggle',
'ESCAPE': 'close'
});
}
}, {
key: "_init",
value: function _init(){
var $id=this.$element.attr('id');
this.$anchors=(0, _jquery2.default)("[data-toggle=\"".concat($id, "\"]")).length ? (0, _jquery2.default)("[data-toggle=\"".concat($id, "\"]")):(0, _jquery2.default)("[data-open=\"".concat($id, "\"]"));
this.$anchors.attr({
'aria-controls': $id,
'data-is-focus': false,
'data-yeti-box': $id,
'aria-haspopup': true,
'aria-expanded': false
});
this._setCurrentAnchor(this.$anchors.first());
if(this.options.parentClass){
this.$parent=this.$element.parents('.' + this.options.parentClass);
}else{
this.$parent=null;
}
if(typeof this.$element.attr('aria-labelledby')==='undefined'){
if(typeof this.$currentAnchor.attr('id')==='undefined'){
this.$currentAnchor.attr('id', GetYoDigits(6, 'dd-anchor'));
}
this.$element.attr('aria-labelledby', this.$currentAnchor.attr('id'));
}
this.$element.attr({
'aria-hidden': 'true',
'data-yeti-box': $id,
'data-resize': $id
});
_get(_getPrototypeOf(Dropdown.prototype), "_init", this).call(this);
this._events();
}}, {
key: "_getDefaultPosition",
value: function _getDefaultPosition(){
var position=this.$element[0].className.match(/(top|left|right|bottom)/g);
if(position){
return position[0];
}else{
return 'bottom';
}}
}, {
key: "_getDefaultAlignment",
value: function _getDefaultAlignment(){
var horizontalPosition=/float-(\S+)/.exec(this.$currentAnchor.attr('class'));
if(horizontalPosition){
return horizontalPosition[1];
}
return _get(_getPrototypeOf(Dropdown.prototype), "_getDefaultAlignment", this).call(this);
}
}, {
key: "_setPosition",
value: function _setPosition(){
this.$element.removeClass("has-position-".concat(this.position, " has-alignment-").concat(this.alignment));
_get(_getPrototypeOf(Dropdown.prototype), "_setPosition", this).call(this, this.$currentAnchor, this.$element, this.$parent);
this.$element.addClass("has-position-".concat(this.position, " has-alignment-").concat(this.alignment));
}
}, {
key: "_setCurrentAnchor",
value: function _setCurrentAnchor(el){
this.$currentAnchor=(0, _jquery2.default)(el);
}
}, {
key: "_events",
value: function _events(){
var _this=this;
this.$element.on({
'open.zf.trigger': this.open.bind(this),
'close.zf.trigger': this.close.bind(this),
'toggle.zf.trigger': this.toggle.bind(this),
'resizeme.zf.trigger': this._setPosition.bind(this)
});
this.$anchors.off('click.zf.trigger').on('click.zf.trigger', function (){
_this._setCurrentAnchor(this);
});
if(this.options.hover){
this.$anchors.off('mouseenter.zf.dropdown mouseleave.zf.dropdown').on('mouseenter.zf.dropdown', function (){
_this._setCurrentAnchor(this);
var bodyData=(0, _jquery2.default)('body').data();
if(typeof bodyData.whatinput==='undefined'||bodyData.whatinput==='mouse'){
clearTimeout(_this.timeout);
_this.timeout=setTimeout(function (){
_this.open();
_this.$anchors.data('hover', true);
}, _this.options.hoverDelay);
}}).on('mouseleave.zf.dropdown', ignoreMousedisappear(function (){
clearTimeout(_this.timeout);
_this.timeout=setTimeout(function (){
_this.close();
_this.$anchors.data('hover', false);
}, _this.options.hoverDelay);
}));
if(this.options.hoverPane){
this.$element.off('mouseenter.zf.dropdown mouseleave.zf.dropdown').on('mouseenter.zf.dropdown', function (){
clearTimeout(_this.timeout);
}).on('mouseleave.zf.dropdown', ignoreMousedisappear(function (){
clearTimeout(_this.timeout);
_this.timeout=setTimeout(function (){
_this.close();
_this.$anchors.data('hover', false);
}, _this.options.hoverDelay);
}));
}}
this.$anchors.add(this.$element).on('keydown.zf.dropdown', function (e){
var $target=(0, _jquery2.default)(this),
visibleFocusableElements=Keyboard.findFocusable(_this.$element);
Keyboard.handleKey(e, 'Dropdown', {
open: function open(){
if($target.is(_this.$anchors)&&!$target.is('input, textarea')){
_this.open();
_this.$element.attr('tabindex', -1).focus();
e.preventDefault();
}},
close: function close(){
_this.close();
_this.$anchors.focus();
}});
});
}
}, {
key: "_addBodyHandler",
value: function _addBodyHandler(){
var $body=(0, _jquery2.default)(document.body).not(this.$element),
_this=this;
$body.off('click.zf.dropdown').on('click.zf.dropdown', function (e){
if(_this.$anchors.is(e.target)||_this.$anchors.find(e.target).length){
return;
}
if(_this.$element.is(e.target)||_this.$element.find(e.target).length){
return;
}
_this.close();
$body.off('click.zf.dropdown');
});
}
}, {
key: "open",
value: function open(){
this.$element.trigger('closeme.zf.dropdown', this.$element.attr('id'));
this.$anchors.addClass('hover').attr({
'aria-expanded': true
});// this.$element;
this.$element.addClass('is-opening');
this._setPosition();
this.$element.removeClass('is-opening').addClass('is-open').attr({
'aria-hidden': false
});
if(this.options.autoFocus){
var $focusable=Keyboard.findFocusable(this.$element);
if($focusable.length){
$focusable.eq(0).focus();
}}
if(this.options.closeOnClick){
this._addBodyHandler();
}
if(this.options.trapFocus){
Keyboard.trapFocus(this.$element);
}
this.$element.trigger('show.zf.dropdown', [this.$element]);
}
}, {
key: "close",
value: function close(){
if(!this.$element.hasClass('is-open')){
return false;
}
this.$element.removeClass('is-open').attr({
'aria-hidden': true
});
this.$anchors.removeClass('hover').attr('aria-expanded', false);
this.$element.trigger('hide.zf.dropdown', [this.$element]);
if(this.options.trapFocus){
Keyboard.releaseFocus(this.$element);
}}
}, {
key: "toggle",
value: function toggle(){
if(this.$element.hasClass('is-open')){
if(this.$anchors.data('hover')) return;
this.close();
}else{
this.open();
}}
}, {
key: "_destroy",
value: function _destroy(){
this.$element.off('.zf.trigger').hide();
this.$anchors.off('.zf.dropdown');
(0, _jquery2.default)(document.body).off('click.zf.dropdown');
}}]);
return Dropdown;
}(Positionable);
Dropdown.defaults={
parentClass: null,
hoverDelay: 250,
hover: false,
hoverPane: false,
vOffset: 0,
hOffset: 0,
position: 'auto',
alignment: 'auto',
allowOverlap: false,
allowBottomOverlap: true,
trapFocus: false,
autoFocus: false,
closeOnClick: false
};
var DropdownMenu =
function (_Plugin){
_inherits(DropdownMenu, _Plugin);
function DropdownMenu(){
_classCallCheck(this, DropdownMenu);
return _possibleConstructorReturn(this, _getPrototypeOf(DropdownMenu).apply(this, arguments));
}
_createClass(DropdownMenu, [{
key: "_setup",
value: function _setup(element, options){
this.$element=element;
this.options=_jquery2.default.extend({}, DropdownMenu.defaults, this.$element.data(), options);
this.className='DropdownMenu';
this._init();
Keyboard.register('DropdownMenu', {
'ENTER': 'open',
'SPACE': 'open',
'ARROW_RIGHT': 'next',
'ARROW_UP': 'up',
'ARROW_DOWN': 'down',
'ARROW_LEFT': 'previous',
'ESCAPE': 'close'
});
}
}, {
key: "_init",
value: function _init(){
Nest.Feather(this.$element, 'dropdown');
var subs=this.$element.find('li.is-dropdown-submenu-parent');
this.$element.children('.is-dropdown-submenu-parent').children('.is-dropdown-submenu').addClass('first-sub');
this.$menuItems=this.$element.find('[role="menuitem"]');
this.$tabs=this.$element.children('[role="menuitem"]');
this.$tabs.find('ul.is-dropdown-submenu').addClass(this.options.verticalClass);
if(this.options.alignment==='auto'){
if(this.$element.hasClass(this.options.rightClass)||rtl()||this.$element.parents('.top-bar-right').is('*')){
this.options.alignment='right';
subs.addClass('opens-left');
}else{
this.options.alignment='left';
subs.addClass('opens-right');
}}else{
if(this.options.alignment==='right'){
subs.addClass('opens-left');
}else{
subs.addClass('opens-right');
}}
this.changed=false;
this._events();
}}, {
key: "_isVertical",
value: function _isVertical(){
return this.$tabs.css('display')==='block'||this.$element.css('flex-direction')==='column';
}}, {
key: "_isRtl",
value: function _isRtl(){
return this.$element.hasClass('align-right')||rtl()&&!this.$element.hasClass('align-left');
}
}, {
key: "_events",
value: function _events(){
var _this=this,
hasTouch='ontouchstart' in window||typeof window.ontouchstart!=='undefined',
parClass='is-dropdown-submenu-parent';
var handleClickFn=function handleClickFn(e){
var $elem=(0, _jquery2.default)(e.target).parentsUntil('ul', ".".concat(parClass)),
hasSub=$elem.hasClass(parClass),
hasClicked=$elem.attr('data-is-click')==='true',
$sub=$elem.children('.is-dropdown-submenu');
if(hasSub){
if(hasClicked){
if(!_this.options.closeOnClick||!_this.options.clickOpen&&!hasTouch||_this.options.forceFollow&&hasTouch){
return;
}else{
e.stopImmediatePropagation();
e.preventDefault();
_this._hide($elem);
}}else{
e.preventDefault();
e.stopImmediatePropagation();
_this._show($sub);
$elem.add($elem.parentsUntil(_this.$element, ".".concat(parClass))).attr('data-is-click', true);
}}
};
if(this.options.clickOpen||hasTouch){
this.$menuItems.on('click.zf.dropdownmenu touchstart.zf.dropdownmenu', handleClickFn);
}
if(_this.options.closeOnClickInside){
this.$menuItems.on('click.zf.dropdownmenu', function (e){
var $elem=(0, _jquery2.default)(this),
hasSub=$elem.hasClass(parClass);
if(!hasSub){
_this._hide();
}});
}
if(!this.options.disableHover){
this.$menuItems.on('mouseenter.zf.dropdownmenu', function (e){
var $elem=(0, _jquery2.default)(this),
hasSub=$elem.hasClass(parClass);
if(hasSub){
clearTimeout($elem.data('_delay'));
$elem.data('_delay', setTimeout(function (){
_this._show($elem.children('.is-dropdown-submenu'));
}, _this.options.hoverDelay));
}}).on('mouseleave.zf.dropdownMenu', ignoreMousedisappear(function (e){
var $elem=(0, _jquery2.default)(this),
hasSub=$elem.hasClass(parClass);
if(hasSub&&_this.options.autoclose){
if($elem.attr('data-is-click')==='true'&&_this.options.clickOpen){
return false;
}
clearTimeout($elem.data('_delay'));
$elem.data('_delay', setTimeout(function (){
_this._hide($elem);
}, _this.options.closingTime));
}}));
}
this.$menuItems.on('keydown.zf.dropdownmenu', function (e){
var $element=(0, _jquery2.default)(e.target).parentsUntil('ul', '[role="menuitem"]'),
isTab=_this.$tabs.index($element) > -1,
$elements=isTab ? _this.$tabs:$element.siblings('li').add($element),
$prevElement,
$nextElement;
$elements.each(function (i){
if((0, _jquery2.default)(this).is($element)){
$prevElement=$elements.eq(i - 1);
$nextElement=$elements.eq(i + 1);
return;
}});
var nextSibling=function nextSibling(){
$nextElement.children('a:first').focus();
e.preventDefault();
},
prevSibling=function prevSibling(){
$prevElement.children('a:first').focus();
e.preventDefault();
},
openSub=function openSub(){
var $sub=$element.children('ul.is-dropdown-submenu');
if($sub.length){
_this._show($sub);
$element.find('li > a:first').focus();
e.preventDefault();
}else{
return;
}},
closeSub=function closeSub(){
var close=$element.parent('ul').parent('li');
close.children('a:first').focus();
_this._hide(close);
e.preventDefault();
};
var functions={
open: openSub,
close: function close(){
_this._hide(_this.$element);
_this.$menuItems.eq(0).children('a').focus();
e.preventDefault();
},
handled: function handled(){
e.stopImmediatePropagation();
}};
if(isTab){
if(_this._isVertical()){
if(_this._isRtl()){
_jquery2.default.extend(functions, {
down: nextSibling,
up: prevSibling,
next: closeSub,
previous: openSub
});
}else{
_jquery2.default.extend(functions, {
down: nextSibling,
up: prevSibling,
next: openSub,
previous: closeSub
});
}}else{
if(_this._isRtl()){
_jquery2.default.extend(functions, {
next: prevSibling,
previous: nextSibling,
down: openSub,
up: closeSub
});
}else{
_jquery2.default.extend(functions, {
next: nextSibling,
previous: prevSibling,
down: openSub,
up: closeSub
});
}}
}else{
if(_this._isRtl()){
_jquery2.default.extend(functions, {
next: closeSub,
previous: openSub,
down: nextSibling,
up: prevSibling
});
}else{
_jquery2.default.extend(functions, {
next: openSub,
previous: closeSub,
down: nextSibling,
up: prevSibling
});
}}
Keyboard.handleKey(e, 'DropdownMenu', functions);
});
}
}, {
key: "_addBodyHandler",
value: function _addBodyHandler(){
var $body=(0, _jquery2.default)(document.body),
_this=this;
$body.off('mouseup.zf.dropdownmenu touchend.zf.dropdownmenu').on('mouseup.zf.dropdownmenu touchend.zf.dropdownmenu', function (e){
var $link=_this.$element.find(e.target);
if($link.length){
return;
}
_this._hide();
$body.off('mouseup.zf.dropdownmenu touchend.zf.dropdownmenu');
});
}
}, {
key: "_show",
value: function _show($sub){
var idx=this.$tabs.index(this.$tabs.filter(function (i, el){
return (0, _jquery2.default)(el).find($sub).length > 0;
}));
var $sibs=$sub.parent('li.is-dropdown-submenu-parent').siblings('li.is-dropdown-submenu-parent');
this._hide($sibs, idx);
$sub.css('visibility', 'hidden').addClass('js-dropdown-active').parent('li.is-dropdown-submenu-parent').addClass('is-active');
var clear=Box.ImNotTouchingYou($sub, null, true);
if(!clear){
var oldClass=this.options.alignment==='left' ? '-right':'-left',
$parentLi=$sub.parent('.is-dropdown-submenu-parent');
$parentLi.removeClass("opens".concat(oldClass)).addClass("opens-".concat(this.options.alignment));
clear=Box.ImNotTouchingYou($sub, null, true);
if(!clear){
$parentLi.removeClass("opens-".concat(this.options.alignment)).addClass('opens-inner');
}
this.changed=true;
}
$sub.css('visibility', '');
if(this.options.closeOnClick){
this._addBodyHandler();
}
this.$element.trigger('show.zf.dropdownmenu', [$sub]);
}
}, {
key: "_hide",
value: function _hide($elem, idx){
var $toClose;
if($elem&&$elem.length){
$toClose=$elem;
}else if(typeof idx!=='undefined'){
$toClose=this.$tabs.not(function (i, el){
return i===idx;
});
}else{
$toClose=this.$element;
}
var somethingToClose=$toClose.hasClass('is-active')||$toClose.find('.is-active').length > 0;
if(somethingToClose){
$toClose.find('li.is-active').add($toClose).attr({
'data-is-click': false
}).removeClass('is-active');
$toClose.find('ul.js-dropdown-active').removeClass('js-dropdown-active');
if(this.changed||$toClose.find('opens-inner').length){
var oldClass=this.options.alignment==='left' ? 'right':'left';
$toClose.find('li.is-dropdown-submenu-parent').add($toClose).removeClass("opens-inner opens-".concat(this.options.alignment)).addClass("opens-".concat(oldClass));
this.changed=false;
}
this.$element.trigger('hide.zf.dropdownmenu', [$toClose]);
}}
}, {
key: "_destroy",
value: function _destroy(){
this.$menuItems.off('.zf.dropdownmenu').removeAttr('data-is-click').removeClass('is-right-arrow is-left-arrow is-down-arrow opens-right opens-left opens-inner');
(0, _jquery2.default)(document.body).off('.zf.dropdownmenu');
Nest.Burn(this.$element, 'dropdown');
}}]);
return DropdownMenu;
}(Plugin);
DropdownMenu.defaults={
disableHover: false,
autoclose: true,
hoverDelay: 50,
clickOpen: false,
closingTime: 500,
alignment: 'auto',
closeOnClick: true,
closeOnClickInside: true,
verticalClass: 'vertical',
rightClass: 'align-right',
forceFollow: true
};
var Equalizer =
function (_Plugin){
_inherits(Equalizer, _Plugin);
function Equalizer(){
_classCallCheck(this, Equalizer);
return _possibleConstructorReturn(this, _getPrototypeOf(Equalizer).apply(this, arguments));
}
_createClass(Equalizer, [{
key: "_setup",
value: function _setup(element, options){
this.$element=element;
this.options=_jquery2.default.extend({}, Equalizer.defaults, this.$element.data(), options);
this.className='Equalizer';
this._init();
}
}, {
key: "_init",
value: function _init(){
var eqId=this.$element.attr('data-equalizer')||'';
var $watched=this.$element.find("[data-equalizer-watch=\"".concat(eqId, "\"]"));
MediaQuery._init();
this.$watched=$watched.length ? $watched:this.$element.find('[data-equalizer-watch]');
this.$element.attr('data-resize', eqId||GetYoDigits(6, 'eq'));
this.$element.attr('data-mutate', eqId||GetYoDigits(6, 'eq'));
this.hasNested=this.$element.find('[data-equalizer]').length > 0;
this.isNested=this.$element.parentsUntil(document.body, '[data-equalizer]').length > 0;
this.isOn=false;
this._bindHandler={
onResizeMeBound: this._onResizeMe.bind(this),
onPostEqualizedBound: this._onPostEqualized.bind(this)
};
var imgs=this.$element.find('img');
var tooSmall;
if(this.options.equalizeOn){
tooSmall=this._checkMQ();
(0, _jquery2.default)(window).on('changed.zf.mediaquery', this._checkMQ.bind(this));
}else{
this._events();
}
if(typeof tooSmall!=='undefined'&&tooSmall===false||typeof tooSmall==='undefined'){
if(imgs.length){
onImagesLoaded(imgs, this._reflow.bind(this));
}else{
this._reflow();
}}
}
}, {
key: "_pauseEvents",
value: function _pauseEvents(){
this.isOn=false;
this.$element.off({
'.zf.equalizer': this._bindHandler.onPostEqualizedBound,
'resizeme.zf.trigger': this._bindHandler.onResizeMeBound,
'mutateme.zf.trigger': this._bindHandler.onResizeMeBound
});
}
}, {
key: "_onResizeMe",
value: function _onResizeMe(e){
this._reflow();
}
}, {
key: "_onPostEqualized",
value: function _onPostEqualized(e){
if(e.target!==this.$element[0]){
this._reflow();
}}
}, {
key: "_events",
value: function _events(){
this._pauseEvents();
if(this.hasNested){
this.$element.on('postequalized.zf.equalizer', this._bindHandler.onPostEqualizedBound);
}else{
this.$element.on('resizeme.zf.trigger', this._bindHandler.onResizeMeBound);
this.$element.on('mutateme.zf.trigger', this._bindHandler.onResizeMeBound);
}
this.isOn=true;
}
}, {
key: "_checkMQ",
value: function _checkMQ(){
var tooSmall = !MediaQuery.is(this.options.equalizeOn);
if(tooSmall){
if(this.isOn){
this._pauseEvents();
this.$watched.css('height', 'auto');
}}else{
if(!this.isOn){
this._events();
}}
return tooSmall;
}
}, {
key: "_killswitch",
value: function _killswitch(){
return;
}
}, {
key: "_reflow",
value: function _reflow(){
if(!this.options.equalizeOnStack){
if(this._isStacked()){
this.$watched.css('height', 'auto');
return false;
}}
if(this.options.equalizeByRow){
this.getHeightsByRow(this.applyHeightByRow.bind(this));
}else{
this.getHeights(this.applyHeight.bind(this));
}}
}, {
key: "_isStacked",
value: function _isStacked(){
if(!this.$watched[0]||!this.$watched[1]){
return true;
}
return this.$watched[0].getBoundingClientRect().top!==this.$watched[1].getBoundingClientRect().top;
}
}, {
key: "getHeights",
value: function getHeights(cb){
var heights=[];
for (var i=0, len=this.$watched.length; i < len; i++){
this.$watched[i].style.height='auto';
heights.push(this.$watched[i].offsetHeight);
}
cb(heights);
}
}, {
key: "getHeightsByRow",
value: function getHeightsByRow(cb){
var lastElTopOffset=this.$watched.length ? this.$watched.first().offset().top:0,
groups=[],
group=0;
groups[group]=[];
for (var i=0, len=this.$watched.length; i < len; i++){
this.$watched[i].style.height='auto';
var elOffsetTop=(0, _jquery2.default)(this.$watched[i]).offset().top;
if(elOffsetTop!=lastElTopOffset){
group++;
groups[group]=[];
lastElTopOffset=elOffsetTop;
}
groups[group].push([this.$watched[i], this.$watched[i].offsetHeight]);
}
for (var j=0, ln=groups.length; j < ln; j++){
var heights=(0, _jquery2.default)(groups[j]).map(function (){
return this[1];
}).get();
var max=Math.max.apply(null, heights);
groups[j].push(max);
}
cb(groups);
}
}, {
key: "applyHeight",
value: function applyHeight(heights){
var max=Math.max.apply(null, heights);
this.$element.trigger('preequalized.zf.equalizer');
this.$watched.css('height', max);
this.$element.trigger('postequalized.zf.equalizer');
}
}, {
key: "applyHeightByRow",
value: function applyHeightByRow(groups){
this.$element.trigger('preequalized.zf.equalizer');
for (var i=0, len=groups.length; i < len; i++){
var groupsILength=groups[i].length,
max=groups[i][groupsILength - 1];
if(groupsILength <=2){
(0, _jquery2.default)(groups[i][0][0]).css({
'height': 'auto'
});
continue;
}
this.$element.trigger('preequalizedrow.zf.equalizer');
for (var j=0, lenJ=groupsILength - 1; j < lenJ; j++){
(0, _jquery2.default)(groups[i][j][0]).css({
'height': max
});
}
this.$element.trigger('postequalizedrow.zf.equalizer');
}
this.$element.trigger('postequalized.zf.equalizer');
}
}, {
key: "_destroy",
value: function _destroy(){
this._pauseEvents();
this.$watched.css('height', 'auto');
}}]);
return Equalizer;
}(Plugin);
Equalizer.defaults={
equalizeOnStack: false,
equalizeByRow: false,
equalizeOn: ''
};
var Interchange =
function (_Plugin){
_inherits(Interchange, _Plugin);
function Interchange(){
_classCallCheck(this, Interchange);
return _possibleConstructorReturn(this, _getPrototypeOf(Interchange).apply(this, arguments));
}
_createClass(Interchange, [{
key: "_setup",
value: function _setup(element, options){
this.$element=element;
this.options=_jquery2.default.extend({}, Interchange.defaults, options);
this.rules=[];
this.currentPath='';
this.className='Interchange';
this._init();
this._events();
}
}, {
key: "_init",
value: function _init(){
MediaQuery._init();
var id=this.$element[0].id||GetYoDigits(6, 'interchange');
this.$element.attr({
'data-resize': id,
'id': id
});
this._addBreakpoints();
this._generateRules();
this._reflow();
}
}, {
key: "_events",
value: function _events(){
var _this2=this;
this.$element.off('resizeme.zf.trigger').on('resizeme.zf.trigger', function (){
return _this2._reflow();
});
}
}, {
key: "_reflow",
value: function _reflow(){
var match;
for (var i in this.rules){
if(this.rules.hasOwnProperty(i)){
var rule=this.rules[i];
if(window.matchMedia(rule.query).matches){
match=rule;
}}
}
if(match){
this.replace(match.path);
}}
}, {
key: "_addBreakpoints",
value: function _addBreakpoints(){
for (var i in MediaQuery.queries){
if(MediaQuery.queries.hasOwnProperty(i)){
var query=MediaQuery.queries[i];
Interchange.SPECIAL_QUERIES[query.name]=query.value;
}}
}
}, {
key: "_generateRules",
value: function _generateRules(element){
var rulesList=[];
var rules;
if(this.options.rules){
rules=this.options.rules;
}else{
rules=this.$element.data('interchange');
}
rules=typeof rules==='string' ? rules.match(/\[.*?, .*?\]/g):rules;
for (var i in rules){
if(rules.hasOwnProperty(i)){
var rule=rules[i].slice(1, -1).split(', ');
var path=rule.slice(0, -1).join('');
var query=rule[rule.length - 1];
if(Interchange.SPECIAL_QUERIES[query]){
query=Interchange.SPECIAL_QUERIES[query];
}
rulesList.push({
path: path,
query: query
});
}}
this.rules=rulesList;
}
}, {
key: "replace",
value: function replace(path){
if(this.currentPath===path) return;
var _this=this,
trigger='replaced.zf.interchange';
if(this.$element[0].nodeName==='IMG'){
this.$element.attr('src', path).on('load', function (){
_this.currentPath=path;
}).trigger(trigger);
}
else if(path.match(/\.(gif|jpg|jpeg|png|svg|tiff)([?#].*)?/i)){
path=path.replace(/\(/g, '%28').replace(/\)/g, '%29');
this.$element.css({
'background-image': 'url(' + path + ')'
}).trigger(trigger);
}else{
_jquery2.default.get(path, function (response){
_this.$element.html(response).trigger(trigger);
(0, _jquery2.default)(response).foundation();
_this.currentPath=path;
});
}
}
}, {
key: "_destroy",
value: function _destroy(){
this.$element.off('resizeme.zf.trigger');
}}]);
return Interchange;
}(Plugin);
Interchange.defaults={
rules: null
};
Interchange.SPECIAL_QUERIES={
'landscape': 'screen and (orientation: landscape)',
'portrait': 'screen and (orientation: portrait)',
'retina': 'only screen and (-webkit-min-device-pixel-ratio: 2), only screen and (min--moz-device-pixel-ratio: 2), only screen and (-o-min-device-pixel-ratio: 2/1), only screen and (min-device-pixel-ratio: 2), only screen and (min-resolution: 192dpi), only screen and (min-resolution: 2dppx)'
};
var SmoothScroll =
function (_Plugin){
_inherits(SmoothScroll, _Plugin);
function SmoothScroll(){
_classCallCheck(this, SmoothScroll);
return _possibleConstructorReturn(this, _getPrototypeOf(SmoothScroll).apply(this, arguments));
}
_createClass(SmoothScroll, [{
key: "_setup",
value: function _setup(element, options){
this.$element=element;
this.options=_jquery2.default.extend({}, SmoothScroll.defaults, this.$element.data(), options);
this.className='SmoothScroll';
this._init();
}
}, {
key: "_init",
value: function _init(){
var id=this.$element[0].id||GetYoDigits(6, 'smooth-scroll');
this.$element.attr({
id: id
});
this._events();
}
}, {
key: "_events",
value: function _events(){
this.$element.on('click.zf.smoothScroll', this._handleLinkClick);
this.$element.on('click.zf.smoothScroll', 'a[href^="#"]', this._handleLinkClick);
}
}, {
key: "_handleLinkClick",
value: function _handleLinkClick(e){
var _this=this;
if(!(0, _jquery2.default)(e.currentTarget).is('a[href^="#"]')) return;
var arrival=e.currentTarget.getAttribute('href');
this._inTransition=true;
SmoothScroll.scrollToLoc(arrival, this.options, function (){
_this._inTransition=false;
});
e.preventDefault();
}}, {
key: "_destroy",
value: function _destroy(){
this.$element.off('click.zf.smoothScroll', this._handleLinkClick);
this.$element.off('click.zf.smoothScroll', 'a[href^="#"]', this._handleLinkClick);
}}], [{
key: "scrollToLoc",
value: function scrollToLoc(loc){
var options=arguments.length > 1&&arguments[1]!==undefined ? arguments[1]:SmoothScroll.defaults;
var callback=arguments.length > 2 ? arguments[2]:undefined;
var $loc=(0, _jquery2.default)(loc);
if(!$loc.length) return false;
var scrollPos=Math.round($loc.offset().top - options.threshold / 2 - options.offset);
(0, _jquery2.default)('html, body').stop(true).animate({
scrollTop: scrollPos
}, options.animationDuration, options.animationEasing, function (){
if(typeof callback==='function'){
callback();
}});
}}]);
return SmoothScroll;
}(Plugin);
SmoothScroll.defaults={
animationDuration: 500,
animationEasing: 'linear',
threshold: 50,
offset: 0
};
var Magellan =
function (_Plugin){
_inherits(Magellan, _Plugin);
function Magellan(){
_classCallCheck(this, Magellan);
return _possibleConstructorReturn(this, _getPrototypeOf(Magellan).apply(this, arguments));
}
_createClass(Magellan, [{
key: "_setup",
value: function _setup(element, options){
this.$element=element;
this.options=_jquery2.default.extend({}, Magellan.defaults, this.$element.data(), options);
this.className='Magellan';
this._init();
this.calcPoints();
}
}, {
key: "_init",
value: function _init(){
var id=this.$element[0].id||GetYoDigits(6, 'magellan');
this.$targets=(0, _jquery2.default)('[data-magellan-target]');
this.$links=this.$element.find('a');
this.$element.attr({
'data-resize': id,
'data-scroll': id,
'id': id
});
this.$active=(0, _jquery2.default)();
this.scrollPos=parseInt(window.pageYOffset, 10);
this._events();
}
}, {
key: "calcPoints",
value: function calcPoints(){
var _this=this,
body=document.body,
html=document.documentElement;
this.points=[];
this.winHeight=Math.round(Math.max(window.innerHeight, html.clientHeight));
this.docHeight=Math.round(Math.max(body.scrollHeight, body.offsetHeight, html.clientHeight, html.scrollHeight, html.offsetHeight));
this.$targets.each(function (){
var $tar=(0, _jquery2.default)(this),
pt=Math.round($tar.offset().top - _this.options.threshold);
$tar.targetPoint=pt;
_this.points.push(pt);
});
}
}, {
key: "_events",
value: function _events(){
var _this=this,
$body=(0, _jquery2.default)('html, body'),
opts={
duration: _this.options.animationDuration,
easing: _this.options.animationEasing
};
(0, _jquery2.default)(window).one('load', function (){
if(_this.options.deepLinking){
if(location.hash){
_this.scrollToLoc(location.hash);
}}
_this.calcPoints();
_this._updateActive();
});
_this.onLoadListener=onLoad((0, _jquery2.default)(window), function (){
_this.$element.on({
'resizeme.zf.trigger': _this.reflow.bind(_this),
'scrollme.zf.trigger': _this._updateActive.bind(_this)
}).on('click.zf.magellan', 'a[href^="#"]', function (e){
e.preventDefault();
var arrival=this.getAttribute('href');
_this.scrollToLoc(arrival);
});
});
this._deepLinkScroll=function (e){
if(_this.options.deepLinking){
_this.scrollToLoc(window.location.hash);
}};
(0, _jquery2.default)(window).on('hashchange', this._deepLinkScroll);
}
}, {
key: "scrollToLoc",
value: function scrollToLoc(loc){
this._inTransition=true;
var _this=this;
var options={
animationEasing: this.options.animationEasing,
animationDuration: this.options.animationDuration,
threshold: this.options.threshold,
offset: this.options.offset
};
SmoothScroll.scrollToLoc(loc, options, function (){
_this._inTransition=false;
});
}
}, {
key: "reflow",
value: function reflow(){
this.calcPoints();
this._updateActive();
}
}, {
key: "_updateActive",
value: function _updateActive()
{
var _this2=this;
if(this._inTransition) return;
var newScrollPos=parseInt(window.pageYOffset, 10);
var isScrollingUp=this.scrollPos > newScrollPos;
this.scrollPos=newScrollPos;
var activeIdx;
if(newScrollPos < this.points[0]) ;
else if(newScrollPos + this.winHeight===this.docHeight){
activeIdx=this.points.length - 1;
}else{
var visibleLinks=this.points.filter(function (p, i){
return p - _this2.options.offset - (isScrollingUp ? _this2.options.threshold:0) <=newScrollPos;
});
activeIdx=visibleLinks.length ? visibleLinks.length - 1:0;
}
var $oldActive=this.$active;
var activeHash='';
if(typeof activeIdx!=='undefined'){
this.$active=this.$links.filter('[href="#' + this.$targets.eq(activeIdx).data('magellan-target') + '"]');
if(this.$active.length) activeHash=this.$active[0].getAttribute('href');
}else{
this.$active=(0, _jquery2.default)();
}
var isNewActive = !(!this.$active.length&&!$oldActive.length)&&!this.$active.is($oldActive);
var isNewHash=activeHash!==window.location.hash;
if(isNewActive){
$oldActive.removeClass(this.options.activeClass);
this.$active.addClass(this.options.activeClass);
}
if(this.options.deepLinking&&isNewHash){
if(window.history.pushState){
var url=activeHash ? activeHash:window.location.pathname + window.location.search;
window.history.pushState(null, null, url);
}else{
window.location.hash=activeHash;
}}
if(isNewActive){
this.$element.trigger('update.zf.magellan', [this.$active]);
}}
}, {
key: "_destroy",
value: function _destroy(){
this.$element.off('.zf.trigger .zf.magellan').find(".".concat(this.options.activeClass)).removeClass(this.options.activeClass);
if(this.options.deepLinking){
var hash=this.$active[0].getAttribute('href');
window.location.hash.replace(hash, '');
}
(0, _jquery2.default)(window).off('hashchange', this._deepLinkScroll);
if(this.onLoadListener) (0, _jquery2.default)(window).off(this.onLoadListener);
}}]);
return Magellan;
}(Plugin);
Magellan.defaults={
animationDuration: 500,
animationEasing: 'linear',
threshold: 50,
activeClass: 'is-active',
deepLinking: false,
offset: 0
};
var OffCanvas =
function (_Plugin){
_inherits(OffCanvas, _Plugin);
function OffCanvas(){
_classCallCheck(this, OffCanvas);
return _possibleConstructorReturn(this, _getPrototypeOf(OffCanvas).apply(this, arguments));
}
_createClass(OffCanvas, [{
key: "_setup",
value: function _setup(element, options){
var _this2=this;
this.className='OffCanvas';
this.$element=element;
this.options=_jquery2.default.extend({}, OffCanvas.defaults, this.$element.data(), options);
this.contentClasses={
base: [],
reveal: []
};
this.$lastTrigger=(0, _jquery2.default)();
this.$triggers=(0, _jquery2.default)();
this.position='left';
this.$content=(0, _jquery2.default)();
this.nested = !!this.options.nested;
(0, _jquery2.default)(['push', 'overlap']).each(function (index, val){
_this2.contentClasses.base.push('has-transition-' + val);
});
(0, _jquery2.default)(['left', 'right', 'top', 'bottom']).each(function (index, val){
_this2.contentClasses.base.push('has-position-' + val);
_this2.contentClasses.reveal.push('has-reveal-' + val);
});
Triggers.init(_jquery2.default);
MediaQuery._init();
this._init();
this._events();
Keyboard.register('OffCanvas', {
'ESCAPE': 'close'
});
}
}, {
key: "_init",
value: function _init(){
var id=this.$element.attr('id');
this.$element.attr('aria-hidden', 'true');
if(this.options.contentId){
this.$content=(0, _jquery2.default)('#' + this.options.contentId);
}else if(this.$element.siblings('[data-off-canvas-content]').length){
this.$content=this.$element.siblings('[data-off-canvas-content]').first();
}else{
this.$content=this.$element.closest('[data-off-canvas-content]').first();
}
if(!this.options.contentId){
this.nested=this.$element.siblings('[data-off-canvas-content]').length===0;
}else if(this.options.contentId&&this.options.nested===null){
console.warn('Remember to use the nested option if using the content ID option!');
}
if(this.nested===true){
this.options.transition='overlap';
this.$element.removeClass('is-transition-push');
}
this.$element.addClass("is-transition-".concat(this.options.transition, " is-closed"));
this.$triggers=(0, _jquery2.default)(document).find('[data-open="' + id + '"], [data-close="' + id + '"], [data-toggle="' + id + '"]').attr('aria-expanded', 'false').attr('aria-controls', id);
this.position=this.$element.is('.position-left, .position-top, .position-right, .position-bottom') ? this.$element.attr('class').match(/position\-(left|top|right|bottom)/)[1]:this.position;
if(this.options.contentOverlay===true){
var overlay=document.createElement('div');
var overlayPosition=(0, _jquery2.default)(this.$element).css("position")==='fixed' ? 'is-overlay-fixed':'is-overlay-absolute';
overlay.setAttribute('class', 'js-off-canvas-overlay ' + overlayPosition);
this.$overlay=(0, _jquery2.default)(overlay);
if(overlayPosition==='is-overlay-fixed'){
(0, _jquery2.default)(this.$overlay).insertAfter(this.$element);
}else{
this.$content.append(this.$overlay);
}}
var revealOnRegExp=new RegExp(RegExpEscape(this.options.revealClass) + '([^\\s]+)', 'g');
var revealOnClass=revealOnRegExp.exec(this.$element[0].className);
if(revealOnClass){
this.options.isRevealed=true;
this.options.revealOn=this.options.revealOn||revealOnClass[1];
}
if(this.options.isRevealed===true&&this.options.revealOn){
this.$element.first().addClass("".concat(this.options.revealClass).concat(this.options.revealOn));
this._setMQChecker();
}
if(this.options.transitionTime){
this.$element.css('transition-duration', this.options.transitionTime);
}
this._removeContentClasses();
}
}, {
key: "_events",
value: function _events(){
this.$element.off('.zf.trigger .zf.offcanvas').on({
'open.zf.trigger': this.open.bind(this),
'close.zf.trigger': this.close.bind(this),
'toggle.zf.trigger': this.toggle.bind(this),
'keydown.zf.offcanvas': this._handleKeyboard.bind(this)
});
if(this.options.closeOnClick===true){
var $target=this.options.contentOverlay ? this.$overlay:this.$content;
$target.on({
'click.zf.offcanvas': this.close.bind(this)
});
}}
}, {
key: "_setMQChecker",
value: function _setMQChecker(){
var _this=this;
this.onLoadListener=onLoad((0, _jquery2.default)(window), function (){
if(MediaQuery.atLeast(_this.options.revealOn)){
_this.reveal(true);
}});
(0, _jquery2.default)(window).on('changed.zf.mediaquery', function (){
if(MediaQuery.atLeast(_this.options.revealOn)){
_this.reveal(true);
}else{
_this.reveal(false);
}});
}
}, {
key: "_removeContentClasses",
value: function _removeContentClasses(hasReveal){
if(typeof hasReveal!=='boolean'){
this.$content.removeClass(this.contentClasses.base.join(' '));
}else if(hasReveal===false){
this.$content.removeClass("has-reveal-".concat(this.position));
}}
}, {
key: "_addContentClasses",
value: function _addContentClasses(hasReveal){
this._removeContentClasses(hasReveal);
if(typeof hasReveal!=='boolean'){
this.$content.addClass("has-transition-".concat(this.options.transition, " has-position-").concat(this.position));
}else if(hasReveal===true){
this.$content.addClass("has-reveal-".concat(this.position));
}}
}, {
key: "reveal",
value: function reveal(isRevealed){
if(isRevealed){
this.close();
this.isRevealed=true;
this.$element.attr('aria-hidden', 'false');
this.$element.off('open.zf.trigger toggle.zf.trigger');
this.$element.removeClass('is-closed');
}else{
this.isRevealed=false;
this.$element.attr('aria-hidden', 'true');
this.$element.off('open.zf.trigger toggle.zf.trigger').on({
'open.zf.trigger': this.open.bind(this),
'toggle.zf.trigger': this.toggle.bind(this)
});
this.$element.addClass('is-closed');
}
this._addContentClasses(isRevealed);
}
}, {
key: "_stopScrolling",
value: function _stopScrolling(event){
return false;
} // Taken and adapted from http://stackoverflow.com/questions/16889447/prevent-full-page-scrolling-ios
}, {
key: "_recordScrollable",
value: function _recordScrollable(event){
var elem=this;
if(elem.scrollHeight!==elem.clientHeight){
if(elem.scrollTop===0){
elem.scrollTop=1;
}
if(elem.scrollTop===elem.scrollHeight - elem.clientHeight){
elem.scrollTop=elem.scrollHeight - elem.clientHeight - 1;
}}
elem.allowUp=elem.scrollTop > 0;
elem.allowDown=elem.scrollTop < elem.scrollHeight - elem.clientHeight;
elem.lastY=event.originalEvent.pageY;
}}, {
key: "_stopScrollPropagation",
value: function _stopScrollPropagation(event){
var elem=this;
var up=event.pageY < elem.lastY;
var down = !up;
elem.lastY=event.pageY;
if(up&&elem.allowUp||down&&elem.allowDown){
event.stopPropagation();
}else{
event.preventDefault();
}}
}, {
key: "open",
value: function open(event, trigger){
if(this.$element.hasClass('is-open')||this.isRevealed){
return;
}
var _this=this;
if(trigger){
this.$lastTrigger=trigger;
}
if(this.options.forceTo==='top'){
window.scrollTo(0, 0);
}else if(this.options.forceTo==='bottom'){
window.scrollTo(0, document.body.scrollHeight);
}
if(this.options.transitionTime&&this.options.transition!=='overlap'){
this.$element.siblings('[data-off-canvas-content]').css('transition-duration', this.options.transitionTime);
}else{
this.$element.siblings('[data-off-canvas-content]').css('transition-duration', '');
}
this.$element.addClass('is-open').removeClass('is-closed');
this.$triggers.attr('aria-expanded', 'true');
this.$element.attr('aria-hidden', 'false');
this.$content.addClass('is-open-' + this.position);
if(this.options.contentScroll===false){
(0, _jquery2.default)('body').addClass('is-off-canvas-open').on('touchmove', this._stopScrolling);
this.$element.on('touchstart', this._recordScrollable);
this.$element.on('touchmove', this._stopScrollPropagation);
}
if(this.options.contentOverlay===true){
this.$overlay.addClass('is-visible');
}
if(this.options.closeOnClick===true&&this.options.contentOverlay===true){
this.$overlay.addClass('is-closable');
}
if(this.options.autoFocus===true){
this.$element.one(transitionend(this.$element), function (){
if(!_this.$element.hasClass('is-open')){
return;
}
var canvasFocus=_this.$element.find('[data-autofocus]');
if(canvasFocus.length){
canvasFocus.eq(0).focus();
}else{
_this.$element.find('a, button').eq(0).focus();
}});
}
if(this.options.trapFocus===true){
this.$content.attr('tabindex', '-1');
Keyboard.trapFocus(this.$element);
}
this._addContentClasses();
this.$element.trigger('opened.zf.offcanvas');
}
}, {
key: "close",
value: function close(cb){
if(!this.$element.hasClass('is-open')||this.isRevealed){
return;
}
var _this=this;
this.$element.removeClass('is-open');
this.$element.attr('aria-hidden', 'true')
.trigger('closed.zf.offcanvas');
this.$content.removeClass('is-open-left is-open-top is-open-right is-open-bottom');
if(this.options.contentScroll===false){
(0, _jquery2.default)('body').removeClass('is-off-canvas-open').off('touchmove', this._stopScrolling);
this.$element.off('touchstart', this._recordScrollable);
this.$element.off('touchmove', this._stopScrollPropagation);
}
if(this.options.contentOverlay===true){
this.$overlay.removeClass('is-visible');
}
if(this.options.closeOnClick===true&&this.options.contentOverlay===true){
this.$overlay.removeClass('is-closable');
}
this.$triggers.attr('aria-expanded', 'false');
if(this.options.trapFocus===true){
this.$content.removeAttr('tabindex');
Keyboard.releaseFocus(this.$element);
}
this.$element.one(transitionend(this.$element), function (e){
_this.$element.addClass('is-closed');
_this._removeContentClasses();
});
}
}, {
key: "toggle",
value: function toggle(event, trigger){
if(this.$element.hasClass('is-open')){
this.close(event, trigger);
}else{
this.open(event, trigger);
}}
}, {
key: "_handleKeyboard",
value: function _handleKeyboard(e){
var _this3=this;
Keyboard.handleKey(e, 'OffCanvas', {
close: function close(){
_this3.close();
_this3.$lastTrigger.focus();
return true;
},
handled: function handled(){
e.stopPropagation();
e.preventDefault();
}});
}
}, {
key: "_destroy",
value: function _destroy(){
this.close();
this.$element.off('.zf.trigger .zf.offcanvas');
this.$overlay.off('.zf.offcanvas');
if(this.onLoadListener) (0, _jquery2.default)(window).off(this.onLoadListener);
}}]);
return OffCanvas;
}(Plugin);
OffCanvas.defaults={
closeOnClick: true,
contentOverlay: true,
contentId: null,
nested: null,
contentScroll: true,
transitionTime: null,
transition: 'push',
forceTo: null,
isRevealed: false,
revealOn: null,
autoFocus: true,
revealClass: 'reveal-for-',
trapFocus: false
};
var Orbit =
function (_Plugin){
_inherits(Orbit, _Plugin);
function Orbit(){
_classCallCheck(this, Orbit);
return _possibleConstructorReturn(this, _getPrototypeOf(Orbit).apply(this, arguments));
}
_createClass(Orbit, [{
key: "_setup",
value: function _setup(element, options){
this.$element=element;
this.options=_jquery2.default.extend({}, Orbit.defaults, this.$element.data(), options);
this.className='Orbit';
Touch.init(_jquery2.default);
this._init();
Keyboard.register('Orbit', {
'ltr': {
'ARROW_RIGHT': 'next',
'ARROW_LEFT': 'previous'
},
'rtl': {
'ARROW_LEFT': 'next',
'ARROW_RIGHT': 'previous'
}});
}
}, {
key: "_init",
value: function _init(){
this._reset();
this.$wrapper=this.$element.find(".".concat(this.options.containerClass));
this.$slides=this.$element.find(".".concat(this.options.slideClass));
var $images=this.$element.find('img'),
initActive=this.$slides.filter('.is-active'),
id=this.$element[0].id||GetYoDigits(6, 'orbit');
this.$element.attr({
'data-resize': id,
'id': id
});
if(!initActive.length){
this.$slides.eq(0).addClass('is-active');
}
if(!this.options.useMUI){
this.$slides.addClass('no-motionui');
}
if($images.length){
onImagesLoaded($images, this._prepareForOrbit.bind(this));
}else{
this._prepareForOrbit();
}
if(this.options.bullets){
this._loadBullets();
}
this._events();
if(this.options.autoPlay&&this.$slides.length > 1){
this.geoSync();
}
if(this.options.accessible){
this.$wrapper.attr('tabindex', 0);
}}
}, {
key: "_loadBullets",
value: function _loadBullets(){
this.$bullets=this.$element.find(".".concat(this.options.boxOfBullets)).find('button');
}
}, {
key: "geoSync",
value: function geoSync(){
var _this=this;
this.timer=new Timer(this.$element, {
duration: this.options.timerDelay,
infinite: false
}, function (){
_this.changeSlide(true);
});
this.timer.start();
}
}, {
key: "_prepareForOrbit",
value: function _prepareForOrbit(){
this._setWrapperHeight();
}
}, {
key: "_setWrapperHeight",
value: function _setWrapperHeight(cb){
var max=0,
temp,
counter=0,
_this=this;
this.$slides.each(function (){
temp=this.getBoundingClientRect().height;
(0, _jquery2.default)(this).attr('data-slide', counter);
if(!/mui/g.test((0, _jquery2.default)(this)[0].className)&&_this.$slides.filter('.is-active')[0]!==_this.$slides.eq(counter)[0]){
(0, _jquery2.default)(this).css({
'display': 'none'
});
}
max=temp > max ? temp:max;
counter++;
});
if(counter===this.$slides.length){
this.$wrapper.css({
'height': max
});
if(cb){
cb(max);
}}
}
}, {
key: "_setSlideHeight",
value: function _setSlideHeight(height){
this.$slides.each(function (){
(0, _jquery2.default)(this).css('max-height', height);
});
}
}, {
key: "_events",
value: function _events(){
var _this=this;
this.$element.off('.resizeme.zf.trigger').on({
'resizeme.zf.trigger': this._prepareForOrbit.bind(this)
});
if(this.$slides.length > 1){
if(this.options.swipe){
this.$slides.off('swipeleft.zf.orbit swiperight.zf.orbit').on('swipeleft.zf.orbit', function (e){
e.preventDefault();
_this.changeSlide(true);
}).on('swiperight.zf.orbit', function (e){
e.preventDefault();
_this.changeSlide(false);
});
}
if(this.options.autoPlay){
this.$slides.on('click.zf.orbit', function (){
_this.$element.data('clickedOn', _this.$element.data('clickedOn') ? false:true);
_this.timer[_this.$element.data('clickedOn') ? 'pause':'start']();
});
if(this.options.pauseOnHover){
this.$element.on('mouseenter.zf.orbit', function (){
_this.timer.pause();
}).on('mouseleave.zf.orbit', function (){
if(!_this.$element.data('clickedOn')){
_this.timer.start();
}});
}}
if(this.options.navButtons){
var $controls=this.$element.find(".".concat(this.options.nextClass, ", .").concat(this.options.prevClass));
$controls.attr('tabindex', 0)
.on('click.zf.orbit touchend.zf.orbit', function (e){
e.preventDefault();
_this.changeSlide((0, _jquery2.default)(this).hasClass(_this.options.nextClass));
});
}
if(this.options.bullets){
this.$bullets.on('click.zf.orbit touchend.zf.orbit', function (){
if(/is-active/g.test(this.className)){
return false;
}
var idx=(0, _jquery2.default)(this).data('slide'),
ltr=idx > _this.$slides.filter('.is-active').data('slide'),
$slide=_this.$slides.eq(idx);
_this.changeSlide(ltr, $slide, idx);
});
}
if(this.options.accessible){
this.$wrapper.add(this.$bullets).on('keydown.zf.orbit', function (e){
Keyboard.handleKey(e, 'Orbit', {
next: function next(){
_this.changeSlide(true);
},
previous: function previous(){
_this.changeSlide(false);
},
handled: function handled(){
if((0, _jquery2.default)(e.target).is(_this.$bullets)){
_this.$bullets.filter('.is-active').focus();
}}
});
});
}}
}
}, {
key: "_reset",
value: function _reset(){
if(typeof this.$slides=='undefined'){
return;
}
if(this.$slides.length > 1){
this.$element.off('.zf.orbit').find('*').off('.zf.orbit');
if(this.options.autoPlay){
this.timer.restart();
}
this.$slides.each(function (el){
(0, _jquery2.default)(el).removeClass('is-active is-active is-in').removeAttr('aria-live').hide();
});
this.$slides.first().addClass('is-active').show();
this.$element.trigger('slidechange.zf.orbit', [this.$slides.first()]);
if(this.options.bullets){
this._updateBullets(0);
}}
}
}, {
key: "changeSlide",
value: function changeSlide(isLTR, chosenSlide, idx){
if(!this.$slides){
return;
}
var $curSlide=this.$slides.filter('.is-active').eq(0);
if(/mui/g.test($curSlide[0].className)){
return false;
}
var $firstSlide=this.$slides.first(),
$lastSlide=this.$slides.last(),
dirIn=isLTR ? 'Right':'Left',
dirOut=isLTR ? 'Left':'Right',
_this=this,
$newSlide;
if(!chosenSlide){
$newSlide=isLTR ?
this.options.infiniteWrap ? $curSlide.next(".".concat(this.options.slideClass)).length ? $curSlide.next(".".concat(this.options.slideClass)):$firstSlide:$curSlide.next(".".concat(this.options.slideClass)) :
this.options.infiniteWrap ? $curSlide.prev(".".concat(this.options.slideClass)).length ? $curSlide.prev(".".concat(this.options.slideClass)):$lastSlide:$curSlide.prev(".".concat(this.options.slideClass));
}else{
$newSlide=chosenSlide;
}
if($newSlide.length){
this.$element.trigger('beforeslidechange.zf.orbit', [$curSlide, $newSlide]);
if(this.options.bullets){
idx=idx||this.$slides.index($newSlide);
this._updateBullets(idx);
}
if(this.options.useMUI&&!this.$element.is(':hidden')){
Motion.animateIn($newSlide.addClass('is-active'), this.options["animInFrom".concat(dirIn)], function (){
$newSlide.css({
'display': 'block'
}).attr('aria-live', 'polite');
});
Motion.animateOut($curSlide.removeClass('is-active'), this.options["animOutTo".concat(dirOut)], function (){
$curSlide.removeAttr('aria-live');
if(_this.options.autoPlay&&!_this.timer.isPaused){
_this.timer.restart();
}});
}else{
$curSlide.removeClass('is-active is-in').removeAttr('aria-live').hide();
$newSlide.addClass('is-active is-in').attr('aria-live', 'polite').show();
if(this.options.autoPlay&&!this.timer.isPaused){
this.timer.restart();
}}
this.$element.trigger('slidechange.zf.orbit', [$newSlide]);
}}
}, {
key: "_updateBullets",
value: function _updateBullets(idx){
var $oldBullet=this.$element.find(".".concat(this.options.boxOfBullets)).find('.is-active').removeClass('is-active').blur(),
span=$oldBullet.find('span:last').detach(),
$newBullet=this.$bullets.eq(idx).addClass('is-active').append(span);
}
}, {
key: "_destroy",
value: function _destroy(){
this.$element.off('.zf.orbit').find('*').off('.zf.orbit').end().hide();
}}]);
return Orbit;
}(Plugin);
Orbit.defaults={
bullets: true,
navButtons: true,
animInFromRight: 'slide-in-right',
animOutToRight: 'slide-out-right',
animInFromLeft: 'slide-in-left',
animOutToLeft: 'slide-out-left',
autoPlay: true,
timerDelay: 5000,
infiniteWrap: true,
swipe: true,
pauseOnHover: true,
accessible: true,
containerClass: 'orbit-container',
slideClass: 'orbit-slide',
boxOfBullets: 'orbit-bullets',
nextClass: 'orbit-next',
prevClass: 'orbit-previous',
useMUI: true
};
var MenuPlugins={
dropdown: {
cssClass: 'dropdown',
plugin: DropdownMenu
},
drilldown: {
cssClass: 'drilldown',
plugin: Drilldown
},
accordion: {
cssClass: 'accordion-menu',
plugin: AccordionMenu
}};
var ResponsiveMenu =
function (_Plugin){
_inherits(ResponsiveMenu, _Plugin);
function ResponsiveMenu(){
_classCallCheck(this, ResponsiveMenu);
return _possibleConstructorReturn(this, _getPrototypeOf(ResponsiveMenu).apply(this, arguments));
}
_createClass(ResponsiveMenu, [{
key: "_setup",
value: function _setup(element, options){
this.$element=(0, _jquery2.default)(element);
this.rules=this.$element.data('responsive-menu');
this.currentMq=null;
this.currentPlugin=null;
this.className='ResponsiveMenu';
this._init();
this._events();
}
}, {
key: "_init",
value: function _init(){
MediaQuery._init();
if(typeof this.rules==='string'){
var rulesTree={};
var rules=this.rules.split(' ');
for (var i=0; i < rules.length; i++){
var rule=rules[i].split('-');
var ruleSize=rule.length > 1 ? rule[0]:'small';
var rulePlugin=rule.length > 1 ? rule[1]:rule[0];
if(MenuPlugins[rulePlugin]!==null){
rulesTree[ruleSize]=MenuPlugins[rulePlugin];
}}
this.rules=rulesTree;
}
if(!_jquery2.default.isEmptyObject(this.rules)){
this._checkMediaQueries();
}
this.$element.attr('data-mutate', this.$element.attr('data-mutate')||GetYoDigits(6, 'responsive-menu'));
}
}, {
key: "_events",
value: function _events(){
var _this=this;
(0, _jquery2.default)(window).on('changed.zf.mediaquery', function (){
_this._checkMediaQueries();
});
}
}, {
key: "_checkMediaQueries",
value: function _checkMediaQueries(){
var matchedMq,
_this=this;
_jquery2.default.each(this.rules, function (key){
if(MediaQuery.atLeast(key)){
matchedMq=key;
}});
if(!matchedMq) return;
if(this.currentPlugin instanceof this.rules[matchedMq].plugin) return;
_jquery2.default.each(MenuPlugins, function (key, value){
_this.$element.removeClass(value.cssClass);
});
this.$element.addClass(this.rules[matchedMq].cssClass);
if(this.currentPlugin) this.currentPlugin.destroy();
this.currentPlugin=new this.rules[matchedMq].plugin(this.$element, {});
}
}, {
key: "_destroy",
value: function _destroy(){
this.currentPlugin.destroy();
(0, _jquery2.default)(window).off('.zf.ResponsiveMenu');
}}]);
return ResponsiveMenu;
}(Plugin);
ResponsiveMenu.defaults={};
var ResponsiveToggle =
function (_Plugin){
_inherits(ResponsiveToggle, _Plugin);
function ResponsiveToggle(){
_classCallCheck(this, ResponsiveToggle);
return _possibleConstructorReturn(this, _getPrototypeOf(ResponsiveToggle).apply(this, arguments));
}
_createClass(ResponsiveToggle, [{
key: "_setup",
value: function _setup(element, options){
this.$element=(0, _jquery2.default)(element);
this.options=_jquery2.default.extend({}, ResponsiveToggle.defaults, this.$element.data(), options);
this.className='ResponsiveToggle';
this._init();
this._events();
}
}, {
key: "_init",
value: function _init(){
MediaQuery._init();
var targetID=this.$element.data('responsive-toggle');
if(!targetID){
console.error('Your tab bar needs an ID of a Menu as the value of data-tab-bar.');
}
this.$targetMenu=(0, _jquery2.default)("#".concat(targetID));
this.$toggler=this.$element.find('[data-toggle]').filter(function (){
var target=(0, _jquery2.default)(this).data('toggle');
return target===targetID||target==="";
});
this.options=_jquery2.default.extend({}, this.options, this.$targetMenu.data());
if(this.options.animate){
var input=this.options.animate.split(' ');
this.animationIn=input[0];
this.animationOut=input[1]||null;
}
this._update();
}
}, {
key: "_events",
value: function _events(){
this._updateMqHandler=this._update.bind(this);
(0, _jquery2.default)(window).on('changed.zf.mediaquery', this._updateMqHandler);
this.$toggler.on('click.zf.responsiveToggle', this.toggleMenu.bind(this));
}
}, {
key: "_update",
value: function _update(){
if(!MediaQuery.atLeast(this.options.hideFor)){
this.$element.show();
this.$targetMenu.hide();
}else{
this.$element.hide();
this.$targetMenu.show();
}}
}, {
key: "toggleMenu",
value: function toggleMenu(){
var _this2=this;
if(!MediaQuery.atLeast(this.options.hideFor)){
if(this.options.animate){
if(this.$targetMenu.is(':hidden')){
Motion.animateIn(this.$targetMenu, this.animationIn, function (){
_this2.$element.trigger('toggled.zf.responsiveToggle');
_this2.$targetMenu.find('[data-mutate]').triggerHandler('mutateme.zf.trigger');
});
}else{
Motion.animateOut(this.$targetMenu, this.animationOut, function (){
_this2.$element.trigger('toggled.zf.responsiveToggle');
});
}}else{
this.$targetMenu.toggle(0);
this.$targetMenu.find('[data-mutate]').trigger('mutateme.zf.trigger');
this.$element.trigger('toggled.zf.responsiveToggle');
}}
}}, {
key: "_destroy",
value: function _destroy(){
this.$element.off('.zf.responsiveToggle');
this.$toggler.off('.zf.responsiveToggle');
(0, _jquery2.default)(window).off('changed.zf.mediaquery', this._updateMqHandler);
}}]);
return ResponsiveToggle;
}(Plugin);
ResponsiveToggle.defaults={
hideFor: 'medium',
animate: false
};
var Reveal =
function (_Plugin){
_inherits(Reveal, _Plugin);
function Reveal(){
_classCallCheck(this, Reveal);
return _possibleConstructorReturn(this, _getPrototypeOf(Reveal).apply(this, arguments));
}
_createClass(Reveal, [{
key: "_setup",
value: function _setup(element, options){
this.$element=element;
this.options=_jquery2.default.extend({}, Reveal.defaults, this.$element.data(), options);
this.className='Reveal';
this._init();
Triggers.init(_jquery2.default);
Keyboard.register('Reveal', {
'ESCAPE': 'close'
});
}
}, {
key: "_init",
value: function _init(){
var _this2=this;
MediaQuery._init();
this.id=this.$element.attr('id');
this.isActive=false;
this.cached={
mq: MediaQuery.current
};
this.$anchor=(0, _jquery2.default)("[data-open=\"".concat(this.id, "\"]")).length ? (0, _jquery2.default)("[data-open=\"".concat(this.id, "\"]")):(0, _jquery2.default)("[data-toggle=\"".concat(this.id, "\"]"));
this.$anchor.attr({
'aria-controls': this.id,
'aria-haspopup': true,
'tabindex': 0
});
if(this.options.fullScreen||this.$element.hasClass('full')){
this.options.fullScreen=true;
this.options.overlay=false;
}
if(this.options.overlay&&!this.$overlay){
this.$overlay=this._makeOverlay(this.id);
}
this.$element.attr({
'role': 'dialog',
'aria-hidden': true,
'data-yeti-box': this.id,
'data-resize': this.id
});
if(this.$overlay){
this.$element.detach().appendTo(this.$overlay);
}else{
this.$element.detach().appendTo((0, _jquery2.default)(this.options.appendTo));
this.$element.addClass('without-overlay');
}
this._events();
if(this.options.deepLink&&window.location.hash==="#".concat(this.id)){
this.onLoadListener=onLoad((0, _jquery2.default)(window), function (){
return _this2.open();
});
}}
}, {
key: "_makeOverlay",
value: function _makeOverlay(){
var additionalOverlayClasses='';
if(this.options.additionalOverlayClasses){
additionalOverlayClasses=' ' + this.options.additionalOverlayClasses;
}
return (0, _jquery2.default)('<div></div>').addClass('reveal-overlay' + additionalOverlayClasses).appendTo(this.options.appendTo);
}
}, {
key: "_updatePosition",
value: function _updatePosition(){
var width=this.$element.outerWidth();
var outerWidth=(0, _jquery2.default)(window).width();
var height=this.$element.outerHeight();
var outerHeight=(0, _jquery2.default)(window).height();
var left,
top=null;
if(this.options.hOffset==='auto'){
left=parseInt((outerWidth - width) / 2, 10);
}else{
left=parseInt(this.options.hOffset, 10);
}
if(this.options.vOffset==='auto'){
if(height > outerHeight){
top=parseInt(Math.min(100, outerHeight / 10), 10);
}else{
top=parseInt((outerHeight - height) / 4, 10);
}}else if(this.options.vOffset!==null){
top=parseInt(this.options.vOffset, 10);
}
if(top!==null){
this.$element.css({
top: top + 'px'
});
}
if(!this.$overlay||this.options.hOffset!=='auto'){
this.$element.css({
left: left + 'px'
});
this.$element.css({
margin: '0px'
});
}}
}, {
key: "_events",
value: function _events(){
var _this3=this;
var _this=this;
this.$element.on({
'open.zf.trigger': this.open.bind(this),
'close.zf.trigger': function closeZfTrigger(event, $element){
if(event.target===_this.$element[0]||(0, _jquery2.default)(event.target).parents('[data-closable]')[0]===$element){
return _this3.close.apply(_this3);
}},
'toggle.zf.trigger': this.toggle.bind(this),
'resizeme.zf.trigger': function resizemeZfTrigger(){
_this._updatePosition();
}});
if(this.options.closeOnClick&&this.options.overlay){
this.$overlay.off('.zf.reveal').on('click.zf.reveal', function (e){
if(e.target===_this.$element[0]||_jquery2.default.contains(_this.$element[0], e.target)||!_jquery2.default.contains(document, e.target)){
return;
}
_this.close();
});
}
if(this.options.deepLink){
(0, _jquery2.default)(window).on("hashchange.zf.reveal:".concat(this.id), this._handleState.bind(this));
}}
}, {
key: "_handleState",
value: function _handleState(e){
if(window.location.hash==='#' + this.id&&!this.isActive){
this.open();
}else{
this.close();
}}
}, {
key: "_disableScroll",
value: function _disableScroll(scrollTop){
scrollTop=scrollTop||(0, _jquery2.default)(window).scrollTop();
if((0, _jquery2.default)(document).height() > (0, _jquery2.default)(window).height()){
(0, _jquery2.default)("html").css("top", -scrollTop);
}}
}, {
key: "_enableScroll",
value: function _enableScroll(scrollTop){
scrollTop=scrollTop||parseInt((0, _jquery2.default)("html").css("top"));
if((0, _jquery2.default)(document).height() > (0, _jquery2.default)(window).height()){
(0, _jquery2.default)("html").css("top", "");
(0, _jquery2.default)(window).scrollTop(-scrollTop);
}}
}, {
key: "open",
value: function open(){
var _this4=this;
var hash="#".concat(this.id);
if(this.options.deepLink&&window.location.hash!==hash){
if(window.history.pushState){
if(this.options.updateHistory){
window.history.pushState({}, '', hash);
}else{
window.history.replaceState({}, '', hash);
}}else{
window.location.hash=hash;
}}
this.$activeAnchor=(0, _jquery2.default)(document.activeElement).is(this.$anchor) ? (0, _jquery2.default)(document.activeElement):this.$anchor;
this.isActive=true;
this.$element.css({
'visibility': 'hidden'
}).show().scrollTop(0);
if(this.options.overlay){
this.$overlay.css({
'visibility': 'hidden'
}).show();
}
this._updatePosition();
this.$element.hide().css({
'visibility': ''
});
if(this.$overlay){
this.$overlay.css({
'visibility': ''
}).hide();
if(this.$element.hasClass('fast')){
this.$overlay.addClass('fast');
}else if(this.$element.hasClass('slow')){
this.$overlay.addClass('slow');
}}
if(!this.options.multipleOpened){
this.$element.trigger('closeme.zf.reveal', this.id);
}
this._disableScroll();
var _this=this;
if(this.options.animationIn){
var afterAnimation=function afterAnimation(){
_this.$element.attr({
'aria-hidden': false,
'tabindex': -1
}).focus();
_this._addGlobalClasses();
Keyboard.trapFocus(_this.$element);
};
if(this.options.overlay){
Motion.animateIn(this.$overlay, 'fade-in');
}
Motion.animateIn(this.$element, this.options.animationIn, function (){
if(_this4.$element){
_this4.focusableElements=Keyboard.findFocusable(_this4.$element);
afterAnimation();
}});
}else{
if(this.options.overlay){
this.$overlay.show(0);
}
this.$element.show(this.options.showDelay);
}
this.$element.attr({
'aria-hidden': false,
'tabindex': -1
}).focus();
Keyboard.trapFocus(this.$element);
this._addGlobalClasses();
this._addGlobalListeners();
this.$element.trigger('open.zf.reveal');
}
}, {
key: "_addGlobalClasses",
value: function _addGlobalClasses(){
var updateScrollbarClass=function updateScrollbarClass(){
(0, _jquery2.default)('html').toggleClass('zf-has-scroll', !!((0, _jquery2.default)(document).height() > (0, _jquery2.default)(window).height()));
};
this.$element.on('resizeme.zf.trigger.revealScrollbarListener', function (){
return updateScrollbarClass();
});
updateScrollbarClass();
(0, _jquery2.default)('html').addClass('is-reveal-open');
}
}, {
key: "_removeGlobalClasses",
value: function _removeGlobalClasses(){
this.$element.off('resizeme.zf.trigger.revealScrollbarListener');
(0, _jquery2.default)('html').removeClass('is-reveal-open');
(0, _jquery2.default)('html').removeClass('zf-has-scroll');
}
}, {
key: "_addGlobalListeners",
value: function _addGlobalListeners(){
var _this=this;
if(!this.$element){
return;
}
this.focusableElements=Keyboard.findFocusable(this.$element);
if(!this.options.overlay&&this.options.closeOnClick&&!this.options.fullScreen){
(0, _jquery2.default)('body').on('click.zf.reveal', function (e){
if(e.target===_this.$element[0]||_jquery2.default.contains(_this.$element[0], e.target)||!_jquery2.default.contains(document, e.target)){
return;
}
_this.close();
});
}
if(this.options.closeOnEsc){
(0, _jquery2.default)(window).on('keydown.zf.reveal', function (e){
Keyboard.handleKey(e, 'Reveal', {
close: function close(){
if(_this.options.closeOnEsc){
_this.close();
}}
});
});
}}
}, {
key: "close",
value: function close(){
if(!this.isActive||!this.$element.is(':visible')){
return false;
}
var _this=this;
if(this.options.animationOut){
if(this.options.overlay){
Motion.animateOut(this.$overlay, 'fade-out');
}
Motion.animateOut(this.$element, this.options.animationOut, finishUp);
}else{
this.$element.hide(this.options.hideDelay);
if(this.options.overlay){
this.$overlay.hide(0, finishUp);
}else{
finishUp();
}}
if(this.options.closeOnEsc){
(0, _jquery2.default)(window).off('keydown.zf.reveal');
}
if(!this.options.overlay&&this.options.closeOnClick){
(0, _jquery2.default)('body').off('click.zf.reveal');
}
this.$element.off('keydown.zf.reveal');
function finishUp(){
var scrollTop=parseInt((0, _jquery2.default)("html").css("top"));
if((0, _jquery2.default)('.reveal:visible').length===0){
_this._removeGlobalClasses();
}
Keyboard.releaseFocus(_this.$element);
_this.$element.attr('aria-hidden', true);
_this._enableScroll(scrollTop);
_this.$element.trigger('closed.zf.reveal');
}
if(this.options.resetOnClose){
this.$element.html(this.$element.html());
}
this.isActive=false;
if(_this.options.deepLink&&window.location.hash==="#".concat(this.id)){
if(window.history.replaceState){
var urlWithoutHash=window.location.pathname + window.location.search;
if(this.options.updateHistory){
window.history.pushState({}, '', urlWithoutHash);
}else{
window.history.replaceState('', document.title, urlWithoutHash);
}}else{
window.location.hash='';
}}
this.$activeAnchor.focus();
}
}, {
key: "toggle",
value: function toggle(){
if(this.isActive){
this.close();
}else{
this.open();
}}
}, {
key: "_destroy",
value: function _destroy(){
if(this.options.overlay){
this.$element.appendTo((0, _jquery2.default)(this.options.appendTo));
this.$overlay.hide().off().remove();
}
this.$element.hide().off();
this.$anchor.off('.zf');
(0, _jquery2.default)(window).off(".zf.reveal:".concat(this.id));
if(this.onLoadListener) (0, _jquery2.default)(window).off(this.onLoadListener);
if((0, _jquery2.default)('.reveal:visible').length===0){
this._removeGlobalClasses();
}}
}]);
return Reveal;
}(Plugin);
Reveal.defaults={
animationIn: '',
animationOut: '',
showDelay: 0,
hideDelay: 0,
closeOnClick: true,
closeOnEsc: true,
multipleOpened: false,
vOffset: 'auto',
hOffset: 'auto',
fullScreen: false,
overlay: true,
resetOnClose: false,
deepLink: false,
updateHistory: false,
appendTo: "body",
additionalOverlayClasses: ''
};
var Slider =
function (_Plugin){
_inherits(Slider, _Plugin);
function Slider(){
_classCallCheck(this, Slider);
return _possibleConstructorReturn(this, _getPrototypeOf(Slider).apply(this, arguments));
}
_createClass(Slider, [{
key: "_setup",
value: function _setup(element, options){
this.$element=element;
this.options=_jquery2.default.extend({}, Slider.defaults, this.$element.data(), options);
this.className='Slider';
Touch.init(_jquery2.default);
Triggers.init(_jquery2.default);
this._init();
Keyboard.register('Slider', {
'ltr': {
'ARROW_RIGHT': 'increase',
'ARROW_UP': 'increase',
'ARROW_DOWN': 'decrease',
'ARROW_LEFT': 'decrease',
'SHIFT_ARROW_RIGHT': 'increase_fast',
'SHIFT_ARROW_UP': 'increase_fast',
'SHIFT_ARROW_DOWN': 'decrease_fast',
'SHIFT_ARROW_LEFT': 'decrease_fast',
'HOME': 'min',
'END': 'max'
},
'rtl': {
'ARROW_LEFT': 'increase',
'ARROW_RIGHT': 'decrease',
'SHIFT_ARROW_LEFT': 'increase_fast',
'SHIFT_ARROW_RIGHT': 'decrease_fast'
}});
}
}, {
key: "_init",
value: function _init(){
this.inputs=this.$element.find('input');
this.handles=this.$element.find('[data-slider-handle]');
this.$handle=this.handles.eq(0);
this.$input=this.inputs.length ? this.inputs.eq(0):(0, _jquery2.default)("#".concat(this.$handle.attr('aria-controls')));
this.$fill=this.$element.find('[data-slider-fill]').css(this.options.vertical ? 'height':'width', 0);
if(this.options.disabled||this.$element.hasClass(this.options.disabledClass)){
this.options.disabled=true;
this.$element.addClass(this.options.disabledClass);
}
if(!this.inputs.length){
this.inputs=(0, _jquery2.default)().add(this.$input);
this.options.binding=true;
}
this._setInitAttr(0);
if(this.handles[1]){
this.options.doubleSided=true;
this.$handle2=this.handles.eq(1);
this.$input2=this.inputs.length > 1 ? this.inputs.eq(1):(0, _jquery2.default)("#".concat(this.$handle2.attr('aria-controls')));
if(!this.inputs[1]){
this.inputs=this.inputs.add(this.$input2);
}
this._setInitAttr(1);
}
this.setHandles();
this._events();
}}, {
key: "setHandles",
value: function setHandles(){
var _this2=this;
if(this.handles[1]){
this._setHandlePos(this.$handle, this.inputs.eq(0).val(), true, function (){
_this2._setHandlePos(_this2.$handle2, _this2.inputs.eq(1).val(), true);
});
}else{
this._setHandlePos(this.$handle, this.inputs.eq(0).val(), true);
}}
}, {
key: "_reflow",
value: function _reflow(){
this.setHandles();
}
}, {
key: "_pctOfBar",
value: function _pctOfBar(value){
var pctOfBar=percent(value - this.options.start, this.options.end - this.options.start);
switch (this.options.positionValueFunction){
case "pow":
pctOfBar=this._logTransform(pctOfBar);
break;
case "log":
pctOfBar=this._powTransform(pctOfBar);
break;
}
return pctOfBar.toFixed(2);
}
}, {
key: "_value",
value: function _value(pctOfBar){
switch (this.options.positionValueFunction){
case "pow":
pctOfBar=this._powTransform(pctOfBar);
break;
case "log":
pctOfBar=this._logTransform(pctOfBar);
break;
}
var value=(this.options.end - this.options.start) * pctOfBar + parseFloat(this.options.start);
return value;
}
}, {
key: "_logTransform",
value: function _logTransform(value){
return baseLog(this.options.nonLinearBase, value * (this.options.nonLinearBase - 1) + 1);
}
}, {
key: "_powTransform",
value: function _powTransform(value){
return (Math.pow(this.options.nonLinearBase, value) - 1) / (this.options.nonLinearBase - 1);
}
}, {
key: "_setHandlePos",
value: function _setHandlePos($hndl, location, noInvert, cb){
if(this.$element.hasClass(this.options.disabledClass)){
return;
}
location=parseFloat(location);
if(location < this.options.start){
location=this.options.start;
}else if(location > this.options.end){
location=this.options.end;
}
var isDbl=this.options.doubleSided;
if(this.options.vertical&&!noInvert){
location=this.options.end - location;
}
if(isDbl){
if(this.handles.index($hndl)===0){
var h2Val=parseFloat(this.$handle2.attr('aria-valuenow'));
location=location >=h2Val ? h2Val - this.options.step:location;
}else{
var h1Val=parseFloat(this.$handle.attr('aria-valuenow'));
location=location <=h1Val ? h1Val + this.options.step:location;
}}
var _this=this,
vert=this.options.vertical,
hOrW=vert ? 'height':'width',
lOrT=vert ? 'top':'left',
handleDim=$hndl[0].getBoundingClientRect()[hOrW],
elemDim=this.$element[0].getBoundingClientRect()[hOrW],
pctOfBar=this._pctOfBar(location),
pxToMove=(elemDim - handleDim) * pctOfBar,
movement=(percent(pxToMove, elemDim) * 100).toFixed(this.options.decimal);
location=parseFloat(location.toFixed(this.options.decimal));
var css={};
this._setValues($hndl, location);
if(isDbl){
var isLeftHndl=this.handles.index($hndl)===0,
dim,
handlePct=~~(percent(handleDim, elemDim) * 100);
if(isLeftHndl){
css[lOrT]="".concat(movement, "%");
dim=parseFloat(this.$handle2[0].style[lOrT]) - movement + handlePct;
if(cb&&typeof cb==='function'){
cb();
}}else{
var handlePos=parseFloat(this.$handle[0].style[lOrT]);
dim=movement - (isNaN(handlePos) ? (this.options.initialStart - this.options.start) / ((this.options.end - this.options.start) / 100):handlePos) + handlePct;
}
css["min-".concat(hOrW)]="".concat(dim, "%");
}
this.$element.one('finished.zf.animate', function (){
_this.$element.trigger('moved.zf.slider', [$hndl]);
});
var moveTime=this.$element.data('dragging') ? 1000 / 60:this.options.moveTime;
Move(moveTime, $hndl, function (){
if(isNaN(movement)){
$hndl.css(lOrT, "".concat(pctOfBar * 100, "%"));
}else{
$hndl.css(lOrT, "".concat(movement, "%"));
}
if(!_this.options.doubleSided){
_this.$fill.css(hOrW, "".concat(pctOfBar * 100, "%"));
}else{
_this.$fill.css(css);
}});
clearTimeout(_this.timeout);
_this.timeout=setTimeout(function (){
_this.$element.trigger('changed.zf.slider', [$hndl]);
}, _this.options.changedDelay);
}
}, {
key: "_setInitAttr",
value: function _setInitAttr(idx){
var initVal=idx===0 ? this.options.initialStart:this.options.initialEnd;
var id=this.inputs.eq(idx).attr('id')||GetYoDigits(6, 'slider');
this.inputs.eq(idx).attr({
'id': id,
'max': this.options.end,
'min': this.options.start,
'step': this.options.step
});
this.inputs.eq(idx).val(initVal);
this.handles.eq(idx).attr({
'role': 'slider',
'aria-controls': id,
'aria-valuemax': this.options.end,
'aria-valuemin': this.options.start,
'aria-valuenow': initVal,
'aria-orientation': this.options.vertical ? 'vertical':'horizontal',
'tabindex': 0
});
}
}, {
key: "_setValues",
value: function _setValues($handle, val){
var idx=this.options.doubleSided ? this.handles.index($handle):0;
this.inputs.eq(idx).val(val);
$handle.attr('aria-valuenow', val);
}
}, {
key: "_handleEvent",
value: function _handleEvent(e, $handle, val){
var value, hasVal;
if(!val){
e.preventDefault();
var _this=this,
vertical=this.options.vertical,
param=vertical ? 'height':'width',
direction=vertical ? 'top':'left',
eventOffset=vertical ? e.pageY:e.pageX,
halfOfHandle=this.$handle[0].getBoundingClientRect()[param] / 2,
barDim=this.$element[0].getBoundingClientRect()[param],
windowScroll=vertical ? (0, _jquery2.default)(window).scrollTop():(0, _jquery2.default)(window).scrollLeft();
var elemOffset=this.$element.offset()[direction];
if(e.clientY===e.pageY){
eventOffset=eventOffset + windowScroll;
}
var eventFromBar=eventOffset - elemOffset;
var barXY;
if(eventFromBar < 0){
barXY=0;
}else if(eventFromBar > barDim){
barXY=barDim;
}else{
barXY=eventFromBar;
}
var offsetPct=percent(barXY, barDim);
value=this._value(offsetPct);
if(rtl()&&!this.options.vertical){
value=this.options.end - value;
}
value=_this._adjustValue(null, value);
hasVal=false;
if(!$handle){
var firstHndlPos=absPosition(this.$handle, direction, barXY, param),
secndHndlPos=absPosition(this.$handle2, direction, barXY, param);
$handle=firstHndlPos <=secndHndlPos ? this.$handle:this.$handle2;
}}else{
value=this._adjustValue(null, val);
hasVal=true;
}
this._setHandlePos($handle, value, hasVal);
}
}, {
key: "_adjustValue",
value: function _adjustValue($handle, value){
var val,
step=this.options.step,
div=parseFloat(step / 2),
left,
prev_val,
next_val;
if(!!$handle){
val=parseFloat($handle.attr('aria-valuenow'));
}else{
val=value;
}
if(val >=0){
left=val % step;
}else{
left=step + val % step;
}
prev_val=val - left;
next_val=prev_val + step;
if(left===0){
return val;
}
val=val >=prev_val + div ? next_val:prev_val;
return val;
}
}, {
key: "_events",
value: function _events(){
this._eventsForHandle(this.$handle);
if(this.handles[1]){
this._eventsForHandle(this.$handle2);
}}
}, {
key: "_eventsForHandle",
value: function _eventsForHandle($handle){
var _this=this,
curHandle;
var handleChangeEvent=function handleChangeEvent(e){
var idx=_this.inputs.index((0, _jquery2.default)(this));
_this._handleEvent(e, _this.handles.eq(idx), (0, _jquery2.default)(this).val());
};
this.inputs.off('keyup.zf.slider').on('keyup.zf.slider', function (e){
if(e.keyCode==13) handleChangeEvent.call(this, e);
});
this.inputs.off('change.zf.slider').on('change.zf.slider', handleChangeEvent);
if(this.options.clickSelect){
this.$element.off('click.zf.slider').on('click.zf.slider', function (e){
if(_this.$element.data('dragging')){
return false;
}
if(!(0, _jquery2.default)(e.target).is('[data-slider-handle]')){
if(_this.options.doubleSided){
_this._handleEvent(e);
}else{
_this._handleEvent(e, _this.$handle);
}}
});
}
if(this.options.draggable){
this.handles.addTouch();
var $body=(0, _jquery2.default)('body');
$handle.off('mousedown.zf.slider').on('mousedown.zf.slider', function (e){
$handle.addClass('is-dragging');
_this.$fill.addClass('is-dragging');
_this.$element.data('dragging', true);
curHandle=(0, _jquery2.default)(e.currentTarget);
$body.on('mousemove.zf.slider', function (e){
e.preventDefault();
_this._handleEvent(e, curHandle);
}).on('mouseup.zf.slider', function (e){
_this._handleEvent(e, curHandle);
$handle.removeClass('is-dragging');
_this.$fill.removeClass('is-dragging');
_this.$element.data('dragging', false);
$body.off('mousemove.zf.slider mouseup.zf.slider');
});
})
.on('selectstart.zf.slider touchmove.zf.slider', function (e){
e.preventDefault();
});
}
$handle.off('keydown.zf.slider').on('keydown.zf.slider', function (e){
var _$handle=(0, _jquery2.default)(this),
idx=_this.options.doubleSided ? _this.handles.index(_$handle):0,
oldValue=parseFloat(_this.inputs.eq(idx).val()),
newValue;
Keyboard.handleKey(e, 'Slider', {
decrease: function decrease(){
newValue=oldValue - _this.options.step;
},
increase: function increase(){
newValue=oldValue + _this.options.step;
},
decrease_fast: function decrease_fast(){
newValue=oldValue - _this.options.step * 10;
},
increase_fast: function increase_fast(){
newValue=oldValue + _this.options.step * 10;
},
min: function min(){
newValue=_this.options.start;
},
max: function max(){
newValue=_this.options.end;
},
handled: function handled(){
e.preventDefault();
_this._setHandlePos(_$handle, newValue, true);
}});
});
}
}, {
key: "_destroy",
value: function _destroy(){
this.handles.off('.zf.slider');
this.inputs.off('.zf.slider');
this.$element.off('.zf.slider');
clearTimeout(this.timeout);
}}]);
return Slider;
}(Plugin);
Slider.defaults={
start: 0,
end: 100,
step: 1,
initialStart: 0,
initialEnd: 100,
binding: false,
clickSelect: true,
vertical: false,
draggable: true,
disabled: false,
doubleSided: false,
decimal: 2,
moveTime: 200,
disabledClass: 'disabled',
invertVertical: false,
changedDelay: 500,
nonLinearBase: 5,
positionValueFunction: 'linear'
};
function percent(frac, num){
return frac / num;
}
function absPosition($handle, dir, clickPos, param){
return Math.abs($handle.position()[dir] + $handle[param]() / 2 - clickPos);
}
function baseLog(base, value){
return Math.log(value) / Math.log(base);
}
var Sticky =
function (_Plugin){
_inherits(Sticky, _Plugin);
function Sticky(){
_classCallCheck(this, Sticky);
return _possibleConstructorReturn(this, _getPrototypeOf(Sticky).apply(this, arguments));
}
_createClass(Sticky, [{
key: "_setup",
value: function _setup(element, options){
this.$element=element;
this.options=_jquery2.default.extend({}, Sticky.defaults, this.$element.data(), options);
this.className='Sticky';
Triggers.init(_jquery2.default);
this._init();
}
}, {
key: "_init",
value: function _init(){
MediaQuery._init();
var $parent=this.$element.parent('[data-sticky-container]'),
id=this.$element[0].id||GetYoDigits(6, 'sticky'),
_this=this;
if($parent.length){
this.$container=$parent;
}else{
this.wasWrapped=true;
this.$element.wrap(this.options.container);
this.$container=this.$element.parent();
}
this.$container.addClass(this.options.containerClass);
this.$element.addClass(this.options.stickyClass).attr({
'data-resize': id,
'data-mutate': id
});
if(this.options.anchor!==''){
(0, _jquery2.default)('#' + _this.options.anchor).attr({
'data-mutate': id
});
}
this.scrollCount=this.options.checkEvery;
this.isStuck=false;
this.onLoadListener=onLoad((0, _jquery2.default)(window), function (){
_this.containerHeight=_this.$element.css("display")=="none" ? 0:_this.$element[0].getBoundingClientRect().height;
_this.$container.css('height', _this.containerHeight);
_this.elemHeight=_this.containerHeight;
if(_this.options.anchor!==''){
_this.$anchor=(0, _jquery2.default)('#' + _this.options.anchor);
}else{
_this._parsePoints();
}
_this._setSizes(function (){
var scroll=window.pageYOffset;
_this._calc(false, scroll);
if(!_this.isStuck){
_this._removeSticky(scroll >=_this.topPoint ? false:true);
}});
_this._events(id.split('-').reverse().join('-'));
});
}
}, {
key: "_parsePoints",
value: function _parsePoints(){
var top=this.options.topAnchor=="" ? 1:this.options.topAnchor,
btm=this.options.btmAnchor=="" ? document.documentElement.scrollHeight:this.options.btmAnchor,
pts=[top, btm],
breaks={};
for (var i=0, len=pts.length; i < len&&pts[i]; i++){
var pt;
if(typeof pts[i]==='number'){
pt=pts[i];
}else{
var place=pts[i].split(':'),
anchor=(0, _jquery2.default)("#".concat(place[0]));
pt=anchor.offset().top;
if(place[1]&&place[1].toLowerCase()==='bottom'){
pt +=anchor[0].getBoundingClientRect().height;
}}
breaks[i]=pt;
}
this.points=breaks;
return;
}
}, {
key: "_events",
value: function _events(id){
var _this=this,
scrollListener=this.scrollListener="scroll.zf.".concat(id);
if(this.isOn){
return;
}
if(this.canStick){
this.isOn=true;
(0, _jquery2.default)(window).off(scrollListener).on(scrollListener, function (e){
if(_this.scrollCount===0){
_this.scrollCount=_this.options.checkEvery;
_this._setSizes(function (){
_this._calc(false, window.pageYOffset);
});
}else{
_this.scrollCount--;
_this._calc(false, window.pageYOffset);
}});
}
this.$element.off('resizeme.zf.trigger').on('resizeme.zf.trigger', function (e, el){
_this._eventsHandler(id);
});
this.$element.on('mutateme.zf.trigger', function (e, el){
_this._eventsHandler(id);
});
if(this.$anchor){
this.$anchor.on('mutateme.zf.trigger', function (e, el){
_this._eventsHandler(id);
});
}}
}, {
key: "_eventsHandler",
value: function _eventsHandler(id){
var _this=this,
scrollListener=this.scrollListener="scroll.zf.".concat(id);
_this._setSizes(function (){
_this._calc(false);
if(_this.canStick){
if(!_this.isOn){
_this._events(id);
}}else if(_this.isOn){
_this._pauseListeners(scrollListener);
}});
}
}, {
key: "_pauseListeners",
value: function _pauseListeners(scrollListener){
this.isOn=false;
(0, _jquery2.default)(window).off(scrollListener);
this.$element.trigger('pause.zf.sticky');
}
}, {
key: "_calc",
value: function _calc(checkSizes, scroll){
if(checkSizes){
this._setSizes();
}
if(!this.canStick){
if(this.isStuck){
this._removeSticky(true);
}
return false;
}
if(!scroll){
scroll=window.pageYOffset;
}
if(scroll >=this.topPoint){
if(scroll <=this.bottomPoint){
if(!this.isStuck){
this._setSticky();
}}else{
if(this.isStuck){
this._removeSticky(false);
}}
}else{
if(this.isStuck){
this._removeSticky(true);
}}
}
}, {
key: "_setSticky",
value: function _setSticky(){
var _this=this,
stickTo=this.options.stickTo,
mrgn=stickTo==='top' ? 'marginTop':'marginBottom',
notStuckTo=stickTo==='top' ? 'bottom':'top',
css={};
css[mrgn]="".concat(this.options[mrgn], "em");
css[stickTo]=0;
css[notStuckTo]='auto';
this.isStuck=true;
this.$element.removeClass("is-anchored is-at-".concat(notStuckTo)).addClass("is-stuck is-at-".concat(stickTo)).css(css)
.trigger("sticky.zf.stuckto:".concat(stickTo));
this.$element.on("transitionend webkitTransitionEnd oTransitionEnd otransitionend MSTransitionEnd", function (){
_this._setSizes();
});
}
}, {
key: "_removeSticky",
value: function _removeSticky(isTop){
var stickTo=this.options.stickTo,
stickToTop=stickTo==='top',
css={},
anchorPt=(this.points ? this.points[1] - this.points[0]:this.anchorHeight) - this.elemHeight,
mrgn=stickToTop ? 'marginTop':'marginBottom',
topOrBottom=isTop ? 'top':'bottom';
css[mrgn]=0;
css['bottom']='auto';
if(isTop){
css['top']=0;
}else{
css['top']=anchorPt;
}
this.isStuck=false;
this.$element.removeClass("is-stuck is-at-".concat(stickTo)).addClass("is-anchored is-at-".concat(topOrBottom)).css(css)
.trigger("sticky.zf.unstuckfrom:".concat(topOrBottom));
}
}, {
key: "_setSizes",
value: function _setSizes(cb){
this.canStick=MediaQuery.is(this.options.stickyOn);
if(!this.canStick){
if(cb&&typeof cb==='function'){
cb();
}}
var newElemWidth=this.$container[0].getBoundingClientRect().width,
comp=window.getComputedStyle(this.$container[0]),
pdngl=parseInt(comp['padding-left'], 10),
pdngr=parseInt(comp['padding-right'], 10);
if(this.$anchor&&this.$anchor.length){
this.anchorHeight=this.$anchor[0].getBoundingClientRect().height;
}else{
this._parsePoints();
}
this.$element.css({
'max-width': "".concat(newElemWidth - pdngl - pdngr, "px")
});
var newContainerHeight=this.$element[0].getBoundingClientRect().height||this.containerHeight;
if(this.$element.css("display")=="none"){
newContainerHeight=0;
}
this.containerHeight=newContainerHeight;
this.$container.css({
height: newContainerHeight
});
this.elemHeight=newContainerHeight;
if(!this.isStuck){
if(this.$element.hasClass('is-at-bottom')){
var anchorPt=(this.points ? this.points[1] - this.$container.offset().top:this.anchorHeight) - this.elemHeight;
this.$element.css('top', anchorPt);
}}
this._setBreakPoints(newContainerHeight, function (){
if(cb&&typeof cb==='function'){
cb();
}});
}
}, {
key: "_setBreakPoints",
value: function _setBreakPoints(elemHeight, cb){
if(!this.canStick){
if(cb&&typeof cb==='function'){
cb();
}else{
return false;
}}
var mTop=emCalc(this.options.marginTop),
mBtm=emCalc(this.options.marginBottom),
topPoint=this.points ? this.points[0]:this.$anchor.offset().top,
bottomPoint=this.points ? this.points[1]:topPoint + this.anchorHeight,
winHeight=window.innerHeight;
if(this.options.stickTo==='top'){
topPoint -=mTop;
bottomPoint -=elemHeight + mTop;
}else if(this.options.stickTo==='bottom'){
topPoint -=winHeight - (elemHeight + mBtm);
bottomPoint -=winHeight - mBtm;
}
this.topPoint=topPoint;
this.bottomPoint=bottomPoint;
if(cb&&typeof cb==='function'){
cb();
}}
}, {
key: "_destroy",
value: function _destroy(){
this._removeSticky(true);
this.$element.removeClass("".concat(this.options.stickyClass, " is-anchored is-at-top")).css({
height: '',
top: '',
bottom: '',
'max-width': ''
}).off('resizeme.zf.trigger').off('mutateme.zf.trigger');
if(this.$anchor&&this.$anchor.length){
this.$anchor.off('change.zf.sticky');
}
if(this.scrollListener) (0, _jquery2.default)(window).off(this.scrollListener);
if(this.onLoadListener) (0, _jquery2.default)(window).off(this.onLoadListener);
if(this.wasWrapped){
this.$element.unwrap();
}else{
this.$container.removeClass(this.options.containerClass).css({
height: ''
});
}}
}]);
return Sticky;
}(Plugin);
Sticky.defaults={
container: '<div data-sticky-container></div>',
stickTo: 'top',
anchor: '',
topAnchor: '',
btmAnchor: '',
marginTop: 1,
marginBottom: 1,
stickyOn: 'medium',
stickyClass: 'sticky',
containerClass: 'sticky-container',
checkEvery: -1
};
function emCalc(em){
return parseInt(window.getComputedStyle(document.body, null).fontSize, 10) * em;
}
var Tabs =
function (_Plugin){
_inherits(Tabs, _Plugin);
function Tabs(){
_classCallCheck(this, Tabs);
return _possibleConstructorReturn(this, _getPrototypeOf(Tabs).apply(this, arguments));
}
_createClass(Tabs, [{
key: "_setup",
value: function _setup(element, options){
this.$element=element;
this.options=_jquery2.default.extend({}, Tabs.defaults, this.$element.data(), options);
this.className='Tabs';
this._init();
Keyboard.register('Tabs', {
'ENTER': 'open',
'SPACE': 'open',
'ARROW_RIGHT': 'next',
'ARROW_UP': 'previous',
'ARROW_DOWN': 'next',
'ARROW_LEFT': 'previous' // 'TAB': 'next',
});
}
}, {
key: "_init",
value: function _init(){
var _this2=this;
var _this=this;
this._isInitializing=true;
this.$element.attr({
'role': 'tablist'
});
this.$tabTitles=this.$element.find(".".concat(this.options.linkClass));
this.$tabContent=(0, _jquery2.default)("[data-tabs-content=\"".concat(this.$element[0].id, "\"]"));
this.$tabTitles.each(function (){
var $elem=(0, _jquery2.default)(this),
$link=$elem.find('a'),
isActive=$elem.hasClass("".concat(_this.options.linkActiveClass)),
hash=$link.attr('data-tabs-target')||$link[0].hash.slice(1),
linkId=$link[0].id ? $link[0].id:"".concat(hash, "-label"),
$tabContent=(0, _jquery2.default)("#".concat(hash));
$elem.attr({
'role': 'presentation'
});
$link.attr({
'role': 'tab',
'aria-controls': hash,
'aria-selected': isActive,
'id': linkId,
'tabindex': isActive ? '0':'-1'
});
$tabContent.attr({
'role': 'tabpanel',
'aria-labelledby': linkId
});
if(isActive){
_this._initialAnchor="#".concat(hash);
}
if(!isActive){
$tabContent.attr('aria-hidden', 'true');
}
if(isActive&&_this.options.autoFocus){
_this.onLoadListener=onLoad((0, _jquery2.default)(window), function (){
(0, _jquery2.default)('html, body').animate({
scrollTop: $elem.offset().top
}, _this.options.deepLinkSmudgeDelay, function (){
$link.focus();
});
});
}});
if(this.options.matchHeight){
var $images=this.$tabContent.find('img');
if($images.length){
onImagesLoaded($images, this._setHeight.bind(this));
}else{
this._setHeight();
}}
this._checkDeepLink=function (){
var anchor=window.location.hash;
if(!anchor.length){
if(_this2._isInitializing) return;
if(_this2._initialAnchor) anchor=_this2._initialAnchor;
}
var $anchor=anchor&&(0, _jquery2.default)(anchor);
var $link=anchor&&_this2.$element.find('[href$="' + anchor + '"]');
var isOwnAnchor = !!($anchor.length&&$link.length);
if($anchor&&$anchor.length&&$link&&$link.length){
_this2.selectTab($anchor, true);
}else{
_this2._collapse();
}
if(isOwnAnchor){
if(_this2.options.deepLinkSmudge){
var offset=_this2.$element.offset();
(0, _jquery2.default)('html, body').animate({
scrollTop: offset.top
}, _this2.options.deepLinkSmudgeDelay);
}
_this2.$element.trigger('deeplink.zf.tabs', [$link, $anchor]);
}};
if(this.options.deepLink){
this._checkDeepLink();
}
this._events();
this._isInitializing=false;
}
}, {
key: "_events",
value: function _events(){
this._addKeyHandler();
this._addClickHandler();
this._setHeightMqHandler=null;
if(this.options.matchHeight){
this._setHeightMqHandler=this._setHeight.bind(this);
(0, _jquery2.default)(window).on('changed.zf.mediaquery', this._setHeightMqHandler);
}
if(this.options.deepLink){
(0, _jquery2.default)(window).on('hashchange', this._checkDeepLink);
}}
}, {
key: "_addClickHandler",
value: function _addClickHandler(){
var _this=this;
this.$element.off('click.zf.tabs').on('click.zf.tabs', ".".concat(this.options.linkClass), function (e){
e.preventDefault();
e.stopPropagation();
_this._handleTabChange((0, _jquery2.default)(this));
});
}
}, {
key: "_addKeyHandler",
value: function _addKeyHandler(){
var _this=this;
this.$tabTitles.off('keydown.zf.tabs').on('keydown.zf.tabs', function (e){
if(e.which===9) return;
var $element=(0, _jquery2.default)(this),
$elements=$element.parent('ul').children('li'),
$prevElement,
$nextElement;
$elements.each(function (i){
if((0, _jquery2.default)(this).is($element)){
if(_this.options.wrapOnKeys){
$prevElement=i===0 ? $elements.last():$elements.eq(i - 1);
$nextElement=i===$elements.length - 1 ? $elements.first():$elements.eq(i + 1);
}else{
$prevElement=$elements.eq(Math.max(0, i - 1));
$nextElement=$elements.eq(Math.min(i + 1, $elements.length - 1));
}
return;
}});
Keyboard.handleKey(e, 'Tabs', {
open: function open(){
$element.find('[role="tab"]').focus();
_this._handleTabChange($element);
},
previous: function previous(){
$prevElement.find('[role="tab"]').focus();
_this._handleTabChange($prevElement);
},
next: function next(){
$nextElement.find('[role="tab"]').focus();
_this._handleTabChange($nextElement);
},
handled: function handled(){
e.stopPropagation();
e.preventDefault();
}});
});
}
}, {
key: "_handleTabChange",
value: function _handleTabChange($target, historyHandled){
if($target.hasClass("".concat(this.options.linkActiveClass))){
if(this.options.activeCollapse){
this._collapse();
}
return;
}
var $oldTab=this.$element.find(".".concat(this.options.linkClass, ".").concat(this.options.linkActiveClass)),
$tabLink=$target.find('[role="tab"]'),
target=$tabLink.attr('data-tabs-target'),
anchor=target&&target.length ? "#".concat(target):$tabLink[0].hash,
$targetContent=this.$tabContent.find(anchor);
this._collapseTab($oldTab);
this._openTab($target);
if(this.options.deepLink&&!historyHandled){
if(this.options.updateHistory){
history.pushState({}, '', anchor);
}else{
history.replaceState({}, '', anchor);
}}
this.$element.trigger('change.zf.tabs', [$target, $targetContent]);
$targetContent.find("[data-mutate]").trigger("mutateme.zf.trigger");
}
}, {
key: "_openTab",
value: function _openTab($target){
var $tabLink=$target.find('[role="tab"]'),
hash=$tabLink.attr('data-tabs-target')||$tabLink[0].hash.slice(1),
$targetContent=this.$tabContent.find("#".concat(hash));
$target.addClass("".concat(this.options.linkActiveClass));
$tabLink.attr({
'aria-selected': 'true',
'tabindex': '0'
});
$targetContent.addClass("".concat(this.options.panelActiveClass)).removeAttr('aria-hidden');
}
}, {
key: "_collapseTab",
value: function _collapseTab($target){
var $target_anchor=$target.removeClass("".concat(this.options.linkActiveClass)).find('[role="tab"]').attr({
'aria-selected': 'false',
'tabindex': -1
});
(0, _jquery2.default)("#".concat($target_anchor.attr('aria-controls'))).removeClass("".concat(this.options.panelActiveClass)).attr({
'aria-hidden': 'true'
});
}
}, {
key: "_collapse",
value: function _collapse(){
var $activeTab=this.$element.find(".".concat(this.options.linkClass, ".").concat(this.options.linkActiveClass));
if($activeTab.length){
this._collapseTab($activeTab);
this.$element.trigger('collapse.zf.tabs', [$activeTab]);
}}
}, {
key: "selectTab",
value: function selectTab(elem, historyHandled){
var idStr;
if(_typeof(elem)==='object'){
idStr=elem[0].id;
}else{
idStr=elem;
}
if(idStr.indexOf('#') < 0){
idStr="#".concat(idStr);
}
var $target=this.$tabTitles.has("[href$=\"".concat(idStr, "\"]"));
this._handleTabChange($target, historyHandled);
}}, {
key: "_setHeight",
value: function _setHeight(){
var max=0,
_this=this;
this.$tabContent.find(".".concat(this.options.panelClass)).css('height', '').each(function (){
var panel=(0, _jquery2.default)(this),
isActive=panel.hasClass("".concat(_this.options.panelActiveClass));
if(!isActive){
panel.css({
'visibility': 'hidden',
'display': 'block'
});
}
var temp=this.getBoundingClientRect().height;
if(!isActive){
panel.css({
'visibility': '',
'display': ''
});
}
max=temp > max ? temp:max;
}).css('height', "".concat(max, "px"));
}
}, {
key: "_destroy",
value: function _destroy(){
this.$element.find(".".concat(this.options.linkClass)).off('.zf.tabs').hide().end().find(".".concat(this.options.panelClass)).hide();
if(this.options.matchHeight){
if(this._setHeightMqHandler!=null){
(0, _jquery2.default)(window).off('changed.zf.mediaquery', this._setHeightMqHandler);
}}
if(this.options.deepLink){
(0, _jquery2.default)(window).off('hashchange', this._checkDeepLink);
}
if(this.onLoadListener){
(0, _jquery2.default)(window).off(this.onLoadListener);
}}
}]);
return Tabs;
}(Plugin);
Tabs.defaults={
deepLink: false,
deepLinkSmudge: false,
deepLinkSmudgeDelay: 300,
updateHistory: false,
autoFocus: false,
wrapOnKeys: true,
matchHeight: false,
activeCollapse: false,
linkClass: 'tabs-title',
linkActiveClass: 'is-active',
panelClass: 'tabs-panel',
panelActiveClass: 'is-active'
};
var Toggler =
function (_Plugin){
_inherits(Toggler, _Plugin);
function Toggler(){
_classCallCheck(this, Toggler);
return _possibleConstructorReturn(this, _getPrototypeOf(Toggler).apply(this, arguments));
}
_createClass(Toggler, [{
key: "_setup",
value: function _setup(element, options){
this.$element=element;
this.options=_jquery2.default.extend({}, Toggler.defaults, element.data(), options);
this.className='';
this.className='Toggler';
Triggers.init(_jquery2.default);
this._init();
this._events();
}
}, {
key: "_init",
value: function _init(){
var input;
if(this.options.animate){
input=this.options.animate.split(' ');
this.animationIn=input[0];
this.animationOut=input[1]||null;
}else{
input=this.$element.data('toggler');
this.className=input[0]==='.' ? input.slice(1):input;
}
var id=this.$element[0].id,
$triggers=(0, _jquery2.default)("[data-open~=\"".concat(id, "\"], [data-close~=\"").concat(id, "\"], [data-toggle~=\"").concat(id, "\"]"));
$triggers.attr('aria-expanded', !this.$element.is(':hidden'));
$triggers.each(function (index, trigger){
var $trigger=(0, _jquery2.default)(trigger);
var controls=$trigger.attr('aria-controls')||'';
var containsId=new RegExp("\\b".concat(RegExpEscape(id), "\\b")).test(controls);
if(!containsId) $trigger.attr('aria-controls', controls ? "".concat(controls, " ").concat(id):id);
});
}
}, {
key: "_events",
value: function _events(){
this.$element.off('toggle.zf.trigger').on('toggle.zf.trigger', this.toggle.bind(this));
}
}, {
key: "toggle",
value: function toggle(){
this[this.options.animate ? '_toggleAnimate':'_toggleClass']();
}}, {
key: "_toggleClass",
value: function _toggleClass(){
this.$element.toggleClass(this.className);
var isOn=this.$element.hasClass(this.className);
if(isOn){
this.$element.trigger('on.zf.toggler');
}else{
this.$element.trigger('off.zf.toggler');
}
this._updateARIA(isOn);
this.$element.find('[data-mutate]').trigger('mutateme.zf.trigger');
}}, {
key: "_toggleAnimate",
value: function _toggleAnimate(){
var _this=this;
if(this.$element.is(':hidden')){
Motion.animateIn(this.$element, this.animationIn, function (){
_this._updateARIA(true);
this.trigger('on.zf.toggler');
this.find('[data-mutate]').trigger('mutateme.zf.trigger');
});
}else{
Motion.animateOut(this.$element, this.animationOut, function (){
_this._updateARIA(false);
this.trigger('off.zf.toggler');
this.find('[data-mutate]').trigger('mutateme.zf.trigger');
});
}}
}, {
key: "_updateARIA",
value: function _updateARIA(isOn){
var id=this.$element[0].id;
(0, _jquery2.default)("[data-open=\"".concat(id, "\"], [data-close=\"").concat(id, "\"], [data-toggle=\"").concat(id, "\"]")).attr({
'aria-expanded': isOn ? true:false
});
}
}, {
key: "_destroy",
value: function _destroy(){
this.$element.off('.zf.toggler');
}}]);
return Toggler;
}(Plugin);
Toggler.defaults={
animate: false
};
var Tooltip =
function (_Positionable){
_inherits(Tooltip, _Positionable);
function Tooltip(){
_classCallCheck(this, Tooltip);
return _possibleConstructorReturn(this, _getPrototypeOf(Tooltip).apply(this, arguments));
}
_createClass(Tooltip, [{
key: "_setup",
value: function _setup(element, options){
this.$element=element;
this.options=_jquery2.default.extend({}, Tooltip.defaults, this.$element.data(), options);
this.className='Tooltip';
this.isActive=false;
this.isClick=false;
Triggers.init(_jquery2.default);
this._init();
}
}, {
key: "_init",
value: function _init(){
MediaQuery._init();
var elemId=this.$element.attr('aria-describedby')||GetYoDigits(6, 'tooltip');
this.options.tipText=this.options.tipText||this.$element.attr('title');
this.template=this.options.template ? (0, _jquery2.default)(this.options.template):this._buildTemplate(elemId);
if(this.options.allowHtml){
this.template.appendTo(document.body).html(this.options.tipText).hide();
}else{
this.template.appendTo(document.body).text(this.options.tipText).hide();
}
this.$element.attr({
'title': '',
'aria-describedby': elemId,
'data-yeti-box': elemId,
'data-toggle': elemId,
'data-resize': elemId
}).addClass(this.options.triggerClass);
_get(_getPrototypeOf(Tooltip.prototype), "_init", this).call(this);
this._events();
}}, {
key: "_getDefaultPosition",
value: function _getDefaultPosition(){
var position=this.$element[0].className.match(/\b(top|left|right|bottom)\b/g);
return position ? position[0]:'top';
}}, {
key: "_getDefaultAlignment",
value: function _getDefaultAlignment(){
return 'center';
}}, {
key: "_getHOffset",
value: function _getHOffset(){
if(this.position==='left'||this.position==='right'){
return this.options.hOffset + this.options.tooltipWidth;
}else{
return this.options.hOffset;
}}
}, {
key: "_getVOffset",
value: function _getVOffset(){
if(this.position==='top'||this.position==='bottom'){
return this.options.vOffset + this.options.tooltipHeight;
}else{
return this.options.vOffset;
}}
}, {
key: "_buildTemplate",
value: function _buildTemplate(id){
var templateClasses="".concat(this.options.tooltipClass, " ").concat(this.options.templateClasses).trim();
var $template=(0, _jquery2.default)('<div></div>').addClass(templateClasses).attr({
'role': 'tooltip',
'aria-hidden': true,
'data-is-active': false,
'data-is-focus': false,
'id': id
});
return $template;
}
}, {
key: "_setPosition",
value: function _setPosition(){
_get(_getPrototypeOf(Tooltip.prototype), "_setPosition", this).call(this, this.$element, this.template);
}
}, {
key: "show",
value: function show(){
if(this.options.showOn!=='all'&&!MediaQuery.is(this.options.showOn)){
return false;
}
var _this=this;
this.template.css('visibility', 'hidden').show();
this._setPosition();
this.template.removeClass('top bottom left right').addClass(this.position);
this.template.removeClass('align-top align-bottom align-left align-right align-center').addClass('align-' + this.alignment);
this.$element.trigger('closeme.zf.tooltip', this.template.attr('id'));
this.template.attr({
'data-is-active': true,
'aria-hidden': false
});
_this.isActive=true;
this.template.stop().hide().css('visibility', '').fadeIn(this.options.fadeInDuration, function (){
});
this.$element.trigger('show.zf.tooltip');
}
}, {
key: "hide",
value: function hide(){
var _this=this;
this.template.stop().attr({
'aria-hidden': true,
'data-is-active': false
}).fadeOut(this.options.fadeOutDuration, function (){
_this.isActive=false;
_this.isClick=false;
});
this.$element.trigger('hide.zf.tooltip');
}
}, {
key: "_events",
value: function _events(){
var _this=this;
var $template=this.template;
var isFocus=false;
if(!this.options.disableHover){
this.$element.on('mouseenter.zf.tooltip', function (e){
if(!_this.isActive){
_this.timeout=setTimeout(function (){
_this.show();
}, _this.options.hoverDelay);
}}).on('mouseleave.zf.tooltip', ignoreMousedisappear(function (e){
clearTimeout(_this.timeout);
if(!isFocus||_this.isClick&&!_this.options.clickOpen){
_this.hide();
}}));
}
if(this.options.clickOpen){
this.$element.on('mousedown.zf.tooltip', function (e){
e.stopImmediatePropagation();
if(_this.isClick) ;else {
_this.isClick=true;
if((_this.options.disableHover||!_this.$element.attr('tabindex'))&&!_this.isActive){
_this.show();
}}
});
}else{
this.$element.on('mousedown.zf.tooltip', function (e){
e.stopImmediatePropagation();
_this.isClick=true;
});
}
if(!this.options.disableForTouch){
this.$element.on('tap.zf.tooltip touchend.zf.tooltip', function (e){
_this.isActive ? _this.hide():_this.show();
});
}
this.$element.on({
'close.zf.trigger': this.hide.bind(this)
});
this.$element.on('focus.zf.tooltip', function (e){
isFocus=true;
if(_this.isClick){
if(!_this.options.clickOpen){
isFocus=false;
}
return false;
}else{
_this.show();
}}).on('focusout.zf.tooltip', function (e){
isFocus=false;
_this.isClick=false;
_this.hide();
}).on('resizeme.zf.trigger', function (){
if(_this.isActive){
_this._setPosition();
}});
}
}, {
key: "toggle",
value: function toggle(){
if(this.isActive){
this.hide();
}else{
this.show();
}}
}, {
key: "_destroy",
value: function _destroy(){
this.$element.attr('title', this.template.text()).off('.zf.trigger .zf.tooltip').removeClass(this.options.triggerClass).removeClass('top right left bottom').removeAttr('aria-describedby data-disable-hover data-resize data-toggle data-tooltip data-yeti-box');
this.template.remove();
}}]);
return Tooltip;
}(Positionable);
Tooltip.defaults={
disableForTouch: false,
hoverDelay: 200,
fadeInDuration: 150,
fadeOutDuration: 150,
disableHover: false,
templateClasses: '',
tooltipClass: 'tooltip',
triggerClass: 'has-tip',
showOn: 'small',
template: '',
tipText: '',
touchCloseText: 'Tap to close.',
clickOpen: true,
position: 'auto',
alignment: 'auto',
allowOverlap: false,
allowBottomOverlap: false,
vOffset: 0,
hOffset: 0,
tooltipHeight: 14,
tooltipWidth: 12,
allowHtml: false
};
var MenuPlugins$1={
tabs: {
cssClass: 'tabs',
plugin: Tabs
},
accordion: {
cssClass: 'accordion',
plugin: Accordion
}};
var ResponsiveAccordionTabs =
function (_Plugin){
_inherits(ResponsiveAccordionTabs, _Plugin);
function ResponsiveAccordionTabs(){
_classCallCheck(this, ResponsiveAccordionTabs);
return _possibleConstructorReturn(this, _getPrototypeOf(ResponsiveAccordionTabs).apply(this, arguments));
}
_createClass(ResponsiveAccordionTabs, [{
key: "_setup",
value: function _setup(element, options){
this.$element=(0, _jquery2.default)(element);
this.options=_jquery2.default.extend({}, this.$element.data(), options);
this.rules=this.$element.data('responsive-accordion-tabs');
this.currentMq=null;
this.currentPlugin=null;
this.className='ResponsiveAccordionTabs';
if(!this.$element.attr('id')){
this.$element.attr('id', GetYoDigits(6, 'responsiveaccordiontabs'));
}
this._init();
this._events();
}
}, {
key: "_init",
value: function _init(){
MediaQuery._init();
if(typeof this.rules==='string'){
var rulesTree={};
var rules=this.rules.split(' ');
for (var i=0; i < rules.length; i++){
var rule=rules[i].split('-');
var ruleSize=rule.length > 1 ? rule[0]:'small';
var rulePlugin=rule.length > 1 ? rule[1]:rule[0];
if(MenuPlugins$1[rulePlugin]!==null){
rulesTree[ruleSize]=MenuPlugins$1[rulePlugin];
}}
this.rules=rulesTree;
}
this._getAllOptions();
if(!_jquery2.default.isEmptyObject(this.rules)){
this._checkMediaQueries();
}}
}, {
key: "_getAllOptions",
value: function _getAllOptions(){
var _this=this;
_this.allOptions={};
for (var key in MenuPlugins$1){
if(MenuPlugins$1.hasOwnProperty(key)){
var obj=MenuPlugins$1[key];
try {
var dummyPlugin=(0, _jquery2.default)('<ul></ul>');
var tmpPlugin=new obj.plugin(dummyPlugin, _this.options);
for (var keyKey in tmpPlugin.options){
if(tmpPlugin.options.hasOwnProperty(keyKey)&&keyKey!=='zfPlugin'){
var objObj=tmpPlugin.options[keyKey];
_this.allOptions[keyKey]=objObj;
}}
tmpPlugin.destroy();
} catch (e){}}
}}
}, {
key: "_events",
value: function _events(){
this._changedZfMediaQueryHandler=this._checkMediaQueries.bind(this);
(0, _jquery2.default)(window).on('changed.zf.mediaquery', this._changedZfMediaQueryHandler);
}
}, {
key: "_checkMediaQueries",
value: function _checkMediaQueries(){
var matchedMq,
_this=this;
_jquery2.default.each(this.rules, function (key){
if(MediaQuery.atLeast(key)){
matchedMq=key;
}});
if(!matchedMq) return;
if(this.currentPlugin instanceof this.rules[matchedMq].plugin) return;
_jquery2.default.each(MenuPlugins$1, function (key, value){
_this.$element.removeClass(value.cssClass);
});
this.$element.addClass(this.rules[matchedMq].cssClass);
if(this.currentPlugin){
if(!this.currentPlugin.$element.data('zfPlugin')&&this.storezfData) this.currentPlugin.$element.data('zfPlugin', this.storezfData);
this.currentPlugin.destroy();
}
this._handleMarkup(this.rules[matchedMq].cssClass);
this.currentPlugin=new this.rules[matchedMq].plugin(this.$element, {});
this.storezfData=this.currentPlugin.$element.data('zfPlugin');
}}, {
key: "_handleMarkup",
value: function _handleMarkup(toSet){
var _this=this,
fromString='accordion';
var $panels=(0, _jquery2.default)('[data-tabs-content=' + this.$element.attr('id') + ']');
if($panels.length) fromString='tabs';
if(fromString===toSet){
return;
}
var tabsTitle=_this.allOptions.linkClass ? _this.allOptions.linkClass:'tabs-title';
var tabsPanel=_this.allOptions.panelClass ? _this.allOptions.panelClass:'tabs-panel';
this.$element.removeAttr('role');
var $liHeads=this.$element.children('.' + tabsTitle + ',[data-accordion-item]').removeClass(tabsTitle).removeClass('accordion-item').removeAttr('data-accordion-item');
var $liHeadsA=$liHeads.children('a').removeClass('accordion-title');
if(fromString==='tabs'){
$panels=$panels.children('.' + tabsPanel).removeClass(tabsPanel).removeAttr('role').removeAttr('aria-hidden').removeAttr('aria-labelledby');
$panels.children('a').removeAttr('role').removeAttr('aria-controls').removeAttr('aria-selected');
}else{
$panels=$liHeads.children('[data-tab-content]').removeClass('accordion-content');
}
$panels.css({
display: '',
visibility: ''
});
$liHeads.css({
display: '',
visibility: ''
});
if(toSet==='accordion'){
$panels.each(function (key, value){
(0, _jquery2.default)(value).appendTo($liHeads.get(key)).addClass('accordion-content').attr('data-tab-content', '').removeClass('is-active').css({
height: ''
});
(0, _jquery2.default)('[data-tabs-content=' + _this.$element.attr('id') + ']').after('<div id="tabs-placeholder-' + _this.$element.attr('id') + '"></div>').detach();
$liHeads.addClass('accordion-item').attr('data-accordion-item', '');
$liHeadsA.addClass('accordion-title');
});
}else if(toSet==='tabs'){
var $tabsContent=(0, _jquery2.default)('[data-tabs-content=' + _this.$element.attr('id') + ']');
var $placeholder=(0, _jquery2.default)('#tabs-placeholder-' + _this.$element.attr('id'));
if($placeholder.length){
$tabsContent=(0, _jquery2.default)('<div class="tabs-content"></div>').insertAfter($placeholder).attr('data-tabs-content', _this.$element.attr('id'));
$placeholder.remove();
}else{
$tabsContent=(0, _jquery2.default)('<div class="tabs-content"></div>').insertAfter(_this.$element).attr('data-tabs-content', _this.$element.attr('id'));
}
$panels.each(function (key, value){
var tempValue=(0, _jquery2.default)(value).appendTo($tabsContent).addClass(tabsPanel);
var hash=$liHeadsA.get(key).hash.slice(1);
var id=(0, _jquery2.default)(value).attr('id')||GetYoDigits(6, 'accordion');
if(hash!==id){
if(hash!==''){
(0, _jquery2.default)(value).attr('id', hash);
}else{
hash=id;
(0, _jquery2.default)(value).attr('id', hash);
(0, _jquery2.default)($liHeadsA.get(key)).attr('href', (0, _jquery2.default)($liHeadsA.get(key)).attr('href').replace('#', '') + '#' + hash);
}}
var isActive=(0, _jquery2.default)($liHeads.get(key)).hasClass('is-active');
if(isActive){
tempValue.addClass('is-active');
}});
$liHeads.addClass(tabsTitle);
}}
}, {
key: "_destroy",
value: function _destroy(){
if(this.currentPlugin) this.currentPlugin.destroy();
(0, _jquery2.default)(window).off('changed.zf.mediaquery', this._changedZfMediaQueryHandler);
}}]);
return ResponsiveAccordionTabs;
}(Plugin);
ResponsiveAccordionTabs.defaults={};
Foundation.addToJquery(_jquery2.default);
Foundation.rtl=rtl;
Foundation.GetYoDigits=GetYoDigits;
Foundation.transitionend=transitionend;
Foundation.RegExpEscape=RegExpEscape;
Foundation.onLoad=onLoad;
Foundation.Box=Box;
Foundation.onImagesLoaded=onImagesLoaded;
Foundation.Keyboard=Keyboard;
Foundation.MediaQuery=MediaQuery;
Foundation.Motion=Motion;
Foundation.Move=Move;
Foundation.Nest=Nest;
Foundation.Timer=Timer;
Touch.init(_jquery2.default);
Triggers.init(_jquery2.default, Foundation);
MediaQuery._init();
Foundation.plugin(Abide, 'Abide');
Foundation.plugin(Accordion, 'Accordion');
Foundation.plugin(AccordionMenu, 'AccordionMenu');
Foundation.plugin(Drilldown, 'Drilldown');
Foundation.plugin(Dropdown, 'Dropdown');
Foundation.plugin(DropdownMenu, 'DropdownMenu');
Foundation.plugin(Equalizer, 'Equalizer');
Foundation.plugin(Interchange, 'Interchange');
Foundation.plugin(Magellan, 'Magellan');
Foundation.plugin(OffCanvas, 'OffCanvas');
Foundation.plugin(Orbit, 'Orbit');
Foundation.plugin(ResponsiveMenu, 'ResponsiveMenu');
Foundation.plugin(ResponsiveToggle, 'ResponsiveToggle');
Foundation.plugin(Reveal, 'Reveal');
Foundation.plugin(Slider, 'Slider');
Foundation.plugin(SmoothScroll, 'SmoothScroll');
Foundation.plugin(Sticky, 'Sticky');
Foundation.plugin(Tabs, 'Tabs');
Foundation.plugin(Toggler, 'Toggler');
Foundation.plugin(Tooltip, 'Tooltip');
Foundation.plugin(ResponsiveAccordionTabs, 'ResponsiveAccordionTabs');
exports.default=Foundation;
exports.CoreUtils=foundation_core_utils;
exports.Core=Foundation;
exports.Box=Box;
exports.onImagesLoaded=onImagesLoaded;
exports.Keyboard=Keyboard;
exports.MediaQuery=MediaQuery;
exports.Motion=Motion;
exports.Move=Move;
exports.Nest=Nest;
exports.Timer=Timer;
exports.Touch=Touch;
exports.Triggers=Triggers;
exports.Abide=Abide;
exports.Accordion=Accordion;
exports.AccordionMenu=AccordionMenu;
exports.Drilldown=Drilldown;
exports.Dropdown=Dropdown;
exports.DropdownMenu=DropdownMenu;
exports.Equalizer=Equalizer;
exports.Interchange=Interchange;
exports.Magellan=Magellan;
exports.OffCanvas=OffCanvas;
exports.Orbit=Orbit;
exports.ResponsiveMenu=ResponsiveMenu;
exports.ResponsiveToggle=ResponsiveToggle;
exports.Reveal=Reveal;
exports.Slider=Slider;
exports.SmoothScroll=SmoothScroll;
exports.Sticky=Sticky;
exports.Tabs=Tabs;
exports.Toggler=Toggler;
exports.Tooltip=Tooltip;
exports.ResponsiveAccordionTabs=ResponsiveAccordionTabs;
exports.Foundation=Foundation;
})
]);
!function(e){"use strict";"function"==typeof define&&define.amd?define(["jquery"],e):"object"==typeof module&&module.exports?module.exports=e(require("jquery")):jQuery&&!jQuery.fn.hoverIntent&&e(jQuery)}(function(f){"use strict";function u(e){return"function"==typeof e}var i,r,v={interval:100,sensitivity:6,timeout:0},s=0,a=function(e){i=e.pageX,r=e.pageY},p=function(e,t,n,o){if(Math.sqrt((n.pX-i)*(n.pX-i)+(n.pY-r)*(n.pY-r))<o.sensitivity)return t.off(n.event,a),delete n.timeoutId,n.isActive=!0,e.pageX=i,e.pageY=r,delete n.pX,delete n.pY,o.over.apply(t[0],[e]);n.pX=i,n.pY=r,n.timeoutId=setTimeout(function(){p(e,t,n,o)},o.interval)};f.fn.hoverIntent=function(e,t,n){function o(e){var u=f.extend({},e),r=f(this),v=((t=r.data("hoverIntent"))||r.data("hoverIntent",t={}),t[i]),t=(v||(t[i]=v={id:i}),v.timeoutId&&(v.timeoutId=clearTimeout(v.timeoutId)),v.event="mousemove.hoverIntent.hoverIntent"+i);"mouseenter"===e.type?v.isActive||(v.pX=u.pageX,v.pY=u.pageY,r.off(t,a).on(t,a),v.timeoutId=setTimeout(function(){p(u,r,v,d)},d.interval)):v.isActive&&(r.off(t,a),v.timeoutId=setTimeout(function(){var e,t,n,o,i;e=u,t=r,n=v,o=d.out,(i=t.data("hoverIntent"))&&delete i[n.id],o.apply(t[0],[e])},d.timeout))}var i=s++,d=f.extend({},v);f.isPlainObject(e)?(d=f.extend(d,e),u(d.out)||(d.out=d.over)):d=u(t)?f.extend(d,{over:e,out:t,selector:n}):f.extend(d,{over:e,out:e,selector:t});return this.on({"mouseenter.hoverIntent":o,"mouseleave.hoverIntent":o},d.selector)}});
(function($){
"use strict";
$.maxmegamenu=function(menu, options){
var plugin=this;
var $menu=$(menu);
var $wrap=$(menu).parent();
var $toggle_bar=$menu.siblings(".mega-menu-toggle");
var html_body_class_timeout;
var defaults={
event: $menu.attr("data-event"),
effect: $menu.attr("data-effect"),
effect_speed: parseInt($menu.attr("data-effect-speed")),
effect_mobile: $menu.attr("data-effect-mobile"),
effect_speed_mobile: parseInt($menu.attr("data-effect-speed-mobile")),
panel_width: $menu.attr("data-panel-width"),
panel_inner_width: $menu.attr("data-panel-inner-width"),
mobile_force_width: $menu.attr("data-mobile-force-width"),
mobile_overlay: $menu.attr("data-mobile-overlay"),
mobile_state: $menu.attr("data-mobile-state"),
mobile_direction: $menu.attr("data-mobile-direction"),
second_click: $menu.attr("data-second-click"),
vertical_behaviour: $menu.attr("data-vertical-behaviour"),
document_click: $menu.attr("data-document-click"),
breakpoint: $menu.attr("data-breakpoint"),
unbind_events: $menu.attr("data-unbind"),
hover_intent_timeout: $menu.attr("data-hover-intent-timeout"),
hover_intent_interval: $menu.attr("data-hover-intent-interval")
};
plugin.settings={};
var items_with_submenus=$("li.mega-menu-megamenu.mega-menu-item-has-children," +
"li.mega-menu-flyout.mega-menu-item-has-children," +
"li.mega-menu-tabbed > ul.mega-sub-menu > li.mega-menu-item-has-children," +
"li.mega-menu-flyout li.mega-menu-item-has-children", $menu);
var collapse_children_parents=$("li.mega-menu-megamenu li.mega-menu-item-has-children.mega-collapse-children > a.mega-menu-link", $menu);
plugin.addAnimatingClass=function(element){
if(plugin.settings.effect==="disabled"){
return;
}
$(".mega-animating").removeClass("mega-animating");
var timeout=plugin.settings.effect_speed + parseInt(plugin.settings.hover_intent_timeout, 10);
element.addClass("mega-animating");
setTimeout(function(){
element.removeClass("mega-animating");
}, timeout);
};
plugin.hideAllPanels=function(){
$(".mega-toggle-on > a.mega-menu-link", $menu).each(function(){
plugin.hidePanel($(this), false);
});
};
plugin.expandMobileSubMenus=function(){
if(plugin.settings.mobile_direction!=='vertical'){
return;
}
$(".mega-menu-item-has-children.mega-expand-on-mobile > a.mega-menu-link", $menu).each(function(){
plugin.showPanel($(this), true);
});
if(plugin.settings.mobile_state=='expand_all'){
$(".mega-menu-item-has-children:not(.mega-toggle-on) > a.mega-menu-link", $menu).each(function(){
plugin.showPanel($(this), true);
});
}
if(plugin.settings.mobile_state=='expand_active'){
const activeItemSelectors=[
"li.mega-current-menu-ancestor.mega-menu-item-has-children > a.mega-menu-link",
"li.mega-current-menu-item.mega-menu-item-has-children > a.mega-menu-link",
"li.mega-current-menu-parent.mega-menu-item-has-children > a.mega-menu-link",
"li.mega-current_page_ancestor.mega-menu-item-has-children > a.mega-menu-link",
"li.mega-current_page_item.mega-menu-item-has-children > a.mega-menu-link"
];
$menu.find(activeItemSelectors.join(', ')).each(function(){
plugin.showPanel($(this), true);
});
}}
plugin.hideSiblingPanels=function(anchor, immediate){
anchor.parent().parent().find(".mega-toggle-on").children("a.mega-menu-link").each(function(){
plugin.hidePanel($(this), immediate);
});
};
plugin.isDesktopView=function(){
var width=Math.max(document.documentElement.clientWidth||0, window.innerWidth||0);
return width > plugin.settings.breakpoint;
};
plugin.isMobileView=function(){
return !plugin.isDesktopView();
};
plugin.showPanel=function(anchor, immediate){
if($.isNumeric(anchor)){
anchor=$("li.mega-menu-item-" + anchor, $menu).find("a.mega-menu-link").first();
}else if(anchor.is("li.mega-menu-item")){
anchor=anchor.find("a.mega-menu-link").first();
}
anchor.parent().triggerHandler("before_open_panel");
anchor.parent().find("[aria-expanded]").first().attr("aria-expanded", "true");
$(".mega-animating").removeClass("mega-animating");
if(plugin.isMobileView()&&anchor.parent().hasClass("mega-hide-sub-menu-on-mobile")){
return;
}
if(plugin.isDesktopView()&&($menu.hasClass("mega-menu-horizontal")||$menu.hasClass("mega-menu-vertical"))&&!anchor.parent().hasClass("mega-collapse-children")){
plugin.hideSiblingPanels(anchor, true);
}
if((plugin.isMobileView()&&$wrap.hasClass("mega-keyboard-navigation"))||plugin.settings.vertical_behaviour==="accordion"){
plugin.hideSiblingPanels(anchor, false);
}
plugin.calculateDynamicSubmenuWidths(anchor);
if(plugin.shouldUseSlideAnimation(anchor, immediate)){
var speed=plugin.isMobileView() ? plugin.settings.effect_speed_mobile:plugin.settings.effect_speed;
anchor.siblings(".mega-sub-menu").css("display", "none").animate({"height":"show", "paddingTop":"show", "paddingBottom":"show", "minHeight":"show"}, speed, function(){
$(this).css("display", "");
});
}
anchor.parent().addClass("mega-toggle-on").triggerHandler("open_panel");
};
plugin.shouldUseSlideAnimation=function(anchor, immediate){
if(immediate==true){
return false;
}
if(anchor.parent().hasClass("mega-collapse-children")){
return true;
}
if(plugin.isDesktopView()&&plugin.settings.effect==="slide"){
return true;
}
if(plugin.isMobileView()){
if(plugin.settings.effect_mobile==="slide"){
return true;
}
if(plugin.settings.effect_mobile==="slide_left"||plugin.settings.effect_mobile==="slide_right"){
return plugin.settings.mobile_direction!=="horizontal";
}}
return false;
};
plugin.hidePanel=function(anchor, immediate){
if($.isNumeric(anchor)){
anchor=$("li.mega-menu-item-" + anchor, $menu).find("a.mega-menu-link").first();
}else if(anchor.is("li.mega-menu-item")){
anchor=anchor.find("a.mega-menu-link").first();
}
anchor.parent().triggerHandler("before_close_panel");
anchor.parent().find("[aria-expanded]").first().attr("aria-expanded", "false");
if(plugin.shouldUseSlideAnimation(anchor)){
var speed=plugin.isMobileView() ? plugin.settings.effect_speed_mobile:plugin.settings.effect_speed;
anchor.siblings(".mega-sub-menu").animate({"height":"hide", "paddingTop":"hide", "paddingBottom":"hide", "minHeight":"hide"}, speed, function(){
anchor.siblings(".mega-sub-menu").css("display", "");
anchor.parent().removeClass("mega-toggle-on").triggerHandler("close_panel");
});
return;
}
if(immediate){
anchor.siblings(".mega-sub-menu").css("display", "none").delay(plugin.settings.effect_speed).queue(function(){
$(this).css("display", "").dequeue();
});
}
anchor.siblings(".mega-sub-menu").find(".widget_media_video video").each(function(){
this.player.pause();
});
anchor.parent().removeClass("mega-toggle-on").triggerHandler("close_panel");
plugin.addAnimatingClass(anchor.parent());
};
plugin.calculateDynamicSubmenuWidths=function(anchor){
if(anchor.parent().hasClass("mega-menu-megamenu")&&anchor.parent().parent().hasClass("max-mega-menu")&&plugin.settings.panel_width){
if(plugin.isDesktopView()){
var submenu_offset=$menu.offset();
var target_offset=$(plugin.settings.panel_width).offset();
if(plugin.settings.panel_width=='100vw'){
target_offset=$('body').offset();
anchor.siblings(".mega-sub-menu").css({
left: (target_offset.left - submenu_offset.left) + "px"
});
}else if($(plugin.settings.panel_width).length > 0){
anchor.siblings(".mega-sub-menu").css({
width: $(plugin.settings.panel_width).outerWidth(),
left: (target_offset.left - submenu_offset.left) + "px"
});
}}else{
anchor.siblings(".mega-sub-menu").css({
width: "",
left: ""
});
}}
if(anchor.parent().hasClass("mega-menu-megamenu")&&anchor.parent().parent().hasClass("max-mega-menu")&&plugin.settings.panel_inner_width&&$(plugin.settings.panel_inner_width).length > 0){
var target_width=0;
if($(plugin.settings.panel_inner_width).length){
target_width=parseInt($(plugin.settings.panel_inner_width).width(), 10);
}else{
target_width=parseInt(plugin.settings.panel_inner_width, 10);
}
anchor.siblings(".mega-sub-menu").css({
"paddingLeft": "",
"paddingRight": ""
});
var submenu_width=parseInt(anchor.siblings(".mega-sub-menu").innerWidth(), 10);
if(plugin.isDesktopView()&&target_width > 0&&target_width < submenu_width){
anchor.siblings(".mega-sub-menu").css({
"paddingLeft": (submenu_width - target_width) / 2 + "px",
"paddingRight": (submenu_width - target_width) / 2 + "px"
});
}}
};
plugin.bindClickEvents=function(){
if($wrap.data('has-click-events')===true){
return;
}
$wrap.data('has-click-events', true);
var dragging=false;
$(document).on({
"touchmove": function(e){ dragging=true; },
"touchstart": function(e){ dragging=false; }});
$(document).on("click touchend", function(e){
if(!dragging&&plugin.settings.document_click==="collapse"&&! $(e.target).closest(".mega-menu-wrap").length){
plugin.hideAllPanels();
plugin.hideMobileMenu();
}
dragging=false;
});
var clickable_parents=$("> a.mega-menu-link", items_with_submenus).add(collapse_children_parents);
clickable_parents.on("touchend.megamenu", function(e){
if(plugin.settings.event==="hover_intent"){
plugin.unbindHoverIntentEvents();
}
if(plugin.settings.event==="hover"){
plugin.unbindHoverEvents();
}});
clickable_parents.on("click.megamenu", function(e){
if($(e.target).hasClass('mega-indicator')){
return;
}
if(plugin.isDesktopView()&&$(this).parent().hasClass("mega-toggle-on")&&$(this).closest("ul.mega-sub-menu").parent().hasClass("mega-menu-tabbed")){
if(plugin.settings.second_click==="go"){
return;
}else{
e.preventDefault();
return;
}}
if(dragging){
return;
}
if(plugin.isMobileView()&&$(this).parent().hasClass("mega-hide-sub-menu-on-mobile")){
return;
}
if((plugin.settings.second_click==="go"||$(this).parent().hasClass("mega-click-click-go"))&&$(this).attr("href")!==undefined){
if(!$(this).parent().hasClass("mega-toggle-on")){
e.preventDefault();
plugin.showPanel($(this));
}}else{
e.preventDefault();
if($(this).parent().hasClass("mega-toggle-on")){
plugin.hidePanel($(this), false);
}else{
plugin.showPanel($(this));
}}
});
if(plugin.settings.second_click==="disabled"){
clickable_parents.off("click.megamenu");
}
$(".mega-close-after-click:not(.mega-menu-item-has-children) > a.mega-menu-link", $menu).on("click", function(){
plugin.hideAllPanels();
plugin.hideMobileMenu();
});
$("button.mega-close", $wrap).on("click", function(e){
plugin.hideMobileMenu();
});
};
plugin.bindHoverEvents=function(){
items_with_submenus.on({
"mouseenter.megamenu":function(){
plugin.unbindClickEvents();
if(! $(this).hasClass("mega-toggle-on")){
plugin.showPanel($(this).children("a.mega-menu-link"));
}},
"mouseleave.megamenu":function(){
if($(this).hasClass("mega-toggle-on")&&! $(this).hasClass("mega-disable-collapse")&&! $(this).parent().parent().hasClass("mega-menu-tabbed")){
plugin.hidePanel($(this).children("a.mega-menu-link"), false);
}}
});
};
plugin.bindHoverIntentEvents=function(){
items_with_submenus.hoverIntent({
over: function (){
plugin.unbindClickEvents();
if(! $(this).hasClass("mega-toggle-on")){
plugin.showPanel($(this).children("a.mega-menu-link"));
}},
out: function (){
if($(this).hasClass("mega-toggle-on")&&! $(this).hasClass("mega-disable-collapse")&&! $(this).parent().parent().hasClass("mega-menu-tabbed")){
plugin.hidePanel($(this).children("a.mega-menu-link"), false);
}},
timeout: plugin.settings.hover_intent_timeout,
interval: plugin.settings.hover_intent_interval
});
};
plugin.bindKeyboardEvents=function(){
var tab_key=9;
var escape_key=27;
var enter_key=13;
var left_arrow_key=37;
var up_arrow_key=38;
var right_arrow_key=39;
var down_arrow_key=40;
var space_key=32;
var isMobileOffCanvasHorizontal=function(){
return plugin.isMobileView()&&(plugin.settings.effect_mobile==='slide_right'||plugin.settings.effect_mobile==='')&&plugin.settings.mobile_direction==='horizontal';
}
var shouldTrapFocusInCurrentSubMenu=function(){
return isMobileOffCanvasHorizontal()&&(keyCode===up_arrow_key||keyCode===down_arrow_key||keyCode===tab_key);
}
$wrap.on("keyup.megamenu", ".max-mega-menu, .mega-menu-toggle", function(e){
var keyCode=e.keyCode||e.which;
var active_link=$(e.target);
if(keyCode===tab_key){
$wrap.addClass("mega-keyboard-navigation");
plugin.bindClickEvents();
}});
$wrap.on("keydown.megamenu", "a.mega-menu-link, .mega-indicator, .mega-menu-toggle-block, .mega-menu-toggle-animated-block button", function(e){
if(! $wrap.hasClass("mega-keyboard-navigation")){
return;
}
var keyCode=e.keyCode||e.which;
var active_link=$(e.target);
if(keyCode===space_key&&active_link.is(".mega-menu-link")){
e.preventDefault();
if(active_link.parent().is(items_with_submenus)){
if(active_link.parent().hasClass("mega-toggle-on")&&! active_link.closest("ul.mega-sub-menu").parent().hasClass("mega-menu-tabbed")){
plugin.hidePanel(active_link);
}else{
plugin.showPanel(active_link);
}}
}
if(keyCode===space_key&&active_link.is("mega-indicator")){
e.preventDefault();
if(active_link.parent().parent().hasClass("mega-toggle-on")&&! active_link.closest("ul.mega-sub-menu").parent().hasClass("mega-menu-tabbed")){
plugin.hidePanel(active_link.parent());
}else{
plugin.showPanel(active_link.parent());
}}
if(keyCode===escape_key){
var submenu_open=$(".mega-toggle-on", $menu).length!==0;
if(submenu_open){
var focused_menu_item=$menu.find(":focus");
if(focused_menu_item.closest('.mega-menu-flyout.mega-toggle-on').length!==0){
var nearest_parent_of_focused_item_li=focused_menu_item.closest('.mega-toggle-on');
var nearest_parent_of_focused_item_a=$("> a.mega-menu-link", nearest_parent_of_focused_item_li);
plugin.hidePanel(nearest_parent_of_focused_item_a);
nearest_parent_of_focused_item_a.focus();
}
if(focused_menu_item.closest('.mega-menu-megamenu.mega-toggle-on').length!==0){
var nearest_parent_of_focused_item_li=focused_menu_item.closest('.mega-menu-megamenu.mega-toggle-on');
var nearest_parent_of_focused_item_a=$("> a.mega-menu-link", nearest_parent_of_focused_item_li);
plugin.hidePanel(nearest_parent_of_focused_item_a);
nearest_parent_of_focused_item_a.focus();
}}
if(plugin.isMobileView()&&! submenu_open){
plugin.hideMobileMenu();
$(".mega-menu-toggle-block, button.mega-toggle-animated", $toggle_bar).first().focus();
}}
if(keyCode===space_key||keyCode===enter_key){
if(active_link.is(".mega-menu-toggle-block, .mega-menu-toggle-animated-block button")){
e.preventDefault();
if($toggle_bar.hasClass("mega-menu-open")){
plugin.hideMobileMenu();
}else{
plugin.showMobileMenu();
}}
}
if(keyCode===enter_key){
if(active_link.is(".mega-indicator")){
if(active_link.closest("li.mega-menu-item").hasClass("mega-toggle-on")&&! active_link.closest("ul.mega-sub-menu").parent().hasClass("mega-menu-tabbed")){
plugin.hidePanel(active_link.parent());
}else{
plugin.showPanel(active_link.parent());
}
return;
}
if(active_link.parent().is(items_with_submenus)){
if(plugin.isMobileView()&&active_link.parent().is(".mega-hide-sub-menu-on-mobile")){
return;
}
if(active_link.is("[href]")===false){
if(active_link.parent().hasClass("mega-toggle-on")&&! active_link.closest("ul.mega-sub-menu").parent().hasClass("mega-menu-tabbed")){
plugin.hidePanel(active_link);
}else{
plugin.showPanel(active_link);
}
return;
}
if(active_link.parent().hasClass("mega-toggle-on")&&! active_link.closest("ul.mega-sub-menu").parent().hasClass("mega-menu-tabbed")){
return;
}else{
e.preventDefault();
plugin.showPanel(active_link);
}}
}
if(shouldTrapFocusInCurrentSubMenu()){
var focused_item=$(":focus", $menu);
if(focused_item.length===0){
e.preventDefault();
$("> li.mega-menu-item:visible", $menu).find("> a.mega-menu-link, .mega-search span[role=button]").first().focus();
return;
}
var next_item_to_focus=focused_item.parent().nextAll("li.mega-menu-item:visible").find("> a.mega-menu-link, .mega-search span[role=button]").first();
if(next_item_to_focus.length===0&&focused_item.closest(".mega-menu-megamenu").length!==0){
var all_li_parents=focused_item.parentsUntil(".mega-menu-megamenu");
if(focused_item.is(all_li_parents.find("a.mega-menu-link").last())){
next_item_to_focus=all_li_parents.find(".mega-back-button:visible > a.mega-menu-link").first();
}}
if(next_item_to_focus.length===0){
next_item_to_focus=focused_item.parent().prevAll("li.mega-menu-item:visible").find("> a.mega-menu-link, .mega-search span[role=button]").first();
}
if(next_item_to_focus.length!==0){
e.preventDefault();
next_item_to_focus.focus();
}}
var shouldGoToNextTopLevelItem=function(){
return(( keyCode===right_arrow_key&&plugin.isDesktopView())||(keyCode===down_arrow_key&&plugin.isMobileView()) )&&$menu.hasClass("mega-menu-horizontal");
}
var shouldGoToPreviousTopLevelItem=function(){
return(( keyCode===left_arrow_key&&plugin.isDesktopView())||(keyCode===up_arrow_key&&plugin.isMobileView()) )&&$menu.hasClass("mega-menu-horizontal");
}
if(shouldGoToNextTopLevelItem()){
e.preventDefault();
var next_top_level_item=$("> .mega-toggle-on", $menu).nextAll("li.mega-menu-item:visible").find("> a.mega-menu-link, .mega-search span[role=button]").first();
if(next_top_level_item.length===0){
next_top_level_item=$(":focus", $menu).parent().nextAll("li.mega-menu-item:visible").find("> a.mega-menu-link, .mega-search span[role=button]").first();
}
if(next_top_level_item.length===0){
next_top_level_item=$(":focus", $menu).parent().parent().parent().nextAll("li.mega-menu-item:visible").find("> a.mega-menu-link, .mega-search span[role=button]").first();
}
plugin.hideAllPanels();
next_top_level_item.focus();
}
if(shouldGoToPreviousTopLevelItem()){
e.preventDefault();
var prev_top_level_item=$("> .mega-toggle-on", $menu).prevAll("li.mega-menu-item:visible").find("> a.mega-menu-link, .mega-search span[role=button]").last();
if(prev_top_level_item.length===0){
prev_top_level_item=$(":focus", $menu).parent().prevAll("li.mega-menu-item:visible").find("> a.mega-menu-link, .mega-search span[role=button]").last();
}
if(prev_top_level_item.length===0){
prev_top_level_item=$(":focus", $menu).parent().parent().parent().prevAll("li.mega-menu-item:visible").find("> a.mega-menu-link, .mega-search span[role=button]").last();
}
plugin.hideAllPanels();
prev_top_level_item.focus();
}});
$wrap.on("focusout.megamenu", function(e){
if($wrap.hasClass("mega-keyboard-navigation")){
setTimeout(function(){
var menu_has_focus=$wrap.find(":focus").length > 0;
if(! menu_has_focus){
$wrap.removeClass("mega-keyboard-navigation");
plugin.hideAllPanels();
plugin.hideMobileMenu();
}}, 10);
}});
};
plugin.unbindAllEvents=function(){
$("ul.mega-sub-menu, li.mega-menu-item, li.mega-menu-row, li.mega-menu-column, a.mega-menu-link, .mega-indicator", $menu).off().unbind();
};
plugin.unbindClickEvents=function(){
if($wrap.hasClass('mega-keyboard-navigation')){
return;
}
$("> a.mega-menu-link", items_with_submenus).not(collapse_children_parents).off("click.megamenu touchend.megamenu");
$wrap.data('has-click-events', false);
};
plugin.unbindHoverEvents=function(){
items_with_submenus.off("mouseenter.megamenu mouseleave.megamenu");
};
plugin.unbindHoverIntentEvents=function(){
items_with_submenus.off("mouseenter mouseleave").removeProp("hoverIntent_t").removeProp("hoverIntent_s");
};
plugin.unbindKeyboardEvents=function(){
$wrap.off("keyup.megamenu keydown.megamenu focusout.megamenu");
};
plugin.unbindMegaMenuEvents=function(){
if(plugin.settings.event==="hover_intent"){
plugin.unbindHoverIntentEvents();
}
if(plugin.settings.event==="hover"){
plugin.unbindHoverEvents();
}
plugin.unbindClickEvents();
plugin.unbindKeyboardEvents();
};
plugin.bindMegaMenuEvents=function(){
plugin.unbindMegaMenuEvents();
if(plugin.isDesktopView()&&plugin.settings.event==="hover_intent"){
plugin.bindHoverIntentEvents();
}
if(plugin.isDesktopView()&&plugin.settings.event==="hover"){
plugin.bindHoverEvents();
}
plugin.bindClickEvents();
plugin.bindKeyboardEvents();
};
plugin.checkWidth=function(){
if(plugin.isMobileView()&&$menu.data("view")==="desktop"){
plugin.switchToMobile();
}
if(plugin.isDesktopView()&&$menu.data("view")==="mobile"){
plugin.switchToDesktop();
}
plugin.calculateDynamicSubmenuWidths($("> li.mega-menu-megamenu > a.mega-menu-link", $menu));
};
plugin.reverseRightAlignedItems=function(){
if(! $("body").hasClass("rtl")&&$menu.hasClass("mega-menu-horizontal")&&$menu.css("display")!=='flex'){
$menu.append($menu.children("li.mega-item-align-right").get().reverse());
}};
plugin.addClearClassesToMobileItems=function(){
$(".mega-menu-row", $menu).each(function(){
$("> .mega-sub-menu > .mega-menu-column:not(.mega-hide-on-mobile)", $(this)).filter(":even").addClass("mega-menu-clear");
});
};
plugin.initDesktop=function(){
$menu.data("view", "desktop");
plugin.bindMegaMenuEvents();
plugin.initIndicators();
};
plugin.initMobile=function(){
plugin.switchToMobile();
};
plugin.switchToDesktop=function(){
$menu.data("view", "desktop");
plugin.bindMegaMenuEvents();
plugin.reverseRightAlignedItems();
plugin.hideAllPanels();
plugin.hideMobileMenu(true);
};
plugin.switchToMobile=function(){
$menu.data("view", "mobile");
plugin.bindMegaMenuEvents();
plugin.initIndicators();
plugin.reverseRightAlignedItems();
plugin.addClearClassesToMobileItems();
plugin.hideAllPanels();
plugin.expandMobileSubMenus();
};
plugin.initToggleBar=function(){
$toggle_bar.on("click", function(e){
if($(e.target).is(".mega-menu-toggle, .mega-menu-toggle-custom-block *, .mega-menu-toggle-block, .mega-menu-toggle-animated-block, .mega-menu-toggle-animated-block *, .mega-toggle-blocks-left, .mega-toggle-blocks-center, .mega-toggle-blocks-right, .mega-toggle-label, .mega-toggle-label span")){
e.preventDefault();
if($(this).hasClass("mega-menu-open")){
plugin.hideMobileMenu();
}else{
plugin.showMobileMenu();
}}
});
};
plugin.initIndicators=function(){
$menu.off('click.megamenu', '.mega-indicator');
$menu.on('click.megamenu', '.mega-indicator', function(e){
e.preventDefault();
e.stopPropagation();
if($(this).closest(".mega-menu-item").hasClass("mega-toggle-on")){
if(! $(this).closest("ul.mega-sub-menu").parent().hasClass("mega-menu-tabbed")||plugin.isMobileView()){
plugin.hidePanel($(this).parent(), false);
}}else{
plugin.showPanel($(this).parent(), false);
}});
};
plugin.hideMobileMenu=function(force){
force=force||false;
if(! $toggle_bar.is(":visible")&&! force){
return;
}
html_body_class_timeout=setTimeout(function(){
$("body").removeClass($menu.attr("id") + "-mobile-open");
$("html").removeClass($menu.attr("id") + "-off-canvas-open");
}, plugin.settings.effect_speed_mobile);
$(".mega-toggle-label, .mega-toggle-animated", $toggle_bar).attr("aria-expanded", "false");
if(plugin.settings.effect_mobile==="slide"&&! force){
$menu.animate({"height":"hide"}, plugin.settings.effect_speed_mobile, function(){
$menu.css({
width: "",
left: "",
display: ""
});
$toggle_bar.removeClass("mega-menu-open");
});
}else{
$menu.css({
width: "",
left: "",
display: ""
});
$toggle_bar.removeClass("mega-menu-open");
}
$menu.triggerHandler("mmm:hideMobileMenu");
};
plugin.showMobileMenu=function(){
if(! $toggle_bar.is(":visible")){
return;
}
clearTimeout(html_body_class_timeout);
$("body").addClass($menu.attr("id") + "-mobile-open");
plugin.expandMobileSubMenus();
if(plugin.settings.effect_mobile==="slide_left"||plugin.settings.effect_mobile==="slide_right"){
$("html").addClass($menu.attr("id") + "-off-canvas-open");
}
$(".mega-toggle-label, .mega-toggle-animated", $toggle_bar).attr("aria-expanded", "true");
if(plugin.settings.effect_mobile==="slide"){
$menu.animate({"height":"show"}, plugin.settings.effect_speed_mobile, function(){
$(this).css("display", "");
});
}
$toggle_bar.addClass("mega-menu-open");
plugin.toggleBarForceWidth();
$menu.triggerHandler("mmm:showMobileMenu");
};
plugin.toggleBarForceWidth=function(){
if($(plugin.settings.mobile_force_width).length&&(plugin.settings.effect_mobile==="slide"||plugin.settings.effect_mobile==="disabled") ){
var submenu_offset=$toggle_bar.offset();
var target_offset=$(plugin.settings.mobile_force_width).offset();
$menu.css({
width: $(plugin.settings.mobile_force_width).outerWidth(),
left: (target_offset.left - submenu_offset.left) + "px"
});
}};
plugin.doConsoleChecks=function(){
if(plugin.settings.mobile_force_width!="false"&&! $(plugin.settings.mobile_force_width).length&&(plugin.settings.effect_mobile==="slide"||plugin.settings.effect_mobile==="disabled") ){
console.warn('Max Mega Menu #' + $wrap.attr('id') + ': Mobile Force Width element (' + plugin.settings.mobile_force_width + ') not found');
}
const cssWidthRegex=/^((\d+(\.\d+)?(px|%|em|rem|vw|vh|ch|ex|cm|mm|in|pt|pc))|auto)$/i;
if(plugin.settings.panel_width!==undefined&&! cssWidthRegex.test(plugin.settings.panel_width)&&! $(plugin.settings.panel_width).length){
console.warn('Max Mega Menu #' + $wrap.attr('id') + ': Panel Width (Outer) element (' + plugin.settings.panel_width + ') not found');
}
if(plugin.settings.panel_inner_width!==undefined&&! cssWidthRegex.test(plugin.settings.panel_inner_width)&&! $(plugin.settings.panel_inner_width).length){
console.warn('Max Mega Menu #' + $wrap.attr('id') + ': Panel Width (Inner) element (' + plugin.settings.panel_inner_width + ') not found');
}}
plugin.init=function(){
$menu.triggerHandler("before_mega_menu_init");
plugin.settings=$.extend({}, defaults, options);
if(window.console){
plugin.doConsoleChecks();
}
$menu.removeClass("mega-no-js");
plugin.initToggleBar();
if(plugin.settings.unbind_events==="true"){
plugin.unbindAllEvents();
}
$(window).on("load", function(){
plugin.calculateDynamicSubmenuWidths($("> li.mega-menu-megamenu > a.mega-menu-link", $menu));
});
if(plugin.isDesktopView()){
plugin.initDesktop();
}else{
plugin.initMobile();
}
$(window).on("resize", function(){
plugin.checkWidth();
});
$menu.triggerHandler("after_mega_menu_init");
};
plugin.init();
};
$.fn.maxmegamenu=function(options){
return this.each(function(){
if(undefined===$(this).data("maxmegamenu")){
var plugin=new $.maxmegamenu(this, options);
$(this).data("maxmegamenu", plugin);
}});
};
$(function(){
$(".max-mega-menu").maxmegamenu();
});
}(jQuery));
let WPFormsUserJourney=window.WPFormsUserJourney||((n,s)=>{let u={init(){u.checkCleanupCookie();let e=u.getUserJourneyData();var r=Math.round(Date.now()/1e3);0!==Object.keys(e).length||""===n.referrer||n.referrer.startsWith(s.location.origin)||(e[r-2]=n.referrer+"|#|{ReferrerPageTitle}");let t=s.location.href+"|#|"+n.title;"undefined"!=typeof wpforms_user_journey&&wpforms_user_journey.page_id&&(t+="|#|"+Number(wpforms_user_journey.page_id));var o=encodeURIComponent(u.addSlashes(t)),a=u.getLatestTimeStamp(e);e[a]===o&&delete e[a],e[r]=o,e=u.getLastData(e),u.setUserJourneyInputs(e),u.setUserJourneyData(e)},getObjectKeysAsNumbers(e){return Object.keys(e).map(e=>Number.parseInt(e,10))},getLatestTimeStamp(e){e=u.getObjectKeysAsNumbers(e);return Math.max(...e).toString()},checkCleanupCookie(){u.createCookie("_wpfuj","",0),"1"===u.getCookie(wpforms_user_journey.cleanup_cookie_name)&&(localStorage.removeItem(wpforms_user_journey.storage_name),u.createCookie(wpforms_user_journey.cleanup_cookie_name,"",0))},setUserJourneyInputs(t){let o=wpforms_user_journey.storage_name;n.querySelectorAll("form.wpforms-form").forEach(e=>{let r=e.querySelector(`input[name="${o}"]`);r||((r=n.createElement("input")).type="hidden",r.name=o,e.appendChild(r)),r.value=JSON.stringify(t)})},setUserJourneyData(e){u.setLocalStorage(JSON.stringify(e))},setLocalStorage(e){try{localStorage.setItem(wpforms_user_journey.storage_name,e)}catch(e){u.debug("Error setting local storage:",e)}},getLastData(e){var r=Object.entries(e).sort(([e],[r])=>Number(e)-Number(r)),t=[];let o=2;var a=Math.floor(Date.now()/1e3)-31536e3;for(let e=r.length-1;0<=e;--e){var[s,n]=r[e];if(Number(s)<a)break;if(t.length>=wpforms_user_journey.max_data_items)break;var u=String(s).length+String(n).length+6;if(o+u>wpforms_user_journey.max_data_size)break;o+=u,t.push([s,n])}return Object.fromEntries(t)},getUserJourneyData(){let e={};try{var r=JSON.parse(u.getLocalStorage());r&&"object"==typeof r&&!Array.isArray(r)&&(e=r)}catch(e){u.debug("Error parsing JSON:",e)}return e},getLocalStorage(){let e=null;try{e=localStorage.getItem(wpforms_user_journey.storage_name)}catch(e){u.debug("Error getting local storage:",e)}return e},createCookie(e,r,t){let o="",a="";var s;wpforms_user_journey.is_ssl&&(a=";secure"),o=t?-1===t?"":((s=new Date).setTime(s.getTime()+24*t*60*60*1e3),";expires="+s.toGMTString()):";expires=Thu, 01 Jan 1970 00:00:01 GMT",n.cookie=e+"="+r+o+";path=/;samesite=strict"+a},getCookie(e){var r,t=e+"=";for(r of n.cookie.split(";")){let e=r;for(;" "===e.charAt(0);)e=e.substring(1,e.length);if(0===e.indexOf(t))return e.substring(t.length,e.length)}return null},addSlashes(e){return(e+"").replace(/[\\"]/g,"\\$&")},debug(...e){wpforms_user_journey.is_debug&&console.log("User Journey:",...e)}};return u})(document,window);WPFormsUserJourney.init();