/*! elementor - v2.2.4 - 20-09-2018 */
/******/ (function(modules) { // webpackBootstrap
/******/ // The module cache
/******/ var installedModules = {};
/******/
/******/ // The require function
/******/ function __webpack_require__(moduleId) {
/******/
/******/ // Check if module is in cache
/******/ if(installedModules[moduleId]) {
/******/ return installedModules[moduleId].exports;
/******/ }
/******/ // Create a new module (and put it into the cache)
/******/ var module = installedModules[moduleId] = {
/******/ i: moduleId,
/******/ l: false,
/******/ exports: {}
/******/ };
/******/
/******/ // Execute the module function
/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
/******/
/******/ // Flag the module as loaded
/******/ module.l = true;
/******/
/******/ // Return the exports of the module
/******/ return module.exports;
/******/ }
/******/
/******/
/******/ // expose the modules object (__webpack_modules__)
/******/ __webpack_require__.m = modules;
/******/
/******/ // expose the module cache
/******/ __webpack_require__.c = installedModules;
/******/
/******/ // define getter function for harmony exports
/******/ __webpack_require__.d = function(exports, name, getter) {
/******/ if(!__webpack_require__.o(exports, name)) {
/******/ Object.defineProperty(exports, name, { enumerable: true, get: getter });
/******/ }
/******/ };
/******/
/******/ // define __esModule on exports
/******/ __webpack_require__.r = function(exports) {
/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
/******/ }
/******/ Object.defineProperty(exports, '__esModule', { value: true });
/******/ };
/******/
/******/ // create a fake namespace object
/******/ // mode & 1: value is a module id, require it
/******/ // mode & 2: merge all properties of value into the ns
/******/ // mode & 4: return value when already ns object
/******/ // mode & 8|1: behave like require
/******/ __webpack_require__.t = function(value, mode) {
/******/ if(mode & 1) value = __webpack_require__(value);
/******/ if(mode & 8) return value;
/******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;
/******/ var ns = Object.create(null);
/******/ __webpack_require__.r(ns);
/******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value });
/******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));
/******/ return ns;
/******/ };
/******/
/******/ // getDefaultExport function for compatibility with non-harmony modules
/******/ __webpack_require__.n = function(module) {
/******/ var getter = module && module.__esModule ?
/******/ function getDefault() { return module['default']; } :
/******/ function getModuleExports() { return module; };
/******/ __webpack_require__.d(getter, 'a', getter);
/******/ return getter;
/******/ };
/******/
/******/ // Object.prototype.hasOwnProperty.call
/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
/******/
/******/ // __webpack_public_path__
/******/ __webpack_require__.p = "";
/******/
/******/
/******/ // Load entry module and return exports
/******/ return __webpack_require__(__webpack_require__.s = 167);
/******/ })
/************************************************************************/
/******/ ({
/***/ 1:
/***/ (function(module, exports, __webpack_require__) {
"use strict";
var Module = __webpack_require__(2),
ViewModule;
ViewModule = Module.extend({
elements: null,
getDefaultElements: function getDefaultElements() {
return {};
},
bindEvents: function bindEvents() {},
onInit: function onInit() {
this.initElements();
this.bindEvents();
},
initElements: function initElements() {
this.elements = this.getDefaultElements();
}
});
module.exports = ViewModule;
/***/ }),
/***/ 16:
/***/ (function(module, exports, __webpack_require__) {
"use strict";
var ViewModule = __webpack_require__(1);
module.exports = ViewModule.extend({
getDefaultSettings: function getDefaultSettings() {
return {
container: null,
items: null,
columnsCount: 3,
verticalSpaceBetween: 30
};
},
getDefaultElements: function getDefaultElements() {
return {
$container: jQuery(this.getSettings('container')),
$items: jQuery(this.getSettings('items'))
};
},
run: function run() {
var heights = [],
distanceFromTop = this.elements.$container.position().top,
settings = this.getSettings(),
columnsCount = settings.columnsCount;
distanceFromTop += parseInt(this.elements.$container.css('margin-top'), 10);
this.elements.$items.each(function (index) {
var row = Math.floor(index / columnsCount),
$item = jQuery(this),
itemHeight = $item[0].getBoundingClientRect().height + settings.verticalSpaceBetween;
if (row) {
var itemPosition = $item.position(),
indexAtRow = index % columnsCount,
pullHeight = itemPosition.top - distanceFromTop - heights[indexAtRow];
pullHeight -= parseInt($item.css('margin-top'), 10);
pullHeight *= -1;
$item.css('margin-top', pullHeight + 'px');
heights[indexAtRow] += itemHeight;
} else {
heights.push(itemHeight);
}
});
}
});
/***/ }),
/***/ 167:
/***/ (function(module, exports, __webpack_require__) {
"use strict";
/* global elementorFrontendConfig */
(function ($) {
var elements = {},
EventManager = __webpack_require__(20),
Module = __webpack_require__(5),
ElementsHandler = __webpack_require__(168),
YouTubeModule = __webpack_require__(180),
AnchorsModule = __webpack_require__(181),
LightboxModule = __webpack_require__(182);
var ElementorFrontend = function ElementorFrontend() {
var self = this,
dialogsManager;
this.config = elementorFrontendConfig;
this.Module = Module;
var setDeviceModeData = function setDeviceModeData() {
elements.$body.attr('data-elementor-device-mode', self.getCurrentDeviceMode());
};
var initElements = function initElements() {
elements.window = window;
elements.$window = $(window);
elements.$document = $(document);
elements.$body = $('body');
elements.$elementor = elements.$document.find('.elementor');
elements.$wpAdminBar = elements.$document.find('#wpadminbar');
};
var bindEvents = function bindEvents() {
elements.$window.on('resize', setDeviceModeData);
};
var initOnReadyComponents = function initOnReadyComponents() {
self.utils = {
youtube: new YouTubeModule(),
anchors: new AnchorsModule(),
lightbox: new LightboxModule()
};
self.modules = {
StretchElement: __webpack_require__(183),
Masonry: __webpack_require__(16)
};
self.elementsHandler = new ElementsHandler($);
};
var initHotKeys = function initHotKeys() {
self.hotKeys = __webpack_require__(17);
self.hotKeys.bindListener(elements.$window);
};
var getSiteSettings = function getSiteSettings(settingType, settingName) {
var settingsObject = self.isEditMode() ? elementor.settings[settingType].model.attributes : self.config.settings[settingType];
if (settingName) {
return settingsObject[settingName];
}
return settingsObject;
};
var addIeCompatibility = function addIeCompatibility() {
var isIE = 'Microsoft Internet Explorer' === navigator.appName || !!navigator.userAgent.match(/Trident/g) || !!navigator.userAgent.match(/MSIE/g) || !!navigator.userAgent.match(/rv:11/),
el = document.createElement('div'),
supportsGrid = 'string' === typeof el.style.grid;
if (!isIE && supportsGrid) {
return;
}
elements.$body.addClass('elementor-msie');
var msieCss = '';
elements.$body.append(msieCss);
};
this.init = function () {
self.hooks = new EventManager();
initElements();
addIeCompatibility();
bindEvents();
setDeviceModeData();
elements.$window.trigger('elementor/frontend/init');
if (!self.isEditMode()) {
initHotKeys();
}
initOnReadyComponents();
};
this.getElements = function (element) {
if (element) {
return elements[element];
}
return elements;
};
this.getDialogsManager = function () {
if (!dialogsManager) {
dialogsManager = new DialogsManager.Instance();
}
return dialogsManager;
};
this.getPageSettings = function (settingName) {
return getSiteSettings('page', settingName);
};
this.getGeneralSettings = function (settingName) {
return getSiteSettings('general', settingName);
};
this.isEditMode = function () {
return self.config.isEditMode;
};
// Based on underscore function
this.throttle = function (func, wait) {
var timeout,
context,
args,
result,
previous = 0;
var later = function later() {
previous = Date.now();
timeout = null;
result = func.apply(context, args);
if (!timeout) {
context = args = null;
}
};
return function () {
var now = Date.now(),
remaining = wait - (now - previous);
context = this;
args = arguments;
if (remaining <= 0 || remaining > wait) {
if (timeout) {
clearTimeout(timeout);
timeout = null;
}
previous = now;
result = func.apply(context, args);
if (!timeout) {
context = args = null;
}
} else if (!timeout) {
timeout = setTimeout(later, remaining);
}
return result;
};
};
this.addListenerOnce = function (listenerID, event, callback, to) {
if (!to) {
to = self.getElements('$window');
}
if (!self.isEditMode()) {
to.on(event, callback);
return;
}
this.removeListeners(listenerID, event, to);
if (to instanceof jQuery) {
var eventNS = event + '.' + listenerID;
to.on(eventNS, callback);
} else {
to.on(event, callback, listenerID);
}
};
this.removeListeners = function (listenerID, event, callback, from) {
if (!from) {
from = self.getElements('$window');
}
if (from instanceof jQuery) {
var eventNS = event + '.' + listenerID;
from.off(eventNS, callback);
} else {
from.off(event, callback, listenerID);
}
};
this.getCurrentDeviceMode = function () {
return getComputedStyle(elements.$elementor[0], ':after').content.replace(/"/g, '');
};
this.waypoint = function ($element, callback, options) {
var defaultOptions = {
offset: '100%',
triggerOnce: true
};
options = $.extend(defaultOptions, options);
var correctCallback = function correctCallback() {
var element = this.element || this,
result = callback.apply(element, arguments);
// If is Waypoint new API and is frontend
if (options.triggerOnce && this.destroy) {
this.destroy();
}
return result;
};
return $element.elementorWaypoint(correctCallback, options);
};
};
window.elementorFrontend = new ElementorFrontend();
})(jQuery);
if (!elementorFrontend.isEditMode()) {
jQuery(elementorFrontend.init);
}
/***/ }),
/***/ 168:
/***/ (function(module, exports, __webpack_require__) {
"use strict";
var ElementsHandler;
ElementsHandler = function ElementsHandler($) {
var self = this;
// element-type.skin-type
var handlers = {
// Elements
section: __webpack_require__(169),
// Widgets
'accordion.default': __webpack_require__(170),
'alert.default': __webpack_require__(171),
'counter.default': __webpack_require__(172),
'progress.default': __webpack_require__(173),
'tabs.default': __webpack_require__(174),
'toggle.default': __webpack_require__(175),
'video.default': __webpack_require__(176),
'image-carousel.default': __webpack_require__(177),
'text-editor.default': __webpack_require__(178)
};
var addGlobalHandlers = function addGlobalHandlers() {
elementorFrontend.hooks.addAction('frontend/element_ready/global', __webpack_require__(179));
};
var addElementsHandlers = function addElementsHandlers() {
$.each(handlers, function (elementName, funcCallback) {
elementorFrontend.hooks.addAction('frontend/element_ready/' + elementName, funcCallback);
});
};
var runElementsHandlers = function runElementsHandlers() {
var $elements;
if (elementorFrontend.isEditMode()) {
// Elements outside from the Preview
$elements = jQuery('.elementor-element', '.elementor:not(.elementor-edit-mode)');
} else {
$elements = $('.elementor-element');
}
$elements.each(function () {
self.runReadyTrigger($(this));
});
};
var init = function init() {
if (!elementorFrontend.isEditMode()) {
self.initHandlers();
}
};
this.initHandlers = function () {
addGlobalHandlers();
addElementsHandlers();
runElementsHandlers();
};
this.getHandlers = function (handlerName) {
if (handlerName) {
return handlers[handlerName];
}
return handlers;
};
this.runReadyTrigger = function ($scope) {
var elementType = $scope.attr('data-element_type');
if (!elementType) {
return;
}
// Initializing the `$scope` as frontend jQuery instance
$scope = jQuery($scope);
elementorFrontend.hooks.doAction('frontend/element_ready/global', $scope, $);
var isWidgetType = -1 === ['section', 'column'].indexOf(elementType);
if (isWidgetType) {
elementorFrontend.hooks.doAction('frontend/element_ready/widget', $scope, $);
}
elementorFrontend.hooks.doAction('frontend/element_ready/' + elementType, $scope, $);
};
init();
};
module.exports = ElementsHandler;
/***/ }),
/***/ 169:
/***/ (function(module, exports, __webpack_require__) {
"use strict";
var HandlerModule = __webpack_require__(5);
var BackgroundVideo = HandlerModule.extend({
player: null,
isYTVideo: null,
getDefaultSettings: function getDefaultSettings() {
return {
selectors: {
backgroundVideoContainer: '.elementor-background-video-container',
backgroundVideoEmbed: '.elementor-background-video-embed',
backgroundVideoHosted: '.elementor-background-video-hosted'
}
};
},
getDefaultElements: function getDefaultElements() {
var selectors = this.getSettings('selectors'),
elements = {
$backgroundVideoContainer: this.$element.find(selectors.backgroundVideoContainer)
};
elements.$backgroundVideoEmbed = elements.$backgroundVideoContainer.children(selectors.backgroundVideoEmbed);
elements.$backgroundVideoHosted = elements.$backgroundVideoContainer.children(selectors.backgroundVideoHosted);
return elements;
},
calcVideosSize: function calcVideosSize() {
var containerWidth = this.elements.$backgroundVideoContainer.outerWidth(),
containerHeight = this.elements.$backgroundVideoContainer.outerHeight(),
aspectRatioSetting = '16:9',
//TEMP
aspectRatioArray = aspectRatioSetting.split(':'),
aspectRatio = aspectRatioArray[0] / aspectRatioArray[1],
ratioWidth = containerWidth / aspectRatio,
ratioHeight = containerHeight * aspectRatio,
isWidthFixed = containerWidth / containerHeight > aspectRatio;
return {
width: isWidthFixed ? containerWidth : ratioHeight,
height: isWidthFixed ? ratioWidth : containerHeight
};
},
changeVideoSize: function changeVideoSize() {
var $video = this.isYTVideo ? jQuery(this.player.getIframe()) : this.elements.$backgroundVideoHosted,
size = this.calcVideosSize();
$video.width(size.width).height(size.height);
},
startVideoLoop: function startVideoLoop() {
var self = this;
// If the section has been removed
if (!self.player.getIframe().contentWindow) {
return;
}
var elementSettings = self.getElementSettings(),
startPoint = elementSettings.background_video_start || 0,
endPoint = elementSettings.background_video_end;
self.player.seekTo(startPoint);
if (endPoint) {
var durationToEnd = endPoint - startPoint + 1;
setTimeout(function () {
self.startVideoLoop();
}, durationToEnd * 1000);
}
},
prepareYTVideo: function prepareYTVideo(YT, videoID) {
var self = this,
$backgroundVideoContainer = self.elements.$backgroundVideoContainer,
elementSettings = self.getElementSettings(),
startStateCode = YT.PlayerState.PLAYING;
// Since version 67, Chrome doesn't fire the `PLAYING` state at start time
if (window.chrome) {
startStateCode = YT.PlayerState.UNSTARTED;
}
$backgroundVideoContainer.addClass('elementor-loading elementor-invisible');
self.player = new YT.Player(self.elements.$backgroundVideoEmbed[0], {
videoId: videoID,
events: {
onReady: function onReady() {
self.player.mute();
self.changeVideoSize();
self.startVideoLoop();
self.player.playVideo();
},
onStateChange: function onStateChange(event) {
switch (event.data) {
case startStateCode:
$backgroundVideoContainer.removeClass('elementor-invisible elementor-loading');
break;
case YT.PlayerState.ENDED:
self.player.seekTo(elementSettings.background_video_start || 0);
}
}
},
playerVars: {
controls: 0,
showinfo: 0,
rel: 0
}
});
elementorFrontend.getElements('$window').on('resize', self.changeVideoSize);
},
activate: function activate() {
var self = this,
videoLink = self.getElementSettings('background_video_link'),
videoID = elementorFrontend.utils.youtube.getYoutubeIDFromURL(videoLink);
self.isYTVideo = !!videoID;
if (videoID) {
elementorFrontend.utils.youtube.onYoutubeApiReady(function (YT) {
setTimeout(function () {
self.prepareYTVideo(YT, videoID);
}, 1);
});
} else {
self.elements.$backgroundVideoHosted.attr('src', videoLink).one('canplay', self.changeVideoSize);
}
},
deactivate: function deactivate() {
if (this.isYTVideo && this.player.getIframe()) {
this.player.destroy();
} else {
this.elements.$backgroundVideoHosted.removeAttr('src');
}
},
run: function run() {
var elementSettings = this.getElementSettings();
if ('video' === elementSettings.background_background && elementSettings.background_video_link) {
this.activate();
} else {
this.deactivate();
}
},
onInit: function onInit() {
HandlerModule.prototype.onInit.apply(this, arguments);
this.run();
},
onElementChange: function onElementChange(propertyName) {
if ('background_background' === propertyName) {
this.run();
}
}
});
var StretchedSection = HandlerModule.extend({
stretchElement: null,
bindEvents: function bindEvents() {
var handlerID = this.getUniqueHandlerID();
elementorFrontend.addListenerOnce(handlerID, 'resize', this.stretch);
elementorFrontend.addListenerOnce(handlerID, 'sticky:stick', this.stretch, this.$element);
elementorFrontend.addListenerOnce(handlerID, 'sticky:unstick', this.stretch, this.$element);
},
unbindEvents: function unbindEvents() {
elementorFrontend.removeListeners(this.getUniqueHandlerID(), 'resize', this.stretch);
},
initStretch: function initStretch() {
this.stretchElement = new elementorFrontend.modules.StretchElement({
element: this.$element,
selectors: {
container: this.getStretchContainer()
}
});
},
getStretchContainer: function getStretchContainer() {
return elementorFrontend.getGeneralSettings('elementor_stretched_section_container') || window;
},
stretch: function stretch() {
if (!this.getElementSettings('stretch_section')) {
return;
}
this.stretchElement.stretch();
},
onInit: function onInit() {
HandlerModule.prototype.onInit.apply(this, arguments);
this.initStretch();
this.stretch();
},
onElementChange: function onElementChange(propertyName) {
if ('stretch_section' === propertyName) {
if (this.getElementSettings('stretch_section')) {
this.stretch();
} else {
this.stretchElement.reset();
}
}
},
onGeneralSettingsChange: function onGeneralSettingsChange(changed) {
if ('elementor_stretched_section_container' in changed) {
this.stretchElement.setSettings('selectors.container', this.getStretchContainer());
this.stretch();
}
}
});
var Shapes = HandlerModule.extend({
getDefaultSettings: function getDefaultSettings() {
return {
selectors: {
container: '> .elementor-shape-%s'
},
svgURL: elementorFrontend.config.urls.assets + 'shapes/'
};
},
getDefaultElements: function getDefaultElements() {
var elements = {},
selectors = this.getSettings('selectors');
elements.$topContainer = this.$element.find(selectors.container.replace('%s', 'top'));
elements.$bottomContainer = this.$element.find(selectors.container.replace('%s', 'bottom'));
return elements;
},
buildSVG: function buildSVG(side) {
var self = this,
baseSettingKey = 'shape_divider_' + side,
shapeType = self.getElementSettings(baseSettingKey),
$svgContainer = this.elements['$' + side + 'Container'];
$svgContainer.empty().attr('data-shape', shapeType);
if (!shapeType) {
return;
}
var fileName = shapeType;
if (self.getElementSettings(baseSettingKey + '_negative')) {
fileName += '-negative';
}
var svgURL = self.getSettings('svgURL') + fileName + '.svg';
jQuery.get(svgURL, function (data) {
$svgContainer.append(data.childNodes[0]);
});
this.setNegative(side);
},
setNegative: function setNegative(side) {
this.elements['$' + side + 'Container'].attr('data-negative', !!this.getElementSettings('shape_divider_' + side + '_negative'));
},
onInit: function onInit() {
var self = this;
HandlerModule.prototype.onInit.apply(self, arguments);
['top', 'bottom'].forEach(function (side) {
if (self.getElementSettings('shape_divider_' + side)) {
self.buildSVG(side);
}
});
},
onElementChange: function onElementChange(propertyName) {
var shapeChange = propertyName.match(/^shape_divider_(top|bottom)$/);
if (shapeChange) {
this.buildSVG(shapeChange[1]);
return;
}
var negativeChange = propertyName.match(/^shape_divider_(top|bottom)_negative$/);
if (negativeChange) {
this.buildSVG(negativeChange[1]);
this.setNegative(negativeChange[1]);
}
}
});
var HandlesPosition = HandlerModule.extend({
isFirst: function isFirst() {
return this.$element.is('.elementor-edit-mode .elementor-top-section:first');
},
getOffset: function getOffset() {
return this.$element.offset().top;
},
setHandlesPosition: function setHandlesPosition() {
var self = this;
if (self.isFirst()) {
var offset = self.getOffset(),
$handlesElement = self.$element.find('> .elementor-element-overlay > .elementor-editor-section-settings'),
insideHandleClass = 'elementor-section--handles-inside';
if (offset < 25) {
self.$element.addClass(insideHandleClass);
if (offset < -5) {
$handlesElement.css('top', -offset);
} else {
$handlesElement.css('top', '');
}
} else {
self.$element.removeClass(insideHandleClass);
}
}
},
onInit: function onInit() {
this.setHandlesPosition();
this.$element.on('mouseenter', this.setHandlesPosition);
}
});
module.exports = function ($scope) {
if (elementorFrontend.isEditMode() || $scope.hasClass('elementor-section-stretched')) {
new StretchedSection({ $element: $scope });
}
if (elementorFrontend.isEditMode()) {
new Shapes({ $element: $scope });
new HandlesPosition({ $element: $scope });
}
new BackgroundVideo({ $element: $scope });
};
/***/ }),
/***/ 17:
/***/ (function(module, exports, __webpack_require__) {
"use strict";
var HotKeys = function HotKeys() {
var hotKeysHandlers = {};
var applyHotKey = function applyHotKey(event) {
var handlers = hotKeysHandlers[event.which];
if (!handlers) {
return;
}
jQuery.each(handlers, function () {
var handler = this;
if (handler.isWorthHandling && !handler.isWorthHandling(event)) {
return;
}
// Fix for some keyboard sources that consider alt key as ctrl key
if (!handler.allowAltKey && event.altKey) {
return;
}
event.preventDefault();
handler.handle(event);
});
};
this.isControlEvent = function (event) {
return event[elementor.envData.mac ? 'metaKey' : 'ctrlKey'];
};
this.addHotKeyHandler = function (keyCode, handlerName, handler) {
if (!hotKeysHandlers[keyCode]) {
hotKeysHandlers[keyCode] = {};
}
hotKeysHandlers[keyCode][handlerName] = handler;
};
this.bindListener = function ($listener) {
$listener.on('keydown', applyHotKey);
};
};
module.exports = new HotKeys();
/***/ }),
/***/ 170:
/***/ (function(module, exports, __webpack_require__) {
"use strict";
var TabsModule = __webpack_require__(22);
module.exports = function ($scope) {
new TabsModule({
$element: $scope,
showTabFn: 'slideDown',
hideTabFn: 'slideUp'
});
};
/***/ }),
/***/ 171:
/***/ (function(module, exports, __webpack_require__) {
"use strict";
module.exports = function ($scope, $) {
$scope.find('.elementor-alert-dismiss').on('click', function () {
$(this).parent().fadeOut();
});
};
/***/ }),
/***/ 172:
/***/ (function(module, exports, __webpack_require__) {
"use strict";
module.exports = function ($scope, $) {
elementorFrontend.waypoint($scope.find('.elementor-counter-number'), function () {
var $number = $(this),
data = $number.data();
var decimalDigits = data.toValue.toString().match(/\.(.*)/);
if (decimalDigits) {
data.rounding = decimalDigits[1].length;
}
$number.numerator(data);
});
};
/***/ }),
/***/ 173:
/***/ (function(module, exports, __webpack_require__) {
"use strict";
module.exports = function ($scope, $) {
elementorFrontend.waypoint($scope.find('.elementor-progress-bar'), function () {
var $progressbar = $(this);
$progressbar.css('width', $progressbar.data('max') + '%');
});
};
/***/ }),
/***/ 174:
/***/ (function(module, exports, __webpack_require__) {
"use strict";
var TabsModule = __webpack_require__(22);
module.exports = function ($scope) {
new TabsModule({
$element: $scope,
toggleSelf: false
});
};
/***/ }),
/***/ 175:
/***/ (function(module, exports, __webpack_require__) {
"use strict";
var TabsModule = __webpack_require__(22);
module.exports = function ($scope) {
new TabsModule({
$element: $scope,
showTabFn: 'slideDown',
hideTabFn: 'slideUp',
hidePrevious: false,
autoExpand: 'editor'
});
};
/***/ }),
/***/ 176:
/***/ (function(module, exports, __webpack_require__) {
"use strict";
var HandlerModule = __webpack_require__(5),
VideoModule;
VideoModule = HandlerModule.extend({
getDefaultSettings: function getDefaultSettings() {
return {
selectors: {
imageOverlay: '.elementor-custom-embed-image-overlay',
video: '.elementor-video',
videoIframe: '.elementor-video-iframe'
}
};
},
getDefaultElements: function getDefaultElements() {
var selectors = this.getSettings('selectors');
return {
$imageOverlay: this.$element.find(selectors.imageOverlay),
$video: this.$element.find(selectors.video),
$videoIframe: this.$element.find(selectors.videoIframe)
};
},
getLightBox: function getLightBox() {
return elementorFrontend.utils.lightbox;
},
handleVideo: function handleVideo() {
if (!this.getElementSettings('lightbox')) {
this.elements.$imageOverlay.remove();
this.playVideo();
}
},
playVideo: function playVideo() {
if (this.elements.$video.length) {
this.elements.$video[0].play();
return;
}
var $videoIframe = this.elements.$videoIframe,
lazyLoad = $videoIframe.data('lazy-load');
if (lazyLoad) {
$videoIframe.attr('src', lazyLoad);
}
var newSourceUrl = $videoIframe[0].src.replace('&autoplay=0', '');
$videoIframe[0].src = newSourceUrl + '&autoplay=1';
},
animateVideo: function animateVideo() {
this.getLightBox().setEntranceAnimation(this.getElementSettings('lightbox_content_animation'));
},
handleAspectRatio: function handleAspectRatio() {
this.getLightBox().setVideoAspectRatio(this.getElementSettings('aspect_ratio'));
},
bindEvents: function bindEvents() {
this.elements.$imageOverlay.on('click', this.handleVideo);
},
onElementChange: function onElementChange(propertyName) {
if ('lightbox_content_animation' === propertyName) {
this.animateVideo();
return;
}
var isLightBoxEnabled = this.getElementSettings('lightbox');
if ('lightbox' === propertyName && !isLightBoxEnabled) {
this.getLightBox().getModal().hide();
return;
}
if ('aspect_ratio' === propertyName && isLightBoxEnabled) {
this.handleAspectRatio();
}
}
});
module.exports = function ($scope) {
new VideoModule({ $element: $scope });
};
/***/ }),
/***/ 177:
/***/ (function(module, exports, __webpack_require__) {
"use strict";
var HandlerModule = __webpack_require__(5),
ImageCarouselHandler;
ImageCarouselHandler = HandlerModule.extend({
getDefaultSettings: function getDefaultSettings() {
return {
selectors: {
carousel: '.elementor-image-carousel'
}
};
},
getDefaultElements: function getDefaultElements() {
var selectors = this.getSettings('selectors');
return {
$carousel: this.$element.find(selectors.carousel)
};
},
onInit: function onInit() {
HandlerModule.prototype.onInit.apply(this, arguments);
var elementSettings = this.getElementSettings(),
slidesToShow = +elementSettings.slides_to_show || 3,
isSingleSlide = 1 === slidesToShow,
breakpoints = elementorFrontend.config.breakpoints;
var slickOptions = {
slidesToShow: slidesToShow,
autoplay: 'yes' === elementSettings.autoplay,
autoplaySpeed: elementSettings.autoplay_speed,
infinite: 'yes' === elementSettings.infinite,
pauseOnHover: 'yes' === elementSettings.pause_on_hover,
speed: elementSettings.speed,
arrows: -1 !== ['arrows', 'both'].indexOf(elementSettings.navigation),
dots: -1 !== ['dots', 'both'].indexOf(elementSettings.navigation),
rtl: 'rtl' === elementSettings.direction,
responsive: [{
breakpoint: breakpoints.lg,
settings: {
slidesToShow: +elementSettings.slides_to_show_tablet || (isSingleSlide ? 1 : 2),
slidesToScroll: 1
}
}, {
breakpoint: breakpoints.md,
settings: {
slidesToShow: +elementSettings.slides_to_show_mobile || 1,
slidesToScroll: 1
}
}]
};
if (isSingleSlide) {
slickOptions.fade = 'fade' === elementSettings.effect;
} else {
slickOptions.slidesToScroll = +elementSettings.slides_to_scroll;
}
this.elements.$carousel.slick(slickOptions);
}
});
module.exports = function ($scope) {
new ImageCarouselHandler({ $element: $scope });
};
/***/ }),
/***/ 178:
/***/ (function(module, exports, __webpack_require__) {
"use strict";
var HandlerModule = __webpack_require__(5),
TextEditor;
TextEditor = HandlerModule.extend({
dropCapLetter: '',
getDefaultSettings: function getDefaultSettings() {
return {
selectors: {
paragraph: 'p:first'
},
classes: {
dropCap: 'elementor-drop-cap',
dropCapLetter: 'elementor-drop-cap-letter'
}
};
},
getDefaultElements: function getDefaultElements() {
var selectors = this.getSettings('selectors'),
classes = this.getSettings('classes'),
$dropCap = jQuery('', { class: classes.dropCap }),
$dropCapLetter = jQuery('', { class: classes.dropCapLetter });
$dropCap.append($dropCapLetter);
return {
$paragraph: this.$element.find(selectors.paragraph),
$dropCap: $dropCap,
$dropCapLetter: $dropCapLetter
};
},
getElementName: function getElementName() {
return 'text-editor';
},
wrapDropCap: function wrapDropCap() {
var isDropCapEnabled = this.getElementSettings('drop_cap');
if (!isDropCapEnabled) {
// If there is an old drop cap inside the paragraph
if (this.dropCapLetter) {
this.elements.$dropCap.remove();
this.elements.$paragraph.prepend(this.dropCapLetter);
this.dropCapLetter = '';
}
return;
}
var $paragraph = this.elements.$paragraph;
if (!$paragraph.length) {
return;
}
var paragraphContent = $paragraph.html().replace(/ /g, ' '),
firstLetterMatch = paragraphContent.match(/^ *([^ ] ?)/);
if (!firstLetterMatch) {
return;
}
var firstLetter = firstLetterMatch[1],
trimmedFirstLetter = firstLetter.trim();
// Don't apply drop cap when the content starting with an HTML tag
if ('<' === trimmedFirstLetter) {
return;
}
this.dropCapLetter = firstLetter;
this.elements.$dropCapLetter.text(trimmedFirstLetter);
var restoredParagraphContent = paragraphContent.slice(firstLetter.length).replace(/^ */, function (match) {
return new Array(match.length + 1).join(' ');
});
$paragraph.html(restoredParagraphContent).prepend(this.elements.$dropCap);
},
onInit: function onInit() {
HandlerModule.prototype.onInit.apply(this, arguments);
this.wrapDropCap();
},
onElementChange: function onElementChange(propertyName) {
if ('drop_cap' === propertyName) {
this.wrapDropCap();
}
}
});
module.exports = function ($scope) {
new TextEditor({ $element: $scope });
};
/***/ }),
/***/ 179:
/***/ (function(module, exports, __webpack_require__) {
"use strict";
var HandlerModule = __webpack_require__(5),
GlobalHandler;
GlobalHandler = HandlerModule.extend({
getElementName: function getElementName() {
return 'global';
},
animate: function animate() {
var $element = this.$element,
animation = this.getAnimation(),
elementSettings = this.getElementSettings(),
animationDelay = elementSettings._animation_delay || elementSettings.animation_delay || 0;
$element.removeClass(animation);
setTimeout(function () {
$element.removeClass('elementor-invisible').addClass(animation);
}, animationDelay);
},
getAnimation: function getAnimation() {
var elementSettings = this.getElementSettings();
return elementSettings.animation || elementSettings._animation;
},
onInit: function onInit() {
HandlerModule.prototype.onInit.apply(this, arguments);
var animation = this.getAnimation();
if (!animation) {
return;
}
this.$element.removeClass(animation);
elementorFrontend.waypoint(this.$element, this.animate.bind(this));
},
onElementChange: function onElementChange(propertyName) {
if (/^_?animation/.test(propertyName)) {
this.animate();
}
}
});
module.exports = function ($scope) {
new GlobalHandler({ $element: $scope });
};
/***/ }),
/***/ 180:
/***/ (function(module, exports, __webpack_require__) {
"use strict";
var ViewModule = __webpack_require__(1);
module.exports = ViewModule.extend({
getDefaultSettings: function getDefaultSettings() {
return {
isInserted: false,
APISrc: 'https://www.youtube.com/iframe_api',
selectors: {
firstScript: 'script:first'
}
};
},
getDefaultElements: function getDefaultElements() {
return {
$firstScript: jQuery(this.getSettings('selectors.firstScript'))
};
},
insertYTAPI: function insertYTAPI() {
this.setSettings('isInserted', true);
this.elements.$firstScript.before(jQuery('