/*!
* Creative Elements - live Theme & Page Builder
* Copyright 2019-2022 WebshopWorks.com & Elementor.com
*/
/******/ (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 = 182);
/******/ })
/************************************************************************/
/******/ ({
/***/ 1:
/***/ (function(module, exports, __webpack_require__) {
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
var userAgent = navigator.userAgent;
exports.default = {
webkit: -1 !== userAgent.indexOf('AppleWebKit'),
firefox: -1 !== userAgent.indexOf('Firefox'),
ie: /Trident|MSIE/.test(userAgent),
edge: -1 !== userAgent.indexOf('Edge'),
mac: -1 !== userAgent.indexOf('Macintosh')
};
/***/ }),
/***/ 5:
/***/ (function(module, exports, __webpack_require__) {
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
var _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if ("value" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
var _class = function (_elementorModules$Vie) {
_inherits(_class, _elementorModules$Vie);
function _class() {
_classCallCheck(this, _class);
return _possibleConstructorReturn(this, (_class.__proto__ || Object.getPrototypeOf(_class)).apply(this, arguments));
}
_createClass(_class, [{
key: '__construct',
value: function __construct(options) {
var _this2 = this;
this.motionFX = options.motionFX;
this.runImmediately = this.run;
this.run = function () {
_this2.animationFrameRequest = requestAnimationFrame(_this2.run.bind(_this2));
if ('page' === _this2.motionFX.getSettings('range')) {
_this2.runImmediately();
return;
}
var dimensions = _this2.motionFX.getSettings('dimensions'),
elementTopWindowPoint = dimensions.elementTop - pageYOffset,
elementEntrancePoint = elementTopWindowPoint - innerHeight,
elementExitPoint = elementTopWindowPoint + dimensions.elementHeight;
if (elementEntrancePoint <= 0 && elementExitPoint >= 0) {
_this2.runImmediately();
}
};
}
}, {
key: 'runCallback',
value: function runCallback() {
var callback = this.getSettings('callback');
callback.apply(undefined, arguments);
}
}, {
key: 'destroy',
value: function destroy() {
cancelAnimationFrame(this.animationFrameRequest);
}
}, {
key: 'onInit',
value: function onInit() {
_get(_class.prototype.__proto__ || Object.getPrototypeOf(_class.prototype), 'onInit', this).call(this);
this.run();
}
}]);
return _class;
}(elementorModules.ViewModule);
exports.default = _class;
/***/ }),
/***/ 13:
/***/ (function(module, exports, __webpack_require__) {
"use strict";
/**
* Handles managing all events for whatever you plug it into. Priorities for hooks are based on lowest to highest in
* that, lowest priority hooks are fired first.
*/
var EventManager = function EventManager() {
var slice = Array.prototype.slice,
MethodsAvailable;
/**
* Contains the hooks that get registered with this EventManager. The array for storage utilizes a "flat"
* object literal such that looking up the hook utilizes the native object literal hash.
*/
var STORAGE = {
actions: {},
filters: {}
};
/**
* Removes the specified hook by resetting the value of it.
*
* @param type Type of hook, either 'actions' or 'filters'
* @param hook The hook (namespace.identifier) to remove
*
* @private
*/
function _removeHook(type, hook, callback, context) {
var handlers, handler, i;
if (!STORAGE[type][hook]) {
return;
}
if (!callback) {
STORAGE[type][hook] = [];
} else {
handlers = STORAGE[type][hook];
if (!context) {
for (i = handlers.length; i--;) {
if (handlers[i].callback === callback) {
handlers.splice(i, 1);
}
}
} else {
for (i = handlers.length; i--;) {
handler = handlers[i];
if (handler.callback === callback && handler.context === context) {
handlers.splice(i, 1);
}
}
}
}
}
/**
* Use an insert sort for keeping our hooks organized based on priority. This function is ridiculously faster
* than bubble sort, etc: http://jsperf.com/javascript-sort
*
* @param hooks The custom array containing all of the appropriate hooks to perform an insert sort on.
* @private
*/
function _hookInsertSort(hooks) {
var tmpHook, j, prevHook;
for (var i = 1, len = hooks.length; i < len; i++) {
tmpHook = hooks[i];
j = i;
while ((prevHook = hooks[j - 1]) && prevHook.priority > tmpHook.priority) {
hooks[j] = hooks[j - 1];
--j;
}
hooks[j] = tmpHook;
}
return hooks;
}
/**
* Adds the hook to the appropriate storage container
*
* @param type 'actions' or 'filters'
* @param hook The hook (namespace.identifier) to add to our event manager
* @param callback The function that will be called when the hook is executed.
* @param priority The priority of this hook. Must be an integer.
* @param [context] A value to be used for this
* @private
*/
function _addHook(type, hook, callback, priority, context) {
var hookObject = {
callback: callback,
priority: priority,
context: context
};
// Utilize 'prop itself' : http://jsperf.com/hasownproperty-vs-in-vs-undefined/19
var hooks = STORAGE[type][hook];
if (hooks) {
// TEMP FIX BUG
var hasSameCallback = false;
jQuery.each(hooks, function () {
if (this.callback === callback) {
hasSameCallback = true;
return false;
}
});
if (hasSameCallback) {
return;
}
// END TEMP FIX BUG
hooks.push(hookObject);
hooks = _hookInsertSort(hooks);
} else {
hooks = [hookObject];
}
STORAGE[type][hook] = hooks;
}
/**
* Runs the specified hook. If it is an action, the value is not modified but if it is a filter, it is.
*
* @param type 'actions' or 'filters'
* @param hook The hook ( namespace.identifier ) to be ran.
* @param args Arguments to pass to the action/filter. If it's a filter, args is actually a single parameter.
* @private
*/
function _runHook(type, hook, args) {
var handlers = STORAGE[type][hook],
i,
len;
if (!handlers) {
return 'filters' === type ? args[0] : false;
}
len = handlers.length;
if ('filters' === type) {
for (i = 0; i < len; i++) {
args[0] = handlers[i].callback.apply(handlers[i].context, args);
}
} else {
for (i = 0; i < len; i++) {
handlers[i].callback.apply(handlers[i].context, args);
}
}
return 'filters' === type ? args[0] : true;
}
/**
* Adds an action to the event manager.
*
* @param action Must contain namespace.identifier
* @param callback Must be a valid callback function before this action is added
* @param [priority=10] Used to control when the function is executed in relation to other callbacks bound to the same hook
* @param [context] Supply a value to be used for this
*/
function addAction(action, callback, priority, context) {
if ('string' === typeof action && 'function' === typeof callback) {
priority = parseInt(priority || 10, 10);
_addHook('actions', action, callback, priority, context);
}
return MethodsAvailable;
}
/**
* Performs an action if it exists. You can pass as many arguments as you want to this function; the only rule is
* that the first argument must always be the action.
*/
function doAction() /* action, arg1, arg2, ... */{
var args = slice.call(arguments);
var action = args.shift();
if ('string' === typeof action) {
_runHook('actions', action, args);
}
return MethodsAvailable;
}
/**
* Removes the specified action if it contains a namespace.identifier & exists.
*
* @param action The action to remove
* @param [callback] Callback function to remove
*/
function removeAction(action, callback) {
if ('string' === typeof action) {
_removeHook('actions', action, callback);
}
return MethodsAvailable;
}
/**
* Adds a filter to the event manager.
*
* @param filter Must contain namespace.identifier
* @param callback Must be a valid callback function before this action is added
* @param [priority=10] Used to control when the function is executed in relation to other callbacks bound to the same hook
* @param [context] Supply a value to be used for this
*/
function addFilter(filter, callback, priority, context) {
if ('string' === typeof filter && 'function' === typeof callback) {
priority = parseInt(priority || 10, 10);
_addHook('filters', filter, callback, priority, context);
}
return MethodsAvailable;
}
/**
* Performs a filter if it exists. You should only ever pass 1 argument to be filtered. The only rule is that
* the first argument must always be the filter.
*/
function applyFilters() /* filter, filtered arg, arg2, ... */{
var args = slice.call(arguments);
var filter = args.shift();
if ('string' === typeof filter) {
return _runHook('filters', filter, args);
}
return MethodsAvailable;
}
/**
* Removes the specified filter if it contains a namespace.identifier & exists.
*
* @param filter The action to remove
* @param [callback] Callback function to remove
*/
function removeFilter(filter, callback) {
if ('string' === typeof filter) {
_removeHook('filters', filter, callback);
}
return MethodsAvailable;
}
/**
* Maintain a reference to the object scope so our public methods never get confusing.
*/
MethodsAvailable = {
removeFilter: removeFilter,
applyFilters: applyFilters,
addFilter: addFilter,
removeAction: removeAction,
doAction: doAction,
addAction: addAction
};
// return all of the publicly available methods
return MethodsAvailable;
};
module.exports = EventManager;
/***/ }),
/***/ 10:
/***/ (function(module, exports, __webpack_require__) {
var $ = jQuery;
window.Sticky = function( element, userSettings ) {
var $element,
isSticky = false,
isFollowingParent = false,
isReachedEffectsPoint = false,
prevPageYOffset = pageYOffset,
elements = {},
settings;
var defaultSettings = {
to: 'top',
offset: 0,
effectsOffset: 0,
parent: false,
classes: {
sticky: 'sticky',
stickyActive: 'sticky-active',
stickyEffects: 'sticky-effects',
spacer: 'sticky-spacer',
},
};
var initElements = function() {
$element = $( element ).addClass( settings.classes.sticky );
elements.$window = $( window );
if ( settings.parent ) {
if ( 'parent' === settings.parent ) {
elements.$parent = $element.parent();
} else {
elements.$parent = $element.closest( settings.parent );
}
}
};
var initSettings = function() {
settings = jQuery.extend( true, defaultSettings, userSettings );
};
var bindEvents = function() {
elements.$window.on( {
scroll: onWindowScroll,
resize: onWindowResize,
} );
};
var unbindEvents = function() {
elements.$window
.off( 'scroll', onWindowScroll )
.off( 'resize', onWindowResize );
};
var init = function() {
initSettings();
initElements();
bindEvents();
checkPosition();
};
var backupCSS = function( $elementBackupCSS, backupState, properties ) {
var css = {},
elementStyle = $elementBackupCSS[ 0 ].style;
properties.forEach( function( property ) {
css[ property ] = undefined !== elementStyle[ property ] ? elementStyle[ property ] : '';
} );
$elementBackupCSS.data( 'css-backup-' + backupState, css );
};
var getCSSBackup = function( $elementCSSBackup, backupState ) {
return $elementCSSBackup.data( 'css-backup-' + backupState );
};
var addSpacer = function() {
elements.$spacer = $element.clone()
.addClass( settings.classes.spacer )
.css( {
visibility: 'hidden',
transition: 'none',
animation: 'none',
} );
$element.after( elements.$spacer );
};
var removeSpacer = function() {
elements.$spacer.remove();
};
var stickElement = function() {
backupCSS( $element, 'unsticky', [ 'position', 'width', 'margin-top', 'margin-bottom', 'top', 'bottom' ] );
var css = {
position: 'fixed',
width: getElementOuterSize( $element, 'width' ),
marginTop: 0,
marginBottom: 0,
};
css[ settings.to ] = settings.offset;
css[ 'top' === settings.to ? 'bottom' : 'top' ] = '';
$element
.css( css )
.addClass( settings.classes.stickyActive );
};
var unstickElement = function() {
$element
.css( getCSSBackup( $element, 'unsticky' ) )
.removeClass( settings.classes.stickyActive );
};
var followParent = function() {
backupCSS( elements.$parent, 'childNotFollowing', [ 'position' ] );
elements.$parent.css( 'position', 'relative' );
backupCSS( $element, 'notFollowing', [ 'position', 'top', 'bottom' ] );
var css = {
position: 'absolute',
};
css[ settings.to ] = '';
css[ 'top' === settings.to ? 'bottom' : 'top' ] = 0;
$element.css( css );
isFollowingParent = true;
};
var unfollowParent = function() {
elements.$parent.css( getCSSBackup( elements.$parent, 'childNotFollowing' ) );
$element.css( getCSSBackup( $element, 'notFollowing' ) );
isFollowingParent = false;
};
var getElementOuterSize = function( $elementOuterSize, dimension, includeMargins ) {
var computedStyle = getComputedStyle( $elementOuterSize[ 0 ] ),
elementSize = parseFloat( computedStyle[ dimension ] ),
sides = 'height' === dimension ? [ 'top', 'bottom' ] : [ 'left', 'right' ],
propertiesToAdd = [];
if ( 'border-box' !== computedStyle.boxSizing ) {
propertiesToAdd.push( 'border', 'padding' );
}
if ( includeMargins ) {
propertiesToAdd.push( 'margin' );
}
propertiesToAdd.forEach( function( property ) {
sides.forEach( function( side ) {
elementSize += parseFloat( computedStyle[ property + '-' + side ] );
} );
} );
return elementSize;
};
var getElementViewportOffset = function( $elementViewportOffset ) {
var windowScrollTop = elements.$window.scrollTop(),
elementHeight = getElementOuterSize( $elementViewportOffset, 'height' ),
viewportHeight = innerHeight,
elementOffsetFromTop = $elementViewportOffset.offset().top,
distanceFromTop = elementOffsetFromTop - windowScrollTop,
topFromBottom = distanceFromTop - viewportHeight;
return {
top: {
fromTop: distanceFromTop,
fromBottom: topFromBottom,
},
bottom: {
fromTop: distanceFromTop + elementHeight,
fromBottom: topFromBottom + elementHeight,
},
};
};
var stick = function() {
addSpacer();
stickElement();
isSticky = true;
// fix: restore checked property
$element.find('input[checked]').prop('checked', true);
$element.trigger( 'sticky:stick' );
};
var unstick = function() {
unstickElement();
removeSpacer();
isSticky = false;
$element.trigger( 'sticky:unstick' );
};
var checkParent = function() {
var elementOffset = getElementViewportOffset( $element ),
isTop = 'top' === settings.to;
if ( isFollowingParent ) {
var isNeedUnfollowing = isTop ? elementOffset.top.fromTop > settings.offset : elementOffset.bottom.fromBottom < -settings.offset;
if ( isNeedUnfollowing ) {
unfollowParent();
}
} else {
var parentOffset = getElementViewportOffset( elements.$parent ),
parentStyle = getComputedStyle( elements.$parent[ 0 ] ),
borderWidthToDecrease = parseFloat( parentStyle[ isTop ? 'borderBottomWidth' : 'borderTopWidth' ] ),
parentViewportDistance = isTop ? parentOffset.bottom.fromTop - borderWidthToDecrease : parentOffset.top.fromBottom + borderWidthToDecrease,
isNeedFollowing = isTop ? parentViewportDistance <= elementOffset.bottom.fromTop : parentViewportDistance >= elementOffset.top.fromBottom;
if ( isNeedFollowing ) {
followParent();
}
}
};
var checkEffectsPoint = function( distanceFromTriggerPoint ) {
if ( isReachedEffectsPoint && -distanceFromTriggerPoint < settings.effectsOffset ) {
$element.removeClass( settings.classes.stickyEffects );
isReachedEffectsPoint = false;
} else if ( ! isReachedEffectsPoint && -distanceFromTriggerPoint >= settings.effectsOffset ) {
$element.addClass( settings.classes.stickyEffects );
isReachedEffectsPoint = true;
}
};
var checkPosition = function() {
var offset = settings.offset,
distanceFromTriggerPoint;
if ( isSticky ) {
var spacerViewportOffset = getElementViewportOffset( elements.$spacer );
distanceFromTriggerPoint = 'top' === settings.to ? spacerViewportOffset.top.fromTop - offset : -spacerViewportOffset.bottom.fromBottom - offset;
if ( settings.parent ) {
checkParent();
}
if ( distanceFromTriggerPoint > 0 ) {
unstick();
}
} else {
var elementViewportOffset = getElementViewportOffset( $element );
distanceFromTriggerPoint = 'top' === settings.to ? elementViewportOffset.top.fromTop - offset : -elementViewportOffset.bottom.fromBottom - offset;
if ( distanceFromTriggerPoint <= 0 ) {
stick();
if ( settings.parent ) {
checkParent();
}
}
}
checkEffectsPoint( distanceFromTriggerPoint );
};
var onWindowScroll = function() {
if (isSticky && settings.autoHide) {
var t = 10, // tolerance
autoHideOffset = settings.autoHideOffset.size * ('vh' === settings.autoHideOffset.unit ? $(window).height() / 100 : 1);
if (pageYOffset >= autoHideOffset && pageYOffset > prevPageYOffset + t) {
$element
.off('transitionend.ceSticky')
.css({
transition: 'transform ' + settings.autoHideDuration.size + 's',
transform: 'translateY(calc(-100% - ' + settings.offset + 'px))'
})
.addClass(settings.classes.stickyHide);
}
if (pageYOffset < autoHideOffset || pageYOffset < prevPageYOffset - t) {
$element
.removeClass(settings.classes.stickyHide)
.css('transform', '')
.one('transitionend.ceSticky', function () {
$element.css('transition', '');
});
}
prevPageYOffset = pageYOffset;
}
checkPosition();
};
var onWindowResize = function() {
if ( ! isSticky ) {
return;
}
unstickElement();
stickElement();
if ( settings.parent ) {
// Force recalculation of the relation between the element and its parent
isFollowingParent = false;
checkParent();
}
};
this.destroy = function() {
if ( isSticky ) {
unstick();
}
unbindEvents();
$element.removeClass( settings.classes.sticky )
.css('transform', '')
.off('transitionend.ceSticky')
.removeClass(settings.classes.stickyHide);
};
init();
};
$.fn.sticky = function( settings ) {
var isCommand = 'string' === typeof settings;
this.each( function() {
var $this = $( this );
if ( ! isCommand ) {
$this.data( 'sticky', new Sticky( this, settings ) );
return;
}
var instance = $this.data( 'sticky' );
if ( ! instance ) {
throw Error( 'Trying to perform the `' + settings + '` method prior to initialization' );
}
if ( ! instance[ settings ] ) {
throw ReferenceError( 'Method `' + settings + '` not found in sticky instance' );
}
instance[ settings ].apply( instance, Array.prototype.slice.call( arguments, 1 ) );
if ( 'destroy' === settings ) {
$this.removeData( 'sticky' );
}
} );
return this;
};
var StickyHandler = elementorModules.frontend.handlers.Base.extend({
bindEvents: function bindEvents() {
ceFrontend.addListenerOnce(this.getUniqueHandlerID() + 'sticky', 'resize', this.run);
},
unbindEvents: function unbindEvents() {
ceFrontend.removeListeners(this.getUniqueHandlerID() + 'sticky', 'resize', this.run);
},
isActive: function isActive() {
return undefined !== this.$element.data('sticky');
},
activate: function activate() {
var elementSettings = this.getElementSettings(),
stickyOptions = {
to: elementSettings.sticky,
offset: elementSettings.sticky_offset,
effectsOffset: elementSettings.sticky_effects_offset,
autoHide: elementSettings.sticky_auto_hide,
autoHideOffset: elementSettings.sticky_auto_hide_offset || {size: 0},
autoHideDuration: elementSettings.sticky_auto_hide_duration || {size: 0},
classes: {
sticky: 'elementor-sticky',
stickyActive: 'elementor-sticky--active elementor-section--handles-inside',
stickyEffects: 'elementor-sticky--effects',
stickyHide: 'ce-sticky--hide',
spacer: 'elementor-sticky__spacer'
}
};
if (elementSettings.sticky_parent) {
stickyOptions.parent = '.elementor-widget-wrap';
}
this.$element.sticky(stickyOptions);
},
deactivate: function deactivate() {
if (!this.isActive()) {
return;
}
this.$element.sticky('destroy');
},
run: function run(refresh) {
if (!this.getElementSettings('sticky')) {
this.deactivate();
return;
}
var currentDeviceMode = ceFrontend.getCurrentDeviceMode(),
activeDevices = this.getElementSettings('sticky_on');
if (-1 !== activeDevices.indexOf(currentDeviceMode)) {
if (true === refresh) {
this.reactivate();
} else if (!this.isActive()) {
this.activate();
}
} else {
this.deactivate();
}
},
reactivate: function reactivate() {
this.deactivate();
this.activate();
},
onElementChange: function onElementChange(settingKey) {
if (-1 !== ['sticky', 'sticky_on'].indexOf(settingKey)) {
this.run(true);
}
if (-1 !== ['sticky_offset', 'sticky_effects_offset', 'sticky_parent', 'sticky_auto_hide', 'sticky_auto_hide_offset', 'sticky_auto_hide_duration'].indexOf(settingKey)) {
this.reactivate();
}
},
onInit: function onInit() {
elementorModules.frontend.handlers.Base.prototype.onInit.apply(this, arguments);
this.run();
},
onDestroy: function onDestroy() {
elementorModules.frontend.handlers.Base.prototype.onDestroy.apply(this, arguments);
this.deactivate();
}
});
module.exports = function ($scope) {
new StickyHandler({ $element: $scope });
};
/***/ }),
/***/ 15:
/***/ (function(module, exports, __webpack_require__) {
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
var _class = function (_elementorModules$Mod) {
_inherits(_class, _elementorModules$Mod);
function _class() {
_classCallCheck(this, _class);
return _possibleConstructorReturn(this, (_class.__proto__ || Object.getPrototypeOf(_class)).apply(this, arguments));
}
_createClass(_class, [{
key: 'get',
value: function get(key, options) {
options = options || {};
var storage = void 0;
try {
storage = options.session ? sessionStorage : localStorage;
} catch (e) {
return key ? undefined : {};
}
var elementorStorage = storage.getItem('elementor');
if (elementorStorage) {
elementorStorage = JSON.parse(elementorStorage);
} else {
elementorStorage = {};
}
if (!elementorStorage.__expiration) {
elementorStorage.__expiration = {};
}
var expiration = elementorStorage.__expiration;
var expirationToCheck = [];
if (key) {
if (expiration[key]) {
expirationToCheck = [key];
}
} else {
expirationToCheck = Object.keys(expiration);
}
var entryExpired = false;
expirationToCheck.forEach(function (expirationKey) {
if (new Date(expiration[expirationKey]) < new Date()) {
delete elementorStorage[expirationKey];
delete expiration[expirationKey];
entryExpired = true;
}
});
if (entryExpired) {
this.save(elementorStorage, options.session);
}
if (key) {
return elementorStorage[key];
}
return elementorStorage;
}
}, {
key: 'set',
value: function set(key, value, options) {
options = options || {};
var elementorStorage = this.get(null, options);
elementorStorage[key] = value;
if (options.lifetimeInSeconds) {
var date = new Date();
date.setTime(date.getTime() + options.lifetimeInSeconds * 1000);
elementorStorage.__expiration[key] = date.getTime();
}
this.save(elementorStorage, options.session);
}
}, {
key: 'save',
value: function save(object, session) {
var storage = void 0;
try {
storage = session ? sessionStorage : localStorage;
} catch (e) {
return;
}
storage.setItem('elementor', JSON.stringify(object));
}
}]);
return _class;
}(elementorModules.Module);
exports.default = _class;
/***/ }),
/***/ 16:
/***/ (function(module, exports, __webpack_require__) {
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
var _environment = __webpack_require__(1);
var _environment2 = _interopRequireDefault(_environment);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
var HotKeys = function () {
function HotKeys() {
_classCallCheck(this, HotKeys);
this.hotKeysHandlers = {};
}
_createClass(HotKeys, [{
key: 'applyHotKey',
value: function applyHotKey(event) {
var handlers = this.hotKeysHandlers[event.which];
if (!handlers) {
return;
}
jQuery.each(handlers, function (key, handler) {
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);
});
}
}, {
key: 'isControlEvent',
value: function isControlEvent(event) {
return event[_environment2.default.mac ? 'metaKey' : 'ctrlKey'];
}
}, {
key: 'addHotKeyHandler',
value: function addHotKeyHandler(keyCode, handlerName, handler) {
if (!this.hotKeysHandlers[keyCode]) {
this.hotKeysHandlers[keyCode] = {};
}
this.hotKeysHandlers[keyCode][handlerName] = handler;
}
}, {
key: 'bindListener',
value: function bindListener($listener) {
$listener.on('keydown', this.applyHotKey.bind(this));
}
}]);
return HotKeys;
}();
exports.default = HotKeys;
/***/ }),
/***/ 17:
/***/ (function(module, exports, __webpack_require__) {
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
var _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if ("value" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
var _class = function (_elementorModules$Vie) {
_inherits(_class, _elementorModules$Vie);
function _class() {
_classCallCheck(this, _class);
return _possibleConstructorReturn(this, (_class.__proto__ || Object.getPrototypeOf(_class)).apply(this, arguments));
}
_createClass(_class, [{
key: 'getDefaultSettings',
value: function getDefaultSettings() {
return {
selectors: {
elements: '.elementor-element',
nestedDocumentElements: '.elementor .elementor-element'
},
classes: {
editMode: 'elementor-edit-mode'
}
};
}
}, {
key: 'getDefaultElements',
value: function getDefaultElements() {
var selectors = this.getSettings('selectors');
return {
$elements: this.$element.find(selectors.elements).not(this.$element.find(selectors.nestedDocumentElements))
};
}
}, {
key: 'getDocumentSettings',
value: function getDocumentSettings(setting) {
var elementSettings = void 0;
if (this.isEdit) {
elementSettings = {};
var settings = elementor.settings.page.model;
jQuery.each(settings.getActiveControls(), function (controlKey) {
elementSettings[controlKey] = settings.attributes[controlKey];
});
} else {
elementSettings = this.$element.data('elementor-settings') || {};
}
return this.getItems(elementSettings, setting);
}
}, {
key: 'runElementsHandlers',
value: function runElementsHandlers() {
this.elements.$elements.each(function (index, element) {
return ceFrontend.elementsHandler.runReadyTrigger(element);
});
}
}, {
key: 'onInit',
value: function onInit() {
this.$element = this.getSettings('$element');
_get(_class.prototype.__proto__ || Object.getPrototypeOf(_class.prototype), 'onInit', this).call(this);
this.isEdit = this.$element.hasClass(this.getSettings('classes.editMode'));
if (this.isEdit) {
elementor.settings.page.model.on('change', this.onSettingsChange.bind(this));
} else {
this.runElementsHandlers();
}
}
}, {
key: 'onSettingsChange',
value: function onSettingsChange() {}
}]);
return _class;
}(elementorModules.ViewModule);
exports.default = _class;
/***/ }),
/***/ 18:
/***/ (function(module, exports, __webpack_require__) {
"use strict";
module.exports = elementorModules.frontend.handlers.Base.extend({
$activeContent: null,
getDefaultSettings: function getDefaultSettings() {
return {
selectors: {
tabTitle: '.elementor-tab-title',
tabContent: '.elementor-tab-content'
},
classes: {
active: 'elementor-active'
},
showTabFn: 'show',
hideTabFn: 'hide',
toggleSelf: true,
hidePrevious: true,
autoExpand: true
};
},
getDefaultElements: function getDefaultElements() {
var selectors = this.getSettings('selectors');
return {
$tabTitles: this.findElement(selectors.tabTitle),
$tabContents: this.findElement(selectors.tabContent)
};
},
activateDefaultTab: function activateDefaultTab() {
var settings = this.getSettings();
if (!settings.autoExpand || 'editor' === settings.autoExpand && !this.isEdit) {
return;
}
var defaultActiveTab = this.getEditSettings('activeItemIndex') || 1,
originalToggleMethods = {
showTabFn: settings.showTabFn,
hideTabFn: settings.hideTabFn
};
// Toggle tabs without animation to avoid jumping
this.setSettings({
showTabFn: 'show',
hideTabFn: 'hide'
});
this.changeActiveTab(defaultActiveTab);
// Return back original toggle effects
this.setSettings(originalToggleMethods);
},
deactivateActiveTab: function deactivateActiveTab(tabIndex) {
var settings = this.getSettings(),
activeClass = settings.classes.active,
activeFilter = tabIndex ? '[data-tab="' + tabIndex + '"]' : '.' + activeClass,
$activeTitle = this.elements.$tabTitles.filter(activeFilter),
$activeContent = this.elements.$tabContents.filter(activeFilter);
$activeTitle.add($activeContent).removeClass(activeClass);
$activeContent[settings.hideTabFn]();
},
activateTab: function activateTab(tabIndex) {
var settings = this.getSettings(),
activeClass = settings.classes.active,
$requestedTitle = this.elements.$tabTitles.filter('[data-tab="' + tabIndex + '"]'),
$requestedContent = this.elements.$tabContents.filter('[data-tab="' + tabIndex + '"]');
$requestedTitle.add($requestedContent).addClass(activeClass);
$requestedContent[settings.showTabFn]();
},
isActiveTab: function isActiveTab(tabIndex) {
return this.elements.$tabTitles.filter('[data-tab="' + tabIndex + '"]').hasClass(this.getSettings('classes.active'));
},
bindEvents: function bindEvents() {
var _this = this;
this.elements.$tabTitles.on({
keydown: function keydown(event) {
if ('Enter' === event.key) {
event.preventDefault();
_this.changeActiveTab(event.currentTarget.getAttribute('data-tab'));
}
},
click: function click(event) {
event.preventDefault();
_this.changeActiveTab(event.currentTarget.getAttribute('data-tab'));
}
});
},
onInit: function onInit() {
elementorModules.frontend.handlers.Base.prototype.onInit.apply(this, arguments);
this.activateDefaultTab();
},
onEditSettingsChange: function onEditSettingsChange(propertyName) {
if ('activeItemIndex' === propertyName) {
this.activateDefaultTab();
}
},
changeActiveTab: function changeActiveTab(tabIndex) {
var isActiveTab = this.isActiveTab(tabIndex),
settings = this.getSettings();
if ((settings.toggleSelf || !isActiveTab) && settings.hidePrevious) {
this.deactivateActiveTab();
}
if (!settings.hidePrevious && isActiveTab) {
this.deactivateActiveTab(tabIndex);
}
if (!isActiveTab) {
this.activateTab(tabIndex);
}
}
});
/***/ }),
/***/ 90:
/***/ (function(module, exports, __webpack_require__) {
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
var _handler = __webpack_require__(91);
var _handler2 = _interopRequireDefault(_handler);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
var _class = function (_elementorModules$Mod) {
_inherits(_class, _elementorModules$Mod);
function _class() {
_classCallCheck(this, _class);
var _this = _possibleConstructorReturn(this, (_class.__proto__ || Object.getPrototypeOf(_class)).call(this));
ceFrontend.hooks.addAction('frontend/element_ready/global', function ($element) {
ceFrontend.elementsHandler.addHandler(_handler2.default, { $element: $element });
});
return _this;
}
return _class;
}(elementorModules.Module);
exports.default = _class;
/***/ }),
/***/ 91:
/***/ (function(module, exports, __webpack_require__) {
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };
var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
var _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if ("value" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };
var _motionFx = __webpack_require__(92);
var _motionFx2 = _interopRequireDefault(_motionFx);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
var _class = function (_elementorModules$fro) {
_inherits(_class, _elementorModules$fro);
function _class() {
_classCallCheck(this, _class);
return _possibleConstructorReturn(this, (_class.__proto__ || Object.getPrototypeOf(_class)).apply(this, arguments));
}
_createClass(_class, [{
key: '__construct',
value: function __construct() {
var _get2;
for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
args[_key] = arguments[_key];
}
(_get2 = _get(_class.prototype.__proto__ || Object.getPrototypeOf(_class.prototype), '__construct', this)).call.apply(_get2, [this].concat(args));
this.toggle = ceFrontend.debounce(this.toggle, 200);
}
}, {
key: 'bindEvents',
value: function bindEvents() {
ceFrontend.elements.$window.on('resize', this.toggle);
}
}, {
key: 'unbindEvents',
value: function unbindEvents() {
ceFrontend.elements.$window.off('resize', this.toggle);
}
}, {
key: 'initEffects',
value: function initEffects() {
this.effects = {
translateY: {
interaction: 'scroll',
actions: ['translateY']
},
translateX: {
interaction: 'scroll',
actions: ['translateX']
},
rotateZ: {
interaction: 'scroll',
actions: ['rotateZ']
},
scale: {
interaction: 'scroll',
actions: ['scale']
},
opacity: {
interaction: 'scroll',
actions: ['opacity']
},
blur: {
interaction: 'scroll',
actions: ['blur']
},
mouseTrack: {
interaction: 'mouseMove',
actions: ['translateXY']
},
tilt: {
interaction: 'mouseMove',
actions: ['tilt']
}
};
}
}, {
key: 'prepareOptions',
value: function prepareOptions(name) {
var _this2 = this;
var elementSettings = this.getElementSettings(),
type = 'motion_fx' === name ? 'element' : 'background',
interactions = {};
jQuery.each(elementSettings, function (key, value) {
var keyRegex = new RegExp('^' + name + '_(.+?)_effect'),
keyMatches = key.match(keyRegex);
if (!keyMatches || !value) {
return;
}
var options = {},
effectName = keyMatches[1];
jQuery.each(elementSettings, function (subKey, subValue) {
var subKeyRegex = new RegExp(name + '_' + effectName + '_(.+)'),
subKeyMatches = subKey.match(subKeyRegex);
if (!subKeyMatches) {
return;
}
var subFieldName = subKeyMatches[1];
if ('effect' === subFieldName) {
return;
}
if ('object' === (typeof subValue === 'undefined' ? 'undefined' : _typeof(subValue))) {
subValue = Object.keys(subValue.sizes).length ? subValue.sizes : subValue.size;
}
options[subKeyMatches[1]] = subValue;
});
var effect = _this2.effects[effectName],
interactionName = effect.interaction;
if (!interactions[interactionName]) {
interactions[interactionName] = {};
}
effect.actions.forEach(function (action) {
return interactions[interactionName][action] = options;
});
});
var $element = this.$element,
$dimensionsElement = void 0;
var elementType = this.getElementType();
if ('element' === type && 'section' !== elementType) {
$dimensionsElement = $element;
var childElementSelector = void 0;
if ('column' === elementType) {
childElementSelector = '.elementor-column-wrap';
} else {
childElementSelector = '.elementor-widget-container';
}
$element = $element.find('> ' + childElementSelector);
}
var options = {
type: type,
interactions: interactions,
elementSettings: elementSettings,
$element: $element,
$dimensionsElement: $dimensionsElement,
refreshDimensions: this.isEdit,
range: 'viewport',
classes: {
element: 'elementor-motion-effects-element',
parent: 'elementor-motion-effects-parent',
backgroundType: 'elementor-motion-effects-element-type-background',
container: 'elementor-motion-effects-container',
layer: 'elementor-motion-effects-layer',
perspective: 'elementor-motion-effects-perspective'
}
};
if ('page' === elementSettings.motion_fx_range || 'fixed' === this.getCurrentDeviceSetting('_position')) {
options.range = 'page';
}
if ('background' === type && 'column' === this.getElementType()) {
options.addBackgroundLayerTo = ' > .elementor-element-populated';
}
return options;
}
}, {
key: 'activate',
value: function activate(name) {
var options = this.prepareOptions(name);
if (jQuery.isEmptyObject(options.interactions)) {
return;
}
this[name] = new _motionFx2.default(options);
}
}, {
key: 'deactivate',
value: function deactivate(name) {
if (this[name]) {
this[name].destroy();
delete this[name];
}
}
}, {
key: 'toggle',
value: function toggle() {
var _this3 = this;
var currentDeviceMode = ceFrontend.getCurrentDeviceMode(),
elementSettings = this.getElementSettings();
['motion_fx', 'background_motion_fx'].forEach(function (name) {
var devices = elementSettings[name + '_devices'],
isCurrentModeActive = !devices || -1 !== devices.indexOf(currentDeviceMode);
if (isCurrentModeActive && (elementSettings[name + '_motion_fx_scrolling'] || elementSettings[name + '_motion_fx_mouse'])) {
if (_this3[name]) {
_this3.refreshInstance(name);
} else {
_this3.activate(name);
}
} else {
_this3.deactivate(name);
}
});
}
}, {
key: 'refreshInstance',
value: function refreshInstance(instanceName) {
var instance = this[instanceName];
if (!instance) {
return;
}
var preparedOptions = this.prepareOptions(instanceName);
instance.setSettings(preparedOptions);
instance.refresh();
}
}, {
key: 'onInit',
value: function onInit() {
_get(_class.prototype.__proto__ || Object.getPrototypeOf(_class.prototype), 'onInit', this).call(this);
this.initEffects();
this.toggle();
}
}, {
key: 'onElementChange',
value: function onElementChange(propertyName) {
var _this4 = this;
if (/motion_fx_((scrolling)|(mouse)|(devices))$/.test(propertyName)) {
this.toggle();
return;
}
var propertyMatches = propertyName.match('.*?motion_fx');
if (propertyMatches) {
var instanceName = propertyMatches[0];
this.refreshInstance(instanceName);
if (!this[instanceName]) {
this.activate(instanceName);
}
}
if (/^_position/.test(propertyName)) {
['motion_fx', 'background_motion_fx'].forEach(function (instanceName) {
_this4.refreshInstance(instanceName);
});
}
}
}, {
key: 'onDestroy',
value: function onDestroy() {
var _this5 = this;
_get(_class.prototype.__proto__ || Object.getPrototypeOf(_class.prototype), 'onDestroy', this).call(this);
['motion_fx', 'background_motion_fx'].forEach(function (name) {
_this5.deactivate(name);
});
}
}]);
return _class;
}(elementorModules.frontend.handlers.Base);
exports.default = _class;
/***/ }),
/***/ 92:
/***/ (function(module, exports, __webpack_require__) {
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
var _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if ("value" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };
var _scroll = __webpack_require__(93);
var _scroll2 = _interopRequireDefault(_scroll);
var _mouseMove = __webpack_require__(94);
var _mouseMove2 = _interopRequireDefault(_mouseMove);
var _actions2 = __webpack_require__(95);
var _actions3 = _interopRequireDefault(_actions2);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
var _class = function (_elementorModules$Vie) {
_inherits(_class, _elementorModules$Vie);
function _class() {
_classCallCheck(this, _class);
return _possibleConstructorReturn(this, (_class.__proto__ || Object.getPrototypeOf(_class)).apply(this, arguments));
}
_createClass(_class, [{
key: 'getDefaultSettings',
value: function getDefaultSettings() {
return {
type: 'element',
$element: null,
$dimensionsElement: null,
addBackgroundLayerTo: null,
interactions: {},
refreshDimensions: false,
range: 'viewport',
classes: {
element: 'motion-fx-element',
parent: 'motion-fx-parent',
backgroundType: 'motion-fx-element-type-background',
container: 'motion-fx-container',
layer: 'motion-fx-layer',
perspective: 'motion-fx-perspective'
}
};
}
}, {
key: 'bindEvents',
value: function bindEvents() {
this.onWindowResize = this.onWindowResize.bind(this);
ceFrontend.elements.$window.on('resize', this.onWindowResize);
}
}, {
key: 'unbindEvents',
value: function unbindEvents() {
ceFrontend.elements.$window.off('resize', this.onWindowResize);
}
}, {
key: 'addBackgroundLayer',
value: function addBackgroundLayer() {
var settings = this.getSettings();
this.elements.$motionFXContainer = jQuery('
', { class: settings.classes.container });
this.elements.$motionFXLayer = jQuery('
', { class: settings.classes.layer });
this.updateBackgroundLayerSize();
this.elements.$motionFXContainer.prepend(this.elements.$motionFXLayer);
var $addBackgroundLayerTo = settings.addBackgroundLayerTo ? this.$element.find(settings.addBackgroundLayerTo) : this.$element;
$addBackgroundLayerTo.prepend(this.elements.$motionFXContainer);
}
}, {
key: 'removeBackgroundLayer',
value: function removeBackgroundLayer() {
this.elements.$motionFXContainer.remove();
}
}, {
key: 'updateBackgroundLayerSize',
value: function updateBackgroundLayerSize() {
var settings = this.getSettings(),
speed = {
x: 0,
y: 0
},
mouseInteraction = settings.interactions.mouseMove,
scrollInteraction = settings.interactions.scroll;
if (mouseInteraction && mouseInteraction.translateXY) {
speed.x = mouseInteraction.translateXY.speed * 10;
speed.y = mouseInteraction.translateXY.speed * 10;
}
if (scrollInteraction) {
if (scrollInteraction.translateX) {
speed.x = scrollInteraction.translateX.speed * 10;
}
if (scrollInteraction.translateY) {
speed.y = scrollInteraction.translateY.speed * 10;
}
}
this.elements.$motionFXLayer.css({
width: 100 + speed.x + '%',
height: 100 + speed.y + '%'
});
}
}, {
key: 'defineDimensions',
value: function defineDimensions() {
var $dimensionsElement = this.getSettings('$dimensionsElement') || this.$element,
elementOffset = $dimensionsElement.offset();
var dimensions = {
elementHeight: $dimensionsElement.outerHeight(),
elementWidth: $dimensionsElement.outerWidth(),
elementTop: elementOffset.top,
elementLeft: elementOffset.left
};
dimensions.elementRange = dimensions.elementHeight + innerHeight;
this.setSettings('dimensions', dimensions);
if ('background' === this.getSettings('type')) {
this.defineBackgroundLayerDimensions();
}
}
}, {
key: 'defineBackgroundLayerDimensions',
value: function defineBackgroundLayerDimensions() {
var dimensions = this.getSettings('dimensions');
dimensions.layerHeight = this.elements.$motionFXLayer.height();
dimensions.layerWidth = this.elements.$motionFXLayer.width();
dimensions.movableX = dimensions.layerWidth - dimensions.elementWidth;
dimensions.movableY = dimensions.layerHeight - dimensions.elementHeight;
this.setSettings('dimensions', dimensions);
}
}, {
key: 'initInteractionsTypes',
value: function initInteractionsTypes() {
this.interactionsTypes = {
scroll: _scroll2.default,
mouseMove: _mouseMove2.default
};
}
}, {
key: 'prepareSpecialActions',
value: function prepareSpecialActions() {
var settings = this.getSettings(),
hasTiltEffect = !!(settings.interactions.mouseMove && settings.interactions.mouseMove.tilt);
this.elements.$parent.toggleClass(settings.classes.perspective, hasTiltEffect);
}
}, {
key: 'cleanSpecialActions',
value: function cleanSpecialActions() {
var settings = this.getSettings();
this.elements.$parent.removeClass(settings.classes.perspective);
}
}, {
key: 'runInteractions',
value: function runInteractions() {
var _this2 = this;
var settings = this.getSettings();
this.actions.setCSSTransformVariables(settings.elementSettings);
this.prepareSpecialActions();
jQuery.each(settings.interactions, function (interactionName, actions) {
_this2.interactions[interactionName] = new _this2.interactionsTypes[interactionName]({
motionFX: _this2,
callback: function callback() {
for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
args[_key] = arguments[_key];
}
jQuery.each(actions, function (actionName, actionData) {
var _actions;
return (_actions = _this2.actions).runAction.apply(_actions, [actionName, actionData].concat(args));
});
}
});
_this2.interactions[interactionName].runImmediately();
});
}
}, {
key: 'destroyInteractions',
value: function destroyInteractions() {
this.cleanSpecialActions();
jQuery.each(this.interactions, function (interactionName, interaction) {
return interaction.destroy();
});
this.interactions = {};
}
}, {
key: 'refresh',
value: function refresh() {
this.actions.setSettings(this.getSettings());
if ('background' === this.getSettings('type')) {
this.updateBackgroundLayerSize();
this.defineBackgroundLayerDimensions();
}
this.actions.refresh();
this.destroyInteractions();
this.runInteractions();
}
}, {
key: 'destroy',
value: function destroy() {
this.destroyInteractions();
this.actions.refresh();
var settings = this.getSettings();
this.$element.removeClass(settings.classes.element);
this.elements.$parent.removeClass(settings.classes.parent);
if ('background' === settings.type) {
this.$element.removeClass(settings.classes.backgroundType);
this.removeBackgroundLayer();
}
}
}, {
key: 'onInit',
value: function onInit() {
_get(_class.prototype.__proto__ || Object.getPrototypeOf(_class.prototype), 'onInit', this).call(this);
var settings = this.getSettings();
this.$element = settings.$element;
this.elements.$parent = this.$element.parent();
this.$element.addClass(settings.classes.element);
this.elements.$parent = this.$element.parent();
this.elements.$parent.addClass(settings.classes.parent);
if ('background' === settings.type) {
this.$element.addClass(settings.classes.backgroundType);
this.addBackgroundLayer();
}
this.defineDimensions();
settings.$targetElement = 'element' === settings.type ? this.$element : this.elements.$motionFXLayer;
this.interactions = {};
this.actions = new _actions3.default(settings);
this.initInteractionsTypes();
this.runInteractions();
}
}, {
key: 'onWindowResize',
value: function onWindowResize() {
this.defineDimensions();
}
}]);
return _class;
}(elementorModules.ViewModule);
exports.default = _class;
/***/ }),
/***/ 93:
/***/ (function(module, exports, __webpack_require__) {
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
var _base = __webpack_require__(5);
var _base2 = _interopRequireDefault(_base);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
var _class = function (_BaseInteraction) {
_inherits(_class, _BaseInteraction);
function _class() {
_classCallCheck(this, _class);
return _possibleConstructorReturn(this, (_class.__proto__ || Object.getPrototypeOf(_class)).apply(this, arguments));
}
_createClass(_class, [{
key: 'run',
value: function run() {
if (pageYOffset === this.windowScrollTop) {
return;
}
var motionFXSettings = this.motionFX.getSettings();
if (motionFXSettings.refreshDimensions) {
this.motionFX.defineDimensions();
}
this.windowScrollTop = pageYOffset;
var passedRangePercents = void 0;
if ('page' === motionFXSettings.range) {
passedRangePercents = document.documentElement.scrollTop / (document.body.scrollHeight - innerHeight) * 100;
} else {
var dimensions = motionFXSettings.dimensions,
element = motionFXSettings.$element[0],
elementTopWindowPoint = element && ~element.className.indexOf('sticky--active') ? element.getBoundingClientRect().top : dimensions.elementTop - pageYOffset,
elementEntrancePoint = elementTopWindowPoint - innerHeight;
passedRangePercents = 100 / dimensions.elementRange * (elementEntrancePoint * -1);
}
this.runCallback(passedRangePercents);
}
}]);
return _class;
}(_base2.default);
exports.default = _class;
/***/ }),
/***/ 94:
/***/ (function(module, exports, __webpack_require__) {
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
var _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if ("value" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };
var _base = __webpack_require__(5);
var _base2 = _interopRequireDefault(_base);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
var MouseMoveInteraction = function (_BaseInteraction) {
_inherits(MouseMoveInteraction, _BaseInteraction);
function MouseMoveInteraction() {
_classCallCheck(this, MouseMoveInteraction);
return _possibleConstructorReturn(this, (MouseMoveInteraction.__proto__ || Object.getPrototypeOf(MouseMoveInteraction)).apply(this, arguments));
}
_createClass(MouseMoveInteraction, [{
key: 'bindEvents',
value: function bindEvents() {
if (!MouseMoveInteraction.mouseTracked) {
ceFrontend.elements.$window.on('mousemove', MouseMoveInteraction.updateMousePosition);
MouseMoveInteraction.mouseTracked = true;
}
}
}, {
key: 'run',
value: function run() {
var mousePosition = MouseMoveInteraction.mousePosition,
oldMousePosition = this.oldMousePosition;
if (oldMousePosition.x === mousePosition.x && oldMousePosition.y === mousePosition.y) {
return;
}
this.oldMousePosition = {
x: mousePosition.x,
y: mousePosition.y
};
var passedPercentsX = 100 / innerWidth * mousePosition.x,
passedPercentsY = 100 / innerHeight * mousePosition.y;
this.runCallback(passedPercentsX, passedPercentsY);
}
}, {
key: 'onInit',
value: function onInit() {
this.oldMousePosition = {};
_get(MouseMoveInteraction.prototype.__proto__ || Object.getPrototypeOf(MouseMoveInteraction.prototype), 'onInit', this).call(this);
}
}]);
return MouseMoveInteraction;
}(_base2.default);
exports.default = MouseMoveInteraction;
MouseMoveInteraction.mousePosition = {};
MouseMoveInteraction.updateMousePosition = function (event) {
MouseMoveInteraction.mousePosition = {
x: event.clientX,
y: event.clientY
};
};
/***/ }),
/***/ 95:
/***/ (function(module, exports, __webpack_require__) {
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
var _class = function (_elementorModules$Mod) {
_inherits(_class, _elementorModules$Mod);
function _class() {
_classCallCheck(this, _class);
return _possibleConstructorReturn(this, (_class.__proto__ || Object.getPrototypeOf(_class)).apply(this, arguments));
}
_createClass(_class, [{
key: 'getMovePointFromPassedPercents',
value: function getMovePointFromPassedPercents(movableRange, passedPercents) {
var movePoint = passedPercents / movableRange * 100;
return +movePoint.toFixed(2);
}
}, {
key: 'getEffectValueFromMovePoint',
value: function getEffectValueFromMovePoint(range, movePoint) {
return range * movePoint / 100;
}
}, {
key: 'getStep',
value: function getStep(passedPercents, options) {
if ('element' === this.getSettings('type')) {
return this.getElementStep(passedPercents, options);
}
return this.getBackgroundStep(passedPercents, options);
}
}, {
key: 'getElementStep',
value: function getElementStep(passedPercents, options) {
return -(passedPercents - 50) * options.speed;
}
}, {
key: 'getBackgroundStep',
value: function getBackgroundStep(passedPercents, options) {
var movableRange = this.getSettings('dimensions.movable' + options.axis.toUpperCase());
return -this.getEffectValueFromMovePoint(movableRange, passedPercents);
}
}, {
key: 'getDirectionMovePoint',
value: function getDirectionMovePoint(passedPercents, direction, range) {
var movePoint = void 0;
if (passedPercents < range.start) {
if ('out-in' === direction) {
movePoint = 0;
} else if ('in-out' === direction) {
movePoint = 100;
} else {
movePoint = this.getMovePointFromPassedPercents(range.start, passedPercents);
if ('in-out-in' === direction) {
movePoint = 100 - movePoint;
}
}
} else if (passedPercents < range.end) {
if ('in-out-in' === direction) {
movePoint = 0;
} else if ('out-in-out' === direction) {
movePoint = 100;
} else {
movePoint = this.getMovePointFromPassedPercents(range.end - range.start, passedPercents - range.start);
if ('in-out' === direction) {
movePoint = 100 - movePoint;
}
}
} else if ('in-out' === direction) {
movePoint = 0;
} else if ('out-in' === direction) {
movePoint = 100;
} else {
movePoint = this.getMovePointFromPassedPercents(100 - range.end, 100 - passedPercents);
if ('in-out-in' === direction) {
movePoint = 100 - movePoint;
}
}
return movePoint;
}
}, {
key: 'translateX',
value: function translateX(actionData, passedPercents) {
actionData.axis = 'x';
actionData.unit = 'px';
this.transform('translateX', passedPercents, actionData);
}
}, {
key: 'translateY',
value: function translateY(actionData, passedPercents) {
actionData.axis = 'y';
actionData.unit = 'px';
this.transform('translateY', passedPercents, actionData);
}
}, {
key: 'translateXY',
value: function translateXY(actionData, passedPercentsX, passedPercentsY) {
this.translateX(actionData, passedPercentsX);
this.translateY(actionData, passedPercentsY);
}
}, {
key: 'tilt',
value: function tilt(actionData, passedPercentsX, passedPercentsY) {
var options = {
speed: actionData.speed / 10,
direction: actionData.direction
};
this.rotateX(options, passedPercentsY);
this.rotateY(options, 100 - passedPercentsX);
}
}, {
key: 'rotateX',
value: function rotateX(actionData, passedPercents) {
actionData.axis = 'x';
actionData.unit = 'deg';
this.transform('rotateX', passedPercents, actionData);
}
}, {
key: 'rotateY',
value: function rotateY(actionData, passedPercents) {
actionData.axis = 'y';
actionData.unit = 'deg';
this.transform('rotateY', passedPercents, actionData);
}
}, {
key: 'rotateZ',
value: function rotateZ(actionData, passedPercents) {
actionData.unit = 'deg';
this.transform('rotateZ', passedPercents, actionData);
}
}, {
key: 'scale',
value: function scale(actionData, passedPercents) {
var movePoint = this.getDirectionMovePoint(passedPercents, actionData.direction, actionData.range);
this.updateRulePart('transform', 'scale', 1 + actionData.speed * movePoint / 1000);
}
}, {
key: 'transform',
value: function transform(action, passedPercents, actionData) {
if (actionData.direction) {
passedPercents = 100 - passedPercents;
}
this.updateRulePart('transform', action, this.getStep(passedPercents, actionData) + actionData.unit);
}
}, {
key: 'setCSSTransformVariables',
value: function setCSSTransformVariables(elementSettings) {
this.CSSTransformVariables = [];
var self = this;
jQuery.each(elementSettings, function(settingKey, settingValue) {
var transformKeyMatches = settingKey.match(/_transform_(.+?)_effect/m);
if (transformKeyMatches && settingValue) {
if ('perspective' === transformKeyMatches[1]) {
self.CSSTransformVariables.unshift(transformKeyMatches[1]);
return;
}
if (self.CSSTransformVariables.includes(transformKeyMatches[1])) {
return;
}
self.CSSTransformVariables.push(transformKeyMatches[1]);
}
});
}
}, {
key: 'opacity',
value: function opacity(actionData, passedPercents) {
var movePoint = this.getDirectionMovePoint(passedPercents, actionData.direction, actionData.range),
level = actionData.level / 10,
opacity = 1 - level + this.getEffectValueFromMovePoint(level, movePoint);
this.$element.css('opacity', opacity);
}
}, {
key: 'blur',
value: function blur(actionData, passedPercents) {
var movePoint = this.getDirectionMovePoint(passedPercents, actionData.direction, actionData.range),
blur = actionData.level - this.getEffectValueFromMovePoint(actionData.level, movePoint);
this.updateRulePart('filter', 'blur', blur + 'px');
}
}, {
key: 'updateRulePart',
value: function updateRulePart(ruleName, key, value) {
if (!this.rulesVariables[ruleName]) {
this.rulesVariables[ruleName] = {};
}
if (!this.rulesVariables[ruleName][key]) {
this.rulesVariables[ruleName][key] = true;
this.updateRule(ruleName);
}
var cssVarKey = '--' + key;
this.$element[0].style.setProperty(cssVarKey, value);
}
}, {
key: 'updateRule',
value: function updateRule(ruleName) {
var value = '';
value += this.concatTransformCSSProperties(ruleName);
jQuery.each(this.rulesVariables[ruleName], function (variableKey) {
value += variableKey + '(var(--' + variableKey + '))';
});
this.$element.css(ruleName, value);
}
}, {
key: 'concatTransformCSSProperties',
value: function concatTransformCSSProperties(ruleName) {
var value = '';
if ('transform' === ruleName) {
jQuery.each(this.CSSTransformVariables, function(index, variableKey) {
var variableName = variableKey;
if (variableKey.startsWith('flip')) {
variableKey = variableKey.replace('flip', 'scale');
} // Adding default value because of the hover state. if there is no default the transform will break.
var defaultUnit = variableKey.startsWith('rotate') || variableKey.startsWith('skew') ? 'deg' : 'px',
defaultValue = variableKey.startsWith('scale') ? 1 : 0 + defaultUnit;
value += variableKey + '(var(--e-transform-' + variableName + ', ' + defaultValue + '))';
});
}
return value;
}
}, {
key: 'runAction',
value: function runAction(actionName, actionData, passedPercents) {
if (actionData.affectedRange) {
if (actionData.affectedRange.start > passedPercents) {
passedPercents = actionData.affectedRange.start;
}
if (actionData.affectedRange.end < passedPercents) {
passedPercents = actionData.affectedRange.end;
}
}
for (var _len = arguments.length, args = Array(_len > 3 ? _len - 3 : 0), _key = 3; _key < _len; _key++) {
args[_key - 3] = arguments[_key];
}
this[actionName].apply(this, [actionData, passedPercents].concat(args));
}
}, {
key: 'refresh',
value: function refresh() {
this.rulesVariables = {};
this.CSSTransformVariables = [];
this.$element.css({
transform: '',
filter: '',
opacity: ''
});
}
}, {
key: 'onInit',
value: function onInit() {
this.$element = this.getSettings('$targetElement');
this.refresh();
}
}]);
return _class;
}(elementorModules.Module);
exports.default = _class;
/***/ }),
/***/ 100:
/***/ (function(module, exports, __webpack_require__) {
"use strict";
var Countdown = function( $countdown, endTime, actions, $expireMessage, $ ) {
var timeInterval,
elements = {
$daysSpan: $countdown.find( '.elementor-countdown-days' ),
$hoursSpan: $countdown.find( '.elementor-countdown-hours' ),
$minutesSpan: $countdown.find( '.elementor-countdown-minutes' ),
$secondsSpan: $countdown.find( '.elementor-countdown-seconds' )
};
var updateClock = function() {
var timeRemaining = Countdown.getTimeRemaining( endTime );
$.each( timeRemaining.parts, function( timePart ) {
var $element = elements[ '$' + timePart + 'Span' ],
partValue = this.toString();
if ( 1 === partValue.length ) {
partValue = 0 + partValue;
}
if ( $element.length ) {
$element.text( partValue );
}
} );
if ( timeRemaining.total <= 0 ) {
clearInterval( timeInterval );
runActions();
}
};
var initializeClock = function() {
timeInterval = setInterval( updateClock, 1000 );
updateClock();
};
var runActions = function() {
$countdown.trigger( 'countdown_expire', $countdown );
if ( !actions ) {
return;
}
actions.forEach( function(action) {
switch ( action.type ) {
case 'hide':
$countdown.hide();
break;
case 'redirect':
if ( action.redirect_url && !ceFrontend.isEditMode() ) {
action.redirect_is_external
? window.open(action.redirect_url)
: window.location.href = action.redirect_url
;
}
break;
case 'message':
$expireMessage.show();
break;
}
} );
};
initializeClock();
};
Countdown.getTimeRemaining = function( endTime ) {
var timeRemaining = endTime - new Date(),
seconds = Math.floor( ( timeRemaining / 1000 ) % 60 ),
minutes = Math.floor( ( timeRemaining / 1000 / 60 ) % 60 ),
hours = Math.floor( ( timeRemaining / ( 1000 * 60 * 60 ) ) % 24 ),
days = Math.floor( timeRemaining / ( 1000 * 60 * 60 * 24 ) );
if ( days < 0 || hours < 0 || minutes < 0 ) {
seconds = minutes = hours = days = 0;
}
return {
total: timeRemaining,
parts: {
days: days,
hours: hours,
minutes: minutes,
seconds: seconds
}
};
};
module.exports = function( $scope, $ ) {
var $element = $scope.find( '.elementor-countdown-wrapper' ),
date = new Date( $element.data( 'date' ) * 1000 ),
actions = $element.data( 'expire-actions' ),
$expireMessage = $scope.find( '.elementor-countdown-expire--message' );
new Countdown( $element, date, actions, $expireMessage, $ );
};
/***/ }),
/***/ 108:
/***/ (function(module, exports, __webpack_require__) {
"use strict";
if (jQuery.fn.smartmenus) {
// Override the default stupid detection
jQuery.SmartMenus.prototype.isCSSOn = function () {
return true;
};
}
var MenuHandler = elementorModules.frontend.handlers.Base.extend({
stretchElement: null,
getDefaultSettings: function getDefaultSettings() {
return {
selectors: {
menu: '.elementor-nav',
anchorLink: '.elementor-nav--main .elementor-item-anchor',
mainMenu: '.elementor-nav__container.elementor-nav--main',
dropdownMenu: '.elementor-nav__container.elementor-nav--dropdown',
menuToggle: '.elementor-menu-toggle'
}
};
},
getDefaultElements: function getDefaultElements() {
var selectors = this.getSettings('selectors'),
elements = {};
elements.$menu = this.$element.find(selectors.menu);
elements.$anchorLink = this.$element.find(selectors.anchorLink);
elements.$mainMenu = this.$element.find(selectors.mainMenu);
elements.$dropdownMenu = this.$element.find(selectors.dropdownMenu);
elements.$dropdownMenuFinalItems = elements.$dropdownMenu.find('.menu-item:not(.menu-item-has-children) > a');
elements.$menuToggle = this.$element.find(selectors.menuToggle);
return elements;
},
bindEvents: function bindEvents() {
if (!this.elements.$menu.length) {
return;
}
this.elements.$menuToggle.on('click', this.toggleMenu.bind(this));
if (this.getElementSettings('full_width')) {
this.elements.$dropdownMenuFinalItems.on('click', this.toggleMenu.bind(this, false));
}
ceFrontend.addListenerOnce(this.$element.data('model-cid'), 'resize', this.stretchMenu);
},
initStretchElement: function initStretchElement() {
this.stretchElement = new elementorModules.frontend.tools.StretchElement({ element: this.elements.$dropdownMenu });
},
toggleMenu: function toggleMenu(show) {
var isDropdownVisible = this.elements.$menuToggle.hasClass('elementor-active');
if ('boolean' !== typeof show) {
show = !isDropdownVisible;
}
this.elements.$menuToggle.toggleClass('elementor-active', show);
if (show && this.getElementSettings('full_width')) {
this.stretchElement.stretch();
}
},
followMenuAnchors: function followMenuAnchors() {
var self = this;
self.elements.$anchorLink.each(function () {
if (location.pathname === this.pathname && '' !== this.hash) {
self.followMenuAnchor(jQuery(this));
}
});
},
followMenuAnchor: function followMenuAnchor($element) {
var anchorSelector = $element[0].hash;
var offset = -300,
$anchor = void 0;
try {
// `decodeURIComponent` for UTF8 characters in the hash.
$anchor = jQuery(decodeURIComponent(anchorSelector));
} catch (e) {
return;
}
if (!$anchor.length) {
return;
}
if (!$anchor.hasClass('elementor-menu-anchor')) {
var halfViewport = jQuery(window).height() / 2;
offset = -$anchor.outerHeight() + halfViewport;
}
ceFrontend.waypoint($anchor, function (direction) {
if ('down' === direction) {
$element.addClass('elementor-item-active');
} else {
$element.removeClass('elementor-item-active');
}
}, { offset: '50%', triggerOnce: false });
ceFrontend.waypoint($anchor, function (direction) {
if ('down' === direction) {
$element.removeClass('elementor-item-active');
} else {
$element.addClass('elementor-item-active');
}
}, { offset: offset, triggerOnce: false });
},
stretchMenu: function stretchMenu() {
if (this.getElementSettings('full_width')) {
this.stretchElement.stretch();
this.elements.$dropdownMenu.css('top', this.elements.$menuToggle.outerHeight());
} else {
this.stretchElement.reset();
}
},
onInit: function onInit() {
elementorModules.frontend.handlers.Base.prototype.onInit.apply(this, arguments);
if (!this.elements.$menu.length) {
return;
}
var align = this.getElementSettings('align_submenu'),
noMouseOver = 'click' === this.getElementSettings('show_submenu_on');
this.elements.$menu.smartmenus({
subIndicators: false,
subIndicatorsPos: 'append',
subMenusMaxWidth: '1000px',
noMouseOver: noMouseOver,
rightToLeftSubMenus: align ? 'right' === align : ceFrontend.config.is_rtl
});
if (noMouseOver) {
this.elements.$mainMenu.filter('.elementor-langs, .elementor-currencies, .elementor-sign-in').children()
.on('click', 'a.elementor-item.has-submenu.highlighted', function (event) {
// Close submenu on 2nd click
this.elements.$menu.smartmenus('menuHide', jQuery(event.currentTarget).next());
event.currentTarget.blur();
event.preventDefault();
}.bind(this))
;
}
if ('accordion' === this.getElementSettings('animation_dropdown')) {
// Trick for accordion mobile menu
var $accordion = this.elements.$dropdownMenu.children().on('click.ce', 'a.has-submenu', function () {
var $ul = jQuery(this.parentNode).siblings().children('a.highlighted').next();
$ul.length && $accordion.smartmenus('menuHide', $ul);
});
}
this.initStretchElement();
this.stretchMenu();
if (!ceFrontend.isEditMode()) {
this.followMenuAnchors();
}
},
onElementChange: function onElementChange(propertyName) {
if ('full_width' === propertyName) {
this.stretchMenu();
}
}
});
module.exports = function ($scope) {
new MenuHandler({ $element: $scope });
};
/***/ }),
/***/ 122:
/***/ (function(module, exports, __webpack_require__) {
"use strict";
var AjaxSearchHandler = elementorModules.frontend.handlers.Base.extend({
getDefaultSettings: function getDefaultSettings() {
return {
selectors: {
wrapper: '.elementor-search',
container: '.elementor-search__container',
icon: '.elementor-search__icon',
input: '.elementor-search__input',
clear: '.elementor-search__clear',
toggle: '.elementor-search__toggle',
submit: '.elementor-search__submit',
closeButton: '.dialog-close-button'
},
classes: {
isFocus: 'elementor-search--focus',
isTopbar: 'elementor-search--topbar',
lightbox: 'elementor-lightbox'
}
};
},
getDefaultElements: function getDefaultElements() {
var selectors = this.getSettings('selectors'),
elements = {};
elements.$wrapper = this.$element.find(selectors.wrapper);
elements.$container = this.$element.find(selectors.container);
elements.$input = this.$element.find(selectors.input);
elements.$clear = this.$element.find(selectors.clear);
elements.$icon = this.$element.find(selectors.icon);
elements.$toggle = this.$element.find(selectors.toggle);
elements.$submit = this.$element.find(selectors.submit);
elements.$closeButton = this.$element.find(selectors.closeButton);
return elements;
},
bindEvents: function bindEvents() {
var self = this,
$container = self.elements.$container,
$closeButton = self.elements.$closeButton,
$input = self.elements.$input,
$clear = self.elements.$clear,
$wrapper = self.elements.$wrapper,
$icon = self.elements.$icon,
skin = this.getElementSettings('skin'),
classes = this.getSettings('classes');
$input.one('focus', $.proxy(this, 'loadAutocomplete'));
$clear.on('click', function () {
$input.val('').triggerHandler('keydown');
$clear.css({
visibility: '',
pointerEvents: '',
});
});
$input.on('input', function () {
var empty = !$input.val();
$clear.css({
visibility: empty ? '' : 'visible',
pointerEvents: empty ? '' : 'all',
});
});
if ('topbar' === skin) {
// Activate topbar mode on click
self.elements.$toggle.on('click', function () {
$container.toggleClass(classes.isTopbar).toggleClass(classes.lightbox);
$input.focus();
});
$closeButton.on('click', function () {
$container.removeClass(classes.isTopbar).removeClass(classes.lightbox);
});
// Deactivate topbar mode on click or on esc.
ceFrontend.elements.$document.keyup(function (event) {
var ESC_KEY = 27;
if (ESC_KEY === event.keyCode) {
if ($container.hasClass(classes.isTopbar)) {
$container.click();
}
}
}).on('click', function (event) {
if ($container.hasClass(classes.isTopbar) && !$(event.target).closest($wrapper).length) {
$container.removeClass(classes.isTopbar).removeClass(classes.lightbox);
}
});
} else {
// Apply focus style on wrapper element when input is focused
$input.on({
focus: function focus() {
$wrapper.addClass(classes.isFocus);
},
blur: function blur() {
$wrapper.removeClass(classes.isFocus);
}
});
}
if ('minimal' === skin) {
// Apply focus style on wrapper element when icon is clicked in minimal skin
$icon.on('click', function () {
$wrapper.addClass(classes.isFocus);
$input.focus();
});
}
},
loadAutocomplete: function loadAutocomplete() {
var baseDir = window.baseDir || prestashop.urls.base_url,
include = $.ui ? ($.ui.autocomplete ? '' : 'jquery.ui.autocomplete') : 'jquery-ui';
if (include) {
$('
').attr({
href: baseDir + 'js/jquery/ui/themes/base/minified/' + include + '.min.css'
}).appendTo(document.head);
if ('jquery-ui' === include) {
$('
').attr({
href: baseDir + 'js/jquery/ui/themes/base/minified/jquery.ui.theme.min.css'
}).appendTo(document.head);
}
$.ajax({
url: baseDir + 'js/jquery/ui/' + include + '.min.js',
cache: true,
dataType: 'script',
success: $.proxy(this, 'initAutocomplete')
});
} else {
this.initAutocomplete();
}
},
initAutocomplete: function initAutocomplete() {
$.fn.ceAjaxSearch || $.widget('ww.ceAjaxSearch', $.ui.autocomplete, {
_create: function () {
this._super();
this.menu.element.addClass('elementor-search__products');
this.element.on('focus' + this.eventNamespace, $.proxy(this, '_openOnFocus'))
$(document).on('click' + this.eventNamespace, $.proxy(this, '_closeOnDocumentClick'));
// Don't close on blur
this._off(this.element, 'blur');
// Trick for disable auto-scrolling on hover
this.menu.element.outerHeight = function() {
if (window.event && 'mouseover' === event.type) {
return Infinity;
}
return $.fn.outerHeight.apply(this, arguments);
};
},
_openOnFocus: function (event) {
this.menu.element.show();
this._resizeMenu();
this.menu.element.position(
$.extend({of: this.element}, this.options.position)
);
},
_closeOnDocumentClick: function (event) {
$(event.target).closest(this.options.appendTo).length || this._close();
},
search: function (value, event) {
value = value != null ? value : this._value();
this._super(value, event);
if (value.length < this.options.minLength) {
// Clear previous results
this.menu.element.empty();
}
},
_renderItem: function (ul, prod) {
var es = this.options.elementSettings,
cover = prod.cover && prod.cover.small.url || prestashop.urls.img_prod_url + prestashop.language.iso_code + '-default-small_default.jpg';
return $('
').html(
'' +
(es.show_image ? '
' : '') +
'' +
'
' + prod.name + '
' +
(es.show_category ? '
' + prod.category_name + '
' : '') +
(es.show_description ? '
' + (prod.description_short || '').replace(/<\/?\w+.*?>/g, '') + '
' : '') +
(es.show_price ? '
' + (prod.has_discount ? '' + prod.regular_price + ' ' : '') + prod.price + '
' : '') +
'
' +
''
).appendTo(ul);
},
_resizeMenu: function () {
this._super();
this.options.position.my = 'left top+' + this.menu.element.css('margin-top');
setTimeout(function () {
this.menu.element.css({
maxHeight: 'calc(100vh - ' + (this.menu.element.offset().top - $(window).scrollTop()) + 'px)',
overflowY: 'auto',
WebkitOverflowScrolling: 'touch',
});
}.bind(this), 1);
},
});
var action = this.elements.$wrapper.prop('action'),
searchName = this.elements.$input.prop('name');
this.elements.$input.ceAjaxSearch({
appendTo: 'topbar' === this.getElementSettings('skin')
? this.elements.$container
: this.elements.$wrapper
,
minLength: 3,
elementSettings: this.getElementSettings(),
source: function (query, response) {
var data = {
ajax: true,
resultsPerPage: this.options.elementSettings.list_limit || 10,
};
data[searchName] = query.term;
$.post(action, data, null, 'json')
.then(function (resp) {
response(resp.products);
})
.fail(response)
;
},
select: function (event, ui) {
if (location.href !== ui.item.url && !ceFrontend.isEditMode()) {
location.href = ui.item.url;
};
},
});
}
});
module.exports = function ($scope) {
new AjaxSearchHandler({ $element: $scope });
};
/***/ }),
/***/ 123:
/***/ (function(module, exports, __webpack_require__) {
"use strict";
var AnimatedHeadlineHandler = elementorModules.frontend.handlers.Base.extend({
svgPaths: {
circle: ['M325,18C228.7-8.3,118.5,8.3,78,21C22.4,38.4,4.6,54.6,5.6,77.6c1.4,32.4,52.2,54,142.6,63.7 c66.2,7.1,212.2,7.5,273.5-8.3c64.4-16.6,104.3-57.6,33.8-98.2C386.7-4.9,179.4-1.4,126.3,20.7'],
underline_zigzag: ['M9.3,127.3c49.3-3,150.7-7.6,199.7-7.4c121.9,0.4,189.9,0.4,282.3,7.2C380.1,129.6,181.2,130.6,70,139 c82.6-2.9,254.2-1,335.9,1.3c-56,1.4-137.2-0.3-197.1,9'],
x: ['M497.4,23.9C301.6,40,155.9,80.6,4,144.4', 'M14.1,27.6c204.5,20.3,393.8,74,467.3,111.7'],
strikethrough: ['M3,75h493.5'],
curly: ['M3,146.1c17.1-8.8,33.5-17.8,51.4-17.8c15.6,0,17.1,18.1,30.2,18.1c22.9,0,36-18.6,53.9-18.6 c17.1,0,21.3,18.5,37.5,18.5c21.3,0,31.8-18.6,49-18.6c22.1,0,18.8,18.8,36.8,18.8c18.8,0,37.5-18.6,49-18.6c20.4,0,17.1,19,36.8,19 c22.9,0,36.8-20.6,54.7-18.6c17.7,1.4,7.1,19.5,33.5,18.8c17.1,0,47.2-6.5,61.1-15.6'],
diagonal: ['M13.5,15.5c131,13.7,289.3,55.5,475,125.5'],
double: ['M8.4,143.1c14.2-8,97.6-8.8,200.6-9.2c122.3-0.4,287.5,7.2,287.5,7.2', 'M8,19.4c72.3-5.3,162-7.8,216-7.8c54,0,136.2,0,267,7.8'],
double_underline: ['M5,125.4c30.5-3.8,137.9-7.6,177.3-7.6c117.2,0,252.2,4.7,312.7,7.6', 'M26.9,143.8c55.1-6.1,126-6.3,162.2-6.1c46.5,0.2,203.9,3.2,268.9,6.4'],
underline: ['M7.7,145.6C109,125,299.9,116.2,401,121.3c42.1,2.2,87.6,11.8,87.3,25.7']
},
getDefaultSettings: function getDefaultSettings() {
var settings = {
animationDelay: 2500,
//letters effect
lettersDelay: 50,
//typing effect
typeLettersDelay: 150,
selectionDuration: 500,
//clip effect
revealDuration: 600,
revealAnimationDelay: 1500
};
settings.typeAnimationDelay = settings.selectionDuration + 800;
settings.selectors = {
headline: '.elementor-headline',
dynamicWrapper: '.elementor-headline-dynamic-wrapper'
};
settings.classes = {
dynamicText: 'elementor-headline-dynamic-text',
dynamicLetter: 'elementor-headline-dynamic-letter',
textActive: 'elementor-headline-text-active',
textInactive: 'elementor-headline-text-inactive',
letters: 'elementor-headline-letters',
animationIn: 'elementor-headline-animation-in',
typeSelected: 'elementor-headline-typing-selected'
};
return settings;
},
getDefaultElements: function getDefaultElements() {
var selectors = this.getSettings('selectors');
return {
$headline: this.$element.find(selectors.headline),
$dynamicWrapper: this.$element.find(selectors.dynamicWrapper)
};
},
getNextWord: function getNextWord($word) {
return $word.is(':last-child') ? $word.parent().children().eq(0) : $word.next();
},
switchWord: function switchWord($oldWord, $newWord) {
$oldWord.removeClass('elementor-headline-text-active').addClass('elementor-headline-text-inactive');
$newWord.removeClass('elementor-headline-text-inactive').addClass('elementor-headline-text-active');
},
singleLetters: function singleLetters() {
var classes = this.getSettings('classes');
this.elements.$dynamicText.each(function () {
var $word = jQuery(this),
letters = $word.text().split(''),
isActive = $word.hasClass(classes.textActive);
$word.empty();
letters.forEach(function (letter) {
var $letter = jQuery('', { class: classes.dynamicLetter }).text(letter);
if (isActive) {
$letter.addClass(classes.animationIn);
}
$word.append($letter);
});
$word.css('opacity', 1);
});
},
showLetter: function showLetter($letter, $word, bool, duration) {
var self = this,
classes = this.getSettings('classes');
$letter.addClass(classes.animationIn);
if (!$letter.is(':last-child')) {
setTimeout(function () {
self.showLetter($letter.next(), $word, bool, duration);
}, duration);
} else if (!bool) {
setTimeout(function () {
self.hideWord($word);
}, self.getSettings('animationDelay'));
}
},
hideLetter: function hideLetter($letter, $word, bool, duration) {
var self = this,
settings = this.getSettings();
$letter.removeClass(settings.classes.animationIn);
if (!$letter.is(':last-child')) {
setTimeout(function () {
self.hideLetter($letter.next(), $word, bool, duration);
}, duration);
} else if (bool) {
setTimeout(function () {
self.hideWord(self.getNextWord($word));
}, self.getSettings('animationDelay'));
}
},
showWord: function showWord($word, $duration) {
var self = this,
settings = self.getSettings(),
animationType = self.getElementSettings('animation_type');
if ('typing' === animationType) {
self.showLetter($word.find('.' + settings.classes.dynamicLetter).eq(0), $word, false, $duration);
$word.addClass(settings.classes.textActive).removeClass(settings.classes.textInactive);
} else if ('clip' === animationType) {
self.elements.$dynamicWrapper.animate({ width: $word.width() + 10 }, settings.revealDuration, function () {
setTimeout(function () {
self.hideWord($word);
}, settings.revealAnimationDelay);
});
}
},
hideWord: function hideWord($word) {
var self = this,
settings = self.getSettings(),
classes = settings.classes,
letterSelector = '.' + classes.dynamicLetter,
animationType = self.getElementSettings('animation_type'),
nextWord = self.getNextWord($word);
if ('typing' === animationType) {
self.elements.$dynamicWrapper.addClass(classes.typeSelected);
setTimeout(function () {
self.elements.$dynamicWrapper.removeClass(classes.typeSelected);
$word.addClass(settings.classes.textInactive).removeClass(classes.textActive).children(letterSelector).removeClass(classes.animationIn);
}, settings.selectionDuration);
setTimeout(function () {
self.showWord(nextWord, settings.typeLettersDelay);
}, settings.typeAnimationDelay);
} else if (self.elements.$headline.hasClass(classes.letters)) {
var bool = $word.children(letterSelector).length >= nextWord.children(letterSelector).length;
self.hideLetter($word.find(letterSelector).eq(0), $word, bool, settings.lettersDelay);
self.showLetter(nextWord.find(letterSelector).eq(0), nextWord, bool, settings.lettersDelay);
} else if ('clip' === animationType) {
self.elements.$dynamicWrapper.animate({ width: '2px' }, settings.revealDuration, function () {
self.switchWord($word, nextWord);
self.showWord(nextWord);
});
} else {
self.switchWord($word, nextWord);
setTimeout(function () {
self.hideWord(nextWord);
}, settings.animationDelay);
}
},
animateHeadline: function animateHeadline() {
var self = this,
animationType = self.getElementSettings('animation_type'),
$dynamicWrapper = self.elements.$dynamicWrapper;
if ('clip' === animationType) {
$dynamicWrapper.width($dynamicWrapper.width() + 10);
} else if ('typing' !== animationType) {
//assign to .elementor-headline-dynamic-wrapper the width of its longest word
var width = 0;
self.elements.$dynamicText.each(function () {
var wordWidth = jQuery(this).width();
if (wordWidth > width) {
width = wordWidth;
}
});
$dynamicWrapper.css('width', width);
}
//trigger animation
setTimeout(function () {
self.hideWord(self.elements.$dynamicText.eq(0));
}, self.getSettings('animationDelay'));
},
getSvgPaths: function getSvgPaths(pathName) {
var pathsInfo = this.svgPaths[pathName],
$paths = jQuery();
pathsInfo.forEach(function (pathInfo) {
$paths = $paths.add(jQuery('', { d: pathInfo }));
});
return $paths;
},
fillWords: function fillWords() {
var elementSettings = this.getElementSettings(),
classes = this.getSettings('classes'),
$dynamicWrapper = this.elements.$dynamicWrapper;
if ('rotate' === elementSettings.headline_style) {
var rotatingText = (elementSettings.rotating_text || '').split('\n');
rotatingText.forEach(function (word, index) {
var $dynamicText = jQuery('', { class: classes.dynamicText }).html(word.replace(/ /g, ' '));
if (!index) {
$dynamicText.addClass(classes.textActive);
}
$dynamicWrapper.append($dynamicText);
});
} else {
var $dynamicText = jQuery('', { class: classes.dynamicText + ' ' + classes.textActive }).text(elementSettings.highlighted_text),
$svg = jQuery('