/*! 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('