PageSourceSearch

https://middlesexcollege.edu/about/wp-content/themes/middlesex-college/assets/js/bundle.js

js middlesexcollege.edu collected 2026-10-01 15:25:49 UTC 285,632 bytes, 6,012 lines download raw bytes

vendor: 3,619 bytes, lines 1-88
1/******/ (function(modules) { // webpackBootstrap
2/******/ 	// The module cache
3/******/ 	var installedModules = {};
4/******/
5/******/ 	// The require function
6/******/ 	function __webpack_require__(moduleId) {
7/******/
8/******/ 		// Check if module is in cache
9/******/ 		if(installedModules[moduleId]) {
10/******/ 			return installedModules[moduleId].exports;
11/******/ 		}
12/******/ 		// Create a new module (and put it into the cache)
13/******/ 		var module = installedModules[moduleId] = {
14/******/ 			i: moduleId,
15/******/ 			l: false,
16/******/ 			exports: {}
17/******/ 		};
18/******/
19/******/ 		// Execute the module function
20/******/ 		modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
21/******/
22/******/ 		// Flag the module as loaded
23/******/ 		module.l = true;
24/******/
25/******/ 		// Return the exports of the module
26/******/ 		return module.exports;
27/******/ 	}
28/******/
29/******/
30/******/ 	// expose the modules object (__webpack_modules__)
31/******/ 	__webpack_require__.m = modules;
32/******/
33/******/ 	// expose the module cache
34/******/ 	__webpack_require__.c = installedModules;
35/******/
36/******/ 	// define getter function for harmony exports
37/******/ 	__webpack_require__.d = function(exports, name, getter) {
38/******/ 		if(!__webpack_require__.o(exports, name)) {
39/******/ 			Object.defineProperty(exports, name, { enumerable: true, get: getter });
40/******/ 		}
41/******/ 	};
42/******/
43/******/ 	// define __esModule on exports
44/******/ 	__webpack_require__.r = function(exports) {
45/******/ 		if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
46/******/ 			Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
47/******/ 		}
48/******/ 		Object.defineProperty(exports, '__esModule', { value: true });
49/******/ 	};
50/******/
51/******/ 	// create a fake namespace object
52/******/ 	// mode & 1: value is a module id, require it
53/******/ 	// mode & 2: merge all properties of value into the ns
54/******/ 	// mode & 4: return value when already ns object
55/******/ 	// mode & 8|1: behave like require
56/******/ 	__webpack_require__.t = function(value, mode) {
57/******/ 		if(mode & 1) value = __webpack_require__(value);
58/******/ 		if(mode & 8) return value;
59/******/ 		if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;
60/******/ 		var ns = Object.create(null);
61/******/ 		__webpack_require__.r(ns);
62/******/ 		Object.defineProperty(ns, 'default', { enumerable: true, value: value });
63/******/ 		if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));
64/******/ 		return ns;
65/******/ 	};
66/******/
67/******/ 	// getDefaultExport function for compatibility with non-harmony modules
68/******/ 	__webpack_require__.n = function(module) {
69/******/ 		var getter = module && module.__esModule ?
70/******/ 			function getDefault() { return module['default']; } :
71/******/ 			function getModuleExports() { return module; };
72/******/ 		__webpack_require__.d(getter, 'a', getter);
73/******/ 		return getter;
74/******/ 	};
75/******/
76/******/ 	// Object.prototype.hasOwnProperty.call
77/******/ 	__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
78/******/
79/******/ 	// __webpack_public_path__
80/******/ 	__webpack_require__.p = "";
81/******/
82/******/
83/******/ 	// Load entry module and return exports
84/******/ 	return __webpack_require__(__webpack_require__.s = "../src/assets/js/main.js");
85/******/ })
86/************************************************************************/
87/******/ ({
88
vendor: 3,478 bytes, lines 89-103
89/***/ "../node_modules/jquery-nice-select/js/jquery.nice-select.min.js":
90/*!***********************************************************************!*\
91  !*** ../node_modules/jquery-nice-select/js/jquery.nice-select.min.js ***!
92  \***********************************************************************/
93/*! no static exports found */
94/***/ (function(module, exports, __webpack_require__) {
95
96/* WEBPACK VAR INJECTION */(function(jQuery) {/*  jQuery Nice Select - v1.0
97    https://github.com/hernansartorio/jquery-nice-select
98    Made by Hernán Sartorio  */
99!function(e){e.fn.niceSelect=function(t){function s(t){t.after(e("<div></div>").addClass("nice-select").addClass(t.attr("class")||"").addClass(t.attr("disabled")?"disabled":"").attr("tabindex",t.attr("disabled")?null:"0").html('<span class="current"></span><ul class="list"></ul>'));var s=t.next(),n=t.find("option"),i=t.find("option:selected");s.find(".current").html(i.data("display")||i.text()),n.each(function(t){var n=e(this),i=n.data("display");s.find("ul").append(e("<li></li>").attr("data-value",n.val()).attr("data-display",i||null).addClass("option"+(n.is(":selected")?" selected":"")+(n.is(":disabled")?" disabled":"")).html(n.text()))})}if("string"==typeof t)return"update"==t?this.each(function(){var t=e(this),n=e(this).next(".nice-select"),i=n.hasClass("open");n.length&&(n.remove(),s(t),i&&t.next().trigger("click"))}):"destroy"==t?(this.each(function(){var t=e(this),s=e(this).next(".nice-select");s.length&&(s.remove(),t.css("display",""))}),0==e(".nice-select").length&&e(document).off(".nice_select")):console.log('Method "'+t+'" does not exist.'),this;this.hide(),this.each(function(){var t=e(this);t.next().hasClass("nice-select")||s(t)}),e(document).off(".nice_select"),e(document).on("click.nice_select",".nice-select",function(t){var s=e(this);e(".nice-select").not(s).removeClass("open"),s.toggleClass("open"),s.hasClass("open")?(s.find(".option"),s.find(".focus").removeClass("focus"),s.find(".selected").addClass("focus")):s.focus()}),e(document).on("click.nice_select",function(t){0===e(t.target).closest(".nice-select").length&&e(".nice-select").removeClass("open").find(".option")}),e(document).on("click.nice_select",".nice-select .option:not(.disabled)",function(t){var s=e(this),n=s.closest(".nice-select");n.find(".selected").removeClass("selected"),s.addClass("selected");var i=s.data("display")||s.text();n.find(".current").text(i),n.prev("select").val(s.data("value")).trigger("change")}),e(document).on("keydown.nice_select",".nice-select",function(t){var s=e(this),n=e(s.find(".focus")||s.find(".list .option.selected"));if(32==t.keyCode||13==t.keyCode)return s.hasClass("open")?n.trigger("click"):s.trigger("click"),!1;if(40==t.keyCode){if(s.hasClass("open")){var i=n.nextAll(".option:not(.disabled)").first();i.length>0&&(s.find(".focus").removeClass("focus"),i.addClass("focus"))}else s.trigger("click");return!1}if(38==t.keyCode){if(s.hasClass("open")){var l=n.prevAll(".option:not(.disabled)").first();l.length>0&&(s.find(".focus").removeClass("focus"),l.addClass("focus"))}else s.trigger("click");return!1}if(27==t.keyCode)s.hasClass("open")&&s.trigger("click");else if(9==t.keyCode&&s.hasClass("open"))return!1});var n=document.createElement("a").style;return n.cssText="pointer-events:auto","auto"!==n.pointerEvents&&e("html").addClass("no-csspointerevents"),this}}(jQuery);
100/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! jquery */ "jquery")))
101
102/***/ }),
103
vendor: 42,427 bytes, lines 104-1970
104/***/ "../node_modules/magnific-popup/dist/jquery.magnific-popup.js":
105/*!********************************************************************!*\
106  !*** ../node_modules/magnific-popup/dist/jquery.magnific-popup.js ***!
107  \********************************************************************/
108/*! no static exports found */
109/***/ (function(module, exports, __webpack_require__) {
110
111var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*! Magnific Popup - v1.1.0 - 2016-02-20
112* http://dimsemenov.com/plugins/magnific-popup/
113* Copyright (c) 2016 Dmitry Semenov; */
114;(function (factory) { 
115if (true) { 
116 // AMD. Register as an anonymous module. 
117 !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! jquery */ "jquery")], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory),
118				__WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ?
119				(__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__),
120				__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)); 
121 } else {} 
122 }(function($) { 
123
124/*>>core*/
125/**
126 * 
127 * Magnific Popup Core JS file
128 * 
129 */
130
131
132/**
133 * Private static constants
134 */
135var CLOSE_EVENT = 'Close',
136	BEFORE_CLOSE_EVENT = 'BeforeClose',
137	AFTER_CLOSE_EVENT = 'AfterClose',
138	BEFORE_APPEND_EVENT = 'BeforeAppend',
139	MARKUP_PARSE_EVENT = 'MarkupParse',
140	OPEN_EVENT = 'Open',
141	CHANGE_EVENT = 'Change',
142	NS = 'mfp',
143	EVENT_NS = '.' + NS,
144	READY_CLASS = 'mfp-ready',
145	REMOVING_CLASS = 'mfp-removing',
146	PREVENT_CLOSE_CLASS = 'mfp-prevent-close';
147
148
149/**
150 * Private vars 
151 */
152/*jshint -W079 */
153var mfp, // As we have only one instance of MagnificPopup object, we define it locally to not to use 'this'
154	MagnificPopup = function(){},
155	_isJQ = !!(window.jQuery),
156	_prevStatus,
157	_window = $(window),
158	_document,
159	_prevContentType,
160	_wrapClasses,
161	_currPopupType;
162
163
164/**
165 * Private functions
166 */
167var _mfpOn = function(name, f) {
168		mfp.ev.on(NS + name + EVENT_NS, f);
169	},
170	_getEl = function(className, appendTo, html, raw) {
171		var el = document.createElement('div');
172		el.className = 'mfp-'+className;
173		if(html) {
174			el.innerHTML = html;
175		}
176		if(!raw) {
177			el = $(el);
178			if(appendTo) {
179				el.appendTo(appendTo);
180			}
181		} else if(appendTo) {
182			appendTo.appendChild(el);
183		}
184		return el;
185	},
186	_mfpTrigger = function(e, data) {
187		mfp.ev.triggerHandler(NS + e, data);
188
189		if(mfp.st.callbacks) {
190			// converts "mfpEventName" to "eventName" callback and triggers it if it's present
191			e = e.charAt(0).toLowerCase() + e.slice(1);
192			if(mfp.st.callbacks[e]) {
193				mfp.st.callbacks[e].apply(mfp, $.isArray(data) ? data : [data]);
194			}
195		}
196	},
197	_getCloseBtn = function(type) {
198		if(type !== _currPopupType || !mfp.currTemplate.closeBtn) {
199			mfp.currTemplate.closeBtn = $( mfp.st.closeMarkup.replace('%title%', mfp.st.tClose ) );
200			_currPopupType = type;
201		}
202		return mfp.currTemplate.closeBtn;
203	},
204	// Initialize Magnific Popup only when called at least once
205	_checkInstance = function() {
206		if(!$.magnificPopup.instance) {
207			/*jshint -W020 */
208			mfp = new MagnificPopup();
209			mfp.init();
210			$.magnificPopup.instance = mfp;
211		}
212	},
213	// CSS transition detection, http://stackoverflow.com/questions/7264899/detect-css-transitions-using-javascript-and-without-modernizr
214	supportsTransitions = function() {
215		var s = document.createElement('p').style, // 's' for style. better to create an element if body yet to exist
216			v = ['ms','O','Moz','Webkit']; // 'v' for vendor
217
218		if( s['transition'] !== undefined ) {
219			return true; 
220		}
221			
222		while( v.length ) {
223			if( v.pop() + 'Transition' in s ) {
224				return true;
225			}
226		}
227				
228		return false;
229	};
230
231
232
233/**
234 * Public functions
235 */
236MagnificPopup.prototype = {
237
238	constructor: MagnificPopup,
239
240	/**
241	 * Initializes Magnific Popup plugin. 
242	 * This function is triggered only once when $.fn.magnificPopup or $.magnificPopup is executed
243	 */
244	init: function() {
245		var appVersion = navigator.appVersion;
246		mfp.isLowIE = mfp.isIE8 = document.all && !document.addEventListener;
247		mfp.isAndroid = (/android/gi).test(appVersion);
248		mfp.isIOS = (/iphone|ipad|ipod/gi).test(appVersion);
249		mfp.supportsTransition = supportsTransitions();
250
251		// We disable fixed positioned lightbox on devices that don't handle it nicely.
252		// If you know a better way of detecting this - let me know.
253		mfp.probablyMobile = (mfp.isAndroid || mfp.isIOS || /(Opera Mini)|Kindle|webOS|BlackBerry|(Opera Mobi)|(Windows Phone)|IEMobile/i.test(navigator.userAgent) );
254		_document = $(document);
255
256		mfp.popupsCache = {};
257	},
258
259	/**
260	 * Opens popup
261	 * @param  data [description]
262	 */
263	open: function(data) {
264
265		var i;
266
267		if(data.isObj === false) { 
268			// convert jQuery collection to array to avoid conflicts later
269			mfp.items = data.items.toArray();
270
271			mfp.index = 0;
272			var items = data.items,
273				item;
274			for(i = 0; i < items.length; i++) {
275				item = items[i];
276				if(item.parsed) {
277					item = item.el[0];
278				}
279				if(item === data.el[0]) {
280					mfp.index = i;
281					break;
282				}
283			}
284		} else {
285			mfp.items = $.isArray(data.items) ? data.items : [data.items];
286			mfp.index = data.index || 0;
287		}
288
289		// if popup is already opened - we just update the content
290		if(mfp.isOpen) {
291			mfp.updateItemHTML();
292			return;
293		}
294		
295		mfp.types = []; 
296		_wrapClasses = '';
297		if(data.mainEl && data.mainEl.length) {
298			mfp.ev = data.mainEl.eq(0);
299		} else {
300			mfp.ev = _document;
301		}
302
303		if(data.key) {
304			if(!mfp.popupsCache[data.key]) {
305				mfp.popupsCache[data.key] = {};
306			}
307			mfp.currTemplate = mfp.popupsCache[data.key];
308		} else {
309			mfp.currTemplate = {};
310		}
311
312
313
314		mfp.st = $.extend(true, {}, $.magnificPopup.defaults, data ); 
315		mfp.fixedContentPos = mfp.st.fixedContentPos === 'auto' ? !mfp.probablyMobile : mfp.st.fixedContentPos;
316
317		if(mfp.st.modal) {
318			mfp.st.closeOnContentClick = false;
319			mfp.st.closeOnBgClick = false;
320			mfp.st.showCloseBtn = false;
321			mfp.st.enableEscapeKey = false;
322		}
323		
324
325		// Building markup
326		// main containers are created only once
327		if(!mfp.bgOverlay) {
328
329			// Dark overlay
330			mfp.bgOverlay = _getEl('bg').on('click'+EVENT_NS, function() {
331				mfp.close();
332			});
333
334			mfp.wrap = _getEl('wrap').attr('tabindex', -1).on('click'+EVENT_NS, function(e) {
335				if(mfp._checkIfClose(e.target)) {
336					mfp.close();
337				}
338			});
339
340			mfp.container = _getEl('container', mfp.wrap);
341		}
342
343		mfp.contentContainer = _getEl('content');
344		if(mfp.st.preloader) {
345			mfp.preloader = _getEl('preloader', mfp.container, mfp.st.tLoading);
346		}
347
348
349		// Initializing modules
350		var modules = $.magnificPopup.modules;
351		for(i = 0; i < modules.length; i++) {
352			var n = modules[i];
353			n = n.charAt(0).toUpperCase() + n.slice(1);
354			mfp['init'+n].call(mfp);
355		}
356		_mfpTrigger('BeforeOpen');
357
358
359		if(mfp.st.showCloseBtn) {
360			// Close button
361			if(!mfp.st.closeBtnInside) {
362				mfp.wrap.append( _getCloseBtn() );
363			} else {
364				_mfpOn(MARKUP_PARSE_EVENT, function(e, template, values, item) {
365					values.close_replaceWith = _getCloseBtn(item.type);
366				});
367				_wrapClasses += ' mfp-close-btn-in';
368			}
369		}
370
371		if(mfp.st.alignTop) {
372			_wrapClasses += ' mfp-align-top';
373		}
374
375	
376
377		if(mfp.fixedContentPos) {
378			mfp.wrap.css({
379				overflow: mfp.st.overflowY,
380				overflowX: 'hidden',
381				overflowY: mfp.st.overflowY
382			});
383		} else {
384			mfp.wrap.css({ 
385				top: _window.scrollTop(),
386				position: 'absolute'
387			});
388		}
389		if( mfp.st.fixedBgPos === false || (mfp.st.fixedBgPos === 'auto' && !mfp.fixedContentPos) ) {
390			mfp.bgOverlay.css({
391				height: _document.height(),
392				position: 'absolute'
393			});
394		}
395
396		
397
398		if(mfp.st.enableEscapeKey) {
399			// Close on ESC key
400			_document.on('keyup' + EVENT_NS, function(e) {
401				if(e.keyCode === 27) {
402					mfp.close();
403				}
404			});
405		}
406
407		_window.on('resize' + EVENT_NS, function() {
408			mfp.updateSize();
409		});
410
411
412		if(!mfp.st.closeOnContentClick) {
413			_wrapClasses += ' mfp-auto-cursor';
414		}
415		
416		if(_wrapClasses)
417			mfp.wrap.addClass(_wrapClasses);
418
419
420		// this triggers recalculation of layout, so we get it once to not to trigger twice
421		var windowHeight = mfp.wH = _window.height();
422
423		
424		var windowStyles = {};
425
426		if( mfp.fixedContentPos ) {
427            if(mfp._hasScrollBar(windowHeight)){
428                var s = mfp._getScrollbarSize();
429                if(s) {
430                    windowStyles.marginRight = s;
431                }
432            }
433        }
434
435		if(mfp.fixedContentPos) {
436			if(!mfp.isIE7) {
437				windowStyles.overflow = 'hidden';
438			} else {
439				// ie7 double-scroll bug
440				$('body, html').css('overflow', 'hidden');
441			}
442		}
443
444		
445		
446		var classesToadd = mfp.st.mainClass;
447		if(mfp.isIE7) {
448			classesToadd += ' mfp-ie7';
449		}
450		if(classesToadd) {
451			mfp._addClassToMFP( classesToadd );
452		}
453
454		// add content
455		mfp.updateItemHTML();
456
457		_mfpTrigger('BuildControls');
458
459		// remove scrollbar, add margin e.t.c
460		$('html').css(windowStyles);
461		
462		// add everything to DOM
463		mfp.bgOverlay.add(mfp.wrap).prependTo( mfp.st.prependTo || $(document.body) );
464
465		// Save last focused element
466		mfp._lastFocusedEl = document.activeElement;
467		
468		// Wait for next cycle to allow CSS transition
469		setTimeout(function() {
470			
471			if(mfp.content) {
472				mfp._addClassToMFP(READY_CLASS);
473				mfp._setFocus();
474			} else {
475				// if content is not defined (not loaded e.t.c) we add class only for BG
476				mfp.bgOverlay.addClass(READY_CLASS);
477			}
478			
479			// Trap the focus in popup
480			_document.on('focusin' + EVENT_NS, mfp._onFocusIn);
481
482		}, 16);
483
484		mfp.isOpen = true;
485		mfp.updateSize(windowHeight);
486		_mfpTrigger(OPEN_EVENT);
487
488		return data;
489	},
490
491	/**
492	 * Closes the popup
493	 */
494	close: function() {
495		if(!mfp.isOpen) return;
496		_mfpTrigger(BEFORE_CLOSE_EVENT);
497
498		mfp.isOpen = false;
499		// for CSS3 animation
500		if(mfp.st.removalDelay && !mfp.isLowIE && mfp.supportsTransition )  {
501			mfp._addClassToMFP(REMOVING_CLASS);
502			setTimeout(function() {
503				mfp._close();
504			}, mfp.st.removalDelay);
505		} else {
506			mfp._close();
507		}
508	},
509
510	/**
511	 * Helper for close() function
512	 */
513	_close: function() {
514		_mfpTrigger(CLOSE_EVENT);
515
516		var classesToRemove = REMOVING_CLASS + ' ' + READY_CLASS + ' ';
517
518		mfp.bgOverlay.detach();
519		mfp.wrap.detach();
520		mfp.container.empty();
521
522		if(mfp.st.mainClass) {
523			classesToRemove += mfp.st.mainClass + ' ';
524		}
525
526		mfp._removeClassFromMFP(classesToRemove);
527
528		if(mfp.fixedContentPos) {
529			var windowStyles = {marginRight: ''};
530			if(mfp.isIE7) {
531				$('body, html').css('overflow', '');
532			} else {
533				windowStyles.overflow = '';
534			}
535			$('html').css(windowStyles);
536		}
537		
538		_document.off('keyup' + EVENT_NS + ' focusin' + EVENT_NS);
539		mfp.ev.off(EVENT_NS);
540
541		// clean up DOM elements that aren't removed
542		mfp.wrap.attr('class', 'mfp-wrap').removeAttr('style');
543		mfp.bgOverlay.attr('class', 'mfp-bg');
544		mfp.container.attr('class', 'mfp-container');
545
546		// remove close button from target element
547		if(mfp.st.showCloseBtn &&
548		(!mfp.st.closeBtnInside || mfp.currTemplate[mfp.currItem.type] === true)) {
549			if(mfp.currTemplate.closeBtn)
550				mfp.currTemplate.closeBtn.detach();
551		}
552
553
554		if(mfp.st.autoFocusLast && mfp._lastFocusedEl) {
555			$(mfp._lastFocusedEl).focus(); // put tab focus back
556		}
557		mfp.currItem = null;	
558		mfp.content = null;
559		mfp.currTemplate = null;
560		mfp.prevHeight = 0;
561
562		_mfpTrigger(AFTER_CLOSE_EVENT);
563	},
564	
565	updateSize: function(winHeight) {
566
567		if(mfp.isIOS) {
568			// fixes iOS nav bars https://github.com/dimsemenov/Magnific-Popup/issues/2
569			var zoomLevel = document.documentElement.clientWidth / window.innerWidth;
570			var height = window.innerHeight * zoomLevel;
571			mfp.wrap.css('height', height);
572			mfp.wH = height;
573		} else {
574			mfp.wH = winHeight || _window.height();
575		}
576		// Fixes #84: popup incorrectly positioned with position:relative on body
577		if(!mfp.fixedContentPos) {
578			mfp.wrap.css('height', mfp.wH);
579		}
580
581		_mfpTrigger('Resize');
582
583	},
584
585	/**
586	 * Set content of popup based on current index
587	 */
588	updateItemHTML: function() {
589		var item = mfp.items[mfp.index];
590
591		// Detach and perform modifications
592		mfp.contentContainer.detach();
593
594		if(mfp.content)
595			mfp.content.detach();
596
597		if(!item.parsed) {
598			item = mfp.parseEl( mfp.index );
599		}
600
601		var type = item.type;
602
603		_mfpTrigger('BeforeChange', [mfp.currItem ? mfp.currItem.type : '', type]);
604		// BeforeChange event works like so:
605		// _mfpOn('BeforeChange', function(e, prevType, newType) { });
606
607		mfp.currItem = item;
608
609		if(!mfp.currTemplate[type]) {
610			var markup = mfp.st[type] ? mfp.st[type].markup : false;
611
612			// allows to modify markup
613			_mfpTrigger('FirstMarkupParse', markup);
614
615			if(markup) {
616				mfp.currTemplate[type] = $(markup);
617			} else {
618				// if there is no markup found we just define that template is parsed
619				mfp.currTemplate[type] = true;
620			}
621		}
622
623		if(_prevContentType && _prevContentType !== item.type) {
624			mfp.container.removeClass('mfp-'+_prevContentType+'-holder');
625		}
626
627		var newContent = mfp['get' + type.charAt(0).toUpperCase() + type.slice(1)](item, mfp.currTemplate[type]);
628		mfp.appendContent(newContent, type);
629
630		item.preloaded = true;
631
632		_mfpTrigger(CHANGE_EVENT, item);
633		_prevContentType = item.type;
634
635		// Append container back after its content changed
636		mfp.container.prepend(mfp.contentContainer);
637
638		_mfpTrigger('AfterChange');
639	},
640
641
642	/**
643	 * Set HTML content of popup
644	 */
645	appendContent: function(newContent, type) {
646		mfp.content = newContent;
647
648		if(newContent) {
649			if(mfp.st.showCloseBtn && mfp.st.closeBtnInside &&
650				mfp.currTemplate[type] === true) {
651				// if there is no markup, we just append close button element inside
652				if(!mfp.content.find('.mfp-close').length) {
653					mfp.content.append(_getCloseBtn());
654				}
655			} else {
656				mfp.content = newContent;
657			}
658		} else {
659			mfp.content = '';
660		}
661
662		_mfpTrigger(BEFORE_APPEND_EVENT);
663		mfp.container.addClass('mfp-'+type+'-holder');
664
665		mfp.contentContainer.append(mfp.content);
666	},
667
668
669	/**
670	 * Creates Magnific Popup data object based on given data
671	 * @param  {int} index Index of item to parse
672	 */
673	parseEl: function(index) {
674		var item = mfp.items[index],
675			type;
676
677		if(item.tagName) {
678			item = { el: $(item) };
679		} else {
680			type = item.type;
681			item = { data: item, src: item.src };
682		}
683
684		if(item.el) {
685			var types = mfp.types;
686
687			// check for 'mfp-TYPE' class
688			for(var i = 0; i < types.length; i++) {
689				if( item.el.hasClass('mfp-'+types[i]) ) {
690					type = types[i];
691					break;
692				}
693			}
694
695			item.src = item.el.attr('data-mfp-src');
696			if(!item.src) {
697				item.src = item.el.attr('href');
698			}
699		}
700
701		item.type = type || mfp.st.type || 'inline';
702		item.index = index;
703		item.parsed = true;
704		mfp.items[index] = item;
705		_mfpTrigger('ElementParse', item);
706
707		return mfp.items[index];
708	},
709
710
711	/**
712	 * Initializes single popup or a group of popups
713	 */
714	addGroup: function(el, options) {
715		var eHandler = function(e) {
716			e.mfpEl = this;
717			mfp._openClick(e, el, options);
718		};
719
720		if(!options) {
721			options = {};
722		}
723
724		var eName = 'click.magnificPopup';
725		options.mainEl = el;
726
727		if(options.items) {
728			options.isObj = true;
729			el.off(eName).on(eName, eHandler);
730		} else {
731			options.isObj = false;
732			if(options.delegate) {
733				el.off(eName).on(eName, options.delegate , eHandler);
734			} else {
735				options.items = el;
736				el.off(eName).on(eName, eHandler);
737			}
738		}
739	},
740	_openClick: function(e, el, options) {
741		var midClick = options.midClick !== undefined ? options.midClick : $.magnificPopup.defaults.midClick;
742
743
744		if(!midClick && ( e.which === 2 || e.ctrlKey || e.metaKey || e.altKey || e.shiftKey ) ) {
745			return;
746		}
747
748		var disableOn = options.disableOn !== undefined ? options.disableOn : $.magnificPopup.defaults.disableOn;
749
750		if(disableOn) {
751			if($.isFunction(disableOn)) {
752				if( !disableOn.call(mfp) ) {
753					return true;
754				}
755			} else { // else it's number
756				if( _window.width() < disableOn ) {
757					return true;
758				}
759			}
760		}
761
762		if(e.type) {
763			e.preventDefault();
764
765			// This will prevent popup from closing if element is inside and popup is already opened
766			if(mfp.isOpen) {
767				e.stopPropagation();
768			}
769		}
770
771		options.el = $(e.mfpEl);
772		if(options.delegate) {
773			options.items = el.find(options.delegate);
774		}
775		mfp.open(options);
776	},
777
778
779	/**
780	 * Updates text on preloader
781	 */
782	updateStatus: function(status, text) {
783
784		if(mfp.preloader) {
785			if(_prevStatus !== status) {
786				mfp.container.removeClass('mfp-s-'+_prevStatus);
787			}
788
789			if(!text && status === 'loading') {
790				text = mfp.st.tLoading;
791			}
792
793			var data = {
794				status: status,
795				text: text
796			};
797			// allows to modify status
798			_mfpTrigger('UpdateStatus', data);
799
800			status = data.status;
801			text = data.text;
802
803			mfp.preloader.html(text);
804
805			mfp.preloader.find('a').on('click', function(e) {
806				e.stopImmediatePropagation();
807			});
808
809			mfp.container.addClass('mfp-s-'+status);
810			_prevStatus = status;
811		}
812	},
813
814
815	/*
816		"Private" helpers that aren't private at all
817	 */
818	// Check to close popup or not
819	// "target" is an element that was clicked
820	_checkIfClose: function(target) {
821
822		if($(target).hasClass(PREVENT_CLOSE_CLASS)) {
823			return;
824		}
825
826		var closeOnContent = mfp.st.closeOnContentClick;
827		var closeOnBg = mfp.st.closeOnBgClick;
828
829		if(closeOnContent && closeOnBg) {
830			return true;
831		} else {
832
833			// We close the popup if click is on close button or on preloader. Or if there is no content.
834			if(!mfp.content || $(target).hasClass('mfp-close') || (mfp.preloader && target === mfp.preloader[0]) ) {
835				return true;
836			}
837
838			// if click is outside the content
839			if(  (target !== mfp.content[0] && !$.contains(mfp.content[0], target))  ) {
840				if(closeOnBg) {
841					// last check, if the clicked element is in DOM, (in case it's removed onclick)
842					if( $.contains(document, target) ) {
843						return true;
844					}
845				}
846			} else if(closeOnContent) {
847				return true;
848			}
849
850		}
851		return false;
852	},
853	_addClassToMFP: function(cName) {
854		mfp.bgOverlay.addClass(cName);
855		mfp.wrap.addClass(cName);
856	},
857	_removeClassFromMFP: function(cName) {
858		this.bgOverlay.removeClass(cName);
859		mfp.wrap.removeClass(cName);
860	},
861	_hasScrollBar: function(winHeight) {
862		return (  (mfp.isIE7 ? _document.height() : document.body.scrollHeight) > (winHeight || _window.height()) );
863	},
864	_setFocus: function() {
865		(mfp.st.focus ? mfp.content.find(mfp.st.focus).eq(0) : mfp.wrap).focus();
866	},
867	_onFocusIn: function(e) {
868		if( e.target !== mfp.wrap[0] && !$.contains(mfp.wrap[0], e.target) ) {
869			mfp._setFocus();
870			return false;
871		}
872	},
873	_parseMarkup: function(template, values, item) {
874		var arr;
875		if(item.data) {
876			values = $.extend(item.data, values);
877		}
878		_mfpTrigger(MARKUP_PARSE_EVENT, [template, values, item] );
879
880		$.each(values, function(key, value) {
881			if(value === undefined || value === false) {
882				return true;
883			}
884			arr = key.split('_');
885			if(arr.length > 1) {
886				var el = template.find(EVENT_NS + '-'+arr[0]);
887
888				if(el.length > 0) {
889					var attr = arr[1];
890					if(attr === 'replaceWith') {
891						if(el[0] !== value[0]) {
892							el.replaceWith(value);
893						}
894					} else if(attr === 'img') {
895						if(el.is('img')) {
896							el.attr('src', value);
897						} else {
898							el.replaceWith( $('<img>').attr('src', value).attr('class', el.attr('class')) );
899						}
900					} else {
901						el.attr(arr[1], value);
902					}
903				}
904
905			} else {
906				template.find(EVENT_NS + '-'+key).html(value);
907			}
908		});
909	},
910
911	_getScrollbarSize: function() {
912		// thx David
913		if(mfp.scrollbarSize === undefined) {
914			var scrollDiv = document.createElement("div");
915			scrollDiv.style.cssText = 'width: 99px; height: 99px; overflow: scroll; position: absolute; top: -9999px;';
916			document.body.appendChild(scrollDiv);
917			mfp.scrollbarSize = scrollDiv.offsetWidth - scrollDiv.clientWidth;
918			document.body.removeChild(scrollDiv);
919		}
920		return mfp.scrollbarSize;
921	}
922
923}; /* MagnificPopup core prototype end */
924
925
926
927
928/**
929 * Public static functions
930 */
931$.magnificPopup = {
932	instance: null,
933	proto: MagnificPopup.prototype,
934	modules: [],
935
936	open: function(options, index) {
937		_checkInstance();
938
939		if(!options) {
940			options = {};
941		} else {
942			options = $.extend(true, {}, options);
943		}
944
945		options.isObj = true;
946		options.index = index || 0;
947		return this.instance.open(options);
948	},
949
950	close: function() {
951		return $.magnificPopup.instance && $.magnificPopup.instance.close();
952	},
953
954	registerModule: function(name, module) {
955		if(module.options) {
956			$.magnificPopup.defaults[name] = module.options;
957		}
958		$.extend(this.proto, module.proto);
959		this.modules.push(name);
960	},
961
962	defaults: {
963
964		// Info about options is in docs:
965		// http://dimsemenov.com/plugins/magnific-popup/documentation.html#options
966
967		disableOn: 0,
968
969		key: null,
970
971		midClick: false,
972
973		mainClass: '',
974
975		preloader: true,
976
977		focus: '', // CSS selector of input to focus after popup is opened
978
979		closeOnContentClick: false,
980
981		closeOnBgClick: true,
982
983		closeBtnInside: true,
984
985		showCloseBtn: true,
986
987		enableEscapeKey: true,
988
989		modal: false,
990
991		alignTop: false,
992
993		removalDelay: 0,
994
995		prependTo: null,
996
997		fixedContentPos: 'auto',
998
999		fixedBgPos: 'auto',
1000
1001		overflowY: 'auto',
1002
1003		closeMarkup: '<button title="%title%" type="button" class="mfp-close">&#215;</button>',
1004
1005		tClose: 'Close (Esc)',
1006
1007		tLoading: 'Loading...',
1008
1009		autoFocusLast: true
1010
1011	}
1012};
1013
1014
1015
1016$.fn.magnificPopup = function(options) {
1017	_checkInstance();
1018
1019	var jqEl = $(this);
1020
1021	// We call some API method of first param is a string
1022	if (typeof options === "string" ) {
1023
1024		if(options === 'open') {
1025			var items,
1026				itemOpts = _isJQ ? jqEl.data('magnificPopup') : jqEl[0].magnificPopup,
1027				index = parseInt(arguments[1], 10) || 0;
1028
1029			if(itemOpts.items) {
1030				items = itemOpts.items[index];
1031			} else {
1032				items = jqEl;
1033				if(itemOpts.delegate) {
1034					items = items.find(itemOpts.delegate);
1035				}
1036				items = items.eq( index );
1037			}
1038			mfp._openClick({mfpEl:items}, jqEl, itemOpts);
1039		} else {
1040			if(mfp.isOpen)
1041				mfp[options].apply(mfp, Array.prototype.slice.call(arguments, 1));
1042		}
1043
1044	} else {
1045		// clone options obj
1046		options = $.extend(true, {}, options);
1047
1048		/*
1049		 * As Zepto doesn't support .data() method for objects
1050		 * and it works only in normal browsers
1051		 * we assign "options" object directly to the DOM element. FTW!
1052		 */
1053		if(_isJQ) {
1054			jqEl.data('magnificPopup', options);
1055		} else {
1056			jqEl[0].magnificPopup = options;
1057		}
1058
1059		mfp.addGroup(jqEl, options);
1060
1061	}
1062	return jqEl;
1063};
1064
1065/*>>core*/
1066
1067/*>>inline*/
1068
1069var INLINE_NS = 'inline',
1070	_hiddenClass,
1071	_inlinePlaceholder,
1072	_lastInlineElement,
1073	_putInlineElementsBack = function() {
1074		if(_lastInlineElement) {
1075			_inlinePlaceholder.after( _lastInlineElement.addClass(_hiddenClass) ).detach();
1076			_lastInlineElement = null;
1077		}
1078	};
1079
1080$.magnificPopup.registerModule(INLINE_NS, {
1081	options: {
1082		hiddenClass: 'hide', // will be appended with `mfp-` prefix
1083		markup: '',
1084		tNotFound: 'Content not found'
1085	},
1086	proto: {
1087
1088		initInline: function() {
1089			mfp.types.push(INLINE_NS);
1090
1091			_mfpOn(CLOSE_EVENT+'.'+INLINE_NS, function() {
1092				_putInlineElementsBack();
1093			});
1094		},
1095
1096		getInline: function(item, template) {
1097
1098			_putInlineElementsBack();
1099
1100			if(item.src) {
1101				var inlineSt = mfp.st.inline,
1102					el = $(item.src);
1103
1104				if(el.length) {
1105
1106					// If target element has parent - we replace it with placeholder and put it back after popup is closed
1107					var parent = el[0].parentNode;
1108					if(parent && parent.tagName) {
1109						if(!_inlinePlaceholder) {
1110							_hiddenClass = inlineSt.hiddenClass;
1111							_inlinePlaceholder = _getEl(_hiddenClass);
1112							_hiddenClass = 'mfp-'+_hiddenClass;
1113						}
1114						// replace target inline element with placeholder
1115						_lastInlineElement = el.after(_inlinePlaceholder).detach().removeClass(_hiddenClass);
1116					}
1117
1118					mfp.updateStatus('ready');
1119				} else {
1120					mfp.updateStatus('error', inlineSt.tNotFound);
1121					el = $('<div>');
1122				}
1123
1124				item.inlineElement = el;
1125				return el;
1126			}
1127
1128			mfp.updateStatus('ready');
1129			mfp._parseMarkup(template, {}, item);
1130			return template;
1131		}
1132	}
1133});
1134
1135/*>>inline*/
1136
1137/*>>ajax*/
1138var AJAX_NS = 'ajax',
1139	_ajaxCur,
1140	_removeAjaxCursor = function() {
1141		if(_ajaxCur) {
1142			$(document.body).removeClass(_ajaxCur);
1143		}
1144	},
1145	_destroyAjaxRequest = function() {
1146		_removeAjaxCursor();
1147		if(mfp.req) {
1148			mfp.req.abort();
1149		}
1150	};
1151
1152$.magnificPopup.registerModule(AJAX_NS, {
1153
1154	options: {
1155		settings: null,
1156		cursor: 'mfp-ajax-cur',
1157		tError: '<a href="%url%">The content</a> could not be loaded.'
1158	},
1159
1160	proto: {
1161		initAjax: function() {
1162			mfp.types.push(AJAX_NS);
1163			_ajaxCur = mfp.st.ajax.cursor;
1164
1165			_mfpOn(CLOSE_EVENT+'.'+AJAX_NS, _destroyAjaxRequest);
1166			_mfpOn('BeforeChange.' + AJAX_NS, _destroyAjaxRequest);
1167		},
1168		getAjax: function(item) {
1169
1170			if(_ajaxCur) {
1171				$(document.body).addClass(_ajaxCur);
1172			}
1173
1174			mfp.updateStatus('loading');
1175
1176			var opts = $.extend({
1177				url: item.src,
1178				success: function(data, textStatus, jqXHR) {
1179					var temp = {
1180						data:data,
1181						xhr:jqXHR
1182					};
1183
1184					_mfpTrigger('ParseAjax', temp);
1185
1186					mfp.appendContent( $(temp.data), AJAX_NS );
1187
1188					item.finished = true;
1189
1190					_removeAjaxCursor();
1191
1192					mfp._setFocus();
1193
1194					setTimeout(function() {
1195						mfp.wrap.addClass(READY_CLASS);
1196					}, 16);
1197
1198					mfp.updateStatus('ready');
1199
1200					_mfpTrigger('AjaxContentAdded');
1201				},
1202				error: function() {
1203					_removeAjaxCursor();
1204					item.finished = item.loadError = true;
1205					mfp.updateStatus('error', mfp.st.ajax.tError.replace('%url%', item.src));
1206				}
1207			}, mfp.st.ajax.settings);
1208
1209			mfp.req = $.ajax(opts);
1210
1211			return '';
1212		}
1213	}
1214});
1215
1216/*>>ajax*/
1217
1218/*>>image*/
1219var _imgInterval,
1220	_getTitle = function(item) {
1221		if(item.data && item.data.title !== undefined)
1222			return item.data.title;
1223
1224		var src = mfp.st.image.titleSrc;
1225
1226		if(src) {
1227			if($.isFunction(src)) {
1228				return src.call(mfp, item);
1229			} else if(item.el) {
1230				return item.el.attr(src) || '';
1231			}
1232		}
1233		return '';
1234	};
1235
1236$.magnificPopup.registerModule('image', {
1237
1238	options: {
1239		markup: '<div class="mfp-figure">'+
1240					'<div class="mfp-close"></div>'+
1241					'<figure>'+
1242						'<div class="mfp-img"></div>'+
1243						'<figcaption>'+
1244							'<div class="mfp-bottom-bar">'+
1245								'<div class="mfp-title"></div>'+
1246								'<div class="mfp-counter"></div>'+
1247							'</div>'+
1248						'</figcaption>'+
1249					'</figure>'+
1250				'</div>',
1251		cursor: 'mfp-zoom-out-cur',
1252		titleSrc: 'title',
1253		verticalFit: true,
1254		tError: '<a href="%url%">The image</a> could not be loaded.'
1255	},
1256
1257	proto: {
1258		initImage: function() {
1259			var imgSt = mfp.st.image,
1260				ns = '.image';
1261
1262			mfp.types.push('image');
1263
1264			_mfpOn(OPEN_EVENT+ns, function() {
1265				if(mfp.currItem.type === 'image' && imgSt.cursor) {
1266					$(document.body).addClass(imgSt.cursor);
1267				}
1268			});
1269
1270			_mfpOn(CLOSE_EVENT+ns, function() {
1271				if(imgSt.cursor) {
1272					$(document.body).removeClass(imgSt.cursor);
1273				}
1274				_window.off('resize' + EVENT_NS);
1275			});
1276
1277			_mfpOn('Resize'+ns, mfp.resizeImage);
1278			if(mfp.isLowIE) {
1279				_mfpOn('AfterChange', mfp.resizeImage);
1280			}
1281		},
1282		resizeImage: function() {
1283			var item = mfp.currItem;
1284			if(!item || !item.img) return;
1285
1286			if(mfp.st.image.verticalFit) {
1287				var decr = 0;
1288				// fix box-sizing in ie7/8
1289				if(mfp.isLowIE) {
1290					decr = parseInt(item.img.css('padding-top'), 10) + parseInt(item.img.css('padding-bottom'),10);
1291				}
1292				item.img.css('max-height', mfp.wH-decr);
1293			}
1294		},
1295		_onImageHasSize: function(item) {
1296			if(item.img) {
1297
1298				item.hasSize = true;
1299
1300				if(_imgInterval) {
1301					clearInterval(_imgInterval);
1302				}
1303
1304				item.isCheckingImgSize = false;
1305
1306				_mfpTrigger('ImageHasSize', item);
1307
1308				if(item.imgHidden) {
1309					if(mfp.content)
1310						mfp.content.removeClass('mfp-loading');
1311
1312					item.imgHidden = false;
1313				}
1314
1315			}
1316		},
1317
1318		/**
1319		 * Function that loops until the image has size to display elements that rely on it asap
1320		 */
1321		findImageSize: function(item) {
1322
1323			var counter = 0,
1324				img = item.img[0],
1325				mfpSetInterval = function(delay) {
1326
1327					if(_imgInterval) {
1328						clearInterval(_imgInterval);
1329					}
1330					// decelerating interval that checks for size of an image
1331					_imgInterval = setInterval(function() {
1332						if(img.naturalWidth > 0) {
1333							mfp._onImageHasSize(item);
1334							return;
1335						}
1336
1337						if(counter > 200) {
1338							clearInterval(_imgInterval);
1339						}
1340
1341						counter++;
1342						if(counter === 3) {
1343							mfpSetInterval(10);
1344						} else if(counter === 40) {
1345							mfpSetInterval(50);
1346						} else if(counter === 100) {
1347							mfpSetInterval(500);
1348						}
1349					}, delay);
1350				};
1351
1352			mfpSetInterval(1);
1353		},
1354
1355		getImage: function(item, template) {
1356
1357			var guard = 0,
1358
1359				// image load complete handler
1360				onLoadComplete = function() {
1361					if(item) {
1362						if (item.img[0].complete) {
1363							item.img.off('.mfploader');
1364
1365							if(item === mfp.currItem){
1366								mfp._onImageHasSize(item);
1367
1368								mfp.updateStatus('ready');
1369							}
1370
1371							item.hasSize = true;
1372							item.loaded = true;
1373
1374							_mfpTrigger('ImageLoadComplete');
1375
1376						}
1377						else {
1378							// if image complete check fails 200 times (20 sec), we assume that there was an error.
1379							guard++;
1380							if(guard < 200) {
1381								setTimeout(onLoadComplete,100);
1382							} else {
1383								onLoadError();
1384							}
1385						}
1386					}
1387				},
1388
1389				// image error handler
1390				onLoadError = function() {
1391					if(item) {
1392						item.img.off('.mfploader');
1393						if(item === mfp.currItem){
1394							mfp._onImageHasSize(item);
1395							mfp.updateStatus('error', imgSt.tError.replace('%url%', item.src) );
1396						}
1397
1398						item.hasSize = true;
1399						item.loaded = true;
1400						item.loadError = true;
1401					}
1402				},
1403				imgSt = mfp.st.image;
1404
1405
1406			var el = template.find('.mfp-img');
1407			if(el.length) {
1408				var img = document.createElement('img');
1409				img.className = 'mfp-img';
1410				if(item.el && item.el.find('img').length) {
1411					img.alt = item.el.find('img').attr('alt');
1412				}
1413				item.img = $(img).on('load.mfploader', onLoadComplete).on('error.mfploader', onLoadError);
1414				img.src = item.src;
1415
1416				// without clone() "error" event is not firing when IMG is replaced by new IMG
1417				// TODO: find a way to avoid such cloning
1418				if(el.is('img')) {
1419					item.img = item.img.clone();
1420				}
1421
1422				img = item.img[0];
1423				if(img.naturalWidth > 0) {
1424					item.hasSize = true;
1425				} else if(!img.width) {
1426					item.hasSize = false;
1427				}
1428			}
1429
1430			mfp._parseMarkup(template, {
1431				title: _getTitle(item),
1432				img_replaceWith: item.img
1433			}, item);
1434
1435			mfp.resizeImage();
1436
1437			if(item.hasSize) {
1438				if(_imgInterval) clearInterval(_imgInterval);
1439
1440				if(item.loadError) {
1441					template.addClass('mfp-loading');
1442					mfp.updateStatus('error', imgSt.tError.replace('%url%', item.src) );
1443				} else {
1444					template.removeClass('mfp-loading');
1445					mfp.updateStatus('ready');
1446				}
1447				return template;
1448			}
1449
1450			mfp.updateStatus('loading');
1451			item.loading = true;
1452
1453			if(!item.hasSize) {
1454				item.imgHidden = true;
1455				template.addClass('mfp-loading');
1456				mfp.findImageSize(item);
1457			}
1458
1459			return template;
1460		}
1461	}
1462});
1463
1464/*>>image*/
1465
1466/*>>zoom*/
1467var hasMozTransform,
1468	getHasMozTransform = function() {
1469		if(hasMozTransform === undefined) {
1470			hasMozTransform = document.createElement('p').style.MozTransform !== undefined;
1471		}
1472		return hasMozTransform;
1473	};
1474
1475$.magnificPopup.registerModule('zoom', {
1476
1477	options: {
1478		enabled: false,
1479		easing: 'ease-in-out',
1480		duration: 300,
1481		opener: function(element) {
1482			return element.is('img') ? element : element.find('img');
1483		}
1484	},
1485
1486	proto: {
1487
1488		initZoom: function() {
1489			var zoomSt = mfp.st.zoom,
1490				ns = '.zoom',
1491				image;
1492
1493			if(!zoomSt.enabled || !mfp.supportsTransition) {
1494				return;
1495			}
1496
1497			var duration = zoomSt.duration,
1498				getElToAnimate = function(image) {
1499					var newImg = image.clone().removeAttr('style').removeAttr('class').addClass('mfp-animated-image'),
1500						transition = 'all '+(zoomSt.duration/1000)+'s ' + zoomSt.easing,
1501						cssObj = {
1502							position: 'fixed',
1503							zIndex: 9999,
1504							left: 0,
1505							top: 0,
1506							'-webkit-backface-visibility': 'hidden'
1507						},
1508						t = 'transition';
1509
1510					cssObj['-webkit-'+t] = cssObj['-moz-'+t] = cssObj['-o-'+t] = cssObj[t] = transition;
1511
1512					newImg.css(cssObj);
1513					return newImg;
1514				},
1515				showMainContent = function() {
1516					mfp.content.css('visibility', 'visible');
1517				},
1518				openTimeout,
1519				animatedImg;
1520
1521			_mfpOn('BuildControls'+ns, function() {
1522				if(mfp._allowZoom()) {
1523
1524					clearTimeout(openTimeout);
1525					mfp.content.css('visibility', 'hidden');
1526
1527					// Basically, all code below does is clones existing image, puts in on top of the current one and animated it
1528
1529					image = mfp._getItemToZoom();
1530
1531					if(!image) {
1532						showMainContent();
1533						return;
1534					}
1535
1536					animatedImg = getElToAnimate(image);
1537
1538					animatedImg.css( mfp._getOffset() );
1539
1540					mfp.wrap.append(animatedImg);
1541
1542					openTimeout = setTimeout(function() {
1543						animatedImg.css( mfp._getOffset( true ) );
1544						openTimeout = setTimeout(function() {
1545
1546							showMainContent();
1547
1548							setTimeout(function() {
1549								animatedImg.remove();
1550								image = animatedImg = null;
1551								_mfpTrigger('ZoomAnimationEnded');
1552							}, 16); // avoid blink when switching images
1553
1554						}, duration); // this timeout equals animation duration
1555
1556					}, 16); // by adding this timeout we avoid short glitch at the beginning of animation
1557
1558
1559					// Lots of timeouts...
1560				}
1561			});
1562			_mfpOn(BEFORE_CLOSE_EVENT+ns, function() {
1563				if(mfp._allowZoom()) {
1564
1565					clearTimeout(openTimeout);
1566
1567					mfp.st.removalDelay = duration;
1568
1569					if(!image) {
1570						image = mfp._getItemToZoom();
1571						if(!image) {
1572							return;
1573						}
1574						animatedImg = getElToAnimate(image);
1575					}
1576
1577					animatedImg.css( mfp._getOffset(true) );
1578					mfp.wrap.append(animatedImg);
1579					mfp.content.css('visibility', 'hidden');
1580
1581					setTimeout(function() {
1582						animatedImg.css( mfp._getOffset() );
1583					}, 16);
1584				}
1585
1586			});
1587
1588			_mfpOn(CLOSE_EVENT+ns, function() {
1589				if(mfp._allowZoom()) {
1590					showMainContent();
1591					if(animatedImg) {
1592						animatedImg.remove();
1593					}
1594					image = null;
1595				}
1596			});
1597		},
1598
1599		_allowZoom: function() {
1600			return mfp.currItem.type === 'image';
1601		},
1602
1603		_getItemToZoom: function() {
1604			if(mfp.currItem.hasSize) {
1605				return mfp.currItem.img;
1606			} else {
1607				return false;
1608			}
1609		},
1610
1611		// Get element postion relative to viewport
1612		_getOffset: function(isLarge) {
1613			var el;
1614			if(isLarge) {
1615				el = mfp.currItem.img;
1616			} else {
1617				el = mfp.st.zoom.opener(mfp.currItem.el || mfp.currItem);
1618			}
1619
1620			var offset = el.offset();
1621			var paddingTop = parseInt(el.css('padding-top'),10);
1622			var paddingBottom = parseInt(el.css('padding-bottom'),10);
1623			offset.top -= ( $(window).scrollTop() - paddingTop );
1624
1625
1626			/*
1627
1628			Animating left + top + width/height looks glitchy in Firefox, but perfect in Chrome. And vice-versa.
1629
1630			 */
1631			var obj = {
1632				width: el.width(),
1633				// fix Zepto height+padding issue
1634				height: (_isJQ ? el.innerHeight() : el[0].offsetHeight) - paddingBottom - paddingTop
1635			};
1636
1637			// I hate to do this, but there is no another option
1638			if( getHasMozTransform() ) {
1639				obj['-moz-transform'] = obj['transform'] = 'translate(' + offset.left + 'px,' + offset.top + 'px)';
1640			} else {
1641				obj.left = offset.left;
1642				obj.top = offset.top;
1643			}
1644			return obj;
1645		}
1646
1647	}
1648});
1649
1650
1651
1652/*>>zoom*/
1653
1654/*>>iframe*/
1655
1656var IFRAME_NS = 'iframe',
1657	_emptyPage = '//about:blank',
1658
1659	_fixIframeBugs = function(isShowing) {
1660		if(mfp.currTemplate[IFRAME_NS]) {
1661			var el = mfp.currTemplate[IFRAME_NS].find('iframe');
1662			if(el.length) {
1663				// reset src after the popup is closed to avoid "video keeps playing after popup is closed" bug
1664				if(!isShowing) {
1665					el[0].src = _emptyPage;
1666				}
1667
1668				// IE8 black screen bug fix
1669				if(mfp.isIE8) {
1670					el.css('display', isShowing ? 'block' : 'none');
1671				}
1672			}
1673		}
1674	};
1675
1676$.magnificPopup.registerModule(IFRAME_NS, {
1677
1678	options: {
1679		markup: '<div class="mfp-iframe-scaler">'+
1680					'<div class="mfp-close"></div>'+
1681					'<iframe class="mfp-iframe" src="//about:blank" frameborder="0" allowfullscreen></iframe>'+
1682				'</div>',
1683
1684		srcAction: 'iframe_src',
1685
1686		// we don't care and support only one default type of URL by default
1687		patterns: {
1688			youtube: {
1689				index: 'youtube.com',
1690				id: 'v=',
1691				src: '//www.youtube.com/embed/%id%?autoplay=1'
1692			},
1693			vimeo: {
1694				index: 'vimeo.com/',
1695				id: '/',
1696				src: '//player.vimeo.com/video/%id%?autoplay=1'
1697			},
1698			gmaps: {
1699				index: '//maps.google.',
1700				src: '%id%&output=embed'
1701			}
1702		}
1703	},
1704
1705	proto: {
1706		initIframe: function() {
1707			mfp.types.push(IFRAME_NS);
1708
1709			_mfpOn('BeforeChange', function(e, prevType, newType) {
1710				if(prevType !== newType) {
1711					if(prevType === IFRAME_NS) {
1712						_fixIframeBugs(); // iframe if removed
1713					} else if(newType === IFRAME_NS) {
1714						_fixIframeBugs(true); // iframe is showing
1715					}
1716				}// else {
1717					// iframe source is switched, don't do anything
1718				//}
1719			});
1720
1721			_mfpOn(CLOSE_EVENT + '.' + IFRAME_NS, function() {
1722				_fixIframeBugs();
1723			});
1724		},
1725
1726		getIframe: function(item, template) {
1727			var embedSrc = item.src;
1728			var iframeSt = mfp.st.iframe;
1729
1730			$.each(iframeSt.patterns, function() {
1731				if(embedSrc.indexOf( this.index ) > -1) {
1732					if(this.id) {
1733						if(typeof this.id === 'string') {
1734							embedSrc = embedSrc.substr(embedSrc.lastIndexOf(this.id)+this.id.length, embedSrc.length);
1735						} else {
1736							embedSrc = this.id.call( this, embedSrc );
1737						}
1738					}
1739					embedSrc = this.src.replace('%id%', embedSrc );
1740					return false; // break;
1741				}
1742			});
1743
1744			var dataObj = {};
1745			if(iframeSt.srcAction) {
1746				dataObj[iframeSt.srcAction] = embedSrc;
1747			}
1748			mfp._parseMarkup(template, dataObj, item);
1749
1750			mfp.updateStatus('ready');
1751
1752			return template;
1753		}
1754	}
1755});
1756
1757
1758
1759/*>>iframe*/
1760
1761/*>>gallery*/
1762/**
1763 * Get looped index depending on number of slides
1764 */
1765var _getLoopedId = function(index) {
1766		var numSlides = mfp.items.length;
1767		if(index > numSlides - 1) {
1768			return index - numSlides;
1769		} else  if(index < 0) {
1770			return numSlides + index;
1771		}
1772		return index;
1773	},
1774	_replaceCurrTotal = function(text, curr, total) {
1775		return text.replace(/%curr%/gi, curr + 1).replace(/%total%/gi, total);
1776	};
1777
1778$.magnificPopup.registerModule('gallery', {
1779
1780	options: {
1781		enabled: false,
1782		arrowMarkup: '<button title="%title%" type="button" class="mfp-arrow mfp-arrow-%dir%"></button>',
1783		preload: [0,2],
1784		navigateByImgClick: true,
1785		arrows: true,
1786
1787		tPrev: 'Previous (Left arrow key)',
1788		tNext: 'Next (Right arrow key)',
1789		tCounter: '%curr% of %total%'
1790	},
1791
1792	proto: {
1793		initGallery: function() {
1794
1795			var gSt = mfp.st.gallery,
1796				ns = '.mfp-gallery';
1797
1798			mfp.direction = true; // true - next, false - prev
1799
1800			if(!gSt || !gSt.enabled ) return false;
1801
1802			_wrapClasses += ' mfp-gallery';
1803
1804			_mfpOn(OPEN_EVENT+ns, function() {
1805
1806				if(gSt.navigateByImgClick) {
1807					mfp.wrap.on('click'+ns, '.mfp-img', function() {
1808						if(mfp.items.length > 1) {
1809							mfp.next();
1810							return false;
1811						}
1812					});
1813				}
1814
1815				_document.on('keydown'+ns, function(e) {
1816					if (e.keyCode === 37) {
1817						mfp.prev();
1818					} else if (e.keyCode === 39) {
1819						mfp.next();
1820					}
1821				});
1822			});
1823
1824			_mfpOn('UpdateStatus'+ns, function(e, data) {
1825				if(data.text) {
1826					data.text = _replaceCurrTotal(data.text, mfp.currItem.index, mfp.items.length);
1827				}
1828			});
1829
1830			_mfpOn(MARKUP_PARSE_EVENT+ns, function(e, element, values, item) {
1831				var l = mfp.items.length;
1832				values.counter = l > 1 ? _replaceCurrTotal(gSt.tCounter, item.index, l) : '';
1833			});
1834
1835			_mfpOn('BuildControls' + ns, function() {
1836				if(mfp.items.length > 1 && gSt.arrows && !mfp.arrowLeft) {
1837					var markup = gSt.arrowMarkup,
1838						arrowLeft = mfp.arrowLeft = $( markup.replace(/%title%/gi, gSt.tPrev).replace(/%dir%/gi, 'left') ).addClass(PREVENT_CLOSE_CLASS),
1839						arrowRight = mfp.arrowRight = $( markup.replace(/%title%/gi, gSt.tNext).replace(/%dir%/gi, 'right') ).addClass(PREVENT_CLOSE_CLASS);
1840
1841					arrowLeft.click(function() {
1842						mfp.prev();
1843					});
1844					arrowRight.click(function() {
1845						mfp.next();
1846					});
1847
1848					mfp.container.append(arrowLeft.add(arrowRight));
1849				}
1850			});
1851
1852			_mfpOn(CHANGE_EVENT+ns, function() {
1853				if(mfp._preloadTimeout) clearTimeout(mfp._preloadTimeout);
1854
1855				mfp._preloadTimeout = setTimeout(function() {
1856					mfp.preloadNearbyImages();
1857					mfp._preloadTimeout = null;
1858				}, 16);
1859			});
1860
1861
1862			_mfpOn(CLOSE_EVENT+ns, function() {
1863				_document.off(ns);
1864				mfp.wrap.off('click'+ns);
1865				mfp.arrowRight = mfp.arrowLeft = null;
1866			});
1867
1868		},
1869		next: function() {
1870			mfp.direction = true;
1871			mfp.index = _getLoopedId(mfp.index + 1);
1872			mfp.updateItemHTML();
1873		},
1874		prev: function() {
1875			mfp.direction = false;
1876			mfp.index = _getLoopedId(mfp.index - 1);
1877			mfp.updateItemHTML();
1878		},
1879		goTo: function(newIndex) {
1880			mfp.direction = (newIndex >= mfp.index);
1881			mfp.index = newIndex;
1882			mfp.updateItemHTML();
1883		},
1884		preloadNearbyImages: function() {
1885			var p = mfp.st.gallery.preload,
1886				preloadBefore = Math.min(p[0], mfp.items.length),
1887				preloadAfter = Math.min(p[1], mfp.items.length),
1888				i;
1889
1890			for(i = 1; i <= (mfp.direction ? preloadAfter : preloadBefore); i++) {
1891				mfp._preloadItem(mfp.index+i);
1892			}
1893			for(i = 1; i <= (mfp.direction ? preloadBefore : preloadAfter); i++) {
1894				mfp._preloadItem(mfp.index-i);
1895			}
1896		},
1897		_preloadItem: function(index) {
1898			index = _getLoopedId(index);
1899
1900			if(mfp.items[index].preloaded) {
1901				return;
1902			}
1903
1904			var item = mfp.items[index];
1905			if(!item.parsed) {
1906				item = mfp.parseEl( index );
1907			}
1908
1909			_mfpTrigger('LazyLoad', item);
1910
1911			if(item.type === 'image') {
1912				item.img = $('<img class="mfp-img" />').on('load.mfploader', function() {
1913					item.hasSize = true;
1914				}).on('error.mfploader', function() {
1915					item.hasSize = true;
1916					item.loadError = true;
1917					_mfpTrigger('LazyLoadError', item);
1918				}).attr('src', item.src);
1919			}
1920
1921
1922			item.preloaded = true;
1923		}
1924	}
1925});
1926
1927/*>>gallery*/
1928
1929/*>>retina*/
1930
1931var RETINA_NS = 'retina';
1932
1933$.magnificPopup.registerModule(RETINA_NS, {
1934	options: {
1935		replaceSrc: function(item) {
1936			return item.src.replace(/\.\w+$/, function(m) { return '@2x' + m; });
1937		},
1938		ratio: 1 // Function or number.  Set to 1 to disable.
1939	},
1940	proto: {
1941		initRetina: function() {
1942			if(window.devicePixelRatio > 1) {
1943
1944				var st = mfp.st.retina,
1945					ratio = st.ratio;
1946
1947				ratio = !isNaN(ratio) ? ratio : ratio();
1948
1949				if(ratio > 1) {
1950					_mfpOn('ImageHasSize' + '.' + RETINA_NS, function(e, item) {
1951						item.img.css({
1952							'max-width': item.img[0].naturalWidth / ratio,
1953							'width': '100%'
1954						});
1955					});
1956					_mfpOn('ElementParse' + '.' + RETINA_NS, function(e, item) {
1957						item.src = st.replaceSrc(item, ratio);
1958					});
1959				}
1960			}
1961
1962		}
1963	}
1964});
1965
1966/*>>retina*/
1967 _checkInstance(); }));
1968
1969/***/ }),
1970
vendor: 109,646 bytes, lines 1971-1984
1971/***/ "../node_modules/plyr/dist/plyr.min.js":
1972/*!*********************************************!*\
1973  !*** ../node_modules/plyr/dist/plyr.min.js ***!
1974  \*********************************************/
1975/*! no static exports found */
1976/***/ (function(module, exports, __webpack_require__) {
1977
1978/* WEBPACK VAR INJECTION */(function(global, jQuery) {"object"==typeof navigator&&function(e,t){ true?module.exports=t():undefined}(this,(function(){"use strict";function e(e,t,i){return t in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e}function t(e,t){for(var i=0;i<t.length;i++){var s=t[i];s.enumerable=s.enumerable||!1,s.configurable=!0,"value"in s&&(s.writable=!0),Object.defineProperty(e,s.key,s)}}function i(e,t,i){return t in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e}function s(e,t){var i=Object.keys(e);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);t&&(s=s.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),i.push.apply(i,s)}return i}function n(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?s(Object(n),!0).forEach((function(t){i(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):s(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var a={addCSS:!0,thumbWidth:15,watch:!0};function l(e,t){return function(){return Array.from(document.querySelectorAll(t)).includes(this)}.call(e,t)}var o=function(e){return null!=e?e.constructor:null},r=function(e,t){return!!(e&&t&&e instanceof t)},c=function(e){return null==e},h=function(e){return o(e)===Object},u=function(e){return o(e)===String},d=function(e){return Array.isArray(e)},m=function(e){return r(e,NodeList)},p=u,g=d,f=m,b=function(e){return r(e,Element)},y=function(e){return r(e,Event)},v=function(e){return c(e)||(u(e)||d(e)||m(e))&&!e.length||h(e)&&!Object.keys(e).length};function w(e,t){if(1>t){var i=function(e){var t="".concat(e).match(/(?:\.(\d+))?(?:[eE]([+-]?\d+))?$/);return t?Math.max(0,(t[1]?t[1].length:0)-(t[2]?+t[2]:0)):0}(t);return parseFloat(e.toFixed(i))}return Math.round(e/t)*t}var T=function(){function e(t,i){(function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")})(this,e),b(t)?this.element=t:p(t)&&(this.element=document.querySelector(t)),b(this.element)&&v(this.element.rangeTouch)&&(this.config=n({},a,{},i),this.init())}return function(e,i,s){i&&t(e.prototype,i),s&&t(e,s)}(e,[{key:"init",value:function(){e.enabled&&(this.config.addCSS&&(this.element.style.userSelect="none",this.element.style.webKitUserSelect="none",this.element.style.touchAction="manipulation"),this.listeners(!0),this.element.rangeTouch=this)}},{key:"destroy",value:function(){e.enabled&&(this.config.addCSS&&(this.element.style.userSelect="",this.element.style.webKitUserSelect="",this.element.style.touchAction=""),this.listeners(!1),this.element.rangeTouch=null)}},{key:"listeners",value:function(e){var t=this,i=e?"addEventListener":"removeEventListener";["touchstart","touchmove","touchend"].forEach((function(e){t.element[i](e,(function(e){return t.set(e)}),!1)}))}},{key:"get",value:function(t){if(!e.enabled||!y(t))return null;var i,s=t.target,n=t.changedTouches[0],a=parseFloat(s.getAttribute("min"))||0,l=parseFloat(s.getAttribute("max"))||100,o=parseFloat(s.getAttribute("step"))||1,r=s.getBoundingClientRect(),c=100/r.width*(this.config.thumbWidth/2)/100;return 0>(i=100/r.width*(n.clientX-r.left))?i=0:100<i&&(i=100),50>i?i-=(100-2*i)*c:50<i&&(i+=2*(i-50)*c),a+w(i/100*(l-a),o)}},{key:"set",value:function(t){e.enabled&&y(t)&&!t.target.disabled&&(t.preventDefault(),t.target.value=this.get(t),function(e,t){if(e&&t){var i=new Event(t,{bubbles:!0});e.dispatchEvent(i)}}(t.target,"touchend"===t.type?"change":"input"))}}],[{key:"setup",value:function(t){var i=1<arguments.length&&void 0!==arguments[1]?arguments[1]:{},s=null;if(v(t)||p(t)?s=Array.from(document.querySelectorAll(p(t)?t:'input[type="range"]')):b(t)?s=[t]:f(t)?s=Array.from(t):g(t)&&(s=t.filter(b)),v(s))return null;var o=n({},a,{},i);if(p(t)&&o.watch){var r=new MutationObserver((function(i){Array.from(i).forEach((function(i){Array.from(i.addedNodes).forEach((function(i){b(i)&&l(i,t)&&new e(i,o)}))}))}));r.observe(document.body,{childList:!0,subtree:!0})}return s.map((function(t){return new e(t,i)}))}},{key:"enabled",get:function(){return"ontouchstart"in document.documentElement}}]),e}();const k=e=>null!=e?e.constructor:null,C=(e,t)=>Boolean(e&&t&&e instanceof t),A=e=>null==e,S=e=>k(e)===Object,E=e=>k(e)===String,P=e=>k(e)===Function,N=e=>Array.isArray(e),x=e=>C(e,NodeList),M=e=>A(e)||(E(e)||N(e)||x(e))&&!e.length||S(e)&&!Object.keys(e).length;var I=A,L=S,$=e=>k(e)===Number&&!Number.isNaN(e),_=E,O=e=>k(e)===Boolean,j=P,q=N,D=x,H=e=>null!==e&&"object"==typeof e&&1===e.nodeType&&"object"==typeof e.style&&"object"==typeof e.ownerDocument,F=e=>C(e,Event),R=e=>C(e,KeyboardEvent),V=e=>C(e,TextTrack)||!A(e)&&E(e.kind),B=e=>C(e,Promise)&&P(e.then),U=e=>{if(C(e,window.URL))return!0;if(!E(e))return!1;let t=e;e.startsWith("http://")&&e.startsWith("https://")||(t=`http://${e}`);try{return!M(new URL(t).hostname)}catch(e){return!1}},W=M;const z=(()=>{const e=document.createElement("span"),t={WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd otransitionend",transition:"transitionend"},i=Object.keys(t).find((t=>void 0!==e.style[t]));return!!_(i)&&t[i]})();function K(e,t){setTimeout((()=>{try{e.hidden=!0,e.offsetHeight,e.hidden=!1}catch(e){}}),t)}const Y={isIE:Boolean(window.document.documentMode),isEdge:window.navigator.userAgent.includes("Edge"),isWebkit:"WebkitAppearance"in document.documentElement.style&&!/Edge/.test(navigator.userAgent),isIPhone:/(iPhone|iPod)/gi.test(navigator.platform),isIos:"MacIntel"===navigator.platform&&navigator.maxTouchPoints>1||/(iPad|iPhone|iPod)/gi.test(navigator.platform)};function Q(e,t){return t.split(".").reduce(((e,t)=>e&&e[t]),e)}function X(e={},...t){if(!t.length)return e;const i=t.shift();return L(i)?(Object.keys(i).forEach((t=>{L(i[t])?(Object.keys(e).includes(t)||Object.assign(e,{[t]:{}}),X(e[t],i[t])):Object.assign(e,{[t]:i[t]})})),X(e,...t)):e}function J(e,t){const i=e.length?e:[e];Array.from(i).reverse().forEach(((e,i)=>{const s=i>0?t.cloneNode(!0):t,n=e.parentNode,a=e.nextSibling;s.appendChild(e),a?n.insertBefore(s,a):n.appendChild(s)}))}function G(e,t){H(e)&&!W(t)&&Object.entries(t).filter((([,e])=>!I(e))).forEach((([t,i])=>e.setAttribute(t,i)))}function Z(e,t,i){const s=document.createElement(e);return L(t)&&G(s,t),_(i)&&(s.innerText=i),s}function ee(e,t,i,s){H(t)&&t.appendChild(Z(e,i,s))}function te(e){D(e)||q(e)?Array.from(e).forEach(te):H(e)&&H(e.parentNode)&&e.parentNode.removeChild(e)}function ie(e){if(!H(e))return;let{length:t}=e.childNodes;for(;t>0;)e.removeChild(e.lastChild),t-=1}function se(e,t){return H(t)&&H(t.parentNode)&&H(e)?(t.parentNode.replaceChild(e,t),e):null}function ne(e,t){if(!_(e)||W(e))return{};const i={},s=X({},t);return e.split(",").forEach((e=>{const t=e.trim(),n=t.replace(".",""),a=t.replace(/[[\]]/g,"").split("="),[l]=a,o=a.length>1?a[1].replace(/["']/g,""):"";switch(t.charAt(0)){case".":_(s.class)?i.class=`${s.class} ${n}`:i.class=n;break;case"#":i.id=t.replace("#","");break;case"[":i[l]=o}})),X(s,i)}function ae(e,t){if(!H(e))return;let i=t;O(i)||(i=!e.hidden),e.hidden=i}function le(e,t,i){if(D(e))return Array.from(e).map((e=>le(e,t,i)));if(H(e)){let s="toggle";return void 0!==i&&(s=i?"add":"remove"),e.classList[s](t),e.classList.contains(t)}return!1}function oe(e,t){return H(e)&&e.classList.contains(t)}function re(e,t){const{prototype:i}=Element;return(i.matches||i.webkitMatchesSelector||i.mozMatchesSelector||i.msMatchesSelector||function(){return Array.from(document.querySelectorAll(t)).includes(this)}).call(e,t)}function ce(e){return this.elements.container.querySelectorAll(e)}function he(e){return this.elements.container.querySelector(e)}function ue(e=null,t=!1){H(e)&&(e.focus({preventScroll:!0}),t&&le(e,this.config.classNames.tabFocus))}const de={"audio/ogg":"vorbis","audio/wav":"1","video/webm":"vp8, vorbis","video/mp4":"avc1.42E01E, mp4a.40.2","video/ogg":"theora"},me={audio:"canPlayType"in document.createElement("audio"),video:"canPlayType"in document.createElement("video"),check(e,t,i){const s=Y.isIPhone&&i&&me.playsinline,n=me[e]||"html5"!==t;return{api:n,ui:n&&me.rangeInput&&("video"!==e||!Y.isIPhone||s)}},pip:!(Y.isIPhone||!j(Z("video").webkitSetPresentationMode)&&(!document.pictureInPictureEnabled||Z("video").disablePictureInPicture)),airplay:j(window.WebKitPlaybackTargetAvailabilityEvent),playsinline:"playsInline"in document.createElement("video"),mime(e){if(W(e))return!1;const[t]=e.split("/");let i=e;if(!this.isHTML5||t!==this.type)return!1;Object.keys(de).includes(i)&&(i+=`; codecs="${de[e]}"`);try{return Boolean(i&&this.media.canPlayType(i).replace(/no/,""))}catch(e){return!1}},textTracks:"textTracks"in document.createElement("video"),rangeInput:(()=>{const e=document.createElement("input");return e.type="range","range"===e.type})(),touch:"ontouchstart"in document.documentElement,transitions:!1!==z,reducedMotion:"matchMedia"in window&&window.matchMedia("(prefers-reduced-motion)").matches},pe=(()=>{let e=!1;try{const t=Object.defineProperty({},"passive",{get:()=>(e=!0,null)});window.addEventListener("test",null,t),window.removeEventListener("test",null,t)}catch(e){}return e})();function ge(e,t,i,s=!1,n=!0,a=!1){if(!e||!("addEventListener"in e)||W(t)||!j(i))return;const l=t.split(" ");let o=a;pe&&(o={passive:n,capture:a}),l.forEach((t=>{this&&this.eventListeners&&s&&this.eventListeners.push({element:e,type:t,callback:i,options:o}),e[s?"addEventListener":"removeEventListener"](t,i,o)}))}function fe(e,t="",i,s=!0,n=!1){ge.call(this,e,t,i,!0,s,n)}function be(e,t="",i,s=!0,n=!1){ge.call(this,e,t,i,!1,s,n)}function ye(e,t="",i,s=!0,n=!1){const a=(...l)=>{be(e,t,a,s,n),i.apply(this,l)};ge.call(this,e,t,a,!0,s,n)}function ve(e,t="",i=!1,s={}){if(!H(e)||W(t))return;const n=new CustomEvent(t,{bubbles:i,detail:{...s,plyr:this}});e.dispatchEvent(n)}function we(){this&&this.eventListeners&&(this.eventListeners.forEach((e=>{const{element:t,type:i,callback:s,options:n}=e;t.removeEventListener(i,s,n)})),this.eventListeners=[])}function Te(){return new Promise((e=>this.ready?setTimeout(e,0):fe.call(this,this.elements.container,"ready",e))).then((()=>{}))}function ke(e){B(e)&&e.then(null,(()=>{}))}function Ce(e){return q(e)?e.filter(((t,i)=>e.indexOf(t)===i)):e}function Ae(e,t){return q(e)&&e.length?e.reduce(((e,i)=>Math.abs(i-t)<Math.abs(e-t)?i:e)):null}function Se(e){return!(!window||!window.CSS)&&window.CSS.supports(e)}const Ee=[[1,1],[4,3],[3,4],[5,4],[4,5],[3,2],[2,3],[16,10],[10,16],[16,9],[9,16],[21,9],[9,21],[32,9],[9,32]].reduce(((e,[t,i])=>({...e,[t/i]:[t,i]})),{});function Pe(e){if(!(q(e)||_(e)&&e.includes(":")))return!1;return(q(e)?e:e.split(":")).map(Number).every($)}function Ne(e){if(!q(e)||!e.every($))return null;const[t,i]=e,s=(e,t)=>0===t?e:s(t,e%t),n=s(t,i);return[t/n,i/n]}function xe(e){const t=e=>Pe(e)?e.split(":").map(Number):null;let i=t(e);if(null===i&&(i=t(this.config.ratio)),null===i&&!W(this.embed)&&q(this.embed.ratio)&&({ratio:i}=this.embed),null===i&&this.isHTML5){const{videoWidth:e,videoHeight:t}=this.media;i=[e,t]}return Ne(i)}function Me(e){if(!this.isVideo)return{};const{wrapper:t}=this.elements,i=xe.call(this,e);if(!q(i))return{};const[s,n]=Ne(i),a=100/s*n;if(Se(`aspect-ratio: ${s}/${n}`)?t.style.aspectRatio=`${s}/${n}`:t.style.paddingBottom=`${a}%`,this.isVimeo&&!this.config.vimeo.premium&&this.supported.ui){const e=100/this.media.offsetWidth*parseInt(window.getComputedStyle(this.media).paddingBottom,10),i=(e-a)/(e/50);this.fullscreen.active?t.style.paddingBottom=null:this.media.style.transform=`translateY(-${i}%)`}else this.isHTML5&&t.classList.add(this.config.classNames.videoFixedRatio);return{padding:a,ratio:i}}function Ie(e,t,i=.05){const s=e/t,n=Ae(Object.keys(Ee),s);return Math.abs(n-s)<=i?Ee[n]:[e,t]}const Le={getSources(){if(!this.isHTML5)return[];return Array.from(this.media.querySelectorAll("source")).filter((e=>{const t=e.getAttribute("type");return!!W(t)||me.mime.call(this,t)}))},getQualityOptions(){return this.config.quality.forced?this.config.quality.options:Le.getSources.call(this).map((e=>Number(e.getAttribute("size")))).filter(Boolean)},setup(){if(!this.isHTML5)return;const e=this;e.options.speed=e.config.speed.options,W(this.config.ratio)||Me.call(e),Object.defineProperty(e.media,"quality",{get(){const t=Le.getSources.call(e).find((t=>t.getAttribute("src")===e.source));return t&&Number(t.getAttribute("size"))},set(t){if(e.quality!==t){if(e.config.quality.forced&&j(e.config.quality.onChange))e.config.quality.onChange(t);else{const i=Le.getSources.call(e).find((e=>Number(e.getAttribute("size"))===t));if(!i)return;const{currentTime:s,paused:n,preload:a,readyState:l,playbackRate:o}=e.media;e.media.src=i.getAttribute("src"),("none"!==a||l)&&(e.once("loadedmetadata",(()=>{e.speed=o,e.currentTime=s,n||ke(e.play())})),e.media.load())}ve.call(e,e.media,"qualitychange",!1,{quality:t})}}})},cancelRequests(){this.isHTML5&&(te(Le.getSources.call(this)),this.media.setAttribute("src",this.config.blankVideo),this.media.load(),this.debug.log("Cancelled network requests"))}};function $e(e,...t){return W(e)?e:e.toString().replace(/{(\d+)}/g,((e,i)=>t[i].toString()))}const _e=(e="",t="",i="")=>e.replace(new RegExp(t.toString().replace(/([.*+?^=!:${}()|[\]/\\])/g,"\\$1"),"g"),i.toString()),Oe=(e="")=>e.toString().replace(/\w\S*/g,(e=>e.charAt(0).toUpperCase()+e.substr(1).toLowerCase()));function je(e=""){let t=e.toString();return t=function(e=""){let t=e.toString();return t=_e(t,"-"," "),t=_e(t,"_"," "),t=Oe(t),_e(t," ","")}(t),t.charAt(0).toLowerCase()+t.slice(1)}function qe(e){const t=document.createElement("div");return t.appendChild(e),t.innerHTML}const De={pip:"PIP",airplay:"AirPlay",html5:"HTML5",vimeo:"Vimeo",youtube:"YouTube"},He={get(e="",t={}){if(W(e)||W(t))return"";let i=Q(t.i18n,e);if(W(i))return Object.keys(De).includes(e)?De[e]:"";const s={"{seektime}":t.seekTime,"{title}":t.title};return Object.entries(s).forEach((([e,t])=>{i=_e(i,e,t)})),i}};class Fe{constructor(t){e(this,"get",(e=>{if(!Fe.supported||!this.enabled)return null;const t=window.localStorage.getItem(this.key);if(W(t))return null;const i=JSON.parse(t);return _(e)&&e.length?i[e]:i})),e(this,"set",(e=>{if(!Fe.supported||!this.enabled)return;if(!L(e))return;let t=this.get();W(t)&&(t={}),X(t,e);try{window.localStorage.setItem(this.key,JSON.stringify(t))}catch(e){}})),this.enabled=t.config.storage.enabled,this.key=t.config.storage.key}static get supported(){try{if(!("localStorage"in window))return!1;const e="___test";return window.localStorage.setItem(e,e),window.localStorage.removeItem(e),!0}catch(e){return!1}}}function Re(e,t="text"){return new Promise(((i,s)=>{try{const s=new XMLHttpRequest;if(!("withCredentials"in s))return;s.addEventListener("load",(()=>{if("text"===t)try{i(JSON.parse(s.responseText))}catch(e){i(s.responseText)}else i(s.response)})),s.addEventListener("error",(()=>{throw new Error(s.status)})),s.open("GET",e,!0),s.responseType=t,s.send()}catch(e){s(e)}}))}function Ve(e,t){if(!_(e))return;const i=_(t);let s=!1;const n=()=>null!==document.getElementById(t),a=(e,t)=>{e.innerHTML=t,i&&n()||document.body.insertAdjacentElement("afterbegin",e)};if(!i||!n()){const n=Fe.supported,l=document.createElement("div");if(l.setAttribute("hidden",""),i&&l.setAttribute("id",t),n){const e=window.localStorage.getItem(`cache-${t}`);if(s=null!==e,s){const t=JSON.parse(e);a(l,t.content)}}Re(e).then((e=>{if(!W(e)){if(n)try{window.localStorage.setItem(`cache-${t}`,JSON.stringify({content:e}))}catch(e){}a(l,e)}})).catch((()=>{}))}}const Be=e=>Math.trunc(e/60/60%60,10);function Ue(e=0,t=!1,i=!1){if(!$(e))return Ue(void 0,t,i);const s=e=>`0${e}`.slice(-2);let n=Be(e);const a=(l=e,Math.trunc(l/60%60,10));var l;const o=(e=>Math.trunc(e%60,10))(e);return n=t||n>0?`${n}:`:"",`${i&&e>0?"-":""}${n}${s(a)}:${s(o)}`}const We={getIconUrl(){const e=new URL(this.config.iconUrl,window.location),t=window.location.host?window.location.host:window.top.location.host,i=e.host!==t||Y.isIE&&!window.svg4everybody;return{url:this.config.iconUrl,cors:i}},findElements(){try{return this.elements.controls=he.call(this,this.config.selectors.controls.wrapper),this.elements.buttons={play:ce.call(this,this.config.selectors.buttons.play),pause:he.call(this,this.config.selectors.buttons.pause),restart:he.call(this,this.config.selectors.buttons.restart),rewind:he.call(this,this.config.selectors.buttons.rewind),fastForward:he.call(this,this.config.selectors.buttons.fastForward),mute:he.call(this,this.config.selectors.buttons.mute),pip:he.call(this,this.config.selectors.buttons.pip),airplay:he.call(this,this.config.selectors.buttons.airplay),settings:he.call(this,this.config.selectors.buttons.settings),captions:he.call(this,this.config.selectors.buttons.captions),fullscreen:he.call(this,this.config.selectors.buttons.fullscreen)},this.elements.progress=he.call(this,this.config.selectors.progress),this.elements.inputs={seek:he.call(this,this.config.selectors.inputs.seek),volume:he.call(this,this.config.selectors.inputs.volume)},this.elements.display={buffer:he.call(this,this.config.selectors.display.buffer),currentTime:he.call(this,this.config.selectors.display.currentTime),duration:he.call(this,this.config.selectors.display.duration)},H(this.elements.progress)&&(this.elements.display.seekTooltip=this.elements.progress.querySelector(`.${this.config.classNames.tooltip}`)),!0}catch(e){return this.debug.warn("It looks like there is a problem with your custom controls HTML",e),this.toggleNativeControls(!0),!1}},createIcon(e,t){const i="http://www.w3.org/2000/svg",s=We.getIconUrl.call(this),n=`${s.cors?"":s.url}#${this.config.iconPrefix}`,a=document.createElementNS(i,"svg");G(a,X(t,{"aria-hidden":"true",focusable:"false"}));const l=document.createElementNS(i,"use"),o=`${n}-${e}`;return"href"in l&&l.setAttributeNS("http://www.w3.org/1999/xlink","href",o),l.setAttributeNS("http://www.w3.org/1999/xlink","xlink:href",o),a.appendChild(l),a},createLabel(e,t={}){const i=He.get(e,this.config);return Z("span",{...t,class:[t.class,this.config.classNames.hidden].filter(Boolean).join(" ")},i)},createBadge(e){if(W(e))return null;const t=Z("span",{class:this.config.classNames.menu.value});return t.appendChild(Z("span",{class:this.config.classNames.menu.badge},e)),t},createButton(e,t){const i=X({},t);let s=je(e);const n={element:"button",toggle:!1,label:null,icon:null,labelPressed:null,iconPressed:null};switch(["element","icon","label"].forEach((e=>{Object.keys(i).includes(e)&&(n[e]=i[e],delete i[e])})),"button"!==n.element||Object.keys(i).includes("type")||(i.type="button"),Object.keys(i).includes("class")?i.class.split(" ").some((e=>e===this.config.classNames.control))||X(i,{class:`${i.class} ${this.config.classNames.control}`}):i.class=this.config.classNames.control,e){case"play":n.toggle=!0,n.label="play",n.labelPressed="pause",n.icon="play",n.iconPressed="pause";break;case"mute":n.toggle=!0,n.label="mute",n.labelPressed="unmute",n.icon="volume",n.iconPressed="muted";break;case"captions":n.toggle=!0,n.label="enableCaptions",n.labelPressed="disableCaptions",n.icon="captions-off",n.iconPressed="captions-on";break;case"fullscreen":n.toggle=!0,n.label="enterFullscreen",n.labelPressed="exitFullscreen",n.icon="enter-fullscreen",n.iconPressed="exit-fullscreen";break;case"play-large":i.class+=` ${this.config.classNames.control}--overlaid`,s="play",n.label="play",n.icon="play";break;default:W(n.label)&&(n.label=s),W(n.icon)&&(n.icon=e)}const a=Z(n.element);return n.toggle?(a.appendChild(We.createIcon.call(this,n.iconPressed,{class:"icon--pressed"})),a.appendChild(We.createIcon.call(this,n.icon,{class:"icon--not-pressed"})),a.appendChild(We.createLabel.call(this,n.labelPressed,{class:"label--pressed"})),a.appendChild(We.createLabel.call(this,n.label,{class:"label--not-pressed"}))):(a.appendChild(We.createIcon.call(this,n.icon)),a.appendChild(We.createLabel.call(this,n.label))),X(i,ne(this.config.selectors.buttons[s],i)),G(a,i),"play"===s?(q(this.elements.buttons[s])||(this.elements.buttons[s]=[]),this.elements.buttons[s].push(a)):this.elements.buttons[s]=a,a},createRange(e,t){const i=Z("input",X(ne(this.config.selectors.inputs[e]),{type:"range",min:0,max:100,step:.01,value:0,autocomplete:"off",role:"slider","aria-label":He.get(e,this.config),"aria-valuemin":0,"aria-valuemax":100,"aria-valuenow":0},t));return this.elements.inputs[e]=i,We.updateRangeFill.call(this,i),T.setup(i),i},createProgress(e,t){const i=Z("progress",X(ne(this.config.selectors.display[e]),{min:0,max:100,value:0,role:"progressbar","aria-hidden":!0},t));if("volume"!==e){i.appendChild(Z("span",null,"0"));const t={played:"played",buffer:"buffered"}[e],s=t?He.get(t,this.config):"";i.innerText=`% ${s.toLowerCase()}`}return this.elements.display[e]=i,i},createTime(e,t){const i=ne(this.config.selectors.display[e],t),s=Z("div",X(i,{class:`${i.class?i.class:""} ${this.config.classNames.display.time} `.trim(),"aria-label":He.get(e,this.config)}),"00:00");return this.elements.display[e]=s,s},bindMenuItemShortcuts(e,t){fe.call(this,e,"keydown keyup",(i=>{if(![32,38,39,40].includes(i.which))return;if(i.preventDefault(),i.stopPropagation(),"keydown"===i.type)return;const s=re(e,'[role="menuitemradio"]');if(!s&&[32,39].includes(i.which))We.showMenuPanel.call(this,t,!0);else{let t;32!==i.which&&(40===i.which||s&&39===i.which?(t=e.nextElementSibling,H(t)||(t=e.parentNode.firstElementChild)):(t=e.previousElementSibling,H(t)||(t=e.parentNode.lastElementChild)),ue.call(this,t,!0))}}),!1),fe.call(this,e,"keyup",(e=>{13===e.which&&We.focusFirstMenuItem.call(this,null,!0)}))},createMenuItem({value:e,list:t,type:i,title:s,badge:n=null,checked:a=!1}){const l=ne(this.config.selectors.inputs[i]),o=Z("button",X(l,{type:"button",role:"menuitemradio",class:`${this.config.classNames.control} ${l.class?l.class:""}`.trim(),"aria-checked":a,value:e})),r=Z("span");r.innerHTML=s,H(n)&&r.appendChild(n),o.appendChild(r),Object.defineProperty(o,"checked",{enumerable:!0,get:()=>"true"===o.getAttribute("aria-checked"),set(e){e&&Array.from(o.parentNode.children).filter((e=>re(e,'[role="menuitemradio"]'))).forEach((e=>e.setAttribute("aria-checked","false"))),o.setAttribute("aria-checked",e?"true":"false")}}),this.listeners.bind(o,"click keyup",(t=>{if(!R(t)||32===t.which){switch(t.preventDefault(),t.stopPropagation(),o.checked=!0,i){case"language":this.currentTrack=Number(e);break;case"quality":this.quality=e;break;case"speed":this.speed=parseFloat(e)}We.showMenuPanel.call(this,"home",R(t))}}),i,!1),We.bindMenuItemShortcuts.call(this,o,i),t.appendChild(o)},formatTime(e=0,t=!1){if(!$(e))return e;return Ue(e,Be(this.duration)>0,t)},updateTimeDisplay(e=null,t=0,i=!1){H(e)&&$(t)&&(e.innerText=We.formatTime(t,i))},updateVolume(){this.supported.ui&&(H(this.elements.inputs.volume)&&We.setRange.call(this,this.elements.inputs.volume,this.muted?0:this.volume),H(this.elements.buttons.mute)&&(this.elements.buttons.mute.pressed=this.muted||0===this.volume))},setRange(e,t=0){H(e)&&(e.value=t,We.updateRangeFill.call(this,e))},updateProgress(e){if(!this.supported.ui||!F(e))return;let t=0;const i=(e,t)=>{const i=$(t)?t:0,s=H(e)?e:this.elements.display.buffer;if(H(s)){s.value=i;const e=s.getElementsByTagName("span")[0];H(e)&&(e.childNodes[0].nodeValue=i)}};if(e)switch(e.type){case"timeupdate":case"seeking":case"seeked":s=this.currentTime,n=this.duration,t=0===s||0===n||Number.isNaN(s)||Number.isNaN(n)?0:(s/n*100).toFixed(2),"timeupdate"===e.type&&We.setRange.call(this,this.elements.inputs.seek,t);break;case"playing":case"progress":i(this.elements.display.buffer,100*this.buffered)}var s,n},updateRangeFill(e){const t=F(e)?e.target:e;if(H(t)&&"range"===t.getAttribute("type")){if(re(t,this.config.selectors.inputs.seek)){t.setAttribute("aria-valuenow",this.currentTime);const e=We.formatTime(this.currentTime),i=We.formatTime(this.duration),s=He.get("seekLabel",this.config);t.setAttribute("aria-valuetext",s.replace("{currentTime}",e).replace("{duration}",i))}else if(re(t,this.config.selectors.inputs.volume)){const e=100*t.value;t.setAttribute("aria-valuenow",e),t.setAttribute("aria-valuetext",`${e.toFixed(1)}%`)}else t.setAttribute("aria-valuenow",t.value);Y.isWebkit&&t.style.setProperty("--value",t.value/t.max*100+"%")}},updateSeekTooltip(e){if(!this.config.tooltips.seek||!H(this.elements.inputs.seek)||!H(this.elements.display.seekTooltip)||0===this.duration)return;const t=`${this.config.classNames.tooltip}--visible`,i=e=>le(this.elements.display.seekTooltip,t,e);if(this.touch)return void i(!1);let s=0;const n=this.elements.progress.getBoundingClientRect();if(F(e))s=100/n.width*(e.pageX-n.left);else{if(!oe(this.elements.display.seekTooltip,t))return;s=parseFloat(this.elements.display.seekTooltip.style.left,10)}s<0?s=0:s>100&&(s=100),We.updateTimeDisplay.call(this,this.elements.display.seekTooltip,this.duration/100*s),this.elements.display.seekTooltip.style.left=`${s}%`,F(e)&&["mouseenter","mouseleave"].includes(e.type)&&i("mouseenter"===e.type)},timeUpdate(e){const t=!H(this.elements.display.duration)&&this.config.invertTime;We.updateTimeDisplay.call(this,this.elements.display.currentTime,t?this.duration-this.currentTime:this.currentTime,t),e&&"timeupdate"===e.type&&this.media.seeking||We.updateProgress.call(this,e)},durationUpdate(){if(!this.supported.ui||!this.config.invertTime&&this.currentTime)return;if(this.duration>=2**32)return ae(this.elements.display.currentTime,!0),void ae(this.elements.progress,!0);H(this.elements.inputs.seek)&&this.elements.inputs.seek.setAttribute("aria-valuemax",this.duration);const e=H(this.elements.display.duration);!e&&this.config.displayDuration&&this.paused&&We.updateTimeDisplay.call(this,this.elements.display.currentTime,this.duration),e&&We.updateTimeDisplay.call(this,this.elements.display.duration,this.duration),We.updateSeekTooltip.call(this)},toggleMenuButton(e,t){ae(this.elements.settings.buttons[e],!t)},updateSetting(e,t,i){const s=this.elements.settings.panels[e];let n=null,a=t;if("captions"===e)n=this.currentTrack;else{if(n=W(i)?this[e]:i,W(n)&&(n=this.config[e].default),!W(this.options[e])&&!this.options[e].includes(n))return void this.debug.warn(`Unsupported value of '${n}' for ${e}`);if(!this.config[e].options.includes(n))return void this.debug.warn(`Disabled value of '${n}' for ${e}`)}if(H(a)||(a=s&&s.querySelector('[role="menu"]')),!H(a))return;this.elements.settings.buttons[e].querySelector(`.${this.config.classNames.menu.value}`).innerHTML=We.getLabel.call(this,e,n);const l=a&&a.querySelector(`[value="${n}"]`);H(l)&&(l.checked=!0)},getLabel(e,t){switch(e){case"speed":return 1===t?He.get("normal",this.config):`${t}&times;`;case"quality":if($(t)){const e=He.get(`qualityLabel.${t}`,this.config);return e.length?e:`${t}p`}return Oe(t);case"captions":return Ye.getLabel.call(this);default:return null}},setQualityMenu(e){if(!H(this.elements.settings.panels.quality))return;const t="quality",i=this.elements.settings.panels.quality.querySelector('[role="menu"]');q(e)&&(this.options.quality=Ce(e).filter((e=>this.config.quality.options.includes(e))));const s=!W(this.options.quality)&&this.options.quality.length>1;if(We.toggleMenuButton.call(this,t,s),ie(i),We.checkMenu.call(this),!s)return;const n=e=>{const t=He.get(`qualityBadge.${e}`,this.config);return t.length?We.createBadge.call(this,t):null};this.options.quality.sort(((e,t)=>{const i=this.config.quality.options;return i.indexOf(e)>i.indexOf(t)?1:-1})).forEach((e=>{We.createMenuItem.call(this,{value:e,list:i,type:t,title:We.getLabel.call(this,"quality",e),badge:n(e)})})),We.updateSetting.call(this,t,i)},setCaptionsMenu(){if(!H(this.elements.settings.panels.captions))return;const e="captions",t=this.elements.settings.panels.captions.querySelector('[role="menu"]'),i=Ye.getTracks.call(this),s=Boolean(i.length);if(We.toggleMenuButton.call(this,e,s),ie(t),We.checkMenu.call(this),!s)return;const n=i.map(((e,i)=>({value:i,checked:this.captions.toggled&&this.currentTrack===i,title:Ye.getLabel.call(this,e),badge:e.language&&We.createBadge.call(this,e.language.toUpperCase()),list:t,type:"language"})));n.unshift({value:-1,checked:!this.captions.toggled,title:He.get("disabled",this.config),list:t,type:"language"}),n.forEach(We.createMenuItem.bind(this)),We.updateSetting.call(this,e,t)},setSpeedMenu(){if(!H(this.elements.settings.panels.speed))return;const e="speed",t=this.elements.settings.panels.speed.querySelector('[role="menu"]');this.options.speed=this.options.speed.filter((e=>e>=this.minimumSpeed&&e<=this.maximumSpeed));const i=!W(this.options.speed)&&this.options.speed.length>1;We.toggleMenuButton.call(this,e,i),ie(t),We.checkMenu.call(this),i&&(this.options.speed.forEach((i=>{We.createMenuItem.call(this,{value:i,list:t,type:e,title:We.getLabel.call(this,"speed",i)})})),We.updateSetting.call(this,e,t))},checkMenu(){const{buttons:e}=this.elements.settings,t=!W(e)&&Object.values(e).some((e=>!e.hidden));ae(this.elements.settings.menu,!t)},focusFirstMenuItem(e,t=!1){if(this.elements.settings.popup.hidden)return;let i=e;H(i)||(i=Object.values(this.elements.settings.panels).find((e=>!e.hidden)));const s=i.querySelector('[role^="menuitem"]');ue.call(this,s,t)},toggleMenu(e){const{popup:t}=this.elements.settings,i=this.elements.buttons.settings;if(!H(t)||!H(i))return;const{hidden:s}=t;let n=s;if(O(e))n=e;else if(R(e)&&27===e.which)n=!1;else if(F(e)){const s=j(e.composedPath)?e.composedPath()[0]:e.target,a=t.contains(s);if(a||!a&&e.target!==i&&n)return}i.setAttribute("aria-expanded",n),ae(t,!n),le(this.elements.container,this.config.classNames.menu.open,n),n&&R(e)?We.focusFirstMenuItem.call(this,null,!0):n||s||ue.call(this,i,R(e))},getMenuSize(e){const t=e.cloneNode(!0);t.style.position="absolute",t.style.opacity=0,t.removeAttribute("hidden"),e.parentNode.appendChild(t);const i=t.scrollWidth,s=t.scrollHeight;return te(t),{width:i,height:s}},showMenuPanel(e="",t=!1){const i=this.elements.container.querySelector(`#plyr-settings-${this.id}-${e}`);if(!H(i))return;const s=i.parentNode,n=Array.from(s.children).find((e=>!e.hidden));if(me.transitions&&!me.reducedMotion){s.style.width=`${n.scrollWidth}px`,s.style.height=`${n.scrollHeight}px`;const e=We.getMenuSize.call(this,i),t=e=>{e.target===s&&["width","height"].includes(e.propertyName)&&(s.style.width="",s.style.height="",be.call(this,s,z,t))};fe.call(this,s,z,t),s.style.width=`${e.width}px`,s.style.height=`${e.height}px`}ae(n,!0),ae(i,!1),We.focusFirstMenuItem.call(this,i,t)},setDownloadUrl(){const e=this.elements.buttons.download;H(e)&&e.setAttribute("href",this.download)},create(e){const{bindMenuItemShortcuts:t,createButton:i,createProgress:s,createRange:n,createTime:a,setQualityMenu:l,setSpeedMenu:o,showMenuPanel:r}=We;this.elements.controls=null,q(this.config.controls)&&this.config.controls.includes("play-large")&&this.elements.container.appendChild(i.call(this,"play-large"));const c=Z("div",ne(this.config.selectors.controls.wrapper));this.elements.controls=c;const h={class:"plyr__controls__item"};return Ce(q(this.config.controls)?this.config.controls:[]).forEach((l=>{if("restart"===l&&c.appendChild(i.call(this,"restart",h)),"rewind"===l&&c.appendChild(i.call(this,"rewind",h)),"play"===l&&c.appendChild(i.call(this,"play",h)),"fast-forward"===l&&c.appendChild(i.call(this,"fast-forward",h)),"progress"===l){const t=Z("div",{class:`${h.class} plyr__progress__container`}),i=Z("div",ne(this.config.selectors.progress));if(i.appendChild(n.call(this,"seek",{id:`plyr-seek-${e.id}`})),i.appendChild(s.call(this,"buffer")),this.config.tooltips.seek){const e=Z("span",{class:this.config.classNames.tooltip},"00:00");i.appendChild(e),this.elements.display.seekTooltip=e}this.elements.progress=i,t.appendChild(this.elements.progress),c.appendChild(t)}if("current-time"===l&&c.appendChild(a.call(this,"currentTime",h)),"duration"===l&&c.appendChild(a.call(this,"duration",h)),"mute"===l||"volume"===l){let{volume:t}=this.elements;if(H(t)&&c.contains(t)||(t=Z("div",X({},h,{class:`${h.class} plyr__volume`.trim()})),this.elements.volume=t,c.appendChild(t)),"mute"===l&&t.appendChild(i.call(this,"mute")),"volume"===l&&!Y.isIos){const i={max:1,step:.05,value:this.config.volume};t.appendChild(n.call(this,"volume",X(i,{id:`plyr-volume-${e.id}`})))}}if("captions"===l&&c.appendChild(i.call(this,"captions",h)),"settings"===l&&!W(this.config.settings)){const s=Z("div",X({},h,{class:`${h.class} plyr__menu`.trim(),hidden:""}));s.appendChild(i.call(this,"settings",{"aria-haspopup":!0,"aria-controls":`plyr-settings-${e.id}`,"aria-expanded":!1}));const n=Z("div",{class:"plyr__menu__container",id:`plyr-settings-${e.id}`,hidden:""}),a=Z("div"),l=Z("div",{id:`plyr-settings-${e.id}-home`}),o=Z("div",{role:"menu"});l.appendChild(o),a.appendChild(l),this.elements.settings.panels.home=l,this.config.settings.forEach((i=>{const s=Z("button",X(ne(this.config.selectors.buttons.settings),{type:"button",class:`${this.config.classNames.control} ${this.config.classNames.control}--forward`,role:"menuitem","aria-haspopup":!0,hidden:""}));t.call(this,s,i),fe.call(this,s,"click",(()=>{r.call(this,i,!1)}));const n=Z("span",null,He.get(i,this.config)),l=Z("span",{class:this.config.classNames.menu.value});l.innerHTML=e[i],n.appendChild(l),s.appendChild(n),o.appendChild(s);const c=Z("div",{id:`plyr-settings-${e.id}-${i}`,hidden:""}),h=Z("button",{type:"button",class:`${this.config.classNames.control} ${this.config.classNames.control}--back`});h.appendChild(Z("span",{"aria-hidden":!0},He.get(i,this.config))),h.appendChild(Z("span",{class:this.config.classNames.hidden},He.get("menuBack",this.config))),fe.call(this,c,"keydown",(e=>{37===e.which&&(e.preventDefault(),e.stopPropagation(),r.call(this,"home",!0))}),!1),fe.call(this,h,"click",(()=>{r.call(this,"home",!1)})),c.appendChild(h),c.appendChild(Z("div",{role:"menu"})),a.appendChild(c),this.elements.settings.buttons[i]=s,this.elements.settings.panels[i]=c})),n.appendChild(a),s.appendChild(n),c.appendChild(s),this.elements.settings.popup=n,this.elements.settings.menu=s}if("pip"===l&&me.pip&&c.appendChild(i.call(this,"pip",h)),"airplay"===l&&me.airplay&&c.appendChild(i.call(this,"airplay",h)),"download"===l){const e=X({},h,{element:"a",href:this.download,target:"_blank"});this.isHTML5&&(e.download="");const{download:t}=this.config.urls;!U(t)&&this.isEmbed&&X(e,{icon:`logo-${this.provider}`,label:this.provider}),c.appendChild(i.call(this,"download",e))}"fullscreen"===l&&c.appendChild(i.call(this,"fullscreen",h))})),this.isHTML5&&l.call(this,Le.getQualityOptions.call(this)),o.call(this),c},inject(){if(this.config.loadSprite){const e=We.getIconUrl.call(this);e.cors&&Ve(e.url,"sprite-plyr")}this.id=Math.floor(1e4*Math.random());let e=null;this.elements.controls=null;const t={id:this.id,seektime:this.config.seekTime,title:this.config.title};let i=!0;j(this.config.controls)&&(this.config.controls=this.config.controls.call(this,t)),this.config.controls||(this.config.controls=[]),H(this.config.controls)||_(this.config.controls)?e=this.config.controls:(e=We.create.call(this,{id:this.id,seektime:this.config.seekTime,speed:this.speed,quality:this.quality,captions:Ye.getLabel.call(this)}),i=!1);let s;i&&_(this.config.controls)&&(e=(e=>{let i=e;return Object.entries(t).forEach((([e,t])=>{i=_e(i,`{${e}}`,t)})),i})(e)),_(this.config.selectors.controls.container)&&(s=document.querySelector(this.config.selectors.controls.container)),H(s)||(s=this.elements.container);if(s[H(e)?"insertAdjacentElement":"insertAdjacentHTML"]("afterbegin",e),H(this.elements.controls)||We.findElements.call(this),!W(this.elements.buttons)){const e=e=>{const t=this.config.classNames.controlPressed;Object.defineProperty(e,"pressed",{enumerable:!0,get:()=>oe(e,t),set(i=!1){le(e,t,i)}})};Object.values(this.elements.buttons).filter(Boolean).forEach((t=>{q(t)||D(t)?Array.from(t).filter(Boolean).forEach(e):e(t)}))}if(Y.isEdge&&K(s),this.config.tooltips.controls){const{classNames:e,selectors:t}=this.config,i=`${t.controls.wrapper} ${t.labels} .${e.hidden}`,s=ce.call(this,i);Array.from(s).forEach((e=>{le(e,this.config.classNames.hidden,!1),le(e,this.config.classNames.tooltip,!0)}))}}};function ze(e,t=!0){let i=e;if(t){const e=document.createElement("a");e.href=i,i=e.href}try{return new URL(i)}catch(e){return null}}function Ke(e){const t=new URLSearchParams;return L(e)&&Object.entries(e).forEach((([e,i])=>{t.set(e,i)})),t}const Ye={setup(){if(!this.supported.ui)return;if(!this.isVideo||this.isYouTube||this.isHTML5&&!me.textTracks)return void(q(this.config.controls)&&this.config.controls.includes("settings")&&this.config.settings.includes("captions")&&We.setCaptionsMenu.call(this));var e,t;if(H(this.elements.captions)||(this.elements.captions=Z("div",ne(this.config.selectors.captions)),e=this.elements.captions,t=this.elements.wrapper,H(e)&&H(t)&&t.parentNode.insertBefore(e,t.nextSibling)),Y.isIE&&window.URL){const e=this.media.querySelectorAll("track");Array.from(e).forEach((e=>{const t=e.getAttribute("src"),i=ze(t);null!==i&&i.hostname!==window.location.href.hostname&&["http:","https:"].includes(i.protocol)&&Re(t,"blob").then((t=>{e.setAttribute("src",window.URL.createObjectURL(t))})).catch((()=>{te(e)}))}))}const i=Ce((navigator.languages||[navigator.language||navigator.userLanguage||"en"]).map((e=>e.split("-")[0])));let s=(this.storage.get("language")||this.config.captions.language||"auto").toLowerCase();"auto"===s&&([s]=i);let n=this.storage.get("captions");if(O(n)||({active:n}=this.config.captions),Object.assign(this.captions,{toggled:!1,active:n,language:s,languages:i}),this.isHTML5){const e=this.config.captions.update?"addtrack removetrack":"removetrack";fe.call(this,this.media.textTracks,e,Ye.update.bind(this))}setTimeout(Ye.update.bind(this),0)},update(){const e=Ye.getTracks.call(this,!0),{active:t,language:i,meta:s,currentTrackNode:n}=this.captions,a=Boolean(e.find((e=>e.language===i)));this.isHTML5&&this.isVideo&&e.filter((e=>!s.get(e))).forEach((e=>{this.debug.log("Track added",e),s.set(e,{default:"showing"===e.mode}),"showing"===e.mode&&(e.mode="hidden"),fe.call(this,e,"cuechange",(()=>Ye.updateCues.call(this)))})),(a&&this.language!==i||!e.includes(n))&&(Ye.setLanguage.call(this,i),Ye.toggle.call(this,t&&a)),this.elements&&le(this.elements.container,this.config.classNames.captions.enabled,!W(e)),q(this.config.controls)&&this.config.controls.includes("settings")&&this.config.settings.includes("captions")&&We.setCaptionsMenu.call(this)},toggle(e,t=!0){if(!this.supported.ui)return;const{toggled:i}=this.captions,s=this.config.classNames.captions.active,n=I(e)?!i:e;if(n!==i){if(t||(this.captions.active=n,this.storage.set({captions:n})),!this.language&&n&&!t){const e=Ye.getTracks.call(this),t=Ye.findTrack.call(this,[this.captions.language,...this.captions.languages],!0);return this.captions.language=t.language,void Ye.set.call(this,e.indexOf(t))}this.elements.buttons.captions&&(this.elements.buttons.captions.pressed=n),le(this.elements.container,s,n),this.captions.toggled=n,We.updateSetting.call(this,"captions"),ve.call(this,this.media,n?"captionsenabled":"captionsdisabled")}setTimeout((()=>{n&&this.captions.toggled&&(this.captions.currentTrackNode.mode="hidden")}))},set(e,t=!0){const i=Ye.getTracks.call(this);if(-1!==e)if($(e))if(e in i){if(this.captions.currentTrack!==e){this.captions.currentTrack=e;const s=i[e],{language:n}=s||{};this.captions.currentTrackNode=s,We.updateSetting.call(this,"captions"),t||(this.captions.language=n,this.storage.set({language:n})),this.isVimeo&&this.embed.enableTextTrack(n),ve.call(this,this.media,"languagechange")}Ye.toggle.call(this,!0,t),this.isHTML5&&this.isVideo&&Ye.updateCues.call(this)}else this.debug.warn("Track not found",e);else this.debug.warn("Invalid caption argument",e);else Ye.toggle.call(this,!1,t)},setLanguage(e,t=!0){if(!_(e))return void this.debug.warn("Invalid language argument",e);const i=e.toLowerCase();this.captions.language=i;const s=Ye.getTracks.call(this),n=Ye.findTrack.call(this,[i]);Ye.set.call(this,s.indexOf(n),t)},getTracks(e=!1){return Array.from((this.media||{}).textTracks||[]).filter((t=>!this.isHTML5||e||this.captions.meta.has(t))).filter((e=>["captions","subtitles"].includes(e.kind)))},findTrack(e,t=!1){const i=Ye.getTracks.call(this),s=e=>Number((this.captions.meta.get(e)||{}).default),n=Array.from(i).sort(((e,t)=>s(t)-s(e)));let a;return e.every((e=>(a=n.find((t=>t.language===e)),!a))),a||(t?n[0]:void 0)},getCurrentTrack(){return Ye.getTracks.call(this)[this.currentTrack]},getLabel(e){let t=e;return!V(t)&&me.textTracks&&this.captions.toggled&&(t=Ye.getCurrentTrack.call(this)),V(t)?W(t.label)?W(t.language)?He.get("enabled",this.config):e.language.toUpperCase():t.label:He.get("disabled",this.config)},updateCues(e){if(!this.supported.ui)return;if(!H(this.elements.captions))return void this.debug.warn("No captions element to render to");if(!I(e)&&!Array.isArray(e))return void this.debug.warn("updateCues: Invalid input",e);let t=e;if(!t){const e=Ye.getCurrentTrack.call(this);t=Array.from((e||{}).activeCues||[]).map((e=>e.getCueAsHTML())).map(qe)}const i=t.map((e=>e.trim())).join("\n");if(i!==this.elements.captions.innerHTML){ie(this.elements.captions);const e=Z("span",ne(this.config.selectors.caption));e.innerHTML=i,this.elements.captions.appendChild(e),ve.call(this,this.media,"cuechange")}}},Qe={enabled:!0,title:"",debug:!1,autoplay:!1,autopause:!0,playsinline:!0,seekTime:10,volume:1,muted:!1,duration:null,displayDuration:!0,invertTime:!0,toggleInvert:!0,ratio:null,clickToPlay:!0,hideControls:!0,resetOnEnd:!1,disableContextMenu:!0,loadSprite:!0,iconPrefix:"plyr",iconUrl:"https://cdn.plyr.io/3.6.12/plyr.svg",blankVideo:"https://cdn.plyr.io/static/blank.mp4",quality:{default:576,options:[4320,2880,2160,1440,1080,720,576,480,360,240],forced:!1,onChange:null},loop:{active:!1},speed:{selected:1,options:[.5,.75,1,1.25,1.5,1.75,2,4]},keyboard:{focused:!0,global:!1},tooltips:{controls:!1,seek:!0},captions:{active:!1,language:"auto",update:!1},fullscreen:{enabled:!0,fallback:!0,iosNative:!1},storage:{enabled:!0,key:"plyr"},controls:["play-large","play","progress","current-time","mute","volume","captions","settings","pip","airplay","fullscreen"],settings:["captions","quality","speed"],i18n:{restart:"Restart",rewind:"Rewind {seektime}s",play:"Play",pause:"Pause",fastForward:"Forward {seektime}s",seek:"Seek",seekLabel:"{currentTime} of {duration}",played:"Played",buffered:"Buffered",currentTime:"Current time",duration:"Duration",volume:"Volume",mute:"Mute",unmute:"Unmute",enableCaptions:"Enable captions",disableCaptions:"Disable captions",download:"Download",enterFullscreen:"Enter fullscreen",exitFullscreen:"Exit fullscreen",frameTitle:"Player for {title}",captions:"Captions",settings:"Settings",pip:"PIP",menuBack:"Go back to previous menu",speed:"Speed",normal:"Normal",quality:"Quality",loop:"Loop",start:"Start",end:"End",all:"All",reset:"Reset",disabled:"Disabled",enabled:"Enabled",advertisement:"Ad",qualityBadge:{2160:"4K",1440:"HD",1080:"HD",720:"HD",576:"SD",480:"SD"}},urls:{download:null,vimeo:{sdk:"https://player.vimeo.com/api/player.js",iframe:"https://player.vimeo.com/video/{0}?{1}",api:"https://vimeo.com/api/oembed.json?url={0}"},youtube:{sdk:"https://www.youtube.com/iframe_api",api:"https://noembed.com/embed?url=https://www.youtube.com/watch?v={0}"},googleIMA:{sdk:"https://imasdk.googleapis.com/js/sdkloader/ima3.js"}},listeners:{seek:null,play:null,pause:null,restart:null,rewind:null,fastForward:null,mute:null,volume:null,captions:null,download:null,fullscreen:null,pip:null,airplay:null,speed:null,quality:null,loop:null,language:null},events:["ended","progress","stalled","playing","waiting","canplay","canplaythrough","loadstart","loadeddata","loadedmetadata","timeupdate","volumechange","play","pause","error","seeking","seeked","emptied","ratechange","cuechange","download","enterfullscreen","exitfullscreen","captionsenabled","captionsdisabled","languagechange","controlshidden","controlsshown","ready","statechange","qualitychange","adsloaded","adscontentpause","adscontentresume","adstarted","adsmidpoint","adscomplete","adsallcomplete","adsimpression","adsclick"],selectors:{editable:"input, textarea, select, [contenteditable]",container:".plyr",controls:{container:null,wrapper:".plyr__controls"},labels:"[data-plyr]",buttons:{play:'[data-plyr="play"]',pause:'[data-plyr="pause"]',restart:'[data-plyr="restart"]',rewind:'[data-plyr="rewind"]',fastForward:'[data-plyr="fast-forward"]',mute:'[data-plyr="mute"]',captions:'[data-plyr="captions"]',download:'[data-plyr="download"]',fullscreen:'[data-plyr="fullscreen"]',pip:'[data-plyr="pip"]',airplay:'[data-plyr="airplay"]',settings:'[data-plyr="settings"]',loop:'[data-plyr="loop"]'},inputs:{seek:'[data-plyr="seek"]',volume:'[data-plyr="volume"]',speed:'[data-plyr="speed"]',language:'[data-plyr="language"]',quality:'[data-plyr="quality"]'},display:{currentTime:".plyr__time--current",duration:".plyr__time--duration",buffer:".plyr__progress__buffer",loop:".plyr__progress__loop",volume:".plyr__volume--display"},progress:".plyr__progress",captions:".plyr__captions",caption:".plyr__caption"},classNames:{type:"plyr--{0}",provider:"plyr--{0}",video:"plyr__video-wrapper",embed:"plyr__video-embed",videoFixedRatio:"plyr__video-wrapper--fixed-ratio",embedContainer:"plyr__video-embed__container",poster:"plyr__poster",posterEnabled:"plyr__poster-enabled",ads:"plyr__ads",control:"plyr__control",controlPressed:"plyr__control--pressed",playing:"plyr--playing",paused:"plyr--paused",stopped:"plyr--stopped",loading:"plyr--loading",hover:"plyr--hover",tooltip:"plyr__tooltip",cues:"plyr__cues",hidden:"plyr__sr-only",hideControls:"plyr--hide-controls",isIos:"plyr--is-ios",isTouch:"plyr--is-touch",uiSupported:"plyr--full-ui",noTransition:"plyr--no-transition",display:{time:"plyr__time"},menu:{value:"plyr__menu__value",badge:"plyr__badge",open:"plyr--menu-open"},captions:{enabled:"plyr--captions-enabled",active:"plyr--captions-active"},fullscreen:{enabled:"plyr--fullscreen-enabled",fallback:"plyr--fullscreen-fallback"},pip:{supported:"plyr--pip-supported",active:"plyr--pip-active"},airplay:{supported:"plyr--airplay-supported",active:"plyr--airplay-active"},tabFocus:"plyr__tab-focus",previewThumbnails:{thumbContainer:"plyr__preview-thumb",thumbContainerShown:"plyr__preview-thumb--is-shown",imageContainer:"plyr__preview-thumb__image-container",timeContainer:"plyr__preview-thumb__time-container",scrubbingContainer:"plyr__preview-scrubbing",scrubbingContainerShown:"plyr__preview-scrubbing--is-shown"}},attributes:{embed:{provider:"data-plyr-provider",id:"data-plyr-embed-id",hash:"data-plyr-embed-hash"}},ads:{enabled:!1,publisherId:"",tagUrl:""},previewThumbnails:{enabled:!1,src:""},vimeo:{byline:!1,portrait:!1,title:!1,speed:!0,transparent:!1,customControls:!0,referrerPolicy:null,premium:!1},youtube:{rel:0,showinfo:0,iv_load_policy:3,modestbranding:1,customControls:!0,noCookie:!1}},Xe="picture-in-picture",Je="inline",Ge={html5:"html5",youtube:"youtube",vimeo:"vimeo"},Ze="audio",et="video";const tt=()=>{};class it{constructor(e=!1){this.enabled=window.console&&e,this.enabled&&this.log("Debugging enabled")}get log(){return this.enabled?Function.prototype.bind.call(console.log,console):tt}get warn(){return this.enabled?Function.prototype.bind.call(console.warn,console):tt}get error(){return this.enabled?Function.prototype.bind.call(console.error,console):tt}}class st{constructor(t){e(this,"onChange",(()=>{if(!this.enabled)return;const e=this.player.elements.buttons.fullscreen;H(e)&&(e.pressed=this.active);const t=this.target===this.player.media?this.target:this.player.elements.container;ve.call(this.player,t,this.active?"enterfullscreen":"exitfullscreen",!0)})),e(this,"toggleFallback",((e=!1)=>{if(e?this.scrollPosition={x:window.scrollX||0,y:window.scrollY||0}:window.scrollTo(this.scrollPosition.x,this.scrollPosition.y),document.body.style.overflow=e?"hidden":"",le(this.target,this.player.config.classNames.fullscreen.fallback,e),Y.isIos){let t=document.head.querySelector('meta[name="viewport"]');const i="viewport-fit=cover";t||(t=document.createElement("meta"),t.setAttribute("name","viewport"));const s=_(t.content)&&t.content.includes(i);e?(this.cleanupViewport=!s,s||(t.content+=`,${i}`)):this.cleanupViewport&&(t.content=t.content.split(",").filter((e=>e.trim()!==i)).join(","))}this.onChange()})),e(this,"trapFocus",(e=>{if(Y.isIos||!this.active||"Tab"!==e.key||9!==e.keyCode)return;const t=document.activeElement,i=ce.call(this.player,"a[href], button:not(:disabled), input:not(:disabled), [tabindex]"),[s]=i,n=i[i.length-1];t!==n||e.shiftKey?t===s&&e.shiftKey&&(n.focus(),e.preventDefault()):(s.focus(),e.preventDefault())})),e(this,"update",(()=>{if(this.enabled){let e;e=this.forceFallback?"Fallback (forced)":st.native?"Native":"Fallback",this.player.debug.log(`${e} fullscreen enabled`)}else this.player.debug.log("Fullscreen not supported and fallback disabled");le(this.player.elements.container,this.player.config.classNames.fullscreen.enabled,this.enabled)})),e(this,"enter",(()=>{this.enabled&&(Y.isIos&&this.player.config.fullscreen.iosNative?this.player.isVimeo?this.player.embed.requestFullscreen():this.target.webkitEnterFullscreen():!st.native||this.forceFallback?this.toggleFallback(!0):this.prefix?W(this.prefix)||this.target[`${this.prefix}Request${this.property}`]():this.target.requestFullscreen({navigationUI:"hide"}))})),e(this,"exit",(()=>{if(this.enabled)if(Y.isIos&&this.player.config.fullscreen.iosNative)this.target.webkitExitFullscreen(),ke(this.player.play());else if(!st.native||this.forceFallback)this.toggleFallback(!1);else if(this.prefix){if(!W(this.prefix)){const e="moz"===this.prefix?"Cancel":"Exit";document[`${this.prefix}${e}${this.property}`]()}}else(document.cancelFullScreen||document.exitFullscreen).call(document)})),e(this,"toggle",(()=>{this.active?this.exit():this.enter()})),this.player=t,this.prefix=st.prefix,this.property=st.property,this.scrollPosition={x:0,y:0},this.forceFallback="force"===t.config.fullscreen.fallback,this.player.elements.fullscreen=t.config.fullscreen.container&&function(e,t){const{prototype:i}=Element;return(i.closest||function(){let e=this;do{if(re.matches(e,t))return e;e=e.parentElement||e.parentNode}while(null!==e&&1===e.nodeType);return null}).call(e,t)}(this.player.elements.container,t.config.fullscreen.container),fe.call(this.player,document,"ms"===this.prefix?"MSFullscreenChange":`${this.prefix}fullscreenchange`,(()=>{this.onChange()})),fe.call(this.player,this.player.elements.container,"dblclick",(e=>{H(this.player.elements.controls)&&this.player.elements.controls.contains(e.target)||this.player.listeners.proxy(e,this.toggle,"fullscreen")})),fe.call(this,this.player.elements.container,"keydown",(e=>this.trapFocus(e))),this.update()}static get native(){return!!(document.fullscreenEnabled||document.webkitFullscreenEnabled||document.mozFullScreenEnabled||document.msFullscreenEnabled)}get usingNative(){return st.native&&!this.forceFallback}static get prefix(){if(j(document.exitFullscreen))return"";let e="";return["webkit","moz","ms"].some((t=>!(!j(document[`${t}ExitFullscreen`])&&!j(document[`${t}CancelFullScreen`]))&&(e=t,!0))),e}static get property(){return"moz"===this.prefix?"FullScreen":"Fullscreen"}get enabled(){return(st.native||this.player.config.fullscreen.fallback)&&this.player.config.fullscreen.enabled&&this.player.supported.ui&&this.player.isVideo}get active(){if(!this.enabled)return!1;if(!st.native||this.forceFallback)return oe(this.target,this.player.config.classNames.fullscreen.fallback);const e=this.prefix?this.target.getRootNode()[`${this.prefix}${this.property}Element`]:this.target.getRootNode().fullscreenElement;return e&&e.shadowRoot?e===this.target.getRootNode().host:e===this.target}get target(){return Y.isIos&&this.player.config.fullscreen.iosNative?this.player.media:this.player.elements.fullscreen||this.player.elements.container}}function nt(e,t=1){return new Promise(((i,s)=>{const n=new Image,a=()=>{delete n.onload,delete n.onerror,(n.naturalWidth>=t?i:s)(n)};Object.assign(n,{onload:a,onerror:a,src:e})}))}const at={addStyleHook(){le(this.elements.container,this.config.selectors.container.replace(".",""),!0),le(this.elements.container,this.config.classNames.uiSupported,this.supported.ui)},toggleNativeControls(e=!1){e&&this.isHTML5?this.media.setAttribute("controls",""):this.media.removeAttribute("controls")},build(){if(this.listeners.media(),!this.supported.ui)return this.debug.warn(`Basic support only for ${this.provider} ${this.type}`),void at.toggleNativeControls.call(this,!0);H(this.elements.controls)||(We.inject.call(this),this.listeners.controls()),at.toggleNativeControls.call(this),this.isHTML5&&Ye.setup.call(this),this.volume=null,this.muted=null,this.loop=null,this.quality=null,this.speed=null,We.updateVolume.call(this),We.timeUpdate.call(this),We.durationUpdate.call(this),at.checkPlaying.call(this),le(this.elements.container,this.config.classNames.pip.supported,me.pip&&this.isHTML5&&this.isVideo),le(this.elements.container,this.config.classNames.airplay.supported,me.airplay&&this.isHTML5),le(this.elements.container,this.config.classNames.isIos,Y.isIos),le(this.elements.container,this.config.classNames.isTouch,this.touch),this.ready=!0,setTimeout((()=>{ve.call(this,this.media,"ready")}),0),at.setTitle.call(this),this.poster&&at.setPoster.call(this,this.poster,!1).catch((()=>{})),this.config.duration&&We.durationUpdate.call(this)},setTitle(){let e=He.get("play",this.config);if(_(this.config.title)&&!W(this.config.title)&&(e+=`, ${this.config.title}`),Array.from(this.elements.buttons.play||[]).forEach((t=>{t.setAttribute("aria-label",e)})),this.isEmbed){const e=he.call(this,"iframe");if(!H(e))return;const t=W(this.config.title)?"video":this.config.title,i=He.get("frameTitle",this.config);e.setAttribute("title",i.replace("{title}",t))}},togglePoster(e){le(this.elements.container,this.config.classNames.posterEnabled,e)},setPoster(e,t=!0){return t&&this.poster?Promise.reject(new Error("Poster already set")):(this.media.setAttribute("data-poster",e),this.elements.poster.removeAttribute("hidden"),Te.call(this).then((()=>nt(e))).catch((t=>{throw e===this.poster&&at.togglePoster.call(this,!1),t})).then((()=>{if(e!==this.poster)throw new Error("setPoster cancelled by later call to setPoster")})).then((()=>(Object.assign(this.elements.poster.style,{backgroundImage:`url('${e}')`,backgroundSize:""}),at.togglePoster.call(this,!0),e))))},checkPlaying(e){le(this.elements.container,this.config.classNames.playing,this.playing),le(this.elements.container,this.config.classNames.paused,this.paused),le(this.elements.container,this.config.classNames.stopped,this.stopped),Array.from(this.elements.buttons.play||[]).forEach((e=>{Object.assign(e,{pressed:this.playing}),e.setAttribute("aria-label",He.get(this.playing?"pause":"play",this.config))})),F(e)&&"timeupdate"===e.type||at.toggleControls.call(this)},checkLoading(e){this.loading=["stalled","waiting"].includes(e.type),clearTimeout(this.timers.loading),this.timers.loading=setTimeout((()=>{le(this.elements.container,this.config.classNames.loading,this.loading),at.toggleControls.call(this)}),this.loading?250:0)},toggleControls(e){const{controls:t}=this.elements;if(t&&this.config.hideControls){const i=this.touch&&this.lastSeekTime+2e3>Date.now();this.toggleControls(Boolean(e||this.loading||this.paused||t.pressed||t.hover||i))}},migrateStyles(){Object.values({...this.media.style}).filter((e=>!W(e)&&_(e)&&e.startsWith("--plyr"))).forEach((e=>{this.elements.container.style.setProperty(e,this.media.style.getPropertyValue(e)),this.media.style.removeProperty(e)})),W(this.media.style)&&this.media.removeAttribute("style")}};class lt{constructor(t){e(this,"firstTouch",(()=>{const{player:e}=this,{elements:t}=e;e.touch=!0,le(t.container,e.config.classNames.isTouch,!0)})),e(this,"setTabFocus",(e=>{const{player:t}=this,{elements:i}=t;if(clearTimeout(this.focusTimer),"keydown"===e.type&&9!==e.which)return;"keydown"===e.type&&(this.lastKeyDown=e.timeStamp);const s=e.timeStamp-this.lastKeyDown<=20;("focus"!==e.type||s)&&((()=>{const e=t.config.classNames.tabFocus;le(ce.call(t,`.${e}`),e,!1)})(),"focusout"!==e.type&&(this.focusTimer=setTimeout((()=>{const e=document.activeElement;i.container.contains(e)&&le(document.activeElement,t.config.classNames.tabFocus,!0)}),10)))})),e(this,"global",((e=!0)=>{const{player:t}=this;t.config.keyboard.global&&ge.call(t,window,"keydown keyup",this.handleKey,e,!1),ge.call(t,document.body,"click",this.toggleMenu,e),ye.call(t,document.body,"touchstart",this.firstTouch),ge.call(t,document.body,"keydown focus blur focusout",this.setTabFocus,e,!1,!0)})),e(this,"container",(()=>{const{player:e}=this,{config:t,elements:i,timers:s}=e;!t.keyboard.global&&t.keyboard.focused&&fe.call(e,i.container,"keydown keyup",this.handleKey,!1),fe.call(e,i.container,"mousemove mouseleave touchstart touchmove enterfullscreen exitfullscreen",(t=>{const{controls:n}=i;n&&"enterfullscreen"===t.type&&(n.pressed=!1,n.hover=!1);let a=0;["touchstart","touchmove","mousemove"].includes(t.type)&&(at.toggleControls.call(e,!0),a=e.touch?3e3:2e3),clearTimeout(s.controls),s.controls=setTimeout((()=>at.toggleControls.call(e,!1)),a)}));const n=()=>{if(!e.isVimeo||e.config.vimeo.premium)return;const t=i.wrapper,{active:s}=e.fullscreen,[n,a]=xe.call(e),l=Se(`aspect-ratio: ${n} / ${a}`);if(!s)return void(l?(t.style.width=null,t.style.height=null):(t.style.maxWidth=null,t.style.margin=null));const[o,r]=[Math.max(document.documentElement.clientWidth||0,window.innerWidth||0),Math.max(document.documentElement.clientHeight||0,window.innerHeight||0)],c=o/r>n/a;l?(t.style.width=c?"auto":"100%",t.style.height=c?"100%":"auto"):(t.style.maxWidth=c?r/a*n+"px":null,t.style.margin=c?"0 auto":null)},a=()=>{clearTimeout(s.resized),s.resized=setTimeout(n,50)};fe.call(e,i.container,"enterfullscreen exitfullscreen",(t=>{const{target:s}=e.fullscreen;if(s!==i.container)return;if(!e.isEmbed&&W(e.config.ratio))return;n();("enterfullscreen"===t.type?fe:be).call(e,window,"resize",a)}))})),e(this,"media",(()=>{const{player:e}=this,{elements:t}=e;if(fe.call(e,e.media,"timeupdate seeking seeked",(t=>We.timeUpdate.call(e,t))),fe.call(e,e.media,"durationchange loadeddata loadedmetadata",(t=>We.durationUpdate.call(e,t))),fe.call(e,e.media,"ended",(()=>{e.isHTML5&&e.isVideo&&e.config.resetOnEnd&&(e.restart(),e.pause())})),fe.call(e,e.media,"progress playing seeking seeked",(t=>We.updateProgress.call(e,t))),fe.call(e,e.media,"volumechange",(t=>We.updateVolume.call(e,t))),fe.call(e,e.media,"playing play pause ended emptied timeupdate",(t=>at.checkPlaying.call(e,t))),fe.call(e,e.media,"waiting canplay seeked playing",(t=>at.checkLoading.call(e,t))),e.supported.ui&&e.config.clickToPlay&&!e.isAudio){const i=he.call(e,`.${e.config.classNames.video}`);if(!H(i))return;fe.call(e,t.container,"click",(s=>{([t.container,i].includes(s.target)||i.contains(s.target))&&(e.touch&&e.config.hideControls||(e.ended?(this.proxy(s,e.restart,"restart"),this.proxy(s,(()=>{ke(e.play())}),"play")):this.proxy(s,(()=>{ke(e.togglePlay())}),"play")))}))}e.supported.ui&&e.config.disableContextMenu&&fe.call(e,t.wrapper,"contextmenu",(e=>{e.preventDefault()}),!1),fe.call(e,e.media,"volumechange",(()=>{e.storage.set({volume:e.volume,muted:e.muted})})),fe.call(e,e.media,"ratechange",(()=>{We.updateSetting.call(e,"speed"),e.storage.set({speed:e.speed})})),fe.call(e,e.media,"qualitychange",(t=>{We.updateSetting.call(e,"quality",null,t.detail.quality)})),fe.call(e,e.media,"ready qualitychange",(()=>{We.setDownloadUrl.call(e)}));const i=e.config.events.concat(["keyup","keydown"]).join(" ");fe.call(e,e.media,i,(i=>{let{detail:s={}}=i;"error"===i.type&&(s=e.media.error),ve.call(e,t.container,i.type,!0,s)}))})),e(this,"proxy",((e,t,i)=>{const{player:s}=this,n=s.config.listeners[i];let a=!0;j(n)&&(a=n.call(s,e)),!1!==a&&j(t)&&t.call(s,e)})),e(this,"bind",((e,t,i,s,n=!0)=>{const{player:a}=this,l=a.config.listeners[s],o=j(l);fe.call(a,e,t,(e=>this.proxy(e,i,s)),n&&!o)})),e(this,"controls",(()=>{const{player:e}=this,{elements:t}=e,i=Y.isIE?"change":"input";if(t.buttons.play&&Array.from(t.buttons.play).forEach((t=>{this.bind(t,"click",(()=>{ke(e.togglePlay())}),"play")})),this.bind(t.buttons.restart,"click",e.restart,"restart"),this.bind(t.buttons.rewind,"click",(()=>{e.lastSeekTime=Date.now(),e.rewind()}),"rewind"),this.bind(t.buttons.fastForward,"click",(()=>{e.lastSeekTime=Date.now(),e.forward()}),"fastForward"),this.bind(t.buttons.mute,"click",(()=>{e.muted=!e.muted}),"mute"),this.bind(t.buttons.captions,"click",(()=>e.toggleCaptions())),this.bind(t.buttons.download,"click",(()=>{ve.call(e,e.media,"download")}),"download"),this.bind(t.buttons.fullscreen,"click",(()=>{e.fullscreen.toggle()}),"fullscreen"),this.bind(t.buttons.pip,"click",(()=>{e.pip="toggle"}),"pip"),this.bind(t.buttons.airplay,"click",e.airplay,"airplay"),this.bind(t.buttons.settings,"click",(t=>{t.stopPropagation(),t.preventDefault(),We.toggleMenu.call(e,t)}),null,!1),this.bind(t.buttons.settings,"keyup",(t=>{const i=t.which;[13,32].includes(i)&&(13!==i?(t.preventDefault(),t.stopPropagation(),We.toggleMenu.call(e,t)):We.focusFirstMenuItem.call(e,null,!0))}),null,!1),this.bind(t.settings.menu,"keydown",(t=>{27===t.which&&We.toggleMenu.call(e,t)})),this.bind(t.inputs.seek,"mousedown mousemove",(e=>{const i=t.progress.getBoundingClientRect(),s=100/i.width*(e.pageX-i.left);e.currentTarget.setAttribute("seek-value",s)})),this.bind(t.inputs.seek,"mousedown mouseup keydown keyup touchstart touchend",(t=>{const i=t.currentTarget,s=t.keyCode?t.keyCode:t.which,n="play-on-seeked";if(R(t)&&39!==s&&37!==s)return;e.lastSeekTime=Date.now();const a=i.hasAttribute(n),l=["mouseup","touchend","keyup"].includes(t.type);a&&l?(i.removeAttribute(n),ke(e.play())):!l&&e.playing&&(i.setAttribute(n,""),e.pause())})),Y.isIos){const t=ce.call(e,'input[type="range"]');Array.from(t).forEach((e=>this.bind(e,i,(e=>K(e.target)))))}this.bind(t.inputs.seek,i,(t=>{const i=t.currentTarget;let s=i.getAttribute("seek-value");W(s)&&(s=i.value),i.removeAttribute("seek-value"),e.currentTime=s/i.max*e.duration}),"seek"),this.bind(t.progress,"mouseenter mouseleave mousemove",(t=>We.updateSeekTooltip.call(e,t))),this.bind(t.progress,"mousemove touchmove",(t=>{const{previewThumbnails:i}=e;i&&i.loaded&&i.startMove(t)})),this.bind(t.progress,"mouseleave touchend click",(()=>{const{previewThumbnails:t}=e;t&&t.loaded&&t.endMove(!1,!0)})),this.bind(t.progress,"mousedown touchstart",(t=>{const{previewThumbnails:i}=e;i&&i.loaded&&i.startScrubbing(t)})),this.bind(t.progress,"mouseup touchend",(t=>{const{previewThumbnails:i}=e;i&&i.loaded&&i.endScrubbing(t)})),Y.isWebkit&&Array.from(ce.call(e,'input[type="range"]')).forEach((t=>{this.bind(t,"input",(t=>We.updateRangeFill.call(e,t.target)))})),e.config.toggleInvert&&!H(t.display.duration)&&this.bind(t.display.currentTime,"click",(()=>{0!==e.currentTime&&(e.config.invertTime=!e.config.invertTime,We.timeUpdate.call(e))})),this.bind(t.inputs.volume,i,(t=>{e.volume=t.target.value}),"volume"),this.bind(t.controls,"mouseenter mouseleave",(i=>{t.controls.hover=!e.touch&&"mouseenter"===i.type})),t.fullscreen&&Array.from(t.fullscreen.children).filter((e=>!e.contains(t.container))).forEach((i=>{this.bind(i,"mouseenter mouseleave",(i=>{t.controls&&(t.controls.hover=!e.touch&&"mouseenter"===i.type)}))})),this.bind(t.controls,"mousedown mouseup touchstart touchend touchcancel",(e=>{t.controls.pressed=["mousedown","touchstart"].includes(e.type)})),this.bind(t.controls,"focusin",(()=>{const{config:i,timers:s}=e;le(t.controls,i.classNames.noTransition,!0),at.toggleControls.call(e,!0),setTimeout((()=>{le(t.controls,i.classNames.noTransition,!1)}),0);const n=this.touch?3e3:4e3;clearTimeout(s.controls),s.controls=setTimeout((()=>at.toggleControls.call(e,!1)),n)})),this.bind(t.inputs.volume,"wheel",(t=>{const i=t.webkitDirectionInvertedFromDevice,[s,n]=[t.deltaX,-t.deltaY].map((e=>i?-e:e)),a=Math.sign(Math.abs(s)>Math.abs(n)?s:n);e.increaseVolume(a/50);const{volume:l}=e.media;(1===a&&l<1||-1===a&&l>0)&&t.preventDefault()}),"volume",!1)})),this.player=t,this.lastKey=null,this.focusTimer=null,this.lastKeyDown=null,this.handleKey=this.handleKey.bind(this),this.toggleMenu=this.toggleMenu.bind(this),this.setTabFocus=this.setTabFocus.bind(this),this.firstTouch=this.firstTouch.bind(this)}handleKey(e){const{player:t}=this,{elements:i}=t,s=e.keyCode?e.keyCode:e.which,n="keydown"===e.type,a=n&&s===this.lastKey;if(e.altKey||e.ctrlKey||e.metaKey||e.shiftKey)return;if(!$(s))return;if(n){const n=document.activeElement;if(H(n)){const{editable:s}=t.config.selectors,{seek:a}=i.inputs;if(n!==a&&re(n,s))return;if(32===e.which&&re(n,'button, [role^="menuitem"]'))return}switch([32,37,38,39,40,48,49,50,51,52,53,54,56,57,67,70,73,75,76,77,79].includes(s)&&(e.preventDefault(),e.stopPropagation()),s){case 48:case 49:case 50:case 51:case 52:case 53:case 54:case 55:case 56:case 57:a||(t.currentTime=t.duration/10*(s-48));break;case 32:case 75:a||ke(t.togglePlay());break;case 38:t.increaseVolume(.1);break;case 40:t.decreaseVolume(.1);break;case 77:a||(t.muted=!t.muted);break;case 39:t.forward();break;case 37:t.rewind();break;case 70:t.fullscreen.toggle();break;case 67:a||t.toggleCaptions();break;case 76:t.loop=!t.loop}27===s&&!t.fullscreen.usingNative&&t.fullscreen.active&&t.fullscreen.toggle(),this.lastKey=s}else this.lastKey=null}toggleMenu(e){We.toggleMenu.call(this.player,e)}}"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self&&self;var ot=function(e,t){return e(t={exports:{}},t.exports),t.exports}((function(e,t){e.exports=function(){var e=function(){},t={},i={},s={};function n(e,t){e=e.push?e:[e];var n,a,l,o=[],r=e.length,c=r;for(n=function(e,i){i.length&&o.push(e),--c||t(o)};r--;)a=e[r],(l=i[a])?n(a,l):(s[a]=s[a]||[]).push(n)}function a(e,t){if(e){var n=s[e];if(i[e]=t,n)for(;n.length;)n[0](e,t),n.splice(0,1)}}function l(t,i){t.call&&(t={success:t}),i.length?(t.error||e)(i):(t.success||e)(t)}function o(t,i,s,n){var a,l,r=document,c=s.async,h=(s.numRetries||0)+1,u=s.before||e,d=t.replace(/[\?|#].*$/,""),m=t.replace(/^(css|img)!/,"");n=n||0,/(^css!|\.css$)/.test(d)?((l=r.createElement("link")).rel="stylesheet",l.href=m,(a="hideFocus"in l)&&l.relList&&(a=0,l.rel="preload",l.as="style")):/(^img!|\.(png|gif|jpg|svg|webp)$)/.test(d)?(l=r.createElement("img")).src=m:((l=r.createElement("script")).src=t,l.async=void 0===c||c),l.onload=l.onerror=l.onbeforeload=function(e){var r=e.type[0];if(a)try{l.sheet.cssText.length||(r="e")}catch(e){18!=e.code&&(r="e")}if("e"==r){if((n+=1)<h)return o(t,i,s,n)}else if("preload"==l.rel&&"style"==l.as)return l.rel="stylesheet";i(t,r,e.defaultPrevented)},!1!==u(t,l)&&r.head.appendChild(l)}function r(e,t,i){var s,n,a=(e=e.push?e:[e]).length,l=a,r=[];for(s=function(e,i,s){if("e"==i&&r.push(e),"b"==i){if(!s)return;r.push(e)}--a||t(r)},n=0;n<l;n++)o(e[n],s,i)}function c(e,i,s){var n,o;if(i&&i.trim&&(n=i),o=(n?s:i)||{},n){if(n in t)throw"LoadJS";t[n]=!0}function c(t,i){r(e,(function(e){l(o,e),t&&l({success:t,error:i},e),a(n,e)}),o)}if(o.returnPromise)return new Promise(c);c()}return c.ready=function(e,t){return n(e,(function(e){l(t,e)})),c},c.done=function(e){a(e,[])},c.reset=function(){t={},i={},s={}},c.isDefined=function(e){return e in t},c}()}));function rt(e){return new Promise(((t,i)=>{ot(e,{success:t,error:i})}))}function ct(e){e&&!this.embed.hasPlayed&&(this.embed.hasPlayed=!0),this.media.paused===e&&(this.media.paused=!e,ve.call(this,this.media,e?"play":"pause"))}const ht={setup(){const e=this;le(e.elements.wrapper,e.config.classNames.embed,!0),e.options.speed=e.config.speed.options,Me.call(e),L(window.Vimeo)?ht.ready.call(e):rt(e.config.urls.vimeo.sdk).then((()=>{ht.ready.call(e)})).catch((t=>{e.debug.warn("Vimeo SDK (player.js) failed to load",t)}))},ready(){const e=this,t=e.config.vimeo,{premium:i,referrerPolicy:s,...n}=t;let a=e.media.getAttribute("src"),l="";W(a)?(a=e.media.getAttribute(e.config.attributes.embed.id),l=e.media.getAttribute(e.config.attributes.embed.hash)):l=function(e){const t=e.match(/^.*(?:vimeo.com\/|video\/)(?:\d+)(?:\?.*&*h=|\/)+(?<hash>[\d,a-f]+)/);return t?t.groups.hash:null}(a);const o=l?{h:l}:{};i&&Object.assign(n,{controls:!1,sidedock:!1});const r=Ke({loop:e.config.loop.active,autoplay:e.autoplay,muted:e.muted,gesture:"media",playsinline:!this.config.fullscreen.iosNative,...o,...n}),c=W(h=a)?null:$(Number(h))?h:h.match(/^.*(vimeo.com\/|video\/)(\d+).*/)?RegExp.$2:h;var h;const u=Z("iframe"),d=$e(e.config.urls.vimeo.iframe,c,r);if(u.setAttribute("src",d),u.setAttribute("allowfullscreen",""),u.setAttribute("allow",["autoplay","fullscreen","picture-in-picture","encrypted-media","accelerometer","gyroscope"].join("; ")),W(s)||u.setAttribute("referrerPolicy",s),i||!t.customControls)u.setAttribute("data-poster",e.poster),e.media=se(u,e.media);else{const t=Z("div",{class:e.config.classNames.embedContainer,"data-poster":e.poster});t.appendChild(u),e.media=se(t,e.media)}t.customControls||Re($e(e.config.urls.vimeo.api,d)).then((t=>{!W(t)&&t.thumbnail_url&&at.setPoster.call(e,t.thumbnail_url).catch((()=>{}))})),e.embed=new window.Vimeo.Player(u,{autopause:e.config.autopause,muted:e.muted}),e.media.paused=!0,e.media.currentTime=0,e.supported.ui&&e.embed.disableTextTrack(),e.media.play=()=>(ct.call(e,!0),e.embed.play()),e.media.pause=()=>(ct.call(e,!1),e.embed.pause()),e.media.stop=()=>{e.pause(),e.currentTime=0};let{currentTime:m}=e.media;Object.defineProperty(e.media,"currentTime",{get:()=>m,set(t){const{embed:i,media:s,paused:n,volume:a}=e,l=n&&!i.hasPlayed;s.seeking=!0,ve.call(e,s,"seeking"),Promise.resolve(l&&i.setVolume(0)).then((()=>i.setCurrentTime(t))).then((()=>l&&i.pause())).then((()=>l&&i.setVolume(a))).catch((()=>{}))}});let p=e.config.speed.selected;Object.defineProperty(e.media,"playbackRate",{get:()=>p,set(t){e.embed.setPlaybackRate(t).then((()=>{p=t,ve.call(e,e.media,"ratechange")})).catch((()=>{e.options.speed=[1]}))}});let{volume:g}=e.config;Object.defineProperty(e.media,"volume",{get:()=>g,set(t){e.embed.setVolume(t).then((()=>{g=t,ve.call(e,e.media,"volumechange")}))}});let{muted:f}=e.config;Object.defineProperty(e.media,"muted",{get:()=>f,set(t){const i=!!O(t)&&t;e.embed.setVolume(i?0:e.config.volume).then((()=>{f=i,ve.call(e,e.media,"volumechange")}))}});let b,{loop:y}=e.config;Object.defineProperty(e.media,"loop",{get:()=>y,set(t){const i=O(t)?t:e.config.loop.active;e.embed.setLoop(i).then((()=>{y=i}))}}),e.embed.getVideoUrl().then((t=>{b=t,We.setDownloadUrl.call(e)})).catch((e=>{this.debug.warn(e)})),Object.defineProperty(e.media,"currentSrc",{get:()=>b}),Object.defineProperty(e.media,"ended",{get:()=>e.currentTime===e.duration}),Promise.all([e.embed.getVideoWidth(),e.embed.getVideoHeight()]).then((t=>{const[i,s]=t;e.embed.ratio=Ie(i,s),Me.call(this)})),e.embed.setAutopause(e.config.autopause).then((t=>{e.config.autopause=t})),e.embed.getVideoTitle().then((t=>{e.config.title=t,at.setTitle.call(this)})),e.embed.getCurrentTime().then((t=>{m=t,ve.call(e,e.media,"timeupdate")})),e.embed.getDuration().then((t=>{e.media.duration=t,ve.call(e,e.media,"durationchange")})),e.embed.getTextTracks().then((t=>{e.media.textTracks=t,Ye.setup.call(e)})),e.embed.on("cuechange",(({cues:t=[]})=>{const i=t.map((e=>function(e){const t=document.createDocumentFragment(),i=document.createElement("div");return t.appendChild(i),i.innerHTML=e,t.firstChild.innerText}(e.text)));Ye.updateCues.call(e,i)})),e.embed.on("loaded",(()=>{if(e.embed.getPaused().then((t=>{ct.call(e,!t),t||ve.call(e,e.media,"playing")})),H(e.embed.element)&&e.supported.ui){e.embed.element.setAttribute("tabindex",-1)}})),e.embed.on("bufferstart",(()=>{ve.call(e,e.media,"waiting")})),e.embed.on("bufferend",(()=>{ve.call(e,e.media,"playing")})),e.embed.on("play",(()=>{ct.call(e,!0),ve.call(e,e.media,"playing")})),e.embed.on("pause",(()=>{ct.call(e,!1)})),e.embed.on("timeupdate",(t=>{e.media.seeking=!1,m=t.seconds,ve.call(e,e.media,"timeupdate")})),e.embed.on("progress",(t=>{e.media.buffered=t.percent,ve.call(e,e.media,"progress"),1===parseInt(t.percent,10)&&ve.call(e,e.media,"canplaythrough"),e.embed.getDuration().then((t=>{t!==e.media.duration&&(e.media.duration=t,ve.call(e,e.media,"durationchange"))}))})),e.embed.on("seeked",(()=>{e.media.seeking=!1,ve.call(e,e.media,"seeked")})),e.embed.on("ended",(()=>{e.media.paused=!0,ve.call(e,e.media,"ended")})),e.embed.on("error",(t=>{e.media.error=t,ve.call(e,e.media,"error")})),t.customControls&&setTimeout((()=>at.build.call(e)),0)}};function ut(e){e&&!this.embed.hasPlayed&&(this.embed.hasPlayed=!0),this.media.paused===e&&(this.media.paused=!e,ve.call(this,this.media,e?"play":"pause"))}function dt(e){return e.noCookie?"https://www.youtube-nocookie.com":"http:"===window.location.protocol?"http://www.youtube.com":void 0}const mt={setup(){if(le(this.elements.wrapper,this.config.classNames.embed,!0),L(window.YT)&&j(window.YT.Player))mt.ready.call(this);else{const e=window.onYouTubeIframeAPIReady;window.onYouTubeIframeAPIReady=()=>{j(e)&&e(),mt.ready.call(this)},rt(this.config.urls.youtube.sdk).catch((e=>{this.debug.warn("YouTube API failed to load",e)}))}},getTitle(e){Re($e(this.config.urls.youtube.api,e)).then((e=>{if(L(e)){const{title:t,height:i,width:s}=e;this.config.title=t,at.setTitle.call(this),this.embed.ratio=Ie(s,i)}Me.call(this)})).catch((()=>{Me.call(this)}))},ready(){const e=this,t=e.config.youtube,i=e.media&&e.media.getAttribute("id");if(!W(i)&&i.startsWith("youtube-"))return;let s=e.media.getAttribute("src");W(s)&&(s=e.media.getAttribute(this.config.attributes.embed.id));const n=W(a=s)?null:a.match(/^.*(youtu.be\/|v\/|u\/\w\/|embed\/|watch\?v=|&v=)([^#&?]*).*/)?RegExp.$2:a;var a;const l=Z("div",{id:`${e.provider}-${Math.floor(1e4*Math.random())}`,"data-poster":t.customControls?e.poster:void 0});if(e.media=se(l,e.media),t.customControls){const t=e=>`https://i.ytimg.com/vi/${n}/${e}default.jpg`;nt(t("maxres"),121).catch((()=>nt(t("sd"),121))).catch((()=>nt(t("hq")))).then((t=>at.setPoster.call(e,t.src))).then((t=>{t.includes("maxres")||(e.elements.poster.style.backgroundSize="cover")})).catch((()=>{}))}e.embed=new window.YT.Player(e.media,{videoId:n,host:dt(t),playerVars:X({},{autoplay:e.config.autoplay?1:0,hl:e.config.hl,controls:e.supported.ui&&t.customControls?0:1,disablekb:1,playsinline:e.config.fullscreen.iosNative?0:1,cc_load_policy:e.captions.active?1:0,cc_lang_pref:e.config.captions.language,widget_referrer:window?window.location.href:null},t),events:{onError(t){if(!e.media.error){const i=t.data,s={2:"The request contains an invalid parameter value. For example, this error occurs if you specify a video ID that does not have 11 characters, or if the video ID contains invalid characters, such as exclamation points or asterisks.",5:"The requested content cannot be played in an HTML5 player or another error related to the HTML5 player has occurred.",100:"The video requested was not found. This error occurs when a video has been removed (for any reason) or has been marked as private.",101:"The owner of the requested video does not allow it to be played in embedded players.",150:"The owner of the requested video does not allow it to be played in embedded players."}[i]||"An unknown error occured";e.media.error={code:i,message:s},ve.call(e,e.media,"error")}},onPlaybackRateChange(t){const i=t.target;e.media.playbackRate=i.getPlaybackRate(),ve.call(e,e.media,"ratechange")},onReady(i){if(j(e.media.play))return;const s=i.target;mt.getTitle.call(e,n),e.media.play=()=>{ut.call(e,!0),s.playVideo()},e.media.pause=()=>{ut.call(e,!1),s.pauseVideo()},e.media.stop=()=>{s.stopVideo()},e.media.duration=s.getDuration(),e.media.paused=!0,e.media.currentTime=0,Object.defineProperty(e.media,"currentTime",{get:()=>Number(s.getCurrentTime()),set(t){e.paused&&!e.embed.hasPlayed&&e.embed.mute(),e.media.seeking=!0,ve.call(e,e.media,"seeking"),s.seekTo(t)}}),Object.defineProperty(e.media,"playbackRate",{get:()=>s.getPlaybackRate(),set(e){s.setPlaybackRate(e)}});let{volume:a}=e.config;Object.defineProperty(e.media,"volume",{get:()=>a,set(t){a=t,s.setVolume(100*a),ve.call(e,e.media,"volumechange")}});let{muted:l}=e.config;Object.defineProperty(e.media,"muted",{get:()=>l,set(t){const i=O(t)?t:l;l=i,s[i?"mute":"unMute"](),s.setVolume(100*a),ve.call(e,e.media,"volumechange")}}),Object.defineProperty(e.media,"currentSrc",{get:()=>s.getVideoUrl()}),Object.defineProperty(e.media,"ended",{get:()=>e.currentTime===e.duration});const o=s.getAvailablePlaybackRates();e.options.speed=o.filter((t=>e.config.speed.options.includes(t))),e.supported.ui&&t.customControls&&e.media.setAttribute("tabindex",-1),ve.call(e,e.media,"timeupdate"),ve.call(e,e.media,"durationchange"),clearInterval(e.timers.buffering),e.timers.buffering=setInterval((()=>{e.media.buffered=s.getVideoLoadedFraction(),(null===e.media.lastBuffered||e.media.lastBuffered<e.media.buffered)&&ve.call(e,e.media,"progress"),e.media.lastBuffered=e.media.buffered,1===e.media.buffered&&(clearInterval(e.timers.buffering),ve.call(e,e.media,"canplaythrough"))}),200),t.customControls&&setTimeout((()=>at.build.call(e)),50)},onStateChange(i){const s=i.target;clearInterval(e.timers.playing);switch(e.media.seeking&&[1,2].includes(i.data)&&(e.media.seeking=!1,ve.call(e,e.media,"seeked")),i.data){case-1:ve.call(e,e.media,"timeupdate"),e.media.buffered=s.getVideoLoadedFraction(),ve.call(e,e.media,"progress");break;case 0:ut.call(e,!1),e.media.loop?(s.stopVideo(),s.playVideo()):ve.call(e,e.media,"ended");break;case 1:t.customControls&&!e.config.autoplay&&e.media.paused&&!e.embed.hasPlayed?e.media.pause():(ut.call(e,!0),ve.call(e,e.media,"playing"),e.timers.playing=setInterval((()=>{ve.call(e,e.media,"timeupdate")}),50),e.media.duration!==s.getDuration()&&(e.media.duration=s.getDuration(),ve.call(e,e.media,"durationchange")));break;case 2:e.muted||e.embed.unMute(),ut.call(e,!1);break;case 3:ve.call(e,e.media,"waiting")}ve.call(e,e.elements.container,"statechange",!1,{code:i.data})}}})}},pt={setup(){this.media?(le(this.elements.container,this.config.classNames.type.replace("{0}",this.type),!0),le(this.elements.container,this.config.classNames.provider.replace("{0}",this.provider),!0),this.isEmbed&&le(this.elements.container,this.config.classNames.type.replace("{0}","video"),!0),this.isVideo&&(this.elements.wrapper=Z("div",{class:this.config.classNames.video}),J(this.media,this.elements.wrapper),this.elements.poster=Z("div",{class:this.config.classNames.poster}),this.elements.wrapper.appendChild(this.elements.poster)),this.isHTML5?Le.setup.call(this):this.isYouTube?mt.setup.call(this):this.isVimeo&&ht.setup.call(this)):this.debug.warn("No media element found!")}};class gt{constructor(t){e(this,"load",(()=>{this.enabled&&(L(window.google)&&L(window.google.ima)?this.ready():rt(this.player.config.urls.googleIMA.sdk).then((()=>{this.ready()})).catch((()=>{this.trigger("error",new Error("Google IMA SDK failed to load"))})))})),e(this,"ready",(()=>{var e;this.enabled||((e=this).manager&&e.manager.destroy(),e.elements.displayContainer&&e.elements.displayContainer.destroy(),e.elements.container.remove()),this.startSafetyTimer(12e3,"ready()"),this.managerPromise.then((()=>{this.clearSafetyTimer("onAdsManagerLoaded()")})),this.listeners(),this.setupIMA()})),e(this,"setupIMA",(()=>{this.elements.container=Z("div",{class:this.player.config.classNames.ads}),this.player.elements.container.appendChild(this.elements.container),google.ima.settings.setVpaidMode(google.ima.ImaSdkSettings.VpaidMode.ENABLED),google.ima.settings.setLocale(this.player.config.ads.language),google.ima.settings.setDisableCustomPlaybackForIOS10Plus(this.player.config.playsinline),this.elements.displayContainer=new google.ima.AdDisplayContainer(this.elements.container,this.player.media),this.loader=new google.ima.AdsLoader(this.elements.displayContainer),this.loader.addEventListener(google.ima.AdsManagerLoadedEvent.Type.ADS_MANAGER_LOADED,(e=>this.onAdsManagerLoaded(e)),!1),this.loader.addEventListener(google.ima.AdErrorEvent.Type.AD_ERROR,(e=>this.onAdError(e)),!1),this.requestAds()})),e(this,"requestAds",(()=>{const{container:e}=this.player.elements;try{const t=new google.ima.AdsRequest;t.adTagUrl=this.tagUrl,t.linearAdSlotWidth=e.offsetWidth,t.linearAdSlotHeight=e.offsetHeight,t.nonLinearAdSlotWidth=e.offsetWidth,t.nonLinearAdSlotHeight=e.offsetHeight,t.forceNonLinearFullSlot=!1,t.setAdWillPlayMuted(!this.player.muted),this.loader.requestAds(t)}catch(e){this.onAdError(e)}})),e(this,"pollCountdown",((e=!1)=>{if(!e)return clearInterval(this.countdownTimer),void this.elements.container.removeAttribute("data-badge-text");this.countdownTimer=setInterval((()=>{const e=Ue(Math.max(this.manager.getRemainingTime(),0)),t=`${He.get("advertisement",this.player.config)} - ${e}`;this.elements.container.setAttribute("data-badge-text",t)}),100)})),e(this,"onAdsManagerLoaded",(e=>{if(!this.enabled)return;const t=new google.ima.AdsRenderingSettings;t.restoreCustomPlaybackStateOnAdBreakComplete=!0,t.enablePreloading=!0,this.manager=e.getAdsManager(this.player,t),this.cuePoints=this.manager.getCuePoints(),this.manager.addEventListener(google.ima.AdErrorEvent.Type.AD_ERROR,(e=>this.onAdError(e))),Object.keys(google.ima.AdEvent.Type).forEach((e=>{this.manager.addEventListener(google.ima.AdEvent.Type[e],(e=>this.onAdEvent(e)))})),this.trigger("loaded")})),e(this,"addCuePoints",(()=>{W(this.cuePoints)||this.cuePoints.forEach((e=>{if(0!==e&&-1!==e&&e<this.player.duration){const t=this.player.elements.progress;if(H(t)){const i=100/this.player.duration*e,s=Z("span",{class:this.player.config.classNames.cues});s.style.left=`${i.toString()}%`,t.appendChild(s)}}}))})),e(this,"onAdEvent",(e=>{const{container:t}=this.player.elements,i=e.getAd(),s=e.getAdData();switch((e=>{ve.call(this.player,this.player.media,`ads${e.replace(/_/g,"").toLowerCase()}`)})(e.type),e.type){case google.ima.AdEvent.Type.LOADED:this.trigger("loaded"),this.pollCountdown(!0),i.isLinear()||(i.width=t.offsetWidth,i.height=t.offsetHeight);break;case google.ima.AdEvent.Type.STARTED:this.manager.setVolume(this.player.volume);break;case google.ima.AdEvent.Type.ALL_ADS_COMPLETED:this.player.ended?this.loadAds():this.loader.contentComplete();break;case google.ima.AdEvent.Type.CONTENT_PAUSE_REQUESTED:this.pauseContent();break;case google.ima.AdEvent.Type.CONTENT_RESUME_REQUESTED:this.pollCountdown(),this.resumeContent();break;case google.ima.AdEvent.Type.LOG:s.adError&&this.player.debug.warn(`Non-fatal ad error: ${s.adError.getMessage()}`)}})),e(this,"onAdError",(e=>{this.cancel(),this.player.debug.warn("Ads error",e)})),e(this,"listeners",(()=>{const{container:e}=this.player.elements;let t;this.player.on("canplay",(()=>{this.addCuePoints()})),this.player.on("ended",(()=>{this.loader.contentComplete()})),this.player.on("timeupdate",(()=>{t=this.player.currentTime})),this.player.on("seeked",(()=>{const e=this.player.currentTime;W(this.cuePoints)||this.cuePoints.forEach(((i,s)=>{t<i&&i<e&&(this.manager.discardAdBreak(),this.cuePoints.splice(s,1))}))})),window.addEventListener("resize",(()=>{this.manager&&this.manager.resize(e.offsetWidth,e.offsetHeight,google.ima.ViewMode.NORMAL)}))})),e(this,"play",(()=>{const{container:e}=this.player.elements;this.managerPromise||this.resumeContent(),this.managerPromise.then((()=>{this.manager.setVolume(this.player.volume),this.elements.displayContainer.initialize();try{this.initialized||(this.manager.init(e.offsetWidth,e.offsetHeight,google.ima.ViewMode.NORMAL),this.manager.start()),this.initialized=!0}catch(e){this.onAdError(e)}})).catch((()=>{}))})),e(this,"resumeContent",(()=>{this.elements.container.style.zIndex="",this.playing=!1,ke(this.player.media.play())})),e(this,"pauseContent",(()=>{this.elements.container.style.zIndex=3,this.playing=!0,this.player.media.pause()})),e(this,"cancel",(()=>{this.initialized&&this.resumeContent(),this.trigger("error"),this.loadAds()})),e(this,"loadAds",(()=>{this.managerPromise.then((()=>{this.manager&&this.manager.destroy(),this.managerPromise=new Promise((e=>{this.on("loaded",e),this.player.debug.log(this.manager)})),this.initialized=!1,this.requestAds()})).catch((()=>{}))})),e(this,"trigger",((e,...t)=>{const i=this.events[e];q(i)&&i.forEach((e=>{j(e)&&e.apply(this,t)}))})),e(this,"on",((e,t)=>(q(this.events[e])||(this.events[e]=[]),this.events[e].push(t),this))),e(this,"startSafetyTimer",((e,t)=>{this.player.debug.log(`Safety timer invoked from: ${t}`),this.safetyTimer=setTimeout((()=>{this.cancel(),this.clearSafetyTimer("startSafetyTimer()")}),e)})),e(this,"clearSafetyTimer",(e=>{I(this.safetyTimer)||(this.player.debug.log(`Safety timer cleared from: ${e}`),clearTimeout(this.safetyTimer),this.safetyTimer=null)})),this.player=t,this.config=t.config.ads,this.playing=!1,this.initialized=!1,this.elements={container:null,displayContainer:null},this.manager=null,this.loader=null,this.cuePoints=null,this.events={},this.safetyTimer=null,this.countdownTimer=null,this.managerPromise=new Promise(((e,t)=>{this.on("loaded",e),this.on("error",t)})),this.load()}get enabled(){const{config:e}=this;return this.player.isHTML5&&this.player.isVideo&&e.enabled&&(!W(e.publisherId)||U(e.tagUrl))}get tagUrl(){const{config:e}=this;if(U(e.tagUrl))return e.tagUrl;return`https://go.aniview.com/api/adserver6/vast/?${Ke({AV_PUBLISHERID:"58c25bb0073ef448b1087ad6",AV_CHANNELID:"5a0458dc28a06145e4519d21",AV_URL:window.location.hostname,cb:Date.now(),AV_WIDTH:640,AV_HEIGHT:480,AV_CDIM2:e.publisherId})}`}}const ft=e=>{const t=[];return e.split(/\r\n\r\n|\n\n|\r\r/).forEach((e=>{const i={};e.split(/\r\n|\n|\r/).forEach((e=>{if($(i.startTime)){if(!W(e.trim())&&W(i.text)){const t=e.trim().split("#xywh=");[i.text]=t,t[1]&&([i.x,i.y,i.w,i.h]=t[1].split(","))}}else{const t=e.match(/([0-9]{2})?:?([0-9]{2}):([0-9]{2}).([0-9]{2,3})( ?--> ?)([0-9]{2})?:?([0-9]{2}):([0-9]{2}).([0-9]{2,3})/);t&&(i.startTime=60*Number(t[1]||0)*60+60*Number(t[2])+Number(t[3])+Number(`0.${t[4]}`),i.endTime=60*Number(t[6]||0)*60+60*Number(t[7])+Number(t[8])+Number(`0.${t[9]}`))}})),i.text&&t.push(i)})),t},bt=(e,t)=>{const i={};return e>t.width/t.height?(i.width=t.width,i.height=1/e*t.width):(i.height=t.height,i.width=e*t.height),i};class yt{constructor(t){e(this,"load",(()=>{this.player.elements.display.seekTooltip&&(this.player.elements.display.seekTooltip.hidden=this.enabled),this.enabled&&this.getThumbnails().then((()=>{this.enabled&&(this.render(),this.determineContainerAutoSizing(),this.loaded=!0)}))})),e(this,"getThumbnails",(()=>new Promise((e=>{const{src:t}=this.player.config.previewThumbnails;if(W(t))throw new Error("Missing previewThumbnails.src config attribute");const i=()=>{this.thumbnails.sort(((e,t)=>e.height-t.height)),this.player.debug.log("Preview thumbnails",this.thumbnails),e()};if(j(t))t((e=>{this.thumbnails=e,i()}));else{const e=(_(t)?[t]:t).map((e=>this.getThumbnail(e)));Promise.all(e).then(i)}})))),e(this,"getThumbnail",(e=>new Promise((t=>{Re(e).then((i=>{const s={frames:ft(i),height:null,urlPrefix:""};s.frames[0].text.startsWith("/")||s.frames[0].text.startsWith("http://")||s.frames[0].text.startsWith("https://")||(s.urlPrefix=e.substring(0,e.lastIndexOf("/")+1));const n=new Image;n.onload=()=>{s.height=n.naturalHeight,s.width=n.naturalWidth,this.thumbnails.push(s),t()},n.src=s.urlPrefix+s.frames[0].text}))})))),e(this,"startMove",(e=>{if(this.loaded&&F(e)&&["touchmove","mousemove"].includes(e.type)&&this.player.media.duration){if("touchmove"===e.type)this.seekTime=this.player.media.duration*(this.player.elements.inputs.seek.value/100);else{const t=this.player.elements.progress.getBoundingClientRect(),i=100/t.width*(e.pageX-t.left);this.seekTime=this.player.media.duration*(i/100),this.seekTime<0&&(this.seekTime=0),this.seekTime>this.player.media.duration-1&&(this.seekTime=this.player.media.duration-1),this.mousePosX=e.pageX,this.elements.thumb.time.innerText=Ue(this.seekTime)}this.showImageAtCurrentTime()}})),e(this,"endMove",(()=>{this.toggleThumbContainer(!1,!0)})),e(this,"startScrubbing",(e=>{(I(e.button)||!1===e.button||0===e.button)&&(this.mouseDown=!0,this.player.media.duration&&(this.toggleScrubbingContainer(!0),this.toggleThumbContainer(!1,!0),this.showImageAtCurrentTime()))})),e(this,"endScrubbing",(()=>{this.mouseDown=!1,Math.ceil(this.lastTime)===Math.ceil(this.player.media.currentTime)?this.toggleScrubbingContainer(!1):ye.call(this.player,this.player.media,"timeupdate",(()=>{this.mouseDown||this.toggleScrubbingContainer(!1)}))})),e(this,"listeners",(()=>{this.player.on("play",(()=>{this.toggleThumbContainer(!1,!0)})),this.player.on("seeked",(()=>{this.toggleThumbContainer(!1)})),this.player.on("timeupdate",(()=>{this.lastTime=this.player.media.currentTime}))})),e(this,"render",(()=>{this.elements.thumb.container=Z("div",{class:this.player.config.classNames.previewThumbnails.thumbContainer}),this.elements.thumb.imageContainer=Z("div",{class:this.player.config.classNames.previewThumbnails.imageContainer}),this.elements.thumb.container.appendChild(this.elements.thumb.imageContainer);const e=Z("div",{class:this.player.config.classNames.previewThumbnails.timeContainer});this.elements.thumb.time=Z("span",{},"00:00"),e.appendChild(this.elements.thumb.time),this.elements.thumb.container.appendChild(e),H(this.player.elements.progress)&&this.player.elements.progress.appendChild(this.elements.thumb.container),this.elements.scrubbing.container=Z("div",{class:this.player.config.classNames.previewThumbnails.scrubbingContainer}),this.player.elements.wrapper.appendChild(this.elements.scrubbing.container)})),e(this,"destroy",(()=>{this.elements.thumb.container&&this.elements.thumb.container.remove(),this.elements.scrubbing.container&&this.elements.scrubbing.container.remove()})),e(this,"showImageAtCurrentTime",(()=>{this.mouseDown?this.setScrubbingContainerSize():this.setThumbContainerSizeAndPos();const e=this.thumbnails[0].frames.findIndex((e=>this.seekTime>=e.startTime&&this.seekTime<=e.endTime)),t=e>=0;let i=0;this.mouseDown||this.toggleThumbContainer(t),t&&(this.thumbnails.forEach(((t,s)=>{this.loadedImages.includes(t.frames[e].text)&&(i=s)})),e!==this.showingThumb&&(this.showingThumb=e,this.loadImage(i)))})),e(this,"loadImage",((e=0)=>{const t=this.showingThumb,i=this.thumbnails[e],{urlPrefix:s}=i,n=i.frames[t],a=i.frames[t].text,l=s+a;if(this.currentImageElement&&this.currentImageElement.dataset.filename===a)this.showImage(this.currentImageElement,n,e,t,a,!1),this.currentImageElement.dataset.index=t,this.removeOldImages(this.currentImageElement);else{this.loadingImage&&this.usingSprites&&(this.loadingImage.onload=null);const i=new Image;i.src=l,i.dataset.index=t,i.dataset.filename=a,this.showingThumbFilename=a,this.player.debug.log(`Loading image: ${l}`),i.onload=()=>this.showImage(i,n,e,t,a,!0),this.loadingImage=i,this.removeOldImages(i)}})),e(this,"showImage",((e,t,i,s,n,a=!0)=>{this.player.debug.log(`Showing thumb: ${n}. num: ${s}. qual: ${i}. newimg: ${a}`),this.setImageSizeAndOffset(e,t),a&&(this.currentImageContainer.appendChild(e),this.currentImageElement=e,this.loadedImages.includes(n)||this.loadedImages.push(n)),this.preloadNearby(s,!0).then(this.preloadNearby(s,!1)).then(this.getHigherQuality(i,e,t,n))})),e(this,"removeOldImages",(e=>{Array.from(this.currentImageContainer.children).forEach((t=>{if("img"!==t.tagName.toLowerCase())return;const i=this.usingSprites?500:1e3;if(t.dataset.index!==e.dataset.index&&!t.dataset.deleting){t.dataset.deleting=!0;const{currentImageContainer:e}=this;setTimeout((()=>{e.removeChild(t),this.player.debug.log(`Removing thumb: ${t.dataset.filename}`)}),i)}}))})),e(this,"preloadNearby",((e,t=!0)=>new Promise((i=>{setTimeout((()=>{const s=this.thumbnails[0].frames[e].text;if(this.showingThumbFilename===s){let n;n=t?this.thumbnails[0].frames.slice(e):this.thumbnails[0].frames.slice(0,e).reverse();let a=!1;n.forEach((e=>{const t=e.text;if(t!==s&&!this.loadedImages.includes(t)){a=!0,this.player.debug.log(`Preloading thumb filename: ${t}`);const{urlPrefix:e}=this.thumbnails[0],s=e+t,n=new Image;n.src=s,n.onload=()=>{this.player.debug.log(`Preloaded thumb filename: ${t}`),this.loadedImages.includes(t)||this.loadedImages.push(t),i()}}})),a||i()}}),300)})))),e(this,"getHigherQuality",((e,t,i,s)=>{if(e<this.thumbnails.length-1){let n=t.naturalHeight;this.usingSprites&&(n=i.h),n<this.thumbContainerHeight&&setTimeout((()=>{this.showingThumbFilename===s&&(this.player.debug.log(`Showing higher quality thumb for: ${s}`),this.loadImage(e+1))}),300)}})),e(this,"toggleThumbContainer",((e=!1,t=!1)=>{const i=this.player.config.classNames.previewThumbnails.thumbContainerShown;this.elements.thumb.container.classList.toggle(i,e),!e&&t&&(this.showingThumb=null,this.showingThumbFilename=null)})),e(this,"toggleScrubbingContainer",((e=!1)=>{const t=this.player.config.classNames.previewThumbnails.scrubbingContainerShown;this.elements.scrubbing.container.classList.toggle(t,e),e||(this.showingThumb=null,this.showingThumbFilename=null)})),e(this,"determineContainerAutoSizing",(()=>{(this.elements.thumb.imageContainer.clientHeight>20||this.elements.thumb.imageContainer.clientWidth>20)&&(this.sizeSpecifiedInCSS=!0)})),e(this,"setThumbContainerSizeAndPos",(()=>{if(this.sizeSpecifiedInCSS){if(this.elements.thumb.imageContainer.clientHeight>20&&this.elements.thumb.imageContainer.clientWidth<20){const e=Math.floor(this.elements.thumb.imageContainer.clientHeight*this.thumbAspectRatio);this.elements.thumb.imageContainer.style.width=`${e}px`}else if(this.elements.thumb.imageContainer.clientHeight<20&&this.elements.thumb.imageContainer.clientWidth>20){const e=Math.floor(this.elements.thumb.imageContainer.clientWidth/this.thumbAspectRatio);this.elements.thumb.imageContainer.style.height=`${e}px`}}else{const e=Math.floor(this.thumbContainerHeight*this.thumbAspectRatio);this.elements.thumb.imageContainer.style.height=`${this.thumbContainerHeight}px`,this.elements.thumb.imageContainer.style.width=`${e}px`}this.setThumbContainerPos()})),e(this,"setThumbContainerPos",(()=>{const e=this.player.elements.progress.getBoundingClientRect(),t=this.player.elements.container.getBoundingClientRect(),{container:i}=this.elements.thumb,s=t.left-e.left+10,n=t.right-e.left-i.clientWidth-10;let a=this.mousePosX-e.left-i.clientWidth/2;a<s&&(a=s),a>n&&(a=n),i.style.left=`${a}px`})),e(this,"setScrubbingContainerSize",(()=>{const{width:e,height:t}=bt(this.thumbAspectRatio,{width:this.player.media.clientWidth,height:this.player.media.clientHeight});this.elements.scrubbing.container.style.width=`${e}px`,this.elements.scrubbing.container.style.height=`${t}px`})),e(this,"setImageSizeAndOffset",((e,t)=>{if(!this.usingSprites)return;const i=this.thumbContainerHeight/t.h;e.style.height=e.naturalHeight*i+"px",e.style.width=e.naturalWidth*i+"px",e.style.left=`-${t.x*i}px`,e.style.top=`-${t.y*i}px`})),this.player=t,this.thumbnails=[],this.loaded=!1,this.lastMouseMoveTime=Date.now(),this.mouseDown=!1,this.loadedImages=[],this.elements={thumb:{},scrubbing:{}},this.load()}get enabled(){return this.player.isHTML5&&this.player.isVideo&&this.player.config.previewThumbnails.enabled}get currentImageContainer(){return this.mouseDown?this.elements.scrubbing.container:this.elements.thumb.imageContainer}get usingSprites(){return Object.keys(this.thumbnails[0].frames[0]).includes("w")}get thumbAspectRatio(){return this.usingSprites?this.thumbnails[0].frames[0].w/this.thumbnails[0].frames[0].h:this.thumbnails[0].width/this.thumbnails[0].height}get thumbContainerHeight(){if(this.mouseDown){const{height:e}=bt(this.thumbAspectRatio,{width:this.player.media.clientWidth,height:this.player.media.clientHeight});return e}return this.sizeSpecifiedInCSS?this.elements.thumb.imageContainer.clientHeight:Math.floor(this.player.media.clientWidth/this.thumbAspectRatio/4)}get currentImageElement(){return this.mouseDown?this.currentScrubbingImageElement:this.currentThumbnailImageElement}set currentImageElement(e){this.mouseDown?this.currentScrubbingImageElement=e:this.currentThumbnailImageElement=e}}const vt={insertElements(e,t){_(t)?ee(e,this.media,{src:t}):q(t)&&t.forEach((t=>{ee(e,this.media,t)}))},change(e){Q(e,"sources.length")?(Le.cancelRequests.call(this),this.destroy.call(this,(()=>{this.options.quality=[],te(this.media),this.media=null,H(this.elements.container)&&this.elements.container.removeAttribute("class");const{sources:t,type:i}=e,[{provider:s=Ge.html5,src:n}]=t,a="html5"===s?i:"div",l="html5"===s?{}:{src:n};Object.assign(this,{provider:s,type:i,supported:me.check(i,s,this.config.playsinline),media:Z(a,l)}),this.elements.container.appendChild(this.media),O(e.autoplay)&&(this.config.autoplay=e.autoplay),this.isHTML5&&(this.config.crossorigin&&this.media.setAttribute("crossorigin",""),this.config.autoplay&&this.media.setAttribute("autoplay",""),W(e.poster)||(this.poster=e.poster),this.config.loop.active&&this.media.setAttribute("loop",""),this.config.muted&&this.media.setAttribute("muted",""),this.config.playsinline&&this.media.setAttribute("playsinline","")),at.addStyleHook.call(this),this.isHTML5&&vt.insertElements.call(this,"source",t),this.config.title=e.title,pt.setup.call(this),this.isHTML5&&Object.keys(e).includes("tracks")&&vt.insertElements.call(this,"track",e.tracks),(this.isHTML5||this.isEmbed&&!this.supported.ui)&&at.build.call(this),this.isHTML5&&this.media.load(),W(e.previewThumbnails)||(Object.assign(this.config.previewThumbnails,e.previewThumbnails),this.previewThumbnails&&this.previewThumbnails.loaded&&(this.previewThumbnails.destroy(),this.previewThumbnails=null),this.config.previewThumbnails.enabled&&(this.previewThumbnails=new yt(this))),this.fullscreen.update()}),!0)):this.debug.warn("Invalid source format")}};class wt{constructor(t,i){if(e(this,"play",(()=>j(this.media.play)?(this.ads&&this.ads.enabled&&this.ads.managerPromise.then((()=>this.ads.play())).catch((()=>ke(this.media.play()))),this.media.play()):null)),e(this,"pause",(()=>this.playing&&j(this.media.pause)?this.media.pause():null)),e(this,"togglePlay",(e=>(O(e)?e:!this.playing)?this.play():this.pause())),e(this,"stop",(()=>{this.isHTML5?(this.pause(),this.restart()):j(this.media.stop)&&this.media.stop()})),e(this,"restart",(()=>{this.currentTime=0})),e(this,"rewind",(e=>{this.currentTime-=$(e)?e:this.config.seekTime})),e(this,"forward",(e=>{this.currentTime+=$(e)?e:this.config.seekTime})),e(this,"increaseVolume",(e=>{const t=this.media.muted?0:this.volume;this.volume=t+($(e)?e:0)})),e(this,"decreaseVolume",(e=>{this.increaseVolume(-e)})),e(this,"airplay",(()=>{me.airplay&&this.media.webkitShowPlaybackTargetPicker()})),e(this,"toggleControls",(e=>{if(this.supported.ui&&!this.isAudio){const t=oe(this.elements.container,this.config.classNames.hideControls),i=void 0===e?void 0:!e,s=le(this.elements.container,this.config.classNames.hideControls,i);if(s&&q(this.config.controls)&&this.config.controls.includes("settings")&&!W(this.config.settings)&&We.toggleMenu.call(this,!1),s!==t){const e=s?"controlshidden":"controlsshown";ve.call(this,this.media,e)}return!s}return!1})),e(this,"on",((e,t)=>{fe.call(this,this.elements.container,e,t)})),e(this,"once",((e,t)=>{ye.call(this,this.elements.container,e,t)})),e(this,"off",((e,t)=>{be(this.elements.container,e,t)})),e(this,"destroy",((e,t=!1)=>{if(!this.ready)return;const i=()=>{document.body.style.overflow="",this.embed=null,t?(Object.keys(this.elements).length&&(te(this.elements.buttons.play),te(this.elements.captions),te(this.elements.controls),te(this.elements.wrapper),this.elements.buttons.play=null,this.elements.captions=null,this.elements.controls=null,this.elements.wrapper=null),j(e)&&e()):(we.call(this),Le.cancelRequests.call(this),se(this.elements.original,this.elements.container),ve.call(this,this.elements.original,"destroyed",!0),j(e)&&e.call(this.elements.original),this.ready=!1,setTimeout((()=>{this.elements=null,this.media=null}),200))};this.stop(),clearTimeout(this.timers.loading),clearTimeout(this.timers.controls),clearTimeout(this.timers.resized),this.isHTML5?(at.toggleNativeControls.call(this,!0),i()):this.isYouTube?(clearInterval(this.timers.buffering),clearInterval(this.timers.playing),null!==this.embed&&j(this.embed.destroy)&&this.embed.destroy(),i()):this.isVimeo&&(null!==this.embed&&this.embed.unload().then(i),setTimeout(i,200))})),e(this,"supports",(e=>me.mime.call(this,e))),this.timers={},this.ready=!1,this.loading=!1,this.failed=!1,this.touch=me.touch,this.media=t,_(this.media)&&(this.media=document.querySelectorAll(this.media)),(window.jQuery&&this.media instanceof jQuery||D(this.media)||q(this.media))&&(this.media=this.media[0]),this.config=X({},Qe,wt.defaults,i||{},(()=>{try{return JSON.parse(this.media.getAttribute("data-plyr-config"))}catch(e){return{}}})()),this.elements={container:null,fullscreen:null,captions:null,buttons:{},display:{},progress:{},inputs:{},settings:{popup:null,menu:null,panels:{},buttons:{}}},this.captions={active:null,currentTrack:-1,meta:new WeakMap},this.fullscreen={active:!1},this.options={speed:[],quality:[]},this.debug=new it(this.config.debug),this.debug.log("Config",this.config),this.debug.log("Support",me),I(this.media)||!H(this.media))return void this.debug.error("Setup failed: no suitable element passed");if(this.media.plyr)return void this.debug.warn("Target already setup");if(!this.config.enabled)return void this.debug.error("Setup failed: disabled by config");if(!me.check().api)return void this.debug.error("Setup failed: no support");const s=this.media.cloneNode(!0);s.autoplay=!1,this.elements.original=s;const n=this.media.tagName.toLowerCase();let a=null,l=null;switch(n){case"div":if(a=this.media.querySelector("iframe"),H(a)){if(l=ze(a.getAttribute("src")),this.provider=function(e){return/^(https?:\/\/)?(www\.)?(youtube\.com|youtube-nocookie\.com|youtu\.?be)\/.+$/.test(e)?Ge.youtube:/^https?:\/\/player.vimeo.com\/video\/\d{0,9}(?=\b|\/)/.test(e)?Ge.vimeo:null}(l.toString()),this.elements.container=this.media,this.media=a,this.elements.container.className="",l.search.length){const e=["1","true"];e.includes(l.searchParams.get("autoplay"))&&(this.config.autoplay=!0),e.includes(l.searchParams.get("loop"))&&(this.config.loop.active=!0),this.isYouTube?(this.config.playsinline=e.includes(l.searchParams.get("playsinline")),this.config.youtube.hl=l.searchParams.get("hl")):this.config.playsinline=!0}}else this.provider=this.media.getAttribute(this.config.attributes.embed.provider),this.media.removeAttribute(this.config.attributes.embed.provider);if(W(this.provider)||!Object.values(Ge).includes(this.provider))return void this.debug.error("Setup failed: Invalid provider");this.type=et;break;case"video":case"audio":this.type=n,this.provider=Ge.html5,this.media.hasAttribute("crossorigin")&&(this.config.crossorigin=!0),this.media.hasAttribute("autoplay")&&(this.config.autoplay=!0),(this.media.hasAttribute("playsinline")||this.media.hasAttribute("webkit-playsinline"))&&(this.config.playsinline=!0),this.media.hasAttribute("muted")&&(this.config.muted=!0),this.media.hasAttribute("loop")&&(this.config.loop.active=!0);break;default:return void this.debug.error("Setup failed: unsupported type")}this.supported=me.check(this.type,this.provider,this.config.playsinline),this.supported.api?(this.eventListeners=[],this.listeners=new lt(this),this.storage=new Fe(this),this.media.plyr=this,H(this.elements.container)||(this.elements.container=Z("div",{tabindex:0}),J(this.media,this.elements.container)),at.migrateStyles.call(this),at.addStyleHook.call(this),pt.setup.call(this),this.config.debug&&fe.call(this,this.elements.container,this.config.events.join(" "),(e=>{this.debug.log(`event: ${e.type}`)})),this.fullscreen=new st(this),(this.isHTML5||this.isEmbed&&!this.supported.ui)&&at.build.call(this),this.listeners.container(),this.listeners.global(),this.config.ads.enabled&&(this.ads=new gt(this)),this.isHTML5&&this.config.autoplay&&this.once("canplay",(()=>ke(this.play()))),this.lastSeekTime=0,this.config.previewThumbnails.enabled&&(this.previewThumbnails=new yt(this))):this.debug.error("Setup failed: no support")}get isHTML5(){return this.provider===Ge.html5}get isEmbed(){return this.isYouTube||this.isVimeo}get isYouTube(){return this.provider===Ge.youtube}get isVimeo(){return this.provider===Ge.vimeo}get isVideo(){return this.type===et}get isAudio(){return this.type===Ze}get playing(){return Boolean(this.ready&&!this.paused&&!this.ended)}get paused(){return Boolean(this.media.paused)}get stopped(){return Boolean(this.paused&&0===this.currentTime)}get ended(){return Boolean(this.media.ended)}set currentTime(e){if(!this.duration)return;const t=$(e)&&e>0;this.media.currentTime=t?Math.min(e,this.duration):0,this.debug.log(`Seeking to ${this.currentTime} seconds`)}get currentTime(){return Number(this.media.currentTime)}get buffered(){const{buffered:e}=this.media;return $(e)?e:e&&e.length&&this.duration>0?e.end(0)/this.duration:0}get seeking(){return Boolean(this.media.seeking)}get duration(){const e=parseFloat(this.config.duration),t=(this.media||{}).duration,i=$(t)&&t!==1/0?t:0;return e||i}set volume(e){let t=e;_(t)&&(t=Number(t)),$(t)||(t=this.storage.get("volume")),$(t)||({volume:t}=this.config),t>1&&(t=1),t<0&&(t=0),this.config.volume=t,this.media.volume=t,!W(e)&&this.muted&&t>0&&(this.muted=!1)}get volume(){return Number(this.media.volume)}set muted(e){let t=e;O(t)||(t=this.storage.get("muted")),O(t)||(t=this.config.muted),this.config.muted=t,this.media.muted=t}get muted(){return Boolean(this.media.muted)}get hasAudio(){return!this.isHTML5||(!!this.isAudio||(Boolean(this.media.mozHasAudio)||Boolean(this.media.webkitAudioDecodedByteCount)||Boolean(this.media.audioTracks&&this.media.audioTracks.length)))}set speed(e){let t=null;$(e)&&(t=e),$(t)||(t=this.storage.get("speed")),$(t)||(t=this.config.speed.selected);const{minimumSpeed:i,maximumSpeed:s}=this;t=function(e=0,t=0,i=255){return Math.min(Math.max(e,t),i)}(t,i,s),this.config.speed.selected=t,setTimeout((()=>{this.media&&(this.media.playbackRate=t)}),0)}get speed(){return Number(this.media.playbackRate)}get minimumSpeed(){return this.isYouTube?Math.min(...this.options.speed):this.isVimeo?.5:.0625}get maximumSpeed(){return this.isYouTube?Math.max(...this.options.speed):this.isVimeo?2:16}set quality(e){const t=this.config.quality,i=this.options.quality;if(!i.length)return;let s=[!W(e)&&Number(e),this.storage.get("quality"),t.selected,t.default].find($),n=!0;if(!i.includes(s)){const e=Ae(i,s);this.debug.warn(`Unsupported quality option: ${s}, using ${e} instead`),s=e,n=!1}t.selected=s,this.media.quality=s,n&&this.storage.set({quality:s})}get quality(){return this.media.quality}set loop(e){const t=O(e)?e:this.config.loop.active;this.config.loop.active=t,this.media.loop=t}get loop(){return Boolean(this.media.loop)}set source(e){vt.change.call(this,e)}get source(){return this.media.currentSrc}get download(){const{download:e}=this.config.urls;return U(e)?e:this.source}set download(e){U(e)&&(this.config.urls.download=e,We.setDownloadUrl.call(this))}set poster(e){this.isVideo?at.setPoster.call(this,e,!1).catch((()=>{})):this.debug.warn("Poster can only be set for video")}get poster(){return this.isVideo?this.media.getAttribute("poster")||this.media.getAttribute("data-poster"):null}get ratio(){if(!this.isVideo)return null;const e=Ne(xe.call(this));return q(e)?e.join(":"):e}set ratio(e){this.isVideo?_(e)&&Pe(e)?(this.config.ratio=Ne(e),Me.call(this)):this.debug.error(`Invalid aspect ratio specified (${e})`):this.debug.warn("Aspect ratio can only be set for video")}set autoplay(e){const t=O(e)?e:this.config.autoplay;this.config.autoplay=t}get autoplay(){return Boolean(this.config.autoplay)}toggleCaptions(e){Ye.toggle.call(this,e,!1)}set currentTrack(e){Ye.set.call(this,e,!1),Ye.setup()}get currentTrack(){const{toggled:e,currentTrack:t}=this.captions;return e?t:-1}set language(e){Ye.setLanguage.call(this,e,!1)}get language(){return(Ye.getCurrentTrack.call(this)||{}).language}set pip(e){if(!me.pip)return;const t=O(e)?e:!this.pip;j(this.media.webkitSetPresentationMode)&&this.media.webkitSetPresentationMode(t?Xe:Je),j(this.media.requestPictureInPicture)&&(!this.pip&&t?this.media.requestPictureInPicture():this.pip&&!t&&document.exitPictureInPicture())}get pip(){return me.pip?W(this.media.webkitPresentationMode)?this.media===document.pictureInPictureElement:this.media.webkitPresentationMode===Xe:null}setPreviewThumbnails(e){this.previewThumbnails&&this.previewThumbnails.loaded&&(this.previewThumbnails.destroy(),this.previewThumbnails=null),Object.assign(this.config.previewThumbnails,e),this.config.previewThumbnails.enabled&&(this.previewThumbnails=new yt(this))}static supported(e,t,i){return me.check(e,t,i)}static loadSprite(e,t){return Ve(e,t)}static setup(e,t={}){let i=null;return _(e)?i=Array.from(document.querySelectorAll(e)):D(e)?i=Array.from(e):q(e)&&(i=e.filter(H)),W(i)?null:i.map((e=>new wt(e,t)))}}var Tt;return wt.defaults=(Tt=Qe,JSON.parse(JSON.stringify(Tt))),wt}));
1979//# sourceMappingURL=plyr.min.js.map
1980
1981/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../webpack/buildin/global.js */ "../node_modules/webpack/buildin/global.js"), __webpack_require__(/*! jquery */ "jquery")))
1982
1983/***/ }),
1984
vendor: 89,619 bytes, lines 1985-5005
1985/***/ "../node_modules/slick-carousel/slick/slick.js":
1986/*!*****************************************************!*\
1987  !*** ../node_modules/slick-carousel/slick/slick.js ***!
1988  \*****************************************************/
1989/*! no static exports found */
1990/***/ (function(module, exports, __webpack_require__) {
1991
1992var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*
1993     _ _      _       _
1994 ___| (_) ___| | __  (_)___
1995/ __| | |/ __| |/ /  | / __|
1996\__ \ | | (__|   < _ | \__ \
1997|___/_|_|\___|_|\_(_)/ |___/
1998                   |__/
1999
2000 Version: 1.8.1
2001  Author: Ken Wheeler
2002 Website: http://kenwheeler.github.io
2003    Docs: http://kenwheeler.github.io/slick
2004    Repo: http://github.com/kenwheeler/slick
2005  Issues: http://github.com/kenwheeler/slick/issues
2006
2007 */
2008/* global window, document, define, jQuery, setInterval, clearInterval */
2009;(function(factory) {
2010    'use strict';
2011    if (true) {
2012        !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! jquery */ "jquery")], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory),
2013				__WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ?
2014				(__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__),
2015				__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));
2016    } else {}
2017
2018}(function($) {
2019    'use strict';
2020    var Slick = window.Slick || {};
2021
2022    Slick = (function() {
2023
2024        var instanceUid = 0;
2025
2026        function Slick(element, settings) {
2027
2028            var _ = this, dataSettings;
2029
2030            _.defaults = {
2031                accessibility: true,
2032                adaptiveHeight: false,
2033                appendArrows: $(element),
2034                appendDots: $(element),
2035                arrows: true,
2036                asNavFor: null,
2037                prevArrow: '<button class="slick-prev" aria-label="Previous" type="button">Previous</button>',
2038                nextArrow: '<button class="slick-next" aria-label="Next" type="button">Next</button>',
2039                autoplay: false,
2040                autoplaySpeed: 3000,
2041                centerMode: false,
2042                centerPadding: '50px',
2043                cssEase: 'ease',
2044                customPaging: function(slider, i) {
2045                    return $('<button type="button" />').text(i + 1);
2046                },
2047                dots: false,
2048                dotsClass: 'slick-dots',
2049                draggable: true,
2050                easing: 'linear',
2051                edgeFriction: 0.35,
2052                fade: false,
2053                focusOnSelect: false,
2054                focusOnChange: false,
2055                infinite: true,
2056                initialSlide: 0,
2057                lazyLoad: 'ondemand',
2058                mobileFirst: false,
2059                pauseOnHover: true,
2060                pauseOnFocus: true,
2061                pauseOnDotsHover: false,
2062                respondTo: 'window',
2063                responsive: null,
2064                rows: 1,
2065                rtl: false,
2066                slide: '',
2067                slidesPerRow: 1,
2068                slidesToShow: 1,
2069                slidesToScroll: 1,
2070                speed: 500,
2071                swipe: true,
2072                swipeToSlide: false,
2073                touchMove: true,
2074                touchThreshold: 5,
2075                useCSS: true,
2076                useTransform: true,
2077                variableWidth: false,
2078                vertical: false,
2079                verticalSwiping: false,
2080                waitForAnimate: true,
2081                zIndex: 1000
2082            };
2083
2084            _.initials = {
2085                animating: false,
2086                dragging: false,
2087                autoPlayTimer: null,
2088                currentDirection: 0,
2089                currentLeft: null,
2090                currentSlide: 0,
2091                direction: 1,
2092                $dots: null,
2093                listWidth: null,
2094                listHeight: null,
2095                loadIndex: 0,
2096                $nextArrow: null,
2097                $prevArrow: null,
2098                scrolling: false,
2099                slideCount: null,
2100                slideWidth: null,
2101                $slideTrack: null,
2102                $slides: null,
2103                sliding: false,
2104                slideOffset: 0,
2105                swipeLeft: null,
2106                swiping: false,
2107                $list: null,
2108                touchObject: {},
2109                transformsEnabled: false,
2110                unslicked: false
2111            };
2112
2113            $.extend(_, _.initials);
2114
2115            _.activeBreakpoint = null;
2116            _.animType = null;
2117            _.animProp = null;
2118            _.breakpoints = [];
2119            _.breakpointSettings = [];
2120            _.cssTransitions = false;
2121            _.focussed = false;
2122            _.interrupted = false;
2123            _.hidden = 'hidden';
2124            _.paused = true;
2125            _.positionProp = null;
2126            _.respondTo = null;
2127            _.rowCount = 1;
2128            _.shouldClick = true;
2129            _.$slider = $(element);
2130            _.$slidesCache = null;
2131            _.transformType = null;
2132            _.transitionType = null;
2133            _.visibilityChange = 'visibilitychange';
2134            _.windowWidth = 0;
2135            _.windowTimer = null;
2136
2137            dataSettings = $(element).data('slick') || {};
2138
2139            _.options = $.extend({}, _.defaults, settings, dataSettings);
2140
2141            _.currentSlide = _.options.initialSlide;
2142
2143            _.originalSettings = _.options;
2144
2145            if (typeof document.mozHidden !== 'undefined') {
2146                _.hidden = 'mozHidden';
2147                _.visibilityChange = 'mozvisibilitychange';
2148            } else if (typeof document.webkitHidden !== 'undefined') {
2149                _.hidden = 'webkitHidden';
2150                _.visibilityChange = 'webkitvisibilitychange';
2151            }
2152
2153            _.autoPlay = $.proxy(_.autoPlay, _);
2154            _.autoPlayClear = $.proxy(_.autoPlayClear, _);
2155            _.autoPlayIterator = $.proxy(_.autoPlayIterator, _);
2156            _.changeSlide = $.proxy(_.changeSlide, _);
2157            _.clickHandler = $.proxy(_.clickHandler, _);
2158            _.selectHandler = $.proxy(_.selectHandler, _);
2159            _.setPosition = $.proxy(_.setPosition, _);
2160            _.swipeHandler = $.proxy(_.swipeHandler, _);
2161            _.dragHandler = $.proxy(_.dragHandler, _);
2162            _.keyHandler = $.proxy(_.keyHandler, _);
2163
2164            _.instanceUid = instanceUid++;
2165
2166            // A simple way to check for HTML strings
2167            // Strict HTML recognition (must start with <)
2168            // Extracted from jQuery v1.11 source
2169            _.htmlExpr = /^(?:\s*(<[\w\W]+>)[^>]*)$/;
2170
2171
2172            _.registerBreakpoints();
2173            _.init(true);
2174
2175        }
2176
2177        return Slick;
2178
2179    }());
2180
2181    Slick.prototype.activateADA = function() {
2182        var _ = this;
2183
2184        _.$slideTrack.find('.slick-active').attr({
2185            'aria-hidden': 'false'
2186        }).find('a, input, button, select').attr({
2187            'tabindex': '0'
2188        });
2189
2190    };
2191
2192    Slick.prototype.addSlide = Slick.prototype.slickAdd = function(markup, index, addBefore) {
2193
2194        var _ = this;
2195
2196        if (typeof(index) === 'boolean') {
2197            addBefore = index;
2198            index = null;
2199        } else if (index < 0 || (index >= _.slideCount)) {
2200            return false;
2201        }
2202
2203        _.unload();
2204
2205        if (typeof(index) === 'number') {
2206            if (index === 0 && _.$slides.length === 0) {
2207                $(markup).appendTo(_.$slideTrack);
2208            } else if (addBefore) {
2209                $(markup).insertBefore(_.$slides.eq(index));
2210            } else {
2211                $(markup).insertAfter(_.$slides.eq(index));
2212            }
2213        } else {
2214            if (addBefore === true) {
2215                $(markup).prependTo(_.$slideTrack);
2216            } else {
2217                $(markup).appendTo(_.$slideTrack);
2218            }
2219        }
2220
2221        _.$slides = _.$slideTrack.children(this.options.slide);
2222
2223        _.$slideTrack.children(this.options.slide).detach();
2224
2225        _.$slideTrack.append(_.$slides);
2226
2227        _.$slides.each(function(index, element) {
2228            $(element).attr('data-slick-index', index);
2229        });
2230
2231        _.$slidesCache = _.$slides;
2232
2233        _.reinit();
2234
2235    };
2236
2237    Slick.prototype.animateHeight = function() {
2238        var _ = this;
2239        if (_.options.slidesToShow === 1 && _.options.adaptiveHeight === true && _.options.vertical === false) {
2240            var targetHeight = _.$slides.eq(_.currentSlide).outerHeight(true);
2241            _.$list.animate({
2242                height: targetHeight
2243            }, _.options.speed);
2244        }
2245    };
2246
2247    Slick.prototype.animateSlide = function(targetLeft, callback) {
2248
2249        var animProps = {},
2250            _ = this;
2251
2252        _.animateHeight();
2253
2254        if (_.options.rtl === true && _.options.vertical === false) {
2255            targetLeft = -targetLeft;
2256        }
2257        if (_.transformsEnabled === false) {
2258            if (_.options.vertical === false) {
2259                _.$slideTrack.animate({
2260                    left: targetLeft
2261                }, _.options.speed, _.options.easing, callback);
2262            } else {
2263                _.$slideTrack.animate({
2264                    top: targetLeft
2265                }, _.options.speed, _.options.easing, callback);
2266            }
2267
2268        } else {
2269
2270            if (_.cssTransitions === false) {
2271                if (_.options.rtl === true) {
2272                    _.currentLeft = -(_.currentLeft);
2273                }
2274                $({
2275                    animStart: _.currentLeft
2276                }).animate({
2277                    animStart: targetLeft
2278                }, {
2279                    duration: _.options.speed,
2280                    easing: _.options.easing,
2281                    step: function(now) {
2282                        now = Math.ceil(now);
2283                        if (_.options.vertical === false) {
2284                            animProps[_.animType] = 'translate(' +
2285                                now + 'px, 0px)';
2286                            _.$slideTrack.css(animProps);
2287                        } else {
2288                            animProps[_.animType] = 'translate(0px,' +
2289                                now + 'px)';
2290                            _.$slideTrack.css(animProps);
2291                        }
2292                    },
2293                    complete: function() {
2294                        if (callback) {
2295                            callback.call();
2296                        }
2297                    }
2298                });
2299
2300            } else {
2301
2302                _.applyTransition();
2303                targetLeft = Math.ceil(targetLeft);
2304
2305                if (_.options.vertical === false) {
2306                    animProps[_.animType] = 'translate3d(' + targetLeft + 'px, 0px, 0px)';
2307                } else {
2308                    animProps[_.animType] = 'translate3d(0px,' + targetLeft + 'px, 0px)';
2309                }
2310                _.$slideTrack.css(animProps);
2311
2312                if (callback) {
2313                    setTimeout(function() {
2314
2315                        _.disableTransition();
2316
2317                        callback.call();
2318                    }, _.options.speed);
2319                }
2320
2321            }
2322
2323        }
2324
2325    };
2326
2327    Slick.prototype.getNavTarget = function() {
2328
2329        var _ = this,
2330            asNavFor = _.options.asNavFor;
2331
2332        if ( asNavFor && asNavFor !== null ) {
2333            asNavFor = $(asNavFor).not(_.$slider);
2334        }
2335
2336        return asNavFor;
2337
2338    };
2339
2340    Slick.prototype.asNavFor = function(index) {
2341
2342        var _ = this,
2343            asNavFor = _.getNavTarget();
2344
2345        if ( asNavFor !== null && typeof asNavFor === 'object' ) {
2346            asNavFor.each(function() {
2347                var target = $(this).slick('getSlick');
2348                if(!target.unslicked) {
2349                    target.slideHandler(index, true);
2350                }
2351            });
2352        }
2353
2354    };
2355
2356    Slick.prototype.applyTransition = function(slide) {
2357
2358        var _ = this,
2359            transition = {};
2360
2361        if (_.options.fade === false) {
2362            transition[_.transitionType] = _.transformType + ' ' + _.options.speed + 'ms ' + _.options.cssEase;
2363        } else {
2364            transition[_.transitionType] = 'opacity ' + _.options.speed + 'ms ' + _.options.cssEase;
2365        }
2366
2367        if (_.options.fade === false) {
2368            _.$slideTrack.css(transition);
2369        } else {
2370            _.$slides.eq(slide).css(transition);
2371        }
2372
2373    };
2374
2375    Slick.prototype.autoPlay = function() {
2376
2377        var _ = this;
2378
2379        _.autoPlayClear();
2380
2381        if ( _.slideCount > _.options.slidesToShow ) {
2382            _.autoPlayTimer = setInterval( _.autoPlayIterator, _.options.autoplaySpeed );
2383        }
2384
2385    };
2386
2387    Slick.prototype.autoPlayClear = function() {
2388
2389        var _ = this;
2390
2391        if (_.autoPlayTimer) {
2392            clearInterval(_.autoPlayTimer);
2393        }
2394
2395    };
2396
2397    Slick.prototype.autoPlayIterator = function() {
2398
2399        var _ = this,
2400            slideTo = _.currentSlide + _.options.slidesToScroll;
2401
2402        if ( !_.paused && !_.interrupted && !_.focussed ) {
2403
2404            if ( _.options.infinite === false ) {
2405
2406                if ( _.direction === 1 && ( _.currentSlide + 1 ) === ( _.slideCount - 1 )) {
2407                    _.direction = 0;
2408                }
2409
2410                else if ( _.direction === 0 ) {
2411
2412                    slideTo = _.currentSlide - _.options.slidesToScroll;
2413
2414                    if ( _.currentSlide - 1 === 0 ) {
2415                        _.direction = 1;
2416                    }
2417
2418                }
2419
2420            }
2421
2422            _.slideHandler( slideTo );
2423
2424        }
2425
2426    };
2427
2428    Slick.prototype.buildArrows = function() {
2429
2430        var _ = this;
2431
2432        if (_.options.arrows === true ) {
2433
2434            _.$prevArrow = $(_.options.prevArrow).addClass('slick-arrow');
2435            _.$nextArrow = $(_.options.nextArrow).addClass('slick-arrow');
2436
2437            if( _.slideCount > _.options.slidesToShow ) {
2438
2439                _.$prevArrow.removeClass('slick-hidden').removeAttr('aria-hidden tabindex');
2440                _.$nextArrow.removeClass('slick-hidden').removeAttr('aria-hidden tabindex');
2441
2442                if (_.htmlExpr.test(_.options.prevArrow)) {
2443                    _.$prevArrow.prependTo(_.options.appendArrows);
2444                }
2445
2446                if (_.htmlExpr.test(_.options.nextArrow)) {
2447                    _.$nextArrow.appendTo(_.options.appendArrows);
2448                }
2449
2450                if (_.options.infinite !== true) {
2451                    _.$prevArrow
2452                        .addClass('slick-disabled')
2453                        .attr('aria-disabled', 'true');
2454                }
2455
2456            } else {
2457
2458                _.$prevArrow.add( _.$nextArrow )
2459
2460                    .addClass('slick-hidden')
2461                    .attr({
2462                        'aria-disabled': 'true',
2463                        'tabindex': '-1'
2464                    });
2465
2466            }
2467
2468        }
2469
2470    };
2471
2472    Slick.prototype.buildDots = function() {
2473
2474        var _ = this,
2475            i, dot;
2476
2477        if (_.options.dots === true && _.slideCount > _.options.slidesToShow) {
2478
2479            _.$slider.addClass('slick-dotted');
2480
2481            dot = $('<ul />').addClass(_.options.dotsClass);
2482
2483            for (i = 0; i <= _.getDotCount(); i += 1) {
2484                dot.append($('<li />').append(_.options.customPaging.call(this, _, i)));
2485            }
2486
2487            _.$dots = dot.appendTo(_.options.appendDots);
2488
2489            _.$dots.find('li').first().addClass('slick-active');
2490
2491        }
2492
2493    };
2494
2495    Slick.prototype.buildOut = function() {
2496
2497        var _ = this;
2498
2499        _.$slides =
2500            _.$slider
2501                .children( _.options.slide + ':not(.slick-cloned)')
2502                .addClass('slick-slide');
2503
2504        _.slideCount = _.$slides.length;
2505
2506        _.$slides.each(function(index, element) {
2507            $(element)
2508                .attr('data-slick-index', index)
2509                .data('originalStyling', $(element).attr('style') || '');
2510        });
2511
2512        _.$slider.addClass('slick-slider');
2513
2514        _.$slideTrack = (_.slideCount === 0) ?
2515            $('<div class="slick-track"/>').appendTo(_.$slider) :
2516            _.$slides.wrapAll('<div class="slick-track"/>').parent();
2517
2518        _.$list = _.$slideTrack.wrap(
2519            '<div class="slick-list"/>').parent();
2520        _.$slideTrack.css('opacity', 0);
2521
2522        if (_.options.centerMode === true || _.options.swipeToSlide === true) {
2523            _.options.slidesToScroll = 1;
2524        }
2525
2526        $('img[data-lazy]', _.$slider).not('[src]').addClass('slick-loading');
2527
2528        _.setupInfinite();
2529
2530        _.buildArrows();
2531
2532        _.buildDots();
2533
2534        _.updateDots();
2535
2536
2537        _.setSlideClasses(typeof _.currentSlide === 'number' ? _.currentSlide : 0);
2538
2539        if (_.options.draggable === true) {
2540            _.$list.addClass('draggable');
2541        }
2542
2543    };
2544
2545    Slick.prototype.buildRows = function() {
2546
2547        var _ = this, a, b, c, newSlides, numOfSlides, originalSlides,slidesPerSection;
2548
2549        newSlides = document.createDocumentFragment();
2550        originalSlides = _.$slider.children();
2551
2552        if(_.options.rows > 0) {
2553
2554            slidesPerSection = _.options.slidesPerRow * _.options.rows;
2555            numOfSlides = Math.ceil(
2556                originalSlides.length / slidesPerSection
2557            );
2558
2559            for(a = 0; a < numOfSlides; a++){
2560                var slide = document.createElement('div');
2561                for(b = 0; b < _.options.rows; b++) {
2562                    var row = document.createElement('div');
2563                    for(c = 0; c < _.options.slidesPerRow; c++) {
2564                        var target = (a * slidesPerSection + ((b * _.options.slidesPerRow) + c));
2565                        if (originalSlides.get(target)) {
2566                            row.appendChild(originalSlides.get(target));
2567                        }
2568                    }
2569                    slide.appendChild(row);
2570                }
2571                newSlides.appendChild(slide);
2572            }
2573
2574            _.$slider.empty().append(newSlides);
2575            _.$slider.children().children().children()
2576                .css({
2577                    'width':(100 / _.options.slidesPerRow) + '%',
2578                    'display': 'inline-block'
2579                });
2580
2581        }
2582
2583    };
2584
2585    Slick.prototype.checkResponsive = function(initial, forceUpdate) {
2586
2587        var _ = this,
2588            breakpoint, targetBreakpoint, respondToWidth, triggerBreakpoint = false;
2589        var sliderWidth = _.$slider.width();
2590        var windowWidth = window.innerWidth || $(window).width();
2591
2592        if (_.respondTo === 'window') {
2593            respondToWidth = windowWidth;
2594        } else if (_.respondTo === 'slider') {
2595            respondToWidth = sliderWidth;
2596        } else if (_.respondTo === 'min') {
2597            respondToWidth = Math.min(windowWidth, sliderWidth);
2598        }
2599
2600        if ( _.options.responsive &&
2601            _.options.responsive.length &&
2602            _.options.responsive !== null) {
2603
2604            targetBreakpoint = null;
2605
2606            for (breakpoint in _.breakpoints) {
2607                if (_.breakpoints.hasOwnProperty(breakpoint)) {
2608                    if (_.originalSettings.mobileFirst === false) {
2609                        if (respondToWidth < _.breakpoints[breakpoint]) {
2610                            targetBreakpoint = _.breakpoints[breakpoint];
2611                        }
2612                    } else {
2613                        if (respondToWidth > _.breakpoints[breakpoint]) {
2614                            targetBreakpoint = _.breakpoints[breakpoint];
2615                        }
2616                    }
2617                }
2618            }
2619
2620            if (targetBreakpoint !== null) {
2621                if (_.activeBreakpoint !== null) {
2622                    if (targetBreakpoint !== _.activeBreakpoint || forceUpdate) {
2623                        _.activeBreakpoint =
2624                            targetBreakpoint;
2625                        if (_.breakpointSettings[targetBreakpoint] === 'unslick') {
2626                            _.unslick(targetBreakpoint);
2627                        } else {
2628                            _.options = $.extend({}, _.originalSettings,
2629                                _.breakpointSettings[
2630                                    targetBreakpoint]);
2631                            if (initial === true) {
2632                                _.currentSlide = _.options.initialSlide;
2633                            }
2634                            _.refresh(initial);
2635                        }
2636                        triggerBreakpoint = targetBreakpoint;
2637                    }
2638                } else {
2639                    _.activeBreakpoint = targetBreakpoint;
2640                    if (_.breakpointSettings[targetBreakpoint] === 'unslick') {
2641                        _.unslick(targetBreakpoint);
2642                    } else {
2643                        _.options = $.extend({}, _.originalSettings,
2644                            _.breakpointSettings[
2645                                targetBreakpoint]);
2646                        if (initial === true) {
2647                            _.currentSlide = _.options.initialSlide;
2648                        }
2649                        _.refresh(initial);
2650                    }
2651                    triggerBreakpoint = targetBreakpoint;
2652                }
2653            } else {
2654                if (_.activeBreakpoint !== null) {
2655                    _.activeBreakpoint = null;
2656                    _.options = _.originalSettings;
2657                    if (initial === true) {
2658                        _.currentSlide = _.options.initialSlide;
2659                    }
2660                    _.refresh(initial);
2661                    triggerBreakpoint = targetBreakpoint;
2662                }
2663            }
2664
2665            // only trigger breakpoints during an actual break. not on initialize.
2666            if( !initial && triggerBreakpoint !== false ) {
2667                _.$slider.trigger('breakpoint', [_, triggerBreakpoint]);
2668            }
2669        }
2670
2671    };
2672
2673    Slick.prototype.changeSlide = function(event, dontAnimate) {
2674
2675        var _ = this,
2676            $target = $(event.currentTarget),
2677            indexOffset, slideOffset, unevenOffset;
2678
2679        // If target is a link, prevent default action.
2680        if($target.is('a')) {
2681            event.preventDefault();
2682        }
2683
2684        // If target is not the <li> element (ie: a child), find the <li>.
2685        if(!$target.is('li')) {
2686            $target = $target.closest('li');
2687        }
2688
2689        unevenOffset = (_.slideCount % _.options.slidesToScroll !== 0);
2690        indexOffset = unevenOffset ? 0 : (_.slideCount - _.currentSlide) % _.options.slidesToScroll;
2691
2692        switch (event.data.message) {
2693
2694            case 'previous':
2695                slideOffset = indexOffset === 0 ? _.options.slidesToScroll : _.options.slidesToShow - indexOffset;
2696                if (_.slideCount > _.options.slidesToShow) {
2697                    _.slideHandler(_.currentSlide - slideOffset, false, dontAnimate);
2698                }
2699                break;
2700
2701            case 'next':
2702                slideOffset = indexOffset === 0 ? _.options.slidesToScroll : indexOffset;
2703                if (_.slideCount > _.options.slidesToShow) {
2704                    _.slideHandler(_.currentSlide + slideOffset, false, dontAnimate);
2705                }
2706                break;
2707
2708            case 'index':
2709                var index = event.data.index === 0 ? 0 :
2710                    event.data.index || $target.index() * _.options.slidesToScroll;
2711
2712                _.slideHandler(_.checkNavigable(index), false, dontAnimate);
2713                $target.children().trigger('focus');
2714                break;
2715
2716            default:
2717                return;
2718        }
2719
2720    };
2721
2722    Slick.prototype.checkNavigable = function(index) {
2723
2724        var _ = this,
2725            navigables, prevNavigable;
2726
2727        navigables = _.getNavigableIndexes();
2728        prevNavigable = 0;
2729        if (index > navigables[navigables.length - 1]) {
2730            index = navigables[navigables.length - 1];
2731        } else {
2732            for (var n in navigables) {
2733                if (index < navigables[n]) {
2734                    index = prevNavigable;
2735                    break;
2736                }
2737                prevNavigable = navigables[n];
2738            }
2739        }
2740
2741        return index;
2742    };
2743
2744    Slick.prototype.cleanUpEvents = function() {
2745
2746        var _ = this;
2747
2748        if (_.options.dots && _.$dots !== null) {
2749
2750            $('li', _.$dots)
2751                .off('click.slick', _.changeSlide)
2752                .off('mouseenter.slick', $.proxy(_.interrupt, _, true))
2753                .off('mouseleave.slick', $.proxy(_.interrupt, _, false));
2754
2755            if (_.options.accessibility === true) {
2756                _.$dots.off('keydown.slick', _.keyHandler);
2757            }
2758        }
2759
2760        _.$slider.off('focus.slick blur.slick');
2761
2762        if (_.options.arrows === true && _.slideCount > _.options.slidesToShow) {
2763            _.$prevArrow && _.$prevArrow.off('click.slick', _.changeSlide);
2764            _.$nextArrow && _.$nextArrow.off('click.slick', _.changeSlide);
2765
2766            if (_.options.accessibility === true) {
2767                _.$prevArrow && _.$prevArrow.off('keydown.slick', _.keyHandler);
2768                _.$nextArrow && _.$nextArrow.off('keydown.slick', _.keyHandler);
2769            }
2770        }
2771
2772        _.$list.off('touchstart.slick mousedown.slick', _.swipeHandler);
2773        _.$list.off('touchmove.slick mousemove.slick', _.swipeHandler);
2774        _.$list.off('touchend.slick mouseup.slick', _.swipeHandler);
2775        _.$list.off('touchcancel.slick mouseleave.slick', _.swipeHandler);
2776
2777        _.$list.off('click.slick', _.clickHandler);
2778
2779        $(document).off(_.visibilityChange, _.visibility);
2780
2781        _.cleanUpSlideEvents();
2782
2783        if (_.options.accessibility === true) {
2784            _.$list.off('keydown.slick', _.keyHandler);
2785        }
2786
2787        if (_.options.focusOnSelect === true) {
2788            $(_.$slideTrack).children().off('click.slick', _.selectHandler);
2789        }
2790
2791        $(window).off('orientationchange.slick.slick-' + _.instanceUid, _.orientationChange);
2792
2793        $(window).off('resize.slick.slick-' + _.instanceUid, _.resize);
2794
2795        $('[draggable!=true]', _.$slideTrack).off('dragstart', _.preventDefault);
2796
2797        $(window).off('load.slick.slick-' + _.instanceUid, _.setPosition);
2798
2799    };
2800
2801    Slick.prototype.cleanUpSlideEvents = function() {
2802
2803        var _ = this;
2804
2805        _.$list.off('mouseenter.slick', $.proxy(_.interrupt, _, true));
2806        _.$list.off('mouseleave.slick', $.proxy(_.interrupt, _, false));
2807
2808    };
2809
2810    Slick.prototype.cleanUpRows = function() {
2811
2812        var _ = this, originalSlides;
2813
2814        if(_.options.rows > 0) {
2815            originalSlides = _.$slides.children().children();
2816            originalSlides.removeAttr('style');
2817            _.$slider.empty().append(originalSlides);
2818        }
2819
2820    };
2821
2822    Slick.prototype.clickHandler = function(event) {
2823
2824        var _ = this;
2825
2826        if (_.shouldClick === false) {
2827            event.stopImmediatePropagation();
2828            event.stopPropagation();
2829            event.preventDefault();
2830        }
2831
2832    };
2833
2834    Slick.prototype.destroy = function(refresh) {
2835
2836        var _ = this;
2837
2838        _.autoPlayClear();
2839
2840        _.touchObject = {};
2841
2842        _.cleanUpEvents();
2843
2844        $('.slick-cloned', _.$slider).detach();
2845
2846        if (_.$dots) {
2847            _.$dots.remove();
2848        }
2849
2850        if ( _.$prevArrow && _.$prevArrow.length ) {
2851
2852            _.$prevArrow
2853                .removeClass('slick-disabled slick-arrow slick-hidden')
2854                .removeAttr('aria-hidden aria-disabled tabindex')
2855                .css('display','');
2856
2857            if ( _.htmlExpr.test( _.options.prevArrow )) {
2858                _.$prevArrow.remove();
2859            }
2860        }
2861
2862        if ( _.$nextArrow && _.$nextArrow.length ) {
2863
2864            _.$nextArrow
2865                .removeClass('slick-disabled slick-arrow slick-hidden')
2866                .removeAttr('aria-hidden aria-disabled tabindex')
2867                .css('display','');
2868
2869            if ( _.htmlExpr.test( _.options.nextArrow )) {
2870                _.$nextArrow.remove();
2871            }
2872        }
2873
2874
2875        if (_.$slides) {
2876
2877            _.$slides
2878                .removeClass('slick-slide slick-active slick-center slick-visible slick-current')
2879                .removeAttr('aria-hidden')
2880                .removeAttr('data-slick-index')
2881                .each(function(){
2882                    $(this).attr('style', $(this).data('originalStyling'));
2883                });
2884
2885            _.$slideTrack.children(this.options.slide).detach();
2886
2887            _.$slideTrack.detach();
2888
2889            _.$list.detach();
2890
2891            _.$slider.append(_.$slides);
2892        }
2893
2894        _.cleanUpRows();
2895
2896        _.$slider.removeClass('slick-slider');
2897        _.$slider.removeClass('slick-initialized');
2898        _.$slider.removeClass('slick-dotted');
2899
2900        _.unslicked = true;
2901
2902        if(!refresh) {
2903            _.$slider.trigger('destroy', [_]);
2904        }
2905
2906    };
2907
2908    Slick.prototype.disableTransition = function(slide) {
2909
2910        var _ = this,
2911            transition = {};
2912
2913        transition[_.transitionType] = '';
2914
2915        if (_.options.fade === false) {
2916            _.$slideTrack.css(transition);
2917        } else {
2918            _.$slides.eq(slide).css(transition);
2919        }
2920
2921    };
2922
2923    Slick.prototype.fadeSlide = function(slideIndex, callback) {
2924
2925        var _ = this;
2926
2927        if (_.cssTransitions === false) {
2928
2929            _.$slides.eq(slideIndex).css({
2930                zIndex: _.options.zIndex
2931            });
2932
2933            _.$slides.eq(slideIndex).animate({
2934                opacity: 1
2935            }, _.options.speed, _.options.easing, callback);
2936
2937        } else {
2938
2939            _.applyTransition(slideIndex);
2940
2941            _.$slides.eq(slideIndex).css({
2942                opacity: 1,
2943                zIndex: _.options.zIndex
2944            });
2945
2946            if (callback) {
2947                setTimeout(function() {
2948
2949                    _.disableTransition(slideIndex);
2950
2951                    callback.call();
2952                }, _.options.speed);
2953            }
2954
2955        }
2956
2957    };
2958
2959    Slick.prototype.fadeSlideOut = function(slideIndex) {
2960
2961        var _ = this;
2962
2963        if (_.cssTransitions === false) {
2964
2965            _.$slides.eq(slideIndex).animate({
2966                opacity: 0,
2967                zIndex: _.options.zIndex - 2
2968            }, _.options.speed, _.options.easing);
2969
2970        } else {
2971
2972            _.applyTransition(slideIndex);
2973
2974            _.$slides.eq(slideIndex).css({
2975                opacity: 0,
2976                zIndex: _.options.zIndex - 2
2977            });
2978
2979        }
2980
2981    };
2982
2983    Slick.prototype.filterSlides = Slick.prototype.slickFilter = function(filter) {
2984
2985        var _ = this;
2986
2987        if (filter !== null) {
2988
2989            _.$slidesCache = _.$slides;
2990
2991            _.unload();
2992
2993            _.$slideTrack.children(this.options.slide).detach();
2994
2995            _.$slidesCache.filter(filter).appendTo(_.$slideTrack);
2996
2997            _.reinit();
2998
2999        }
3000
3001    };
3002
3003    Slick.prototype.focusHandler = function() {
3004
3005        var _ = this;
3006
3007        _.$slider
3008            .off('focus.slick blur.slick')
3009            .on('focus.slick blur.slick', '*', function(event) {
3010
3011            event.stopImmediatePropagation();
3012            var $sf = $(this);
3013
3014            setTimeout(function() {
3015
3016                if( _.options.pauseOnFocus ) {
3017                    _.focussed = $sf.is(':focus');
3018                    _.autoPlay();
3019                }
3020
3021            }, 0);
3022
3023        });
3024    };
3025
3026    Slick.prototype.getCurrent = Slick.prototype.slickCurrentSlide = function() {
3027
3028        var _ = this;
3029        return _.currentSlide;
3030
3031    };
3032
3033    Slick.prototype.getDotCount = function() {
3034
3035        var _ = this;
3036
3037        var breakPoint = 0;
3038        var counter = 0;
3039        var pagerQty = 0;
3040
3041        if (_.options.infinite === true) {
3042            if (_.slideCount <= _.options.slidesToShow) {
3043                 ++pagerQty;
3044            } else {
3045                while (breakPoint < _.slideCount) {
3046                    ++pagerQty;
3047                    breakPoint = counter + _.options.slidesToScroll;
3048                    counter += _.options.slidesToScroll <= _.options.slidesToShow ? _.options.slidesToScroll : _.options.slidesToShow;
3049                }
3050            }
3051        } else if (_.options.centerMode === true) {
3052            pagerQty = _.slideCount;
3053        } else if(!_.options.asNavFor) {
3054            pagerQty = 1 + Math.ceil((_.slideCount - _.options.slidesToShow) / _.options.slidesToScroll);
3055        }else {
3056            while (breakPoint < _.slideCount) {
3057                ++pagerQty;
3058                breakPoint = counter + _.options.slidesToScroll;
3059                counter += _.options.slidesToScroll <= _.options.slidesToShow ? _.options.slidesToScroll : _.options.slidesToShow;
3060            }
3061        }
3062
3063        return pagerQty - 1;
3064
3065    };
3066
3067    Slick.prototype.getLeft = function(slideIndex) {
3068
3069        var _ = this,
3070            targetLeft,
3071            verticalHeight,
3072            verticalOffset = 0,
3073            targetSlide,
3074            coef;
3075
3076        _.slideOffset = 0;
3077        verticalHeight = _.$slides.first().outerHeight(true);
3078
3079        if (_.options.infinite === true) {
3080            if (_.slideCount > _.options.slidesToShow) {
3081                _.slideOffset = (_.slideWidth * _.options.slidesToShow) * -1;
3082                coef = -1
3083
3084                if (_.options.vertical === true && _.options.centerMode === true) {
3085                    if (_.options.slidesToShow === 2) {
3086                        coef = -1.5;
3087                    } else if (_.options.slidesToShow === 1) {
3088                        coef = -2
3089                    }
3090                }
3091                verticalOffset = (verticalHeight * _.options.slidesToShow) * coef;
3092            }
3093            if (_.slideCount % _.options.slidesToScroll !== 0) {
3094                if (slideIndex + _.options.slidesToScroll > _.slideCount && _.slideCount > _.options.slidesToShow) {
3095                    if (slideIndex > _.slideCount) {
3096                        _.slideOffset = ((_.options.slidesToShow - (slideIndex - _.slideCount)) * _.slideWidth) * -1;
3097                        verticalOffset = ((_.options.slidesToShow - (slideIndex - _.slideCount)) * verticalHeight) * -1;
3098                    } else {
3099                        _.slideOffset = ((_.slideCount % _.options.slidesToScroll) * _.slideWidth) * -1;
3100                        verticalOffset = ((_.slideCount % _.options.slidesToScroll) * verticalHeight) * -1;
3101                    }
3102                }
3103            }
3104        } else {
3105            if (slideIndex + _.options.slidesToShow > _.slideCount) {
3106                _.slideOffset = ((slideIndex + _.options.slidesToShow) - _.slideCount) * _.slideWidth;
3107                verticalOffset = ((slideIndex + _.options.slidesToShow) - _.slideCount) * verticalHeight;
3108            }
3109        }
3110
3111        if (_.slideCount <= _.options.slidesToShow) {
3112            _.slideOffset = 0;
3113            verticalOffset = 0;
3114        }
3115
3116        if (_.options.centerMode === true && _.slideCount <= _.options.slidesToShow) {
3117            _.slideOffset = ((_.slideWidth * Math.floor(_.options.slidesToShow)) / 2) - ((_.slideWidth * _.slideCount) / 2);
3118        } else if (_.options.centerMode === true && _.options.infinite === true) {
3119            _.slideOffset += _.slideWidth * Math.floor(_.options.slidesToShow / 2) - _.slideWidth;
3120        } else if (_.options.centerMode === true) {
3121            _.slideOffset = 0;
3122            _.slideOffset += _.slideWidth * Math.floor(_.options.slidesToShow / 2);
3123        }
3124
3125        if (_.options.vertical === false) {
3126            targetLeft = ((slideIndex * _.slideWidth) * -1) + _.slideOffset;
3127        } else {
3128            targetLeft = ((slideIndex * verticalHeight) * -1) + verticalOffset;
3129        }
3130
3131        if (_.options.variableWidth === true) {
3132
3133            if (_.slideCount <= _.options.slidesToShow || _.options.infinite === false) {
3134                targetSlide = _.$slideTrack.children('.slick-slide').eq(slideIndex);
3135            } else {
3136                targetSlide = _.$slideTrack.children('.slick-slide').eq(slideIndex + _.options.slidesToShow);
3137            }
3138
3139            if (_.options.rtl === true) {
3140                if (targetSlide[0]) {
3141                    targetLeft = (_.$slideTrack.width() - targetSlide[0].offsetLeft - targetSlide.width()) * -1;
3142                } else {
3143                    targetLeft =  0;
3144                }
3145            } else {
3146                targetLeft = targetSlide[0] ? targetSlide[0].offsetLeft * -1 : 0;
3147            }
3148
3149            if (_.options.centerMode === true) {
3150                if (_.slideCount <= _.options.slidesToShow || _.options.infinite === false) {
3151                    targetSlide = _.$slideTrack.children('.slick-slide').eq(slideIndex);
3152                } else {
3153                    targetSlide = _.$slideTrack.children('.slick-slide').eq(slideIndex + _.options.slidesToShow + 1);
3154                }
3155
3156                if (_.options.rtl === true) {
3157                    if (targetSlide[0]) {
3158                        targetLeft = (_.$slideTrack.width() - targetSlide[0].offsetLeft - targetSlide.width()) * -1;
3159                    } else {
3160                        targetLeft =  0;
3161                    }
3162                } else {
3163                    targetLeft = targetSlide[0] ? targetSlide[0].offsetLeft * -1 : 0;
3164                }
3165
3166                targetLeft += (_.$list.width() - targetSlide.outerWidth()) / 2;
3167            }
3168        }
3169
3170        return targetLeft;
3171
3172    };
3173
3174    Slick.prototype.getOption = Slick.prototype.slickGetOption = function(option) {
3175
3176        var _ = this;
3177
3178        return _.options[option];
3179
3180    };
3181
3182    Slick.prototype.getNavigableIndexes = function() {
3183
3184        var _ = this,
3185            breakPoint = 0,
3186            counter = 0,
3187            indexes = [],
3188            max;
3189
3190        if (_.options.infinite === false) {
3191            max = _.slideCount;
3192        } else {
3193            breakPoint = _.options.slidesToScroll * -1;
3194            counter = _.options.slidesToScroll * -1;
3195            max = _.slideCount * 2;
3196        }
3197
3198        while (breakPoint < max) {
3199            indexes.push(breakPoint);
3200            breakPoint = counter + _.options.slidesToScroll;
3201            counter += _.options.slidesToScroll <= _.options.slidesToShow ? _.options.slidesToScroll : _.options.slidesToShow;
3202        }
3203
3204        return indexes;
3205
3206    };
3207
3208    Slick.prototype.getSlick = function() {
3209
3210        return this;
3211
3212    };
3213
3214    Slick.prototype.getSlideCount = function() {
3215
3216        var _ = this,
3217            slidesTraversed, swipedSlide, centerOffset;
3218
3219        centerOffset = _.options.centerMode === true ? _.slideWidth * Math.floor(_.options.slidesToShow / 2) : 0;
3220
3221        if (_.options.swipeToSlide === true) {
3222            _.$slideTrack.find('.slick-slide').each(function(index, slide) {
3223                if (slide.offsetLeft - centerOffset + ($(slide).outerWidth() / 2) > (_.swipeLeft * -1)) {
3224                    swipedSlide = slide;
3225                    return false;
3226                }
3227            });
3228
3229            slidesTraversed = Math.abs($(swipedSlide).attr('data-slick-index') - _.currentSlide) || 1;
3230
3231            return slidesTraversed;
3232
3233        } else {
3234            return _.options.slidesToScroll;
3235        }
3236
3237    };
3238
3239    Slick.prototype.goTo = Slick.prototype.slickGoTo = function(slide, dontAnimate) {
3240
3241        var _ = this;
3242
3243        _.changeSlide({
3244            data: {
3245                message: 'index',
3246                index: parseInt(slide)
3247            }
3248        }, dontAnimate);
3249
3250    };
3251
3252    Slick.prototype.init = function(creation) {
3253
3254        var _ = this;
3255
3256        if (!$(_.$slider).hasClass('slick-initialized')) {
3257
3258            $(_.$slider).addClass('slick-initialized');
3259
3260            _.buildRows();
3261            _.buildOut();
3262            _.setProps();
3263            _.startLoad();
3264            _.loadSlider();
3265            _.initializeEvents();
3266            _.updateArrows();
3267            _.updateDots();
3268            _.checkResponsive(true);
3269            _.focusHandler();
3270
3271        }
3272
3273        if (creation) {
3274            _.$slider.trigger('init', [_]);
3275        }
3276
3277        if (_.options.accessibility === true) {
3278            _.initADA();
3279        }
3280
3281        if ( _.options.autoplay ) {
3282
3283            _.paused = false;
3284            _.autoPlay();
3285
3286        }
3287
3288    };
3289
3290    Slick.prototype.initADA = function() {
3291        var _ = this,
3292                numDotGroups = Math.ceil(_.slideCount / _.options.slidesToShow),
3293                tabControlIndexes = _.getNavigableIndexes().filter(function(val) {
3294                    return (val >= 0) && (val < _.slideCount);
3295                });
3296
3297        _.$slides.add(_.$slideTrack.find('.slick-cloned')).attr({
3298            'aria-hidden': 'true',
3299            'tabindex': '-1'
3300        }).find('a, input, button, select').attr({
3301            'tabindex': '-1'
3302        });
3303
3304        if (_.$dots !== null) {
3305            _.$slides.not(_.$slideTrack.find('.slick-cloned')).each(function(i) {
3306                var slideControlIndex = tabControlIndexes.indexOf(i);
3307
3308                $(this).attr({
3309                    'role': 'tabpanel',
3310                    'id': 'slick-slide' + _.instanceUid + i,
3311                    'tabindex': -1
3312                });
3313
3314                if (slideControlIndex !== -1) {
3315                   var ariaButtonControl = 'slick-slide-control' + _.instanceUid + slideControlIndex
3316                   if ($('#' + ariaButtonControl).length) {
3317                     $(this).attr({
3318                         'aria-describedby': ariaButtonControl
3319                     });
3320                   }
3321                }
3322            });
3323
3324            _.$dots.attr('role', 'tablist').find('li').each(function(i) {
3325                var mappedSlideIndex = tabControlIndexes[i];
3326
3327                $(this).attr({
3328                    'role': 'presentation'
3329                });
3330
3331                $(this).find('button').first().attr({
3332                    'role': 'tab',
3333                    'id': 'slick-slide-control' + _.instanceUid + i,
3334                    'aria-controls': 'slick-slide' + _.instanceUid + mappedSlideIndex,
3335                    'aria-label': (i + 1) + ' of ' + numDotGroups,
3336                    'aria-selected': null,
3337                    'tabindex': '-1'
3338                });
3339
3340            }).eq(_.currentSlide).find('button').attr({
3341                'aria-selected': 'true',
3342                'tabindex': '0'
3343            }).end();
3344        }
3345
3346        for (var i=_.currentSlide, max=i+_.options.slidesToShow; i < max; i++) {
3347          if (_.options.focusOnChange) {
3348            _.$slides.eq(i).attr({'tabindex': '0'});
3349          } else {
3350            _.$slides.eq(i).removeAttr('tabindex');
3351          }
3352        }
3353
3354        _.activateADA();
3355
3356    };
3357
3358    Slick.prototype.initArrowEvents = function() {
3359
3360        var _ = this;
3361
3362        if (_.options.arrows === true && _.slideCount > _.options.slidesToShow) {
3363            _.$prevArrow
3364               .off('click.slick')
3365               .on('click.slick', {
3366                    message: 'previous'
3367               }, _.changeSlide);
3368            _.$nextArrow
3369               .off('click.slick')
3370               .on('click.slick', {
3371                    message: 'next'
3372               }, _.changeSlide);
3373
3374            if (_.options.accessibility === true) {
3375                _.$prevArrow.on('keydown.slick', _.keyHandler);
3376                _.$nextArrow.on('keydown.slick', _.keyHandler);
3377            }
3378        }
3379
3380    };
3381
3382    Slick.prototype.initDotEvents = function() {
3383
3384        var _ = this;
3385
3386        if (_.options.dots === true && _.slideCount > _.options.slidesToShow) {
3387            $('li', _.$dots).on('click.slick', {
3388                message: 'index'
3389            }, _.changeSlide);
3390
3391            if (_.options.accessibility === true) {
3392                _.$dots.on('keydown.slick', _.keyHandler);
3393            }
3394        }
3395
3396        if (_.options.dots === true && _.options.pauseOnDotsHover === true && _.slideCount > _.options.slidesToShow) {
3397
3398            $('li', _.$dots)
3399                .on('mouseenter.slick', $.proxy(_.interrupt, _, true))
3400                .on('mouseleave.slick', $.proxy(_.interrupt, _, false));
3401
3402        }
3403
3404    };
3405
3406    Slick.prototype.initSlideEvents = function() {
3407
3408        var _ = this;
3409
3410        if ( _.options.pauseOnHover ) {
3411
3412            _.$list.on('mouseenter.slick', $.proxy(_.interrupt, _, true));
3413            _.$list.on('mouseleave.slick', $.proxy(_.interrupt, _, false));
3414
3415        }
3416
3417    };
3418
3419    Slick.prototype.initializeEvents = function() {
3420
3421        var _ = this;
3422
3423        _.initArrowEvents();
3424
3425        _.initDotEvents();
3426        _.initSlideEvents();
3427
3428        _.$list.on('touchstart.slick mousedown.slick', {
3429            action: 'start'
3430        }, _.swipeHandler);
3431        _.$list.on('touchmove.slick mousemove.slick', {
3432            action: 'move'
3433        }, _.swipeHandler);
3434        _.$list.on('touchend.slick mouseup.slick', {
3435            action: 'end'
3436        }, _.swipeHandler);
3437        _.$list.on('touchcancel.slick mouseleave.slick', {
3438            action: 'end'
3439        }, _.swipeHandler);
3440
3441        _.$list.on('click.slick', _.clickHandler);
3442
3443        $(document).on(_.visibilityChange, $.proxy(_.visibility, _));
3444
3445        if (_.options.accessibility === true) {
3446            _.$list.on('keydown.slick', _.keyHandler);
3447        }
3448
3449        if (_.options.focusOnSelect === true) {
3450            $(_.$slideTrack).children().on('click.slick', _.selectHandler);
3451        }
3452
3453        $(window).on('orientationchange.slick.slick-' + _.instanceUid, $.proxy(_.orientationChange, _));
3454
3455        $(window).on('resize.slick.slick-' + _.instanceUid, $.proxy(_.resize, _));
3456
3457        $('[draggable!=true]', _.$slideTrack).on('dragstart', _.preventDefault);
3458
3459        $(window).on('load.slick.slick-' + _.instanceUid, _.setPosition);
3460        $(_.setPosition);
3461
3462    };
3463
3464    Slick.prototype.initUI = function() {
3465
3466        var _ = this;
3467
3468        if (_.options.arrows === true && _.slideCount > _.options.slidesToShow) {
3469
3470            _.$prevArrow.show();
3471            _.$nextArrow.show();
3472
3473        }
3474
3475        if (_.options.dots === true && _.slideCount > _.options.slidesToShow) {
3476
3477            _.$dots.show();
3478
3479        }
3480
3481    };
3482
3483    Slick.prototype.keyHandler = function(event) {
3484
3485        var _ = this;
3486         //Dont slide if the cursor is inside the form fields and arrow keys are pressed
3487        if(!event.target.tagName.match('TEXTAREA|INPUT|SELECT')) {
3488            if (event.keyCode === 37 && _.options.accessibility === true) {
3489                _.changeSlide({
3490                    data: {
3491                        message: _.options.rtl === true ? 'next' :  'previous'
3492                    }
3493                });
3494            } else if (event.keyCode === 39 && _.options.accessibility === true) {
3495                _.changeSlide({
3496                    data: {
3497                        message: _.options.rtl === true ? 'previous' : 'next'
3498                    }
3499                });
3500            }
3501        }
3502
3503    };
3504
3505    Slick.prototype.lazyLoad = function() {
3506
3507        var _ = this,
3508            loadRange, cloneRange, rangeStart, rangeEnd;
3509
3510        function loadImages(imagesScope) {
3511
3512            $('img[data-lazy]', imagesScope).each(function() {
3513
3514                var image = $(this),
3515                    imageSource = $(this).attr('data-lazy'),
3516                    imageSrcSet = $(this).attr('data-srcset'),
3517                    imageSizes  = $(this).attr('data-sizes') || _.$slider.attr('data-sizes'),
3518                    imageToLoad = document.createElement('img');
3519
3520                imageToLoad.onload = function() {
3521
3522                    image
3523                        .animate({ opacity: 0 }, 100, function() {
3524
3525                            if (imageSrcSet) {
3526                                image
3527                                    .attr('srcset', imageSrcSet );
3528
3529                                if (imageSizes) {
3530                                    image
3531                                        .attr('sizes', imageSizes );
3532                                }
3533                            }
3534
3535                            image
3536                                .attr('src', imageSource)
3537                                .animate({ opacity: 1 }, 200, function() {
3538                                    image
3539                                        .removeAttr('data-lazy data-srcset data-sizes')
3540                                        .removeClass('slick-loading');
3541                                });
3542                            _.$slider.trigger('lazyLoaded', [_, image, imageSource]);
3543                        });
3544
3545                };
3546
3547                imageToLoad.onerror = function() {
3548
3549                    image
3550                        .removeAttr( 'data-lazy' )
3551                        .removeClass( 'slick-loading' )
3552                        .addClass( 'slick-lazyload-error' );
3553
3554                    _.$slider.trigger('lazyLoadError', [ _, image, imageSource ]);
3555
3556                };
3557
3558                imageToLoad.src = imageSource;
3559
3560            });
3561
3562        }
3563
3564        if (_.options.centerMode === true) {
3565            if (_.options.infinite === true) {
3566                rangeStart = _.currentSlide + (_.options.slidesToShow / 2 + 1);
3567                rangeEnd = rangeStart + _.options.slidesToShow + 2;
3568            } else {
3569                rangeStart = Math.max(0, _.currentSlide - (_.options.slidesToShow / 2 + 1));
3570                rangeEnd = 2 + (_.options.slidesToShow / 2 + 1) + _.currentSlide;
3571            }
3572        } else {
3573            rangeStart = _.options.infinite ? _.options.slidesToShow + _.currentSlide : _.currentSlide;
3574            rangeEnd = Math.ceil(rangeStart + _.options.slidesToShow);
3575            if (_.options.fade === true) {
3576                if (rangeStart > 0) rangeStart--;
3577                if (rangeEnd <= _.slideCount) rangeEnd++;
3578            }
3579        }
3580
3581        loadRange = _.$slider.find('.slick-slide').slice(rangeStart, rangeEnd);
3582
3583        if (_.options.lazyLoad === 'anticipated') {
3584            var prevSlide = rangeStart - 1,
3585                nextSlide = rangeEnd,
3586                $slides = _.$slider.find('.slick-slide');
3587
3588            for (var i = 0; i < _.options.slidesToScroll; i++) {
3589                if (prevSlide < 0) prevSlide = _.slideCount - 1;
3590                loadRange = loadRange.add($slides.eq(prevSlide));
3591                loadRange = loadRange.add($slides.eq(nextSlide));
3592                prevSlide--;
3593                nextSlide++;
3594            }
3595        }
3596
3597        loadImages(loadRange);
3598
3599        if (_.slideCount <= _.options.slidesToShow) {
3600            cloneRange = _.$slider.find('.slick-slide');
3601            loadImages(cloneRange);
3602        } else
3603        if (_.currentSlide >= _.slideCount - _.options.slidesToShow) {
3604            cloneRange = _.$slider.find('.slick-cloned').slice(0, _.options.slidesToShow);
3605            loadImages(cloneRange);
3606        } else if (_.currentSlide === 0) {
3607            cloneRange = _.$slider.find('.slick-cloned').slice(_.options.slidesToShow * -1);
3608            loadImages(cloneRange);
3609        }
3610
3611    };
3612
3613    Slick.prototype.loadSlider = function() {
3614
3615        var _ = this;
3616
3617        _.setPosition();
3618
3619        _.$slideTrack.css({
3620            opacity: 1
3621        });
3622
3623        _.$slider.removeClass('slick-loading');
3624
3625        _.initUI();
3626
3627        if (_.options.lazyLoad === 'progressive') {
3628            _.progressiveLazyLoad();
3629        }
3630
3631    };
3632
3633    Slick.prototype.next = Slick.prototype.slickNext = function() {
3634
3635        var _ = this;
3636
3637        _.changeSlide({
3638            data: {
3639                message: 'next'
3640            }
3641        });
3642
3643    };
3644
3645    Slick.prototype.orientationChange = function() {
3646
3647        var _ = this;
3648
3649        _.checkResponsive();
3650        _.setPosition();
3651
3652    };
3653
3654    Slick.prototype.pause = Slick.prototype.slickPause = function() {
3655
3656        var _ = this;
3657
3658        _.autoPlayClear();
3659        _.paused = true;
3660
3661    };
3662
3663    Slick.prototype.play = Slick.prototype.slickPlay = function() {
3664
3665        var _ = this;
3666
3667        _.autoPlay();
3668        _.options.autoplay = true;
3669        _.paused = false;
3670        _.focussed = false;
3671        _.interrupted = false;
3672
3673    };
3674
3675    Slick.prototype.postSlide = function(index) {
3676
3677        var _ = this;
3678
3679        if( !_.unslicked ) {
3680
3681            _.$slider.trigger('afterChange', [_, index]);
3682
3683            _.animating = false;
3684
3685            if (_.slideCount > _.options.slidesToShow) {
3686                _.setPosition();
3687            }
3688
3689            _.swipeLeft = null;
3690
3691            if ( _.options.autoplay ) {
3692                _.autoPlay();
3693            }
3694
3695            if (_.options.accessibility === true) {
3696                _.initADA();
3697
3698                if (_.options.focusOnChange) {
3699                    var $currentSlide = $(_.$slides.get(_.currentSlide));
3700                    $currentSlide.attr('tabindex', 0).focus();
3701                }
3702            }
3703
3704        }
3705
3706    };
3707
3708    Slick.prototype.prev = Slick.prototype.slickPrev = function() {
3709
3710        var _ = this;
3711
3712        _.changeSlide({
3713            data: {
3714                message: 'previous'
3715            }
3716        });
3717
3718    };
3719
3720    Slick.prototype.preventDefault = function(event) {
3721
3722        event.preventDefault();
3723
3724    };
3725
3726    Slick.prototype.progressiveLazyLoad = function( tryCount ) {
3727
3728        tryCount = tryCount || 1;
3729
3730        var _ = this,
3731            $imgsToLoad = $( 'img[data-lazy]', _.$slider ),
3732            image,
3733            imageSource,
3734            imageSrcSet,
3735            imageSizes,
3736            imageToLoad;
3737
3738        if ( $imgsToLoad.length ) {
3739
3740            image = $imgsToLoad.first();
3741            imageSource = image.attr('data-lazy');
3742            imageSrcSet = image.attr('data-srcset');
3743            imageSizes  = image.attr('data-sizes') || _.$slider.attr('data-sizes');
3744            imageToLoad = document.createElement('img');
3745
3746            imageToLoad.onload = function() {
3747
3748                if (imageSrcSet) {
3749                    image
3750                        .attr('srcset', imageSrcSet );
3751
3752                    if (imageSizes) {
3753                        image
3754                            .attr('sizes', imageSizes );
3755                    }
3756                }
3757
3758                image
3759                    .attr( 'src', imageSource )
3760                    .removeAttr('data-lazy data-srcset data-sizes')
3761                    .removeClass('slick-loading');
3762
3763                if ( _.options.adaptiveHeight === true ) {
3764                    _.setPosition();
3765                }
3766
3767                _.$slider.trigger('lazyLoaded', [ _, image, imageSource ]);
3768                _.progressiveLazyLoad();
3769
3770            };
3771
3772            imageToLoad.onerror = function() {
3773
3774                if ( tryCount < 3 ) {
3775
3776                    /**
3777                     * try to load the image 3 times,
3778                     * leave a slight delay so we don't get
3779                     * servers blocking the request.
3780                     */
3781                    setTimeout( function() {
3782                        _.progressiveLazyLoad( tryCount + 1 );
3783                    }, 500 );
3784
3785                } else {
3786
3787                    image
3788                        .removeAttr( 'data-lazy' )
3789                        .removeClass( 'slick-loading' )
3790                        .addClass( 'slick-lazyload-error' );
3791
3792                    _.$slider.trigger('lazyLoadError', [ _, image, imageSource ]);
3793
3794                    _.progressiveLazyLoad();
3795
3796                }
3797
3798            };
3799
3800            imageToLoad.src = imageSource;
3801
3802        } else {
3803
3804            _.$slider.trigger('allImagesLoaded', [ _ ]);
3805
3806        }
3807
3808    };
3809
3810    Slick.prototype.refresh = function( initializing ) {
3811
3812        var _ = this, currentSlide, lastVisibleIndex;
3813
3814        lastVisibleIndex = _.slideCount - _.options.slidesToShow;
3815
3816        // in non-infinite sliders, we don't want to go past the
3817        // last visible index.
3818        if( !_.options.infinite && ( _.currentSlide > lastVisibleIndex )) {
3819            _.currentSlide = lastVisibleIndex;
3820        }
3821
3822        // if less slides than to show, go to start.
3823        if ( _.slideCount <= _.options.slidesToShow ) {
3824            _.currentSlide = 0;
3825
3826        }
3827
3828        currentSlide = _.currentSlide;
3829
3830        _.destroy(true);
3831
3832        $.extend(_, _.initials, { currentSlide: currentSlide });
3833
3834        _.init();
3835
3836        if( !initializing ) {
3837
3838            _.changeSlide({
3839                data: {
3840                    message: 'index',
3841                    index: currentSlide
3842                }
3843            }, false);
3844
3845        }
3846
3847    };
3848
3849    Slick.prototype.registerBreakpoints = function() {
3850
3851        var _ = this, breakpoint, currentBreakpoint, l,
3852            responsiveSettings = _.options.responsive || null;
3853
3854        if ( $.type(responsiveSettings) === 'array' && responsiveSettings.length ) {
3855
3856            _.respondTo = _.options.respondTo || 'window';
3857
3858            for ( breakpoint in responsiveSettings ) {
3859
3860                l = _.breakpoints.length-1;
3861
3862                if (responsiveSettings.hasOwnProperty(breakpoint)) {
3863                    currentBreakpoint = responsiveSettings[breakpoint].breakpoint;
3864
3865                    // loop through the breakpoints and cut out any existing
3866                    // ones with the same breakpoint number, we don't want dupes.
3867                    while( l >= 0 ) {
3868                        if( _.breakpoints[l] && _.breakpoints[l] === currentBreakpoint ) {
3869                            _.breakpoints.splice(l,1);
3870                        }
3871                        l--;
3872                    }
3873
3874                    _.breakpoints.push(currentBreakpoint);
3875                    _.breakpointSettings[currentBreakpoint] = responsiveSettings[breakpoint].settings;
3876
3877                }
3878
3879            }
3880
3881            _.breakpoints.sort(function(a, b) {
3882                return ( _.options.mobileFirst ) ? a-b : b-a;
3883            });
3884
3885        }
3886
3887    };
3888
3889    Slick.prototype.reinit = function() {
3890
3891        var _ = this;
3892
3893        _.$slides =
3894            _.$slideTrack
3895                .children(_.options.slide)
3896                .addClass('slick-slide');
3897
3898        _.slideCount = _.$slides.length;
3899
3900        if (_.currentSlide >= _.slideCount && _.currentSlide !== 0) {
3901            _.currentSlide = _.currentSlide - _.options.slidesToScroll;
3902        }
3903
3904        if (_.slideCount <= _.options.slidesToShow) {
3905            _.currentSlide = 0;
3906        }
3907
3908        _.registerBreakpoints();
3909
3910        _.setProps();
3911        _.setupInfinite();
3912        _.buildArrows();
3913        _.updateArrows();
3914        _.initArrowEvents();
3915        _.buildDots();
3916        _.updateDots();
3917        _.initDotEvents();
3918        _.cleanUpSlideEvents();
3919        _.initSlideEvents();
3920
3921        _.checkResponsive(false, true);
3922
3923        if (_.options.focusOnSelect === true) {
3924            $(_.$slideTrack).children().on('click.slick', _.selectHandler);
3925        }
3926
3927        _.setSlideClasses(typeof _.currentSlide === 'number' ? _.currentSlide : 0);
3928
3929        _.setPosition();
3930        _.focusHandler();
3931
3932        _.paused = !_.options.autoplay;
3933        _.autoPlay();
3934
3935        _.$slider.trigger('reInit', [_]);
3936
3937    };
3938
3939    Slick.prototype.resize = function() {
3940
3941        var _ = this;
3942
3943        if ($(window).width() !== _.windowWidth) {
3944            clearTimeout(_.windowDelay);
3945            _.windowDelay = window.setTimeout(function() {
3946                _.windowWidth = $(window).width();
3947                _.checkResponsive();
3948                if( !_.unslicked ) { _.setPosition(); }
3949            }, 50);
3950        }
3951    };
3952
3953    Slick.prototype.removeSlide = Slick.prototype.slickRemove = function(index, removeBefore, removeAll) {
3954
3955        var _ = this;
3956
3957        if (typeof(index) === 'boolean') {
3958            removeBefore = index;
3959            index = removeBefore === true ? 0 : _.slideCount - 1;
3960        } else {
3961            index = removeBefore === true ? --index : index;
3962        }
3963
3964        if (_.slideCount < 1 || index < 0 || index > _.slideCount - 1) {
3965            return false;
3966        }
3967
3968        _.unload();
3969
3970        if (removeAll === true) {
3971            _.$slideTrack.children().remove();
3972        } else {
3973            _.$slideTrack.children(this.options.slide).eq(index).remove();
3974        }
3975
3976        _.$slides = _.$slideTrack.children(this.options.slide);
3977
3978        _.$slideTrack.children(this.options.slide).detach();
3979
3980        _.$slideTrack.append(_.$slides);
3981
3982        _.$slidesCache = _.$slides;
3983
3984        _.reinit();
3985
3986    };
3987
3988    Slick.prototype.setCSS = function(position) {
3989
3990        var _ = this,
3991            positionProps = {},
3992            x, y;
3993
3994        if (_.options.rtl === true) {
3995            position = -position;
3996        }
3997        x = _.positionProp == 'left' ? Math.ceil(position) + 'px' : '0px';
3998        y = _.positionProp == 'top' ? Math.ceil(position) + 'px' : '0px';
3999
4000        positionProps[_.positionProp] = position;
4001
4002        if (_.transformsEnabled === false) {
4003            _.$slideTrack.css(positionProps);
4004        } else {
4005            positionProps = {};
4006            if (_.cssTransitions === false) {
4007                positionProps[_.animType] = 'translate(' + x + ', ' + y + ')';
4008                _.$slideTrack.css(positionProps);
4009            } else {
4010                positionProps[_.animType] = 'translate3d(' + x + ', ' + y + ', 0px)';
4011                _.$slideTrack.css(positionProps);
4012            }
4013        }
4014
4015    };
4016
4017    Slick.prototype.setDimensions = function() {
4018
4019        var _ = this;
4020
4021        if (_.options.vertical === false) {
4022            if (_.options.centerMode === true) {
4023                _.$list.css({
4024                    padding: ('0px ' + _.options.centerPadding)
4025                });
4026            }
4027        } else {
4028            _.$list.height(_.$slides.first().outerHeight(true) * _.options.slidesToShow);
4029            if (_.options.centerMode === true) {
4030                _.$list.css({
4031                    padding: (_.options.centerPadding + ' 0px')
4032                });
4033            }
4034        }
4035
4036        _.listWidth = _.$list.width();
4037        _.listHeight = _.$list.height();
4038
4039
4040        if (_.options.vertical === false && _.options.variableWidth === false) {
4041            _.slideWidth = Math.ceil(_.listWidth / _.options.slidesToShow);
4042            _.$slideTrack.width(Math.ceil((_.slideWidth * _.$slideTrack.children('.slick-slide').length)));
4043
4044        } else if (_.options.variableWidth === true) {
4045            _.$slideTrack.width(5000 * _.slideCount);
4046        } else {
4047            _.slideWidth = Math.ceil(_.listWidth);
4048            _.$slideTrack.height(Math.ceil((_.$slides.first().outerHeight(true) * _.$slideTrack.children('.slick-slide').length)));
4049        }
4050
4051        var offset = _.$slides.first().outerWidth(true) - _.$slides.first().width();
4052        if (_.options.variableWidth === false) _.$slideTrack.children('.slick-slide').width(_.slideWidth - offset);
4053
4054    };
4055
4056    Slick.prototype.setFade = function() {
4057
4058        var _ = this,
4059            targetLeft;
4060
4061        _.$slides.each(function(index, element) {
4062            targetLeft = (_.slideWidth * index) * -1;
4063            if (_.options.rtl === true) {
4064                $(element).css({
4065                    position: 'relative',
4066                    right: targetLeft,
4067                    top: 0,
4068                    zIndex: _.options.zIndex - 2,
4069                    opacity: 0
4070                });
4071            } else {
4072                $(element).css({
4073                    position: 'relative',
4074                    left: targetLeft,
4075                    top: 0,
4076                    zIndex: _.options.zIndex - 2,
4077                    opacity: 0
4078                });
4079            }
4080        });
4081
4082        _.$slides.eq(_.currentSlide).css({
4083            zIndex: _.options.zIndex - 1,
4084            opacity: 1
4085        });
4086
4087    };
4088
4089    Slick.prototype.setHeight = function() {
4090
4091        var _ = this;
4092
4093        if (_.options.slidesToShow === 1 && _.options.adaptiveHeight === true && _.options.vertical === false) {
4094            var targetHeight = _.$slides.eq(_.currentSlide).outerHeight(true);
4095            _.$list.css('height', targetHeight);
4096        }
4097
4098    };
4099
4100    Slick.prototype.setOption =
4101    Slick.prototype.slickSetOption = function() {
4102
4103        /**
4104         * accepts arguments in format of:
4105         *
4106         *  - for changing a single option's value:
4107         *     .slick("setOption", option, value, refresh )
4108         *
4109         *  - for changing a set of responsive options:
4110         *     .slick("setOption", 'responsive', [{}, ...], refresh )
4111         *
4112         *  - for updating multiple values at once (not responsive)
4113         *     .slick("setOption", { 'option': value, ... }, refresh )
4114         */
4115
4116        var _ = this, l, item, option, value, refresh = false, type;
4117
4118        if( $.type( arguments[0] ) === 'object' ) {
4119
4120            option =  arguments[0];
4121            refresh = arguments[1];
4122            type = 'multiple';
4123
4124        } else if ( $.type( arguments[0] ) === 'string' ) {
4125
4126            option =  arguments[0];
4127            value = arguments[1];
4128            refresh = arguments[2];
4129
4130            if ( arguments[0] === 'responsive' && $.type( arguments[1] ) === 'array' ) {
4131
4132                type = 'responsive';
4133
4134            } else if ( typeof arguments[1] !== 'undefined' ) {
4135
4136                type = 'single';
4137
4138            }
4139
4140        }
4141
4142        if ( type === 'single' ) {
4143
4144            _.options[option] = value;
4145
4146
4147        } else if ( type === 'multiple' ) {
4148
4149            $.each( option , function( opt, val ) {
4150
4151                _.options[opt] = val;
4152
4153            });
4154
4155
4156        } else if ( type === 'responsive' ) {
4157
4158            for ( item in value ) {
4159
4160                if( $.type( _.options.responsive ) !== 'array' ) {
4161
4162                    _.options.responsive = [ value[item] ];
4163
4164                } else {
4165
4166                    l = _.options.responsive.length-1;
4167
4168                    // loop through the responsive object and splice out duplicates.
4169                    while( l >= 0 ) {
4170
4171                        if( _.options.responsive[l].breakpoint === value[item].breakpoint ) {
4172
4173                            _.options.responsive.splice(l,1);
4174
4175                        }
4176
4177                        l--;
4178
4179                    }
4180
4181                    _.options.responsive.push( value[item] );
4182
4183                }
4184
4185            }
4186
4187        }
4188
4189        if ( refresh ) {
4190
4191            _.unload();
4192            _.reinit();
4193
4194        }
4195
4196    };
4197
4198    Slick.prototype.setPosition = function() {
4199
4200        var _ = this;
4201
4202        _.setDimensions();
4203
4204        _.setHeight();
4205
4206        if (_.options.fade === false) {
4207            _.setCSS(_.getLeft(_.currentSlide));
4208        } else {
4209            _.setFade();
4210        }
4211
4212        _.$slider.trigger('setPosition', [_]);
4213
4214    };
4215
4216    Slick.prototype.setProps = function() {
4217
4218        var _ = this,
4219            bodyStyle = document.body.style;
4220
4221        _.positionProp = _.options.vertical === true ? 'top' : 'left';
4222
4223        if (_.positionProp === 'top') {
4224            _.$slider.addClass('slick-vertical');
4225        } else {
4226            _.$slider.removeClass('slick-vertical');
4227        }
4228
4229        if (bodyStyle.WebkitTransition !== undefined ||
4230            bodyStyle.MozTransition !== undefined ||
4231            bodyStyle.msTransition !== undefined) {
4232            if (_.options.useCSS === true) {
4233                _.cssTransitions = true;
4234            }
4235        }
4236
4237        if ( _.options.fade ) {
4238            if ( typeof _.options.zIndex === 'number' ) {
4239                if( _.options.zIndex < 3 ) {
4240                    _.options.zIndex = 3;
4241                }
4242            } else {
4243                _.options.zIndex = _.defaults.zIndex;
4244            }
4245        }
4246
4247        if (bodyStyle.OTransform !== undefined) {
4248            _.animType = 'OTransform';
4249            _.transformType = '-o-transform';
4250            _.transitionType = 'OTransition';
4251            if (bodyStyle.perspectiveProperty === undefined && bodyStyle.webkitPerspective === undefined) _.animType = false;
4252        }
4253        if (bodyStyle.MozTransform !== undefined) {
4254            _.animType = 'MozTransform';
4255            _.transformType = '-moz-transform';
4256            _.transitionType = 'MozTransition';
4257            if (bodyStyle.perspectiveProperty === undefined && bodyStyle.MozPerspective === undefined) _.animType = false;
4258        }
4259        if (bodyStyle.webkitTransform !== undefined) {
4260            _.animType = 'webkitTransform';
4261            _.transformType = '-webkit-transform';
4262            _.transitionType = 'webkitTransition';
4263            if (bodyStyle.perspectiveProperty === undefined && bodyStyle.webkitPerspective === undefined) _.animType = false;
4264        }
4265        if (bodyStyle.msTransform !== undefined) {
4266            _.animType = 'msTransform';
4267            _.transformType = '-ms-transform';
4268            _.transitionType = 'msTransition';
4269            if (bodyStyle.msTransform === undefined) _.animType = false;
4270        }
4271        if (bodyStyle.transform !== undefined && _.animType !== false) {
4272            _.animType = 'transform';
4273            _.transformType = 'transform';
4274            _.transitionType = 'transition';
4275        }
4276        _.transformsEnabled = _.options.useTransform && (_.animType !== null && _.animType !== false);
4277    };
4278
4279
4280    Slick.prototype.setSlideClasses = function(index) {
4281
4282        var _ = this,
4283            centerOffset, allSlides, indexOffset, remainder;
4284
4285        allSlides = _.$slider
4286            .find('.slick-slide')
4287            .removeClass('slick-active slick-center slick-current')
4288            .attr('aria-hidden', 'true');
4289
4290        _.$slides
4291            .eq(index)
4292            .addClass('slick-current');
4293
4294        if (_.options.centerMode === true) {
4295
4296            var evenCoef = _.options.slidesToShow % 2 === 0 ? 1 : 0;
4297
4298            centerOffset = Math.floor(_.options.slidesToShow / 2);
4299
4300            if (_.options.infinite === true) {
4301
4302                if (index >= centerOffset && index <= (_.slideCount - 1) - centerOffset) {
4303                    _.$slides
4304                        .slice(index - centerOffset + evenCoef, index + centerOffset + 1)
4305                        .addClass('slick-active')
4306                        .attr('aria-hidden', 'false');
4307
4308                } else {
4309
4310                    indexOffset = _.options.slidesToShow + index;
4311                    allSlides
4312                        .slice(indexOffset - centerOffset + 1 + evenCoef, indexOffset + centerOffset + 2)
4313                        .addClass('slick-active')
4314                        .attr('aria-hidden', 'false');
4315
4316                }
4317
4318                if (index === 0) {
4319
4320                    allSlides
4321                        .eq(allSlides.length - 1 - _.options.slidesToShow)
4322                        .addClass('slick-center');
4323
4324                } else if (index === _.slideCount - 1) {
4325
4326                    allSlides
4327                        .eq(_.options.slidesToShow)
4328                        .addClass('slick-center');
4329
4330                }
4331
4332            }
4333
4334            _.$slides
4335                .eq(index)
4336                .addClass('slick-center');
4337
4338        } else {
4339
4340            if (index >= 0 && index <= (_.slideCount - _.options.slidesToShow)) {
4341
4342                _.$slides
4343                    .slice(index, index + _.options.slidesToShow)
4344                    .addClass('slick-active')
4345                    .attr('aria-hidden', 'false');
4346
4347            } else if (allSlides.length <= _.options.slidesToShow) {
4348
4349                allSlides
4350                    .addClass('slick-active')
4351                    .attr('aria-hidden', 'false');
4352
4353            } else {
4354
4355                remainder = _.slideCount % _.options.slidesToShow;
4356                indexOffset = _.options.infinite === true ? _.options.slidesToShow + index : index;
4357
4358                if (_.options.slidesToShow == _.options.slidesToScroll && (_.slideCount - index) < _.options.slidesToShow) {
4359
4360                    allSlides
4361                        .slice(indexOffset - (_.options.slidesToShow - remainder), indexOffset + remainder)
4362                        .addClass('slick-active')
4363                        .attr('aria-hidden', 'false');
4364
4365                } else {
4366
4367                    allSlides
4368                        .slice(indexOffset, indexOffset + _.options.slidesToShow)
4369                        .addClass('slick-active')
4370                        .attr('aria-hidden', 'false');
4371
4372                }
4373
4374            }
4375
4376        }
4377
4378        if (_.options.lazyLoad === 'ondemand' || _.options.lazyLoad === 'anticipated') {
4379            _.lazyLoad();
4380        }
4381    };
4382
4383    Slick.prototype.setupInfinite = function() {
4384
4385        var _ = this,
4386            i, slideIndex, infiniteCount;
4387
4388        if (_.options.fade === true) {
4389            _.options.centerMode = false;
4390        }
4391
4392        if (_.options.infinite === true && _.options.fade === false) {
4393
4394            slideIndex = null;
4395
4396            if (_.slideCount > _.options.slidesToShow) {
4397
4398                if (_.options.centerMode === true) {
4399                    infiniteCount = _.options.slidesToShow + 1;
4400                } else {
4401                    infiniteCount = _.options.slidesToShow;
4402                }
4403
4404                for (i = _.slideCount; i > (_.slideCount -
4405                        infiniteCount); i -= 1) {
4406                    slideIndex = i - 1;
4407                    $(_.$slides[slideIndex]).clone(true).attr('id', '')
4408                        .attr('data-slick-index', slideIndex - _.slideCount)
4409                        .prependTo(_.$slideTrack).addClass('slick-cloned');
4410                }
4411                for (i = 0; i < infiniteCount  + _.slideCount; i += 1) {
4412                    slideIndex = i;
4413                    $(_.$slides[slideIndex]).clone(true).attr('id', '')
4414                        .attr('data-slick-index', slideIndex + _.slideCount)
4415                        .appendTo(_.$slideTrack).addClass('slick-cloned');
4416                }
4417                _.$slideTrack.find('.slick-cloned').find('[id]').each(function() {
4418                    $(this).attr('id', '');
4419                });
4420
4421            }
4422
4423        }
4424
4425    };
4426
4427    Slick.prototype.interrupt = function( toggle ) {
4428
4429        var _ = this;
4430
4431        if( !toggle ) {
4432            _.autoPlay();
4433        }
4434        _.interrupted = toggle;
4435
4436    };
4437
4438    Slick.prototype.selectHandler = function(event) {
4439
4440        var _ = this;
4441
4442        var targetElement =
4443            $(event.target).is('.slick-slide') ?
4444                $(event.target) :
4445                $(event.target).parents('.slick-slide');
4446
4447        var index = parseInt(targetElement.attr('data-slick-index'));
4448
4449        if (!index) index = 0;
4450
4451        if (_.slideCount <= _.options.slidesToShow) {
4452
4453            _.slideHandler(index, false, true);
4454            return;
4455
4456        }
4457
4458        _.slideHandler(index);
4459
4460    };
4461
4462    Slick.prototype.slideHandler = function(index, sync, dontAnimate) {
4463
4464        var targetSlide, animSlide, oldSlide, slideLeft, targetLeft = null,
4465            _ = this, navTarget;
4466
4467        sync = sync || false;
4468
4469        if (_.animating === true && _.options.waitForAnimate === true) {
4470            return;
4471        }
4472
4473        if (_.options.fade === true && _.currentSlide === index) {
4474            return;
4475        }
4476
4477        if (sync === false) {
4478            _.asNavFor(index);
4479        }
4480
4481        targetSlide = index;
4482        targetLeft = _.getLeft(targetSlide);
4483        slideLeft = _.getLeft(_.currentSlide);
4484
4485        _.currentLeft = _.swipeLeft === null ? slideLeft : _.swipeLeft;
4486
4487        if (_.options.infinite === false && _.options.centerMode === false && (index < 0 || index > _.getDotCount() * _.options.slidesToScroll)) {
4488            if (_.options.fade === false) {
4489                targetSlide = _.currentSlide;
4490                if (dontAnimate !== true && _.slideCount > _.options.slidesToShow) {
4491                    _.animateSlide(slideLeft, function() {
4492                        _.postSlide(targetSlide);
4493                    });
4494                } else {
4495                    _.postSlide(targetSlide);
4496                }
4497            }
4498            return;
4499        } else if (_.options.infinite === false && _.options.centerMode === true && (index < 0 || index > (_.slideCount - _.options.slidesToScroll))) {
4500            if (_.options.fade === false) {
4501                targetSlide = _.currentSlide;
4502                if (dontAnimate !== true && _.slideCount > _.options.slidesToShow) {
4503                    _.animateSlide(slideLeft, function() {
4504                        _.postSlide(targetSlide);
4505                    });
4506                } else {
4507                    _.postSlide(targetSlide);
4508                }
4509            }
4510            return;
4511        }
4512
4513        if ( _.options.autoplay ) {
4514            clearInterval(_.autoPlayTimer);
4515        }
4516
4517        if (targetSlide < 0) {
4518            if (_.slideCount % _.options.slidesToScroll !== 0) {
4519                animSlide = _.slideCount - (_.slideCount % _.options.slidesToScroll);
4520            } else {
4521                animSlide = _.slideCount + targetSlide;
4522            }
4523        } else if (targetSlide >= _.slideCount) {
4524            if (_.slideCount % _.options.slidesToScroll !== 0) {
4525                animSlide = 0;
4526            } else {
4527                animSlide = targetSlide - _.slideCount;
4528            }
4529        } else {
4530            animSlide = targetSlide;
4531        }
4532
4533        _.animating = true;
4534
4535        _.$slider.trigger('beforeChange', [_, _.currentSlide, animSlide]);
4536
4537        oldSlide = _.currentSlide;
4538        _.currentSlide = animSlide;
4539
4540        _.setSlideClasses(_.currentSlide);
4541
4542        if ( _.options.asNavFor ) {
4543
4544            navTarget = _.getNavTarget();
4545            navTarget = navTarget.slick('getSlick');
4546
4547            if ( navTarget.slideCount <= navTarget.options.slidesToShow ) {
4548                navTarget.setSlideClasses(_.currentSlide);
4549            }
4550
4551        }
4552
4553        _.updateDots();
4554        _.updateArrows();
4555
4556        if (_.options.fade === true) {
4557            if (dontAnimate !== true) {
4558
4559                _.fadeSlideOut(oldSlide);
4560
4561                _.fadeSlide(animSlide, function() {
4562                    _.postSlide(animSlide);
4563                });
4564
4565            } else {
4566                _.postSlide(animSlide);
4567            }
4568            _.animateHeight();
4569            return;
4570        }
4571
4572        if (dontAnimate !== true && _.slideCount > _.options.slidesToShow) {
4573            _.animateSlide(targetLeft, function() {
4574                _.postSlide(animSlide);
4575            });
4576        } else {
4577            _.postSlide(animSlide);
4578        }
4579
4580    };
4581
4582    Slick.prototype.startLoad = function() {
4583
4584        var _ = this;
4585
4586        if (_.options.arrows === true && _.slideCount > _.options.slidesToShow) {
4587
4588            _.$prevArrow.hide();
4589            _.$nextArrow.hide();
4590
4591        }
4592
4593        if (_.options.dots === true && _.slideCount > _.options.slidesToShow) {
4594
4595            _.$dots.hide();
4596
4597        }
4598
4599        _.$slider.addClass('slick-loading');
4600
4601    };
4602
4603    Slick.prototype.swipeDirection = function() {
4604
4605        var xDist, yDist, r, swipeAngle, _ = this;
4606
4607        xDist = _.touchObject.startX - _.touchObject.curX;
4608        yDist = _.touchObject.startY - _.touchObject.curY;
4609        r = Math.atan2(yDist, xDist);
4610
4611        swipeAngle = Math.round(r * 180 / Math.PI);
4612        if (swipeAngle < 0) {
4613            swipeAngle = 360 - Math.abs(swipeAngle);
4614        }
4615
4616        if ((swipeAngle <= 45) && (swipeAngle >= 0)) {
4617            return (_.options.rtl === false ? 'left' : 'right');
4618        }
4619        if ((swipeAngle <= 360) && (swipeAngle >= 315)) {
4620            return (_.options.rtl === false ? 'left' : 'right');
4621        }
4622        if ((swipeAngle >= 135) && (swipeAngle <= 225)) {
4623            return (_.options.rtl === false ? 'right' : 'left');
4624        }
4625        if (_.options.verticalSwiping === true) {
4626            if ((swipeAngle >= 35) && (swipeAngle <= 135)) {
4627                return 'down';
4628            } else {
4629                return 'up';
4630            }
4631        }
4632
4633        return 'vertical';
4634
4635    };
4636
4637    Slick.prototype.swipeEnd = function(event) {
4638
4639        var _ = this,
4640            slideCount,
4641            direction;
4642
4643        _.dragging = false;
4644        _.swiping = false;
4645
4646        if (_.scrolling) {
4647            _.scrolling = false;
4648            return false;
4649        }
4650
4651        _.interrupted = false;
4652        _.shouldClick = ( _.touchObject.swipeLength > 10 ) ? false : true;
4653
4654        if ( _.touchObject.curX === undefined ) {
4655            return false;
4656        }
4657
4658        if ( _.touchObject.edgeHit === true ) {
4659            _.$slider.trigger('edge', [_, _.swipeDirection() ]);
4660        }
4661
4662        if ( _.touchObject.swipeLength >= _.touchObject.minSwipe ) {
4663
4664            direction = _.swipeDirection();
4665
4666            switch ( direction ) {
4667
4668                case 'left':
4669                case 'down':
4670
4671                    slideCount =
4672                        _.options.swipeToSlide ?
4673                            _.checkNavigable( _.currentSlide + _.getSlideCount() ) :
4674                            _.currentSlide + _.getSlideCount();
4675
4676                    _.currentDirection = 0;
4677
4678                    break;
4679
4680                case 'right':
4681                case 'up':
4682
4683                    slideCount =
4684                        _.options.swipeToSlide ?
4685                            _.checkNavigable( _.currentSlide - _.getSlideCount() ) :
4686                            _.currentSlide - _.getSlideCount();
4687
4688                    _.currentDirection = 1;
4689
4690                    break;
4691
4692                default:
4693
4694
4695            }
4696
4697            if( direction != 'vertical' ) {
4698
4699                _.slideHandler( slideCount );
4700                _.touchObject = {};
4701                _.$slider.trigger('swipe', [_, direction ]);
4702
4703            }
4704
4705        } else {
4706
4707            if ( _.touchObject.startX !== _.touchObject.curX ) {
4708
4709                _.slideHandler( _.currentSlide );
4710                _.touchObject = {};
4711
4712            }
4713
4714        }
4715
4716    };
4717
4718    Slick.prototype.swipeHandler = function(event) {
4719
4720        var _ = this;
4721
4722        if ((_.options.swipe === false) || ('ontouchend' in document && _.options.swipe === false)) {
4723            return;
4724        } else if (_.options.draggable === false && event.type.indexOf('mouse') !== -1) {
4725            return;
4726        }
4727
4728        _.touchObject.fingerCount = event.originalEvent && event.originalEvent.touches !== undefined ?
4729            event.originalEvent.touches.length : 1;
4730
4731        _.touchObject.minSwipe = _.listWidth / _.options
4732            .touchThreshold;
4733
4734        if (_.options.verticalSwiping === true) {
4735            _.touchObject.minSwipe = _.listHeight / _.options
4736                .touchThreshold;
4737        }
4738
4739        switch (event.data.action) {
4740
4741            case 'start':
4742                _.swipeStart(event);
4743                break;
4744
4745            case 'move':
4746                _.swipeMove(event);
4747                break;
4748
4749            case 'end':
4750                _.swipeEnd(event);
4751                break;
4752
4753        }
4754
4755    };
4756
4757    Slick.prototype.swipeMove = function(event) {
4758
4759        var _ = this,
4760            edgeWasHit = false,
4761            curLeft, swipeDirection, swipeLength, positionOffset, touches, verticalSwipeLength;
4762
4763        touches = event.originalEvent !== undefined ? event.originalEvent.touches : null;
4764
4765        if (!_.dragging || _.scrolling || touches && touches.length !== 1) {
4766            return false;
4767        }
4768
4769        curLeft = _.getLeft(_.currentSlide);
4770
4771        _.touchObject.curX = touches !== undefined ? touches[0].pageX : event.clientX;
4772        _.touchObject.curY = touches !== undefined ? touches[0].pageY : event.clientY;
4773
4774        _.touchObject.swipeLength = Math.round(Math.sqrt(
4775            Math.pow(_.touchObject.curX - _.touchObject.startX, 2)));
4776
4777        verticalSwipeLength = Math.round(Math.sqrt(
4778            Math.pow(_.touchObject.curY - _.touchObject.startY, 2)));
4779
4780        if (!_.options.verticalSwiping && !_.swiping && verticalSwipeLength > 4) {
4781            _.scrolling = true;
4782            return false;
4783        }
4784
4785        if (_.options.verticalSwiping === true) {
4786            _.touchObject.swipeLength = verticalSwipeLength;
4787        }
4788
4789        swipeDirection = _.swipeDirection();
4790
4791        if (event.originalEvent !== undefined && _.touchObject.swipeLength > 4) {
4792            _.swiping = true;
4793            event.preventDefault();
4794        }
4795
4796        positionOffset = (_.options.rtl === false ? 1 : -1) * (_.touchObject.curX > _.touchObject.startX ? 1 : -1);
4797        if (_.options.verticalSwiping === true) {
4798            positionOffset = _.touchObject.curY > _.touchObject.startY ? 1 : -1;
4799        }
4800
4801
4802        swipeLength = _.touchObject.swipeLength;
4803
4804        _.touchObject.edgeHit = false;
4805
4806        if (_.options.infinite === false) {
4807            if ((_.currentSlide === 0 && swipeDirection === 'right') || (_.currentSlide >= _.getDotCount() && swipeDirection === 'left')) {
4808                swipeLength = _.touchObject.swipeLength * _.options.edgeFriction;
4809                _.touchObject.edgeHit = true;
4810            }
4811        }
4812
4813        if (_.options.vertical === false) {
4814            _.swipeLeft = curLeft + swipeLength * positionOffset;
4815        } else {
4816            _.swipeLeft = curLeft + (swipeLength * (_.$list.height() / _.listWidth)) * positionOffset;
4817        }
4818        if (_.options.verticalSwiping === true) {
4819            _.swipeLeft = curLeft + swipeLength * positionOffset;
4820        }
4821
4822        if (_.options.fade === true || _.options.touchMove === false) {
4823            return false;
4824        }
4825
4826        if (_.animating === true) {
4827            _.swipeLeft = null;
4828            return false;
4829        }
4830
4831        _.setCSS(_.swipeLeft);
4832
4833    };
4834
4835    Slick.prototype.swipeStart = function(event) {
4836
4837        var _ = this,
4838            touches;
4839
4840        _.interrupted = true;
4841
4842        if (_.touchObject.fingerCount !== 1 || _.slideCount <= _.options.slidesToShow) {
4843            _.touchObject = {};
4844            return false;
4845        }
4846
4847        if (event.originalEvent !== undefined && event.originalEvent.touches !== undefined) {
4848            touches = event.originalEvent.touches[0];
4849        }
4850
4851        _.touchObject.startX = _.touchObject.curX = touches !== undefined ? touches.pageX : event.clientX;
4852        _.touchObject.startY = _.touchObject.curY = touches !== undefined ? touches.pageY : event.clientY;
4853
4854        _.dragging = true;
4855
4856    };
4857
4858    Slick.prototype.unfilterSlides = Slick.prototype.slickUnfilter = function() {
4859
4860        var _ = this;
4861
4862        if (_.$slidesCache !== null) {
4863
4864            _.unload();
4865
4866            _.$slideTrack.children(this.options.slide).detach();
4867
4868            _.$slidesCache.appendTo(_.$slideTrack);
4869
4870            _.reinit();
4871
4872        }
4873
4874    };
4875
4876    Slick.prototype.unload = function() {
4877
4878        var _ = this;
4879
4880        $('.slick-cloned', _.$slider).remove();
4881
4882        if (_.$dots) {
4883            _.$dots.remove();
4884        }
4885
4886        if (_.$prevArrow && _.htmlExpr.test(_.options.prevArrow)) {
4887            _.$prevArrow.remove();
4888        }
4889
4890        if (_.$nextArrow && _.htmlExpr.test(_.options.nextArrow)) {
4891            _.$nextArrow.remove();
4892        }
4893
4894        _.$slides
4895            .removeClass('slick-slide slick-active slick-visible slick-current')
4896            .attr('aria-hidden', 'true')
4897            .css('width', '');
4898
4899    };
4900
4901    Slick.prototype.unslick = function(fromBreakpoint) {
4902
4903        var _ = this;
4904        _.$slider.trigger('unslick', [_, fromBreakpoint]);
4905        _.destroy();
4906
4907    };
4908
4909    Slick.prototype.updateArrows = function() {
4910
4911        var _ = this,
4912            centerOffset;
4913
4914        centerOffset = Math.floor(_.options.slidesToShow / 2);
4915
4916        if ( _.options.arrows === true &&
4917            _.slideCount > _.options.slidesToShow &&
4918            !_.options.infinite ) {
4919
4920            _.$prevArrow.removeClass('slick-disabled').attr('aria-disabled', 'false');
4921            _.$nextArrow.removeClass('slick-disabled').attr('aria-disabled', 'false');
4922
4923            if (_.currentSlide === 0) {
4924
4925                _.$prevArrow.addClass('slick-disabled').attr('aria-disabled', 'true');
4926                _.$nextArrow.removeClass('slick-disabled').attr('aria-disabled', 'false');
4927
4928            } else if (_.currentSlide >= _.slideCount - _.options.slidesToShow && _.options.centerMode === false) {
4929
4930                _.$nextArrow.addClass('slick-disabled').attr('aria-disabled', 'true');
4931                _.$prevArrow.removeClass('slick-disabled').attr('aria-disabled', 'false');
4932
4933            } else if (_.currentSlide >= _.slideCount - 1 && _.options.centerMode === true) {
4934
4935                _.$nextArrow.addClass('slick-disabled').attr('aria-disabled', 'true');
4936                _.$prevArrow.removeClass('slick-disabled').attr('aria-disabled', 'false');
4937
4938            }
4939
4940        }
4941
4942    };
4943
4944    Slick.prototype.updateDots = function() {
4945
4946        var _ = this;
4947
4948        if (_.$dots !== null) {
4949
4950            _.$dots
4951                .find('li')
4952                    .removeClass('slick-active')
4953                    .end();
4954
4955            _.$dots
4956                .find('li')
4957                .eq(Math.floor(_.currentSlide / _.options.slidesToScroll))
4958                .addClass('slick-active');
4959
4960        }
4961
4962    };
4963
4964    Slick.prototype.visibility = function() {
4965
4966        var _ = this;
4967
4968        if ( _.options.autoplay ) {
4969
4970            if ( document[_.hidden] ) {
4971
4972                _.interrupted = true;
4973
4974            } else {
4975
4976                _.interrupted = false;
4977
4978            }
4979
4980        }
4981
4982    };
4983
4984    $.fn.slick = function() {
4985        var _ = this,
4986            opt = arguments[0],
4987            args = Array.prototype.slice.call(arguments, 1),
4988            l = _.length,
4989            i,
4990            ret;
4991        for (i = 0; i < l; i++) {
4992            if (typeof opt == 'object' || typeof opt == 'undefined')
4993                _[i].slick = new Slick(_[i], opt);
4994            else
4995                ret = _[i].slick[opt].apply(_[i].slick, args);
4996            if (typeof ret != 'undefined') return ret;
4997        }
4998        return _;
4999    };
5000
5001}));
5002
5003
5004/***/ }),
5005
vendor: 767 bytes, lines 5006-5036
5006/***/ "../node_modules/webpack/buildin/global.js":
5007/*!*************************************************!*\
5008  !*** ../node_modules/webpack/buildin/global.js ***!
5009  \*************************************************/
5010/*! no static exports found */
5011/***/ (function(module, exports) {
5012
5013var g;
5014
5015// This works in non-strict mode
5016g = (function() {
5017	return this;
5018})();
5019
5020try {
5021	// This works if eval is allowed (see CSP)
5022	g = g || new Function("return this")();
5023} catch (e) {
5024	// This works if the window reference is available
5025	if (typeof window === "object") g = window;
5026}
5027
5028// g can still be undefined, but nothing to do about it...
5029// We return undefined, instead of nothing here, so it's
5030// easier to handle this case. if(!global) { ...}
5031
5032module.exports = g;
5033
5034
5035/***/ }),
5036
5037/***/ "../src/assets/js/main.js":
5038/*!********************************!*\
5039  !*** ../src/assets/js/main.js ***!
5040  \********************************/
5041/*! no exports provided */
5042/***/ (function(module, __webpack_exports__, __webpack_require__) {
5043
5044"use strict";
5045__webpack_require__.r(__webpack_exports__);
5046/* harmony import */ var _modules_accordion__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./modules/accordion */ "../src/assets/js/modules/accordion.js");
5047/* harmony import */ var _modules_sliders__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./modules/sliders */ "../src/assets/js/modules/sliders.js");
5048/* harmony import */ var _modules_clickEvents__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./modules/clickEvents */ "../src/assets/js/modules/clickEvents.js");
5049/* harmony import */ var _modules_textAnimation__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./modules/textAnimation */ "../src/assets/js/modules/textAnimation.js");
5050/* harmony import */ var _modules_textAnimation__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_modules_textAnimation__WEBPACK_IMPORTED_MODULE_3__);
5051/* harmony import */ var _modules_fixedElements__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./modules/fixedElements */ "../src/assets/js/modules/fixedElements.js");
5052/* harmony import */ var _modules_fixedElements__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_modules_fixedElements__WEBPACK_IMPORTED_MODULE_4__);
5053/* harmony import */ var _modules_fadeUpAnimation__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./modules/fadeUpAnimation */ "../src/assets/js/modules/fadeUpAnimation.js");
5054/* harmony import */ var _modules_fadeUpAnimation__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_modules_fadeUpAnimation__WEBPACK_IMPORTED_MODULE_5__);
5055/* harmony import */ var _modules_sectionLoop_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./modules/sectionLoop.js */ "../src/assets/js/modules/sectionLoop.js");
5056/* harmony import */ var _modules_popup_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./modules/popup.js */ "../src/assets/js/modules/popup.js");
5057/* harmony import */ var _modules_copy_functionality_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./modules/copy-functionality.js */ "../src/assets/js/modules/copy-functionality.js");
5058/* harmony import */ var _modules_secondaryMenus_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./modules/secondaryMenus.js */ "../src/assets/js/modules/secondaryMenus.js");
5059/* harmony import */ var _modules_videos__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./modules/videos */ "../src/assets/js/modules/videos.js");
5060/* harmony import */ var _modules_select__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./modules/select */ "../src/assets/js/modules/select.js");
5061/* harmony import */ var _modules_sliderQuestions__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./modules/sliderQuestions */ "../src/assets/js/modules/sliderQuestions.js");
5062/* harmony import */ var _modules_sliderQuestions__WEBPACK_IMPORTED_MODULE_12___default = /*#__PURE__*/__webpack_require__.n(_modules_sliderQuestions__WEBPACK_IMPORTED_MODULE_12__);
5063
5064
5065
5066
5067
5068
5069
5070
5071
5072
5073
5074
5075
5076
5077/***/ }),
5078
5079/***/ "../src/assets/js/modules/accordion.js":
5080/*!*********************************************!*\
5081  !*** ../src/assets/js/modules/accordion.js ***!
5082  \*********************************************/
5083/*! exports provided: initAccordions */
5084/***/ (function(module, __webpack_exports__, __webpack_require__) {
5085
5086"use strict";
5087__webpack_require__.r(__webpack_exports__);
5088/* WEBPACK VAR INJECTION */(function($) {/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "initAccordions", function() { return initAccordions; });
5089var initAccordions = function initAccordions() {
5090  $('.js-accordion .accordion__head').on('click', function (e) {
5091    var $this = $(this);
5092    $this.toggleClass('is-active');
5093
5094    if ($this.hasClass('is-active')) {
5095      $this.next().attr('aria-expanded', true);
5096      $this.next().attr('aria-hidden', false);
5097    } else {
5098      $this.next().attr('aria-expanded', false);
5099      $this.next().attr('aria-hidden', true);
5100    }
5101
5102    $this.parent().siblings().find('.accordion__head').removeClass('is-active');
5103    $this.next().stop(true, true).slideToggle().parent().toggleClass('is-active').siblings().removeClass('is-active').find('.accordion__body').slideUp();
5104    var $accordionSections = $('.accordion--primary .accordion__section');
5105
5106    if ($accordionSections.hasClass('is-active')) {
5107      $this.closest('.js-accordion').addClass('is-small');
5108    } else {
5109      $this.closest('.js-accordion').removeClass('is-small');
5110    }
5111
5112    $accordionSections.each(function (index, section) {});
5113    e.preventDefault();
5114  });
5115};
5116initAccordions();
5117/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! jquery */ "jquery")))
5118
5119/***/ }),
5120
5121/***/ "../src/assets/js/modules/clickEvents.js":
5122/*!***********************************************!*\
5123  !*** ../src/assets/js/modules/clickEvents.js ***!
5124  \***********************************************/
5125/*! no exports provided */
5126/***/ (function(module, __webpack_exports__, __webpack_require__) {
5127
5128"use strict";
5129__webpack_require__.r(__webpack_exports__);
5130/* WEBPACK VAR INJECTION */(function($) {/* harmony import */ var _utils_globals__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../utils/globals */ "../src/assets/js/utils/globals.js");
5131
5132$('.js-link').on('mouseover focus', function (e) {
5133  e.preventDefault();
5134  var $this = $(this);
5135  var $target = $this.data('target');
5136  var $menus = $this.closest('.menu').find('.js-menu-content');
5137  $menus.removeClass('is-active');
5138  $($target).addClass('is-active');
5139});
5140$('.js-link').on('click', function (e) {
5141  e.preventDefault();
5142  var $this = $(this);
5143  var $parent = $this.parent();
5144  var $dropdown = $parent.find('.menu__dropdown');
5145
5146  if (_utils_globals__WEBPACK_IMPORTED_MODULE_0__["$window"].width() < 768) {
5147    if ($parent.hasClass('has-dropdown')) {
5148      if (!$parent.hasClass('is-active')) {
5149        $('.menu__dropdown').slideUp().parent().removeClass('is-active');
5150        $parent.addClass('is-active');
5151        $dropdown.slideDown();
5152      } else {
5153        $parent.removeClass('is-active');
5154        $dropdown.slideUp();
5155      }
5156    }
5157  }
5158});
5159_utils_globals__WEBPACK_IMPORTED_MODULE_0__["$window"].on('load resize', function () {
5160  if (_utils_globals__WEBPACK_IMPORTED_MODULE_0__["$window"].width() > 767) {
5161    $('.menu__dropdown').removeAttr('style').parent().removeClass('is-active');
5162  }
5163});
5164$('.slider__prev').on('click', function (e) {
5165  e.preventDefault();
5166  var slider = $(this).closest('.slider');
5167  var prev = slider.find('.slick-prev');
5168  prev.trigger('click');
5169});
5170$('.slider__next').on('click', function (e) {
5171  e.preventDefault();
5172  var slider = $(this).closest('.slider');
5173  var next = slider.find('.slick-next');
5174  next.trigger('click');
5175});
5176$('.slider__prev-article').on('click', function (e) {
5177  e.preventDefault();
5178  $('.slider--articles .slick-prev').trigger('click');
5179});
5180$('.slider__next-article').on('click', function (e) {
5181  e.preventDefault();
5182  $('.slider--articles .slick-next').trigger('click');
5183});
5184$('.js-dropdown-trigger').on('click', function (e) {
5185  e.preventDefault();
5186  var $this = $(this);
5187  $this.parent().toggleClass('is-active');
5188
5189  if ($this.parent().hasClass('is-active')) {
5190    $this.next().attr('aria-expanded', true);
5191    $this.next().attr('aria-hidden', false);
5192  } else {
5193    $this.next().attr('aria-expanded', false);
5194    $this.next().attr('aria-hidden', true);
5195  }
5196
5197  $this.parent().siblings().removeClass('is-active');
5198  $this.next().stop(true, true).slideToggle().parent().siblings().find('.dropdown').slideUp();
5199});
5200$('.link-skip').on('click', function (e) {
5201  e.preventDefault();
5202  var $this = $(this);
5203  var href = $this.attr('href');
5204  $('html, body').animate({
5205    scrollTop: $(href).offset().top
5206  }, 300);
5207  setTimeout(function () {
5208    $(href).find('a')[0].focus();
5209  }, 100);
5210  $(href).find('.slick-prev').focus();
5211});
5212$('.link-skip-to-menu').on('click', function (e) {
5213  e.preventDefault();
5214  var $this = $(this);
5215  $('.header__menu .js-open-link').focus();
5216});
5217$('.js-field').on('focus', function (e) {
5218  e.preventDefault();
5219  var $this = $(this);
5220
5221  if (e.target == $this[0]) {
5222    $this.closest('.search-primary').addClass('is-active');
5223    $('.section-find .section__overlay').addClass('is-visible');
5224  }
5225});
5226$(window).on('click', function (e) {
5227  if (e.target == $('.section__overlay')[0]) {
5228    $('.js-field').closest('.search-primary').removeClass('is-active');
5229    $('.section-find .section__overlay').removeClass('is-visible');
5230  }
5231
5232  if ($('.search-primary').hasClass('is-active')) {
5233    $('.search__scroll').attr('aria-hidden', false);
5234  } else {
5235    $('.search__scroll').attr('aria-hidden', true);
5236  }
5237});
5238
5239var findInsiders = function findInsiders(elem) {
5240  var tabbable = elem.find('select, input, textarea, button, a').filter(':visible');
5241  var firstTabbable = tabbable.first();
5242  var lastTabbable = tabbable.last();
5243  firstTabbable.focus();
5244  lastTabbable.on('keydown', function (e) {
5245    if (e.which === 9 && !e.shiftKey) {
5246      e.preventDefault();
5247      firstTabbable.focus();
5248      $('.js-open-link')[0].focus();
5249    }
5250  });
5251  firstTabbable.on('keydown', function (e) {
5252    if (e.which === 9 && e.shiftKey) {
5253      e.preventDefault();
5254      lastTabbable.focus();
5255    }
5256  });
5257  elem.on('keyup', function (e) {
5258    if (e.keyCode === 27) {
5259      closeDialogs();
5260    }
5261
5262    ;
5263  });
5264};
5265
5266var toggleDialog = function toggleDialog(openLink) {
5267  var $thisLink = $(openLink);
5268  var $modals = $('.js-modal');
5269  var $targetModal = $($thisLink.data('target'));
5270  var $links = $('.js-open-link');
5271  var $menus = $('.js-menu').find('.js-menu-content');
5272  var $body = $('body');
5273
5274  if (!$thisLink.hasClass('is-active')) {
5275    $links.not($thisLink).addClass('is-disabled').removeClass('is-active');
5276    $modals.removeClass('is-active');
5277    $thisLink.removeClass('is-disabled').addClass('is-active');
5278    $targetModal.addClass('is-active');
5279    findInsiders($targetModal);
5280
5281    if ($thisLink.attr('data-target') === '#menu') {
5282      $menus.first().addClass('is-active');
5283    }
5284
5285    if ($thisLink.attr('data-target') === '#search-fixed') {
5286      $menus.removeClass('is-active');
5287    }
5288
5289    $body.addClass('is-menu-open');
5290  } else {
5291    $thisLink.removeClass('is-active');
5292    $targetModal.removeClass('is-active');
5293    $links.removeClass('is-disabled').removeClass('is-active');
5294    $body.removeClass('is-menu-open');
5295    $menus.removeClass('is-active');
5296  }
5297};
5298
5299var closeDialogs = function closeDialogs() {
5300  $('body').removeClass('is-menu-open');
5301  $('.js-modal').removeClass('is-active');
5302  $('.js-open-link').removeClass('is-active').removeClass('is-disabled');
5303  $('.js-menu').find('.js-menu-content').removeClass('is-active');
5304};
5305
5306$('.js-open-link').on('click', function (e) {
5307  e.preventDefault();
5308  toggleDialog($(this));
5309});
5310_utils_globals__WEBPACK_IMPORTED_MODULE_0__["$window"].on('resize', function () {
5311  closeDialogs();
5312});
5313/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! jquery */ "jquery")))
5314
5315/***/ }),
5316
5317/***/ "../src/assets/js/modules/copy-functionality.js":
5318/*!******************************************************!*\
5319  !*** ../src/assets/js/modules/copy-functionality.js ***!
5320  \******************************************************/
5321/*! no exports provided */
5322/***/ (function(module, __webpack_exports__, __webpack_require__) {
5323
5324"use strict";
5325__webpack_require__.r(__webpack_exports__);
5326/* WEBPACK VAR INJECTION */(function($) {/* harmony import */ var _utils_globals__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../utils/globals */ "../src/assets/js/utils/globals.js");
5327
5328$('.js-btn-copy').on('click', function (e) {
5329  e.preventDefault();
5330  var $this = $(this);
5331  var link = $this.attr('href');
5332  var $temp = $("<input>");
5333  _utils_globals__WEBPACK_IMPORTED_MODULE_0__["$body"].append($temp);
5334  $temp.val(link).select();
5335  document.execCommand("copy");
5336  $temp.remove();
5337});
5338/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! jquery */ "jquery")))
5339
5340/***/ }),
5341
5342/***/ "../src/assets/js/modules/fadeUpAnimation.js":
5343/*!***************************************************!*\
5344  !*** ../src/assets/js/modules/fadeUpAnimation.js ***!
5345  \***************************************************/
5346/*! no static exports found */
5347/***/ (function(module, exports, __webpack_require__) {
5348
5349/* WEBPACK VAR INJECTION */(function($) {var $animateElement = $('.animate-element');
5350
5351var getOffset = function getOffset(element) {
5352  var horizontal = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
5353  if (!element) return 0;
5354  return getOffset(element.offsetParent, horizontal) + (horizontal ? element.offsetLeft : element.offsetTop);
5355};
5356
5357if ($animateElement.length) {
5358  $(window).on('load scroll', function (e) {
5359    $animateElement.each(function (index, el) {
5360      var topOfPage = $(window).scrollTop();
5361      var headerHeight = $('.js-header').outerHeight();
5362      var windowHeight = $(window).outerHeight();
5363      var scrollTo = topOfPage + headerHeight + windowHeight;
5364      var elOfsetTop = getOffset(el);
5365
5366      if ($('.header')) {
5367        if (scrollTo >= elOfsetTop + 100) {
5368          $(this).addClass('is-animated');
5369        } else {
5370          $(this).removeClass('is-animated');
5371        }
5372      }
5373    });
5374  });
5375}
5376/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! jquery */ "jquery")))
5377
5378/***/ }),
5379
5380/***/ "../src/assets/js/modules/fixedElements.js":
5381/*!*************************************************!*\
5382  !*** ../src/assets/js/modules/fixedElements.js ***!
5383  \*************************************************/
5384/*! no static exports found */
5385/***/ (function(module, exports, __webpack_require__) {
5386
5387/* WEBPACK VAR INJECTION */(function($) {$(window).on('scroll', function (e) {
5388  e.preventDefault();
5389  var topOfPage = $(window).scrollTop();
5390  var $header = $('.header');
5391  var $headerAlt = $('.header-alt');
5392  var $hero = $('.hero');
5393  var $heroAlt = $('.hero-alt');
5394  var headerHeight = $header.outerHeight();
5395  var headerAltHeight = $headerAlt.outerHeight();
5396  var heroHeight = $hero.outerHeight();
5397  var heroAltHeight = $heroAlt.outerHeight();
5398
5399  if (topOfPage >= headerHeight + 200) {
5400    $header.addClass('is-fixed');
5401  } else {
5402    $header.removeClass('is-fixed');
5403  }
5404
5405  if (topOfPage >= heroHeight) {
5406    $header.addClass('is-visible');
5407  } else {
5408    $header.removeClass('is-visible');
5409  }
5410
5411  if (topOfPage >= headerAltHeight + 200) {
5412    $headerAlt.addClass('is-fixed');
5413  } else {
5414    $headerAlt.removeClass('is-fixed');
5415  }
5416
5417  if (topOfPage >= heroAltHeight) {
5418    $headerAlt.addClass('is-visible');
5419  } else {
5420    $headerAlt.removeClass('is-visible');
5421  }
5422});
5423var $fixedElement = $('.js-fixed-element');
5424
5425if ($fixedElement.length > 0) {
5426  var $fixedElementOffsetTop = $fixedElement.offset().top;
5427  $(window).on('scroll', function (e) {
5428    if ($fixedElement.length) {
5429      e.preventDefault();
5430      var headerHeight = $('.header').outerHeight();
5431      var topOfPage = $(window).scrollTop();
5432      var jsSection = $('.js-section');
5433      var jsSectionHeight = jsSection.outerHeight();
5434      var jsSectionOffsetop = jsSection.offset().top;
5435      var fixedElementHeight = $fixedElement.outerHeight();
5436      var paddingBottom = parseInt(jsSection.css('padding-bottom'));
5437      var paddingTop = parseInt(jsSection.css('padding-top'));
5438
5439      if (topOfPage + headerHeight + paddingTop >= $fixedElementOffsetTop) {
5440        $fixedElement.addClass('is-fixed');
5441        $fixedElement.css({
5442          top: headerHeight + paddingTop + 30
5443        });
5444        $fixedElement.css({
5445          bottom: 'auto'
5446        });
5447      } else {
5448        $fixedElement.removeClass('is-fixed');
5449      }
5450
5451      if (topOfPage + headerHeight + paddingTop + 30 >= jsSectionHeight + jsSectionOffsetop - fixedElementHeight - paddingBottom) {
5452        $fixedElement.addClass('is-absolute');
5453        $fixedElement.removeClass('is-fixed');
5454        $fixedElement.css({
5455          top: 'auto'
5456        });
5457        $fixedElement.css({
5458          bottom: 30
5459        });
5460      } else {
5461        $fixedElement.removeClass('is-absolute');
5462      }
5463    }
5464  });
5465}
5466/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! jquery */ "jquery")))
5467
5468/***/ }),
5469
5470/***/ "../src/assets/js/modules/popup.js":
5471/*!*****************************************!*\
5472  !*** ../src/assets/js/modules/popup.js ***!
5473  \*****************************************/
5474/*! no exports provided */
5475/***/ (function(module, __webpack_exports__, __webpack_require__) {
5476
5477"use strict";
5478__webpack_require__.r(__webpack_exports__);
5479/* WEBPACK VAR INJECTION */(function($) {/* harmony import */ var _utils_globals__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../utils/globals */ "../src/assets/js/utils/globals.js");
5480/* harmony import */ var _accordion_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./accordion.js */ "../src/assets/js/modules/accordion.js");
5481/* harmony import */ var magnific_popup__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! magnific-popup */ "../node_modules/magnific-popup/dist/jquery.magnific-popup.js");
5482/* harmony import */ var magnific_popup__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(magnific_popup__WEBPACK_IMPORTED_MODULE_2__);
5483
5484
5485
5486$('.js-popup-programs-trigger').magnificPopup({
5487  type: 'ajax',
5488  mainClass: 'mfp-popup-programs',
5489  callbacks: {
5490    beforeOpen: function beforeOpen() {
5491      _utils_globals__WEBPACK_IMPORTED_MODULE_0__["$body"].css('overflow', 'hidden');
5492    },
5493    open: function open() {
5494      $('html').css('margin-right', 0);
5495    },
5496    parseAjax: function parseAjax(mfpResponse) {},
5497    ajaxContentAdded: function ajaxContentAdded() {
5498      Object(_accordion_js__WEBPACK_IMPORTED_MODULE_1__["initAccordions"])();
5499    },
5500    beforeClose: function beforeClose() {
5501      _utils_globals__WEBPACK_IMPORTED_MODULE_0__["$body"].css('overflow', 'auto');
5502    }
5503  }
5504});
5505$('.js-popup-publications-trigger').magnificPopup({
5506  type: 'ajax',
5507  mainClass: 'mfp-popup-publications',
5508  closeMarkup: '',
5509  removalDelay: 220,
5510  callbacks: {
5511    beforeOpen: function beforeOpen() {
5512      _utils_globals__WEBPACK_IMPORTED_MODULE_0__["$body"].css('overflow', 'hidden');
5513    },
5514    open: function open() {
5515      $('html').css('margin-right', 0);
5516    },
5517    parseAjax: function parseAjax(mfpResponse) {},
5518    ajaxContentAdded: function ajaxContentAdded() {
5519      Object(_accordion_js__WEBPACK_IMPORTED_MODULE_1__["initAccordions"])();
5520    },
5521    beforeClose: function beforeClose() {
5522      _utils_globals__WEBPACK_IMPORTED_MODULE_0__["$body"].css('overflow', 'auto');
5523    }
5524  }
5525});
5526/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! jquery */ "jquery")))
5527
5528/***/ }),
5529
5530/***/ "../src/assets/js/modules/secondaryMenus.js":
5531/*!**************************************************!*\
5532  !*** ../src/assets/js/modules/secondaryMenus.js ***!
5533  \**************************************************/
5534/*! no exports provided */
5535/***/ (function(module, __webpack_exports__, __webpack_require__) {
5536
5537"use strict";
5538__webpack_require__.r(__webpack_exports__);
5539/* WEBPACK VAR INJECTION */(function($) {/* harmony import */ var _utils_globals__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../utils/globals */ "../src/assets/js/utils/globals.js");
5540
5541var activeClass = 'is-active';
5542$('.js-section-primary').each(function () {
5543  var $this = $(this);
5544  var $sectionInner = $this.find('.section__inner');
5545  var $sectionBody = $sectionInner.find('.section__body');
5546  var $sidebar = $sectionInner.find('.sidebar');
5547  var $widgetLinks = $sidebar.find('.widget--links');
5548  var $sidebarContentTrigger = $sidebar.find('.sidebar__content-trigger');
5549  var mobileDevice = window.matchMedia('(max-width: 812px)');
5550
5551  function setMenuPosition(e) {
5552    if (e.matches) {
5553      $sidebar.prependTo($sectionInner);
5554      $widgetLinks.clone().addClass('is-appended').appendTo($sectionInner);
5555      $this.addClass('widget-links-appended');
5556    } else {
5557      $sectionBody.prependTo($sectionInner);
5558      $('.section__inner > .widget--links').remove();
5559      $sidebar.removeClass(activeClass).find('.sidebar__inner').removeAttr('style');
5560      $this.removeClass('widget-links-appended');
5561    }
5562  }
5563
5564  setMenuPosition(mobileDevice);
5565  mobileDevice.addEventListener('change', setMenuPosition);
5566  $sidebarContentTrigger.on('click', function (e) {
5567    e.preventDefault();
5568    $sidebar.toggleClass(activeClass).find('.sidebar__inner').slideToggle();
5569  });
5570});
5571/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! jquery */ "jquery")))
5572
5573/***/ }),
5574
5575/***/ "../src/assets/js/modules/sectionLoop.js":
5576/*!***********************************************!*\
5577  !*** ../src/assets/js/modules/sectionLoop.js ***!
5578  \***********************************************/
5579/*! no exports provided */
5580/***/ (function(module, __webpack_exports__, __webpack_require__) {
5581
5582"use strict";
5583__webpack_require__.r(__webpack_exports__);
5584/* WEBPACK VAR INJECTION */(function($) {/* harmony import */ var _utils_globals__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../utils/globals */ "../src/assets/js/utils/globals.js");
5585
5586var activeClass = 'is-active';
5587$('.js-section-loop').each(function () {
5588  var $this = $(this);
5589  var $sectionImageContainer = $this.find('.js-image-container');
5590  var $sectionTextContainer = $this.find('.js-text-container');
5591  var $loopItems = $this.data('loop-items');
5592  var loopItemsArray = $loopItems.split(',');
5593  var i = 0;
5594  $(loopItemsArray).each(function (index, item) {
5595    $sectionTextContainer.append('<span>' + item + '</span>');
5596  });
5597  $sectionTextContainer.find('span:first-child').addClass(activeClass).siblings().removeClass(activeClass);
5598
5599  function getMaxChildWidth(el) {
5600    var max = 0;
5601    var spanWidth;
5602    $(el).children().each(function () {
5603      spanWidth = parseInt($(this).width());
5604
5605      if (spanWidth > max) {
5606        max = spanWidth;
5607        el.css({
5608          minWidth: max
5609        });
5610      }
5611    });
5612    return max;
5613  }
5614
5615  _utils_globals__WEBPACK_IMPORTED_MODULE_0__["$window"].on('load resize', function () {
5616    getMaxChildWidth($sectionTextContainer);
5617  });
5618  var intervalId = setInterval(function () {
5619    $sectionImageContainer.fadeOut(1500, function () {
5620      $(this).css({
5621        backgroundImage: 'url(assets/images/temp/section-image-' + loopItemsArray[i] + '@2x.jpg)'
5622      }).fadeIn(1000);
5623    });
5624
5625    if (i == loopItemsArray.length - 1) {
5626      i = 0;
5627    } else {
5628      i++;
5629    }
5630
5631    setTimeout(function () {
5632      $sectionTextContainer.find('span:nth-child(' + (i + 1) + ')').addClass(activeClass).siblings().removeClass(activeClass);
5633    }, 3500);
5634  }, 5000);
5635});
5636/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! jquery */ "jquery")))
5637
5638/***/ }),
5639
5640/***/ "../src/assets/js/modules/select.js":
5641/*!******************************************!*\
5642  !*** ../src/assets/js/modules/select.js ***!
5643  \******************************************/
5644/*! no exports provided */
5645/***/ (function(module, __webpack_exports__, __webpack_require__) {
5646
5647"use strict";
5648__webpack_require__.r(__webpack_exports__);
5649/* WEBPACK VAR INJECTION */(function($) {/* harmony import */ var jquery_nice_select__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery-nice-select */ "../node_modules/jquery-nice-select/js/jquery.nice-select.min.js");
5650/* harmony import */ var jquery_nice_select__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery_nice_select__WEBPACK_IMPORTED_MODULE_0__);
5651
5652$(document).ready(function () {
5653  $('.select').niceSelect();
5654});
5655/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! jquery */ "jquery")))
5656
5657/***/ }),
5658
5659/***/ "../src/assets/js/modules/sliderQuestions.js":
5660/*!***************************************************!*\
5661  !*** ../src/assets/js/modules/sliderQuestions.js ***!
5662  \***************************************************/
5663/*! no static exports found */
5664/***/ (function(module, exports, __webpack_require__) {
5665
5666/* WEBPACK VAR INJECTION */(function($) {function initSliderQuestions() {
5667  var $slider = $('.js-slider-questions');
5668  var $slick = $slider.find('.slider__slides');
5669  var $checkboxes = $slider.find('.question__checkboxes').find('input[type="checkbox"]');
5670  var $resultSets = $slider.find('.question__results');
5671  var $allResults = $resultSets.children("[data-match]");
5672  var selectedTags = [];
5673  filterResults(true);
5674  $slider.on('click', '.slick-slide:not(.slick-active) .slider__slide', function (e) {
5675    e.preventDefault();
5676    var $slide = $(this);
5677    var slideIndex = $slide.closest('.slick-slide').attr('data-slick-index');
5678    $slick.slick('slickGoTo', slideIndex);
5679  });
5680  $slider.on('click', '.slick-slide.slick-active input[type="checkbox"]', function (e) {
5681    var $checkbox = $(this);
5682    var checkboxTag = $checkbox.attr('data-tag');
5683    var $slide = $checkbox.closest('.slick-slide');
5684
5685    if ($checkbox.get(0).checked) {
5686      selectedTags.push(checkboxTag);
5687    } else {
5688      var index = selectedTags.indexOf(checkboxTag);
5689
5690      if (index > -1) {
5691        selectedTags.splice(index, 1);
5692      }
5693    }
5694
5695    filterResults(false, selectedTags);
5696
5697    if ($checkbox.closest('.checkbox--text').length) {
5698      $checkbox.closest('.checkbox--text').find('input[type="text"]').focus();
5699    }
5700  });
5701  $slider.one('click', '.slick-slide.slick-active input[type="checkbox"]', function (e) {
5702    var $checkbox = $(this);
5703    var $slide = $checkbox.closest('.slick-slide');
5704
5705    if ($slick.find('.slick-slide').eq(0).hasClass('slick-active') && !$checkbox.closest('.checkbox--text').length && !$checkbox.closest('.checkbox--select').length) {
5706      var $nextSlide = $slide.closest('.slider').find('.slick-next');
5707      setTimeout(function () {
5708        $nextSlide.trigger('click');
5709      }, 150);
5710    }
5711  });
5712  $slider.on('change', '.slick-slide.slick-active select', function (e) {
5713    var $select = $(this);
5714    var prefix = $select.attr('data-tag');
5715    var $checkbox = $select.closest('.checkbox--select').find('input[type="checkbox"]');
5716
5717    if ($checkbox.get(0).checked === false) {
5718      $checkbox.click();
5719    }
5720
5721    selectedTags = selectedTags.filter(function (item) {
5722      return item.indexOf(prefix) !== 0;
5723    });
5724    selectedTags.push(prefix + '-' + $select.val());
5725    filterResults(false, selectedTags);
5726  });
5727
5728  function filterResults(initial) {
5729    var tagsArr = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
5730    $resultSets.each(function () {
5731      var resultCount = 0;
5732      var $set = $(this);
5733      var $results = $set.children($allResults);
5734      var $initialResults = $results.filter("[data-match*=\"initial\"]");
5735      var $defaultResults = $results.filter("[data-match*=\"default\"]");
5736      var $alwaysResults = $results.filter("[data-match*=\"always\"]");
5737      $alwaysResults.prependTo($set);
5738      $initialResults.prependTo($set);
5739
5740      if (tagsArr.length) {
5741        $results.each(function () {
5742          var $this = $(this);
5743          var thisArr = $this.attr('data-match').split(' ');
5744          var matchArr = tagsArr.filter(function (el) {
5745            return thisArr.includes(el);
5746          });
5747          var matches = matchArr.length;
5748          if (matches) resultCount += 1;
5749          matches ? $this.attr('data-show', true).attr('data-matches', matches) : $this.attr('data-show', false).attr('data-matches', 0);
5750          var priority = matchArr.find(function (element) {
5751            return element.startsWith('q1-career-options') || element.startsWith('q1-school-options');
5752          }) ? true : false;
5753          priority ? $this.attr('data-priority', true) : $this.attr('data-priority', false);
5754        });
5755        $results.sort(function (a, b) {
5756          var aMatches = $(a).attr('data-matches');
5757          var bMatches = $(b).attr('data-matches');
5758          return aMatches < bMatches ? 1 : aMatches > bMatches ? -1 : 0;
5759        });
5760        $results.sort(function (a, b) {
5761          var aPriority = $(a).attr('data-priority');
5762          var bPriority = $(b).attr('data-priority');
5763          return aPriority < bPriority ? 1 : aPriority > bPriority ? -1 : 0;
5764        });
5765        $set.empty().append($results);
5766      }
5767
5768      if (resultCount === 0) {
5769        $results.attr('data-matches', 0);
5770        $results.not($defaultResults).attr('data-show', false);
5771        $defaultResults.prependTo($set);
5772        $defaultResults.attr('data-show', true);
5773      }
5774
5775      $alwaysResults.attr('data-show', true);
5776
5777      if (initial === true) {
5778        $initialResults.attr('data-show', true);
5779      }
5780    });
5781    $allResults.filter('[data-show="true"]').addClass('show');
5782    $allResults.filter('[data-show="false"]').removeClass('show');
5783  }
5784
5785  ;
5786  $('.js-question-email').on('click', function () {
5787    $('.question-email').addClass('is-active');
5788  });
5789}
5790
5791initSliderQuestions();
5792/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! jquery */ "jquery")))
5793
5794/***/ }),
5795
5796/***/ "../src/assets/js/modules/sliders.js":
5797/*!*******************************************!*\
5798  !*** ../src/assets/js/modules/sliders.js ***!
5799  \*******************************************/
5800/*! no exports provided */
5801/***/ (function(module, __webpack_exports__, __webpack_require__) {
5802
5803"use strict";
5804__webpack_require__.r(__webpack_exports__);
5805/* WEBPACK VAR INJECTION */(function($) {/* harmony import */ var _utils_globals__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../utils/globals */ "../src/assets/js/utils/globals.js");
5806/* harmony import */ var slick_carousel__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! slick-carousel */ "../node_modules/slick-carousel/slick/slick.js");
5807/* harmony import */ var slick_carousel__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(slick_carousel__WEBPACK_IMPORTED_MODULE_1__);
5808
5809
5810$(window).on('load', function (e) {
5811  $('.js-slider-tiles .slider__slides').slick({
5812    slidesToShow: 1,
5813    slidesToScroll: 1,
5814    dots: false,
5815    arrows: true,
5816    adaptiveHeight: true
5817  });
5818  $('.js-slider-secondary .slider__slides').slick({
5819    slidesToShow: 1,
5820    slidesToScroll: 1,
5821    dots: false,
5822    arrows: false,
5823    autoplay: true,
5824    fade: true,
5825    cssEase: 'linear'
5826  });
5827  $('.js-slider-questions .slider__slides').slick({
5828    slidesToShow: 1,
5829    slidesToScroll: 1,
5830    dots: false,
5831    arrows: true,
5832    infinite: false
5833  });
5834  $('.js-slider-gallery .slider__slides').slick({
5835    slidesToShow: 1,
5836    slidesToScroll: 1,
5837    dots: false,
5838    arrows: true
5839  });
5840});
5841$('.js-slider-articles').each(function () {
5842  var $this = $(this);
5843  var $sliderSlides = $this.find('.slider__slides');
5844  var options = {
5845    slidesToShow: 3,
5846    slidesToScroll: 3,
5847    dots: false,
5848    arrows: true,
5849    responsive: [{
5850      breakpoint: 1200,
5851      settings: {
5852        slidesToShow: 2,
5853        slidesToScroll: 2
5854      }
5855    }, {
5856      breakpoint: 768,
5857      settings: "unslick"
5858    }]
5859  };
5860  _utils_globals__WEBPACK_IMPORTED_MODULE_0__["$window"].on('load resize orientationChange', function () {
5861    if ($sliderSlides.length && !$sliderSlides.hasClass("slick-initialized")) {
5862      $sliderSlides.slick(options);
5863    }
5864  });
5865});
5866/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! jquery */ "jquery")))
5867
5868/***/ }),
5869
5870/***/ "../src/assets/js/modules/textAnimation.js":
5871/*!*************************************************!*\
5872  !*** ../src/assets/js/modules/textAnimation.js ***!
5873  \*************************************************/
5874/*! no static exports found */
5875/***/ (function(module, exports, __webpack_require__) {
5876
5877/* WEBPACK VAR INJECTION */(function($) {function splitWordIntoCharacters() {
5878  var target = document.querySelector('.text-animate');
5879
5880  if (target) {
5881    var results = Splitting({
5882      target: target,
5883      by: 'chars',
5884      whitespace: true
5885    });
5886    var spanLength = document.querySelectorAll('.text-animate .char');
5887
5888    if (spanLength.length) {
5889      var stopFunction = function stopFunction() {
5890        clearInterval(timer);
5891        timer = null;
5892      };
5893
5894      var addClass = function addClass() {
5895        var span = document.querySelectorAll('.text-animate .char')[char];
5896        span.classList.add('fade');
5897        char++;
5898
5899        if (char == spanLength.length) {
5900          stopFunction();
5901          return;
5902        }
5903      };
5904
5905      var char = 0;
5906      var timer = setInterval(addClass, 300);
5907    }
5908  }
5909}
5910
5911$(window).on('scroll', function (e) {
5912  var $animatedText = $('.text-animate');
5913
5914  if ($animatedText.length) {
5915    var $elementOffset = $animatedText.offset().top;
5916    var $topOfPage = $(window).scrollTop();
5917    var heightOfWindow = $(window).outerHeight();
5918
5919    if ($topOfPage + heightOfWindow >= $elementOffset) {
5920      splitWordIntoCharacters();
5921    }
5922  }
5923});
5924/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! jquery */ "jquery")))
5925
5926/***/ }),
5927
5928/***/ "../src/assets/js/modules/videos.js":
5929/*!******************************************!*\
5930  !*** ../src/assets/js/modules/videos.js ***!
5931  \******************************************/
5932/*! no exports provided */
5933/***/ (function(module, __webpack_exports__, __webpack_require__) {
5934
5935"use strict";
5936__webpack_require__.r(__webpack_exports__);
5937/* WEBPACK VAR INJECTION */(function($) {/* harmony import */ var _utils_globals__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../utils/globals */ "../src/assets/js/utils/globals.js");
5938/* harmony import */ var plyr__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! plyr */ "../node_modules/plyr/dist/plyr.min.js");
5939/* harmony import */ var plyr__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(plyr__WEBPACK_IMPORTED_MODULE_1__);
5940
5941
5942
5943function format(s) {
5944  var m = Math.floor(s / 60);
5945  m = m >= 10 ? m : "0" + m;
5946  s = Math.floor(s % 60);
5947  s = s >= 10 ? s : "0" + s;
5948  return m + ":" + s;
5949}
5950
5951$('.js-video').each(function (index, video) {
5952  video.addEventListener('loadedmetadata', function () {
5953    var duration = video.duration;
5954    var parentEl = video.parentElement;
5955    var durationText = parentEl.querySelector('.video__time');
5956    durationText.innerHTML = format(duration);
5957  });
5958});
5959$('.js-play').on('click', function (e) {
5960  e.preventDefault();
5961  var $videoContainer = $(this).closest('.video');
5962  $videoContainer.toggleClass('is-playing');
5963
5964  if ($videoContainer.hasClass('is-playing')) {
5965    $videoContainer.find('.js-video').trigger('play');
5966  } else {
5967    $videoContainer.find('.js-video').trigger('pause');
5968    $videoContainer.addClass('is-paused');
5969  }
5970});
5971var players = plyr__WEBPACK_IMPORTED_MODULE_1___default.a.setup('.js-plyr', {
5972  controls: ['play', 'current-time']
5973});
5974$('.plyr').on('click', function () {
5975  var $videoContainer = $(this).closest('.video');
5976  $videoContainer.addClass('is-paused');
5977});
5978/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! jquery */ "jquery")))
5979
5980/***/ }),
5981
5982/***/ "../src/assets/js/utils/globals.js":
5983/*!*****************************************!*\
5984  !*** ../src/assets/js/utils/globals.js ***!
5985  \*****************************************/
5986/*! exports provided: $window, $document, $body */
5987/***/ (function(module, __webpack_exports__, __webpack_require__) {
5988
5989"use strict";
5990__webpack_require__.r(__webpack_exports__);
5991/* WEBPACK VAR INJECTION */(function($) {/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "$window", function() { return $window; });
5992/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "$document", function() { return $document; });
5993/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "$body", function() { return $body; });
5994var $window = $(window);
5995var $document = $(document);
5996var $body = $('body');
5997/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! jquery */ "jquery")))
5998
5999/***/ })
5999,
6000
6001/***/ "jquery":
6002/*!*************************!*\
6003  !*** external "jQuery" ***!
6004  \*************************/
6005/*! no static exports found */
6006/***/ (function(module, exports) {
6007
6008module.exports = jQuery;
6009
6010/***/ })
6011
6012/******/ });

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.