(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.isMobileOffCanvas()){
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.isMobileOffCanvas=function(){
return plugin.settings.effect_mobile==='slide_left'||plugin.settings.effect_mobile==='slide_right';
}
plugin.bindKeyboardEvents=function(){
const tab_key=9;
const escape_key=27;
const enter_key=13;
const left_arrow_key=37;
const up_arrow_key=38;
const right_arrow_key=39;
const down_arrow_key=40;
const space_key=32;
const $firstFocusable=$menu.find("a.mega-menu-link").first();
const $lastFocusable=$wrap.find("button.mega-close").first();
var isMobileOffCanvasHorizontal=function(){
return plugin.isMobileOffCanvas()&&plugin.settings.mobile_direction==='horizontal';
}
var shouldTrapFocusInCurrentSubMenu=function(){
return isMobileOffCanvasHorizontal()&&(keyCode===up_arrow_key||keyCode===down_arrow_key||keyCode===tab_key);
}
$lastFocusable.on('keydown.megamenu', function(e){
var keyCode=e.keyCode||e.which;
if(plugin.isMobileView()&&plugin.isMobileOffCanvas()&&keyCode===tab_key&&! e.shiftKey){
e.preventDefault();
$firstFocusable.trigger('focus');
}});
$firstFocusable.on('keydown.megamenu', function(e){
var keyCode=e.keyCode||e.which;
if(plugin.isMobileView()&&plugin.isMobileOffCanvas()&&keyCode===tab_key&&e.shiftKey){
e.preventDefault();
$lastFocusable.trigger('focus');
}});
$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();
if(plugin.isDesktopView()&&keyCode===tab_key&&active_link.is(".mega-menu-link")&&active_link.parent().parent().hasClass('max-mega-menu')){
plugin.hideAllPanels();
}}
});
$wrap.on("keydown.megamenu", "a.mega-menu-link, .mega-indicator, .mega-menu-toggle-block, .mega-menu-toggle-animated-block button, button.mega-close", 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.trigger('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.trigger('focus');
}}
if(plugin.isMobileView()&&! submenu_open){
plugin.hideMobileMenu();
}}
if(keyCode===space_key||keyCode===enter_key){
if(active_link.is(".mega-menu-toggle-block button, .mega-menu-toggle-animated-block button")){
e.preventDefault();
if($toggle_bar.hasClass("mega-menu-open")){
plugin.hideMobileMenu();
}else{
plugin.showMobileMenu();
html_body_class_timeout=setTimeout(function(){
$menu.find("a.mega-menu-link").first().trigger('focus');
}, plugin.settings.effect_speed_mobile);
}}
}
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().trigger('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.trigger('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.trigger('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.trigger('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);
$menu.removeAttr('role');
$menu.removeAttr('aria-modal');
$menu.removeAttr('aria-hidden');
};
plugin.switchToMobile=function(){
$menu.data("view", "mobile");
if(plugin.isMobileOffCanvas()&&$toggle_bar.is(":visible")){
$menu.attr('role', 'dialog');
$menu.attr('aria-modal', 'true');
$menu.attr('aria-hidden', 'true');
}
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;
}
$menu.attr("aria-hidden", "true");
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);
if($wrap.hasClass("mega-keyboard-navigation")){
$(".mega-menu-toggle-block button, button.mega-toggle-animated", $toggle_bar).first().trigger('focus');
}
$(".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.isMobileOffCanvas()){
$("html").addClass($menu.attr("id") + "-off-canvas-open");
}
if(plugin.settings.effect_mobile==="slide"){
$menu.animate({"height":"show"}, plugin.settings.effect_speed_mobile, function(){
$(this).css("display", "");
});
}
$(".mega-toggle-label, .mega-toggle-animated", $toggle_bar).attr("aria-expanded", "true");
$toggle_bar.addClass("mega-menu-open");
plugin.toggleBarForceWidth();
$menu.attr("aria-hidden", "false");
$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();
!function(a){"function"==typeof define&&define.amd?define(["jquery"],a):"object"==typeof module&&module.exports?module.exports=a(require("jquery")):a(jQuery)}(function(a){a.extend(a.fn,{validate:function(b){if(!this.length)return void(b&&b.debug&&window.console&&console.warn("Nothing selected, can't validate, returning nothing."));var c=a.data(this[0],"validator");return c?c:(this.attr("novalidate","novalidate"),c=new a.validator(b,this[0]),a.data(this[0],"validator",c),c.settings.onsubmit&&(this.on("click.validate",":submit",function(b){c.submitButton=b.currentTarget,a(this).hasClass("cancel")&&(c.cancelSubmit=!0),void 0!==a(this).attr("formnovalidate")&&(c.cancelSubmit=!0)}),this.on("submit.validate",function(b){function d(){var d,e;return c.submitButton&&(c.settings.submitHandler||c.formSubmitted)&&(d=a("<input type='hidden'/>").attr("name",c.submitButton.name).val(a(c.submitButton).val()).appendTo(c.currentForm)),!(c.settings.submitHandler&&!c.settings.debug)||(e=c.settings.submitHandler.call(c,c.currentForm,b),d&&d.remove(),void 0!==e&&e)}return c.settings.debug&&b.preventDefault(),c.cancelSubmit?(c.cancelSubmit=!1,d()):c.form()?c.pendingRequest?(c.formSubmitted=!0,!1):d():(c.focusInvalid(),!1)})),c)},valid:function(){var b,c,d;return a(this[0]).is("form")?b=this.validate().form():(d=[],b=!0,c=a(this[0].form).validate(),this.each(function(){b=c.element(this)&&b,b||(d=d.concat(c.errorList))}),c.errorList=d),b},rules:function(b,c){var d,e,f,g,h,i,j=this[0],k="undefined"!=typeof this.attr("contenteditable")&&"false"!==this.attr("contenteditable");if(null!=j&&(!j.form&&k&&(j.form=this.closest("form")[0],j.name=this.attr("name")),null!=j.form)){if(b)switch(d=a.data(j.form,"validator").settings,e=d.rules,f=a.validator.staticRules(j),b){case"add":a.extend(f,a.validator.normalizeRule(c)),delete f.messages,e[j.name]=f,c.messages&&(d.messages[j.name]=a.extend(d.messages[j.name],c.messages));break;case"remove":return c?(i={},a.each(c.split(/\s/),function(a,b){i[b]=f[b],delete f[b]}),i):(delete e[j.name],f)}return g=a.validator.normalizeRules(a.extend({},a.validator.classRules(j),a.validator.attributeRules(j),a.validator.dataRules(j),a.validator.staticRules(j)),j),g.required&&(h=g.required,delete g.required,g=a.extend({required:h},g)),g.remote&&(h=g.remote,delete g.remote,g=a.extend(g,{remote:h})),g}}});var b=function(a){return a.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"")};a.extend(a.expr.pseudos||a.expr[":"],{blank:function(c){return!b(""+a(c).val())},filled:function(c){var d=a(c).val();return null!==d&&!!b(""+d)},unchecked:function(b){return!a(b).prop("checked")}}),a.validator=function(b,c){this.settings=a.extend(!0,{},a.validator.defaults,b),this.currentForm=c,this.init()},a.validator.format=function(b,c){return 1===arguments.length?function(){var c=a.makeArray(arguments);return c.unshift(b),a.validator.format.apply(this,c)}:void 0===c?b:(arguments.length>2&&c.constructor!==Array&&(c=a.makeArray(arguments).slice(1)),c.constructor!==Array&&(c=[c]),a.each(c,function(a,c){b=b.replace(new RegExp("\\{"+a+"\\}","g"),function(){return c})}),b)},a.extend(a.validator,{defaults:{messages:{},groups:{},rules:{},errorClass:"error",pendingClass:"pending",validClass:"valid",errorElement:"label",focusCleanup:!1,focusInvalid:!0,errorContainer:a([]),errorLabelContainer:a([]),onsubmit:!0,ignore:":hidden",ignoreTitle:!1,customElements:[],onfocusin:function(a){this.lastActive=a,this.settings.focusCleanup&&(this.settings.unhighlight&&this.settings.unhighlight.call(this,a,this.settings.errorClass,this.settings.validClass),this.hideThese(this.errorsFor(a)))},onfocusout:function(a){this.checkable(a)||!(a.name in this.submitted)&&this.optional(a)||this.element(a)},onkeyup:function(b,c){var d=[16,17,18,20,35,36,37,38,39,40,45,144,225];9===c.which&&""===this.elementValue(b)||a.inArray(c.keyCode,d)!==-1||(b.name in this.submitted||b.name in this.invalid)&&this.element(b)},onclick:function(a){a.name in this.submitted?this.element(a):a.parentNode.name in this.submitted&&this.element(a.parentNode)},highlight:function(b,c,d){"radio"===b.type?this.findByName(b.name).addClass(c).removeClass(d):a(b).addClass(c).removeClass(d)},unhighlight:function(b,c,d){"radio"===b.type?this.findByName(b.name).removeClass(c).addClass(d):a(b).removeClass(c).addClass(d)}},setDefaults:function(b){a.extend(a.validator.defaults,b)},messages:{required:"This field is required.",remote:"Please fix this field.",email:"Please enter a valid email address.",url:"Please enter a valid URL.",date:"Please enter a valid date.",dateISO:"Please enter a valid date (ISO).",number:"Please enter a valid number.",digits:"Please enter only digits.",equalTo:"Please enter the same value again.",maxlength:a.validator.format("Please enter no more than {0} characters."),minlength:a.validator.format("Please enter at least {0} characters."),rangelength:a.validator.format("Please enter a value between {0} and {1} characters long."),range:a.validator.format("Please enter a value between {0} and {1}."),max:a.validator.format("Please enter a value less than or equal to {0}."),min:a.validator.format("Please enter a value greater than or equal to {0}."),step:a.validator.format("Please enter a multiple of {0}.")},autoCreateRanges:!1,prototype:{init:function(){function b(b){var c="undefined"!=typeof a(this).attr("contenteditable")&&"false"!==a(this).attr("contenteditable");if(!this.form&&c&&(this.form=a(this).closest("form")[0],this.name=a(this).attr("name")),d===this.form){var e=a.data(this.form,"validator"),f="on"+b.type.replace(/^validate/,""),g=e.settings;g[f]&&!a(this).is(g.ignore)&&g[f].call(e,this,b)}}this.labelContainer=a(this.settings.errorLabelContainer),this.errorContext=this.labelContainer.length&&this.labelContainer||a(this.currentForm),this.containers=a(this.settings.errorContainer).add(this.settings.errorLabelContainer),this.submitted={},this.valueCache={},this.pendingRequest=0,this.pending={},this.invalid={},this.reset();var c,d=this.currentForm,e=this.groups={};a.each(this.settings.groups,function(b,c){"string"==typeof c&&(c=c.split(/\s/)),a.each(c,function(a,c){e[c]=b})}),c=this.settings.rules,a.each(c,function(b,d){c[b]=a.validator.normalizeRule(d)});var f=[":text","[type='password']","[type='file']","select","textarea","[type='number']","[type='search']","[type='tel']","[type='url']","[type='email']","[type='datetime']","[type='date']","[type='month']","[type='week']","[type='time']","[type='datetime-local']","[type='range']","[type='color']","[type='radio']","[type='checkbox']","[contenteditable]","[type='button']"],g=["select","option","[type='radio']","[type='checkbox']"];a(this.currentForm).on("focusin.validate focusout.validate keyup.validate",f.concat(this.settings.customElements).join(", "),b).on("click.validate",g.concat(this.settings.customElements).join(", "),b),this.settings.invalidHandler&&a(this.currentForm).on("invalid-form.validate",this.settings.invalidHandler)},form:function(){return this.checkForm(),a.extend(this.submitted,this.errorMap),this.invalid=a.extend({},this.errorMap),this.valid()||a(this.currentForm).triggerHandler("invalid-form",[this]),this.showErrors(),this.valid()},checkForm:function(){this.prepareForm();for(var a=0,b=this.currentElements=this.elements();b[a];a++)this.check(b[a]);return this.valid()},element:function(b){var c,d,e=this.clean(b),f=this.validationTargetFor(e),g=this,h=!0;return void 0===f?delete this.invalid[e.name]:(this.prepareElement(f),this.currentElements=a(f),d=this.groups[f.name],d&&a.each(this.groups,function(a,b){b===d&&a!==f.name&&(e=g.validationTargetFor(g.clean(g.findByName(a))),e&&e.name in g.invalid&&(g.currentElements.push(e),h=g.check(e)&&h))}),c=this.check(f)!==!1,h=h&&c,c?this.invalid[f.name]=!1:this.invalid[f.name]=!0,this.numberOfInvalids()||(this.toHide=this.toHide.add(this.containers)),this.showErrors(),a(b).attr("aria-invalid",!c)),h},showErrors:function(b){if(b){var c=this;a.extend(this.errorMap,b),this.errorList=a.map(this.errorMap,function(a,b){return{message:a,element:c.findByName(b)[0]}}),this.successList=a.grep(this.successList,function(a){return!(a.name in b)})}this.settings.showErrors?this.settings.showErrors.call(this,this.errorMap,this.errorList):this.defaultShowErrors()},resetForm:function(){a.fn.resetForm&&a(this.currentForm).resetForm(),this.invalid={},this.submitted={},this.prepareForm(),this.hideErrors();var b=this.elements().removeData("previousValue").removeAttr("aria-invalid");this.resetElements(b)},resetElements:function(a){var b;if(this.settings.unhighlight)for(b=0;a[b];b++)this.settings.unhighlight.call(this,a[b],this.settings.errorClass,""),this.findByName(a[b].name).removeClass(this.settings.validClass);else a.removeClass(this.settings.errorClass).removeClass(this.settings.validClass)},numberOfInvalids:function(){return this.objectLength(this.invalid)},objectLength:function(a){var b,c=0;for(b in a)void 0!==a[b]&&null!==a[b]&&a[b]!==!1&&c++;return c},hideErrors:function(){this.hideThese(this.toHide)},hideThese:function(a){a.not(this.containers).text(""),this.addWrapper(a).hide()},valid:function(){return 0===this.size()},size:function(){return this.errorList.length},focusInvalid:function(){if(this.settings.focusInvalid)try{a(this.findLastActive()||this.errorList.length&&this.errorList[0].element||[]).filter(":visible").trigger("focus").trigger("focusin")}catch(b){}},findLastActive:function(){var b=this.lastActive;return b&&1===a.grep(this.errorList,function(a){return a.element.name===b.name}).length&&b},elements:function(){var b=this,c={},d=["input","select","textarea","[contenteditable]"];return a(this.currentForm).find(d.concat(this.settings.customElements).join(", ")).not(":submit, :reset, :image, :disabled").not(this.settings.ignore).filter(function(){var d=this.name||a(this).attr("name"),e="undefined"!=typeof a(this).attr("contenteditable")&&"false"!==a(this).attr("contenteditable");return!d&&b.settings.debug&&window.console&&console.error("%o has no name assigned",this),e&&(this.form=a(this).closest("form")[0],this.name=d),this.form===b.currentForm&&(!(d in c||!b.objectLength(a(this).rules()))&&(c[d]=!0,!0))})},clean:function(b){return a(b)[0]},errors:function(){var b=this.settings.errorClass.split(" ").join(".");return a(this.settings.errorElement+"."+b,this.errorContext)},resetInternals:function(){this.successList=[],this.errorList=[],this.errorMap={},this.toShow=a([]),this.toHide=a([])},reset:function(){this.resetInternals(),this.currentElements=a([])},prepareForm:function(){this.reset(),this.toHide=this.errors().add(this.containers)},prepareElement:function(a){this.reset(),this.toHide=this.errorsFor(a)},elementValue:function(b){var c,d,e=a(b),f=b.type,g="undefined"!=typeof e.attr("contenteditable")&&"false"!==e.attr("contenteditable");return"radio"===f||"checkbox"===f?this.findByName(b.name).filter(":checked").val():"number"===f&&"undefined"!=typeof b.validity?b.validity.badInput?"NaN":e.val():(c=g?e.text():e.val(),"file"===f?"C:\\fakepath\\"===c.substr(0,12)?c.substr(12):(d=c.lastIndexOf("/"),d>=0?c.substr(d+1):(d=c.lastIndexOf("\\"),d>=0?c.substr(d+1):c)):"string"==typeof c?c.replace(/\r/g,""):c)},check:function(b){b=this.validationTargetFor(this.clean(b));var c,d,e,f,g=a(b).rules(),h=a.map(g,function(a,b){return b}).length,i=!1,j=this.elementValue(b);this.abortRequest(b),"function"==typeof g.normalizer?f=g.normalizer:"function"==typeof this.settings.normalizer&&(f=this.settings.normalizer),f&&(j=f.call(b,j),delete g.normalizer);for(d in g){e={method:d,parameters:g[d]};try{if(c=a.validator.methods[d].call(this,j,b,e.parameters),"dependency-mismatch"===c&&1===h){i=!0;continue}if(i=!1,"pending"===c)return void(this.toHide=this.toHide.not(this.errorsFor(b)));if(!c)return this.formatAndAdd(b,e),!1}catch(k){throw this.settings.debug&&window.console&&console.log("Exception occurred when checking element "+b.id+", check the '"+e.method+"' method.",k),k instanceof TypeError&&(k.message+=".  Exception occurred when checking element "+b.id+", check the '"+e.method+"' method."),k}}if(!i)return this.objectLength(g)&&this.successList.push(b),!0},customDataMessage:function(b,c){return a(b).data("msg"+c.charAt(0).toUpperCase()+c.substring(1).toLowerCase())||a(b).data("msg")},customMessage:function(a,b){var c=this.settings.messages[a];return c&&(c.constructor===String?c:c[b])},findDefined:function(){for(var a=0;a<arguments.length;a++)if(void 0!==arguments[a])return arguments[a]},defaultMessage:function(b,c){"string"==typeof c&&(c={method:c});var d=this.findDefined(this.customMessage(b.name,c.method),this.customDataMessage(b,c.method),!this.settings.ignoreTitle&&b.title||void 0,a.validator.messages[c.method],"<strong>Warning: No message defined for "+b.name+"</strong>"),e=/\$?\{(\d+)\}/g;return"function"==typeof d?d=d.call(this,c.parameters,b):e.test(d)&&(d=a.validator.format(d.replace(e,"{$1}"),c.parameters)),d},formatAndAdd:function(a,b){var c=this.defaultMessage(a,b);this.errorList.push({message:c,element:a,method:b.method}),this.errorMap[a.name]=c,this.submitted[a.name]=c},addWrapper:function(a){return this.settings.wrapper&&(a=a.add(a.parent(this.settings.wrapper))),a},defaultShowErrors:function(){var a,b,c;for(a=0;this.errorList[a];a++)c=this.errorList[a],this.settings.highlight&&this.settings.highlight.call(this,c.element,this.settings.errorClass,this.settings.validClass),this.showLabel(c.element,c.message);if(this.errorList.length&&(this.toShow=this.toShow.add(this.containers)),this.settings.success)for(a=0;this.successList[a];a++)this.showLabel(this.successList[a]);if(this.settings.unhighlight)for(a=0,b=this.validElements();b[a];a++)this.settings.unhighlight.call(this,b[a],this.settings.errorClass,this.settings.validClass);this.toHide=this.toHide.not(this.toShow),this.hideErrors(),this.addWrapper(this.toShow).show()},validElements:function(){return this.currentElements.not(this.invalidElements())},invalidElements:function(){return a(this.errorList).map(function(){return this.element})},showLabel:function(b,c){var d,e,f,g,h=this.errorsFor(b),i=this.idOrName(b),j=a(b).attr("aria-describedby");h.length?(h.removeClass(this.settings.validClass).addClass(this.settings.errorClass),this.settings&&this.settings.escapeHtml?h.text(c||""):h.html(c||"")):(h=a("<"+this.settings.errorElement+">").attr("id",i+"-error").addClass(this.settings.errorClass),this.settings&&this.settings.escapeHtml?h.text(c||""):h.html(c||""),d=h,this.settings.wrapper&&(d=h.hide().show().wrap("<"+this.settings.wrapper+"/>").parent()),this.labelContainer.length?this.labelContainer.append(d):this.settings.errorPlacement?this.settings.errorPlacement.call(this,d,a(b)):d.insertAfter(b),h.is("label")?h.attr("for",i):0===h.parents("label[for='"+this.escapeCssMeta(i)+"']").length&&(f=h.attr("id"),j?j.match(new RegExp("\\b"+this.escapeCssMeta(f)+"\\b"))||(j+=" "+f):j=f,a(b).attr("aria-describedby",j),e=this.groups[b.name],e&&(g=this,a.each(g.groups,function(b,c){c===e&&a("[name='"+g.escapeCssMeta(b)+"']",g.currentForm).attr("aria-describedby",h.attr("id"))})))),!c&&this.settings.success&&(h.text(""),"string"==typeof this.settings.success?h.addClass(this.settings.success):this.settings.success(h,b)),this.toShow=this.toShow.add(h)},errorsFor:function(b){var c=this.escapeCssMeta(this.idOrName(b)),d=a(b).attr("aria-describedby"),e="label[for='"+c+"'], label[for='"+c+"'] *";return d&&(e=e+", #"+this.escapeCssMeta(d).replace(/\s+/g,", #")),this.errors().filter(e)},escapeCssMeta:function(a){return void 0===a?"":a.replace(/([\\!"#$%&'()*+,./:;<=>?@\[\]^`{|}~])/g,"\\$1")},idOrName:function(a){return this.groups[a.name]||(this.checkable(a)?a.name:a.id||a.name)},validationTargetFor:function(b){return this.checkable(b)&&(b=this.findByName(b.name)),a(b).not(this.settings.ignore)[0]},checkable:function(a){return/radio|checkbox/i.test(a.type)},findByName:function(b){return a(this.currentForm).find("[name='"+this.escapeCssMeta(b)+"']")},getLength:function(b,c){switch(c.nodeName.toLowerCase()){case"select":return a("option:selected",c).length;case"input":if(this.checkable(c))return this.findByName(c.name).filter(":checked").length}return b.length},depend:function(a,b){return!this.dependTypes[typeof a]||this.dependTypes[typeof a](a,b)},dependTypes:{"boolean":function(a){return a},string:function(b,c){return!!a(b,c.form).length},"function":function(a,b){return a(b)}},optional:function(b){var c=this.elementValue(b);return!a.validator.methods.required.call(this,c,b)&&"dependency-mismatch"},elementAjaxPort:function(a){return"validate"+a.name},startRequest:function(b){this.pending[b.name]||(this.pendingRequest++,a(b).addClass(this.settings.pendingClass),this.pending[b.name]=!0)},stopRequest:function(b,c){this.pendingRequest--,this.pendingRequest<0&&(this.pendingRequest=0),delete this.pending[b.name],a(b).removeClass(this.settings.pendingClass),c&&0===this.pendingRequest&&this.formSubmitted&&this.form()&&0===this.pendingRequest?(a(this.currentForm).trigger("submit"),this.submitButton&&a("input:hidden[name='"+this.submitButton.name+"']",this.currentForm).remove(),this.formSubmitted=!1):!c&&0===this.pendingRequest&&this.formSubmitted&&(a(this.currentForm).triggerHandler("invalid-form",[this]),this.formSubmitted=!1)},abortRequest:function(b){var c;this.pending[b.name]&&(c=this.elementAjaxPort(b),a.ajaxAbort(c),this.pendingRequest--,this.pendingRequest<0&&(this.pendingRequest=0),delete this.pending[b.name],a(b).removeClass(this.settings.pendingClass))},previousValue:function(b,c){return c="string"==typeof c&&c||"remote",a.data(b,"previousValue")||a.data(b,"previousValue",{old:null,valid:!0,message:this.defaultMessage(b,{method:c})})},destroy:function(){this.resetForm(),a(this.currentForm).off(".validate").removeData("validator").find(".validate-equalTo-blur").off(".validate-equalTo").removeClass("validate-equalTo-blur").find(".validate-lessThan-blur").off(".validate-lessThan").removeClass("validate-lessThan-blur").find(".validate-lessThanEqual-blur").off(".validate-lessThanEqual").removeClass("validate-lessThanEqual-blur").find(".validate-greaterThanEqual-blur").off(".validate-greaterThanEqual").removeClass("validate-greaterThanEqual-blur").find(".validate-greaterThan-blur").off(".validate-greaterThan").removeClass("validate-greaterThan-blur")}},classRuleSettings:{required:{required:!0},email:{email:!0},url:{url:!0},date:{date:!0},dateISO:{dateISO:!0},number:{number:!0},digits:{digits:!0},creditcard:{creditcard:!0}},addClassRules:function(b,c){b.constructor===String?this.classRuleSettings[b]=c:a.extend(this.classRuleSettings,b)},classRules:function(b){var c={},d=a(b).attr("class");return d&&a.each(d.split(" "),function(){this in a.validator.classRuleSettings&&a.extend(c,a.validator.classRuleSettings[this])}),c},normalizeAttributeRule:function(a,b,c,d){/min|max|step/.test(c)&&(null===b||/number|range|text/.test(b))&&(d=Number(d),isNaN(d)&&(d=void 0)),d||0===d?a[c]=d:b===c&&"range"!==b&&(a["date"===b?"dateISO":c]=!0)},attributeRules:function(b){var c,d,e={},f=a(b),g=b.getAttribute("type");for(c in a.validator.methods)"required"===c?(d=b.getAttribute(c),""===d&&(d=!0),d=!!d):d=f.attr(c),this.normalizeAttributeRule(e,g,c,d);return e.maxlength&&/-1|2147483647|524288/.test(e.maxlength)&&delete e.maxlength,e},dataRules:function(b){var c,d,e={},f=a(b),g=b.getAttribute("type");for(c in a.validator.methods)d=f.data("rule"+c.charAt(0).toUpperCase()+c.substring(1).toLowerCase()),""===d&&(d=!0),this.normalizeAttributeRule(e,g,c,d);return e},staticRules:function(b){var c={},d=a.data(b.form,"validator");return d.settings.rules&&(c=a.validator.normalizeRule(d.settings.rules[b.name])||{}),c},normalizeRules:function(b,c){return a.each(b,function(d,e){if(e===!1)return void delete b[d];if(e.param||e.depends){var f=!0;switch(typeof e.depends){case"string":f=!!a(e.depends,c.form).length;break;case"function":f=e.depends.call(c,c)}f?b[d]=void 0===e.param||e.param:(a.data(c.form,"validator").resetElements(a(c)),delete b[d])}}),a.each(b,function(a,d){b[a]="function"==typeof d&&"normalizer"!==a?d(c):d}),a.each(["minlength","maxlength"],function(){b[this]&&(b[this]=Number(b[this]))}),a.each(["rangelength","range"],function(){var a;b[this]&&(Array.isArray(b[this])?b[this]=[Number(b[this][0]),Number(b[this][1])]:"string"==typeof b[this]&&(a=b[this].replace(/[\[\]]/g,"").split(/[\s,]+/),b[this]=[Number(a[0]),Number(a[1])]))}),a.validator.autoCreateRanges&&(null!=b.min&&null!=b.max&&(b.range=[b.min,b.max],delete b.min,delete b.max),null!=b.minlength&&null!=b.maxlength&&(b.rangelength=[b.minlength,b.maxlength],delete b.minlength,delete b.maxlength)),b},normalizeRule:function(b){if("string"==typeof b){var c={};a.each(b.split(/\s/),function(){c[this]=!0}),b=c}return b},addMethod:function(b,c,d){a.validator.methods[b]=c,a.validator.messages[b]=void 0!==d?d:a.validator.messages[b],c.length<3&&a.validator.addClassRules(b,a.validator.normalizeRule(b))},methods:{required:function(b,c,d){if(!this.depend(d,c))return"dependency-mismatch";if("select"===c.nodeName.toLowerCase()){var e=a(c).val();return e&&e.length>0}return this.checkable(c)?this.getLength(b,c)>0:void 0!==b&&null!==b&&b.length>0},email:function(a,b){return this.optional(b)||/^[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])?)*$/.test(a)},url:function(a,b){return this.optional(b)||/^(?:(?:(?:https?|ftp):)?\/\/)(?:(?:[^\]\[?\/<~#`!@$^&*()+=}|:";',>{ ]|%[0-9A-Fa-f]{2})+(?::(?:[^\]\[?\/<~#`!@$^&*()+=}|:";',>{ ]|%[0-9A-Fa-f]{2})*)?@)?(?:(?!(?:10|127)(?:\.\d{1,3}){3})(?!(?:169\.254|192\.168)(?:\.\d{1,3}){2})(?!172\.(?:1[6-9]|2\d|3[0-1])(?:\.\d{1,3}){2})(?:[1-9]\d?|1\d\d|2[01]\d|22[0-3])(?:\.(?:1?\d{1,2}|2[0-4]\d|25[0-5])){2}(?:\.(?:[1-9]\d?|1\d\d|2[0-4]\d|25[0-4]))|(?:(?:[a-z0-9\u00a1-\uffff][a-z0-9\u00a1-\uffff_-]{0,62})?[a-z0-9\u00a1-\uffff]\.)+(?:[a-z\u00a1-\uffff]{2,}\.?))(?::\d{2,5})?(?:[/?#]\S*)?$/i.test(a)},date:function(){var a=!1;return function(b,c){return a||(a=!0,this.settings.debug&&window.console&&console.warn("The `date` method is deprecated and will be removed in version '2.0.0'.\nPlease don't use it, since it relies on the Date constructor, which\nbehaves very differently across browsers and locales. Use `dateISO`\ninstead or one of the locale specific methods in `localizations/`\nand `additional-methods.js`.")),this.optional(c)||!/Invalid|NaN/.test(new Date(b).toString())}}(),dateISO:function(a,b){return this.optional(b)||/^\d{4}[\/\-](0?[1-9]|1[012])[\/\-](0?[1-9]|[12][0-9]|3[01])$/.test(a)},number:function(a,b){return this.optional(b)||/^(?:-?\d+|-?\d{1,3}(?:,\d{3})+)?(?:-?\.\d+)?$/.test(a)},digits:function(a,b){return this.optional(b)||/^\d+$/.test(a)},minlength:function(a,b,c){var d=Array.isArray(a)?a.length:this.getLength(a,b);return this.optional(b)||d>=c},maxlength:function(a,b,c){var d=Array.isArray(a)?a.length:this.getLength(a,b);return this.optional(b)||d<=c},rangelength:function(a,b,c){var d=Array.isArray(a)?a.length:this.getLength(a,b);return this.optional(b)||d>=c[0]&&d<=c[1]},min:function(a,b,c){return this.optional(b)||a>=c},max:function(a,b,c){return this.optional(b)||a<=c},range:function(a,b,c){return this.optional(b)||a>=c[0]&&a<=c[1]},step:function(b,c,d){var e,f=a(c).attr("type"),g="Step attribute on input type "+f+" is not supported.",h=["text","number","range"],i=new RegExp("\\b"+f+"\\b"),j=f&&!i.test(h.join()),k=function(a){var b=(""+a).match(/(?:\.(\d+))?$/);return b&&b[1]?b[1].length:0},l=function(a){return Math.round(a*Math.pow(10,e))},m=!0;if(j)throw new Error(g);return e=k(d),(k(b)>e||l(b)%l(d)!==0)&&(m=!1),this.optional(c)||m},equalTo:function(b,c,d){var e=a(d);return this.settings.onfocusout&&e.not(".validate-equalTo-blur").length&&e.addClass("validate-equalTo-blur").on("blur.validate-equalTo",function(){a(c).valid()}),b===e.val()},remote:function(b,c,d,e){if(this.optional(c))return"dependency-mismatch";e="string"==typeof e&&e||"remote";var f,g,h,i=this.previousValue(c,e);return this.settings.messages[c.name]||(this.settings.messages[c.name]={}),i.originalMessage=i.originalMessage||this.settings.messages[c.name][e],this.settings.messages[c.name][e]=i.message,d="string"==typeof d&&{url:d}||d,h=a.param(a.extend({data:b},d.data)),null!==i.valid&&i.old===h?i.valid:(i.old=h,i.valid=null,f=this,this.startRequest(c),g={},g[c.name]=b,a.ajax(a.extend(!0,{mode:"abort",port:this.elementAjaxPort(c),dataType:"json",data:g,context:f.currentForm,success:function(a){var d,g,h,j=a===!0||"true"===a;f.settings.messages[c.name][e]=i.originalMessage,j?(h=f.formSubmitted,f.toHide=f.errorsFor(c),f.formSubmitted=h,f.successList.push(c),f.invalid[c.name]=!1,f.showErrors()):(d={},g=a||f.defaultMessage(c,{method:e,parameters:b}),d[c.name]=i.message=g,f.invalid[c.name]=!0,f.showErrors(d)),i.valid=j,f.stopRequest(c,j)}},d)),"pending")}}});var c,d={};return a.ajaxPrefilter?a.ajaxPrefilter(function(b,c,e){var f=b.port;"abort"===b.mode&&(a.ajaxAbort(f),d[f]=e)}):(c=a.ajax,a.ajax=function(b){var e=("mode"in b?b:a.ajaxSettings).mode,f=("port"in b?b:a.ajaxSettings).port;return"abort"===e?(a.ajaxAbort(f),d[f]=c.apply(this,arguments),d[f]):c.apply(this,arguments)}),a.ajaxAbort=function(a){d[a]&&(d[a].abort(),delete d[a])},a});
var WPFormsUtils=window.WPFormsUtils||(o=>{let a={triggerEvent(r,t,e=[]){t=new o.Event(t);return r.trigger(t,e),t},debounce(o,s,l){let a;return function(){let r=this,t=arguments;var e=l&&!a;clearTimeout(a),a=setTimeout(function(){a=null,l||o.apply(r,t)},s),e&&o.apply(r,t)}},cssColorsUtils:{isTransparentColor(r,t=.33){r=a.cssColorsUtils.getColorAsRGBArray(r);return Number(r?.[3])<=t},getColorAsRGBArray(r){if(!a.cssColorsUtils.isValidColor(r))return!1;r="transparent"===(r=r.replace(/^#/,"").replaceAll(" ",""))?"rgba(0,0,0,0)":r;let t;return r.match(/[0-9a-f]{6,8}$/gi)?(t=r.match(/\w\w/g).map(r=>parseInt(r,16)))[3]=t[3]||0===t[3]?(t[3]/255).toFixed(2):1:t=r.split("(")[1].split(")")[0].split(","),t},isValidColor(r){var t=(new Option).style;return t.color=r,""!==t.color},getContrastColor(r){var r=a.cssColorsUtils.getColorAsRGBArray(r),t=r.reduce((r,t)=>r+t,0);return Math.round(t/3*(r[3]??1))<150?"#ffffff":"#000000"},getColorWithOpacity(r,t){r=r.trim();var e=a.cssColorsUtils.getColorAsRGBArray(r);if(!e)return r;t=t&&0!==t.length?t.toString():"1";r=4===e.length?parseFloat(e[3]):1,t=parseFloat(t)*r;return`rgba(${e[0]},${e[1]},${e[2]},${t})`.replace(/\s+/g,"")},rgbaToHex(r){var t,e,o,s,l;return/^rgb/.test(r)?!!(s=a.cssColorsUtils.getColorAsRGBArray(r))&&(t=Number(s[0]),e=Number(s[1]),o=Number(s[2]),s=s[3]?Math.round(255*Number(s[3])):255,("#"+[(l=r=>r.toString(16).padStart(2,"0"))(t),l(e),l(o),s<255?l(s):""].join("")).toLowerCase()):r}}};return a})((document,window,jQuery));
var wpforms=window.wpforms||((s,d,p)=>{let a="wpforms-field-readonly";function e(e,t=""){return d?.wpforms_settings?.[e]??t}let m={cache:{},isUpdatingToken:!1,init(){p(m.ready),p(d).on("load",function(){"function"==typeof p.ready.then?p.ready.then(m.load):m.load()}),m.bindUIActions(),m.bindOptinMonster()},ready(){m.clearUrlQuery(),m.setUserIdentifier(),m.loadValidation(),m.loadHoneypot(),m.loadDatePicker(),m.loadTimePicker(),m.loadInputMask(),setTimeout(function(){m.loadPayments()},50),m.loadMailcheck(),m.loadChoicesJS(),m.initTokenUpdater(),m.restoreSubmitButtonOnEventPersisted(),m.bindChoicesJS(),m.readOnlyFieldsInit(),p(".wpforms-randomize").each(function(){for(var e=p(this),t=e.children().not(".wpforms-other-choice").toArray(),r=e.children(".wpforms-other-choice");t.length;)e.append(t.splice(Math.floor(Math.random()*t.length),1)[0]);r.length&&e.append(r)}),p(".wpforms-page-button").prop("disabled",!1),m.initFormsStartTime(),p(s).trigger("wpformsReady")},load(){},clearUrlQuery(){var e=d.location;let t=e.search;-1!==t.indexOf("wpforms_form_id=")&&(t=t.replace(/([&?]wpforms_form_id=[0-9]*$|wpforms_form_id=[0-9]*&|[?&]wpforms_form_id=[0-9]*(?=#))/,""),history.replaceState({},null,e.origin+e.pathname+t))},loadHoneypot(){p(".wpforms-form").each(function(){let e=p(this),t=e.data("formid"),r=[],a=[];var i,o,s,n;void 0!==wpforms_settings.hn_data[t]&&(p(`#wpforms-form-${t} .wpforms-field`).each(function(){var e=p(this);r.push(e.data("field-id")),a.push(e.find(".wpforms-field-label").text())}),i=m.getHoneypotRandomLabel(a.join(" ").split(" ")),o=m.getHoneypotFieldId(r),n=r[Math.floor(Math.random()*r.length)],s=`wpforms-${t}-field_`+o,p(`#wpforms-${t}-field_${n}-container`,e).before(`
<div id="${s}-container" class="wpforms-field wpforms-field-text" data-field-type="text" data-field-id="${o}" style="position: absolute !important; overflow: hidden !important; display: inline !important; height: 1px !important; width: 1px !important; z-index: -1000 !important; padding: 0 !important;">
<label class="wpforms-field-label" for="${s}" aria-hidden="true" style="counter-increment: none;"></label>
<input type="text" id="${s}" class="wpforms-field-medium" name="wpforms[fields][${o}]" aria-hidden="true" style="visibility: hidden;" tabindex="-1">
</div>`),(n=p(`#wpforms-${t}-field_${wpforms_settings.hn_data[t]}-container`,e)).find("input").attr({tabindex:"-1","aria-hidden":"true"}),n.find("label").text(i).attr("aria-hidden","true"))})},getHoneypotRandomLabel(t){let r="";for(let e=0;e<3;e++)r+=t[Math.floor(Math.random()*t.length)]+" ";return r.trim()},getHoneypotFieldId(t){var r=Math.max(...t);let a=0;for(let e=1;e<r;e++)if(!t.includes(e)){a=e;break}return a=a||r+1},loadValidation(){void 0===p.fn.validate?d.location.hash&&"#wpformsdebug"===d.location.hash&&console.log("jQuery Validation library not found."):(p(".wpforms-input-temp-name").each(function(e,t){var r=Math.floor(9999*Math.random())+1;p(this).attr("name","wpf-temp-"+r)}),p(s).on("change",".wpforms-validate input[type=url]",function(){var e=p(this).val();if(!e)return!1;"http://"!==e.substr(0,7)&&"https://"!==e.substr(0,8)&&p(this).val("https://"+e)}),p.validator.messages.required=wpforms_settings.val_required,p.validator.messages.url=wpforms_settings.val_url,p.validator.messages.email=wpforms_settings.val_email,p.validator.messages.number=wpforms_settings.val_number,p.validator.messages.min=e("val_min","Please enter a value greater than or equal to {0}").replace("{value}","{0}"),p.validator.messages.max=e("val_max","Please enter a value less than or equal to {0}").replace("{value}","{0}"),void 0!==p.fn.payment&&p.validator.addMethod("creditcard",function(e,t){e=p.payment.validateCardNumber(e);return this.optional(t)||e},wpforms_settings.val_creditcard),p.validator.addMethod("extension",function(e,t,r){return r="string"==typeof r?r.replace(/,/g,"|"):"png|jpe?g|gif",this.optional(t)||e.match(new RegExp("\\.("+r+")$","i"))},wpforms_settings.val_fileextension),p.validator.addMethod("maxsize",function(e,t,r){var a=r,r=this.optional(t);let i,o;if(r)return r;if(t.files&&t.files.length)for(i=0,o=t.files.length;i<o;i++)if(t.files[i].size>a)return!1;return!0},wpforms_settings.val_filesize),p.validator.addMethod("camera-required",function(e,t){var r=p(t).closest(".wpforms-field-camera");return!r.length||!(t.hasAttribute("required")||r.hasClass("wpforms-field-required"))||t.files&&0<t.files.length||0<r.find(".wpforms-camera-selected-file.wpforms-camera-selected-file-active").length},wpforms_settings.val_required),p.validator.addMethod("step",function(e,t,r){o=r;let a=Math.floor(o)!==o&&o.toString().split(".")[1].length||0;function i(e){return Math.round(e*Math.pow(10,a))}var o=i(p(t).attr("min"));return e=i(e)-o,this.optional(t)||i(e)%i(r)==0}),p.validator.methods.email=function(e,t){return this.optional(t)||(e=>{if("string"!=typeof e)return!1;var t=e.indexOf("@",1);if(e.length<6||254<e.length||-1===t)return!1;if(-1!==e.indexOf("@",t+1))return!1;var[t,e]=e.split("@");if(!t||!e)return!1;if(!/^[a-zA-Z0-9!#$%&'*+/=?^_`{|}~.-]+$/.test(t)||63<t.length)return!1;if(/\.{2,}/.test(e)||e.trim(" \t\n\r\0\v.")!==e)return!1;if((t=e.split(".")).length<2)return!1;var r,a=/^[a-z0-9-]+$/i;for(r of t)if(63<r.length||r.trim(" \t\n\r\0\v-")!==r||!a.test(r))return!1;return!0})(e)},p.validator.addMethod("restricted-email",function(e,t){var r=p(t);return!r.val().length||(r=r.closest(".wpforms-form").data("formid"),Object.prototype.hasOwnProperty.call(m.cache,r)&&Object.prototype.hasOwnProperty.call(m.cache[r],"restrictedEmailValidation")&&Object.prototype.hasOwnProperty.call(m.cache[r].restrictedEmailValidation,e)?m.cache[r].restrictedEmailValidation[e]:(m.restrictedEmailRequest(t,e),"pending"))},wpforms_settings.val_email_restricted),p.validator.addMethod("confirm",function(e,t,r){t=p(t).closest(".wpforms-field");return p(t.find("input")[0]).val()===p(t.find("input")[1]).val()},wpforms_settings.val_confirm),p.validator.addMethod("required-payment",function(e,t){return 0<m.amountSanitize(e)},wpforms_settings.val_requiredpayment),p.validator.addMethod("time12h",function(e,t){return this.optional(t)||/^((0?[1-9]|1[012])(:[0-5]\d){1,2}(\ ?[AP]M))$/i.test(e)},wpforms_settings.val_time12h),p.validator.addMethod("time24h",function(e,t){return this.optional(t)||/^(([0-1]?[0-9])|([2][0-3])):([0-5]?[0-9])(\ ?[AP]M)?$/i.test(e)},wpforms_settings.val_time24h),p.validator.addMethod("turnstile",function(e){return e},wpforms_settings.val_turnstile_fail_msg),p.validator.addMethod("time-limit",function(e,t){var t=p(t),r=t.data("min-time");return void 0===r||!(t.prop("required")||!m.empty(e))||(t=t.data("max-time"),m.compareTimesGreaterThan(t,r)?m.compareTimesGreaterThan(e,r)&&m.compareTimesGreaterThan(t,e):m.compareTimesGreaterThan(e,r)&&m.compareTimesGreaterThan(e,t)||m.compareTimesGreaterThan(r,e)&&m.compareTimesGreaterThan(t,e))},function(e,t){t=p(t);let r=t.data("min-time"),a=t.data("max-time");return r=r.replace(/^00:([0-9]{2})pm$/,"12:$1pm"),a=a.replace(/^00:([0-9]{2})pm$/,"12:$1pm"),r=r.replace(/(am|pm)/g," $1").toUpperCase(),a=a.replace(/(am|pm)/g," $1").toUpperCase(),wpforms_settings.val_time_limit.replace("{minTime}",r).replace("{maxTime}",a)}),p.validator.addMethod("check-limit",function(e,t){var t=p(t).closest("ul"),r=parseInt(t.attr("data-choice-limit")||0,10);return 0===r||t.find('input[type="checkbox"]:checked').length<=r},function(e,t){t=parseInt(p(t).closest("ul").attr("data-choice-limit")||0,10);return wpforms_settings.val_checklimit.replace("{#}",t)}),p.validator.addMethod("inputmask-incomplete",function(e,t){return 0===e.length||void 0===p.fn.inputmask||p(t).inputmask("isComplete")},wpforms_settings.val_inputmask_incomplete),p.validator.addMethod("required-positive-number",function(e,t){return 0<m.amountSanitize(e)},wpforms_settings.val_number_positive),p.validator.addMethod("required-minimum-price",function(e,t,r){t=p(t);return""===e&&!t.hasClass("wpforms-field-required")||Number(m.amountSanitize(m.amountFormat(r)))<=Number(m.amountSanitize(e))},wpforms_settings.val_minimum_price),p.validator.addMethod("password-strength",function(e,t){var r=p(t),t=WPFormsPasswordField.passwordStrength(e,t);return""===e&&!r.hasClass("wpforms-field-required")||t>=Number(r.data("password-strength-level"))},wpforms_settings.val_password_strength),p(".wpforms-validate").each(function(){let i=p(this),e=i.data("formid"),t;t=void 0!==d["wpforms_"+e]&&d["wpforms_"+e].hasOwnProperty("validate")?d["wpforms_"+e].validate:"undefined"!=typeof wpforms_validate?wpforms_validate:{errorElement:m.isModernMarkupEnabled()?"em":"label",errorClass:"wpforms-error",validClass:"wpforms-valid",ignore:m.getValidationIgnoreRules(i),ignoreTitle:!0,errorPlacement(e,t){m.isLikertScaleField(t)?(t.closest("table").hasClass("single-row")?t.closest(".wpforms-field"):t.closest("tr").find("th")).append(e):m.isWrappedField(t)?t.closest(".wpforms-field").append(e):m.isDateTimeField(t)?m.dateTimeErrorPlacement(t,e):m.isFieldInColumn(t)||m.isFieldHasHint(t)?t.parent().append(e):m.isLeadFormsSelect(t)?t.parent().parent().append(e):t.hasClass("wp-editor-area")?t.parent().parent().parent().append(e):m.isClassicFileUploadWithCamera(t)?e.insertAfter(t.parent().find("p.wpforms-file-upload-capture-camera-classic")):e.insertAfter(t),m.isModernMarkupEnabled()&&e.attr({role:"alert","aria-label":wpforms_settings.errorMessagePrefix,for:""})},highlight(e,t,r){var a=p(e),i=a.closest(".wpforms-field"),o=a.attr("name");("radio"===a.attr("type")||"checkbox"===a.attr("type")?i.find('input[name="'+o+'"]'):a).addClass(t).removeClass(r),"password"===a.attr("type")&&""===a.val().trim()&&d.WPFormsPasswordField&&a.data("rule-password-strength")&&a.hasClass("wpforms-field-required")&&WPFormsPasswordField.passwordStrength("",e),i.addClass("wpforms-has-error")},unhighlight(e,t,r){var e=p(e),a=e.closest(".wpforms-field"),i=e.attr("name");("radio"===e.attr("type")||"checkbox"===e.attr("type")?a.find('input[name="'+i+'"]'):e).addClass(r).removeClass(t),a.find(":input.wpforms-error,[data-dz-errormessage]:not(:empty)").length||a.removeClass("wpforms-has-error"),m.isModernMarkupEnabled()&&e.parent().find("em.wpforms-error").remove()},submitHandler(s){function n(e,t){let r="label",a="";m.isModernMarkupEnabled()&&(r="em",a='role="alert"');var i=`<${r} id="wpforms-field_recaptcha-error" class="wpforms-error" ${a}> ${wpforms_settings.val_recaptcha_fail_msg}</${r}>`;e.find(".wpforms-recaptcha-container").append(i),m.restoreSubmitButton(e,t)}function l(e){var t=e.find(".wpforms-submit");t.prop("disabled",!0),WPFormsUtils.triggerEvent(e,"wpformsFormSubmitButtonDisable",[e,t])}function e(){let e=p(s),t=e.closest(".wpforms-container"),r=e.find(".wpforms-submit"),a=r.data("captchaInvalid"),i=r.data("alt-text"),o=r.get(0).recaptchaID;return e.data("token")&&0===p(".wpforms-token",e).length&&p('<input type="hidden" class="wpforms-token" name="wpforms[token]" />').val(e.data("token")).appendTo(e),e.find("#wpforms-field_recaptcha-error").remove(),l(e),i&&r.text(i),a?n(e,t):m.empty(o)&&0!==o?(p(".wpforms-input-temp-name").removeAttr("name"),void m.formSubmit(e)):(grecaptcha.execute(o).then(null,function(){grecaptcha.getResponse()||n(e,t)}),!1)}return"function"==typeof wpformsRecaptchaV3Execute?(l(p(s)),wpformsRecaptchaV3Execute(e)):e()},invalidHandler(e,t){var r,a;void 0!==t.errorList[0]&&(t=p(t.errorList[0].element),r=p(i),m.isMultiPageForm(r)&&(a=m.getElementPageNumber(t))&&WPForms?.PageNavigation?.navigateToTargetPage?.(r,a),m.scrollToError(t))},onkeyup:WPFormsUtils.debounce(function(e,t){p(e).hasClass("wpforms-novalidate-onkeyup")||9===t.which&&""===this.elementValue(e)||-1!==p.inArray(t.keyCode,[16,17,18,20,35,36,37,38,39,40,45,144,225])||(e.name in this.submitted||e.name in this.invalid)&&this.element(e)},1e3),onfocusout:function(e){let t=!1;p(e).hasClass("wpforms-novalidate-onkeyup")&&!e.value&&(t=!0),this.checkable(e)||!(e.name in this.submitted)&&this.optional(e)||(t=!0),(t=p(e).data("server-error")?!1:t)&&this.element(e)},onclick(e){let t=!1;var r=(e||{}).type;let a=p(e);-1<["checkbox","radio"].indexOf(r)&&((a=a.hasClass("wpforms-likert-scale-option")?a.closest("tr"):a.closest(".wpforms-field")).find("label.wpforms-error, em.wpforms-error").remove(),t=!0),t&&this.element(e)}},i.validate(t),m.loadValidationGroups(i),i.find('.wpforms-field-camera input[ type="file" ], .wpforms-field-camera .dropzone-input').each(function(){var e=p(this);(e.closest(".wpforms-field-camera").hasClass("wpforms-field-required")||e.attr("required"))&&e.rules("add",{"camera-required":!0})})}))},restrictedEmailRequest(r,a){var e=p(r),t=e.closest("form");let i=t.data("validator"),o=t.data("formid");t=e.closest(".wpforms-field").data("field-id");m.cache[o]=m.cache[o]||{},i.startRequest(r),p.post({url:wpforms_settings.ajaxurl,type:"post",data:{action:"wpforms_restricted_email",form_id:o,field_id:t,email:a},dataType:"json",success(e){var t={},e=e.success&&e.data;e||(t[r.name]=wpforms_settings.val_email_restricted,i.showErrors(t)),m.cache[o].restrictedEmailValidation=m.cache[o].restrictedEmailValidation||[],Object.prototype.hasOwnProperty.call(m.cache[o].restrictedEmailValidation,a)||(m.cache[o].restrictedEmailValidation[a]=e),i.stopRequest(r,e)}})},getValidationIgnoreRules(e){if(m.isMultiPageForm(e)&&e.find(".wpforms-page-indicator").data("allow-page-navigation"))return":hidden:not(.wpforms-page:hidden *):not(textarea.wp-editor-area):not(.wpforms-field-camera:not(.wpforms-conditional-hide) input), .wpforms-conditional-hide *, .wpforms-hidden *";return":hidden:not(textarea.wp-editor-area):not(.wpforms-field-camera:not(.wpforms-conditional-hide) input), .wpforms-conditional-hide textarea.wp-editor-area"},isFieldInColumn(e){return e.parent().hasClass("wpforms-one-half")||e.parent().hasClass("wpforms-two-fifths")||e.parent().hasClass("wpforms-one-fifth")},isFieldHasHint(e){return 0<e.nextAll(".wpforms-field-sublabel, .wpforms-field-description, .wpforms-field-limit-text, .wpforms-pass-strength-result").length},isDateTimeField(e){return e.hasClass("wpforms-timepicker")||e.hasClass("wpforms-datepicker")||e.is("select")&&e.attr("class").match(/date-month|date-day|date-year/)},isWrappedField(e){return"checkbox"===e.attr("type")||"radio"===e.attr("type")||"range"===e.attr("type")||"select"===e.is("select")||1===e.data("is-wrapped-field")||e.parent().hasClass("iti")||e.hasClass("wpforms-validation-group-member")||e.hasClass("choicesjs-select")||e.hasClass("wpforms-net-promoter-score-option")||e.hasClass("wpforms-field-payment-coupon-input")},isLikertScaleField(e){return e.hasClass("wpforms-likert-scale-option")},isClassicFileUploadWithCamera(e){return 0<e.parent().find("p.wpforms-file-upload-capture-camera-classic").length},isLeadFormsSelect(e){return e.parent().hasClass("wpforms-lead-forms-select")},isCoupon(e){return console.warn('WARNING! Function "wpforms.isCoupon(element)" has been deprecated'),e.closest(".wpforms-field").hasClass("wpforms-field-payment-coupon")},isMultiPageForm(e){return 0<e.find(".wpforms-page-indicator").length},getElementPageNumber(e){return parseInt(e.closest(".wpforms-page").data("page"),10)||0},dateTimeErrorPlacement(e,t){var r=e.closest(".wpforms-field-row-block, .wpforms-field-date-time");r.length?r.find("label.wpforms-error, em.wpforms-error").length||r.append(t):e.closest(".wpforms-field").append(t)},loadDatePicker(e){void 0!==p.fn.flatpickr&&(e=e?.length?e:p(s)).find(".wpforms-datepicker-wrap").each(function(){let a=p(this),e=a.find("input"),t=a.closest(".wpforms-form"),r=t.data("formid"),i=a.closest(".wpforms-field").data("field-id"),o;var s;!(o=void 0!==d["wpforms_"+r+"_"+i]&&d["wpforms_"+r+"_"+i].hasOwnProperty("datepicker")?d["wpforms_"+r+"_"+i].datepicker:void 0!==d["wpforms_"+r]&&d["wpforms_"+r].hasOwnProperty("datepicker")?d["wpforms_"+r].datepicker:"undefined"!=typeof wpforms_datepicker?wpforms_datepicker:{disableMobile:!0}).hasOwnProperty("locale")&&"undefined"!=typeof wpforms_settings&&wpforms_settings.hasOwnProperty("locale")&&(o.locale=wpforms_settings.locale),o.wrap=!0,o.dateFormat=e.data("date-format"),1===e.data("disable-past-dates")&&(o.minDate="today",1===e.data("disable-todays-date"))&&(s=new Date,o.minDate=s.setDate(s.getDate()+1));let n=e.data("limit-days"),l=["sun","mon","tue","wed","thu","fri","sat"];n&&""!==n&&(n=n.split(","),o.disable=[function(e){for(var t in n)if(l.indexOf(n[t])===e.getDay())return!1;return!0}]),o.onChange=function(e,t,r){a.find(".wpforms-datepicker-clear").css("display",""===t?"none":"block")},o.onReady=function(e,t,r){a.find(".wpforms-datepicker-clear").on("keydown",function(e){"Enter"!==e.key&&" "!==e.key||(e.preventDefault(),r.clear())}),a.find(".wpforms-datepicker-clear").on("click",function(e){e.preventDefault(),r.clear()})},a.flatpickr(o)})},loadTimePicker(e){void 0!==p.fn.timepicker&&(e=e?.length?e:p(s)).find(".wpforms-timepicker").each(function(){var e=p(this),t=e.closest(".wpforms-form").data("formid"),r=e.closest(".wpforms-field").data("field-id");let a;a=void 0!==d["wpforms_"+t+"_"+r]&&d["wpforms_"+t+"_"+r].hasOwnProperty("timepicker")?d["wpforms_"+t+"_"+r].timepicker:void 0!==d["wpforms_"+t]&&d["wpforms_"+t].hasOwnProperty("timepicker")?d["wpforms_"+t].timepicker:"undefined"!=typeof wpforms_timepicker?wpforms_timepicker:{scrollDefault:"now",forceRoundTime:!0};r=e.val();e.timepicker(a),r&&(e.val(r),e.trigger("changeTime"))})},loadInputMask(e){void 0!==p.fn.inputmask&&(e=e?.length?e:p(s)).find(".wpforms-masked-input").inputmask({rightAlign:!1})},fixPhoneFieldSnippets(t){console.warn("WARNING! Obsolete function called. Function wpforms.fixPhoneFieldSnippets($field) has been deprecated, please use the wpforms.repairSmartPhoneHiddenField($field) function instead!"),t.siblings('input[type="hidden"]').each(function(){var e;p(this).attr("name").includes("function")&&(e=(e=t.data("plugin_intlTelInput")).d||e.options)&&((d.intlTelInput?.getInstance(t[0]))?.destroy(),e.initialCountry=e.initialCountry.toLowerCase(),e.onlyCountries=e.onlyCountries.map(e=>e.toLowerCase()),e.preferredCountries=e.preferredCountries.map(e=>e.toLowerCase()),d.intlTelInput(t[0],e),t.siblings('input[type="hidden"]').each(function(){var e=p(this);e.attr("name",e.attr("name").replace("wpf-temp-",""))}))})},repairSmartPhoneHiddenField(e){console.warn('WARNING! Function "wpforms.repairSmartPhoneHiddenField()" has been deprecated, please use the new "WPFormsPhoneField.repairSmartHiddenField()" function instead!'),WPFormsPhoneField?.repairSmartHiddenField?.(e)},getDefaultSmartPhoneFieldOptions(){return console.warn('WARNING! Function "wpforms.getDefaultSmartPhoneFieldOptions()" has been deprecated, please use the new "WPFormsPhoneField.getDefaultSmartFieldOptions()" function instead!'),WPFormsPhoneField?.getDefaultSmartFieldOptions?.()},loadSmartPhoneField(e){console.warn('WARNING! Function "wpforms.loadSmartPhoneField()" has been deprecated, please use the new "WPFormsPhoneField.loadSmartField()" function instead!'),WPFormsPhoneField?.loadSmartField?.(e)},loadJqueryIntlTelInput(){console.warn('WARNING! Function "wpforms.loadJqueryIntlTelInput()" has been deprecated, please use the new "WPFormsPhoneField.loadJqueryIntlTelInput()" function instead!'),WPFormsPhoneField?.loadJqueryIntlTelInput?.()},initSmartPhoneField(e,t){console.warn('WARNING! Function "wpforms.initSmartPhoneField()" has been deprecated, please use the new "WPFormsPhoneField.initSmartField()" function instead!'),WPFormsPhoneField?.initSmartField?.(e,t)},bindSmartPhoneField(){console.warn('WARNING! Function "wpforms.bindSmartPhoneField()" has been deprecated, please use the new "WPFormsPhoneField.bindSmartField()" function instead!'),WPFormsPhoneField?.bindSmartField?.()},loadPayments(){p("input.wpforms-payment-total").each(function(e,t){m.amountTotal(this)}),void 0!==p.fn.payment&&(p(".wpforms-field-credit-card-cardnumber").payment("formatCardNumber"),p(".wpforms-field-credit-card-cardcvc").payment("formatCardCVC"))},loadMailcheck(){wpforms_settings.mailcheck_enabled&&void 0!==p.fn.mailcheck&&(0<wpforms_settings.mailcheck_domains.length&&(Mailcheck.defaultDomains=Mailcheck.defaultDomains.concat(wpforms_settings.mailcheck_domains)),0<wpforms_settings.mailcheck_toplevel_domains.length&&(Mailcheck.defaultTopLevelDomains=Mailcheck.defaultTopLevelDomains.concat(wpforms_settings.mailcheck_toplevel_domains)),p(s).on("blur",".wpforms-field-email input",function(){var e=p(this);if(1!==e.data("disable-suggestions")){let i=e.attr("id");e.mailcheck({suggested(e,t){t.full=t.full.replace(/%(?![0-9][0-9a-fA-F]+)/g,"%25"),t.address=t.address.replace(/%(?![0-9][0-9a-fA-F]+)/g,"%25"),t.domain=t.domain.replace(/%(?![0-9][0-9a-fA-F]+)/g,"%25"),t.address.match(/^xn--/)&&(t.full=punycode.toUnicode(decodeURI(t.full)),r=t.full.split("@"),t.address=r[0],t.domain=r[1]),t.domain.match(/^xn--/)&&(t.domain=punycode.toUnicode(decodeURI(t.domain)));var r=decodeURI(t.address).replaceAll(/[<>'"()/\\|:;=@%&\s]/gi,"").substr(0,64),a=decodeURI(t.domain).replaceAll(/[<>'"()/\\|:;=@%&+_\s]/gi,"");t='<a href="#" class="mailcheck-suggestion" data-id="'+i+'" title="'+wpforms_settings.val_email_suggestion_title+'">'+r+"@"+a+"</a>",t=wpforms_settings.val_email_suggestion.replace("{suggestion}",t),e.closest(".wpforms-field").find("#"+i+"_suggestion").remove(),e.parent().append('<label class="wpforms-error mailcheck-error" id="'+i+'_suggestion">'+t+"</label>")},empty(){p("#"+i+"_suggestion").remove()}})}}),p(s).on("click",".wpforms-field-email .mailcheck-suggestion",function(e){var t=p(this),r=t.closest(".wpforms-field"),a=t.data("id");e.preventDefault(),r.find("#"+a).val(t.text()),t.parent().remove()}))},loadChoicesJS(o){"function"==typeof d.Choices&&(o=o?.length?o:p(s)).find(".wpforms-field-select-style-modern .choicesjs-select, .wpforms-field-payment-select .choicesjs-select").each(function(e,t){var r,a,i;p(t).data("choicesjs")||WPFormsUtils.triggerEvent(o,"wpformsBeforeLoadElementChoices",[t]).isDefaultPrevented()||(r=d.wpforms_choicesjs_config||{},a=p(t).data("search-enabled"),i=p(t).data("remove-items-enabled"),r.searchEnabled=void 0===a||a,r.removeItems=void 0===i||i,r.removeItemButton=r.removeItems,r.allowHTML=!0,r.callbackOnInit=function(){let t=this,r=p(t.passedElement.element),e=t.input?.element,a=p(e),i=r.data("size-class"),o=r.attr("id"),s=this.dropdown.element.querySelector('[role="listbox"]'),n=this.passedElement.element.multiple;var l;t.containerOuter&&t.containerOuter.element&&o&&n&&(t.containerOuter.element.setAttribute("aria-haspopup","listbox"),t.containerOuter.element.setAttribute("aria-labelledby",o)),e&&s&&(l="choices-listbox-"+this.passedElement.element.id,s.id=l,e.setAttribute("aria-controls",l),e.setAttribute("aria-owns",l)),t.passedElement.element.addEventListener("showDropdown",()=>{e&&n&&e.focus()}),r.removeAttr("hidden").addClass(t.config.classNames.input+"--hidden"),i&&p(t.containerOuter.element).addClass(i),r.prop("multiple")&&(a.data("placeholder",a.attr("placeholder")).css("width","auto"),t.getValue(!0).length&&a.removeAttr("placeholder"),a.css("width","1ch")),r.on("change",function(){r.prop("multiple")&&(t.getValue(!0).length?a.removeAttr("placeholder"):a.attr("placeholder",a.data("placeholder")).css("width","auto"));var e=r.closest("form").data("validator");e&&e.element(r)})},r.callbackOnCreateTemplates=function(){let r=p(this.passedElement.element);return{option(e){var t=Choices.defaults.templates.option.call(this,e);return void 0!==e.placeholder&&!0===e.placeholder&&t.classList.add("placeholder"),r.hasClass("wpforms-payment-price")&&null!=e.customProperties&&(t.dataset.amount=e.customProperties),t}}},p(t).data("choicesjs",new Choices(t,r)))})},bindChoicesJS(){p(s).on("click",".choices",function(e){var t=p(this),r=t.find("select").data("choicesjs");r&&t.hasClass("is-open")&&(e.target.classList.contains("choices__inner")||e.target.classList.contains("choices__arrow"))&&r.hideDropdown()})},bindUIActions(){var e=p(s);e.on("click",".wpforms-page-button",function(e){e.preventDefault(),m.pagebreakNav(this)});let t;e.on("change input",".wpforms-payment-price",function(){clearTimeout(t),t=setTimeout(()=>{m.amountTotal(this,!0)},0)});let r;e.on("change","select.wpforms-payment-quantity",function(){clearTimeout(r),r=setTimeout(()=>{m.amountTotal(this,!0),m.updateOrderSummaryItemQuantity(p(this))},0)}),e.on("input",".wpforms-payment-user-input",function(){var e=p(this),t=e.val();e.val(t.replace(/[^0-9.,]/g,""))}),e.on("focusout",".wpforms-payment-user-input",function(){var e=p(this),t=e.val();if(!t)return t;t=m.amountSanitize(t),t=m.amountFormat(t);e.val(t)});let a;e.on("wpformsProcessConditionals",function(e,t){clearTimeout(a),a=setTimeout(()=>{m.amountTotal(t,!0)},0)}),e.on("mouseenter",".wpforms-field-rating-item",function(){p(this).parent().find(".wpforms-field-rating-item").removeClass("selected hover"),p(this).prevAll().addBack().addClass("hover")}).on("mouseleave",".wpforms-field-rating-item",function(){p(this).parent().find(".wpforms-field-rating-item").removeClass("selected hover"),p(this).parent().find("input:checked").parent().prevAll().addBack().addClass("selected")}),p(s).on("change",".wpforms-field-rating-item input",function(){var e=p(this),t=e.closest(".wpforms-field-rating-items").find(".wpforms-field-rating-item");e.focus(),t.removeClass("hover selected"),e.parent().prevAll().addBack().addClass("selected")}),p(function(){p(".wpforms-field-rating-item input:checked").trigger("change")}),e.on("keydown",".wpforms-image-choices-item label",function(e){var t=p(this);if(t.closest(".wpforms-field").hasClass("wpforms-conditional-hide"))return e.preventDefault(),!1;32===e.keyCode&&(t.find("input").trigger("click"),e.preventDefault())}),m.bindOtherOptionActions(),d.document.documentMode&&e.on("click",".wpforms-image-choices-item img",function(){p(this).closest("label").find("input").trigger("click")}),e.on("change",".wpforms-field-checkbox input, .wpforms-field-radio input, .wpforms-field-payment-multiple input, .wpforms-field-payment-checkbox input, .wpforms-field-gdpr-checkbox input",function(e){var t=p(this);if(t.closest(".wpforms-field").hasClass("wpforms-conditional-hide"))return e.preventDefault(),!1;switch(t.attr("type")){case"radio":t.closest("ul").find("li").removeClass("wpforms-selected").find("input[type=radio]").removeProp("checked"),t.prop("checked",!0).closest("li").addClass("wpforms-selected");break;case"checkbox":t.is(":checked")?(t.closest("li").addClass("wpforms-selected"),t.prop("checked",!0)):(t.closest("li").removeClass("wpforms-selected"),t.prop("checked",!1))}}),e.on("input",".wpforms-field-file-upload",function(){var e=p(this),t=e.closest("form.wpforms-form").find('.wpforms-field-file-upload input:not(".dropzone-input")');let a=0,r=Number(wpforms_settings.post_max_size),i='<div class="wpforms-error-container-post_max_size">'+wpforms_settings.val_post_max_size+"</div>";e=e.closest("form.wpforms-form").find(".wpforms-submit-container");let o=e.find("button.wpforms-submit"),s=e.prev();var n=o.closest("form"),l=n.find(".wpforms-page-next:visible");0!==n.find(".wpforms-page-indicator").length&&0!==l.length&&(o=l),t.each(function(){var e=p(this);let t=0;for(var r=e[0].files.length;t<r;t++)a+=e[0].files[t].size}),a<r?(s.find(".wpforms-error-container-post_max_size").remove(),o.prop("disabled",!1),WPFormsUtils.triggerEvent(n,"wpformsFormSubmitButtonRestore",[n,o]),WPFormsUtils.triggerEvent(n,"wpformsCombinedUploadsSizeOk",[n,s])):(a=Number((a/1048576).toFixed(3)),r=Number((r/1048576).toFixed(3)),i=i.replace(/{totalSize}/,a).replace(/{maxSize}/,r),s.hasClass("wpforms-error-container")?(s.find(".wpforms-error-container-post_max_size").remove(),s.append(i)):(e.before('<div class="wpforms-error-container">{errorMsg}</div>'.replace(/{errorMsg}/,i)),s=e.prev()),o.prop("disabled",!0),WPFormsUtils.triggerEvent(n,"wpformsFormSubmitButtonDisable",[n,o]),WPFormsUtils.triggerEvent(n,"wpformsCombinedUploadsSizeError",[n,s]))}),e.on("change input",".wpforms-field-number-slider input[type=range]",function(e){var t=p(e.target).siblings(".wpforms-field-number-slider-hint");t.html(t.data("hint").replaceAll("{value}","<b>"+e.target.value+"</b>"))}),e.on("keydown",".wpforms-form input",function(e){var t,r;13!==e.keyCode||0===(r=(t=p(this)).closest(".wpforms-page")).length||["text","tel","number","email","url","radio","checkbox"].indexOf(t.attr("type"))<0||(t.hasClass("wpforms-datepicker")&&t.flatpickr("close"),t.hasClass("dropzone-input"))||(e.preventDefault(),(r.hasClass("last")?r.closest(".wpforms-form").find(".wpforms-submit"):r.find(".wpforms-page-next")).trigger("click"))}),e.on("keypress",".wpforms-field-number input",function(e){return/^[-0-9.]+$/.test(String.fromCharCode(e.keyCode||e.which))}),e.one("input",".wpforms-field input, .wpforms-field textarea, .wpforms-field select",m.formChanged).one("change",".wpforms-field-select-style-modern, .wpforms-timepicker",m.formChanged).one("focus",".dropzone-input",m.formChanged).one("click touchstart",".wpforms-signature-canvas",m.formChanged).one("wpformsRichTextContentChange",m.richTextContentChanged),p("form.wpforms-form").on("wpformsBeforePageChange",m.skipEmptyPages)},bindOtherOptionActions(){p(s).on("change",'.wpforms-field-radio input[type="radio"]',function(){var e=p(this),t=e.closest(".wpforms-field"),r=e.closest("li"),t=t.find(".wpforms-other-input");t.addClass("wpforms-hidden").prop("disabled",!0).prop("required",!1),e.is(":checked")&&r.hasClass("wpforms-other-choice")&&t.removeClass("wpforms-hidden").prop("disabled",!1).prop("required",!0)})},skipEmptyPages(e,t,r,a){var i=m.findNonEmptyPage(t,r,a);i!==t&&(e.preventDefault(),1===i&&"prev"===a?(e=r.find(".wpforms-page-2"),a=r.find(".wpforms-page-"+t),t=(e.find(".wpforms-page-prev").length?e:a).find(".wpforms-page-prev"),wpforms.navigateToPage(t,"prev",2,r,e)):(t=r.find(".wpforms-page-"+(a=i-1)),wpforms.navigateToPage(t.find(".wpforms-page-next"),"next",a,r,t)))},findNonEmptyPage(e,t,r){let a=e;for(;m.isEmptyPage(t,a);)"prev"===r?a--:a++;return a},isEmptyPage(e,t){return 1!==t&&!(e=e.find(".wpforms-page-"+t)).hasClass("last")&&(t=m.removeHoneyPotField(e.children(".wpforms-field:not(.wpforms-field-pagebreak):not(.wpforms-field-hidden)")),e.children(".wpforms-conditional-hide").length===t.length)},removeHoneyPotField(e){return e.filter(function(){var e=p(this).children("input");return"-1"!==e.attr("tabindex")&&"true"!==e.attr("aria-hidden")})},formChanged(e){var t=p(this).closest(".wpforms-form");m.maybeSetStartTime(t)},richTextContentChanged(e,t,r){r=r.getContainer(),r=p(r).closest(".wpforms-form");m.maybeSetStartTime(r)},initFormsStartTime(){p(".wpforms-form").each(function(){m.maybeSetStartTime(p(this))})},maybeSetStartTime(e){m.getStartTimestampData(e)||e.data("start_timestamp",m.getTimestampSec())},getStartTimestampData(e){return e.hasClass("wpforms-form")&&0<(e=parseInt(e.data("start_timestamp"),10)||0)?e:0},entryPreviewFieldPageChange(e,t,r){console.warn("WARNING! Obsolete function called. Function wpforms.entryPreviewFieldPageChange has been deprecated, please use the WPFormsEntryPreview.pageChange function instead!"),WPFormsEntryPreview.pageChange(e,t,r)},entryPreviewFieldUpdate(e,t){console.warn("WARNING! Obsolete function called. Function wpforms.entryPreviewFieldUpdate has been deprecated, please use the WPFormsEntryPreview.update function instead!"),WPFormsEntryPreview.update(e,t)},scrollToError(e){if(0!==e.length){let t=e.find(".wpforms-field.wpforms-has-error");0!==(t=0===t.length?e.closest(".wpforms-field"):t).length&&void 0!==(e=t.offset())&&m.animateScrollTop(e.top-75,750).done(function(){var e=t.find(".wpforms-error").first();"function"==typeof e.focus&&e.trigger("focus")})}},pagebreakNav(e){let t=p(e),r=t.data("action"),a=t.data("page"),i=t.closest(".wpforms-form"),o=i.find(".wpforms-page-"+a);m.saveTinyMCE(),"next"===r&&void 0!==p.fn.validate?m.checkForInvalidFields(i,o,function(){m.navigateToPage(t,r,a,i,o)}):"prev"!==r&&"next"!==r||m.navigateToPage(t,r,a,i,o)},checkForInvalidFields(e,t,r){var i=e.data("validator");if(i){let a=!0;t.find(":input").each(function(e,t){var r=p(t);!r.attr("name")||r.hasClass("wpforms-field-skip-validation")||p(t).valid()||(a=!1)}),0<i.pendingRequest?setTimeout(function(){m.checkForInvalidFields(e,t,r)},800):a?r():m.scrollToError(t)}},navigateToPage(t,r,a,i,e){if(!t.hasClass("wpforms-disabled")){let e=a;"next"===r?e+=1:"prev"===r&&--e,WPFormsUtils.triggerEvent(t,"wpformsBeforePageChange",[e,i,r]).isDefaultPrevented()||(i.find(".wpforms-page").hide(),(a=i.find(".wpforms-page-"+e)).show(),m.toggleReCaptchaAndSubmitDisplay(i,r,a),m.checkTurnstileVisibility(i),(a=m.getPageScroll(i))&&m.animateScrollTop(i.offset().top-a,750,null),t.trigger("wpformsPageChange",[e,i,r]),m.manipulateIndicator(e,i))}},toggleReCaptchaAndSubmitDisplay(e,t,r){var a=e.find(".wpforms-submit-container"),e=e.find(".wpforms-recaptcha-container");"next"===t&&r.hasClass("last")?(e.show(),a.show()):"prev"===t&&(e.hide(),a.hide())},checkTurnstileVisibility(e){var t,e=e.find(".wpforms-recaptcha-container");e.hasClass("wpforms-is-turnstile")&&(t=e.find(".wpforms-turnstile").height(),0===parseInt(t,10)?e.addClass("wpforms-is-turnstile-invisible"):e.removeClass("wpforms-is-turnstile-invisible"))},getPageScroll(e){return!1!==d.wpforms_pageScroll&&(m.empty(d.wpform_pageScroll)?0!==e.find(".wpforms-page-indicator").data("scroll")&&75:d.wpform_pageScroll)},manipulateIndicator(e,t){var r,a=t.find(".wpforms-page-indicator");a&&("connector"===(r=a.data("indicator"))||"circles"===r?m.manipulateConnectorAndCirclesIndicator(a,r,e):"progress"===r&&m.manipulateProgressIndicator(a,t,e))},manipulateConnectorAndCirclesIndicator(e,t,r){var a=e.data("indicator-color");e.find(".wpforms-page-indicator-page").removeClass("active"),e.find(".wpforms-page-indicator-page-"+r).addClass("active"),e.find(".wpforms-page-indicator-page-number").removeAttr("style"),e.find(".active .wpforms-page-indicator-page-number").css("background-color",a),"connector"===t&&(e.find(".wpforms-page-indicator-page-triangle").removeAttr("style"),e.find(".active .wpforms-page-indicator-page-triangle").css("border-top-color",a))},manipulateProgressIndicator(e,t,r){var a=e.find(".wpforms-page-indicator-page-title"),i=e.find(".wpforms-page-indicator-page-title-sep"),t=r/t.find(".wpforms-page").length*100;e.find(".wpforms-page-indicator-page-progress").css("width",t+"%"),e.find(".wpforms-page-indicator-steps-current").text(r),a.data("page-"+r+"-title")?(a.css("display","inline").text(a.data("page-"+r+"-title")),i.css("display","inline")):(a.css("display","none"),i.css("display","none"))},bindOptinMonster(){s.addEventListener("om.Campaign.load",function(e){m.ready(),m.optinMonsterRecaptchaReset(e.detail.Campaign.data.id)}),s.addEventListener("om.Campaign.afterShow",function(e){"undefined"!=typeof WPFormsRepeaterField&&WPFormsRepeaterField.ready()}),p(s).on("OptinMonsterOnShow",function(e,t,r){m.ready(),m.optinMonsterRecaptchaReset(t.optin),"undefined"!=typeof WPFormsRepeaterField&&WPFormsRepeaterField.ready()})},optinMonsterRecaptchaReset(e){var e=p("#om-"+e).find(".wpforms-form"),r=e.find(".wpforms-recaptcha-container");let a,i,o;if(o=r.hasClass("wpforms-is-hcaptcha")?(a=e.find(".h-captcha"),i="h-captcha",hcaptcha):r.hasClass("wpforms-is-turnstile")?(a=e.find(".wpforms-turnstile"),i="wpforms-turnstile",turnstile):(a=e.find(".g-recaptcha"),i="g-recaptcha",grecaptcha),e.length&&a.length){let e=a.attr("data-sitekey"),t="recaptcha-"+Date.now();a.remove(),r.prepend('<div class="'+i+'" id="'+t+'" data-sitekey="'+e+'"></div>'),o.render(t,{sitekey:e,callback(){wpformsRecaptchaCallback(p("#"+t))}})}},amountTotal(e,t){t=t||!1;let r=p(e),a=r.closest(".wpforms-form"),i=m.amountTotalCalc(a);if(m.allowAmountTotalCalc(a,r,i)){let e=m.amountFormatSymbol(i);a.find(".wpforms-payment-total").each(function(){"hidden"===p(this).attr("type")||"text"===p(this).attr("type")?(p(this).val(e),"text"===p(this).attr("type")&&t&&a.data("validator")&&p(this).valid()):p(this).text(e)}),m.updateOrderSummaryItems(a,r,e)}},allowAmountTotalCalc(e,t,r){var e=e.data("formid");return m.getCache(e,"amountTotal")!==r?(m.updateCache(e,"amountTotal",r),!0):"radio"===(e=t.prop("type"))||"select-one"===e||"checkbox"===e},updateOrderSummaryItems(e,t,r){var a=e.find(".wpforms-order-summary-preview");if(0!==a.length){let i=e.find(".wpforms-payment-price");a.each(function(){let a=p(this),e=(""!==r&&a.find(".wpforms-order-summary-preview-total .wpforms-order-summary-item-price").text(r),t=>{let r=Math.min(t+10,i.length);for(let e=t;e<r;e++)m.updateOrderSummaryItem(p(i[e]),a);r<i.length&&setTimeout(()=>e(r),0)});e(0)})}},updateCache(e,t,r){m.cache[e]=m.cache[e]||{},m.cache[e][t]=r},getCache(e,t){return!(!Object.prototype.hasOwnProperty.call(m.cache,e)||!Object.prototype.hasOwnProperty.call(m.cache[e],t))&&m.cache[e][t]},updateOrderSummaryItem(i,o){if(i.hasClass("wpforms-payment-price")){let t=i.closest(".wpforms-field"),e=t.data("field-id"),r=i.prop("type"),a="block"===t.css("display");var s,n;"checkbox"===r||"radio"===r||"select-one"===r?o.find(`tr[data-field="${e}"]`).each(function(){var e=p(this).data("choice"),e="select-one"===r?e===parseInt(t.find("select").val(),10):t.find(`input[value="${e}"]`).is(":checked");p(this).toggle(a&&e)}):(s=o.find(`tr[data-field="${e}"]`),n=i.val(),s.find(".wpforms-order-summary-item-price").text(m.amountFormatSymbol(m.amountSanitize(n))),s.toggle(a)),t.hasClass("wpforms-payment-quantities-enabled")?m.updateOrderSummaryItemQuantity(i):(m.updateSummaryPriceWidth(o),m.toggleSummaryPlaceholder(o))}},updateOrderSummaryItemQuantity(e){let t=e.closest(".wpforms-field"),a=t.find("input.wpforms-payment-price, select.wpforms-payment-price"),r=e.closest(".wpforms-form"),i=t.data("field-id"),o=m.getPaymentFieldQuantity(a),s=m.getPaymentFieldAmount(a),n=a.prop("type");r.find(".wpforms-order-summary-preview").each(function(){var e,t=p(this);let r;(r="checkbox"===n||"radio"===n||"select-one"===n?(e=a.val(),t.find(`tr[data-field="${i}"][data-choice="${e}"]`)):t.find(`tr[data-field="${i}"]`)).toggle(0<o),r.find(".wpforms-order-summary-item-quantity").text(o),r.find(".wpforms-order-summary-item-price").text(m.amountFormatSymbol(s*o)),m.updateSummaryPriceWidth(t),m.toggleSummaryPlaceholder(t)})},updateSummaryPriceWidth(e){var t=Math.max(e.find(".wpforms-order-summary-preview-coupon-total .wpforms-order-summary-item-price").text().length,e.find(".wpforms-order-summary-preview-total .wpforms-order-summary-item-price").text().length+3);e.find(".wpforms-order-summary-item-price").css("width",t+"ch")},toggleSummaryPlaceholder(e){var t=e.find(".wpforms-order-summary-placeholder");let r=!0;e.find(".wpforms-order-summary-field").each(function(){if("none"!==p(this).css("display"))return r=!1}),t.toggle(r)},amountTotalCalc(e){let r=0;p(".wpforms-payment-price",e).each(function(){var e,t=p(this);t.closest(".wpforms-field-payment-single").hasClass("wpforms-conditional-hide")||(e=m.getPaymentFieldAmount(t))&&(r=Number(r)+e*m.getPaymentFieldQuantity(t))});var t=p(s),a=WPFormsUtils.triggerEvent(t,"wpformsAmountTotalCalculate",[e,r]);return r=void 0!==a.result&&0<=a.result?a.result:r,WPFormsUtils.triggerEvent(t,"wpformsAmountTotalCalculated",[e,r]),r},getPaymentFieldAmount(e){var t=e.attr("type");return"text"===t||"hidden"===t?Number(m.amountSanitize(e.val())):"radio"!==t&&"checkbox"!==t||!e.is(":checked")?e.is("select")&&0<e.find("option:selected").length&&e.find("option:selected").data("amount")?Number(m.amountSanitize(e.find("option:selected").data("amount"))):0:Number(m.amountSanitize(e.data("amount")))},getPaymentFieldQuantity(e){e=e.attr("id"),e=p(`#${e}-quantity`);return e.length?Number(e.val()):1},amountSanitize(e){var t=m.getCurrency();return e=e.toString().replace(t.symbol,"").replace(/[^0-9.,]/g,""),","===t.decimal_sep?("."===t.thousands_sep&&-1!==e.indexOf(t.thousands_sep)?e=e.replace(new RegExp("\\"+t.thousands_sep,"g"),""):""===t.thousands_sep&&-1!==e.indexOf(".")&&(e=e.replace(/\./g,"")),e=e.replace(t.decimal_sep,".")):","===t.thousands_sep&&-1!==e.indexOf(t.thousands_sep)&&(e=e.replace(new RegExp("\\"+t.thousands_sep,"g"),"")),m.numberFormat(e,t.decimals,".","")},amountFormat(e){var t,r=m.getCurrency();return e=String(e),","===r.decimal_sep&&-1!==e.indexOf(r.decimal_sep)&&(t=e.indexOf(r.decimal_sep),e=e.substr(0,t)+"."+e.substr(t+1,e.length-1)),","===r.thousands_sep&&-1!==e.indexOf(r.thousands_sep)&&(e=e.replace(/,/g,"")),m.empty(e)&&(e=0),m.numberFormat(e,r.decimals,r.decimal_sep,r.thousands_sep)},amountFormatSymbol(e){var t=m.getCurrency(),e=m.amountFormat(e);return"left"===t.symbol_pos?t.symbol+e:e+" "+t.symbol},getCurrency(){var e={code:"USD",thousands_sep:",",decimals:2,decimal_sep:".",symbol:"$",symbol_pos:"left"};return void 0!==wpforms_settings.currency_code&&(e.code=wpforms_settings.currency_code),void 0!==wpforms_settings.currency_thousands&&(e.thousands_sep=wpforms_settings.currency_thousands),void 0!==wpforms_settings.currency_decimals&&(e.decimals=wpforms_settings.currency_decimals),void 0!==wpforms_settings.currency_decimal&&(e.decimal_sep=wpforms_settings.currency_decimal),void 0!==wpforms_settings.currency_symbol&&(e.symbol=wpforms_settings.currency_symbol),void 0!==wpforms_settings.currency_symbol_pos&&(e.symbol_pos=wpforms_settings.currency_symbol_pos),e},numberFormat(e,t,r,a){e=(e+"").replace(/[^0-9+\-Ee.]/g,"");var i,o,e=isFinite(+e)?+e:0,t=isFinite(+t)?Math.abs(t):0,a=void 0===a?",":a,r=void 0===r?".":r,s=(t?(s=e,i=t,o=Math.pow(10,i),""+(Math.round(s*o)/o).toFixed(i)):""+Math.round(e)).split(".");return 3<s[0].length&&(s[0]=s[0].replace(/\B(?=(?:\d{3})+(?!\d))/g,a)),(s[1]||"").length<t&&(s[1]=s[1]||"",s[1]+=new Array(t-s[1].length+1).join("0")),s.join(r)},empty(e){var t;let r,a;var i=[void 0,null,!1,0,"","0"];for(a=0,t=i.length;a<t;a++)if(e===i[a])return!0;if("object"!=typeof e)return!1;for(r in e)if(e.hasOwnProperty(r))return!1;return!0},setUserIdentifier(){if((!d.hasRequiredConsent&&"undefined"!=typeof wpforms_settings&&wpforms_settings.uuid_cookie||d.hasRequiredConsent&&d.hasRequiredConsent())&&!m.getCookie("_wpfuuid")){var t=new Array(36),r="0123456789abcdef";for(let e=0;e<36;e++)t[e]=r.substr(Math.floor(16*Math.random()),1);t[14]="4",t[19]=r.substr(3&t[19]|8,1),t[8]=t[13]=t[18]=t[23]="-";var e=t.join("");m.createCookie("_wpfuuid",e,3999)}},createCookie(e,t,r){let a="",i="";var o;wpforms_settings.is_ssl&&(i=";secure"),a=r?-1===r?"":((o=new Date).setTime(o.getTime()+24*r*60*60*1e3),";expires="+o.toGMTString()):";expires=Thu, 01 Jan 1970 00:00:01 GMT",s.cookie=e+"="+t+a+";path=/;samesite=strict"+i},getCookie(e){var r=e+"=",a=s.cookie.split(";");for(let t=0;t<a.length;t++){let e=a[t];for(;" "===e.charAt(0);)e=e.substring(1,e.length);if(0===e.indexOf(r))return e.substring(r.length,e.length)}return null},removeCookie(e){m.createCookie(e,"",-1)},getFirstBrowserLanguage(){return console.warn('WARNING! Function "wpforms.getFirstBrowserLanguage()" has been deprecated, please use the new "WPFormsPhoneField.getFirstBrowserLanguage()" function instead!'),WPFormsPhoneField?.getFirstBrowserLanguage?.()},mapLanguageToIso(e){return console.warn('WARNING! Function "wpforms.mapLanguageToIso()" has been deprecated, please use the new "WPFormsPhoneField.mapLanguageToIso()" function instead!'),WPFormsPhoneField?.mapLanguageToIso?.(e)},currentIpToCountry(e){console.warn('WARNING! Function "wpforms.currentIpToCountry()" has been deprecated, please use the new "WPFormsPhoneField.currentIpToCountry()" function instead!'),WPFormsPhoneField?.currentIpToCountry?.(e)},formSubmit(e){e instanceof jQuery||(e=p(e)),m.saveTinyMCE(),WPFormsUtils.triggerEvent(e,"wpformsBeforeFormSubmit",[e]).isDefaultPrevented()?m.restoreSubmitButton(e,e.closest(".wpforms-container")):e.hasClass("wpforms-ajax-form")&&"undefined"!=typeof FormData?m.formSubmitAjax(e):m.formSubmitNormal(e)},restoreSubmitButton(e,t){var r=e.find(".wpforms-submit"),a=r.data("submit-text");a&&r.text(a),r.prop("disabled",!1),WPFormsUtils.triggerEvent(e,"wpformsFormSubmitButtonRestore",[e,r]),t.removeClass("wpforms-loading"),e.find(".wpforms-submit-spinner").hide()},formSubmitNormal(e){var t,r;e.length&&(r=(t=e.find(".wpforms-submit")).get(0).recaptchaID,m.empty(r)&&0!==r||(t.get(0).recaptchaID=!1),e.append('<input type="hidden" name="start_timestamp" value="'+m.getStartTimestampData(e)+'">'),e.append('<input type="hidden" name="end_timestamp" value="'+m.getTimestampSec()+'">'),e.get(0).submit())},formHasCaptcha(e){return!(!e||!e.length||"undefined"==typeof hcaptcha&&"undefined"==typeof grecaptcha&&"undefined"==typeof turnstile)&&(e=e.find(".wpforms-recaptcha-container"),Boolean(e.length))},resetFormRecaptcha(r){if(m.formHasCaptcha(r)){var a=r.find(".wpforms-recaptcha-container");let e,t;e=a.hasClass("wpforms-is-hcaptcha")?hcaptcha:a.hasClass("wpforms-is-turnstile")?turnstile:grecaptcha,t=r.find(".wpforms-submit").get(0).recaptchaID,m.empty(t)&&0!==t&&(a=r.find(".g-recaptcha, .h-captcha, .wpforms-turnstile")).length&&(t=a.data("recaptcha-id")),m.empty(t)&&0!==t||e.reset(t)}},consoleLogAjaxError(e){e?console.error("WPForms AJAX submit error:\n%s",e):console.error("WPForms AJAX submit error")},displayFormAjaxErrors(e,t){"string"==typeof t?m.displayFormAjaxGeneralErrors(e,t):(t=t&&"errors"in t?t.errors:null,m.empty(t)||m.empty(t.general)&&m.empty(t.field)?m.consoleLogAjaxError():(m.empty(t.general)||m.displayFormAjaxGeneralErrors(e,t.general),m.empty(t.field)||m.displayFormAjaxFieldErrors(e,t.field)))},displayFormAjaxGeneralErrors(e,t){var r,a;e&&e.length&&(m.empty(t)||(m.isModernMarkupEnabled()&&e.attr({"aria-invalid":"true","aria-errormessage":""}),"string"==typeof t?(a=m.isModernMarkupEnabled()?' role="alert"':"",r=m.isModernMarkupEnabled()?`<span class="wpforms-hidden">${wpforms_settings.formErrorMessagePrefix}</span>`:"",e.find(".wpforms-submit-container").before(`<div class="wpforms-error-container"${a}>${r}${t}</div>`),m.setCurrentPage(e,{})):(a=e.data("formid"),m.printGeneralErrors(e,t,a))))},printGeneralErrors(o,e,s){p.each(e,function(e,t){switch(e){case"header":case"header_styled":r=t,(a=o.find(".wpforms-page-indicator")).length?a.after(r):o.prepend(r);break;case"footer":case"footer_styled":a=t,0===o.find(".wpforms-page-indicator").length?o.find(".wpforms-submit-container").before(a):o.find(".wpforms-page-1").append(a);break;case"recaptcha":r=t,o.find(".wpforms-recaptcha-container").append(r)}var r,a,i;m.isModernMarkupEnabled()&&(i=o.attr("aria-errormessage")||"",o.attr("aria-errormessage",i+` wpforms-${s}-${e}-error`))}),o.find(".wpforms-error-container").length&&m.animateScrollTop(o.find(".wpforms-error-container").first().offset().top-100)},clearFormAjaxGeneralErrors(e){e.find(".wpforms-error-container").remove(),e.find("#wpforms-field_recaptcha-error").remove(),m.isModernMarkupEnabled()&&e.attr({"aria-invalid":"false","aria-errormessage":""})},displayFormAjaxFieldErrors(a,i){var e;a&&a.length&&(m.empty(i)||(e=a.data("validator"))&&(i=m.splitFieldErrors(i),p.each(i,function(e,t){var r=p('[name="'+e+'"]',a);r.length?r.attr("data-server-error",t):delete i[e]}),e.showErrors(i),m.formHasCaptcha(a)||e.focusInvalid()))},splitFieldErrors:o=>(p.each(o,function(i,e){"string"!=typeof e&&p.each(e,function(e,t){var r=i.split("[").pop().replace("]",""),a=i.replace("["+r+"]","");r===e?o[i]=t:"string"==typeof e&&e.match(/^r\d+$/)?(r=e.replace(/^r/,""),o[a+"["+r+"]"]=t):"string"==typeof e&&isNaN(e)&&(o[a+"["+e+"]"]=t)})}),o),formSubmitAjax:a=>{if(!a.length)return p.Deferred().reject();let r=a.closest(".wpforms-container"),e=a.find(".wpforms-submit-spinner"),i;r.addClass("wpforms-loading"),e.show(),m.clearFormAjaxGeneralErrors(a);var t=new FormData(a.get(0)),t=(t.append("action","wpforms_submit"),t.append("start_timestamp",m.getStartTimestampData(a)),t.append("end_timestamp",m.getTimestampSec()),{type:"post",dataType:"json",url:wpforms_settings.ajaxurl,data:t,cache:!1,contentType:!1,processData:!1});return t.success=function(e){var t;if(e)if(e.data&&e.data.action_required)a.trigger("wpformsAjaxSubmitActionRequired",e);else if(e.success){if(a.trigger("wpformsAjaxSubmitSuccess",e),e.data)return e.data.redirect_url?(t=e.data.new_tab||!1,a.trigger("wpformsAjaxSubmitBeforeRedirect",e),t?(d.open(e.data.redirect_url,"_blank"),void location.reload()):void(d.location=e.data.redirect_url)):void(e.data.confirmation&&(r.html(e.data.confirmation),i=r.find("div.wpforms-confirmation-scroll"),r.trigger("wpformsAjaxSubmitSuccessConfirmation",e),i.length)&&m.animateScrollTop(i.offset().top-100))}else m.resetFormRecaptcha(a),m.displayFormAjaxErrors(a,e.data),a.trigger("wpformsAjaxSubmitFailed",e),m.setCurrentPage(a,e.data);else m.consoleLogAjaxError()},t.error=function(e,t,r){m.consoleLogAjaxError(r),a.trigger("wpformsAjaxSubmitError",[e,t,r])},t.complete=function(e,t){e.responseJSON&&e.responseJSON.data&&(e.responseJSON.data.action_required||"success"===t&&e.responseJSON.data.redirect_url)||(m.restoreSubmitButton(a,r),a.trigger("wpformsAjaxSubmitCompleted",[e,t]))},WPFormsUtils.triggerEvent(a,"wpformsAjaxBeforeSubmit",[a]).isDefaultPrevented()?(m.restoreSubmitButton(a,r),p.Deferred().reject()):p.ajax(t)},setCurrentPage(a,i){if(0!==a.find(".wpforms-page-indicator").length){let r=[];if(a.find(".wpforms-page").each(function(e,t){if(1<=p(t).find(".wpforms-has-error").length)return r.push(p(t))}),0!==r.length||void 0===i.errors||void 0===i.errors.general||void 0!==i.errors.general.footer||void 0===i.errors.general.recaptcha){var o=0<r.length?r[0]:a.find(".wpforms-page-1");let e,t="prev";1===o.data("page")||void 0!==i.errors&&void 0!==i.errors.general.footer?e=a.find(".wpforms-page-1").next():(e=0!==o.next().length?o.next():o.prev(),t=0!==o.next().length?"prev":"next");i=e.find(".wpforms-page-next"),o=e.data("page");m.navigateToPage(i,t,o,a,p(".wpforms-page-"+o))}}},navigateToPaymentPage(t,r,a=""){if(0!==t.find(".wpforms-page-indicator").length){var r=r.closest(".wpforms-page"),i=0<r.find(".wpforms-error").length;if(!r.is(":visible")||!i)if(t.find(".wpforms-page-indicator").data("allow-page-navigation")){let e=r.data("page");!i&&a&&(a=t.find(a).first().closest(".wpforms-page"),e=a.data("page")||1),WPForms.PageNavigation.navigateToTargetPage(t,e),i&&m.checkForInvalidFields(t,r,function(){})}else m.setCurrentPage(t,{})}},animateScrollTop(e,t,r){return t=t||1e3,r="function"==typeof r?r:function(){},p(s.scrollingElement||"html").stop(!0).animate({scrollTop:parseInt(e,10)},{duration:t,complete:r}).promise()},saveTinyMCE(){"undefined"!=typeof tinyMCE&&tinyMCE.triggerSave()},isFunction(e){return!!(e&&e.constructor&&e.call&&e.apply)},compareTimesGreaterThan(e,t){e=e.replace(/(am|pm)/g," $1").toUpperCase(),t=t.replace(/(am|pm)/g," $1").toUpperCase();e=Date.parse("01 Jan 2021 "+e);return Date.parse("01 Jan 2021 "+t)<=e},isModernMarkupEnabled(){return!!wpforms_settings.isModernMarkupEnabled},initTokenUpdater(){p(".wpforms-form").on("focusin",function(e){var t=p(e.target.closest("form")),r=Date.now();this.needsTokenUpdate(r,t)&&this.updateToken(r,t,e)}.bind(this))},needsTokenUpdate(e,t){return e-1e3*(t.attr("data-token-time")||0)>=1e3*wpforms_settings.token_cache_lifetime&&!this.isUpdatingToken},updateToken(t,r,a){var e=r.data("formid");let i=r.find(".wpforms-submit");this.isUpdatingToken=!0,i.prop("disabled",!0),p.post(wpforms_settings.ajaxurl,{action:"wpforms_get_token",formId:e}).done(function(e){e.success?(r.attr("data-token-time",t),r.attr("data-token",e.data.token),i.prop("disabled",!1),a.target===i[0]&&i.trigger("click")):console.error("Failed to update token: ",e)}).fail(function(e,t,r){console.error("AJAX request failed: ",t,r)}).always(function(){this.isUpdatingToken=!1,i.prop("disabled",!1)}.bind(this))},restoreSubmitButtonOnEventPersisted(){d.onpageshow=function(e){e.persisted&&p(".wpforms-form").each(function(){var e=p(this);m.restoreSubmitButton(e,e.closest(".wpforms-container"))})}},loadValidationGroups(e){var t=e.closest(".wpforms-form").data("validator");t&&p.extend(t.groups,m.getDateTimeValidationGroups(e))},getDateTimeValidationGroups(e){let a={};return e.find(".wpforms-field.wpforms-field-date-time").each(function(){var e=p(this);if(e.find(".wpforms-field-date-dropdown-wrap").length){let r=e.attr("id").replace("-container","");p.each(["month","day","year"],function(e,t){t=p(`#${r}-`+t).attr("name");a[t]=r})}}),a},getTimestampSec(){return Math.floor(Date.now()/1e3)},lockField(e){var t=e.data("field-type");(wpforms_settings.readOnlyDisallowedFields??[]).includes(t)||(e.addClass(a).find("input, textarea, select:not(.wpforms-field-select-style-modern)").prop("readonly",!0).attr("tabindex","-1"),e.hasClass("wpforms-field-select-style-modern")?((t=e.find("select")).data("choicesjs")?.disable(),t.removeAttr("disabled")):e.hasClass("wpforms-field-richtext")&&d.WPFormsRichTextField?.lockField(e))},unlockField(e){e.removeClass(a).find("input, textarea, select:not(.wpforms-field-select-style-modern)").prop("readonly",!1).attr("tabindex",null),e.hasClass("wpforms-field-select-style-modern")?e.find("select").data("choicesjs")?.enable():e.hasClass("wpforms-field-richtext")&&d.WPFormsRichTextField?.unlockField(e)},readOnlyFieldsInit(){p(".wpforms-field."+a).each(function(){m.lockField(p(this))})},field:{lock(e,t){m.lockField(p(`#wpforms-${e}-field_${t}-container`))},unlock(e,t){m.unlockField(p(`#wpforms-${e}-field_${t}-container`))},toggle(e,t,r="auto"){e=p(`#wpforms-${e}-field_${t}-container`),t=e.hasClass(a);("auto"===r?!t:r)?m.lockField(e):m.unlockField(e)},isLocked(e,t){return p(`#wpforms-${e}-field_${t}-container`).hasClass(a)},lockAll(e){p(`#wpforms-${e} .wpforms-field`).each(function(){m.lockField(p(this))})},unlockAll(e){p("#wpforms-"+e).find(".wpforms-field").each(function(){m.unlockField(p(this))})}}};return m})(document,window,jQuery);wpforms.init();
window.WPForms=window.WPForms||{},((e,r)=>{let t={noStateCountries:[],init(){r(e).on("load",t.onLoad),r(document).on("wpformsRepeaterFieldCloneCreated",t.setChangeHandlers)},onLoad(){t.noStateCountries=wpforms_settings?.address_field?.list_countries_without_states||[],t.noStateCountries.length&&t.setChangeHandlers()},setChangeHandlers(){r(".wpforms-field-address").each(function(){var e=r(this).find("select.wpforms-field-address-country");e.length&&(t.handleCountryChange(e),e.off("change").on("change",function(){t.handleCountryChange(this)}))})},handleCountryChange(e){var e=r(e),s=e.closest(".wpforms-field").find(".wpforms-field-address-state"),d=s.closest(".wpforms-field-row");d.length&&(e=e.val(),t.handleStateInput(s,d,e))},handleStateInput(e,s,d){t.noStateCountries.includes(d)?(e.val("").prop("disabled",!0).prop("required",!1).on("change",function(){r(this).val("")}),s.addClass("wpforms-without-state")):(e.prop("disabled",!1).prop("required",s.find(".wpforms-first input").prop("required")).off("change"),s.removeClass("wpforms-without-state"))}},d={requiredAddressFields:["addressLine1","adminArea2","countryCode","postalCode"],getFieldValue(e){var s,d;return e.hasClass("wpforms-field-address")?(s=e.data("field-id"),e=e.closest(".wpforms-form").data("formid"),d=r(`#wpforms-${e}-field_${s}-country`),{addressLine1:r(`#wpforms-${e}-field_`+s).val(),addressLine2:r(`#wpforms-${e}-field_${s}-address2`).val(),adminArea2:r(`#wpforms-${e}-field_${s}-city`).val(),adminArea1:r(`#wpforms-${e}-field_${s}-state`).val(),countryCode:d.length?d.val():"US",postalCode:r(`#wpforms-${e}-field_${s}-postal`).val()}):{}},isValidAddress(e){let s=e||{};return!(!d.requiredAddressFields.every(e=>!!s?.[e])||(e=s.countryCode||"")&&!t.noStateCountries.includes(e)&&!s.adminArea1)}};t.init(),e.WPForms.Address=d})(window,jQuery);